SHA256
1
0
forked from pool/mvapich2

Accepting request 812877 from home:NMoreyChaisemartin:branches:science:HPC

- Update so mvapich2 2.3.4
  - See CHANGELOG for fixes and new features
- Add fix-missing-return-code.patch to fix compilation errors
- Add 0001-Drop-Real-16.patch to disable Real(16) support on Armv7

OBS-URL: https://build.opensuse.org/request/show/812877
OBS-URL: https://build.opensuse.org/package/show/science:HPC/mvapich2?expand=0&rev=70
This commit is contained in:
Nicolas Morey-Chaisemartin 2020-06-09 15:33:07 +00:00 committed by Git OBS Bridge
parent 54afe296a1
commit 5a9588822a
6 changed files with 362 additions and 8 deletions

281
0001-Drop-Real-16.patch Normal file
View File

@ -0,0 +1,281 @@
commit 55d03ccf1f3969b185f00e5572c5a0675e000264
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Fri Jun 5 10:11:12 2020 +0200
0001 Drop Real(16)
Real(16) does not work on armv7
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git src/binding/fortran/mpif_h/Makefile.mk src/binding/fortran/mpif_h/Makefile.mk
index d2de6bc779ac..73049dbd9379 100644
--- src/binding/fortran/mpif_h/Makefile.mk
+++ src/binding/fortran/mpif_h/Makefile.mk
@@ -390,7 +390,6 @@ mpi_f77_sources += src/binding/fortran/mpif_h/sendf.c \
src/binding/fortran/mpif_h/null_type_copy_fnf.c
mpi_core_sources += src/binding/fortran/mpif_h/fdebug.c \
src/binding/fortran/mpif_h/setbot.c \
- src/binding/fortran/mpif_h/fortran_ops.F \
src/binding/fortran/mpif_h/setbotf.f
mpi_sources += src/binding/fortran/mpif_h/statusf2c.c src/binding/fortran/mpif_h/statusc2f.c
diff --git src/binding/fortran/mpif_h/buildiface src/binding/fortran/mpif_h/buildiface
index 2b7a77f22c90..9eebc69a4359 100755
--- src/binding/fortran/mpif_h/buildiface
+++ src/binding/fortran/mpif_h/buildiface
@@ -1045,7 +1045,6 @@ EOT
print MAKEFD <<EOT;
mpi_core_sources += src/binding/fortran/mpif_h/fdebug.c \\
src/binding/fortran/mpif_h/setbot.c \\
- src/binding/fortran/mpif_h/fortran_ops.F \\
src/binding/fortran/mpif_h/setbotf.f
mpi_sources += src/binding/fortran/mpif_h/statusf2c.c src/binding/fortran/mpif_h/statusc2f.c
diff --git src/mpi/coll/opland.c src/mpi/coll/opland.c
index 2fecd3d5fc59..59b208809471 100644
--- src/mpi/coll/opland.c
+++ src/mpi/coll/opland.c
@@ -79,7 +79,7 @@ void MPIR_LAND (
#undef MPIR_OP_TYPE_MACRO
/* --BEGIN ERROR HANDLING-- */
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case (MPI_REAL16):
#ifdef __ibmxl__
@@ -88,7 +88,7 @@ void MPIR_LAND (
real16_land_(invec, inoutvec, Len);
#endif
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
default: {
MPID_THREADPRIV_DECL;
@@ -123,10 +123,10 @@ int MPIR_LAND_check_dtype ( MPI_Datatype type )
MPIR_OP_TYPE_GROUP(FLOATING_POINT)
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case (MPI_REAL16):
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
#undef MPIR_OP_TYPE_MACRO
return MPI_SUCCESS;
diff --git src/mpi/coll/oplor.c src/mpi/coll/oplor.c
index cd340db11edf..81ba1a166cf7 100644
--- src/mpi/coll/oplor.c
+++ src/mpi/coll/oplor.c
@@ -79,7 +79,7 @@ void MPIR_LOR (
#undef MPIR_OP_TYPE_MACRO
/* --BEGIN ERROR HANDLING-- */
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case (MPI_REAL16):
#ifdef __ibmxl__
@@ -88,7 +88,7 @@ void MPIR_LOR (
real16_lor_(invec, inoutvec, Len);
#endif
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
default: {
MPID_THREADPRIV_DECL;
@@ -124,10 +124,10 @@ int MPIR_LOR_check_dtype ( MPI_Datatype type )
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
#undef MPIR_OP_TYPE_MACRO
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case (MPI_REAL16):
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
return MPI_SUCCESS;
/* --BEGIN ERROR HANDLING-- */
diff --git src/mpi/coll/opmax.c src/mpi/coll/opmax.c
index fde306a32512..c933bdd1ab18 100644
--- src/mpi/coll/opmax.c
+++ src/mpi/coll/opmax.c
@@ -45,7 +45,7 @@ void MPIR_MAXF(
#undef MPIR_OP_TYPE_MACRO
/* --BEGIN ERROR HANDLING-- */
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case MPI_REAL16:
#ifdef __ibmxl__
@@ -54,7 +54,7 @@ void MPIR_MAXF(
real16_max_(invec, inoutvec, Len);
#endif
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
default: {
MPID_THREADPRIV_DECL;
@@ -84,10 +84,10 @@ int MPIR_MAXF_check_dtype( MPI_Datatype type )
MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA)
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case (MPI_REAL16):
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
#undef MPIR_OP_TYPE_MACRO
return MPI_SUCCESS;
diff --git src/mpi/coll/opmaxloc.c src/mpi/coll/opmaxloc.c
index 56387843bdc8..036e50f02dea 100644
--- src/mpi/coll/opmaxloc.c
+++ src/mpi/coll/opmaxloc.c
@@ -146,7 +146,7 @@ void MPIR_MAXLOC(
case MPI_2INTEGER: MPIR_MAXLOC_F_CASE(MPI_Fint);
case MPI_2REAL: MPIR_MAXLOC_F_CASE(MPIR_FC_REAL_CTYPE);
case MPI_2DOUBLE_PRECISION: MPIR_MAXLOC_F_CASE(MPIR_FC_DOUBLE_CTYPE);
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case MPI_REAL16:
#ifdef __ibmxl__
@@ -155,7 +155,7 @@ void MPIR_MAXLOC(
real16_maxloc_(invec, inoutvec, &flen);
#endif
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif
#endif
/* --BEGIN ERROR HANDLING-- */
@@ -196,11 +196,11 @@ int MPIR_MAXLOC_check_dtype( MPI_Datatype type )
case MPI_2INTEGER:
case MPI_2REAL:
case MPI_2DOUBLE_PRECISION:
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case MPI_REAL16:
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif
#endif
diff --git src/mpi/coll/opmin.c src/mpi/coll/opmin.c
index a9da3e9f1736..1468ae7dba72 100644
--- src/mpi/coll/opmin.c
+++ src/mpi/coll/opmin.c
@@ -43,7 +43,7 @@ void MPIR_MINF (
#undef MPIR_OP_TYPE_MACRO
/* --BEGIN ERROR HANDLING-- */
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case MPI_REAL16:
#ifdef __ibmxl__
@@ -52,7 +52,7 @@ void MPIR_MINF (
real16_min_(invec, inoutvec, Len);
#endif
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
default: {
MPID_THREADPRIV_DECL;
@@ -82,10 +82,10 @@ int MPIR_MINF_check_dtype ( MPI_Datatype type )
MPIR_OP_TYPE_GROUP(FORTRAN_INTEGER_EXTRA)
MPIR_OP_TYPE_GROUP(FLOATING_POINT_EXTRA)
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case (MPI_REAL16):
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
#undef MPIR_OP_TYPE_MACRO
return MPI_SUCCESS;
diff --git src/mpi/coll/opminloc.c src/mpi/coll/opminloc.c
index ccbfb15fa472..fbbe028aaeb6 100644
--- src/mpi/coll/opminloc.c
+++ src/mpi/coll/opminloc.c
@@ -146,7 +146,7 @@ void MPIR_MINLOC(
case MPI_2INTEGER: MPIR_MINLOC_F_CASE(MPI_Fint);
case MPI_2REAL: MPIR_MINLOC_F_CASE(MPIR_FC_REAL_CTYPE);
case MPI_2DOUBLE_PRECISION: MPIR_MINLOC_F_CASE(MPIR_FC_DOUBLE_CTYPE);
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case MPI_REAL16:
#ifdef __ibmxl__
@@ -155,7 +155,7 @@ void MPIR_MINLOC(
real16_minloc_(invec, inoutvec, &flen);
#endif
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif
#endif
/* --BEGIN ERROR HANDLING-- */
@@ -198,11 +198,11 @@ int MPIR_MINLOC_check_dtype( MPI_Datatype type )
case MPI_2INTEGER:
case MPI_2REAL:
case MPI_2DOUBLE_PRECISION:
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case MPI_REAL16:
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif
#endif
diff --git src/mpi/coll/opsum.c src/mpi/coll/opsum.c
index 43b0f24687af..6f446dd26b1c 100644
--- src/mpi/coll/opsum.c
+++ src/mpi/coll/opsum.c
@@ -66,7 +66,7 @@ void MPIR_SUM (
#define MPIR_OP_C_COMPLEX_TYPE_MACRO(mpi_type_,c_type_,type_name_) MPIR_OP_TYPE_MACRO(mpi_type_,c_type_,type_name_)
/* --BEGIN ERROR HANDLING-- */
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case MPI_REAL16:
#ifdef __ibmxl__
@@ -75,7 +75,7 @@ void MPIR_SUM (
real16_sum_(invec, inoutvec, Len);
#endif
break;
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
default: {
MPID_THREADPRIV_DECL;
@@ -108,10 +108,10 @@ int MPIR_SUM_check_dtype( MPI_Datatype type )
MPIR_OP_TYPE_GROUP(COMPLEX)
MPIR_OP_TYPE_GROUP(COMPLEX_EXTRA)
#ifdef HAVE_FORTRAN_BINDING
-#ifndef __PGI
+#if !defined(__PGI) && !defined(__ARM_ARCH_7A__)
/* As of v20.1, PGI compilers only support real8 */
case (MPI_REAL16):
-#endif /*ifndef __PGI*/
+#endif /*if !defined(__PGI) && !defined(__ARM_ARCH_7A__) */
#endif /*#ifdef HAVE_FORTRAN_BINDING*/
#undef MPIR_OP_TYPE_MACRO
return MPI_SUCCESS;

View File

@ -0,0 +1,50 @@
commit 60ccf8e31bcc2fca9e9332721336992934d644da
Author: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
Date: Wed Jun 3 12:01:54 2020 +0200
fix missing return code
src/pmi/upmi/upmi.c: In function 'UPMI_GET_LOCAL_RANK':
src/pmi/upmi/upmi.c:746:1: error: control reaches end of non-void function [-Werror=return-type]
746 | }
| ^
src/pmi/upmi/upmi.c: In function 'UPMI_GET_LOCAL_SIZE':
src/pmi/upmi/upmi.c:764:1: error: control reaches end of non-void function [-Werror=return-type]
764 | }
| ^
src/pmi/upmi/upmi.c: In function 'UPMI_GET_LOWEST_RANK':
src/pmi/upmi/upmi.c:782:1: error: control reaches end of non-void function [-Werror=return-type]
782 | }
Signed-off-by: Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
diff --git src/pmi/upmi/upmi.c src/pmi/upmi/upmi.c
index 693e6395cbf8..6b1f045c6d5d 100644
--- src/pmi/upmi/upmi.c
+++ src/pmi/upmi/upmi.c
@@ -742,6 +742,8 @@ int UPMI_GET_LOCAL_RANK(int rank, int *size) {
}
*size= val->data.uint16;
return convert_err(rc);
+ #else
+ return 0;
#endif
}
@@ -760,6 +762,8 @@ int UPMI_GET_LOCAL_SIZE(int *size) {
}
*size= val->data.uint32;
return convert_err(rc);
+ #else
+ return 0;
#endif
}
@@ -778,5 +782,7 @@ int UPMI_GET_LOWEST_RANK(int *rank) {
}
*rank= val->data.uint32;
return convert_err(rc);
+ #else
+ return 0;
#endif
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:41d3261be57e5bc8aabf4e32981543c015c5443ff032a26f18205985e18c2b73
size 17102905

3
mvapich2-2.3.4.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a
size 18473572

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Wed Jun 3 08:13:07 UTC 2020 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>
- Update so mvapich2 2.3.4
- See CHANGELOG for fixes and new features
- Add fix-missing-return-code.patch to fix compilation errors
- Add 0001-Drop-Real-16.patch to disable Real(16) support on Armv7
-------------------------------------------------------------------
Tue Jan 21 08:17:00 UTC 2020 - Nicolas Morey-Chaisemartin <nmoreychaisemartin@suse.com>

View File

@ -19,8 +19,8 @@
%global flavor @BUILD_FLAVOR@%{nil}
%define pname mvapich2
%define vers 2.3.3
%define _vers 2_3_3
%define vers 2.3.4
%define _vers 2_3_4
%if "%{flavor}" == ""
ExclusiveArch: do_not_build
@ -168,8 +168,13 @@ 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: fix-missing-return-code.patch
## Armv7 specific patches
# PATCH-FIX-UPSTREAM 0001-Drop-real128.patch (https://github.com/pmodels/mpich/issues/4005)
Patch5: 0001-Drop-real128.patch
Patch50: 0001-Drop-real128.patch
Patch51: 0001-Drop-Real-16.patch
URL: http://mvapich.cse.ohio-state.edu/overview/mvapich2/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -182,6 +187,7 @@ BuildRequires: autoconf
BuildRequires: automake
BuildRequires: automake
BuildRequires: bison
BuildRequires: flex
%ifnarch s390 s390x %{arm}
BuildRequires: libnuma-devel
%endif
@ -301,14 +307,23 @@ is based on MPICH2 and MVICH. This package contains the static libraries
%patch2
%patch3
%patch4 -p1
# Only apply this patch on Armv7
%patch5
# Only apply these patches on Armv7
%ifarch armv7hl
%patch5 -p1
%patch50 -p1
%patch51
%endif
cp /usr/share/automake*/config.* .
%build
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
# GCC10 needs an extra flag to allow badly passed parameters
%if 0%{?suse_version} > 1500
export FFLAGS="-fallow-argument-mismatch $FFLAGS"
%endif
PERL_USE_UNSAFE_INC=1 ./autogen.sh
%if %{with hpc}
%{hpc_setup}