Valgrind: add ubsan and only64bit variants. (#9302)
* Add conflict for +ubsan when building with clang on MacOS * only64bit is enabled by default
This commit is contained in:
parent
2b3e7dbd93
commit
9b5f3d77f3
@ -51,7 +51,17 @@ class Valgrind(AutotoolsPackage):
|
|||||||
description='Activates MPI support for valgrind')
|
description='Activates MPI support for valgrind')
|
||||||
variant('boost', default=True,
|
variant('boost', default=True,
|
||||||
description='Activates boost support for valgrind')
|
description='Activates boost support for valgrind')
|
||||||
|
variant('only64bit', default=True,
|
||||||
|
description='Sets --enable-only64bit option for valgrind')
|
||||||
|
variant('ubsan', default=True,
|
||||||
|
description='Activates ubsan support for valgrind')
|
||||||
|
|
||||||
|
conflicts('+ubsan', when='platform=darwin %clang',
|
||||||
|
msg="""
|
||||||
|
Cannot build libubsan with clang on macOS.
|
||||||
|
Otherwise with (Apple's) clang there is a linker error:
|
||||||
|
clang: error: unknown argument: '-static-libubsan'
|
||||||
|
""")
|
||||||
depends_on('mpi', when='+mpi')
|
depends_on('mpi', when='+mpi')
|
||||||
depends_on('boost', when='+boost')
|
depends_on('boost', when='+boost')
|
||||||
|
|
||||||
@ -66,14 +76,11 @@ class Valgrind(AutotoolsPackage):
|
|||||||
def configure_args(self):
|
def configure_args(self):
|
||||||
spec = self.spec
|
spec = self.spec
|
||||||
options = []
|
options = []
|
||||||
if not (spec.satisfies('%clang') and sys.platform == 'darwin'):
|
if spec.satisfies('+ubsan'):
|
||||||
# Otherwise with (Apple's) clang there is a linker error:
|
|
||||||
# clang: error: unknown argument: '-static-libubsan'
|
|
||||||
options.append('--enable-ubsan')
|
options.append('--enable-ubsan')
|
||||||
|
if spec.satisfies('+only64bit'):
|
||||||
|
options.append('--enable-only64bit')
|
||||||
|
|
||||||
if sys.platform == 'darwin':
|
if sys.platform == 'darwin':
|
||||||
options.extend([
|
options.append('--build=amd64-darwin')
|
||||||
'--build=amd64-darwin',
|
|
||||||
'--enable-only64bit'
|
|
||||||
])
|
|
||||||
return options
|
return options
|
||||||
|
Loading…
Reference in New Issue
Block a user