summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorm-shunji <76516098+m-shunji@users.noreply.github.com>2024-01-24 05:41:59 +0900
committerGitHub <noreply@github.com>2024-01-23 12:41:59 -0800
commit8999b0c178dc6a54eeb090fdb33d3f1eac11f08e (patch)
tree0302ab4de248260598974ed5d73c781a256e3a85 /var
parenta68fcb2fb80a05dc677c9f6db5f95fcf4e4bb4ea (diff)
downloadspack-8999b0c178dc6a54eeb090fdb33d3f1eac11f08e.tar.gz
spack-8999b0c178dc6a54eeb090fdb33d3f1eac11f08e.tar.bz2
spack-8999b0c178dc6a54eeb090fdb33d3f1eac11f08e.tar.xz
spack-8999b0c178dc6a54eeb090fdb33d3f1eac11f08e.zip
elpa: fix to build with fujitsu compiler (#42231)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/elpa/fujitsu.patch65
-rw-r--r--var/spack/repos/builtin/packages/elpa/package.py10
2 files changed, 74 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/elpa/fujitsu.patch b/var/spack/repos/builtin/packages/elpa/fujitsu.patch
new file mode 100644
index 0000000000..d3600cf6bc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/elpa/fujitsu.patch
@@ -0,0 +1,65 @@
+From 8bda2149e4398bb6e6b66e601151966c91f9ec78 Mon Sep 17 00:00:00 2001
+From: m-shunji <m.shunji@fujitsu.com>
+Date: Wed, 13 Sep 2023 17:58:26 +0900
+Subject: [PATCH] Fix compile error in disabling openmp
+
+---
+ src/elpa_impl_math_template.F90 | 6 +++---
+ test/Fortran/test_autotune.F90 | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/elpa_impl_math_template.F90 b/src/elpa_impl_math_template.F90
+index f87a0ad..b41c0c3 100644
+--- a/src/elpa_impl_math_template.F90
++++ b/src/elpa_impl_math_template.F90
+@@ -888,10 +888,10 @@
+ #endif
+ #ifdef COMPLEXCASE
+ #ifdef DOUBLE_PRECISION_COMPLEX
+- & !bind(C, name="elpa_solve_tridiagonal_dc")
++ bind(C, name="elpa_solve_tridiagonal_dc")
+ #endif
+ #ifdef SINGLE_PRECISION_COMPLEX
+- & !bind(C, name="elpa_solve_tridiagonal_fc")
++ bind(C, name="elpa_solve_tridiagonal_fc")
+ #endif
+ #endif
+
+@@ -913,4 +913,4 @@
+ &ELPA_IMPL_SUFFIX&
+ & (self, d, e, q, error)
+ end subroutine
+-
+\ No newline at end of file
++
+diff --git a/test/Fortran/test_autotune.F90 b/test/Fortran/test_autotune.F90
+index 4662564..5355ab3 100644
+--- a/test/Fortran/test_autotune.F90
++++ b/test/Fortran/test_autotune.F90
+@@ -312,8 +312,8 @@ program test
+ status = check_correctness_analytic(na, nev, ev, z, nblk, myid, np_rows, np_cols, my_prow, my_pcol, &
+ .true., .true., print_times=.false.)
+ a(:,:) = as(:,:)
+- call e%autotune_print_state(tune_state)
+- call e%autotune_save_state(tune_state, "saved_state_"//trim(iter_string)//".txt")
++ call e%autotune_print_state(tune_state, error_elpa)
++ call e%autotune_save_state(tune_state, "saved_state_"//trim(iter_string)//".txt", error_elpa)
+ end do
+
+ !! set and print the autotuned-settings
+--
+1.8.3.1
+diff --git a/manual_cpp b/manual_cpp
+index 6f74a79..dbdfc65 100755
+--- a/manual_cpp
++++ b/manual_cpp
+@@ -46,7 +46,7 @@ elif len(files) == 0:
+ elif len(files) == 1:
+ file, = files
+
+-tmp_filename = "manually_preprocessed_" + file.replace("/", "_")
++tmp_filename = "manually_preprocessed_" + file.replace("/", "_").replace("-", "_")
+
+ try:
+ output = args.index("-o")
+
diff --git a/var/spack/repos/builtin/packages/elpa/package.py b/var/spack/repos/builtin/packages/elpa/package.py
index cd9f49f4c5..8e0ac1e70f 100644
--- a/var/spack/repos/builtin/packages/elpa/package.py
+++ b/var/spack/repos/builtin/packages/elpa/package.py
@@ -49,6 +49,8 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
variant("openmp", default=True, description="Activates OpenMP support")
variant("mpi", default=True, description="Activates MPI support")
+ patch("fujitsu.patch", when="%fj")
+
depends_on("autoconf", type="build", when="@master")
depends_on("automake", type="build", when="@master")
@@ -125,7 +127,7 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
if spec.target.family != "x86_64":
options.append("--disable-sse-assembly")
- if "%aocc" in spec:
+ if "%aocc" in spec or "%fj" in spec:
options.append("--disable-shared")
options.append("--enable-static")
@@ -139,6 +141,12 @@ class Elpa(AutotoolsPackage, CudaPackage, ROCmPackage):
if "%aocc" in spec:
options.extend(["FCFLAGS=-O3", "CFLAGS=-O3"])
+ if "%fj" in spec:
+ options.append("--disable-Fortran2008-features")
+ options.append("--enable-FUGAKU")
+ if "+openmp" in spec:
+ options.extend(["FCFLAGS=-Kparallel"])
+
cuda_flag = "nvidia-gpu"
if "+cuda" in spec:
prefix = spec["cuda"].prefix