Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tbb for openSUSE:Factory checked in at 2021-11-20 02:38:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tbb (Old) and /work/SRC/openSUSE:Factory/.tbb.new.1895 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tbb" Sat Nov 20 02:38:16 2021 rev:24 rq:925616 version:2021.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/tbb/tbb.changes 2020-12-30 17:12:12.544838581 +0100 +++ /work/SRC/openSUSE:Factory/.tbb.new.1895/tbb.changes 2021-11-20 02:38:49.772841657 +0100 @@ -1,0 +2,23 @@ +Fri Oct 8 08:11:54 UTC 2021 - Ben Greiner <c...@bnavigator.de> + +- Allow gcc11 +- Add tbb-pr609-32bit-mwaitpkg.patch gh#oneapi-src/oneTBB#609 + * fixes 32-bit build with gcc11 +- Only run ctest when --with test is given + +------------------------------------------------------------------- +Tue Oct 5 09:41:04 UTC 2021 - Ben Greiner <c...@bnavigator.de> + +- Update to version 2021.4 + * Large release notes since 2020.3: + https://software.intel.com/content/www/us/en/develop/articles/intel-oneapi-threading-building-blocks-release-notes.html +- Drop python2 package +- Drop patches: + * disable-irml.patch -- install the library + * optflags.patch -- build system change + * reproducible.patch -- build system change +- Refresh cmake-remove-include-path.patch +- Add libirml subpackage for python module +- Add libtbbbind library package for NUMA support + +------------------------------------------------------------------- Old: ---- disable-irml.patch optflags.patch reproducible.patch tbb-2020.3.tar.gz New: ---- _constraints tbb-2021.4.0.tar.gz tbb-pr609-32bit-mwaitpkg.patch tbb-rpmlintrc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tbb.spec ++++++ --- /var/tmp/diff_new_pack.QHyueJ/_old 2021-11-20 02:38:51.212836905 +0100 +++ /var/tmp/diff_new_pack.QHyueJ/_new 2021-11-20 02:38:51.216836892 +0100 @@ -1,7 +1,7 @@ # # spec file for package tbb # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,38 +16,54 @@ # -%define so_ver 2 +%define so_ver 12 +%define so_ver_malloc 2 +%define so_ver_irml 1 +%define so_ver_bind 3 +%if %{pkg_vcmp hwloc-devel >= 2.5} +%define tbbbind_suffix _2_5 +%else +%if %{pkg_vcmp hwloc-devel >= 2} +%define tbbbind_suffix _2_0 +%else +%define tbbbind_suffix %{nil} +%endif +%endif +# by default, don't compile all the tests +%bcond_with test -%{?!python_module:%define python_module() python-%{**} python3-%{**}} -%bcond_with python2 +%if 0%{suse_version} >= 1500 +%{?!python_module:%define python_module() python3-%{**}} %bcond_without python3 -%if ! %{with python2} %define skip_python2 1 +%else +%bcond_with python3 %endif Name: tbb -Version: 2020.3 +Version: 2021.4.0 Release: 0 Summary: Threading Building Blocks (TBB) License: Apache-2.0 Group: Development/Libraries/C and C++ URL: https://www.threadingbuildingblocks.org/ Source0: https://github.com/oneapi-src/oneTBB/archive/v%{version}.tar.gz#/tbb-%{version}.tar.gz -# PATCH-FIX-OPENSUSE optflags.patch -- Use rpm optflags -Patch1: optflags.patch -# PATCH-FIX-OPENSUSE reproducible.patch -- Do not compile build hostname+kernel into binary -Patch2: reproducible.patch -# PATCH-FIX-OPENSUSE disable-irml.patch -- Don't try to link to irml -Patch3: disable-irml.patch +Source99: tbb-rpmlintrc +# PATCH-FIX-UPSTREAM tbb-pr609-32bit-mwaitpkg.patch +Patch1: https://github.com/oneapi-src/oneTBB/pull/609.patch#/tbb-pr609-32bit-mwaitpkg.patch +# PATCH-FIX-OPENSUSE cmake-remove-include-path.patch -- openCV include error Patch4: cmake-remove-include-path.patch -BuildRequires: %{python_module devel} -BuildRequires: %{python_module setuptools} BuildRequires: cmake BuildRequires: fdupes BuildRequires: gcc-c++ +BuildRequires: hwloc-devel +%if %{with python3} +BuildRequires: %{python_module devel >= 3.5} +BuildRequires: %{python_module setuptools} BuildRequires: python-rpm-macros BuildRequires: swig >= 3.0.6 -%if 0%{?python38_version_nodots} -# if python multiflavor is in place yet, use it to generate subpackages +%endif +%if 0%{?suse_version} > 1500 +# if python multiflavor is available (Tumbleweed), use it to generate subpackages %define python_subpackage_only 1 %python_subpackages %else @@ -79,40 +95,52 @@ represents a higher-level, task-based parallelism that abstracts platform details and threading mechanism for performance and scalability. -%package -n libtbbmalloc%{so_ver} +%package -n libtbbmalloc%{so_ver_malloc} Summary: Threading Building Blocks (TBB) Group: System/Libraries Provides: %{name} = %{version} Obsoletes: %{name} < %{version} -%description -n libtbbmalloc%{so_ver} +%description -n libtbbmalloc%{so_ver_malloc} This subpackage contains the two TBB memory allocator templates that are similar to the STL template class std::allocator. These two templates, scalable_allocator<T> and cache_aligned_allocator<T>, address critical issues in parallel programming: scalability and false sharing. +%package -n libirml%{so_ver_irml} +Summary: Threading Building Blocks (TBB) - IPC Library +Group: System/Libraries + +%description -n libirml%{so_ver_irml} +This subpackage provides the library required in order to enable inter-process +(IPC) coordination between oneTBB schedulers for the TBB python module. + +%package -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind} +Summary: Threading Building Blocks (TBB) NUMA support library +Group: System/Libraries + +%description -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind} +The NUMA support library for Threading Building Blocks (TBB) + + + %if 0%{?python_subpackage_only} %package -n python-%{name} Summary: Python %{python_version} support for Threading Building Blocks (TBB) Group: Development/Languages/Python +Requires: libirml%{so_ver_irml} %description -n python-%{name} This package contains python %{python_version} bindings for Threading Building Blocks (TBB). %else -%package -n python2-%{name} -Summary: Python 2 support for Threading Building Blocks (TBB) -Group: Development/Languages/Python - -%description -n python2-%{name} -This package contains python 2 bindings for Threading Building Blocks -(TBB). %package -n python3-%{name} Summary: Python 3 support for Threading Building Blocks (TBB) Group: Development/Languages/Python +Requires: libirml%{so_ver_irml} %description -n python3-%{name} This package contains python 3 bindings for Threading Building Blocks @@ -123,8 +151,10 @@ Summary: Development Files for Threading Building Blocks (TBB) Group: Development/Libraries/C and C++ Requires: c++_compiler +Requires: libirml%{so_ver_irml} = %{version} Requires: libtbb%{so_ver} = %{version} -Requires: libtbbmalloc%{so_ver} = %{version} +Requires: libtbbbind%{tbbbind_suffix}-%{so_ver_bind} = %{version} +Requires: libtbbmalloc%{so_ver_malloc} = %{version} %description devel Threading Building Blocks (TBB) offers a rich and complete approach to @@ -140,106 +170,116 @@ %setup -q -n oneTBB-%{version} %autopatch -p1 -sed -i 's/version\s*="0.1"/version = "%{version}"/' python/setup.py +# fix python version +sed -i 's/version\s*="0.2"/version = "%{version}"/' python/setup.py sed -i '1{/^#!.*env python/ d}' python/TBB.py python/tbb/*.py %build -make OPTFLAGS="%{optflags}" %{?_smp_mflags} tbb_build_prefix=obj +# HWLOC: no automatic find on SLE-12 (older cmake) +# TBB_TEST: don't compile by default +# TBB4PY: use cmake build system to build libirml in the python tree +%cmake \ +%if 0%{suse_version} < 1500 + -DCMAKE_HWLOC_2_LIBRARY_PATH=%{_libdir}/libhwloc.so \ + -DCMAKE_HWLOC_2_INCLUDE_PATH=%{_includedir}/hwloc \ +%endif +%if ! %{with test} + -DTBB_TEST:BOOL=OFF \ +%endif +%if %{with python3} + -DTBB4PY_BUILD:BOOL=ON \ +%endif -mkdir lib; pushd lib -ln -s ../build/obj_release/*.so* . -popd +# Leap 15.2 encounters oom during compilation +%cmake_build \ +%if 0%{?sle_version} == 150200 + -j 4 +%endif -export TBBROOT=$PWD -. build/obj_release/tbbvars.sh -%if %{with python2} || %{with python3} +source */vars.sh +cd .. + +# rebuild for every python flavor +%if %{with python3} pushd python %python_build -# only needed for testing? Linking is patched out, not installing. -pushd rml -make -popd popd %endif %install -mkdir -p %{buildroot}%{_includedir} -mkdir -p %{buildroot}%{_libdir} - -pushd include - find tbb -type f -exec \ - install -Dpm 644 {} %{buildroot}%{_includedir}/{} \ - \; -popd +# create empty python build dir (?) +mkdir -p build/python/build +%cmake_install -pushd build/obj_release - for file in libtbb{,malloc{,_proxy}}; do - install -Dpm 0755 ${file}.so.%{so_ver} %{buildroot}%{_libdir} - ln -s $file.so.%{so_ver} %{buildroot}%{_libdir}/$file.so - done -popd +source build/*/vars.sh -mkdir -p %{buildroot}%{_libdir}/cmake/TBB -# Build cmake config files -cmake -DINSTALL_DIR=%{buildroot}%{_libdir}/cmake/TBB \ - -DSYSTEM_NAME=Linux \ - -DTBB_VERSION_FILE=%{buildroot}%{_includedir}/tbb/tbb_stddef.h \ - -DLIB_REL_PATH="../../" \ - -P cmake/tbb_config_installer.cmake - -export TBBROOT=$PWD -. build/obj_release/tbbvars.sh -%if %{with python2} || %{with python3} +%if %{with python3} pushd python %python_install %python_expand %fdupes %{buildroot}%{$python_sitearch} popd %endif -%if %{with python2} || %{with python3} +# we install it into the devel package docdir +rm -r %{buildroot}%{_datadir}/doc/TBB + %check +%if %{with test} +%ctest --exclude-regex python_test +%endif +# always test python modules, if they are built +%if %{with python3} # avoid shuffling the existing build dir mkdir python-test pushd python-test -export LD_LIBRARY_PATH="%{buildroot}%{_libdir}:../python/rml" +export LD_LIBRARY_PATH="%{buildroot}%{_libdir}" %python_expand PYTHONPATH=%{buildroot}%{$python_sitearch} $python -m tbb test -v popd %endif %post -n libtbb%{so_ver} -p /sbin/ldconfig %postun -n libtbb%{so_ver} -p /sbin/ldconfig -%post -n libtbbmalloc%{so_ver} -p /sbin/ldconfig -%postun -n libtbbmalloc%{so_ver} -p /sbin/ldconfig +%post -n libtbbmalloc%{so_ver_malloc} -p /sbin/ldconfig +%postun -n libtbbmalloc%{so_ver_malloc} -p /sbin/ldconfig +%post -n libirml%{so_ver_irml} -p /sbin/ldconfig +%postun -n libirml%{so_ver_irml} -p /sbin/ldconfig +%post -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind} -p /sbin/ldconfig +%postun -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind} -p /sbin/ldconfig %files -n libtbb%{so_ver} %{_libdir}/libtbb.so.%{so_ver}* -%if %{with python2} && ! 0%{?python_subpackage_only} -%files -n python2-%{name} -%{python2_sitearch}/tbb -%{python2_sitearch}/TBB.py* -%{python2_sitearch}/TBB-%{version}*-info -%endif - -%if %{with python3} || ( %{with python2} && 0%{?python_subpackage_only} ) -%files %{python_files %{name}} -%{python_sitearch}/tbb -%{python_sitearch}/TBB.py* -%{python_sitearch}/TBB-%{version}*-info -%pycache_only %{python_sitearch}/__pycache__/TBB* -%endif +%files -n libtbbmalloc%{so_ver_malloc} +%{_libdir}/libtbbmalloc.so.%{so_ver_malloc}* +%{_libdir}/libtbbmalloc_proxy.so.%{so_ver_malloc}* -%files -n libtbbmalloc%{so_ver} -%{_libdir}/libtbbmalloc.so.%{so_ver}* -%{_libdir}/libtbbmalloc_proxy.so.%{so_ver}* +%files -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind} +%{_libdir}/libtbbbind%{tbbbind_suffix}.so.%{so_ver_bind}* %files devel -%license LICENSE -%doc CHANGES doc/Release_Notes.txt +%license LICENSE.txt +%doc README.md %{_includedir}/tbb/ +%{_includedir}/oneapi/ %{_libdir}/cmake/TBB +%{_libdir}/pkgconfig/tbb*.pc %{_libdir}/libtbb.so %{_libdir}/libtbbmalloc.so %{_libdir}/libtbbmalloc_proxy.so +%{_libdir}/libtbbbind%{tbbbind_suffix}.so +%if %{with python3} +%{_libdir}/libirml.so +%endif + +%if %{with python3} +%files -n libirml%{so_ver_irml} +%{_libdir}/libirml.so.%{so_ver_irml}* + +%files %{python_files %{name}} +%{python_sitearch}/tbb +%{python_sitearch}/TBB.py* +%{python_sitearch}/TBB-%{version}*-info +%pycache_only %{python_sitearch}/__pycache__/TBB* +%endif %changelog ++++++ _constraints ++++++ <constraints> <hardware> <memory> <size unit="M">8000</size> </memory> <processors>4</processors> </hardware> </constraints> ++++++ cmake-remove-include-path.patch ++++++ --- /var/tmp/diff_new_pack.QHyueJ/_old 2021-11-20 02:38:51.252836773 +0100 +++ /var/tmp/diff_new_pack.QHyueJ/_new 2021-11-20 02:38:51.256836760 +0100 @@ -1,13 +1,13 @@ -Index: oneTBB-2020.2/cmake/templates/TBBConfigInternal.cmake.in +Index: oneTBB-2021.3.0/cmake/templates/TBBConfig.cmake.in =================================================================== ---- oneTBB-2020.2.orig/cmake/templates/TBBConfigInternal.cmake.in -+++ oneTBB-2020.2/cmake/templates/TBBConfigInternal.cmake.in -@@ -57,8 +57,6 @@ foreach (_tbb_component ${TBB_FIND_COMPO - if (EXISTS "${_tbb_release_lib}" OR EXISTS "${_tbb_debug_lib}") - if (NOT TARGET TBB::${_tbb_component}) +--- oneTBB-2021.3.0.orig/cmake/templates/TBBConfig.cmake.in ++++ oneTBB-2021.3.0/cmake/templates/TBBConfig.cmake.in +@@ -58,8 +58,6 @@ foreach (_tbb_component ${TBB_FIND_COMPO add_library(TBB::${_tbb_component} SHARED IMPORTED) + + get_filename_component(_tbb_include_dir "${_tbb_root}/@TBB_INC_REL_PATH@" ABSOLUTE) - set_target_properties(TBB::${_tbb_component} PROPERTIES -- INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_COMPILE_DEFINITIONS@) +- INTERFACE_INCLUDE_DIRECTORIES "${_tbb_include_dir}"@TBB_COMPILE_DEFINITIONS@) + unset(_tbb_current_realpath) + unset(_tbb_include_dir) - if (EXISTS "${_tbb_release_lib}") - set_target_properties(TBB::${_tbb_component} PROPERTIES ++++++ tbb-2020.3.tar.gz -> tbb-2021.4.0.tar.gz ++++++ ++++ 438691 lines of diff (skipped) ++++++ tbb-pr609-32bit-mwaitpkg.patch ++++++ >From 542a27fa1cfafaf76772e793549d9f4d288d03a9 Mon Sep 17 00:00:00 2001 From: Ilya Isaev <ilya.is...@intel.com> Date: Fri, 8 Oct 2021 10:18:16 +0300 Subject: [PATCH] Detect 32 bit x86 systems while adding -mwaitpkg option Signed-off-by: Ilya Isaev <ilya.is...@intel.com> --- cmake/compilers/Clang.cmake | 2 +- cmake/compilers/GNU.cmake | 2 +- cmake/compilers/MSVC.cmake | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/compilers/Clang.cmake b/cmake/compilers/Clang.cmake index bb7401e34..d551d3be2 100644 --- a/cmake/compilers/Clang.cmake +++ b/cmake/compilers/Clang.cmake @@ -44,7 +44,7 @@ if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag) endif() # Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors -if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)") +if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64|i.86)") set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},12.0>>:-mwaitpkg>) endif() diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake index 86958e3a8..fee1c3bc2 100644 --- a/cmake/compilers/GNU.cmake +++ b/cmake/compilers/GNU.cmake @@ -36,7 +36,7 @@ if (NOT CMAKE_GENERATOR MATCHES "Ninja" AND NOT CMAKE_CXX_DEPENDS_USE_COMPILER) endif() # Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors -if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)") +if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64|i.86)") set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<AND:$<NOT:$<CXX_COMPILER_ID:Intel>>,$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},11.0>>>:-mwaitpkg>) endif() diff --git a/cmake/compilers/MSVC.cmake b/cmake/compilers/MSVC.cmake index acf0952cf..2d2c29a6f 100644 --- a/cmake/compilers/MSVC.cmake +++ b/cmake/compilers/MSVC.cmake @@ -72,7 +72,7 @@ if (TBB_WINDOWS_DRIVER) endif() if (CMAKE_CXX_COMPILER_ID MATCHES "(Clang|IntelLLVM)") - if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64)") + if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|AMD64|i.86)") set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm -mwaitpkg) endif() set(TBB_OPENMP_NO_LINK_FLAG TRUE) ++++++ tbb-rpmlintrc ++++++ # loaded with ctypes by python package addFilter("explicit-lib-dependency libirml1")