diff --git a/.gitignore b/.gitignore index 7c43f18..17b5b9d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/ucx-1.8.0.tar.gz +SOURCES/ucx-1.9.0.tar.gz diff --git a/.ucx.metadata b/.ucx.metadata index a39c193..898b283 100644 --- a/.ucx.metadata +++ b/.ucx.metadata @@ -1 +1 @@ -96f2fe1918127edadcf5b195b6532da1da3a74fa SOURCES/ucx-1.8.0.tar.gz +578c6064f9913bcf15f9b03569187ed547e30d8b SOURCES/ucx-1.9.0.tar.gz diff --git a/SOURCES/ucx-config.patch b/SOURCES/ucx-config.patch new file mode 100644 index 0000000..2ee4837 --- /dev/null +++ b/SOURCES/ucx-config.patch @@ -0,0 +1,35 @@ +diff --git a/config/m4/sysdep.m4 b/config/m4/sysdep.m4 +index b1e5485..0133803 100644 +--- a/config/m4/sysdep.m4 ++++ b/config/m4/sysdep.m4 +@@ -158,7 +158,7 @@ AC_MSG_CHECKING([malloc hooks]) + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $CFLAGS_NO_DEPRECATED" + CHECK_CROSS_COMP([AC_LANG_SOURCE([#include +- static int rc = 1; ++ static volatile int rc = 1; + void *ptr; + void *myhook(size_t size, const void *caller) { + rc = 0; +diff --git a/configure b/configure +index db54a6a..fa4352d 100755 +--- a/configure ++++ b/configure +@@ -22221,7 +22221,7 @@ CFLAGS="$CFLAGS $CFLAGS_NO_DEPRECATED" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include +- static int rc = 1; ++ volatile static int rc = 1; + void *ptr; + void *myhook(size_t size, const void *caller) { + rc = 0; +@@ -22252,7 +22252,7 @@ else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include +- static int rc = 1; ++ volatile static int rc = 1; + void *ptr; + void *myhook(size_t size, const void *caller) { + rc = 0; diff --git a/SOURCES/ucx-gcc11.patch b/SOURCES/ucx-gcc11.patch new file mode 100644 index 0000000..7d887ed --- /dev/null +++ b/SOURCES/ucx-gcc11.patch @@ -0,0 +1,13 @@ +diff --git a/src/ucs/datastruct/mpool.inl b/src/ucs/datastruct/mpool.inl +index d06e2f9..6b32406 100644 +--- a/src/ucs/datastruct/mpool.inl ++++ b/src/ucs/datastruct/mpool.inl +@@ -71,7 +71,7 @@ static inline ucs_mpool_t *ucs_mpool_obj_owner(void *obj) + + static inline void ucs_mpool_put_inline(void *obj) + { +- ucs_mpool_elem_t *elem; ++ ucs_mpool_elem_t * volatile elem; + ucs_mpool_t *mp; + + elem = ucs_mpool_obj_to_elem(obj); diff --git a/SPECS/ucx.spec b/SPECS/ucx.spec index b8aca55..87d7c6a 100644 --- a/SPECS/ucx.spec +++ b/SPECS/ucx.spec @@ -13,23 +13,29 @@ %bcond_with rocm %bcond_with ugni %bcond_with xpmem -%bcond_with java Name: ucx -Version: 1.8.0 +Version: 1.9.0 Release: 1%{?dist} Summary: UCX is a communication library implementing high-performance messaging -Group: System Environment/Libraries License: BSD URL: http://www.openucx.org -Source: https://github.com/openucx/%{name}/releases/download/v1.8.0/ucx-1.8.0.tar.gz +Source: https://github.com/openucx/%{name}/releases/download/v%{version}/ucx-%{version}.tar.gz +Patch: ucx-config.patch +# This avoids a false positive from gcc-11 by making the problematic +# pointer volatile rather than disabling the warning completely +Patch1: %{name}-gcc11.patch BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) # UCX currently supports only the following architectures ExclusiveArch: aarch64 ppc64le x86_64 +%if %{defined extra_deps} +Requires: %{?extra_deps} +%endif + BuildRequires: automake autoconf libtool gcc-c++ %if "%{_vendor}" == "suse" BuildRequires: libnuma-devel @@ -60,9 +66,6 @@ BuildRequires: hsa-rocr-dev %if %{with xpmem} BuildRequires: xpmem-devel %endif -%if %{with java} -BuildRequires: maven -%endif %description UCX stands for Unified Communication X. UCX provides an optimized communication @@ -73,7 +76,7 @@ available, TCP is used instead. UCX supports efficient transfer of data in either main memory (RAM) or GPU memory (through CUDA and ROCm libraries). In addition, UCX provides efficient intra-node communication, by leveraging the following shared memory mechanisms: posix, sysv, cma, knem, and xpmem. -This package was built from '' branch, commit c30b7da. +This package was built from '' branch, commit 6b29558. %if "%{_vendor}" == "suse" %debug_package @@ -82,13 +85,14 @@ This package was built from '' branch, commit c30b7da. %package devel Requires: %{name}%{?_isa} = %{version}-%{release} Summary: Header files required for developing with UCX -Group: Development/Libraries %description devel Provides header files and examples for developing with UCX. %prep %setup -q +%patch -p1 +%patch1 -p1 %build %define _with_arg() %{expand:%%{?with_%{1}:--with-%{2}}%%{!?with_%{1}:--without-%{2}}} @@ -98,6 +102,8 @@ Provides header files and examples for developing with UCX. --disable-debug \ --disable-assertions \ --disable-params-check \ + --enable-examples \ + --without-java \ %_enable_arg cma cma \ %_with_arg cuda cuda \ %_with_arg gdrcopy gdrcopy \ @@ -108,7 +114,6 @@ Provides header files and examples for developing with UCX. %_with_arg rocm rocm \ %_with_arg xpmem xpmem \ %_with_arg ugni ugni \ - %_with_arg java java \ %{?configure_options} make %{?_smp_mflags} V=1 @@ -142,7 +147,6 @@ rm -f %{buildroot}%{_libdir}/ucx/lib*.a %package cma Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX CMA support -Group: System Environment/Libraries %description cma Provides CMA (Linux cross-memory-attach) transport for UCX. It utilizes the @@ -157,7 +161,6 @@ process. %package cuda Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX CUDA support -Group: System Environment/Libraries %description cuda Provide CUDA (NVIDIA GPU) support for UCX. Enables passing GPU memory pointers @@ -174,7 +177,6 @@ technology for direct data transfer between GPU and RDMA devices. %package gdrcopy Requires: %{name}-cuda%{?_isa} = %{version}-%{release} Summary: UCX GDRCopy support -Group: System Environment/Libraries %description gdrcopy Provide GDRCopy support for UCX. GDRCopy is a low-latency GPU memory copy @@ -188,7 +190,6 @@ library, built on top of the NVIDIA GPUDirect RDMA technology. %package ib Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX RDMA support -Group: System Environment/Libraries %description ib Provides support for IBTA-compliant transports for UCX. This includes RoCE, @@ -204,7 +205,6 @@ hardware-offloaded data transfer. %package ib-cm Requires: %{name}-ib%{?_isa} = %{version}-%{release} Summary: UCX InfiniBand connection-manager support -Group: System Environment/Libraries %description ib-cm Provides Infiniband Connection Manager (also known as ibcm) support for UCX. @@ -217,7 +217,6 @@ Provides Infiniband Connection Manager (also known as ibcm) support for UCX. %package knem Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX KNEM transport support -Group: System Environment/Libraries %description knem Provides KNEM (fast inter-process copy) transport for UCX. KNEM is a Linux @@ -232,7 +231,6 @@ for large messages. %package rdmacm Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX RDMA connection manager support -Group: System Environment/Libraries %description rdmacm Provides RDMA connection-manager support to UCX, which enables client/server @@ -246,7 +244,6 @@ based connection establishment for RDMA-capable transports. %package rocm Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX ROCm GPU support -Group: System Environment/Libraries %description rocm Provides Radeon Open Compute (ROCm) Runtime support for UCX. @@ -259,7 +256,6 @@ Provides Radeon Open Compute (ROCm) Runtime support for UCX. %package rocmgdr Requires: %{name}-rocm%{?_isa} = %{version}-%{release} Summary: UCX GDRCopy support for ROCM -Group: System Environment/Libraries %description rocmgdr Provide GDRCopy support for UCX ROCM. GDRCopy is a low-latency GPU memory copy @@ -274,7 +270,6 @@ library, built on top of the NVIDIA GPUDirect RDMA technology. %package ugni Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX Gemini/Aries transport support. -Group: System Environment/Libraries %description ugni Provides Gemini/Aries transport for UCX. @@ -287,7 +282,6 @@ Provides Gemini/Aries transport for UCX. %package xpmem Requires: %{name}%{?_isa} = %{version}-%{release} Summary: UCX XPMEM transport support. -Group: System Environment/Libraries %description xpmem Provides XPMEM transport for UCX. XPMEM is a Linux kernel module that enables a @@ -297,20 +291,25 @@ process to map the memory of another process into its virtual address space. %{_libdir}/ucx/libuct_xpmem.so.* %endif -%if %{with java} -%package java -Requires: %{name}%{?_isa} = %{version}-%{release} -Summary: UCX Java bindings -Group: System Environment/Libraries -%description java -Provides java bindings for UCX. +%changelog +* Mon Nov 2 2020 Orion Poplawski - 1.9.0-1 +- Update to 1.9.0 + +* Fri Oct 30 2020 Jeff Law 1.8.1-5 +- Adjust workaround for gcc-11 diagnostic to narrow its scope -%files java -%{_libdir}/jucx-*.jar -%endif +* Thu Oct 29 2020 Jeff Law 1.8.1-4 +- Disable -Warray-bounds diagnostics for gcc-11 -%changelog +* Wed Jul 29 2020 Fedora Release Engineering - 1.8.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 20 2020 Jeff Law 1.8.1-2 +- Fix broken configure files compromised by LTO + +* Wed Jul 1 2020 Yossi Itigin 1.8.1-1 +- Bump version to 1.8.1 * Sun Sep 22 2019 Yossi Itigin 1.8.0-1 - Bump version to 1.8.0 * Sun Mar 24 2019 Yossi Itigin 1.7.0-1