Bug fixes for fckit (disable finalization of DDTs) and ectrans (disable use of Fortran contiguous keyword) (#49111)
* In var/spack/repos/builtin/packages/ectrans/package.py, always set cmake argument ECTRANS_HAVE_CONTIGUOUS_ISSUE to turn off problematic use of Fortran 'contiguous' keyword * In var/spack/repos/builtin/packages/ectrans/package.py, always set cmake argument ENABLE_FINAL=OFF to turn off problematic finalization of derived data types * Update links to issues in fckit and ectrans * Fix wrong cmake argument for ECTRANS_HAVE_CONTIGUOUS_ISSUE in var/spack/repos/builtin/packages/ectrans/package.py
This commit is contained in:
parent
2554c7bd21
commit
adbb41c7df
@ -74,5 +74,10 @@ def cmake_args(self):
|
|||||||
self.define_from_variant("ENABLE_FFTW", "fftw"),
|
self.define_from_variant("ENABLE_FFTW", "fftw"),
|
||||||
self.define_from_variant("ENABLE_MKL", "mkl"),
|
self.define_from_variant("ENABLE_MKL", "mkl"),
|
||||||
self.define_from_variant("ENABLE_TRANSI", "transi"),
|
self.define_from_variant("ENABLE_TRANSI", "transi"),
|
||||||
|
# Turn off use of contiguous keyword in Fortran because a number
|
||||||
|
# of compilers have issues with it, and the hardcoded list of "bad"
|
||||||
|
# compilers in ectrans is incomplete and isn't kept up to date
|
||||||
|
# https://github.com/JCSDA/spack-stack/issues/1522
|
||||||
|
"-DECTRANS_HAVE_CONTIGUOUS_ISSUE=ON",
|
||||||
]
|
]
|
||||||
return args
|
return args
|
||||||
|
@ -50,17 +50,6 @@ class Fckit(CMakePackage):
|
|||||||
depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "run"))
|
depends_on("llvm-openmp", when="+openmp %apple-clang", type=("build", "run"))
|
||||||
variant("shared", default=True, description="Build shared libraries")
|
variant("shared", default=True, description="Build shared libraries")
|
||||||
variant("fismahigh", default=False, description="Apply patching for FISMA-high compliance")
|
variant("fismahigh", default=False, description="Apply patching for FISMA-high compliance")
|
||||||
variant(
|
|
||||||
"finalize_ddts",
|
|
||||||
default="auto",
|
|
||||||
description="Enable / disable automatic finalization of derived types",
|
|
||||||
values=("auto", "no", "yes"),
|
|
||||||
)
|
|
||||||
|
|
||||||
# fckit fails to auto-detect/switch off finalization
|
|
||||||
# of derived types for latest Intel compilers. If set
|
|
||||||
# to auto, turn off in cmake_args. If set to yes, abort.
|
|
||||||
conflicts("%intel@2021.8:", when="finalize_ddts=yes")
|
|
||||||
|
|
||||||
def cmake_args(self):
|
def cmake_args(self):
|
||||||
args = [
|
args = [
|
||||||
@ -72,10 +61,10 @@ def cmake_args(self):
|
|||||||
if self.spec.satisfies("~shared"):
|
if self.spec.satisfies("~shared"):
|
||||||
args.append("-DBUILD_SHARED_LIBS=OFF")
|
args.append("-DBUILD_SHARED_LIBS=OFF")
|
||||||
|
|
||||||
if "finalize_ddts=auto" not in self.spec:
|
# Turn off finalization of derived data types (DDTs) because it is
|
||||||
args.append(self.define_from_variant("ENABLE_FINAL", "finalize_ddts"))
|
# flaky and we can't rely on fckit to auto-detect if the compiler
|
||||||
elif "finalize_ddts=auto" in self.spec and self.spec.satisfies("%intel@2021.8:"):
|
# supports the feature or not.
|
||||||
# See comment above (conflicts for finalize_ddts)
|
# https://github.com/JCSDA/spack-stack/issues/1521
|
||||||
args.append("-DENABLE_FINAL=OFF")
|
args.append("-DENABLE_FINAL=OFF")
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
Loading…
Reference in New Issue
Block a user