From 30e2f2d3681ebc376c98e4968189d7d1c27ed4f1 Mon Sep 17 00:00:00 2001 From: Rick Grubin Date: Fri, 14 Aug 2026 13:13:55 -0500 Subject: [PATCH 1/5] Add oneAPI compiler flags that disable optimizations that alter mathemetical results --- repos/spack_repo/builtin/packages/scotch/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/repos/spack_repo/builtin/packages/scotch/package.py b/repos/spack_repo/builtin/packages/scotch/package.py index 81ff0dd4856..a97ecb7e31a 100644 --- a/repos/spack_repo/builtin/packages/scotch/package.py +++ b/repos/spack_repo/builtin/packages/scotch/package.py @@ -183,6 +183,13 @@ def cmake_args(self): c_flags.append("-DINTSIZE32") args.append(self.define("CMAKE_C_FLAGS", " ".join(c_flags))) + # oneapi C and Fortran compilers 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]) + cflags = "-O3 -fp-model=precise -fp-speculation=safe" + args.extend(["-DCMAKE_C_FLAGS_RELEASE=%s" % cflags]) + return args def is_64bit(self): From 43903c75f41e3778d6de70dffb203c37b61e12c2 Mon Sep 17 00:00:00 2001 From: Rick Grubin Date: Fri, 14 Aug 2026 13:49:06 -0500 Subject: [PATCH 2/5] Simplify flags var --- repos/spack_repo/builtin/packages/scotch/package.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/repos/spack_repo/builtin/packages/scotch/package.py b/repos/spack_repo/builtin/packages/scotch/package.py index a97ecb7e31a..48d71a40357 100644 --- a/repos/spack_repo/builtin/packages/scotch/package.py +++ b/repos/spack_repo/builtin/packages/scotch/package.py @@ -185,10 +185,9 @@ def cmake_args(self): # oneapi C and Fortran compilers 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]) - cflags = "-O3 -fp-model=precise -fp-speculation=safe" - args.extend(["-DCMAKE_C_FLAGS_RELEASE=%s" % cflags]) + fcflags = "-fp-model=precise -fp-speculation=safe" + args.extend(["-DCMAKE_Fortran_FLAGS=%s" % fcflags]) + args.extend(["-DCMAKE_C_FLAGS_RELEASE=%s" % fcflags]) return args From b06784f43a3466b8abb538e920de2b3deece2d81 Mon Sep 17 00:00:00 2001 From: Rick Grubin Date: Mon, 17 Aug 2026 15:31:06 -0500 Subject: [PATCH 3/5] Set C flags to apply to all build types --- repos/spack_repo/builtin/packages/scotch/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/scotch/package.py b/repos/spack_repo/builtin/packages/scotch/package.py index 48d71a40357..d99fdd30618 100644 --- a/repos/spack_repo/builtin/packages/scotch/package.py +++ b/repos/spack_repo/builtin/packages/scotch/package.py @@ -187,7 +187,7 @@ def cmake_args(self): if self.spec.satisfies("%oneapi@2023:"): fcflags = "-fp-model=precise -fp-speculation=safe" args.extend(["-DCMAKE_Fortran_FLAGS=%s" % fcflags]) - args.extend(["-DCMAKE_C_FLAGS_RELEASE=%s" % fcflags]) + args.extend(["-DCMAKE_C_FLAGS=%s" % fcflags]) return args From dddbc11f36ea960d661474b8d07f87683fa5f1c5 Mon Sep 17 00:00:00 2001 From: Rick Grubin Date: Mon, 17 Aug 2026 17:54:25 -0500 Subject: [PATCH 4/5] Explicitly set build_system based on pkg version --- repos/spack_repo/builtin/packages/scotch/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/scotch/package.py b/repos/spack_repo/builtin/packages/scotch/package.py index d99fdd30618..129934c28b2 100644 --- a/repos/spack_repo/builtin/packages/scotch/package.py +++ b/repos/spack_repo/builtin/packages/scotch/package.py @@ -44,7 +44,9 @@ class Scotch(CMakePackage, MakefilePackage): version("6.0.0", sha256="8206127d038bda868dda5c5a7f60ef8224f2e368298fbb01bf13fa250e378dd4") version("5.1.10b", sha256="54c9e7fafefd49d8b2017d179d4f11a655abe10365961583baaddc4eeb6a9add") - build_system(conditional("cmake", when="@7:"), "makefile", default="cmake") + build_system("cmake", conditional("makefile", when="@:6"), default="cmake") + conflicts("build_system=makefile", when="@7:") + variant("threads", default=True, description="use POSIX Pthreads within Scotch and PT-Scotch") variant( "mpi_thread", From c06517b445387cbfd9dae626a081b5a8259d2a15 Mon Sep 17 00:00:00 2001 From: Rick Grubin Date: Mon, 17 Aug 2026 18:02:49 -0500 Subject: [PATCH 5/5] Further restrain build_system when %oneapi --- repos/spack_repo/builtin/packages/scotch/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/spack_repo/builtin/packages/scotch/package.py b/repos/spack_repo/builtin/packages/scotch/package.py index 129934c28b2..930db10bf38 100644 --- a/repos/spack_repo/builtin/packages/scotch/package.py +++ b/repos/spack_repo/builtin/packages/scotch/package.py @@ -45,7 +45,7 @@ class Scotch(CMakePackage, MakefilePackage): version("5.1.10b", sha256="54c9e7fafefd49d8b2017d179d4f11a655abe10365961583baaddc4eeb6a9add") build_system("cmake", conditional("makefile", when="@:6"), default="cmake") - conflicts("build_system=makefile", when="@7:") + conflicts("build_system=makefile", when="%oneapi") variant("threads", default=True, description="use POSIX Pthreads within Scotch and PT-Scotch") variant(