summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorAnnop Wongwathanarat <annop.wongwathanarat@gmail.com>2023-03-15 11:40:00 +0000
committerGitHub <noreply@github.com>2023-03-15 12:40:00 +0100
commit99893a64754047f1ad539509fb5b79b780d7477f (patch)
tree04d5c41d15634106fc8bb8f7189f1202aa458380 /var
parent5f8f89b9c961782047fb2048f1255e6b374a1b54 (diff)
downloadspack-99893a64754047f1ad539509fb5b79b780d7477f.tar.gz
spack-99893a64754047f1ad539509fb5b79b780d7477f.tar.bz2
spack-99893a64754047f1ad539509fb5b79b780d7477f.tar.xz
spack-99893a64754047f1ad539509fb5b79b780d7477f.zip
wrf: fix patches for aarch64 config (#35984)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/wrf/package.py8
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64.patch49
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64_acfl.patch63
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64.patch72
-rw-r--r--var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64_acfl.patch72
5 files changed, 236 insertions, 28 deletions
diff --git a/var/spack/repos/builtin/packages/wrf/package.py b/var/spack/repos/builtin/packages/wrf/package.py
index c186d7785e..7a488d2db3 100644
--- a/var/spack/repos/builtin/packages/wrf/package.py
+++ b/var/spack/repos/builtin/packages/wrf/package.py
@@ -150,12 +150,16 @@ class Wrf(Package):
patch("patches/4.2/var.gen_be.Makefile.patch", when="@4.2:")
patch("patches/4.2/Makefile.patch", when="@4.2")
patch("patches/4.2/tirpc_detect.patch", when="@4.2")
- patch("patches/4.2/add_aarch64.patch", when="@4.2:")
+ patch("patches/4.2/add_aarch64.patch", when="@4.2:4.3.1 %gcc")
+ patch("patches/4.2/add_aarch64_acfl.patch", when="@4.2:4.3.1 %arm")
patch("patches/4.2/configure_aocc_2.3.patch", when="@4.2 %aocc@:2.4.0")
patch("patches/4.2/configure_aocc_3.0.patch", when="@4.2: %aocc@3.0.0:3.2.0")
patch("patches/4.2/hdf5_fix.patch", when="@4.2: %aocc")
patch("patches/4.2/derf_fix.patch", when="@4.2 %aocc")
+ patch("patches/4.3/add_aarch64.patch", when="@4.3.2: %gcc")
+ patch("patches/4.3/add_aarch64_acfl.patch", when="@4.3.2: %arm")
+
patch("patches/4.4/arch.postamble.patch", when="@4.4:")
patch("patches/4.4/configure.patch", when="@4.4:")
# Various syntax fixes found by FPT tool
@@ -325,7 +329,7 @@ class Wrf(Package):
# Remove broken default options...
self.do_configure_fixup()
- if self.spec.compiler.name not in ["intel", "gcc", "aocc", "fj"]:
+ if self.spec.compiler.name not in ["intel", "gcc", "aocc", "fj", "arm"]:
raise InstallError(
"Compiler %s not currently supported for WRF build." % self.spec.compiler.name
)
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64.patch b/var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64.patch
index 065c131b57..58f3085ea2 100644
--- a/var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64.patch
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64.patch
@@ -1,17 +1,17 @@
-From 9eb0c715cfcefb3df204200d44f5e8526bd14e31 Mon Sep 17 00:00:00 2001
-From: Phil Tooley <phil.tooley@nag.co.uk>
-Date: Fri, 16 Oct 2020 13:20:24 +0100
-Subject: [PATCH] add aarch64 gcc support
-
----
- arch/configure.defaults | 43 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 43 insertions(+)
-
diff --git a/arch/configure.defaults b/arch/configure.defaults
-index 7767a81e..bfd2a802 100644
+index 6e98941a..17a94e48 100644
--- a/arch/configure.defaults
+++ b/arch/configure.defaults
-@@ -1975,6 +1975,49 @@ LIB_BUNDLED = \
+@@ -44,7 +44,7 @@ RLFLAGS =
+ CC_TOOLS = cc
+
+ ###########################################################
+-#ARCH Linux i486 i586 i686 armv7l aarch64, gfortran compiler with gcc #serial smpar dmpar dm+sm
++#ARCH Linux i486 i586 i686, gfortran compiler with gcc #serial smpar dmpar dm+sm
+ #
+ DESCRIPTION = GNU ($SFC/$SCC)
+ DMPARALLEL = # 1
+@@ -1981,6 +1981,49 @@ LIB_BUNDLED = \
$(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o \
$(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
@@ -26,7 +26,7 @@ index 7767a81e..bfd2a802 100644
+SFC = gfortran
+SCC = gcc
+CCOMP = gcc
-+DM_FC = mpif90
++DM_FC = mpif90
+DM_CC = mpicc -DMPI2_SUPPORT
+FC = CONFIGURE_FC
+CC = CONFIGURE_CC
@@ -34,33 +34,30 @@ index 7767a81e..bfd2a802 100644
+RWORDSIZE = CONFIGURE_RWORDSIZE
+PROMOTION = #-fdefault-real-8
+ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
-+CFLAGS_LOCAL = -w -O3 -c -march=native -mtune=native
-+DFLAGS_LOCAL =
-+CPLUSPLUSLIB =
++CFLAGS_LOCAL = -w -O3 -c
++DFLAGS_LOCAL =
++CPLUSPLUSLIB =
+ESMF_LDFLAG = $(CPLUSPLUSLIB)
-+FCOPTIM = -O3 -ftree-vectorize -funroll-loops -march=native -mtune=native
-+FCREDUCEDOPT = $(FCOPTIM)
-+FCNOOPT = -O0
++FCOPTIM = -Ofast -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations -funroll-loops
++FCREDUCEDOPT = $(FCOPTIM)
++FCNOOPT = -O0
+FCDEBUG = -g # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
+FORMAT_FIXED = -ffixed-form
+FORMAT_FREE = -ffree-form -ffree-line-length-none
-+FCSUFFIX =
++FCCOMPAT =
+BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
-+FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO)
++FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
+FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
-+MODULE_SRCH_FLAG =
++MODULE_SRCH_FLAG =
+TRADFLAG = CONFIGURE_TRADFLAG
+CPP = /lib/cpp CONFIGURE_CPPFLAGS
+AR = ar
+ARFLAGS = ru
+M4 = m4 -G
+RANLIB = ranlib
-+RLFLAGS =
-+CC_TOOLS = $(SCC)
++RLFLAGS =
++CC_TOOLS = $(SCC)
+
#insert new stanza here
###########################################################
---
-2.28.0
-
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64_acfl.patch b/var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64_acfl.patch
new file mode 100644
index 0000000000..3b12a05bb7
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.2/add_aarch64_acfl.patch
@@ -0,0 +1,63 @@
+diff --git a/arch/configure.defaults b/arch/configure.defaults
+index 6e98941a..85d96019 100644
+--- a/arch/configure.defaults
++++ b/arch/configure.defaults
+@@ -44,7 +44,7 @@ RLFLAGS =
+ CC_TOOLS = cc
+
+ ###########################################################
+-#ARCH Linux i486 i586 i686 armv7l aarch64, gfortran compiler with gcc #serial smpar dmpar dm+sm
++#ARCH Linux i486 i586 i686, gfortran compiler with gcc #serial smpar dmpar dm+sm
+ #
+ DESCRIPTION = GNU ($SFC/$SCC)
+ DMPARALLEL = # 1
+@@ -1981,6 +1981,49 @@ LIB_BUNDLED = \
+ $(WRF_SRC_ROOT_DIR)/frame/module_internal_header_util.o \
+ $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
+
++###########################################################
++#ARCH Linux aarch64, armflang compiler #serial smpar dmpar dm+sm
++#
++DESCRIPTION = Arm GNU ($SFC/$SCC): Aarch64
++DMPARALLEL = # 1
++OMPCPP = # -D_OPENMP
++OMP = # -fopenmp
++OMPCC = # -fopenmp
++SFC = armflang
++SCC = armclang
++CCOMP = armclang
++DM_FC = mpif90
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = CONFIGURE_FC
++CC = CONFIGURE_CC
++LD = $(FC)
++RWORDSIZE = CONFIGURE_RWORDSIZE
++PROMOTION = #-fdefault-real-8
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++CFLAGS_LOCAL = -w -O3 -c
++DFLAGS_LOCAL =
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = -Ofast -funroll-loops
++FCREDUCEDOPT = $(FCOPTIM)
++FCNOOPT = -O0
++FCDEBUG = -g # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
++FORMAT_FIXED = -ffixed-form
++FORMAT_FREE = -ffree-form -ffree-line-length-0
++FCCOMPAT =
++BYTESWAPIO = -fconvert=big-endian
++FCBASEOPTS_NO_G = -w $(OMP) $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
++MODULE_SRCH_FLAG =
++TRADFLAG = CONFIGURE_TRADFLAG
++CPP = /lib/cpp CONFIGURE_CPPFLAGS
++AR = ar
++ARFLAGS = ru
++M4 = m4 -G
++RANLIB = ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
++
+ #insert new stanza here
+
+ ###########################################################
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64.patch b/var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64.patch
new file mode 100644
index 0000000000..e24d800938
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64.patch
@@ -0,0 +1,72 @@
+diff --git a/arch/configure.defaults b/arch/configure.defaults
+index 6aa210d7..eead95fb 100644
+--- a/arch/configure.defaults
++++ b/arch/configure.defaults
+@@ -45,7 +45,7 @@ CC_TOOLS = cc
+ NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
+
+ ###########################################################
+-#ARCH Linux i486 i586 i686 armv7l aarch64, gfortran compiler with gcc #serial smpar dmpar dm+sm
++#ARCH Linux i486 i586 i686, gfortran compiler with gcc #serial smpar dmpar dm+sm
+ #
+ DESCRIPTION = GNU ($SFC/$SCC)
+ DMPARALLEL = # 1
+@@ -2023,7 +2023,7 @@ LIB_BUNDLED = \
+ $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
+
+ ###########################################################
+-#ARCH Linux armv7l aarch64, gnu OpenMPI #serial smpar dmpar dm+sm
++#ARCH Linux , gnu OpenMPI #serial smpar dmpar dm+sm
+ #
+ DESCRIPTION = GNU ($SFC/$SCC)
+ DMPARALLEL = # 1
+@@ -2066,4 +2066,47 @@ RLFLAGS =
+ CC_TOOLS = $(SCC)
+ NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
+
++###########################################################
++#ARCH Linux aarch64, gfortran compiler with gcc #serial smpar dmpar dm+sm
++#
++DESCRIPTION = Arm GNU ($SFC/$SCC): Aarch64
++DMPARALLEL = # 1
++OMPCPP = # -D_OPENMP
++OMP = # -fopenmp
++OMPCC = # -fopenmp
++SFC = gfortran
++SCC = gcc
++CCOMP = gcc
++DM_FC = mpif90
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = CONFIGURE_FC
++CC = CONFIGURE_CC
++LD = $(FC)
++RWORDSIZE = CONFIGURE_RWORDSIZE
++PROMOTION = #-fdefault-real-8
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++CFLAGS_LOCAL = -w -O3 -c
++DFLAGS_LOCAL =
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = -Ofast -fno-expensive-optimizations -fno-reciprocal-math -fsigned-zeros -fno-unsafe-math-optimizations -funroll-loops
++FCREDUCEDOPT = $(FCOPTIM)
++FCNOOPT = -O0
++FCDEBUG = -g # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
++FORMAT_FIXED = -ffixed-form
++FORMAT_FREE = -ffree-form -ffree-line-length-none
++FCCOMPAT =
++BYTESWAPIO = -fconvert=big-endian -frecord-marker=4
++FCBASEOPTS_NO_G = -w $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
++MODULE_SRCH_FLAG =
++TRADFLAG = CONFIGURE_TRADFLAG
++CPP = /lib/cpp CONFIGURE_CPPFLAGS
++AR = ar
++ARFLAGS = ru
++M4 = m4 -G
++RANLIB = ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
++
+ #insert new stanza here
+
+ ###########################################################
diff --git a/var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64_acfl.patch b/var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64_acfl.patch
new file mode 100644
index 0000000000..acaba5a761
--- /dev/null
+++ b/var/spack/repos/builtin/packages/wrf/patches/4.3/add_aarch64_acfl.patch
@@ -0,0 +1,72 @@
+diff --git a/arch/configure.defaults b/arch/configure.defaults
+index 6aa210d7..45630015 100644
+--- a/arch/configure.defaults
++++ b/arch/configure.defaults
+@@ -45,7 +45,7 @@ CC_TOOLS = cc
+ NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
+
+ ###########################################################
+-#ARCH Linux i486 i586 i686 armv7l aarch64, gfortran compiler with gcc #serial smpar dmpar dm+sm
++#ARCH Linux i486 i586 i686, gfortran compiler with gcc #serial smpar dmpar dm+sm
+ #
+ DESCRIPTION = GNU ($SFC/$SCC)
+ DMPARALLEL = # 1
+@@ -2023,7 +2023,7 @@ LIB_BUNDLED = \
+ $(WRF_SRC_ROOT_DIR)/frame/pack_utils.o
+
+ ###########################################################
+-#ARCH Linux armv7l aarch64, gnu OpenMPI #serial smpar dmpar dm+sm
++#ARCH Linux , gnu OpenMPI #serial smpar dmpar dm+sm
+ #
+ DESCRIPTION = GNU ($SFC/$SCC)
+ DMPARALLEL = # 1
+@@ -2066,4 +2066,47 @@ RLFLAGS =
+ CC_TOOLS = $(SCC)
+ NETCDFPAR_BUILD = CONFIGURE_NETCDFPAR_BUILD
+
++###########################################################
++#ARCH Linux aarch64, armflang compiler #serial smpar dmpar dm+sm
++#
++DESCRIPTION = Arm GNU ($SFC/$SCC): Aarch64
++DMPARALLEL = # 1
++OMPCPP = # -D_OPENMP
++OMP = # -fopenmp
++OMPCC = # -fopenmp
++SFC = armflang
++SCC = armclang
++CCOMP = armclang
++DM_FC = mpif90
++DM_CC = mpicc -DMPI2_SUPPORT
++FC = CONFIGURE_FC
++CC = CONFIGURE_CC
++LD = $(FC)
++RWORDSIZE = CONFIGURE_RWORDSIZE
++PROMOTION = #-fdefault-real-8
++ARCH_LOCAL = -DNONSTANDARD_SYSTEM_SUBR -DWRF_USE_CLM
++CFLAGS_LOCAL = -w -O3 -c
++DFLAGS_LOCAL =
++CPLUSPLUSLIB =
++ESMF_LDFLAG = $(CPLUSPLUSLIB)
++FCOPTIM = -Ofast -funroll-loops
++FCREDUCEDOPT = $(FCOPTIM)
++FCNOOPT = -O0
++FCDEBUG = -g # -g $(FCNOOPT) # -ggdb -fbacktrace -fcheck=bounds,do,mem,pointer -ffpe-trap=invalid,zero,overflow
++FORMAT_FIXED = -ffixed-form
++FORMAT_FREE = -ffree-form -ffree-line-length-0
++FCCOMPAT =
++BYTESWAPIO = -fconvert=big-endian
++FCBASEOPTS_NO_G = -w $(OMP) $(FORMAT_FREE) $(BYTESWAPIO) $(FCCOMPAT)
++FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG)
++MODULE_SRCH_FLAG =
++TRADFLAG = CONFIGURE_TRADFLAG
++CPP = /lib/cpp CONFIGURE_CPPFLAGS
++AR = ar
++ARFLAGS = ru
++M4 = m4 -G
++RANLIB = ranlib
++RLFLAGS =
++CC_TOOLS = $(SCC)
++
+ #insert new stanza here
+
+ ###########################################################