Accepting request 507873 from science:HPC
- Disable avx at configure level - Add openucx-s390x-support.patch to fix compilation on s390x - Compile openucx on s390x - Fix compilation on ppc - Update to snapshot 1.3+git44 * No changelog was found - Add -Wno-error and disable AVX/SSE as it is not guaranteed to exist. OBS-URL: https://build.opensuse.org/request/show/507873 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/openucx?expand=0&rev=3
This commit is contained in:
parent
ec0b537606
commit
42718c30e4
12
_service
12
_service
@ -1,14 +1,14 @@
|
||||
<services>
|
||||
<service name="tar_scm" mode="localonly">
|
||||
<service name="tar_scm" mode="disabled">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">git://github.com/openucx/ucx</param>
|
||||
<param name="revision">6cb0d7189bd53534575a992a2bdb27dd1cb66e22</param>
|
||||
<param name="parent-tag">20bf38e8c57df29815c512aa19fb194cf0527f3d</param>
|
||||
<param name="versionformat">0~git@TAG_OFFSET@</param>
|
||||
<param name="revision">master</param>
|
||||
<param name="parent-tag">9f8e93fc392a456cc86a60b55f02ef3086a6c616</param>
|
||||
<param name="versionformat">1.3+git@TAG_OFFSET@</param>
|
||||
</service>
|
||||
<service name="recompress" mode="localonly">
|
||||
<service name="recompress" mode="disabled">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">xz</param>
|
||||
</service>
|
||||
<service name="set_version" mode="localonly"/>
|
||||
<service name="set_version" mode="disabled"/>
|
||||
</services>
|
||||
|
147
openucx-s390x-support.patch
Normal file
147
openucx-s390x-support.patch
Normal file
@ -0,0 +1,147 @@
|
||||
diff --git src/ucs/Makefile.am src/ucs/Makefile.am
|
||||
index ba869dbf..c588cd9d 100644
|
||||
--- src/ucs/Makefile.am
|
||||
+++ src/ucs/Makefile.am
|
||||
@@ -25,6 +25,8 @@ nobase_dist_libucs_la_HEADERS = \
|
||||
arch/generic/cpu.h \
|
||||
arch/ppc64/bitops.h \
|
||||
arch/ppc64/cpu.h \
|
||||
+ arch/s390x/bitops.h \
|
||||
+ arch/s390x/cpu.h \
|
||||
arch/x86_64/atomic.h \
|
||||
arch/x86_64/bitops.h \
|
||||
arch/x86_64/cpu.h \
|
||||
diff --git src/ucs/arch/atomic.h src/ucs/arch/atomic.h
|
||||
index 7649971b..7bb2bc36 100644
|
||||
--- src/ucs/arch/atomic.h
|
||||
+++ src/ucs/arch/atomic.h
|
||||
@@ -15,6 +15,8 @@
|
||||
# include "generic/atomic.h"
|
||||
#elif defined(__aarch64__)
|
||||
# include "generic/atomic.h"
|
||||
+#elif defined(__s390x__)
|
||||
+# include "generic/atomic.h"
|
||||
#else
|
||||
# error "Unsupported architecture"
|
||||
#endif
|
||||
diff --git src/ucs/arch/bitops.h src/ucs/arch/bitops.h
|
||||
index f4dd3ab4..de53bde0 100644
|
||||
--- src/ucs/arch/bitops.h
|
||||
+++ src/ucs/arch/bitops.h
|
||||
@@ -14,6 +14,8 @@
|
||||
# include "ppc64/bitops.h"
|
||||
#elif defined(__aarch64__)
|
||||
# include "aarch64/bitops.h"
|
||||
+#elif defined(__s390x__)
|
||||
+# include "s390x/bitops.h"
|
||||
#else
|
||||
# error "Unsupported architecture"
|
||||
#endif
|
||||
diff --git src/ucs/arch/cpu.h src/ucs/arch/cpu.h
|
||||
index d5127b3d..817ac0d2 100644
|
||||
--- src/ucs/arch/cpu.h
|
||||
+++ src/ucs/arch/cpu.h
|
||||
@@ -52,6 +52,8 @@ typedef enum ucs_cpu_flag {
|
||||
# include "ppc64/cpu.h"
|
||||
#elif defined(__aarch64__)
|
||||
# include "aarch64/cpu.h"
|
||||
+#elif defined(__s390x__)
|
||||
+# include "s390x/cpu.h"
|
||||
#else
|
||||
# error "Unsupported architecture"
|
||||
#endif
|
||||
diff --git src/ucs/arch/s390x/bitops.h src/ucs/arch/s390x/bitops.h
|
||||
new file mode 100644
|
||||
index 00000000..39ad1251
|
||||
--- /dev/null
|
||||
+++ src/ucs/arch/s390x/bitops.h
|
||||
@@ -0,0 +1,32 @@
|
||||
+/**
|
||||
+* Copyright (C) Mellanox Technologies Ltd. 2001-2015. ALL RIGHTS RESERVED.
|
||||
+*
|
||||
+* See file LICENSE for terms.
|
||||
+*/
|
||||
+
|
||||
+#ifndef UCS_S390X_BITOPS_H_
|
||||
+#define UCS_S390X_BITOPS_H_
|
||||
+
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+
|
||||
+static inline unsigned __ucs_ilog2_u32(uint32_t n)
|
||||
+{
|
||||
+ if (!n)
|
||||
+ return 0;
|
||||
+ return 31 - __builtin_clz(n);
|
||||
+}
|
||||
+
|
||||
+static inline unsigned __ucs_ilog2_u64(uint64_t n)
|
||||
+{
|
||||
+ if (!n)
|
||||
+ return 0;
|
||||
+ return 63 - __builtin_clz(n);
|
||||
+}
|
||||
+
|
||||
+static inline unsigned ucs_ffs64(uint64_t n)
|
||||
+{
|
||||
+ return __ucs_ilog2_u64(n & -n);
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
diff --git src/ucs/arch/s390x/cpu.h src/ucs/arch/s390x/cpu.h
|
||||
new file mode 100644
|
||||
index 00000000..f5131ea3
|
||||
--- /dev/null
|
||||
+++ src/ucs/arch/s390x/cpu.h
|
||||
@@ -0,0 +1,51 @@
|
||||
+/**
|
||||
+* Copyright (C) Mellanox Technologies Ltd. 2001-2013. ALL RIGHTS RESERVED.
|
||||
+* Copyright (C) ARM Ltd. 2016-2017. ALL RIGHTS RESERVED.
|
||||
+*
|
||||
+* See file LICENSE for terms.
|
||||
+*/
|
||||
+
|
||||
+
|
||||
+#ifndef UCS_S390X_CPU_H_
|
||||
+#define UCS_S390X_CPU_H_
|
||||
+
|
||||
+#include <ucs/sys/compiler.h>
|
||||
+#include <ucs/arch/generic/cpu.h>
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+
|
||||
+#define UCS_ARCH_CACHE_LINE_SIZE 256
|
||||
+
|
||||
+/* Assume the worst - weak memory ordering */
|
||||
+#define ucs_memory_bus_fence() asm volatile (""::: "memory")
|
||||
+#define ucs_memory_bus_store_fence() ucs_memory_bus_fence()
|
||||
+#define ucs_memory_bus_load_fence() ucs_memory_bus_fence()
|
||||
+#define ucs_memory_cpu_fence() ucs_memory_bus_fence()
|
||||
+#define ucs_memory_cpu_store_fence() ucs_memory_bus_fence()
|
||||
+#define ucs_memory_cpu_load_fence() ucs_memory_bus_fence()
|
||||
+
|
||||
+
|
||||
+static inline uint64_t ucs_arch_read_hres_clock()
|
||||
+{
|
||||
+ unsigned long clk;
|
||||
+ asm volatile("stck %0" : "=Q" (clk) : : "cc");
|
||||
+ return clk >> 2;
|
||||
+}
|
||||
+#define ucs_arch_get_clocks_per_sec ucs_arch_generic_get_clocks_per_sec
|
||||
+
|
||||
+
|
||||
+static inline ucs_cpu_model_t ucs_arch_get_cpu_model()
|
||||
+{
|
||||
+ return UCS_CPU_MODEL_UNKNOWN;
|
||||
+}
|
||||
+
|
||||
+static inline int ucs_arch_get_cpu_flag()
|
||||
+{
|
||||
+ return UCS_CPU_FLAG_UNKNOWN;
|
||||
+}
|
||||
+
|
||||
+double ucs_arch_get_clocks_per_sec();
|
||||
+
|
||||
+#define ucs_arch_wait_mem ucs_arch_generic_wait_mem
|
||||
+
|
||||
+#endif
|
@ -1,3 +1,27 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 30 09:30:58 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Disable avx at configure level
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 28 16:46:31 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Add openucx-s390x-support.patch to fix compilation on s390x
|
||||
- Compile openucx on s390x
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 8 12:12:59 UTC 2017 - nmoreychaisemartin@suse.com
|
||||
|
||||
- Fix compilation on ppc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 26 08:29:51 UTC 2017 - jengelh@inai.de
|
||||
|
||||
- Update to snapshot 1.3+git44
|
||||
* No changelog was found
|
||||
- Add -Wno-error and disable AVX/SSE as it is not guaranteed
|
||||
to exist.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jun 18 07:36:59 UTC 2016 - jengelh@inai.de
|
||||
|
||||
|
60
openucx.spec
60
openucx.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package openucx
|
||||
#
|
||||
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -16,29 +16,32 @@
|
||||
#
|
||||
|
||||
|
||||
%define version_unconverted 0~git1727
|
||||
%define version_unconverted 1.3+git44
|
||||
|
||||
Name: openucx
|
||||
Summary: Unifieid Communication X
|
||||
License: BSD-3-Clause
|
||||
Group: Development/Libraries/C and C++
|
||||
Version: 0~git1727
|
||||
Version: 1.3+git44
|
||||
Release: 0
|
||||
Url: http://openucx.org/
|
||||
|
||||
#Git-Clone: git://github.com/openucx/ucx
|
||||
#Git-Web: https://github.com/openucx/ucx
|
||||
Source: ucx-%version.tar.xz
|
||||
Patch0: openucx-s390x-support.patch
|
||||
BuildRequires: autoconf >= 2.63
|
||||
BuildRequires: automake >= 1.10
|
||||
BuildRequires: binutils-devel
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: gcc-c++
|
||||
BuildRequires: libibverbs-devel
|
||||
BuildRequires: libnuma-devel
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pkg-config
|
||||
BuildRequires: zlib-devel
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
ExclusiveArch: aarch64 %power64 x86_64
|
||||
ExclusiveArch: aarch64 %power64 x86_64 s390x
|
||||
|
||||
%description
|
||||
UCX is a communication library implementing high-performance
|
||||
@ -73,52 +76,52 @@ Requires: libucm0 = %version
|
||||
libucm is a standalone non-unloadable library which installs hooks
|
||||
for virtual memory changes in the current process.
|
||||
|
||||
%package -n libucp2
|
||||
%package -n libucp0
|
||||
Summary: Infiniband Unified Communication Protocols
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libucp2
|
||||
%description -n libucp0
|
||||
High-level API uses UCT framework to construct protocols commonly
|
||||
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
||||
|
||||
%package -n libucp-devel
|
||||
Summary: Development files for Unified Communication Protocols (UC-P)
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libucp2 = %version
|
||||
Requires: libucp0 = %version
|
||||
|
||||
%description -n libucp-devel
|
||||
High-level API uses UCT framework to construct protocols commonly
|
||||
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
||||
|
||||
%package -n libucs2
|
||||
%package -n libucs0
|
||||
Summary: Infiniband Unicified Communication Services
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libucs2
|
||||
%description -n libucs0
|
||||
This framework provides basic infrastructure for component based
|
||||
programming, memory management, and useful system utilities.
|
||||
|
||||
%package -n libucs-devel
|
||||
Summary: Development files for Unified Communication Services (UC-S)
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libucs2 = %version
|
||||
Requires: libucs0 = %version
|
||||
|
||||
%description -n libucs-devel
|
||||
This framework provides basic infrastructure for component based
|
||||
programming, memory management, and useful system utilities.
|
||||
|
||||
%package -n libuct2
|
||||
%package -n libuct0
|
||||
Summary: Infiniband Unified Communication Transport
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n libuct2
|
||||
%description -n libuct0
|
||||
Low-level API that expose basic network operations supported by
|
||||
underlying hardware.
|
||||
|
||||
%package -n libuct-devel
|
||||
Summary: Development files for Unified Communication Transport (UC-T)
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: libuct2 = %version
|
||||
Requires: libuct0 = %version
|
||||
|
||||
%description -n libuct-devel
|
||||
Low-level API that expose basic network operations supported by
|
||||
@ -126,18 +129,26 @@ underlying hardware.
|
||||
|
||||
%prep
|
||||
%setup -qn ucx-%version
|
||||
%patch0
|
||||
|
||||
%build
|
||||
autoreconf -fi
|
||||
%configure --disable-static
|
||||
make %{?_smp_mflags}
|
||||
export UCX_CFLAGS="%optflags -Wno-error"
|
||||
%ifarch x86_64
|
||||
export UCX_CFLAGS="$UCX_CFLAGS -mno-avx"
|
||||
%endif
|
||||
%ifarch %ix86
|
||||
export UCX_CFLAGS="$UCX_CFLAGS -mno-sse -mno-sse2"
|
||||
%endif
|
||||
%configure --disable-static --without-avx
|
||||
make %{?_smp_mflags} V=1
|
||||
|
||||
%post -n libucp2 -p /sbin/ldconfig
|
||||
%postun -n libucp2 -p /sbin/ldconfig
|
||||
%post -n libucs2 -p /sbin/ldconfig
|
||||
%postun -n libucs2 -p /sbin/ldconfig
|
||||
%post -n libuct2 -p /sbin/ldconfig
|
||||
%postun -n libuct2 -p /sbin/ldconfig
|
||||
%post -n libucp0 -p /sbin/ldconfig
|
||||
%postun -n libucp0 -p /sbin/ldconfig
|
||||
%post -n libucs0 -p /sbin/ldconfig
|
||||
%postun -n libucs0 -p /sbin/ldconfig
|
||||
%post -n libuct0 -p /sbin/ldconfig
|
||||
%postun -n libuct0 -p /sbin/ldconfig
|
||||
%post -n libucm0 -p /sbin/ldconfig
|
||||
%postun -n libucm0 -p /sbin/ldconfig
|
||||
|
||||
@ -149,6 +160,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
||||
%defattr(-,root,root)
|
||||
%_bindir/ucx_*
|
||||
%_datadir/ucx/
|
||||
%_libdir/pkgconfig/ucx.pc
|
||||
%doc LICENSE
|
||||
|
||||
%files -n libucm0
|
||||
@ -160,7 +172,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
||||
%_includedir/ucm/
|
||||
%_libdir/libucm.so
|
||||
|
||||
%files -n libucp2
|
||||
%files -n libucp0
|
||||
%defattr(-,root,root)
|
||||
%_libdir/libucp.so.*
|
||||
|
||||
@ -169,7 +181,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
||||
%_includedir/ucp/
|
||||
%_libdir/libucp.so
|
||||
|
||||
%files -n libucs2
|
||||
%files -n libucs0
|
||||
%defattr(-,root,root)
|
||||
%_libdir/libucs.so.*
|
||||
|
||||
@ -178,7 +190,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
||||
%_includedir/ucs/
|
||||
%_libdir/libucs.so
|
||||
|
||||
%files -n libuct2
|
||||
%files -n libuct0
|
||||
%defattr(-,root,root)
|
||||
%_libdir/libuct.so.*
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:35dbef55532035054c4621ce94b23ec27cd4e7efd615a31c3d7afab2e9714eff
|
||||
size 828800
|
3
ucx-1.3+git44.tar.xz
Normal file
3
ucx-1.3+git44.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:20ddc629f9e7d6b9b681fda25b4b4d79f834c97a03b429d7ec017a5c5a5ca55f
|
||||
size 1000964
|
Loading…
Reference in New Issue
Block a user