From c8e878cfcf74d9f0cd7e081d980bad09c03b3f73 Mon Sep 17 00:00:00 2001 From: Rick Grubin Date: Tue, 23 Jun 2026 18:50:29 +0000 Subject: [PATCH 1/2] Prevent ifort / ifx from aggressively optimizing floating point exception checks --- repos/spack_repo/builtin/packages/fms/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/repos/spack_repo/builtin/packages/fms/package.py b/repos/spack_repo/builtin/packages/fms/package.py index 3d33e4e1aea..fc95fcfbbda 100644 --- a/repos/spack_repo/builtin/packages/fms/package.py +++ b/repos/spack_repo/builtin/packages/fms/package.py @@ -167,6 +167,11 @@ def cmake_args(self): self.define("64BIT", "precision=64" in self.spec), self.define_from_variant("FPIC", "pic"), self.define_from_variant("USE_DEPRECATED_IO", "deprecated_io"), + + # oneapi ifort / ifx aggressively optimize floating point exception checks + if self.spec.satisfies("%oneapi@2023:"): + fflags = "-fp-model=precise -fp-speculation=safe" + args.extend(["-DCMAKE_Fortran_FLAGS=%s" % fflags]) ] return args From 12773216f8671269bac737df56061c97ed357fdd Mon Sep 17 00:00:00 2001 From: Rick Grubin Date: Tue, 23 Jun 2026 14:29:14 -0600 Subject: [PATCH 2/2] fix dumb syntax error --- repos/spack_repo/builtin/packages/fms/package.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/repos/spack_repo/builtin/packages/fms/package.py b/repos/spack_repo/builtin/packages/fms/package.py index fc95fcfbbda..1c60b1839c7 100644 --- a/repos/spack_repo/builtin/packages/fms/package.py +++ b/repos/spack_repo/builtin/packages/fms/package.py @@ -167,11 +167,11 @@ def cmake_args(self): self.define("64BIT", "precision=64" in self.spec), self.define_from_variant("FPIC", "pic"), self.define_from_variant("USE_DEPRECATED_IO", "deprecated_io"), - - # oneapi ifort / ifx aggressively optimize floating point exception checks - if self.spec.satisfies("%oneapi@2023:"): - fflags = "-fp-model=precise -fp-speculation=safe" - args.extend(["-DCMAKE_Fortran_FLAGS=%s" % fflags]) ] + # oneapi ifort / ifx aggressively optimize floating point exception checks + if self.spec.satisfies("%oneapi@2023:"): + fflags = "-fp-model=precise -fp-speculation=safe" + args.extend(["-DCMAKE_Fortran_FLAGS=%s" % fflags]) + return args