diff --git a/add-cmake-check-for-libatomic-requirement-when-build.patch b/add-cmake-check-for-libatomic-requirement-when-build.patch index 3ae2df4..3535fb4 100644 --- a/add-cmake-check-for-libatomic-requirement-when-build.patch +++ b/add-cmake-check-for-libatomic-requirement-when-build.patch @@ -9,13 +9,13 @@ Signed-off-by: John Paul Adrian Glaubitz cmake/compilers/GNU.cmake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) -diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake -index cd76acfe..59f4e693 100644 ---- a/cmake/compilers/GNU.cmake -+++ b/cmake/compilers/GNU.cmake -@@ -44,6 +44,22 @@ if (NOT MINGW) - set(TBB_COMMON_LINK_LIBS dl) - endif() +Index: oneTBB-2021.11.0/cmake/compilers/GNU.cmake +=================================================================== +--- oneTBB-2021.11.0.orig/cmake/compilers/GNU.cmake ++++ oneTBB-2021.11.0/cmake/compilers/GNU.cmake +@@ -42,6 +42,22 @@ endif() + + set(TBB_COMMON_LINK_LIBS ${CMAKE_DL_LIBS}) +# Check whether code with full atomics can be built without libatomic +# see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81358 @@ -36,6 +36,3 @@ index cd76acfe..59f4e693 100644 # Ignore -Werror set through add_compile_options() or added to CMAKE_CXX_FLAGS if TBB_STRICT is disabled. if (NOT TBB_STRICT AND COMMAND tbb_remove_compile_flag) tbb_remove_compile_flag(-Werror) --- -2.30.2 - diff --git a/cmake-remove-include-path.patch b/cmake-remove-include-path.patch index 0dcc93f..1a5f18e 100644 --- a/cmake-remove-include-path.patch +++ b/cmake-remove-include-path.patch @@ -1,8 +1,8 @@ -Index: oneTBB-2021.3.0/cmake/templates/TBBConfig.cmake.in +Index: oneTBB-2021.11.0/cmake/templates/TBBConfig.cmake.in =================================================================== ---- 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 +--- oneTBB-2021.11.0.orig/cmake/templates/TBBConfig.cmake.in ++++ oneTBB-2021.11.0/cmake/templates/TBBConfig.cmake.in +@@ -80,8 +80,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) diff --git a/tbb-2021.10.0.tar.gz b/tbb-2021.10.0.tar.gz deleted file mode 100644 index 7bad5c4..0000000 --- a/tbb-2021.10.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:35e45dd015801e7b1606ce922b9fa9d19dfe410446282846d682660336f61bfc -size 2701487 diff --git a/tbb-2021.11.0.tar.gz b/tbb-2021.11.0.tar.gz new file mode 100644 index 0000000..b29c1ff --- /dev/null +++ b/tbb-2021.11.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:782ce0cab62df9ea125cdea253a50534862b563f1d85d4cda7ad4e77550ac363 +size 2613493 diff --git a/tbb.changes b/tbb.changes index 4a31dfc..69d492b 100644 --- a/tbb.changes +++ b/tbb.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Fri Dec 1 08:24:32 UTC 2023 - Atri Bhattacharya + +- Update to version 2021.11.0: + * Fixed tbb::this_task_arena() behavior for specific + tbb::task_arena{1,0}. + * Restored performance on the high-core count systems that + support _tpause. +- Refresh patches to apply cleanly: + * use-FORTIFY_SOURCE-from-distribution.patch + * add-cmake-check-for-libatomic-requirement-when-build.patch +- Update Summary and description tags to be consistent with + upstream's TBB -> oneTBB renaming. + ------------------------------------------------------------------- Thu Nov 23 09:53:18 UTC 2023 - Bernhard Wiedemann diff --git a/tbb.spec b/tbb.spec index d6573f0..0fe98da 100644 --- a/tbb.spec +++ b/tbb.spec @@ -41,12 +41,12 @@ %bcond_with python3 %endif Name: tbb -Version: 2021.10.0 +Version: 2021.11.0 Release: 0 -Summary: Threading Building Blocks (TBB) +Summary: oneAPI Threading Building Blocks (oneTBB) License: Apache-2.0 Group: Development/Libraries/C and C++ -URL: https://www.threadingbuildingblocks.org/ +URL: https://oneapi-src.github.io/oneTBB/ Source0: https://github.com/oneapi-src/oneTBB/archive/v%{version}.tar.gz#/tbb-%{version}.tar.gz Source99: tbb-rpmlintrc # PATCH-FIX-OPENSUSE cmake-remove-include-path.patch -- openCV include error @@ -75,12 +75,11 @@ BuildRequires: swig >= 3.0.6 %endif %description -Threading Building Blocks (TBB) offers a rich and complete approach to -expressing parallelism in a C++ program. It is a library that helps you take -advantage of multi-core processor performance without having to be a threading -expert. Threading Building Blocks is not just a threads-replacement library. It -represents a higher-level, task-based parallelism that abstracts platform -details and threading mechanism for performance and scalability. +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. %package -n libtbb%{so_ver} Summary: Threading Building Blocks (TBB) @@ -89,12 +88,13 @@ Provides: %{name} = %{version} Obsoletes: %{name} < %{version} %description -n libtbb%{so_ver} -Threading Building Blocks (TBB) offers a rich and complete approach to -expressing parallelism in a C++ program. It is a library that helps you take -advantage of multi-core processor performance without having to be a threading -expert. Threading Building Blocks is not just a threads-replacement library. It -represents a higher-level, task-based parallelism that abstracts platform -details and threading mechanism for performance and scalability. +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. + +This package provides the core shared library corresponding to oneTBB. %package -n libtbbmalloc%{so_ver_malloc} Summary: Threading Building Blocks (TBB) @@ -103,53 +103,76 @@ Provides: %{name} = %{version} Obsoletes: %{name} < %{version} %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 and cache_aligned_allocator, -address critical issues in parallel programming: scalability and -false sharing. +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. + +This package provides the oneTBB memory allocator shared library. %package -n libirml%{so_ver_irml} Summary: Threading Building Blocks (TBB) - IPC Library Group: System/Libraries %description -n libirml%{so_ver_irml} +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. + This subpackage provides the library required in order to enable inter-process -(IPC) coordination between oneTBB schedulers for the TBB python module. +(IPC) coordination between oneTBB schedulers for the oneTBB python module. %package -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind} -Summary: Threading Building Blocks (TBB) NUMA support library +Summary: NUMA support library for oneAPI Threading Building Blocks (oneTBB) Group: System/Libraries %description -n libtbbbind%{tbbbind_suffix}-%{so_ver_bind} -The NUMA support library for Threading Building Blocks (TBB) - +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. +The NUMA support library for oneTBB. %if 0%{?python_subpackage_only} %package -n python-%{name} -Summary: Python %{python_version} support for Threading Building Blocks (TBB) +Summary: Python %{python_version} support for oneAPI Threading Building Blocks (oneTBB) 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). +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. + +This package contains python %{python_version} bindings for oneTBB. %else %package -n python3-%{name} -Summary: Python 3 support for Threading Building Blocks (TBB) +Summary: Python 3 support for oneAPI Threading Building Blocks (oneTBB) Group: Development/Languages/Python Requires: libirml%{so_ver_irml} %description -n python3-%{name} -This package contains python 3 bindings for Threading Building Blocks -(TBB). +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. + +This package contains python 3 bindings for oneAPI Threading Building Blocks +(oneTBB). %endif %package devel -Summary: Development Files for Threading Building Blocks (TBB) +Summary: Development Files for oneAPI Threading Building Blocks (oneTBB) Group: Development/Libraries/C and C++ Requires: c++_compiler Requires: libirml%{so_ver_irml} = %{version} @@ -158,14 +181,13 @@ 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 -expressing parallelism in a C++ program. It is a library that helps you take -advantage of multi-core processor performance without having to be a threading -expert. Threading Building Blocks is not just a threads-replacement library. It -represents a higher-level, task-based parallelism that abstracts platform -details and threading mechanism for performance and scalability. +oneTBB (previously known as TBB) is a flexible C++ library that simplifies the +work of adding parallelism to complex applications. The library lets you easily +write parallel programs that take full advantage of the multi-core performance. +oneTBB provides you with functions, interfaces, and classes to parallelize and +scale the code. -This package contains the header files needed for development with tbb. +This package contains the header files needed for development with oneTBB. %prep %setup -q -n oneTBB-%{version} diff --git a/use-FORTIFY_SOURCE-from-distribution.patch b/use-FORTIFY_SOURCE-from-distribution.patch index 54deead..cfd6384 100644 --- a/use-FORTIFY_SOURCE-from-distribution.patch +++ b/use-FORTIFY_SOURCE-from-distribution.patch @@ -1,11 +1,11 @@ -diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake -index b60172c..738d185 100644 ---- a/cmake/compilers/GNU.cmake -+++ b/cmake/compilers/GNU.cmake -@@ -74,7 +74,6 @@ set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -fno-strict-overflow -f - set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -Wformat -Wformat-security -Werror=format-security - -fstack-protector-strong ) - set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack) +Index: oneTBB-2021.11.0/cmake/compilers/GNU.cmake +=================================================================== +--- oneTBB-2021.11.0.orig/cmake/compilers/GNU.cmake ++++ oneTBB-2021.11.0/cmake/compilers/GNU.cmake +@@ -75,7 +75,6 @@ set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMO + if (NOT APPLE) + set(TBB_LIB_LINK_FLAGS ${TBB_LIB_LINK_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack) + endif() -set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} $<$>:-D_FORTIFY_SOURCE=2> )