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:
Patrick Gartung 2018-10-04 18:06:10 -05:00 committed by Peter Scheibel
parent 2b3e7dbd93
commit 9b5f3d77f3

View File

@ -51,7 +51,17 @@ class Valgrind(AutotoolsPackage):
description='Activates MPI support for valgrind')
variant('boost', default=True,
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('boost', when='+boost')
@ -66,14 +76,11 @@ class Valgrind(AutotoolsPackage):
def configure_args(self):
spec = self.spec
options = []
if not (spec.satisfies('%clang') and sys.platform == 'darwin'):
# Otherwise with (Apple's) clang there is a linker error:
# clang: error: unknown argument: '-static-libubsan'
if spec.satisfies('+ubsan'):
options.append('--enable-ubsan')
if spec.satisfies('+only64bit'):
options.append('--enable-only64bit')
if sys.platform == 'darwin':
options.extend([
'--build=amd64-darwin',
'--enable-only64bit'
])
options.append('--build=amd64-darwin')
return options