eospac: add patch to fix selection of compiler flags (#21626)

Patch eospac's Makefile.-linux-gnu.hashes to consider only `$(notdir
$(F90))` when constructing a key to look up compiler flags in the
_F90-CPUINFO_COMP_FLAGS associative array.

This patch was accepted into eospac itself after the release of
6.4.2beta, so apply it only to 6.4.2beta and earlier releases.
This commit is contained in:
Gabriel Rockefeller 2021-03-10 18:47:13 -07:00 committed by GitHub
parent f346db83ac
commit 821769c95e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 26 additions and 0 deletions

View file

@ -0,0 +1,23 @@
--- a/Source/config/Makefile.-linux-gnu.hashes 2019-10-12 12:16:17.000000000 -0600
+++ b/Source/config/Makefile.-linux-gnu.hashes 2020-09-25 15:14:45.990734000 -0600
@@ -267,9 +267,9 @@
ifneq ($(strip $(CPUFLAGS)),)
KEYLIST = $(call keys,_F90-CPUINFO_COMP_FLAGS)
- MYKEYS = $(addprefix $(F90)-$(_F90_MAJOR_VERSION)-,$(CPUFLAGS))
+ MYKEYS = $(addprefix $(notdir $(F90))-$(_F90_MAJOR_VERSION)-,$(CPUFLAGS))
SHORTCUT = $(filter $(MYKEYS),$(KEYLIST))
- OTHER = $(subst $(F90)-$(_F90_MAJOR_VERSION)-,,$(filter-out $(SHORTCUT),$(MYKEYS)))
+ OTHER = $(subst $(notdir $(F90))-$(_F90_MAJOR_VERSION)-,,$(filter-out $(SHORTCUT),$(MYKEYS)))
# $(warning CPUFLAGS : "$(CPUFLAGS)")
# $(warning KEYLIST : $(KEYLIST))
# $(warning MYKEYS : $(MYKEYS))
@@ -284,7 +284,7 @@
ifeq ($(ALT_SUBDIR_Key1),craype-mic-knl)
# define the default _CPUINFO_FLAGS for the craype-mic-knl
- _CPUINFO_FLAGS += $(call get,_F90-CPUINFO_COMP_FLAGS,$(F90)-$(_F90_MAJOR_VERSION)-knl)
+ _CPUINFO_FLAGS += $(call get,_F90-CPUINFO_COMP_FLAGS,$(notdir $(F90))-$(_F90_MAJOR_VERSION)-knl)
else
# define the default _CPUINFO_FLAGS
_CPUINFO_FLAGS += $(call get,_F90-CPUINFO_COMP_FLAGS,$(notdir $(F90)-$(_F90_MAJOR_VERSION)-$(lastword $(_SUPPORTED_CPUINFO_FLAGS))))

View file

@ -46,6 +46,9 @@ class Eospac(Package):
# This patch allows the use of spack's compile wrapper 'flang'
patch('flang.patch', when='@:6.4.0beta.2%clang')
patch('frt.patch', when='%fj')
# This patch corrects EOSPAC's selection of compiler flags when
# compilers are specified using absolute pathnames.
patch('cpuinfo_comp_flags_key.patch', when='@:6.4.1,6.4.2beta')
def install(self, spec, prefix):
with working_dir('Source'):