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>
|
<services>
|
||||||
<service name="tar_scm" mode="localonly">
|
<service name="tar_scm" mode="disabled">
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="url">git://github.com/openucx/ucx</param>
|
<param name="url">git://github.com/openucx/ucx</param>
|
||||||
<param name="revision">6cb0d7189bd53534575a992a2bdb27dd1cb66e22</param>
|
<param name="revision">master</param>
|
||||||
<param name="parent-tag">20bf38e8c57df29815c512aa19fb194cf0527f3d</param>
|
<param name="parent-tag">9f8e93fc392a456cc86a60b55f02ef3086a6c616</param>
|
||||||
<param name="versionformat">0~git@TAG_OFFSET@</param>
|
<param name="versionformat">1.3+git@TAG_OFFSET@</param>
|
||||||
</service>
|
</service>
|
||||||
<service name="recompress" mode="localonly">
|
<service name="recompress" mode="disabled">
|
||||||
<param name="file">*.tar</param>
|
<param name="file">*.tar</param>
|
||||||
<param name="compression">xz</param>
|
<param name="compression">xz</param>
|
||||||
</service>
|
</service>
|
||||||
<service name="set_version" mode="localonly"/>
|
<service name="set_version" mode="disabled"/>
|
||||||
</services>
|
</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
|
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
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# 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
|
Name: openucx
|
||||||
Summary: Unifieid Communication X
|
Summary: Unifieid Communication X
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Version: 0~git1727
|
Version: 1.3+git44
|
||||||
Release: 0
|
Release: 0
|
||||||
Url: http://openucx.org/
|
Url: http://openucx.org/
|
||||||
|
|
||||||
#Git-Clone: git://github.com/openucx/ucx
|
#Git-Clone: git://github.com/openucx/ucx
|
||||||
#Git-Web: https://github.com/openucx/ucx
|
#Git-Web: https://github.com/openucx/ucx
|
||||||
Source: ucx-%version.tar.xz
|
Source: ucx-%version.tar.xz
|
||||||
|
Patch0: openucx-s390x-support.patch
|
||||||
BuildRequires: autoconf >= 2.63
|
BuildRequires: autoconf >= 2.63
|
||||||
BuildRequires: automake >= 1.10
|
BuildRequires: automake >= 1.10
|
||||||
|
BuildRequires: binutils-devel
|
||||||
BuildRequires: doxygen
|
BuildRequires: doxygen
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: libibverbs-devel
|
BuildRequires: libibverbs-devel
|
||||||
|
BuildRequires: libnuma-devel
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
BuildRequires: pkg-config
|
BuildRequires: pkg-config
|
||||||
BuildRequires: zlib-devel
|
BuildRequires: zlib-devel
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
ExclusiveArch: aarch64 %power64 x86_64
|
ExclusiveArch: aarch64 %power64 x86_64 s390x
|
||||||
|
|
||||||
%description
|
%description
|
||||||
UCX is a communication library implementing high-performance
|
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
|
libucm is a standalone non-unloadable library which installs hooks
|
||||||
for virtual memory changes in the current process.
|
for virtual memory changes in the current process.
|
||||||
|
|
||||||
%package -n libucp2
|
%package -n libucp0
|
||||||
Summary: Infiniband Unified Communication Protocols
|
Summary: Infiniband Unified Communication Protocols
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
|
|
||||||
%description -n libucp2
|
%description -n libucp0
|
||||||
High-level API uses UCT framework to construct protocols commonly
|
High-level API uses UCT framework to construct protocols commonly
|
||||||
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
||||||
|
|
||||||
%package -n libucp-devel
|
%package -n libucp-devel
|
||||||
Summary: Development files for Unified Communication Protocols (UC-P)
|
Summary: Development files for Unified Communication Protocols (UC-P)
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: libucp2 = %version
|
Requires: libucp0 = %version
|
||||||
|
|
||||||
%description -n libucp-devel
|
%description -n libucp-devel
|
||||||
High-level API uses UCT framework to construct protocols commonly
|
High-level API uses UCT framework to construct protocols commonly
|
||||||
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
found in applications (MPI, OpenSHMEM, PGAS, etc.)
|
||||||
|
|
||||||
%package -n libucs2
|
%package -n libucs0
|
||||||
Summary: Infiniband Unicified Communication Services
|
Summary: Infiniband Unicified Communication Services
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
|
|
||||||
%description -n libucs2
|
%description -n libucs0
|
||||||
This framework provides basic infrastructure for component based
|
This framework provides basic infrastructure for component based
|
||||||
programming, memory management, and useful system utilities.
|
programming, memory management, and useful system utilities.
|
||||||
|
|
||||||
%package -n libucs-devel
|
%package -n libucs-devel
|
||||||
Summary: Development files for Unified Communication Services (UC-S)
|
Summary: Development files for Unified Communication Services (UC-S)
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: libucs2 = %version
|
Requires: libucs0 = %version
|
||||||
|
|
||||||
%description -n libucs-devel
|
%description -n libucs-devel
|
||||||
This framework provides basic infrastructure for component based
|
This framework provides basic infrastructure for component based
|
||||||
programming, memory management, and useful system utilities.
|
programming, memory management, and useful system utilities.
|
||||||
|
|
||||||
%package -n libuct2
|
%package -n libuct0
|
||||||
Summary: Infiniband Unified Communication Transport
|
Summary: Infiniband Unified Communication Transport
|
||||||
Group: System/Libraries
|
Group: System/Libraries
|
||||||
|
|
||||||
%description -n libuct2
|
%description -n libuct0
|
||||||
Low-level API that expose basic network operations supported by
|
Low-level API that expose basic network operations supported by
|
||||||
underlying hardware.
|
underlying hardware.
|
||||||
|
|
||||||
%package -n libuct-devel
|
%package -n libuct-devel
|
||||||
Summary: Development files for Unified Communication Transport (UC-T)
|
Summary: Development files for Unified Communication Transport (UC-T)
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: libuct2 = %version
|
Requires: libuct0 = %version
|
||||||
|
|
||||||
%description -n libuct-devel
|
%description -n libuct-devel
|
||||||
Low-level API that expose basic network operations supported by
|
Low-level API that expose basic network operations supported by
|
||||||
@ -126,18 +129,26 @@ underlying hardware.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -qn ucx-%version
|
%setup -qn ucx-%version
|
||||||
|
%patch0
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
%configure --disable-static
|
export UCX_CFLAGS="%optflags -Wno-error"
|
||||||
make %{?_smp_mflags}
|
%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
|
%post -n libucp0 -p /sbin/ldconfig
|
||||||
%postun -n libucp2 -p /sbin/ldconfig
|
%postun -n libucp0 -p /sbin/ldconfig
|
||||||
%post -n libucs2 -p /sbin/ldconfig
|
%post -n libucs0 -p /sbin/ldconfig
|
||||||
%postun -n libucs2 -p /sbin/ldconfig
|
%postun -n libucs0 -p /sbin/ldconfig
|
||||||
%post -n libuct2 -p /sbin/ldconfig
|
%post -n libuct0 -p /sbin/ldconfig
|
||||||
%postun -n libuct2 -p /sbin/ldconfig
|
%postun -n libuct0 -p /sbin/ldconfig
|
||||||
%post -n libucm0 -p /sbin/ldconfig
|
%post -n libucm0 -p /sbin/ldconfig
|
||||||
%postun -n libucm0 -p /sbin/ldconfig
|
%postun -n libucm0 -p /sbin/ldconfig
|
||||||
|
|
||||||
@ -149,6 +160,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%_bindir/ucx_*
|
%_bindir/ucx_*
|
||||||
%_datadir/ucx/
|
%_datadir/ucx/
|
||||||
|
%_libdir/pkgconfig/ucx.pc
|
||||||
%doc LICENSE
|
%doc LICENSE
|
||||||
|
|
||||||
%files -n libucm0
|
%files -n libucm0
|
||||||
@ -160,7 +172,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
|||||||
%_includedir/ucm/
|
%_includedir/ucm/
|
||||||
%_libdir/libucm.so
|
%_libdir/libucm.so
|
||||||
|
|
||||||
%files -n libucp2
|
%files -n libucp0
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%_libdir/libucp.so.*
|
%_libdir/libucp.so.*
|
||||||
|
|
||||||
@ -169,7 +181,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
|||||||
%_includedir/ucp/
|
%_includedir/ucp/
|
||||||
%_libdir/libucp.so
|
%_libdir/libucp.so
|
||||||
|
|
||||||
%files -n libucs2
|
%files -n libucs0
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%_libdir/libucs.so.*
|
%_libdir/libucs.so.*
|
||||||
|
|
||||||
@ -178,7 +190,7 @@ rm -fv "%buildroot/%_libdir"/*.la
|
|||||||
%_includedir/ucs/
|
%_includedir/ucs/
|
||||||
%_libdir/libucs.so
|
%_libdir/libucs.so
|
||||||
|
|
||||||
%files -n libuct2
|
%files -n libuct0
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%_libdir/libuct.so.*
|
%_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…
x
Reference in New Issue
Block a user