From a66cc59bb044d7195571d60ca8efcb77efde4ce0 Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Sun, 19 May 2019 06:01:44 +0200 Subject: [PATCH] trilinos: add variant to disable chaco from seacas (#11482) * trilinos: add variant to disable chaco from seacas keep it OFF by default due to the presence of the global symbol "divide" that can lead to symbol clash with other libraries, for example see https://github.com/dealii/dealii/issues/8170#issuecomment-492700787 * dealii: add conflict statement for adol-c and Trilinos SEACAS Chaco --- .../repos/builtin/packages/dealii/package.py | 4 ++++ .../builtin/packages/trilinos/package.py | 21 +++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/var/spack/repos/builtin/packages/dealii/package.py b/var/spack/repos/builtin/packages/dealii/package.py index 1c72fbc7a88..43c4fc4296d 100644 --- a/var/spack/repos/builtin/packages/dealii/package.py +++ b/var/spack/repos/builtin/packages/dealii/package.py @@ -200,6 +200,10 @@ class Dealii(CMakePackage, CudaPackage): msg='It is not possible to enable slepc interfaces ' 'without petsc.') + conflicts('+adol-c', when='^trilinos+chaco', + msg='symbol clash between the ADOL-C library and ' + 'Trilinos SEACAS Chaco.') + # interfaces added in 8.5.0: for p in ['gsl', 'python']: conflicts('+{0}'.format(p), when='@:8.4.2', diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index bc85b314f35..23c05cb0540 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -81,8 +81,6 @@ class Trilinos(CMakePackage): description='Compile with Boost') variant('cgns', default=False, description='Enable CGNS') - variant('exodus', default=True, - description='Compile with Exodus from SEACAS') variant('gtest', default=True, description='Compile with Gtest') variant('hdf5', default=True, @@ -119,10 +117,17 @@ class Trilinos(CMakePackage): description='Compile with Aztec') variant('belos', default=True, description='Compile with Belos') + # chaco is disabled by default. As of 12.14.1 libchaco.so + # has the global symbol divide (and maybe others) that can + # lead to symbol clash. + variant('chaco', default=False, + description='Compile with Chaco from SEACAS') variant('epetra', default=True, description='Compile with Epetra') variant('epetraext', default=True, description='Compile with EpetraExt') + variant('exodus', default=True, + description='Compile with Exodus from SEACAS') variant('ifpack', default=True, description='Compile with Ifpack') variant('ifpack2', default=True, @@ -480,6 +485,18 @@ def cmake_args(self): '-DTrilinos_ENABLE_SEACASExodus:BOOL=OFF' ]) + if '+chaco' in spec: + options.extend([ + '-DTrilinos_ENABLE_SEACAS:BOOL=ON' + '-DTrilinos_ENABLE_SEACASChaco:BOOL=ON' + ]) + else: + # don't disable SEACAS, could be needed elsewhere + options.extend([ + '-DTrilinos_ENABLE_SEACASChaco:BOOL=OFF', + '-DTrilinos_ENABLE_SEACASNemslice=OFF' + ]) + # ######################### TPLs ############################# blas = spec['blas'].libs