summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorGregory Lee <lee218@llnl.gov>2019-10-29 21:09:21 -0700
committerAdam J. Stewart <ajstewart426@gmail.com>2019-10-29 23:09:21 -0500
commit4626c28c2735a8b6243b39270e55b9cdfc26e0da (patch)
tree09e5bc1a6361ff0f188163f5b37f40815dcdf86a /var
parentad6908e35d875c0386699360d52b746c3616e74c (diff)
downloadspack-4626c28c2735a8b6243b39270e55b9cdfc26e0da.tar.gz
spack-4626c28c2735a8b6243b39270e55b9cdfc26e0da.tar.bz2
spack-4626c28c2735a8b6243b39270e55b9cdfc26e0da.tar.xz
spack-4626c28c2735a8b6243b39270e55b9cdfc26e0da.zip
fix openmpi wrappers with libfabric (#13439)
* fix openmpi wrappers with libfabric * flake8 fix * flake8 fix * openmpi fix deprecated API * openmpi fix deprecated API
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/openmpi/package.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/var/spack/repos/builtin/packages/openmpi/package.py b/var/spack/repos/builtin/packages/openmpi/package.py
index b5ddba6355..fe625f97c7 100644
--- a/var/spack/repos/builtin/packages/openmpi/package.py
+++ b/var/spack/repos/builtin/packages/openmpi/package.py
@@ -311,16 +311,16 @@ class Openmpi(AutotoolsPackage):
libraries, root=self.prefix, shared=True, recursive=True
)
- def setup_dependent_environment(self, spack_env, run_env, dependent_spec):
- spack_env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
- spack_env.set('MPICXX', join_path(self.prefix.bin, 'mpic++'))
- spack_env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
- spack_env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
+ def setup_dependent_build_environment(self, env, dependent_spec):
+ env.set('MPICC', join_path(self.prefix.bin, 'mpicc'))
+ env.set('MPICXX', join_path(self.prefix.bin, 'mpic++'))
+ env.set('MPIF77', join_path(self.prefix.bin, 'mpif77'))
+ env.set('MPIF90', join_path(self.prefix.bin, 'mpif90'))
- spack_env.set('OMPI_CC', spack_cc)
- spack_env.set('OMPI_CXX', spack_cxx)
- spack_env.set('OMPI_FC', spack_fc)
- spack_env.set('OMPI_F77', spack_f77)
+ env.set('OMPI_CC', spack_cc)
+ env.set('OMPI_CXX', spack_cxx)
+ env.set('OMPI_FC', spack_fc)
+ env.set('OMPI_F77', spack_f77)
def setup_dependent_package(self, module, dependent_spec):
self.spec.mpicc = join_path(self.prefix.bin, 'mpicc')
@@ -430,6 +430,13 @@ class Openmpi(AutotoolsPackage):
# Fabrics
if 'fabrics=auto' not in spec:
config_args.extend(self.with_or_without('fabrics'))
+ # The wrappers fail to automatically link libfabric. This will cause
+ # undefined references unless we add the appropriate flags.
+ if 'fabrics=libfabric' in spec:
+ config_args.append('--with-wrapper-ldflags=-L{0} -Wl,-rpath={0}'
+ .format(spec['libfabric'].prefix.lib))
+ config_args.append('--with-wrapper-libs=-lfabric')
+
# Schedulers
if 'schedulers=auto' not in spec:
config_args.extend(self.with_or_without('schedulers'))
@@ -444,7 +451,6 @@ class Openmpi(AutotoolsPackage):
# Hwloc support
if spec.satisfies('@1.5.2:'):
config_args.append('--with-hwloc={0}'.format(spec['hwloc'].prefix))
-
# Java support
if spec.satisfies('@1.7.4:'):
if '+java' in spec: