From 0fcc85d7ea765664227d5179e7307745eba9b762 Mon Sep 17 00:00:00 2001 From: Adrian Reber Date: Sun, 7 Jun 2026 11:44:19 +0000 Subject: [PATCH 1/2] mumps: merge changes from 4.x Signed-off-by: Adrian Reber --- ...Makefile.arm.impi.inc => Makefile.arm.inc} | 34 +++++- .../mumps/SOURCES/Makefile.arm.openmpi.inc | 97 ---------------- .../mumps/SOURCES/Makefile.gnu.impi.inc | 97 ---------------- ...efile.gnu.openmpi.inc => Makefile.gnu.inc} | 34 +++++- ....intel.impi.inc => Makefile.mkl.intel.inc} | 42 +++++-- .../SOURCES/Makefile.mkl.intel.openmpi.inc | 96 ---------------- .../SOURCES/mumps-5.0.0-shared-pord.patch | 61 ---------- .../SOURCES/mumps-5.0.1-shared-mumps.patch | 49 --------- .../parallel-libs/mumps/SPECS/mumps.spec | 104 +++++------------- 9 files changed, 119 insertions(+), 495 deletions(-) rename components/parallel-libs/mumps/SOURCES/{Makefile.arm.impi.inc => Makefile.arm.inc} (76%) delete mode 100644 components/parallel-libs/mumps/SOURCES/Makefile.arm.openmpi.inc delete mode 100644 components/parallel-libs/mumps/SOURCES/Makefile.gnu.impi.inc rename components/parallel-libs/mumps/SOURCES/{Makefile.gnu.openmpi.inc => Makefile.gnu.inc} (76%) rename components/parallel-libs/mumps/SOURCES/{Makefile.mkl.intel.impi.inc => Makefile.mkl.intel.inc} (75%) delete mode 100644 components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.openmpi.inc delete mode 100644 components/parallel-libs/mumps/SOURCES/mumps-5.0.0-shared-pord.patch delete mode 100644 components/parallel-libs/mumps/SOURCES/mumps-5.0.1-shared-mumps.patch diff --git a/components/parallel-libs/mumps/SOURCES/Makefile.arm.impi.inc b/components/parallel-libs/mumps/SOURCES/Makefile.arm.inc similarity index 76% rename from components/parallel-libs/mumps/SOURCES/Makefile.arm.impi.inc rename to components/parallel-libs/mumps/SOURCES/Makefile.arm.inc index 888bf0b284..308954f4bc 100644 --- a/components/parallel-libs/mumps/SOURCES/Makefile.arm.impi.inc +++ b/components/parallel-libs/mumps/SOURCES/Makefile.arm.inc @@ -34,7 +34,7 @@ LPORDDIR = $(topdir)/PORD/lib/ IPORD = -I$(topdir)/PORD/include/ -LPORD = -L$(LPORDDIR) -lpord +LPORD = -L$(LPORDDIR) -lpord$(PLAT) #LMETISDIR = /local/metis/ #IMETIS = # should be provided if you use parmetis, to access parmetis.h @@ -50,6 +50,8 @@ LPORD = -L$(LPORDDIR) -lpord # The following variables will be used in the compilation process. # Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. +# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis +# or in addition with -Dparmetis (if you are using parmetis 3.X or older). #ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis ORDERINGSF = -Dpord ORDERINGSC = $(ORDERINGSF) @@ -60,18 +62,38 @@ IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) #End orderings ######################################################################## -################################################################################ -PLAT = +######################################################################## +# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC... + +# PLAT : use it to add a default suffix to the generated libraries +PLAT = +# Suffix for libraries, -soname and -fPIC options, C and Fortran "-o" option +# may be adapted +LIBEXT_SHARED = .so +SONAME = -soname +SHARED_OPT = -shared +FPIC_OPT = -fPIC +# Adapt/uncomment RPATH_OPT to avoid modifying +# LD_LIBRARY_PATH in case of shared libraries +# RPATH_OPT = -Wl,-rpath,/path/to/MUMPS_x.y.z/lib/ LIBEXT = .a OUTC = -o OUTF = -o -RM = /bin/rm -f +# RM : remove files +RM = /bin/rm -f +# CC : C compiler CC = mpicc +# CC : C compiler FC = mpif77 +# FL : Fortran linker FL = mpif77 -AR = ar vr -#RANLIB = ranlib +# AR : Archive object in a library +# keep a space at the end if options have to be separated from lib name +AR = ar vr +# RANLIB : generate index of an archive file +# (optionnal use "RANLIB = echo" in case of problem) +#RANLIB = ranlib RANLIB = echo SCALAP = -L$(SCALAPACK_LIB) -lscalapack INCPAR = -I$(MPI_DIR)/include diff --git a/components/parallel-libs/mumps/SOURCES/Makefile.arm.openmpi.inc b/components/parallel-libs/mumps/SOURCES/Makefile.arm.openmpi.inc deleted file mode 100644 index 888bf0b284..0000000000 --- a/components/parallel-libs/mumps/SOURCES/Makefile.arm.openmpi.inc +++ /dev/null @@ -1,97 +0,0 @@ -# -# This file is part of MUMPS 5.0.0, released -# on Fri Feb 20 08:19:56 UTC 2015 -# -#Begin orderings - -# NOTE that PORD is distributed within MUMPS by default. If you would like to -# use other orderings, you need to obtain the corresponding package and modify -# the variables below accordingly. -# For example, to have Metis available within MUMPS: -# 1/ download Metis and compile it -# 2/ uncomment (suppress # in first column) lines -# starting with LMETISDIR, LMETIS -# 3/ add -Dmetis in line ORDERINGSF -# ORDERINGSF = -Dpord -Dmetis -# 4/ Compile and install MUMPS -# make clean; make (to clean up previous installation) -# -# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are now available for MUMPS. -# - -#SCOTCHDIR = ${HOME}/scotch_6.0 -#ISCOTCH = -I$(SCOTCHDIR)/include # Should be provided for pt-scotch (not needed for Scotch) -# -# You have to choose one among the following two lines depending on -# the type of analysis you want to perform. If you want to perform only -# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF -# variable below); for both parallel and sequential analysis choose the second -# line (remember to add -Dptscotch in the ORDERINGSF variable below) - -#LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr -#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr -lscotch - - -LPORDDIR = $(topdir)/PORD/lib/ -IPORD = -I$(topdir)/PORD/include/ -LPORD = -L$(LPORDDIR) -lpord - -#LMETISDIR = /local/metis/ -#IMETIS = # should be provided if you use parmetis, to access parmetis.h - -# You have to choose one among the following two lines depending on -# the type of analysis you want to perform. If you want to perform only -# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF -# variable below); for both parallel and sequential analysis choose the second -# line (remember to add -Dparmetis in the ORDERINGSF variable below) - -#LMETIS = -L$(LMETISDIR) -lmetis -#LMETIS = -L$(LMETISDIR) -lparmetis -lmetis - -# The following variables will be used in the compilation process. -# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. -#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis -ORDERINGSF = -Dpord -ORDERINGSC = $(ORDERINGSF) - -LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) -IORDERINGSF = $(ISCOTCH) -IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) - -#End orderings -######################################################################## -################################################################################ - -PLAT = -LIBEXT = .a -OUTC = -o -OUTF = -o -RM = /bin/rm -f -CC = mpicc -FC = mpif77 -FL = mpif77 -AR = ar vr -#RANLIB = ranlib -RANLIB = echo -SCALAP = -L$(SCALAPACK_LIB) -lscalapack -INCPAR = -I$(MPI_DIR)/include -# LIBPAR = $(SCALAP) -L/usr/local/lib/ -llamf77mpi -lmpi -llam -LIBPAR = $(SCALAP) -L$(MPI_DIR)/lib -lmpi -#LIBPAR = -lmpi++ -lmpi -ltstdio -ltrillium -largs -lt -INCSEQ = -I$(topdir)/libseq -LIBSEQ = -L$(topdir)/libseq -lmpiseq -LIBBLAS = -L$(ARMPL_LIBRARIES) -larmpl -LIBOTHERS = -lpthread -#Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER) -CDEFS = -DAdd_ - -#Begin Optimized options -#OPTF = -O -DALLOW_NON_INIT -nofor_main -#OPTL = -O -nofor_main -OPTF = -O -DALLOW_NON_INIT -OPTL = -O -OPTC = -O -#End Optimized options -INCS = $(INCPAR) -LIBS = $(LIBPAR) -LIBSEQNEEDED = diff --git a/components/parallel-libs/mumps/SOURCES/Makefile.gnu.impi.inc b/components/parallel-libs/mumps/SOURCES/Makefile.gnu.impi.inc deleted file mode 100644 index 459a4552c1..0000000000 --- a/components/parallel-libs/mumps/SOURCES/Makefile.gnu.impi.inc +++ /dev/null @@ -1,97 +0,0 @@ - -# This file is part of MUMPS 5.0.0, released -# on Fri Feb 20 08:19:56 UTC 2015 -# -#Begin orderings - -# NOTE that PORD is distributed within MUMPS by default. If you would like to -# use other orderings, you need to obtain the corresponding package and modify -# the variables below accordingly. -# For example, to have Metis available within MUMPS: -# 1/ download Metis and compile it -# 2/ uncomment (suppress # in first column) lines -# starting with LMETISDIR, LMETIS -# 3/ add -Dmetis in line ORDERINGSF -# ORDERINGSF = -Dpord -Dmetis -# 4/ Compile and install MUMPS -# make clean; make (to clean up previous installation) -# -# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are now available for MUMPS. -# - -#SCOTCHDIR = ${HOME}/scotch_6.0 -#ISCOTCH = -I$(SCOTCHDIR)/include # Should be provided for pt-scotch (not needed for Scotch) -# -# You have to choose one among the following two lines depending on -# the type of analysis you want to perform. If you want to perform only -# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF -# variable below); for both parallel and sequential analysis choose the second -# line (remember to add -Dptscotch in the ORDERINGSF variable below) - -#LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr -#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr -lscotch - - -LPORDDIR = $(topdir)/PORD/lib/ -IPORD = -I$(topdir)/PORD/include/ -LPORD = -L$(LPORDDIR) -lpord - -#LMETISDIR = /local/metis/ -#IMETIS = # should be provided if you use parmetis, to access parmetis.h - -# You have to choose one among the following two lines depending on -# the type of analysis you want to perform. If you want to perform only -# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF -# variable below); for both parallel and sequential analysis choose the second -# line (remember to add -Dparmetis in the ORDERINGSF variable below) - -#LMETIS = -L$(LMETISDIR) -lmetis -#LMETIS = -L$(LMETISDIR) -lparmetis -lmetis - -# The following variables will be used in the compilation process. -# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. -#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis -ORDERINGSF = -Dpord -ORDERINGSC = $(ORDERINGSF) - -LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) -IORDERINGSF = $(ISCOTCH) -IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) - -#End orderings -######################################################################## -################################################################################ - -PLAT = -LIBEXT = .a -OUTC = -o -OUTF = -o -RM = /bin/rm -f -CC = mpicc -FC = mpif77 -FL = mpif77 -AR = ar vr -#RANLIB = ranlib -RANLIB = echo -SCALAP = -L$(SCALAPACK_LIB) -L$(OPENBLAS_LIB) -lscalapack -lopenblas -INCPAR = -I$(MPI_DIR)/include -# LIBPAR = $(SCALAP) -L/usr/local/lib/ -llamf77mpi -lmpi -llam -LIBPAR = $(SCALAP) -L$(MPI_DIR)/lib -lmpi -#LIBPAR = -lmpi++ -lmpi -ltstdio -ltrillium -largs -lt -INCSEQ = -I$(topdir)/libseq -LIBSEQ = -L$(topdir)/libseq -lmpiseq -LIBBLAS = -lopenblas -LIBOTHERS = -lpthread -lgomp -#Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER) -CDEFS = -DAdd_ - -#Begin Optimized options -#OPTF = -O -DALLOW_NON_INIT -nofor_main -#OPTL = -O -nofor_main -OPTF = -O -DALLOW_NON_INIT -OPTL = -O -OPTC = -O -#End Optimized options -INCS = $(INCPAR) -LIBS = $(LIBPAR) -LIBSEQNEEDED = diff --git a/components/parallel-libs/mumps/SOURCES/Makefile.gnu.openmpi.inc b/components/parallel-libs/mumps/SOURCES/Makefile.gnu.inc similarity index 76% rename from components/parallel-libs/mumps/SOURCES/Makefile.gnu.openmpi.inc rename to components/parallel-libs/mumps/SOURCES/Makefile.gnu.inc index 3a533bc502..e8b65c497d 100644 --- a/components/parallel-libs/mumps/SOURCES/Makefile.gnu.openmpi.inc +++ b/components/parallel-libs/mumps/SOURCES/Makefile.gnu.inc @@ -34,7 +34,7 @@ LPORDDIR = $(topdir)/PORD/lib/ IPORD = -I$(topdir)/PORD/include/ -LPORD = -L$(LPORDDIR) -lpord +LPORD = -L$(LPORDDIR) -lpord$(PLAT) #LMETISDIR = /local/metis/ #IMETIS = # should be provided if you use parmetis, to access parmetis.h @@ -50,6 +50,8 @@ LPORD = -L$(LPORDDIR) -lpord # The following variables will be used in the compilation process. # Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. +# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis +# or in addition with -Dparmetis (if you are using parmetis 3.X or older). #ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis ORDERINGSF = -Dpord ORDERINGSC = $(ORDERINGSF) @@ -60,18 +62,38 @@ IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) #End orderings ######################################################################## -################################################################################ -PLAT = +######################################################################## +# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC... + +# PLAT : use it to add a default suffix to the generated libraries +PLAT = +# Suffix for libraries, -soname and -fPIC options, C and Fortran "-o" option +# may be adapted +LIBEXT_SHARED = .so +SONAME = -soname +SHARED_OPT = -shared +FPIC_OPT = -fPIC +# Adapt/uncomment RPATH_OPT to avoid modifying +# LD_LIBRARY_PATH in case of shared libraries +# RPATH_OPT = -Wl,-rpath,/path/to/MUMPS_x.y.z/lib/ LIBEXT = .a OUTC = -o OUTF = -o -RM = /bin/rm -f +# RM : remove files +RM = /bin/rm -f +# CC : C compiler CC = mpicc +# CC : C compiler FC = mpif77 +# FL : Fortran linker FL = mpif77 -AR = ar vr -#RANLIB = ranlib +# AR : Archive object in a library +# keep a space at the end if options have to be separated from lib name +AR = ar vr +# RANLIB : generate index of an archive file +# (optionnal use "RANLIB = echo" in case of problem) +#RANLIB = ranlib RANLIB = echo SCALAP = -L$(SCALAPACK_LIB) -L$(OPENBLAS_LIB) -lscalapack -lopenblas INCPAR = -I$(MPI_DIR)/include diff --git a/components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.impi.inc b/components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.inc similarity index 75% rename from components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.impi.inc rename to components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.inc index 949f95127a..896d33ff92 100644 --- a/components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.impi.inc +++ b/components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.inc @@ -34,7 +34,7 @@ LPORDDIR = $(topdir)/PORD/lib/ IPORD = -I$(topdir)/PORD/include/ -LPORD = -L$(LPORDDIR) -lpord +LPORD = -L$(LPORDDIR) -lpord$(PLAT) #LMETISDIR = /local/metis/ #IMETIS = # should be provided if you use parmetis, to access parmetis.h @@ -50,6 +50,8 @@ LPORD = -L$(LPORDDIR) -lpord # The following variables will be used in the compilation process. # Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. +# If you want to use Metis 4.X or an older version, you should use -Dmetis4 instead of -Dmetis +# or in addition with -Dparmetis (if you are using parmetis 3.X or older). #ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis ORDERINGSF = -Dpord ORDERINGSC = $(ORDERINGSF) @@ -60,18 +62,38 @@ IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) #End orderings ######################################################################## -################################################################################ -PLAT = +######################################################################## +# DEFINE HERE SOME COMMON COMMANDS, THE COMPILER NAMES, ETC... + +# PLAT : use it to add a default suffix to the generated libraries +PLAT = +# Suffix for libraries, -soname and -fPIC options, C and Fortran "-o" option +# may be adapted +LIBEXT_SHARED = .so +SONAME = -soname +SHARED_OPT = -shared +FPIC_OPT = -fPIC +# Adapt/uncomment RPATH_OPT to avoid modifying +# LD_LIBRARY_PATH in case of shared libraries +# RPATH_OPT = -Wl,-rpath,/path/to/MUMPS_x.y.z/lib/ LIBEXT = .a OUTC = -o OUTF = -o -RM = /bin/rm -f +# RM : remove files +RM = /bin/rm -f +# CC : C compiler CC = mpicc +# CC : C compiler FC = mpif77 +# FL : Fortran linker FL = mpif77 -AR = ar vr -#RANLIB = ranlib +# AR : Archive object in a library +# keep a space at the end if options have to be separated from lib name +AR = ar vr +# RANLIB : generate index of an archive file +# (optionnal use "RANLIB = echo" in case of problem) +#RANLIB = ranlib RANLIB = echo SCALAP = -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -qopenmp -lpthread -lm INCPAR = -I$(MPI_DIR)/include -I${MKLROOT}/include @@ -80,17 +102,19 @@ LIBPAR = $(SCALAP) -L$(MPI_DIR)/lib -lmpi #LIBPAR = -lmpi++ -lmpi -ltstdio -ltrillium -largs -lt INCSEQ = -I$(topdir)/libseq LIBSEQ = -L$(topdir)/libseq -lmpiseq -#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas LIBBLAS = -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -qopenmp -lpthread -lm LIBOTHERS = -lpthread #Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER) CDEFS = -DAdd_ #Begin Optimized options -OPTF = -O -DALLOW_NON_INIT -nofor_main -OPTL = -O -nofor_main +#OPTF = -O -DALLOW_NON_INIT -nofor_main +#OPTL = -O -nofor_main +OPTF = -O -DALLOW_NON_INIT -nofor-main -diag-warning 5286 +OPTL = -O -nofor-main OPTC = -O #End Optimized options INCS = $(INCPAR) LIBS = $(LIBPAR) LIBSEQNEEDED = + diff --git a/components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.openmpi.inc b/components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.openmpi.inc deleted file mode 100644 index 9276b24dc5..0000000000 --- a/components/parallel-libs/mumps/SOURCES/Makefile.mkl.intel.openmpi.inc +++ /dev/null @@ -1,96 +0,0 @@ -# -# This file is part of MUMPS 5.0.0, released -# on Fri Feb 20 08:19:56 UTC 2015 -# -#Begin orderings - -# NOTE that PORD is distributed within MUMPS by default. If you would like to -# use other orderings, you need to obtain the corresponding package and modify -# the variables below accordingly. -# For example, to have Metis available within MUMPS: -# 1/ download Metis and compile it -# 2/ uncomment (suppress # in first column) lines -# starting with LMETISDIR, LMETIS -# 3/ add -Dmetis in line ORDERINGSF -# ORDERINGSF = -Dpord -Dmetis -# 4/ Compile and install MUMPS -# make clean; make (to clean up previous installation) -# -# Metis/ParMetis and SCOTCH/PT-SCOTCH (ver 6.0 and later) orderings are now available for MUMPS. -# - -#SCOTCHDIR = ${HOME}/scotch_6.0 -#ISCOTCH = -I$(SCOTCHDIR)/include # Should be provided for pt-scotch (not needed for Scotch) -# -# You have to choose one among the following two lines depending on -# the type of analysis you want to perform. If you want to perform only -# sequential analysis choose the first (remember to add -Dscotch in the ORDERINGSF -# variable below); for both parallel and sequential analysis choose the second -# line (remember to add -Dptscotch in the ORDERINGSF variable below) - -#LSCOTCH = -L$(SCOTCHDIR)/lib -lesmumps -lscotch -lscotcherr -#LSCOTCH = -L$(SCOTCHDIR)/lib -lptesmumps -lptscotch -lptscotcherr -lscotch - - -LPORDDIR = $(topdir)/PORD/lib/ -IPORD = -I$(topdir)/PORD/include/ -LPORD = -L$(LPORDDIR) -lpord - -#LMETISDIR = /local/metis/ -#IMETIS = # should be provided if you use parmetis, to access parmetis.h - -# You have to choose one among the following two lines depending on -# the type of analysis you want to perform. If you want to perform only -# sequential analysis choose the first (remember to add -Dmetis in the ORDERINGSF -# variable below); for both parallel and sequential analysis choose the second -# line (remember to add -Dparmetis in the ORDERINGSF variable below) - -#LMETIS = -L$(LMETISDIR) -lmetis -#LMETIS = -L$(LMETISDIR) -lparmetis -lmetis - -# The following variables will be used in the compilation process. -# Please note that -Dptscotch and -Dparmetis imply -Dscotch and -Dmetis respectively. -#ORDERINGSF = -Dscotch -Dmetis -Dpord -Dptscotch -Dparmetis -ORDERINGSF = -Dpord -ORDERINGSC = $(ORDERINGSF) - -LORDERINGS = $(LMETIS) $(LPORD) $(LSCOTCH) -IORDERINGSF = $(ISCOTCH) -IORDERINGSC = $(IMETIS) $(IPORD) $(ISCOTCH) - -#End orderings -######################################################################## -################################################################################ - -PLAT = -LIBEXT = .a -OUTC = -o -OUTF = -o -RM = /bin/rm -f -CC = mpicc -FC = mpif77 -FL = mpif77 -AR = ar vr -#RANLIB = ranlib -RANLIB = echo -SCALAP = -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -qopenmp -lpthread -lm -INCPAR = -I$(MPI_DIR)/include -I${MKLROOT}/include -# LIBPAR = $(SCALAP) -L/usr/local/lib/ -llamf77mpi -lmpi -llam -LIBPAR = $(SCALAP) -L$(MPI_DIR)/lib -lmpi -#LIBPAR = -lmpi++ -lmpi -ltstdio -ltrillium -largs -lt -INCSEQ = -I$(topdir)/libseq -LIBSEQ = -L$(topdir)/libseq -lmpiseq -#LIBBLAS = -L/usr/lib/xmm/ -lf77blas -latlas -LIBBLAS = -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -Wl,--start-group -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_core -lmkl_blacs_intelmpi_lp64 -Wl,--end-group -qopenmp -lpthread -lm -LIBOTHERS = -lpthread -#Preprocessor defs for calling Fortran from C (-DAdd_ or -DAdd__ or -DUPPER) -CDEFS = -DAdd_ - -#Begin Optimized options -OPTF = -O -DALLOW_NON_INIT -nofor_main -diag-warning 5286 -OPTL = -O -nofor_main -OPTC = -O -#End Optimized options -INCS = $(INCPAR) -LIBS = $(LIBPAR) -LIBSEQNEEDED = diff --git a/components/parallel-libs/mumps/SOURCES/mumps-5.0.0-shared-pord.patch b/components/parallel-libs/mumps/SOURCES/mumps-5.0.0-shared-pord.patch deleted file mode 100644 index 185513e97f..0000000000 --- a/components/parallel-libs/mumps/SOURCES/mumps-5.0.0-shared-pord.patch +++ /dev/null @@ -1,61 +0,0 @@ ---- MUMPS_5.1.1/PORD/lib/Makefile 2017-03-20 07:34:33.000000000 -0700 -+++ MUMPS_5.1.1.patch/PORD/lib/Makefile 2017-04-05 10:06:15.000000000 -0700 -@@ -22,14 +22,18 @@ - # OUTC = -o - - .c.o: -- $(CC) $(COPTIONS) -c $*.c $(OUTC)$*.o -+ $(CC) $(COPTIONS) -fPIC -c $*.c $(OUTC)$*.o - --libpord$(LIBEXT):$(OBJS) -+libpord$(PLAT)$(LIBEXT):$(OBJS) - $(AR)$@ $(OBJS) - $(RANLIB) $@ - -+libpord$(PLAT).so:$(OBJS) -+ $(CC) -shared $(OBJS) -Wl,-soname,libpord$(PLAT).so.5.0.0 -o libpord$(PLAT).so.5.0.0 -+ ln -s libpord$(PLAT).so.5.0.0 $@ -+ - clean: - rm -f *.o - - realclean: -- rm -f *.o libpord.a -+ rm -f *.o libpord*.a *.so ---- MUMPS_5.1.1/Makefile 2017-03-20 07:34:33.000000000 -0700 -+++ MUMPS_5.1.1.patch/Makefile 2017-04-05 10:06:15.000000000 -0700 -@@ -54,7 +54,7 @@ - multi_example: s d c z - (cd examples ; $(MAKE) multi) - --requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT) -+requiredobj: Makefile.inc $(LIBSEQNEEDED) $(libdir)/libpord$(PLAT)$(LIBEXT) $(libdir)/libpord$(PLAT).so - - # dummy MPI library (sequential version) - -@@ -68,13 +68,23 @@ - $(MAKE) CC="$(CC)" CFLAGS="$(OPTC)" AR="$(AR)" RANLIB="$(RANLIB)" OUTC="$(OUTC)" LIBEXT=$(LIBEXT); \ - fi; - if [ "$(LPORDDIR)" != "" ] ; then \ -- cp $(LPORDDIR)/libpord$(LIBEXT) $@; \ -+ cp $(LPORDDIR)/libpord$(PLAT)$(LIBEXT) $@; \ -+ fi; -+ -+# Build the libpord.so library and copy it into $(topdir)/lib -+$(libdir)/libpord$(PLAT).so: -+ if [ "$(LPORDDIR)" != "" ] ; then \ -+ cd $(LPORDDIR); \ -+ $(MAKE) CC="$(CC)" CFLAGS="$(OPTC) -fPIC" AR="$(AR)" RANLIB="$(RANLIB)" libpord$(PLAT).so; \ -+ fi; -+ if [ "$(LPORDDIR)" != "" ] ; then \ -+ cp $(LPORDDIR)/libpord*.so $@; \ - fi; - - clean: - (cd src; $(MAKE) clean) - (cd examples; $(MAKE) clean) -- (cd $(libdir); $(RM) *$(PLAT)$(LIBEXT)) -+ (cd $(libdir); $(RM) *$(PLAT)$(LIBEXT) *$(PLAT).so) - (cd libseq; $(MAKE) clean) - if [ "$(LPORDDIR)" != "" ] ; then \ - cd $(LPORDDIR); $(MAKE) realclean; \ diff --git a/components/parallel-libs/mumps/SOURCES/mumps-5.0.1-shared-mumps.patch b/components/parallel-libs/mumps/SOURCES/mumps-5.0.1-shared-mumps.patch deleted file mode 100644 index d4d6c1d025..0000000000 --- a/components/parallel-libs/mumps/SOURCES/mumps-5.0.1-shared-mumps.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- a/src/Makefile 2019-04-18 02:55:07.000000000 -0700 -+++ b/src/Makefile 2019-05-25 19:02:46.000000000 -0700 -@@ -24,7 +24,9 @@ - include $(topdir)/Makefile.inc - - mumps_lib: $(libdir)/libmumps_common$(PLAT)$(LIBEXT) \ -- $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT) -+ $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT) \ -+ $(libdir)/libmumps_common$(PLAT).so \ -+ $(libdir)/lib$(ARITH)mumps$(PLAT).so - - OBJS_COMMON_MOD = \ - ana_omp_m.o\ -@@ -181,10 +183,18 @@ - $(AR)$@ $? - $(RANLIB) $@ - -+$(libdir)/libmumps_common$(PLAT).so: $(OBJS_COMMON_MOD) $(OBJS_COMMON_OTHER) -+ $(FC) -shared $^ -Wl,-soname,libmumps_common$(PLAT).so.5.0.0 -L$(libdir) $(LORDERINGS) -lpthread $(MUMPS_LIBF77) -o $(libdir)/libmumps_common$(PLAT).so.5.0.0 -+ ln -s libmumps_common$(PLAT).so.5.0.0 $@ -+ - $(libdir)/lib$(ARITH)mumps$(PLAT)$(LIBEXT): $(OBJS_MOD) $(OBJS_OTHER) - $(AR)$@ $? - $(RANLIB) $@ - -+$(libdir)/lib$(ARITH)mumps$(PLAT).so: $(OBJS_MOD) $(OBJS_OTHER) -+ $(FC) -shared $^ -Wl,-soname,lib$(ARITH)mumps$(PLAT).so.5.0.0 -L$(libdir) $(LORDERINGS) -lpthread $(MUMPS_LIBF77) -o $(libdir)/lib$(ARITH)mumps$(PLAT).so.5.0.0 -+ ln -s lib$(ARITH)mumps$(PLAT).so.5.0.0 $@ -+ - # Dependencies between modules: - # i) arithmetic-dependent modules: - $(ARITH)ana_aux.o: $(ARITH)mumps_struc_def.o \ -@@ -378,13 +388,13 @@ - - .SUFFIXES: .c .F .o - .F.o: -- $(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -c $*.F $(OUTF)$*.o -+ $(FC) $(OPTF) $(INCS) $(IORDERINGSF) $(ORDERINGSF) -I. -I../include -fPIC -c $*.F $(OUTF)$*.o - .c.o: -- $(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -c $*.c $(OUTC)$*.o -+ $(CC) $(OPTC) $(INCS) -I../include $(CDEFS) $(IORDERINGSC) $(ORDERINGSC) -fPIC -c $*.c $(OUTC)$*.o - - $(ARITH)mumps_c.o: mumps_c.c - $(CC) $(OPTC) $(INCS) $(CDEFS) -DMUMPS_ARITH=MUMPS_ARITH_$(ARITH) \ -- $(IORDERINGSC) $(ORDERINGSC) -I../include -c mumps_c.c $(OUTC)$@ -+ $(IORDERINGSC) $(ORDERINGSC) -I../include -fPIC -c mumps_c.c $(OUTC)$@ - - clean: - $(RM) *.o *.mod diff --git a/components/parallel-libs/mumps/SPECS/mumps.spec b/components/parallel-libs/mumps/SPECS/mumps.spec index 72de151c28..1af39abb86 100644 --- a/components/parallel-libs/mumps/SPECS/mumps.spec +++ b/components/parallel-libs/mumps/SPECS/mumps.spec @@ -19,21 +19,16 @@ %define pname mumps Name: %{pname}-%{compiler_family}-%{mpi_family}%{PROJ_DELIM} -Version: 5.2.1 +Version: 5.8.2 Release: 1%{?dist} Summary: A MUltifrontal Massively Parallel Sparse direct Solver License: CeCILL-C Group: %{PROJ_NAME}/parallel-libs -Url: http://graal.ens-lyon.fr/MUMPS/ -Source0: http://graal.ens-lyon.fr/MUMPS/MUMPS_%{version}.tar.gz -Source1: Makefile.gnu.openmpi.inc -Source2: Makefile.gnu.impi.inc -Source3: Makefile.mkl.intel.impi.inc -Source4: Makefile.mkl.intel.openmpi.inc -Source5: Makefile.arm.impi.inc -Source6: Makefile.arm.openmpi.inc -Patch0: mumps-5.0.1-shared-mumps.patch -Patch1: mumps-5.0.0-shared-pord.patch +Url: https://mumps-solver.org/ +Source0: http://mumps-solver.org/MUMPS_%{version}.tar.gz +Source1: Makefile.gnu.inc +Source2: Makefile.mkl.intel.inc +Source3: Makefile.arm.inc Requires: lmod%{PROJ_DELIM} >= 7.6.1 %if 0%{?rhel} || 0%{?openEuler} @@ -61,8 +56,6 @@ C interfaces, and can interface with ordering tools such as Scotch. %prep %setup -q -n MUMPS_%{version} -%patch0 -p1 -%patch1 -p1 %build %ohpc_setup_compiler @@ -76,85 +69,48 @@ module load scalapack module load scalapack openblas %endif -# Select appropriate Makefile.inc with MKL -%if "%{mpi_family}" == "impi" -%global MUMPS_MPI $OHPC_MPI_FAMILY export LIBS="-L$MPI_DIR/lib -lmpi" %if "%{compiler_family}" == "%{gnu_family}" -cp -f %{S:2} Makefile.inc +cp -f %{S:1} Makefile.inc %endif %if "%{compiler_family}" == "intel" -cp -f %{S:3} Makefile.inc -%endif -%if "%{compiler_family}" == "arm1" -cp -f %{S:5} Makefile.inc -%endif -%endif - -%if "%{mpi_family}" == "mpich" -%global MUMPS_MPI $OHPC_MPI_FAMILY -export LIBS="-L$MPI_DIR/lib -lmpi" -%if "%{compiler_family}" == "%{gnu_family}" cp -f %{S:2} Makefile.inc %endif -%if "%{compiler_family}" == "intel" -cp -f %{S:3} Makefile.inc -%endif %if "%{compiler_family}" == "arm1" -cp -f %{S:5} Makefile.inc -%endif -%endif - -%if "%{mpi_family}" == "mvapich2" -%global MUMPS_MPI $OHPC_MPI_FAMILY -export LIBS="-L$MPI_DIR/lib -lmpi" -%if "%{compiler_family}" == "%{gnu_family}" -cp -f %{S:2} Makefile.inc -%endif -%if "%{compiler_family}" == "intel" cp -f %{S:3} Makefile.inc %endif -%if "%{compiler_family}" == "arm1" -cp -f %{S:5} Makefile.inc -%endif -%endif - -%if "%{mpi_family}" == "openmpi" -%global MUMPS_MPI openmpi -export LIBS="-L$MPI_DIR/lib -lmpi_mpifh -lmpi" -%if "%{compiler_family}" == "%{gnu_family}" -cp -f %{S:1} Makefile.inc -%endif -%if "%{compiler_family}" == "intel" -cp -f %{S:4} Makefile.inc -%endif -%if "%{compiler_family}" == "arm1" -cp -f %{S:6} Makefile.inc -%endif -%endif -%if "%{mpi_family}" == "openmpi4" +%if "%{mpi_family}" == "openmpi5" %global MUMPS_MPI openmpi export LIBS="-L$MPI_DIR/lib -lmpi_mpifh -lmpi" -%if "%{compiler_family}" == "intel" -cp -f %{S:4} Makefile.inc -%else -%if "%{compiler_family}" == "arm1" -cp -f %{S:6} Makefile.inc %else -cp -f %{S:1} Makefile.inc -%endif -%endif +%global MUMPS_MPI $OHPC_MPI_FAMILY +export LIBS="-L$MPI_DIR/lib -lmpi" %endif -%if "%{compiler_family}" == "gnu12" +%if "%{compiler_family}" == "%{gnu_family}" export FCFLAGS="$FCFLAGS -fallow-argument-mismatch" +export FCFLAGS="$FCFLAGS -Wno-unused-dummy-argument" +export FCFLAGS="$FCFLAGS -Wno-misleading-indentation" +export FCFLAGS="$FCFLAGS -Wno-unused-function" +export FCFLAGS="$FCFLAGS -Wno-unused-variable" +export FCFLAGS="$FCFLAGS -Wno-maybe-uninitialized" +export FCFLAGS="$FCFLAGS -Wno-conversion" +export FCFLAGS="$FCFLAGS -Wno-target-lifetime" +export FCFLAGS="$FCFLAGS -Wno-argument-mismatch" + +export CFLAGS="$CFLAGS -Wno-unused-function" +export CFLAGS="$CFLAGS -Wno-strict-aliasing" +export CFLAGS="$CFLAGS -Wno-misleading-indentation" +%endif +%if "%{compiler_family}" == "arm1" +export CFLAGS="$CFLAGS -fsimdmath" %endif make MUMPS_MPI=%{MUMPS_MPI} \ FC=mpif77 \ MUMPS_LIBF77="$LIBS" \ - OPTC="$RPM_OPT_FLAGS" OPTF="$FCFLAGS" all + OPTC="$CFLAGS" OPTF="$FCFLAGS" allshared %{?_smp_mflags} %install @@ -165,9 +121,9 @@ make MUMPS_MPI=%{MUMPS_MPI} \ %{__mkdir} -p %{buildroot}%{install_path}/PORD/include %{__mkdir} -p %{buildroot}%{install_path}/etc -rm PORD/lib/sort* -mv PORD/lib/*so* lib/. -mv PORD/include/* include/. +rm -v PORD/lib/sort* +mv -v PORD/lib/*so* lib/. +mv -v PORD/include/* include/. install -m 755 lib/*so* %{buildroot}%{install_path}/lib install -m 644 include/* %{buildroot}%{install_path}/include From 45a636d81d7a5626348b403ff7f8652e01f5d865 Mon Sep 17 00:00:00 2001 From: Adrian Reber Date: Sun, 7 Jun 2026 12:01:12 +0000 Subject: [PATCH 2/2] ci: switch to openmpi5 for testing Signed-off-by: Adrian Reber --- tests/ci/run_build.py | 6 +++--- tests/ci/setup_slurm_and_run_tests.sh | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/ci/run_build.py b/tests/ci/run_build.py index 9df1f54514..d7188d6514 100755 --- a/tests/ci/run_build.py +++ b/tests/ci/run_build.py @@ -33,7 +33,7 @@ "--mpi-family", help=( "mpi family name to use for rebuild " - + "(defaults to openmpi4, mpich, mvapich2)" + + "(defaults to openmpi5, mpich, mvapich2)" ), ) args = parser.parse_args() @@ -139,7 +139,7 @@ def build_srpm_and_rpm( # This is a shortcoming of the build_srpm script. # It only has positional parameters. # It needs a dummy parameter here. - command.append("openmpi4") + command.append("openmpi5") command.append("0") success, output = run_command(command) if not success: @@ -288,7 +288,7 @@ def build_srpm_and_rpm( if "ohpc_mpi_dependent" in contents: families = [ - "openmpi4", + "openmpi5", "mpich", "mvapich2", ] diff --git a/tests/ci/setup_slurm_and_run_tests.sh b/tests/ci/setup_slurm_and_run_tests.sh index 80434693eb..81e218e6b3 100755 --- a/tests/ci/setup_slurm_and_run_tests.sh +++ b/tests/ci/setup_slurm_and_run_tests.sh @@ -25,6 +25,7 @@ INSTALL_PKGS=( openssh-clients which sudo + psmisc autoconf automake libtool @@ -32,7 +33,7 @@ INSTALL_PKGS=( prun-ohpc openmpi5-"${COMPILER_FAMILY}"-ohpc mpich-"${COMPILER_FAMILY}"-ohpc - lmod-defaults-"${COMPILER_FAMILY}"-openmpi4-ohpc + lmod-defaults-"${COMPILER_FAMILY}"-openmpi5-ohpc slurm-slurmd-ohpc slurm-slurmctld-ohpc slurm-example-configs-ohpc