diff --git a/0001-Drop-real128.patch b/0001-Drop-real128.patch new file mode 100644 index 0000000..2726e66 --- /dev/null +++ b/0001-Drop-real128.patch @@ -0,0 +1,74 @@ +From 8f0c71281b5dccd70a3f1d4204e3cc6bc7201ceb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= + +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 + diff --git a/mvapich2-2.3.1.tar.gz b/mvapich2-2.3.1.tar.gz deleted file mode 100644 index 8c96f64..0000000 --- a/mvapich2-2.3.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:314e12829f75f3ed83cd4779a972572d1787aac6543a3d024ea7c6080e0ee3bf -size 16978520 diff --git a/mvapich2-2.3.2.tar.gz b/mvapich2-2.3.2.tar.gz new file mode 100644 index 0000000..5f82fe9 --- /dev/null +++ b/mvapich2-2.3.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30cc0d7bcaa075d204692f76bca4d65a539e0f661c7460ffa9f835d6249e1ebf +size 17054531 diff --git a/mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch b/mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch deleted file mode 100644 index 139d4c7..0000000 --- a/mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch +++ /dev/null @@ -1,142 +0,0 @@ -commit a99fe07d76f518d8ce98752e3251e1c6d601ca7f -Author: Nicolas Morey-Chaisemartin -Date: Fri Aug 2 10:53:11 2019 +0200 - - mvapich2: make sure ibv_get_device_list returned one before freeing it - - Signed-off-by: Nicolas Morey-Chaisemartin - -diff --git src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c -index 8a6f06bb43a1..0eaab4a30804 100644 ---- src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c -+++ src/mpid/ch3/channels/common/src/detect/hca/mv2_hca_detect.c -@@ -632,7 +632,8 @@ mv2_multirail_info_type mv2_get_multirail_info() - g_mv2_multirail_info = mv2_num_rail_unknown; - break; - } -- ibv_free_device_list(dev_list); -+ if(dev_list) -+ ibv_free_device_list(dev_list); - } - return g_mv2_multirail_info; - } -diff --git src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c -index 0634d4ae48d2..6414bc0b76b8 100644 ---- src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c -+++ src/mpid/ch3/channels/mrail/src/gen2/ibv_param.c -@@ -572,7 +572,8 @@ int rdma_get_process_to_rail_mapping(int mrail_user_defined_p2r_type) - } - fn_exit: - /* Housekeeping operations */ -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - MPIU_Free(p2r_only_numbers); - MPIU_Free(mrail_p2r_string); - mrail_p2r_string = NULL; -diff --git src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c -index 89bf75ef49ab..4d97eb107be6 100644 ---- src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c -+++ src/mpid/ch3/channels/mrail/src/gen2/rdma_iba_priv.c -@@ -387,7 +387,8 @@ int rdma_find_network_type(struct ibv_device **dev_list, int num_devices, - *num_usable_hcas = num_unknwn_cards; - } - -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - - return network_type; - } -@@ -514,7 +515,8 @@ int ring_rdma_open_hca(struct mv2_MPIDI_CH3I_RDMA_Process_t *proc) - - fn_exit: - /* Clean up before exit */ -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - return is_device_opened; - } - -@@ -614,7 +616,8 @@ retry_hca_open: - - if (!ib_dev) { - /* Clean up before exit */ -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - MPIR_ERR_SETFATALANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**fail", - "**fail %s", "No IB device found"); - } -@@ -624,7 +627,8 @@ retry_hca_open: - proc->nic_context[rdma_num_hcas] = ibv_open_device(ib_dev); - if (!proc->nic_context[rdma_num_hcas]) { - /* Clean up before exit */ -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - MPIR_ERR_SETFATALANDJUMP2(mpi_errno, MPI_ERR_OTHER, "**fail", - "%s %d", "Failed to open HCA number", - rdma_num_hcas); -@@ -641,7 +645,8 @@ retry_hca_open: - ibv_alloc_pd(proc->nic_context[rdma_num_hcas]); - if (!proc->ptag[rdma_num_hcas]) { - /* Clean up before exit */ -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - MPIR_ERR_SETFATALANDJUMP2(mpi_errno, MPI_ERR_OTHER, - "**fail", "%s%d", - "Failed to alloc pd number ", -@@ -672,7 +677,8 @@ retry_hca_open: - - fn_exit: - /* Clean up before exit */ -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - return mpi_errno; - - fn_fail: -diff --git src/mpid/ch3/channels/mrail/src/gen2/sysreport.c src/mpid/ch3/channels/mrail/src/gen2/sysreport.c -index c4754ada2e7b..e427925bf996 100644 ---- src/mpid/ch3/channels/mrail/src/gen2/sysreport.c -+++ src/mpid/ch3/channels/mrail/src/gen2/sysreport.c -@@ -111,7 +111,8 @@ static int hca_check(int rank) { - */ - } - -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - return mpi_errno; - } - -diff --git src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c -index e023a9239a39..110f92e2eddf 100644 ---- src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c -+++ src/mpid/ch3/channels/mrail/src/rdma/ibv_sharp.c -@@ -281,7 +281,8 @@ finished_query: - MPIR_ERR_POP(mpi_errno); - } - -- ibv_free_device_list(dev_list); -+ if (dev_list) -+ ibv_free_device_list(dev_list); - return 0; - #else - PRINT_ERROR( "Unable to get the device name, please set MV2_SHARP_HCA_NAME and MV2_SHARP_PORT, then rerun the program. "); -diff --git src/mpid/ch3/channels/psm/src/psm_entry.c src/mpid/ch3/channels/psm/src/psm_entry.c -index 09220e66b7f1..1e5b29e3104c 100755 ---- src/mpid/ch3/channels/psm/src/psm_entry.c -+++ src/mpid/ch3/channels/psm/src/psm_entry.c -@@ -226,7 +226,8 @@ mv2_arch_hca_type MV2_get_arch_hca_type(void) - hca_type = MV2_HCA_ANY; - - g_mv2_arch_hca_type = (uint64_t)arch_type << 32 | hca_type; -- ibv_free_device_list(dev_list); -+ if(dev_list) -+ ibv_free_device_list(dev_list); - #else - g_mv2_arch_hca_type = mv2_get_arch_hca_type(NULL); - #endif diff --git a/mvapich2.changes b/mvapich2.changes index 7ecd024..539a25d 100644 --- a/mvapich2.changes +++ b/mvapich2.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Sep 6 08:10:21 UTC 2019 - Nicolas Morey-Chaisemartin + +- Update to mvapich2 2.3.2 (jsc#SLE-8544) + - See CHANGELOG for fixes and new features +- Drop mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch + as it was fixed upstream. +- Use FAT LTO objects in order to provide proper static library. +- Add 0001-Drop-real128.patch to fix compilation on armv7 + ------------------------------------------------------------------- Fri Aug 2 08:56:21 UTC 2019 - Nicolas Morey-Chaisemartin diff --git a/mvapich2.spec b/mvapich2.spec index 6ee14d0..8c339fa 100644 --- a/mvapich2.spec +++ b/mvapich2.spec @@ -19,8 +19,8 @@ %global flavor @BUILD_FLAVOR@%{nil} %define pname mvapich2 -%define vers 2.3.1 -%define _vers 2_3_1 +%define vers 2.3.2 +%define _vers 2_3_2 %if "%{flavor}" == "" ExclusiveArch: do_not_build @@ -168,7 +168,8 @@ Patch2: mvapich2-arm-support.patch # It's been merged upstream, should be removed with the next release Patch3: 0001-Drop-GCC-check.patch Patch4: reproducible.patch -Patch5: mvapich2-make-sure-ibv_get_device_list-returned-one-before-freeing-it.patch +# PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005) +Patch5: 0001-Drop-real128.patch Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -300,10 +301,14 @@ is based on MPICH2 and MVICH. This package contains the static libraries %patch2 %patch3 %patch4 -p1 -%patch5 +# Only apply this patch on Armv7 +%ifarch armv7hl +%patch5 -p1 +%endif cp /usr/share/automake*/config.* . %build +%global _lto_cflags %{_lto_cflags} -ffat-lto-objects PERL_USE_UNSAFE_INC=1 ./autogen.sh %if %{with hpc} %{hpc_setup}