From 0e2fa561f3a12dadabe192a3c07cfe934859c50b Mon Sep 17 00:00:00 2001 From: Scott McMillan Date: Wed, 20 Jan 2021 15:51:06 -0600 Subject: Perl: NVIDIA HPC SDK updates (#21177) * Perl: NVIDIA HPC SDK updates * fix indentation Co-authored-by: Scott McMillan --- .../repos/builtin/packages/perl/nvhpc-5.30.patch | 88 ++++++++++++++++++++++ var/spack/repos/builtin/packages/perl/nvhpc.patch | 88 ---------------------- var/spack/repos/builtin/packages/perl/package.py | 4 +- 3 files changed, 91 insertions(+), 89 deletions(-) create mode 100644 var/spack/repos/builtin/packages/perl/nvhpc-5.30.patch delete mode 100644 var/spack/repos/builtin/packages/perl/nvhpc.patch diff --git a/var/spack/repos/builtin/packages/perl/nvhpc-5.30.patch b/var/spack/repos/builtin/packages/perl/nvhpc-5.30.patch new file mode 100644 index 0000000000..5f3373bd1b --- /dev/null +++ b/var/spack/repos/builtin/packages/perl/nvhpc-5.30.patch @@ -0,0 +1,88 @@ +--- a/Configure 2020-10-08 12:20:33.969182412 -0700 ++++ b/Configure 2020-10-08 12:20:47.835314546 -0700 +@@ -4971,7 +4971,7 @@ + # and usrinc directly from the compiler. + # Note that ccname for clang is also gcc. + case "$ccname" in +- gcc) ++ XXX) + $echo 'extern int foo;' > try.c + set X `$cppstdin -v try.c 2>&1 | $awk '/^#include '$(BASEEXT)$(OBJ_EXT) XSUB-undef-XS_VERSION$(OBJ_EXT) XSUB-redefined-macros$(OBJ_EXT) $(O_FILES)'. $dtrace_o, + realclean => {FILES => 'const-c.inc const-xs.inc'}, + ($Config{gccversion} && $Config{d_attribute_deprecated} ? +- (CCFLAGS => $Config{ccflags} . ' -Wno-deprecated-declarations') : ()), ++ (CCFLAGS => $Config{ccflags}) : ()), + depend => { 'core.o' => 'core_or_not.inc', + 'notcore.o' => 'core_or_not.inc' }, + ); +--- a/Makefile.SH 2020-10-08 15:24:40.457848934 -0700 ++++ b/Makefile.SH 2020-10-08 15:25:21.289415093 -0700 +@@ -1140,8 +1140,8 @@ + # $(PERL_EXE) and ext because pod_lib.pl needs Digest::MD5 + # But also this ensures that all extensions are built before we try to scan + # them, which picks up Devel::PPPort's documentation. +-pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc +- $(RUN_PERL) -f pod/buildtoc -q ++pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) $(MINIPERL_EXE) pod/buildtoc ++ $(MINIPERL) -f pod/buildtoc -q + + pod/perlapi.pod: pod/perlintern.pod + +@@ -1198,8 +1198,8 @@ + $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' + install.perl: $(INSTALL_DEPENDENCE) installperl +- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) ++ $(MINIPERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) + -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` + + !NO!SUBS! diff --git a/var/spack/repos/builtin/packages/perl/nvhpc.patch b/var/spack/repos/builtin/packages/perl/nvhpc.patch deleted file mode 100644 index 5f3373bd1b..0000000000 --- a/var/spack/repos/builtin/packages/perl/nvhpc.patch +++ /dev/null @@ -1,88 +0,0 @@ ---- a/Configure 2020-10-08 12:20:33.969182412 -0700 -+++ b/Configure 2020-10-08 12:20:47.835314546 -0700 -@@ -4971,7 +4971,7 @@ - # and usrinc directly from the compiler. - # Note that ccname for clang is also gcc. - case "$ccname" in -- gcc) -+ XXX) - $echo 'extern int foo;' > try.c - set X `$cppstdin -v try.c 2>&1 | $awk '/^#include '$(BASEEXT)$(OBJ_EXT) XSUB-undef-XS_VERSION$(OBJ_EXT) XSUB-redefined-macros$(OBJ_EXT) $(O_FILES)'. $dtrace_o, - realclean => {FILES => 'const-c.inc const-xs.inc'}, - ($Config{gccversion} && $Config{d_attribute_deprecated} ? -- (CCFLAGS => $Config{ccflags} . ' -Wno-deprecated-declarations') : ()), -+ (CCFLAGS => $Config{ccflags}) : ()), - depend => { 'core.o' => 'core_or_not.inc', - 'notcore.o' => 'core_or_not.inc' }, - ); ---- a/Makefile.SH 2020-10-08 15:24:40.457848934 -0700 -+++ b/Makefile.SH 2020-10-08 15:25:21.289415093 -0700 -@@ -1140,8 +1140,8 @@ - # $(PERL_EXE) and ext because pod_lib.pl needs Digest::MD5 - # But also this ensures that all extensions are built before we try to scan - # them, which picks up Devel::PPPort's documentation. --pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc -- $(RUN_PERL) -f pod/buildtoc -q -+pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) $(MINIPERL_EXE) pod/buildtoc -+ $(MINIPERL) -f pod/buildtoc -q - - pod/perlapi.pod: pod/perlintern.pod - -@@ -1198,8 +1198,8 @@ - $spitshell >>$Makefile <>$Makefile <<'!NO!SUBS!' - install.perl: $(INSTALL_DEPENDENCE) installperl -- $(RUN_PERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) -+ $(MINIPERL) installperl --destdir=$(DESTDIR) $(INSTALLFLAGS) $(STRIPFLAGS) - -@test ! -s extras.lst || PATH="`pwd`:\${PATH}" PERL5LIB="`pwd`/lib" \$(RUN_PERL) -Ilib -MCPAN -e '@ARGV&&install(@ARGV)' `cat extras.lst` - - !NO!SUBS! diff --git a/var/spack/repos/builtin/packages/perl/package.py b/var/spack/repos/builtin/packages/perl/package.py index f6bec31921..c3db09ac4f 100644 --- a/var/spack/repos/builtin/packages/perl/package.py +++ b/var/spack/repos/builtin/packages/perl/package.py @@ -77,7 +77,9 @@ class Perl(Package): # Perl doesn't use Autotools, it should subclass Package patch('macos-11-version-check.patch', when='@5.24.1:5.32.0 platform=darwin') # Enable builds with the NVIDIA compiler - patch('nvhpc.patch', when='%nvhpc') + patch('nvhpc-5.30.patch', when='@5.30.0:5.30.99 %nvhpc') + conflicts('@5.32.0:', when='%nvhpc', + msg='The NVIDIA compilers are incompatible with version 5.32 and later') # Installing cpanm alongside the core makes it safe and simple for # people/projects to install their own sets of perl modules. Not -- cgit v1.2.3-70-g09d2