import mpich-3.3.2-9.el8
This commit is contained in:
parent
f130c74265
commit
d8d4ec55d3
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
SOURCES/mpich-3.2.1.tar.gz
|
||||
SOURCES/mpich-3.3.2.tar.gz
|
||||
|
@ -1 +1 @@
|
||||
24c53333927d1760db78be2b9ef217f4f3dcf771 SOURCES/mpich-3.2.1.tar.gz
|
||||
d1b887a6265df846481328bb1a6a0855b5292bef SOURCES/mpich-3.3.2.tar.gz
|
||||
|
74
SOURCES/0001-Drop-real128.patch
Normal file
74
SOURCES/0001-Drop-real128.patch
Normal file
@ -0,0 +1,74 @@
|
||||
From 8f0c71281b5dccd70a3f1d4204e3cc6bc7201ceb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?=
|
||||
<zbyszek@arm03-packager01.cloud.fedoraproject.org>
|
||||
Date: Wed, 28 Aug 2019 10:57:55 +0000
|
||||
Subject: [PATCH] Drop real128
|
||||
|
||||
https://github.com/pmodels/mpich/issues/4005
|
||||
---
|
||||
.../fortran/use_mpi_f08/mpi_f08_types.f90 | 24 -------------------
|
||||
1 file changed, 24 deletions(-)
|
||||
|
||||
diff --git a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90 b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||
index f8b0fa811..46bdf6972 100644
|
||||
--- a/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||
+++ b/src/binding/fortran/use_mpi_f08/mpi_f08_types.f90
|
||||
@@ -248,10 +248,8 @@ interface MPI_Sizeof
|
||||
module procedure MPI_Sizeof_xint64
|
||||
module procedure MPI_Sizeof_xreal32
|
||||
module procedure MPI_Sizeof_xreal64
|
||||
- module procedure MPI_Sizeof_xreal128
|
||||
module procedure MPI_Sizeof_xcomplex32
|
||||
module procedure MPI_Sizeof_xcomplex64
|
||||
- module procedure MPI_Sizeof_xcomplex128
|
||||
end interface
|
||||
|
||||
private :: MPI_Sizeof_character
|
||||
@@ -263,10 +261,8 @@ private :: MPI_Sizeof_xint32
|
||||
private :: MPI_Sizeof_xint64
|
||||
private :: MPI_Sizeof_xreal32
|
||||
private :: MPI_Sizeof_xreal64
|
||||
-private :: MPI_Sizeof_xreal128
|
||||
private :: MPI_Sizeof_xcomplex32
|
||||
private :: MPI_Sizeof_xcomplex64
|
||||
-private :: MPI_Sizeof_xcomplex128
|
||||
|
||||
contains
|
||||
|
||||
@@ -350,16 +346,6 @@ subroutine MPI_Sizeof_xreal64 (x, size, ierror)
|
||||
ierror = 0
|
||||
end subroutine MPI_Sizeof_xreal64
|
||||
|
||||
-subroutine MPI_Sizeof_xreal128 (x, size, ierror)
|
||||
- use,intrinsic :: iso_fortran_env, only: real128
|
||||
- real(real128),dimension(..) :: x
|
||||
- integer, intent(out) :: size
|
||||
- integer, optional, intent(out) :: ierror
|
||||
-
|
||||
- size = storage_size(x)/8
|
||||
- ierror = 0
|
||||
-end subroutine MPI_Sizeof_xreal128
|
||||
-
|
||||
subroutine MPI_Sizeof_xcomplex32 (x, size, ierror)
|
||||
use,intrinsic :: iso_fortran_env, only: real32
|
||||
complex(real32),dimension(..) :: x
|
||||
@@ -380,16 +366,6 @@ subroutine MPI_Sizeof_xcomplex64 (x, size, ierror)
|
||||
ierror = 0
|
||||
end subroutine MPI_Sizeof_xcomplex64
|
||||
|
||||
-subroutine MPI_Sizeof_xcomplex128 (x, size, ierror)
|
||||
- use,intrinsic :: iso_fortran_env, only: real128
|
||||
- complex(real128),dimension(..) :: x
|
||||
- integer, intent(out) :: size
|
||||
- integer, optional, intent(out) :: ierror
|
||||
-
|
||||
- size = storage_size(x)/8
|
||||
- ierror = 0
|
||||
-end subroutine MPI_Sizeof_xcomplex128
|
||||
-
|
||||
subroutine MPI_Status_f2f08(f_status, f08_status, ierror)
|
||||
integer, intent(in) :: f_status(MPI_STATUS_SIZE)
|
||||
type(MPI_Status), intent(out) :: f08_status
|
||||
--
|
||||
2.21.0
|
||||
|
@ -0,0 +1,34 @@
|
||||
From fbb8f503df077c726b0c99d467bc984566273b92 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 15 Sep 2020 14:20:17 +0200
|
||||
Subject: [PATCH 1/2] mpl: limit scope on macos .local workaround
|
||||
|
||||
This was added in 62f4178981617384fc116da4c839baf469bef512.
|
||||
Assuming that "localhost" is equivalent to any name ending in .local
|
||||
is unwarranted. RFC6762 reserves the ".local" suffix for MulticastDNS use,
|
||||
but it is also used in other context for "local network" addresses and such.
|
||||
So let's at least limit the scope to not hurt other systems.
|
||||
---
|
||||
src/mpl/src/sock/mpl_sockaddr.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/mpl/src/sock/mpl_sockaddr.c b/src/mpl/src/sock/mpl_sockaddr.c
|
||||
index 51e9f9973f..9334cc4fb2 100644
|
||||
--- a/src/mpl/src/sock/mpl_sockaddr.c
|
||||
+++ b/src/mpl/src/sock/mpl_sockaddr.c
|
||||
@@ -75,6 +75,7 @@ int MPL_get_sockaddr(const char *s_hostname, MPL_sockaddr_t * p_addr)
|
||||
struct addrinfo *ai_list;
|
||||
int ret;
|
||||
|
||||
+#ifdef __APPLE__
|
||||
/* Macos adds .local to hostname when network is unavailable or limited.
|
||||
* This will result in long timeout in getaddrinfo below.
|
||||
* Bypass it by resetting the hostname to "localhost"
|
||||
@@ -83,6 +84,7 @@ int MPL_get_sockaddr(const char *s_hostname, MPL_sockaddr_t * p_addr)
|
||||
if (n > 6 && strcmp(s_hostname + n - 6, ".local") == 0) {
|
||||
s_hostname = "localhost";
|
||||
}
|
||||
+#endif
|
||||
|
||||
/* NOTE: there is report that getaddrinfo implementations will call kernel
|
||||
* even when s_hostname is entirely numerical string and it may cause
|
@ -0,0 +1,57 @@
|
||||
From ecb72e6699f4f8525115e0b42f81121a1cf8eefa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
||||
Date: Tue, 15 Sep 2020 14:59:58 +0200
|
||||
Subject: [PATCH 2/2] mpl: do not require non-loopback networking
|
||||
|
||||
getaddrinfo(3) says:
|
||||
If hints.ai_flags includes the AI_ADDRCONFIG flag, then IPv4
|
||||
addresses are returned in the list pointed to by res only if the
|
||||
local system has at least one IPv4 address configured, and IPv6
|
||||
addresses are returned only if the local system has at least one
|
||||
IPv6 address configured. The loopback address is not considered for
|
||||
this case as valid as a configured address.
|
||||
|
||||
This means that MPL_get_sockaddr() will fail to resolve the local host
|
||||
(either as "localhost" or by the actual hostname) on a system that has
|
||||
no non-loopback networking. This break exection of mpirun e.g. in a
|
||||
container for tests and such.
|
||||
|
||||
From https://bugzilla.redhat.com/show_bug.cgi?id=1839007:
|
||||
|
||||
<mock-chroot> sh-5.0# hostname
|
||||
68da8e7c62a2404bb4bf75c9ce643e06
|
||||
<mock-chroot> sh-5.0# module load mpi/mpich-x86_64
|
||||
<mock-chroot> sh-5.0# mpirun ./a.out
|
||||
Fatal error in PMPI_Init: Other MPI error, error stack:
|
||||
MPIR_Init_thread(586)..............:
|
||||
MPID_Init(224).....................: channel initialization failed
|
||||
MPIDI_CH3_Init(105)................:
|
||||
MPID_nem_init(324).................:
|
||||
MPID_nem_tcp_init(175).............:
|
||||
MPID_nem_tcp_get_business_card(404):
|
||||
MPID_nem_tcp_init(375).............: gethostbyname failed, 68da8e7c62a2404bb4bf75c9ce643e06 (errno 0)
|
||||
|
||||
<mock-chroot> sh-5.0# ip a
|
||||
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
|
||||
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
|
||||
inet 127.0.0.1/8 scope host lo
|
||||
valid_lft forever preferred_lft forever
|
||||
inet6 ::1/128 scope host
|
||||
valid_lft forever preferred_lft forever
|
||||
---
|
||||
src/mpl/src/sock/mpl_sockaddr.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/mpl/src/sock/mpl_sockaddr.c b/src/mpl/src/sock/mpl_sockaddr.c
|
||||
index 9334cc4fb2..c0e991c68d 100644
|
||||
--- a/src/mpl/src/sock/mpl_sockaddr.c
|
||||
+++ b/src/mpl/src/sock/mpl_sockaddr.c
|
||||
@@ -98,7 +98,7 @@ int MPL_get_sockaddr(const char *s_hostname, MPL_sockaddr_t * p_addr)
|
||||
ai_hint.ai_family = af_type;
|
||||
ai_hint.ai_socktype = SOCK_STREAM;
|
||||
ai_hint.ai_protocol = IPPROTO_TCP;
|
||||
- ai_hint.ai_flags = AI_ADDRCONFIG | AI_V4MAPPED;
|
||||
+ ai_hint.ai_flags = AI_V4MAPPED;
|
||||
ret = getaddrinfo(s_hostname, NULL, &ai_hint, &ai_list);
|
||||
if (ret) {
|
||||
return ret;
|
@ -1,13 +0,0 @@
|
||||
diff --git mpich-3.2/./src/binding/cxx/mpicxx.h.in~ mpich-3.2/./src/binding/cxx/mpicxx.h.in
|
||||
index 375c081e0e..24f1d6c2cc 100644
|
||||
--- mpich-3.2/./src/binding/cxx/mpicxx.h.in~
|
||||
+++ mpich-3.2/./src/binding/cxx/mpicxx.h.in
|
||||
@@ -17,7 +17,7 @@
|
||||
// between 3.2.3 and 3.4.3 (!!) Normally such changes
|
||||
// should only occur at major releases (e.g., version 3 to 4)
|
||||
#ifdef __GNUC__
|
||||
-# if __GNUC__ >= @GNUCXX_VERSION@
|
||||
+# if __GNUC__ >= @GNUCXX_VERSION@ && @GNUCXX_VERSION@ == 3
|
||||
# if __GNUC_MINOR__ > 2 && @GNUCXX_MINORVERSION@ == 2
|
||||
# error 'Please use the same version of GCC and g++ for compiling MPICH and user MPI programs'
|
||||
# endif
|
101
SOURCES/4320.patch
Normal file
101
SOURCES/4320.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From a1524608b05e6c89e2b99f64923f064d888465ce Mon Sep 17 00:00:00 2001
|
||||
From: Hui Zhou <hzhou321@anl.gov>
|
||||
Date: Mon, 18 Nov 2019 14:52:55 -0600
|
||||
Subject: [PATCH 1/2] ch3: fix improper error handling from MPL_get_sockaddr
|
||||
|
||||
MPL layer does not directly return mpi_errno. Use MPIR_ERR_CHKANDJUMP
|
||||
macro to create the appropriate return code. See pmodels/mpich#4318.
|
||||
|
||||
Cherry-picked from [8d923937ec5d].
|
||||
---
|
||||
.../channels/nemesis/netmod/tcp/tcp_init.c | 23 +++++++++++--------
|
||||
1 file changed, 13 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c b/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c
|
||||
index 4c2383ed8f..bc58211eb6 100644
|
||||
--- a/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c
|
||||
+++ b/src/mpid/ch3/channels/nemesis/netmod/tcp/tcp_init.c
|
||||
@@ -307,8 +307,9 @@ static int GetSockInterfaceAddr(int myRank, char *ifname, int maxIfname,
|
||||
if (MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE) {
|
||||
char s[100];
|
||||
int len;
|
||||
- mpi_errno = MPL_get_sockaddr_iface(MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE, p_addr);
|
||||
- MPIR_ERR_CHKANDJUMP1(mpi_errno, mpi_errno, MPI_ERR_OTHER, "**iface_notfound", "**iface_notfound %s", MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE);
|
||||
+ int ret = MPL_get_sockaddr_iface(MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE, p_addr);
|
||||
+ MPIR_ERR_CHKANDJUMP1(ret != 0, mpi_errno, MPI_ERR_OTHER, "**iface_notfound",
|
||||
+ "**iface_notfound %s", MPIR_CVAR_NEMESIS_TCP_NETWORK_IFACE);
|
||||
|
||||
MPL_sockaddr_to_str(p_addr, s, 100);
|
||||
MPL_DBG_MSG_FMT(MPIDI_CH3_DBG_CONNECT, VERBOSE, (MPL_DBG_FDEST,
|
||||
@@ -354,12 +355,13 @@ static int GetSockInterfaceAddr(int myRank, char *ifname, int maxIfname,
|
||||
|
||||
ifname_string = ifname;
|
||||
|
||||
- /* If we didn't find a specific name, then try to get an IP address
|
||||
- directly from the available interfaces, if that is supported on
|
||||
- this platform. Otherwise, we'll drop into the next step that uses
|
||||
- the ifname */
|
||||
- mpi_errno = MPL_get_sockaddr_iface( NULL, p_addr);
|
||||
- if (mpi_errno) MPIR_ERR_POP(mpi_errno);
|
||||
+ /* If we didn't find a specific name, then try to get an IP address
|
||||
+ * directly from the available interfaces, if that is supported on
|
||||
+ * this platform. Otherwise, we'll drop into the next step that uses
|
||||
+ * the ifname */
|
||||
+ int ret = MPL_get_sockaddr_iface(NULL, p_addr);
|
||||
+ MPIR_ERR_CHKANDJUMP1(ret != 0, mpi_errno, MPI_ERR_OTHER, "**iface_notfound",
|
||||
+ "**iface_notfound %s", NULL);
|
||||
ifaddrFound = 1;
|
||||
}
|
||||
else {
|
||||
@@ -369,8 +371,9 @@ static int GetSockInterfaceAddr(int myRank, char *ifname, int maxIfname,
|
||||
|
||||
/* If we don't have an IP address, try to get it from the name */
|
||||
if (!ifaddrFound) {
|
||||
- mpi_errno = MPL_get_sockaddr(ifname_string, p_addr);
|
||||
- MPIR_ERR_CHKANDJUMP2(mpi_errno, mpi_errno, MPI_ERR_OTHER, "**gethostbyname", "**gethostbyname %s %d", ifname_string, h_errno);
|
||||
+ int ret = MPL_get_sockaddr(ifname_string, p_addr);
|
||||
+ MPIR_ERR_CHKANDJUMP2(ret != 0, mpi_errno, MPI_ERR_OTHER, "**gethostbyname",
|
||||
+ "**gethostbyname %s %d", ifname_string, h_errno);
|
||||
}
|
||||
|
||||
fn_exit:
|
||||
|
||||
From 89157ad35c0885b4758d250d019f0f7cf0f59095 Mon Sep 17 00:00:00 2001
|
||||
From: Hui Zhou <hzhou321@anl.gov>
|
||||
Date: Wed, 15 Jan 2020 13:29:56 -0600
|
||||
Subject: [PATCH 2/2] pmi: fix a wrong condition checking return of
|
||||
MPL_get_sockaddr
|
||||
|
||||
Cherry-picked from [3e6af3c2fbaf]. See pmodels/mpich#4318.
|
||||
---
|
||||
src/mpl/include/mpl_sockaddr.h | 3 +++
|
||||
src/pmi/simple/simple_pmi.c | 2 +-
|
||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/mpl/include/mpl_sockaddr.h b/src/mpl/include/mpl_sockaddr.h
|
||||
index c0eb749419..a9860c1353 100644
|
||||
--- a/src/mpl/include/mpl_sockaddr.h
|
||||
+++ b/src/mpl/include/mpl_sockaddr.h
|
||||
@@ -21,6 +21,9 @@
|
||||
|
||||
typedef struct sockaddr_storage MPL_sockaddr_t;
|
||||
|
||||
+/* The following functions when return an int, it returns 0 on success,
|
||||
+ * non-zero indicates error. It is consistent with posix socket functions.
|
||||
+ */
|
||||
void MPL_sockaddr_set_aftype(int type);
|
||||
int MPL_get_sockaddr(const char *s_hostname, MPL_sockaddr_t * p_addr);
|
||||
int MPL_get_sockaddr_direct(int type, MPL_sockaddr_t * p_addr);
|
||||
diff --git a/src/pmi/simple/simple_pmi.c b/src/pmi/simple/simple_pmi.c
|
||||
index df37a8689f..7f660bdac9 100644
|
||||
--- a/src/pmi/simple/simple_pmi.c
|
||||
+++ b/src/pmi/simple/simple_pmi.c
|
||||
@@ -881,7 +881,7 @@ static int PMII_Connect_to_pm(char *hostname, int portnum)
|
||||
int q_wait = 1;
|
||||
|
||||
ret = MPL_get_sockaddr(hostname, &addr);
|
||||
- if (!ret) {
|
||||
+ if (ret) {
|
||||
PMIU_printf(1, "Unable to get host entry for %s\n", hostname);
|
||||
return PMI_FAIL;
|
||||
}
|
160
SOURCES/fix_wrapper_flags.patch
Normal file
160
SOURCES/fix_wrapper_flags.patch
Normal file
@ -0,0 +1,160 @@
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpicc.bash.in mpich-3.3.2/src/env/mpicc.bash.in
|
||||
--- mpich-3.3.2.orig/src/env/mpicc.bash.in 2020-08-06 00:42:51.089874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpicc.bash.in 2020-08-06 00:49:34.849138000 +0000
|
||||
@@ -214,13 +214,13 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-final_cflags="@MPICH_MPICC_CFLAGS@ @WRAPPER_CFLAGS@"
|
||||
-final_cppflags="@MPICH_MPICC_CPPFLAGS@ @WRAPPER_CPPFLAGS@"
|
||||
-final_ldflags="@MPICH_MPICC_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_cflags="@MPICH_MPICC_CFLAGS@ "
|
||||
+final_cppflags="@MPICH_MPICC_CPPFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPICC_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPICC_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpicc.sh.in mpich-3.3.2/src/env/mpicc.sh.in
|
||||
--- mpich-3.3.2.orig/src/env/mpicc.sh.in 2020-08-06 00:42:51.090874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpicc.sh.in 2020-08-06 00:49:34.849138000 +0000
|
||||
@@ -223,13 +223,13 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-final_cflags="@MPICH_MPICC_CFLAGS@ @WRAPPER_CFLAGS@"
|
||||
-final_cppflags="@MPICH_MPICC_CPPFLAGS@ @WRAPPER_CPPFLAGS@"
|
||||
-final_ldflags="@MPICH_MPICC_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_cflags="@MPICH_MPICC_CFLAGS@ "
|
||||
+final_cppflags="@MPICH_MPICC_CPPFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPICC_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPICC_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpicxx.bash.in mpich-3.3.2/src/env/mpicxx.bash.in
|
||||
--- mpich-3.3.2.orig/src/env/mpicxx.bash.in 2020-08-06 00:42:51.090874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpicxx.bash.in 2020-08-06 00:49:34.849138000 +0000
|
||||
@@ -220,13 +220,13 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ @WRAPPER_CXXFLAGS@"
|
||||
-final_cppflags="@MPICH_MPICXX_CPPFLAGS@ @WRAPPER_CPPFLAGS@"
|
||||
-final_ldflags="@MPICH_MPICXX_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ "
|
||||
+final_cppflags="@MPICH_MPICXX_CPPFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPICXX_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPICXX_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# A temporary statement to invoke the compiler
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpicxx.sh.in mpich-3.3.2/src/env/mpicxx.sh.in
|
||||
--- mpich-3.3.2.orig/src/env/mpicxx.sh.in 2020-08-06 00:42:51.090874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpicxx.sh.in 2020-08-06 00:49:34.850138000 +0000
|
||||
@@ -229,13 +229,13 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ @WRAPPER_CXXFLAGS@"
|
||||
-final_cppflags="@MPICH_MPICXX_CPPFLAGS@ @WRAPPER_CPPFLAGS@"
|
||||
-final_ldflags="@MPICH_MPICXX_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_cxxflags="@MPICH_MPICXX_CXXFLAGS@ "
|
||||
+final_cppflags="@MPICH_MPICXX_CPPFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPICXX_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPICXX_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# A temporary statement to invoke the compiler
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpif77.bash.in mpich-3.3.2/src/env/mpif77.bash.in
|
||||
--- mpich-3.3.2.orig/src/env/mpif77.bash.in 2020-08-06 00:42:51.090874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpif77.bash.in 2020-08-06 00:49:34.852138000 +0000
|
||||
@@ -272,12 +272,12 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-final_fflags="@MPICH_MPIF77_FFLAGS@ @WRAPPER_FFLAGS@"
|
||||
-final_ldflags="@MPICH_MPIF77_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_fflags="@MPICH_MPIF77_FFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPIF77_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPIF77_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# A temporary statement to invoke the compiler
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpif77.sh.in mpich-3.3.2/src/env/mpif77.sh.in
|
||||
--- mpich-3.3.2.orig/src/env/mpif77.sh.in 2020-08-06 00:42:51.090874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpif77.sh.in 2020-08-06 00:49:34.852138000 +0000
|
||||
@@ -294,12 +294,12 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
-final_fflags="@MPICH_MPIF77_FFLAGS@ @WRAPPER_FFLAGS@"
|
||||
-final_ldflags="@MPICH_MPIF77_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_fflags="@MPICH_MPIF77_FFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPIF77_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPIF77_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# A temporary statement to invoke the compiler
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpifort.bash.in mpich-3.3.2/src/env/mpifort.bash.in
|
||||
--- mpich-3.3.2.orig/src/env/mpifort.bash.in 2020-08-06 00:42:51.090874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpifort.bash.in 2020-08-06 00:49:34.854138000 +0000
|
||||
@@ -313,12 +313,12 @@
|
||||
FCMODDIRS="${FCMODINC}$modincdir"
|
||||
fi
|
||||
|
||||
-final_fcflags="@MPICH_MPIFORT_FCFLAGS@ @WRAPPER_FCFLAGS@"
|
||||
-final_ldflags="@MPICH_MPIFORT_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_fcflags="@MPICH_MPIFORT_FCFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPIFORT_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPIFORT_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# A temporary statement to invoke the compiler
|
||||
diff -Naur mpich-3.3.2.orig/src/env/mpifort.sh.in mpich-3.3.2/src/env/mpifort.sh.in
|
||||
--- mpich-3.3.2.orig/src/env/mpifort.sh.in 2020-08-06 00:42:51.090874000 +0000
|
||||
+++ mpich-3.3.2/src/env/mpifort.sh.in 2020-08-06 00:49:34.854138000 +0000
|
||||
@@ -330,12 +330,12 @@
|
||||
FCMODDIRS="${FCMODINC}$modincdir"
|
||||
fi
|
||||
|
||||
-final_fcflags="@MPICH_MPIFORT_FCFLAGS@ @WRAPPER_FCFLAGS@"
|
||||
-final_ldflags="@MPICH_MPIFORT_LDFLAGS@ @WRAPPER_LDFLAGS@"
|
||||
+final_fcflags="@MPICH_MPIFORT_FCFLAGS@ "
|
||||
+final_ldflags="@MPICH_MPIFORT_LDFLAGS@ "
|
||||
final_libs="@MPICH_MPIFORT_LIBS@"
|
||||
if test "@INTERLIB_DEPS@" = "no" -o "${interlib_deps}" = "no" ; then
|
||||
final_ldflags="${final_ldflags} @LDFLAGS@"
|
||||
- final_libs="${final_libs} @LIBS@ @WRAPPER_LIBS@"
|
||||
+ final_libs="${final_libs} @LIBS@ "
|
||||
fi
|
||||
|
||||
# A temporary statement to invoke the compiler
|
165
SPECS/mpich.spec
165
SPECS/mpich.spec
@ -1,26 +1,44 @@
|
||||
Summary: A high-performance implementation of MPI
|
||||
Name: mpich
|
||||
Version: 3.2.1
|
||||
Version: 3.3.2
|
||||
Release: 9%{?dist}
|
||||
License: MIT
|
||||
URL: http://www.mpich.org/
|
||||
URL: https://www.mpich.org/
|
||||
|
||||
Source0: http://www.mpich.org/static/downloads/%{version}/%{name}-%{version}.tar.gz
|
||||
Source0: https://www.mpich.org/static/downloads/%{version}/%{name}-%{version}.tar.gz
|
||||
Source1: mpich.macros
|
||||
Source2: mpich.pth.py3
|
||||
Patch0: mpich-modules.patch
|
||||
Patch3: 0003-soften-version-check.patch
|
||||
Patch1: 0001-Drop-real128.patch
|
||||
# fix for #1793563 and #1799473
|
||||
Patch2: https://github.com/pmodels/mpich/pull/4320.patch
|
||||
# Drop build flags, e.g. -specs... and -lto from mpi wrappers (mpicc and mpicxx)
|
||||
# for discussion see:
|
||||
# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/7TFWEKTDWBYBHEGMIWBVI3AVGORZGNBS/
|
||||
Patch3: fix_wrapper_flags.patch
|
||||
|
||||
Patch4: 0001-mpl-limit-scope-on-macos-.local-workaround.patch
|
||||
Patch5: 0002-mpl-do-not-require-non-loopback-networking.patch
|
||||
|
||||
BuildRequires: gcc
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: gcc-gfortran
|
||||
BuildRequires: hwloc-devel >= 1.8
|
||||
%ifarch %{valgrind_arches}
|
||||
BuildRequires: hwloc-devel >= 2.2.0
|
||||
%ifnarch s390 %{mips}
|
||||
BuildRequires: valgrind-devel
|
||||
%endif
|
||||
# For %%{python3_sitearch}
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: rpm-mpi-hooks
|
||||
BuildRequires: automake
|
||||
Provides: mpi
|
||||
Requires: environment(modules)
|
||||
|
||||
# Make sure this package is rebuilt with correct Python version when updating
|
||||
# Otherwise mpi.req from rpm-mpi-hooks doesn't work
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1705296
|
||||
Requires: (python(abi) = %{python3_version} if python3)
|
||||
|
||||
%description
|
||||
MPICH is a high-performance and widely portable implementation of the Message
|
||||
Passing Interface (MPI) standard (MPI-1, MPI-2 and MPI-3). The goals of MPICH
|
||||
@ -44,27 +62,25 @@ mpich-autoload package.
|
||||
|
||||
%package autoload
|
||||
Summary: Load mpich automatically into profile
|
||||
Group: System Environment/Base
|
||||
Requires: mpich = %{version}-%{release}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
|
||||
%description autoload
|
||||
This package contains profile files that make mpich automatically loaded.
|
||||
|
||||
%package devel
|
||||
Summary: Development files for mpich
|
||||
Group: Development/Libraries
|
||||
Provides: %{name}-devel-static = %{version}-%{release}
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: pkgconfig
|
||||
Requires: gcc-gfortran
|
||||
Requires: rpm-mpi-hooks
|
||||
Requires: redhat-rpm-config
|
||||
|
||||
%description devel
|
||||
Contains development headers and libraries for mpich
|
||||
|
||||
%package doc
|
||||
Summary: Documentations and examples for mpich
|
||||
Group: Documentation
|
||||
BuildArch: noarch
|
||||
Requires: %{name}-devel = %{version}-%{release}
|
||||
|
||||
@ -73,75 +89,49 @@ Contains documentations, examples and man-pages for mpich
|
||||
|
||||
%package -n python3-mpich
|
||||
Summary: mpich support for Python 3
|
||||
Group: Development/Libraries
|
||||
|
||||
BuildRequires: python3-devel
|
||||
Provides: python-mpich
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
Requires: python(abi) = %{python3_version}
|
||||
|
||||
%description -n python3-mpich
|
||||
mpich support for Python 3.
|
||||
|
||||
# We only compile with gcc, but other people may want other compilers.
|
||||
# Set the compiler here.
|
||||
%{!?opt_cc: %global opt_cc gcc}
|
||||
%{!?opt_fc: %global opt_fc gfortran}
|
||||
%{!?opt_f77: %global opt_f77 gfortran}
|
||||
# Optional CFLAGS to use with the specific compiler...gcc doesn't need any,
|
||||
# so uncomment and undefine to NOT use
|
||||
%{!?opt_cc_cflags: %global opt_cc_cflags %{optflags}}
|
||||
%{!?opt_fc_fflags: %global opt_fc_fflags %{optflags}}
|
||||
#%%{!?opt_fc_fflags: %%global opt_fc_fflags %%{optflags} -I%%{_fmoddir}}
|
||||
%{!?opt_f77_fflags: %global opt_f77_fflags %{optflags}}
|
||||
|
||||
%ifarch s390
|
||||
%global m_option -m31
|
||||
%else
|
||||
%global m_option -m%{__isa_bits}
|
||||
%endif
|
||||
|
||||
%ifarch %{arm} aarch64 %{mips}
|
||||
%global m_option ""
|
||||
%endif
|
||||
|
||||
%global selected_channels ch3:nemesis
|
||||
|
||||
%ifarch %{ix86} x86_64 s390 %{arm} aarch64
|
||||
%global XFLAGS -fPIC
|
||||
%endif
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
%setup
|
||||
|
||||
%patch0 -p1
|
||||
|
||||
%ifarch %{arm}
|
||||
%patch1 -p1
|
||||
%endif
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
|
||||
%build
|
||||
%configure \
|
||||
--enable-sharedlibs=gcc \
|
||||
--enable-shared \
|
||||
--enable-static=no \
|
||||
--enable-lib-depend \
|
||||
--disable-rpath \
|
||||
--disable-silent-rules \
|
||||
--enable-fc \
|
||||
--with-device=%{selected_channels} \
|
||||
--with-pm=hydra:gforker \
|
||||
--includedir=%{_includedir}/%{name}-%{_arch} \
|
||||
--bindir=%{_libdir}/%{name}/bin \
|
||||
--libdir=%{_libdir}/%{name}/lib \
|
||||
--datadir=%{_datadir}/%{name} \
|
||||
--mandir=%{_mandir}/%{name}-%{_arch} \
|
||||
--docdir=%{_datadir}/%{name}/doc \
|
||||
--htmldir=%{_datadir}/%{name}/doc \
|
||||
--with-hwloc-prefix=system \
|
||||
FC=%{opt_fc} \
|
||||
F77=%{opt_f77} \
|
||||
CFLAGS="%{m_option} %{optflags} %{?XFLAGS}" \
|
||||
CXXFLAGS="%{m_option} %{optflags} %{?XFLAGS}" \
|
||||
FCFLAGS="%{m_option} %{optflags} %{?XFLAGS}" \
|
||||
FFLAGS="%{m_option} %{optflags} %{?XFLAGS}" \
|
||||
LDFLAGS="%{build_ldflags}" \
|
||||
MPICHLIB_CFLAGS="%{?opt_cc_cflags}" \
|
||||
MPICHLIB_CXXFLAGS="%{optflags}" \
|
||||
MPICHLIB_FCFLAGS="%{?opt_fc_fflags}" \
|
||||
MPICHLIB_FFLAGS="%{?opt_f77_fflags}"
|
||||
CONFIGURE_OPTS=(
|
||||
--enable-sharedlibs=gcc
|
||||
--enable-shared
|
||||
--enable-static=no
|
||||
--enable-lib-depend
|
||||
--disable-rpath
|
||||
--disable-silent-rules
|
||||
--enable-fc
|
||||
--with-device=ch3:nemesis
|
||||
--with-pm=hydra:gforker
|
||||
--includedir=%{_includedir}/%{name}-%{_arch}
|
||||
--bindir=%{_libdir}/%{name}/bin
|
||||
--libdir=%{_libdir}/%{name}/lib
|
||||
--datadir=%{_datadir}/%{name}
|
||||
--mandir=%{_mandir}/%{name}-%{_arch}
|
||||
--docdir=%{_datadir}/%{name}/doc
|
||||
--htmldir=%{_datadir}/%{name}/doc
|
||||
--with-hwloc-prefix=system
|
||||
)
|
||||
|
||||
%configure "${CONFIGURE_OPTS[@]}"
|
||||
|
||||
# Remove rpath
|
||||
sed -r -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
|
||||
@ -150,6 +140,9 @@ sed -r -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
|
||||
#Try and work around 'unused-direct-shlib-dependency' rpmlint warnning
|
||||
sed -i -e 's| -shared | -Wl,--as-needed\0|g' libtool
|
||||
|
||||
# work-around libtool error: cannot determine absolute directory name of 'system/lib'
|
||||
mkdir -p system/lib
|
||||
|
||||
%make_build VERBOSE=1
|
||||
|
||||
%install
|
||||
@ -160,7 +153,7 @@ mv %{buildroot}%{_includedir}/%{name}-*/*.mod %{buildroot}%{_fmoddir}/%{name}/
|
||||
sed -r -i 's|^modincdir=.*|modincdir=%{_fmoddir}/%{name}|' %{buildroot}%{_libdir}/%{name}/bin/mpifort
|
||||
|
||||
# Install the module file
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi
|
||||
mkdir -p %{buildroot}%{_datadir}/modulefiles/mpi
|
||||
sed -r 's|%{_bindir}|%{_libdir}/%{name}/bin|;
|
||||
s|@LIBDIR@|%{_libdir}/%{name}|;
|
||||
s|@MPINAME@|%{name}|;
|
||||
@ -169,7 +162,7 @@ sed -r 's|%{_bindir}|%{_libdir}/%{name}/bin|;
|
||||
s|@fortranmoddir@|%{_fmoddir}|;
|
||||
' \
|
||||
<src/packaging/envmods/mpich.module \
|
||||
>%{buildroot}%{_sysconfdir}/modulefiles/mpi/%{name}-%{_arch}
|
||||
>%{buildroot}%{_datadir}/modulefiles/mpi/%{name}-%{_arch}
|
||||
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/profile.d
|
||||
cat >%{buildroot}%{_sysconfdir}/profile.d/mpich-%{_arch}.sh <<EOF
|
||||
@ -188,11 +181,16 @@ install -pDm0644 %{SOURCE2} %{buildroot}%{python3_sitearch}/%{name}.pth
|
||||
find %{buildroot} -type f -name "*.la" -delete
|
||||
|
||||
%check
|
||||
make check VERBOSE=1
|
||||
make check VERBOSE=1 \
|
||||
%ifarch ppc64le
|
||||
|| :
|
||||
%endif
|
||||
# The test results are ignored on ppc64le. The tests started failing
|
||||
# in the bundled openpa checksuite. Upstream has already removed it,
|
||||
# so the issue should resolve itself for the next release and I don't
|
||||
# think it's worth the time to solve it here.
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
%ldconfig_scriptlets
|
||||
|
||||
%files
|
||||
%license COPYRIGHT
|
||||
@ -209,7 +207,7 @@ make check VERBOSE=1
|
||||
%{_libdir}/%{name}/bin/parkill
|
||||
%dir %{_mandir}/%{name}-%{_arch}
|
||||
%doc %{_mandir}/%{name}-%{_arch}/man1/
|
||||
%{_sysconfdir}/modulefiles/mpi/
|
||||
%{_datadir}/modulefiles/mpi/
|
||||
|
||||
%files autoload
|
||||
%{_sysconfdir}/profile.d/mpich-%{_arch}.*
|
||||
@ -237,6 +235,15 @@ make check VERBOSE=1
|
||||
%{python3_sitearch}/%{name}.pth
|
||||
|
||||
%changelog
|
||||
* Thu Oct 15 2020 Honggang Li <honli@redhat.com> - 3.3.2-9
|
||||
- Fix a dependency typo
|
||||
- Related: rhbz#1850080
|
||||
|
||||
* Thu Oct 15 2020 Honggang Li <honli@redhat.com> - 3.3.2-8
|
||||
- Sync with Fedora build
|
||||
- Update to latest upstream release 3.3.2
|
||||
- Resolves: rhbz#1657316, rhbz#1732982, rhbz#1850080
|
||||
|
||||
* Fri Sep 21 2018 Jarod Wilson <jarod@redhat.com> - 3.2.1-9
|
||||
- Use proper distro compile flags throughout build
|
||||
- Related: rhbz#1624144
|
||||
|
Loading…
Reference in New Issue
Block a user