The package rpms/gasnet.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/gasnet.git/commit/?id=71dc8541ad5....
Change:
-ExcludeArch: s390x
Thanks.
Full change:
============
commit 71dc8541ad5da081931020ce416e304c7d5b12a6
Author: Christoph Junghans <junghans(a)lanl.gov>
Date: Thu Aug 3 11:53:23 2017 -0600
Added patch from OpenSuse to support s390x (bug #1453092)
diff --git a/gasnet-s390-support.patch b/gasnet-s390-support.patch
new file mode 100644
index 0000000..9948f14
--- /dev/null
+++ b/gasnet-s390-support.patch
@@ -0,0 +1,61 @@
+From: Nicolas Morey-Chaisemartin <nmoreychaisemartin(a)suse.de>
+Date: 2017-06-12 04:37:30
+Subject: s390/s390x support
+
+Ref:
https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=3523
+
+diff -Naur GASNet-1.28.2.orig/gasnet_atomic_bits.h GASNet-1.28.2/gasnet_atomic_bits.h
+--- GASNet-1.28.2.orig/gasnet_atomic_bits.h 2017-08-03 14:39:22.901668800 -0600
++++ GASNet-1.28.2/gasnet_atomic_bits.h 2017-08-03 14:40:41.164945171 -0600
+@@ -156,6 +156,7 @@
+ #elif defined(GASNETI_FORCE_COMPILER_ATOMICOPS) || /* for debugging */ \
+ (PLATFORM_COMPILER_XLC && !GASNETI_HAVE_XLC_ASM &&
GASNETI_HAVE_SYNC_ATOMICS_32) || \
+ PLATFORM_ARCH_AARCH64 || \
++ PLATFORM_ARCH_S390 || \
+ PLATFORM_ARCH_TILE
+ /* TODO: can (should?) do TILE and AARCH64 natively */
+ /* TODO: probe for an XLC version with non-broken gcc inline asm support? */
+diff -Naur GASNet-1.28.2.orig/gasnet_membar.h GASNet-1.28.2/gasnet_membar.h
+--- GASNet-1.28.2.orig/gasnet_membar.h 2017-08-03 14:39:22.901668800 -0600
++++ GASNet-1.28.2/gasnet_membar.h 2017-08-03 14:39:37.768726423 -0600
+@@ -260,6 +260,12 @@
+ #define gasneti_local_rmb() gasneti_local_mb()
+ #define GASNETI_RMB_IS_MB
+ #define GASNETI_WMB_IS_MB
++#elif PLATFORM_ARCH_S390 && PLATFORM_COMPILER_GNU
++ #define gasneti_local_mb() __sync_synchronize()
++ #define gasneti_local_wmb() gasneti_local_mb()
++ #define gasneti_local_rmb() gasneti_local_mb()
++ #define GASNETI_RMB_IS_MB
++ #define GASNETI_WMB_IS_MB
+ #else
+ #error unknown CPU - dont know how to do a local memory barrier for your CPU/OS
+ #endif
+diff -Naur GASNet-1.28.2.orig/other/gasnet_portable_platform.h
GASNet-1.28.2/other/gasnet_portable_platform.h
+--- GASNet-1.28.2.orig/other/gasnet_portable_platform.h 2017-08-03 14:39:22.953665558
-0600
++++ GASNet-1.28.2/other/gasnet_portable_platform.h 2017-08-03 14:39:37.771726291 -0600
+@@ -157,6 +157,7 @@
+ #undef PLATFORM_ARCH_ARM
+ #undef PLATFORM_ARCH_AARCH64
+ #undef PLATFORM_ARCH_TILE
++#undef PLATFORM_ARCH_S390
+ #undef PLATFORM_ARCH_UNKNOWN
+
+ /* prevent known old/broken versions of this header from loading */
+@@ -923,6 +924,16 @@
+ #define _PLATFORM_ARCH_64 1
+ #else
+ #define _PLATFORM_ARCH_32 1
++ #endif
++
++#elif defined(__s390__)
++ #define PLATFORM_ARCH_S390 1
++ #define PLATFORM_ARCH_FAMILYNAME S390
++ #define _PLATFORM_ARCH_BIG_ENDIAN 1
++ #if defined(__s390x__)
++ #define _PLATFORM_ARCH_64 1
++ #else
++ #define _PLATFORM_ARCH_32 1
+ #endif
+
+ #else /* unknown CPU */
diff --git a/gasnet.spec b/gasnet.spec
index 9a48601..69b3acf 100644
--- a/gasnet.spec
+++ b/gasnet.spec
@@ -1,14 +1,12 @@
-# s390x isn't supported by upstream (bug #1453092)
-#
https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=3523
-ExcludeArch: s390x
-
Name: gasnet
Version: 1.28.2
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: A Portable High-Performance Communication Layer for GAS Languages
License: PostgreSQL
Url:
https://bitbucket.org/berkeleylab/gasnet/
Source0:
https://bitbucket.org/berkeleylab/gasnet/downloads/GASNet-%{version}.tar.gz
+#Patch from OpenSuse to support s390 -
https://upc-bugs.lbl.gov/bugzilla/show_bug.cgi?id=3523
+Patch0: gasnet-s390-support.patch
BuildRequires: automake
Requires: %{name}-common%{?_isa} = %{version}-%{release}
@@ -86,6 +84,7 @@ Documentation package for GASNet.
%prep
%setup -q -n GASNet-%{version}
+%patch0 -p1
%build
mkdir serial openmpi mpich
@@ -93,20 +92,20 @@ mkdir serial openmpi mpich
pushd serial
%dconfigure --enable-udp --disable-mpi --enable-par --disable-aligned-segments
--enable-segment-fast --with-segment-mmap-max=4GB CC="gcc -fPIC" CXX="g++
-fPIC"
-%make_build MANUAL_CFLAGS="%optflags -fPIC" MANUAL_MPICFLAGS="%optflags
-fPIC" MANUAL_CXXFLAGS="%optflags -fPIC"
+%make_build MANUAL_CFLAGS="%optflags -fPIC" MANUAL_MPICFLAGS="%optflags
-fPIC" MANUAL_CXXFLAGS="%optflags -fPIC" -j1
popd
pushd openmpi
%{_openmpi_load}
%dconfigure --enable-udp --enable-mpi --enable-par --disable-aligned-segments
--enable-segment-fast --with-segment-mmap-max=4GB --bindir="${MPI_BIN}"
--includedir="${MPI_INCLUDE}" --libdir="${MPI_LIB}" CC="gcc
-fPIC" CXX="g++ -fPIC"
-%make_build MANUAL_CFLAGS="%optflags -fPIC" MANUAL_MPICFLAGS="%optflags
-fPIC" MANUAL_CXXFLAGS="%optflags -fPIC"
+%make_build MANUAL_CFLAGS="%optflags -fPIC" MANUAL_MPICFLAGS="%optflags
-fPIC" MANUAL_CXXFLAGS="%optflags -fPIC" -j1
%{_openmpi_unload}
popd
pushd mpich
%{_mpich_load}
%dconfigure --enable-udp --enable-mpi --enable-par --disable-aligned-segments
--enable-segment-fast --with-segment-mmap-max=4GB --bindir="${MPI_BIN}"
--includedir="${MPI_INCLUDE}" --libdir="${MPI_LIB}" CC="gcc
-fPIC" CXX="g++ -fPIC"
-%make_build MANUAL_CFLAGS="%optflags -fPIC" MANUAL_MPICFLAGS="%optflags
-fPIC" MANUAL_CXXFLAGS="%optflags -fPIC"
+%make_build MANUAL_CFLAGS="%optflags -fPIC" MANUAL_MPICFLAGS="%optflags
-fPIC" MANUAL_CXXFLAGS="%optflags -fPIC" -j1
%{_mpich_unload}
popd
@@ -199,6 +198,10 @@ done
%{_libdir}/mpich*/lib/valgrind
%changelog
+* Thu Aug 03 2017 Christoph Junghans <junghans(a)votca.org> - 1.28.2-7
+- Added patch from OpenSuse to support s390x (bug #1453092)
+- limit to -j1 due to parallel make error
+
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 1.28.2-6
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild