From b95e475e85e833a9d4faf5c54095a4a531b480997805c162ceca11cfdb099913 Mon Sep 17 00:00:00 2001 From: Nicolas Morey-Chaisemartin Date: Fri, 9 Jun 2017 07:27:29 +0000 Subject: [PATCH] Accepting request 502493 from home:NMoreyChaisemartin:branches:science:HPC - Reenable arm compilation - Rename and cleanup mvapich-s390_get_cycles.patch to mvapich2-s390_get_cycles.patch for coherency - Cleanup mvapich2-pthread_yield.patch - Add mvapich2-arm-support.patch to provide missing functions for armv7hl and aarch64 OBS-URL: https://build.opensuse.org/request/show/502493 OBS-URL: https://build.opensuse.org/package/show/science:HPC/mvapich2?expand=0&rev=6 --- mvapich2-arm-support.patch | 29 +++++++++++++++++++ mvapich2-psm.changes | 9 ++++++ mvapich2-psm.spec | 8 +++-- mvapich2-pthread_yield.patch | 16 +++------- ...es.patch => mvapich2-s390_get_cycles.patch | 10 ++----- mvapich2-testsuite.changes | 9 ++++++ mvapich2-testsuite.spec | 8 +++-- mvapich2.changes | 9 ++++++ mvapich2.spec | 8 +++-- 9 files changed, 78 insertions(+), 28 deletions(-) create mode 100644 mvapich2-arm-support.patch rename mvapich-s390_get_cycles.patch => mvapich2-s390_get_cycles.patch (61%) diff --git a/mvapich2-arm-support.patch b/mvapich2-arm-support.patch new file mode 100644 index 0000000..6dcbc82 --- /dev/null +++ b/mvapich2-arm-support.patch @@ -0,0 +1,29 @@ +diff --git src/mpid/ch3/channels/common/include/mv2_clock.h src/mpid/ch3/channels/common/include/mv2_clock.h +index ac117c2..335d07f 100644 +--- src/mpid/ch3/channels/common/include/mv2_clock.h ++++ src/mpid/ch3/channels/common/include/mv2_clock.h +@@ -81,7 +81,24 @@ static inline cycles_t get_cycles() + asm volatile ("mov %0=ar.itc" : "=r" (ret)); + return ret; + } ++#elif defined(__ARM_ARCH_7A__) ++typedef unsigned long long cycles_t; ++static inline cycles_t get_cycles(void) ++{ ++ cycles_t clk; ++ asm volatile("mrrc p15, 0, %Q0, %R0, c14" : "=r" (clk)); ++ return clk; ++} ++#elif defined(__aarch64__) + ++typedef unsigned long cycles_t; ++static inline cycles_t get_cycles() ++{ ++ cycles_t cval; ++ asm volatile("isb" : : : "memory"); ++ asm volatile("mrs %0, cntvct_el0" : "=r" (cval)); ++ return cval; ++} + #elif defined(__s390__) || defined(__s390x__) + typedef unsigned long cycles_t; + static inline cycles_t get_cycles() diff --git a/mvapich2-psm.changes b/mvapich2-psm.changes index 320a229..bf445f9 100644 --- a/mvapich2-psm.changes +++ b/mvapich2-psm.changes @@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Thu Jun 8 13:55:32 UTC 2017 - nmoreychaisemartin@suse.com + +- Reenable arm compilation +- Rename and cleanup mvapich-s390_get_cycles.patch to + mvapich2-s390_get_cycles.patch for coherency +- Cleanup mvapich2-pthread_yield.patch +- Add mvapich2-arm-support.patch to provide missing functions for + armv7hl and aarch64 +------------------------------------------------------------------- Thu Jun 8 11:38:36 UTC 2017 - nmoreychaisemartin@suse.com - Remove version dependencies to libibumad, libibverbs and librdmacm diff --git a/mvapich2-psm.spec b/mvapich2-psm.spec index 688c504..9b00176 100644 --- a/mvapich2-psm.spec +++ b/mvapich2-psm.spec @@ -33,8 +33,9 @@ Release: 0 Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz Source1: mpivars.sh Source2: mpivars.csh -Patch0: mvapich-s390_get_cycles.patch +Patch0: mvapich2-s390_get_cycles.patch Patch1: mvapich2-pthread_yield.patch +Patch2: mvapich2-arm-support.patch Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf @@ -48,7 +49,7 @@ BuildRequires: libibmad-devel BuildRequires: libibumad-devel BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel -%ifnarch s390 s390x +%ifnarch s390 s390x armv7hl BuildRequires: libnuma-devel %endif BuildRequires: libtool @@ -58,7 +59,7 @@ BuildRequires: python-devel BuildRequires: sysfsutils BuildRequires: xorg-x11-devel # mvapich needs asm/timex.h which seems to be missing from the glibc kernel headers -ExcludeArch: aarch64 armv7hl +#ExcludeArch: aarch64 armv7hl %if "%{name}" == "mvapich2-psm" ExclusiveArch: %ix86 x86_64 @@ -115,6 +116,7 @@ is based on MPICH2 and MVICH. This package contains the static libraries %setup -q -n mvapich2-%{version}%{?rc_ver} %patch0 %patch1 +%patch2 cp /usr/share/automake*/config.* . %build diff --git a/mvapich2-pthread_yield.patch b/mvapich2-pthread_yield.patch index 5e48d54..53b23d0 100644 --- a/mvapich2-pthread_yield.patch +++ b/mvapich2-pthread_yield.patch @@ -1,15 +1,7 @@ -From: Philipp Thomas -Date: 2014-04-23 17:44:45+02:00 -Subject: Define GNU_SOURCE for pthrea_yield - ---- - src/openpa/test/opa_test.h | 1 + - 1 file changed, 1 insertion(+) - -Index: src/openpa/test/opa_test.h -=================================================================== ---- src/openpa/test/opa_test.h.orig 2014-03-22 22:56:53.000000000 +0100 -+++ src/openpa/test/opa_test.h 2014-04-23 17:43:18.697310735 +0200 +diff --git src/openpa/test/opa_test.h src/openpa/test/opa_test.h +index 490b916..ec9c7f5 100644 +--- src/openpa/test/opa_test.h ++++ src/openpa/test/opa_test.h @@ -20,6 +20,7 @@ #include #include diff --git a/mvapich-s390_get_cycles.patch b/mvapich2-s390_get_cycles.patch similarity index 61% rename from mvapich-s390_get_cycles.patch rename to mvapich2-s390_get_cycles.patch index e1a7640..5a8eb4e 100644 --- a/mvapich-s390_get_cycles.patch +++ b/mvapich2-s390_get_cycles.patch @@ -1,10 +1,6 @@ ---- - src/mpid/ch3/channels/common/include/mv2_clock.h | 6 ++++++ - 1 file changed, 6 insertions(+) - -Index: src/mpid/ch3/channels/common/include/mv2_clock.h -=================================================================== ---- src/mpid/ch3/channels/common/include/mv2_clock.h.orig +diff --git src/mpid/ch3/channels/common/include/mv2_clock.h src/mpid/ch3/channels/common/include/mv2_clock.h +index 7edc148..ac117c2 100644 +--- src/mpid/ch3/channels/common/include/mv2_clock.h +++ src/mpid/ch3/channels/common/include/mv2_clock.h @@ -82,6 +82,14 @@ static inline cycles_t get_cycles() return ret; diff --git a/mvapich2-testsuite.changes b/mvapich2-testsuite.changes index 320a229..bf445f9 100644 --- a/mvapich2-testsuite.changes +++ b/mvapich2-testsuite.changes @@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Thu Jun 8 13:55:32 UTC 2017 - nmoreychaisemartin@suse.com + +- Reenable arm compilation +- Rename and cleanup mvapich-s390_get_cycles.patch to + mvapich2-s390_get_cycles.patch for coherency +- Cleanup mvapich2-pthread_yield.patch +- Add mvapich2-arm-support.patch to provide missing functions for + armv7hl and aarch64 +------------------------------------------------------------------- Thu Jun 8 11:38:36 UTC 2017 - nmoreychaisemartin@suse.com - Remove version dependencies to libibumad, libibverbs and librdmacm diff --git a/mvapich2-testsuite.spec b/mvapich2-testsuite.spec index dd1c096..f4118e6 100644 --- a/mvapich2-testsuite.spec +++ b/mvapich2-testsuite.spec @@ -33,8 +33,9 @@ Release: 0 Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz Source1: mpivars.sh Source2: mpivars.csh -Patch0: mvapich-s390_get_cycles.patch +Patch0: mvapich2-s390_get_cycles.patch Patch1: mvapich2-pthread_yield.patch +Patch2: mvapich2-arm-support.patch Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf @@ -48,7 +49,7 @@ BuildRequires: libibmad-devel BuildRequires: libibumad-devel BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel -%ifnarch s390 s390x +%ifnarch s390 s390x armv7hl BuildRequires: libnuma-devel %endif BuildRequires: libtool @@ -58,7 +59,7 @@ BuildRequires: python-devel BuildRequires: sysfsutils BuildRequires: xorg-x11-devel # mvapich needs asm/timex.h which seems to be missing from the glibc kernel headers -ExcludeArch: aarch64 armv7hl +#ExcludeArch: aarch64 armv7hl %if "%{name}" == "mvapich2-psm" ExclusiveArch: %ix86 x86_64 @@ -115,6 +116,7 @@ is based on MPICH2 and MVICH. This package contains the static libraries %setup -q -n mvapich2-%{version}%{?rc_ver} %patch0 %patch1 +%patch2 cp /usr/share/automake*/config.* . %build diff --git a/mvapich2.changes b/mvapich2.changes index 320a229..bf445f9 100644 --- a/mvapich2.changes +++ b/mvapich2.changes @@ -1,4 +1,13 @@ ------------------------------------------------------------------- +Thu Jun 8 13:55:32 UTC 2017 - nmoreychaisemartin@suse.com + +- Reenable arm compilation +- Rename and cleanup mvapich-s390_get_cycles.patch to + mvapich2-s390_get_cycles.patch for coherency +- Cleanup mvapich2-pthread_yield.patch +- Add mvapich2-arm-support.patch to provide missing functions for + armv7hl and aarch64 +------------------------------------------------------------------- Thu Jun 8 11:38:36 UTC 2017 - nmoreychaisemartin@suse.com - Remove version dependencies to libibumad, libibverbs and librdmacm diff --git a/mvapich2.spec b/mvapich2.spec index 89a10a5..147d5c4 100644 --- a/mvapich2.spec +++ b/mvapich2.spec @@ -33,8 +33,9 @@ Release: 0 Source0: http://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-%{version}.tar.gz Source1: mpivars.sh Source2: mpivars.csh -Patch0: mvapich-s390_get_cycles.patch +Patch0: mvapich2-s390_get_cycles.patch Patch1: mvapich2-pthread_yield.patch +Patch2: mvapich2-arm-support.patch Url: http://mvapich.cse.ohio-state.edu/overview/mvapich2/ BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: autoconf @@ -48,7 +49,7 @@ BuildRequires: libibmad-devel BuildRequires: libibumad-devel BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel -%ifnarch s390 s390x +%ifnarch s390 s390x armv7hl BuildRequires: libnuma-devel %endif BuildRequires: libtool @@ -58,7 +59,7 @@ BuildRequires: python-devel BuildRequires: sysfsutils BuildRequires: xorg-x11-devel # mvapich needs asm/timex.h which seems to be missing from the glibc kernel headers -ExcludeArch: aarch64 armv7hl +#ExcludeArch: aarch64 armv7hl %if "%{name}" == "mvapich2-psm" ExclusiveArch: %ix86 x86_64 @@ -115,6 +116,7 @@ is based on MPICH2 and MVICH. This package contains the static libraries %setup -q -n mvapich2-%{version}%{?rc_ver} %patch0 %patch1 +%patch2 cp /usr/share/automake*/config.* . %build