diff options
author | Brian Van Essen <vanessen1@llnl.gov> | 2023-12-07 13:06:07 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-07 11:06:07 -0800 |
commit | 9f1223e7a35fb2a6565b493fcce41e013ee3be1f (patch) | |
tree | dcc439e700e27dee378f05f645e1f061eacb446d | |
parent | 5beef2844483aa784c3532f460c21ad1bb021542 (diff) | |
download | spack-9f1223e7a35fb2a6565b493fcce41e013ee3be1f.tar.gz spack-9f1223e7a35fb2a6565b493fcce41e013ee3be1f.tar.bz2 spack-9f1223e7a35fb2a6565b493fcce41e013ee3be1f.tar.xz spack-9f1223e7a35fb2a6565b493fcce41e013ee3be1f.zip |
Bugfix spectrum-mpi module generation (#41466)
* Ensure that additional environment variables are set when a module
file is generated.
* Fixed the detection of the opal_prefix / MPI_ROOT field to use ompi_info.
---------
Co-authored-by: Greg Becker <becker33@llnl.gov>
-rw-r--r-- | var/spack/repos/builtin/packages/spectrum-mpi/package.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/spectrum-mpi/package.py b/var/spack/repos/builtin/packages/spectrum-mpi/package.py index ea5c29d322..8b4efee5ff 100644 --- a/var/spack/repos/builtin/packages/spectrum-mpi/package.py +++ b/var/spack/repos/builtin/packages/spectrum-mpi/package.py @@ -56,6 +56,14 @@ class SpectrumMpi(BundlePackage): break return actual_compiler.spec if actual_compiler else None + def get_opal_prefix(exe): + output = Executable(exe)(output=str, error=str) + match = re.search(r"Prefix: (\S+)", output) + if not match: + return None + opal_prefix = match.group(1) + return opal_prefix + results = [] for exe in exes: dirname = os.path.dirname(exe) @@ -83,9 +91,14 @@ class SpectrumMpi(BundlePackage): # results.append((variant, {'compilers': compilers_found})) # # Otherwise, use this simpler attribute - results.append(variant) else: - results.append("") + variant = "" + opal_prefix = get_opal_prefix(exe) + if opal_prefix: + extra_attributes = {"opal_prefix": opal_prefix} + results.append((variant, extra_attributes)) + else: + results.append(variant) return results def setup_dependent_package(self, module, dependent_spec): @@ -148,3 +161,6 @@ class SpectrumMpi(BundlePackage): env.set("MPICXX", os.path.join(self.prefix.bin, "mpic++")) env.set("MPIF77", os.path.join(self.prefix.bin, "mpif77")) env.set("MPIF90", os.path.join(self.prefix.bin, "mpif90")) + + env.set("OPAL_PREFIX", self.spec.extra_attributes.get("opal_prefix", self.prefix)) + env.set("MPI_ROOT", self.spec.extra_attributes.get("opal_prefix", self.prefix)) |