From df6d8d913bd9e8c8fc704fc7b83ece9e0b9a4b37 Mon Sep 17 00:00:00 2001 From: serbanmaerean Date: Tue, 13 Jun 2017 09:09:59 -0400 Subject: Fix/mumps (#4453) * Added magma package * Incorporated Serban's change * mumps: Fix compiler error with IBM XL Split the patching between v 5.0.2 and 5.1.1 --- .../mumps/mumps-5.0.2-spectrum-mpi-xl.patch | 75 ++++++++++++++++++++ .../mumps/mumps-5.1.1-spectrum-mpi-xl.patch | 79 ++++++++++++++++++++++ var/spack/repos/builtin/packages/mumps/package.py | 8 ++- .../builtin/packages/mumps/spectrum-mpi-xl.patch | 75 -------------------- 4 files changed, 159 insertions(+), 78 deletions(-) create mode 100644 var/spack/repos/builtin/packages/mumps/mumps-5.0.2-spectrum-mpi-xl.patch create mode 100644 var/spack/repos/builtin/packages/mumps/mumps-5.1.1-spectrum-mpi-xl.patch delete mode 100644 var/spack/repos/builtin/packages/mumps/spectrum-mpi-xl.patch (limited to 'var') diff --git a/var/spack/repos/builtin/packages/mumps/mumps-5.0.2-spectrum-mpi-xl.patch b/var/spack/repos/builtin/packages/mumps/mumps-5.0.2-spectrum-mpi-xl.patch new file mode 100644 index 0000000000..d2bd17cb44 --- /dev/null +++ b/var/spack/repos/builtin/packages/mumps/mumps-5.0.2-spectrum-mpi-xl.patch @@ -0,0 +1,75 @@ +diff -Naur MUMPS_5.0.1/Makefile MUMPS_5.0.1-patched/MUMPS_5.0.1/Makefile +--- ./Makefile 2015-07-23 13:08:29.000000000 -0400 ++++ ./Makefile 2016-12-05 14:08:30.788638382 -0500 +@@ -62,7 +62,7 @@ + $(libdir)/libpord$(PLAT)$(LIBEXT): + if [ "$(LPORDDIR)" != "" ] ; then \ + cd $(LPORDDIR); \ +- $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ ++ $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" SAR="$(SAR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ + fi; + if [ "$(LPORDDIR)" != "" ] ; then \ + cp $(LPORDDIR)/libpord$(LIBEXT) $@; \ +diff -Naur MUMPS_5.0.1/PORD/lib/Makefile MUMPS_5.0.1-patched/PORD/lib/MUMPS_5.0.1/Makefile +--- ./PORD/lib/Makefile 2015-07-23 13:08:29.000000000 -0400 ++++ ./PORD/lib/Makefile 2016-12-05 11:26:24.785317467 -0500 +@@ -25,7 +25,7 @@ + $(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o + + libpord$(LIBEXT):$(OBJS) +- $(AR)$@ $(OBJS) ++ $(SAR)$@ $(OBJS) + $(RANLIB) $@ + + clean: +diff -Naur MUMPS_5.0.1/examples/Makefile MUMPS_5.0.1-patched/examples/Makefile +--- ./examples/Makefile 2015-07-23 13:08:32.000000000 -0400 ++++ ./examples/Makefile 2016-12-05 14:36:10.692857906 -0500 +@@ -25,37 +25,30 @@ + + LIBSMUMPS = $(libdir)/libsmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-ssimpletest: $(LIBSMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) ssimpletest.o $(LIBSMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++ssimpletest: $(LIBSMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include ssimpletest.F $(LIBSMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + LIBDMUMPS = $(libdir)/libdmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-dsimpletest: $(LIBDMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) dsimpletest.o $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++dsimpletest: $(LIBDMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include dsimpletest.F $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + LIBCMUMPS = $(libdir)/libcmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-csimpletest: $(LIBCMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) csimpletest.o $(LIBCMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++csimpletest: $(LIBCMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include csimpletest.F $(LIBCMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + LIBZMUMPS = $(libdir)/libzmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-zsimpletest: $(LIBZMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) zsimpletest.o $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++zsimpletest: $(LIBZMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include zsimpletest.F $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + +-c_example: $(LIBDMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) $@.o $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) +- +- +-.SUFFIXES: .c .F .o +-.F.o: +- $(FC) $(OPTF) $(INCS) -I. -I$(topdir)/include -c $*.F $(OUTF)$*.o +-.c.o: +- $(CC) $(OPTC) $(INCS) $(CDEFS) -I. -I$(topdir)/include -I$(topdir)/src -c $*.c $(OUTC)$*.o ++c_example: $(LIBDMUMPS) $$@.c ++ $(CC) -o $@ $(OPTC) $(INCS) -I. -I$(topdir)/include c_example.c $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + $(libdir)/libsmumps$(PLAT)$(LIBEXT): diff --git a/var/spack/repos/builtin/packages/mumps/mumps-5.1.1-spectrum-mpi-xl.patch b/var/spack/repos/builtin/packages/mumps/mumps-5.1.1-spectrum-mpi-xl.patch new file mode 100644 index 0000000000..8d9c1fb93a --- /dev/null +++ b/var/spack/repos/builtin/packages/mumps/mumps-5.1.1-spectrum-mpi-xl.patch @@ -0,0 +1,79 @@ +diff -Naur MUMPS_5.0.1/Makefile MUMPS_5.0.1-patched/MUMPS_5.0.1/Makefile +--- ./Makefile 2015-07-23 13:08:29.000000000 -0400 ++++ ./Makefile 2016-12-05 14:08:30.788638382 -0500 +@@ -62,7 +62,7 @@ + $(libdir)/libpord$(PLAT)$(LIBEXT): + if [ "$(LPORDDIR)" != "" ] ; then \ + cd $(LPORDDIR); \ +- $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ ++ $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" SAR="$(SAR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ + fi; + if [ "$(LPORDDIR)" != "" ] ; then \ + cp $(LPORDDIR)/libpord$(LIBEXT) $@; \ +diff -Naur MUMPS_5.0.1/PORD/lib/Makefile MUMPS_5.0.1-patched/PORD/lib/MUMPS_5.0.1/Makefile +--- ./PORD/lib/Makefile 2015-07-23 13:08:29.000000000 -0400 ++++ ./PORD/lib/Makefile 2016-12-05 11:26:24.785317467 -0500 +@@ -25,7 +25,7 @@ + $(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o + + libpord$(LIBEXT):$(OBJS) +- $(AR)$@ $(OBJS) ++ $(SAR)$@ $(OBJS) + $(RANLIB) $@ + + clean: +--- ./examples/Makefile 2017-06-07 15:40:49.366671322 -0400 ++++ ./examples/Makefile 2017-06-07 15:47:55.666685772 -0400 +@@ -26,40 +26,33 @@ + + LIBSMUMPS = $(libdir)/libsmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-ssimpletest: $(LIBSMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) ssimpletest.o $(LIBSMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++ssimpletest: $(LIBSMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include ssimpletest.F $(LIBSMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + LIBDMUMPS = $(libdir)/libdmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-dsimpletest: $(LIBDMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) dsimpletest.o $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++dsimpletest: $(LIBDMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include dsimpletest.F $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + LIBCMUMPS = $(libdir)/libcmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-csimpletest: $(LIBCMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) csimpletest.o $(LIBCMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++csimpletest: $(LIBCMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include csimpletest.F $(LIBCMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + LIBZMUMPS = $(libdir)/libzmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) + +-zsimpletest: $(LIBZMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) zsimpletest.o $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++zsimpletest: $(LIBZMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include zsimpletest.F $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + +-c_example: $(LIBDMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) $@.o $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) ++c_example: $(LIBDMUMPS) $$@.c ++ $(CC) -o $@ $(OPTC) $(INCS) -I. -I$(topdir)/include c_example.c $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + +-multiple_arithmetics_example: $(LIBSMUMPS) $(LIBDMUMPS) $(LIBCMUMPS) $(LIBZMUMPS) $$@.o +- $(FL) -o $@ $(OPTL) $@.o $(LIBSMUMPS) $(LIBDMUMPS) $(LIBCMUMPS) $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) +- +- +-.SUFFIXES: .c .F .o +-.F.o: +- $(FC) $(OPTF) $(INCS) -I. -I$(topdir)/include -c $*.F $(OUTF)$*.o +-.c.o: +- $(CC) $(OPTC) $(INCS) $(CDEFS) -I. -I$(topdir)/include -I$(topdir)/src -c $*.c $(OUTC)$*.o ++multiple_arithmetics_example: $(LIBSMUMPS) $(LIBDMUMPS) $(LIBCMUMPS) $(LIBZMUMPS) $$@.F ++ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include multiple_arithmetics_example.F $(LIBSMUMPS) $(LIBDMUMPS) $(LIBCMUMPS) $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) + + + $(libdir)/libsmumps$(PLAT)$(LIBEXT): diff --git a/var/spack/repos/builtin/packages/mumps/package.py b/var/spack/repos/builtin/packages/mumps/package.py index f28941fda3..5bddeaba5d 100644 --- a/var/spack/repos/builtin/packages/mumps/package.py +++ b/var/spack/repos/builtin/packages/mumps/package.py @@ -69,8 +69,10 @@ class Mumps(Package): depends_on('scalapack', when='+mpi') depends_on('mpi', when='+mpi') - patch('spectrum-mpi-xl.patch', when='%xl^spectrum-mpi') - patch('spectrum-mpi-xl.patch', when='%xl_r^spectrum-mpi') + patch('mumps-5.0.2-spectrum-mpi-xl.patch', when='@5.0.2%xl^spectrum-mpi') + patch('mumps-5.0.2-spectrum-mpi-xl.patch', when='@5.0.2%xl_r^spectrum-mpi') + patch('mumps-5.1.1-spectrum-mpi-xl.patch', when='@5.1.1%xl^spectrum-mpi') + patch('mumps-5.1.1-spectrum-mpi-xl.patch', when='@5.1.1%xl_r^spectrum-mpi') # this function is not a patch function because in case scalapack # is needed it uses self.spec['scalapack'].fc_link set by the @@ -147,7 +149,7 @@ class Mumps(Package): else: if self.compiler.name == "xl" or self.compiler.name == "xl_r": makefile_conf.extend( - ['OPTF = -O3', + ['OPTF = -O3 -qfixed', 'OPTL = %s -O3' % fpic, 'OPTC = %s -O3' % fpic]) else: diff --git a/var/spack/repos/builtin/packages/mumps/spectrum-mpi-xl.patch b/var/spack/repos/builtin/packages/mumps/spectrum-mpi-xl.patch deleted file mode 100644 index d2bd17cb44..0000000000 --- a/var/spack/repos/builtin/packages/mumps/spectrum-mpi-xl.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -Naur MUMPS_5.0.1/Makefile MUMPS_5.0.1-patched/MUMPS_5.0.1/Makefile ---- ./Makefile 2015-07-23 13:08:29.000000000 -0400 -+++ ./Makefile 2016-12-05 14:08:30.788638382 -0500 -@@ -62,7 +62,7 @@ - $(libdir)/libpord$(PLAT)$(LIBEXT): - if [ "$(LPORDDIR)" != "" ] ; then \ - cd $(LPORDDIR); \ -- $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ -+ $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" SAR="$(SAR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ - fi; - if [ "$(LPORDDIR)" != "" ] ; then \ - cp $(LPORDDIR)/libpord$(LIBEXT) $@; \ -diff -Naur MUMPS_5.0.1/PORD/lib/Makefile MUMPS_5.0.1-patched/PORD/lib/MUMPS_5.0.1/Makefile ---- ./PORD/lib/Makefile 2015-07-23 13:08:29.000000000 -0400 -+++ ./PORD/lib/Makefile 2016-12-05 11:26:24.785317467 -0500 -@@ -25,7 +25,7 @@ - $(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o - - libpord$(LIBEXT):$(OBJS) -- $(AR)$@ $(OBJS) -+ $(SAR)$@ $(OBJS) - $(RANLIB) $@ - - clean: -diff -Naur MUMPS_5.0.1/examples/Makefile MUMPS_5.0.1-patched/examples/Makefile ---- ./examples/Makefile 2015-07-23 13:08:32.000000000 -0400 -+++ ./examples/Makefile 2016-12-05 14:36:10.692857906 -0500 -@@ -25,37 +25,30 @@ - - LIBSMUMPS = $(libdir)/libsmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) - --ssimpletest: $(LIBSMUMPS) $$@.o -- $(FL) -o $@ $(OPTL) ssimpletest.o $(LIBSMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) -+ssimpletest: $(LIBSMUMPS) $$@.F -+ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include ssimpletest.F $(LIBSMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) - - - LIBDMUMPS = $(libdir)/libdmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) - --dsimpletest: $(LIBDMUMPS) $$@.o -- $(FL) -o $@ $(OPTL) dsimpletest.o $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) -+dsimpletest: $(LIBDMUMPS) $$@.F -+ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include dsimpletest.F $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) - - - LIBCMUMPS = $(libdir)/libcmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) - --csimpletest: $(LIBCMUMPS) $$@.o -- $(FL) -o $@ $(OPTL) csimpletest.o $(LIBCMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) -+csimpletest: $(LIBCMUMPS) $$@.F -+ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include csimpletest.F $(LIBCMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) - - - LIBZMUMPS = $(libdir)/libzmumps$(PLAT)$(LIBEXT) $(LIBMUMPS_COMMON) - --zsimpletest: $(LIBZMUMPS) $$@.o -- $(FL) -o $@ $(OPTL) zsimpletest.o $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) -+zsimpletest: $(LIBZMUMPS) $$@.F -+ $(FC) -o $@ $(OPTF) $(INCS) -I. -I$(topdir)/include zsimpletest.F $(LIBZMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) - - --c_example: $(LIBDMUMPS) $$@.o -- $(FL) -o $@ $(OPTL) $@.o $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) -- -- --.SUFFIXES: .c .F .o --.F.o: -- $(FC) $(OPTF) $(INCS) -I. -I$(topdir)/include -c $*.F $(OUTF)$*.o --.c.o: -- $(CC) $(OPTC) $(INCS) $(CDEFS) -I. -I$(topdir)/include -I$(topdir)/src -c $*.c $(OUTC)$*.o -+c_example: $(LIBDMUMPS) $$@.c -+ $(CC) -o $@ $(OPTC) $(INCS) -I. -I$(topdir)/include c_example.c $(LIBDMUMPS) $(LORDERINGS) $(LIBS) $(LIBBLAS) $(LIBOTHERS) - - - $(libdir)/libsmumps$(PLAT)$(LIBEXT): -- cgit v1.2.3-60-g2f50