mpich: avoid '-fallow-argument-mismatch' in the compiler wrappers (#33323)
This commit is contained in:
parent
bc88b581b4
commit
85730de055
1 changed files with 14 additions and 12 deletions
|
@ -380,22 +380,24 @@ def is_disabled(text):
|
||||||
results.append(" ".join(variants))
|
results.append(" ".join(variants))
|
||||||
return results
|
return results
|
||||||
|
|
||||||
|
def flag_handler(self, name, flags):
|
||||||
|
if name == "fflags":
|
||||||
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1795817
|
||||||
|
# https://github.com/spack/spack/issues/17934
|
||||||
|
# TODO: we should add the flag depending on the real Fortran compiler spec and not the
|
||||||
|
# toolchain spec, which might be mixed.
|
||||||
|
if any(self.spec.satisfies(s) for s in ["%gcc@10:", "%apple-clang@11:", "%clang@11:"]):
|
||||||
|
# Note that the flag is not needed to build the package starting version 4.1
|
||||||
|
# (see https://github.com/pmodels/mpich/pull/5840) but we keep adding the flag here
|
||||||
|
# to avoid its presence in the MPI compiler wrappers.
|
||||||
|
flags.append("-fallow-argument-mismatch")
|
||||||
|
|
||||||
|
return flags, None, None
|
||||||
|
|
||||||
def setup_build_environment(self, env):
|
def setup_build_environment(self, env):
|
||||||
env.unset("F90")
|
env.unset("F90")
|
||||||
env.unset("F90FLAGS")
|
env.unset("F90FLAGS")
|
||||||
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1795817
|
|
||||||
if self.spec.satisfies("%gcc@10:"):
|
|
||||||
env.set("FFLAGS", "-fallow-argument-mismatch")
|
|
||||||
env.set("FCFLAGS", "-fallow-argument-mismatch")
|
|
||||||
# Same fix but for macOS - avoids issue #17934
|
|
||||||
if self.spec.satisfies("%apple-clang@11:"):
|
|
||||||
env.set("FFLAGS", "-fallow-argument-mismatch")
|
|
||||||
env.set("FCFLAGS", "-fallow-argument-mismatch")
|
|
||||||
if self.spec.satisfies("%clang@11:"):
|
|
||||||
env.set("FFLAGS", "-fallow-argument-mismatch")
|
|
||||||
env.set("FCFLAGS", "-fallow-argument-mismatch")
|
|
||||||
|
|
||||||
if "pmi=cray" in self.spec:
|
if "pmi=cray" in self.spec:
|
||||||
env.set("CRAY_PMI_INCLUDE_OPTS", "-I" + self.spec["cray-pmi"].headers.directories[0])
|
env.set("CRAY_PMI_INCLUDE_OPTS", "-I" + self.spec["cray-pmi"].headers.directories[0])
|
||||||
env.set("CRAY_PMI_POST_LINK_OPTS", "-L" + self.spec["cray-pmi"].libs.directories[0])
|
env.set("CRAY_PMI_POST_LINK_OPTS", "-L" + self.spec["cray-pmi"].libs.directories[0])
|
||||||
|
|
Loading…
Reference in a new issue