Compare commits

...

No commits in common. 'c9' and 'i10cs' have entirely different histories.
c9 ... i10cs

2
.gitignore vendored

@ -1 +1 @@
SOURCES/tbb-2020.3.tar.gz SOURCES/tbb-2021.11.0.tar.gz

@ -1 +1 @@
ae543670251a6d667e6f077ecfab0d5bb09b270c SOURCES/tbb-2020.3.tar.gz 740e86b703f42446ddde392b73a9db3dc0f5f4cd SOURCES/tbb-2021.11.0.tar.gz

@ -1,43 +0,0 @@
diff -up tbb-2019_U6/build/common_rules.inc.orig tbb-2019_U6/build/common_rules.inc
--- tbb-2019_U6/build/common_rules.inc.orig 2019-04-18 05:14:08.000000000 -0600
+++ tbb-2019_U6/build/common_rules.inc 2019-05-08 08:30:03.434532204 -0600
@@ -130,7 +130,7 @@ LINK_FILES+=$(TEST_LIBS)
# Customizations
$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
- $(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
+ $(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
tbb_misc.$(OBJ): version_string.ver
tbb_misc.$(OBJ): INCLUDES+=$(INCLUDE_KEY).
diff -up tbb-2019_U6/build/Makefile.tbbmalloc.orig tbb-2019_U6/build/Makefile.tbbmalloc
--- tbb-2019_U6/build/Makefile.tbbmalloc.orig 2019-04-18 05:14:08.000000000 -0600
+++ tbb-2019_U6/build/Makefile.tbbmalloc 2019-05-08 08:30:03.447531968 -0600
@@ -47,11 +47,11 @@ ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
MALLOC_CPLUS.OBJ = backend.$(OBJ) large_objects.$(OBJ) backref.$(OBJ) tbbmalloc.$(OBJ)
MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) itt_notify_malloc.$(OBJ) frontend.$(OBJ)
PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
-M_CPLUS_FLAGS += $(DEFINE_KEY)__TBBMALLOC_BUILD=1
+M_CPLUS_FLAGS += -fno-strict-aliasing $(DEFINE_KEY)__TBBMALLOC_BUILD=1
M_INCLUDES := $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
# Suppress superfluous warnings for TBBMalloc compilation
-$(MALLOC.OBJ): M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(WARNING_SUPPRESS)
+$(MALLOC.OBJ): M_CPLUS_FLAGS := $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS)
# Suppress superfluous warnings for TBBMalloc proxy compilation
$(PROXY.OBJ): CPLUS_FLAGS += $(WARNING_SUPPRESS)
diff -up tbb-2019_U6/build/Makefile.test.orig tbb-2019_U6/build/Makefile.test
--- tbb-2019_U6/build/Makefile.test.orig 2019-05-08 08:30:03.448531949 -0600
+++ tbb-2019_U6/build/Makefile.test 2019-05-08 08:31:48.190498336 -0600
@@ -275,7 +275,7 @@ test_tbb_plain: $(TEST_PREREQUISITE) $(T
# For deprecated files, we don't mind warnings etc., thus compilation rules are most relaxed
-CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)__TBB_TEST_DEPRECATED=1 $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
+CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)__TBB_TEST_DEPRECATED=1 $(CPLUS_FLAGS) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
TEST_TBB_OLD.OBJ = test_concurrent_vector_v2.$(OBJ) test_concurrent_queue_v2.$(OBJ) test_mutex_v2.$(OBJ) test_task_scheduler_observer_v3.$(OBJ)
$(TEST_TBB_OLD.OBJ): CPLUS_FLAGS := $(CPLUS_FLAGS_DEPRECATED)
Diff finished. Wed May 8 08:31:49 2019

@ -1,12 +0,0 @@
diff -up tbb-2019_U8/src/test/test_task_scheduler_init.cpp.orig tbb-2019_U8/src/test/test_task_scheduler_init.cpp
--- tbb-2019_U8/src/test/test_task_scheduler_init.cpp.orig 2019-06-06 04:29:15.000000000 -0600
+++ tbb-2019_U8/src/test/test_task_scheduler_init.cpp 2019-08-26 12:08:19.547880295 -0600
@@ -285,7 +285,7 @@ namespace TestBlockingTerminateNS {
}
};
void operator()() {
- const int numThreads = 4;
+ const int numThreads = 2;
tbb::task_scheduler_init init( numThreads );
Harness::SpinBarrier barrier( numThreads );
tbb::parallel_for( 0, numThreads, Body( barrier ) );

@ -1,56 +0,0 @@
--- tbb-2020.2/oneTBB-2020.2/src/rml/test/test_thread_monitor.cpp 2020-03-30 13:38:06.000000000 +0200
+++ oneTBB-2020.2/src/rml/test/test_thread_monitor.cpp 2020-04-27 15:43:34.209452298 +0200
@@ -23,6 +23,7 @@
#include "thread_monitor.h"
#include "harness_memory.h"
#include "tbb/semaphore.cpp"
+#include <atomic>
class ThreadState {
void loop();
@@ -33,21 +34,21 @@
}
typedef rml::internal::thread_monitor thread_monitor;
thread_monitor monitor;
- volatile int request;
- volatile int ack;
- volatile unsigned clock;
- volatile unsigned stamp;
+ std::atomic<int> request;
+ std::atomic<int> ack;
+ std::atomic<unsigned> clock;
+ unsigned stamp;
ThreadState() : request(-1), ack(-1), clock(0) {}
};
void ThreadState::loop() {
for(;;) {
- ++clock;
if( ack==request ) {
thread_monitor::cookie c;
monitor.prepare_wait(c);
if( ack==request ) {
- REMARK("%p: request=%d ack=%d\n", this, request, ack );
+ REMARK("%p: request=%d ack=%d\n", this, request.load(), ack.load() );
+ ++clock;
monitor.commit_wait(c);
} else
monitor.cancel_wait();
@@ -60,7 +61,7 @@
rml::internal::thread_monitor::yield();
}
int r = request;
- ack = request;
+ ack = r;
if( !r ) return;
}
}
@@ -89,7 +90,7 @@
REPORT("Warning: thread %d not waiting\n",i);
break;
}
- } while( t[i].stamp!=t[i].clock );
+ } while( t[i].stamp==0 || t[i].stamp!=t[i].clock );
}
}
REMARK("notifying threads\n");

@ -1,54 +0,0 @@
diff -up oneTBB-2020.2/src/tbbmalloc/proxy.cpp.orig oneTBB-2020.2/src/tbbmalloc/proxy.cpp
--- oneTBB-2020.2/src/tbbmalloc/proxy.cpp.orig 2020-03-31 06:40:13.752296189 -0600
+++ oneTBB-2020.2/src/tbbmalloc/proxy.cpp 2020-03-31 06:42:52.611900760 -0600
@@ -146,15 +146,7 @@ static inline void initPageSize()
1) detection that the proxy library is loaded
2) check that dlsym("malloc") found something different from our replacement malloc
*/
-// Starting from GCC 9, the -Wmissing-attributes warning was extended for alias below
-#if __GNUC__ == 9
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wmissing-attributes"
-#endif
-extern "C" void *__TBB_malloc_proxy(size_t) __attribute__ ((alias ("malloc")));
-#if __GNUC__ == 9
- #pragma GCC diagnostic pop
-#endif
+extern "C" void *__TBB_malloc_proxy(size_t) __attribute__ ((alias ("malloc"), copy (malloc)));
static void *orig_msize;
@@ -296,25 +288,17 @@ struct mallinfo mallinfo() __THROW
size_t dlmalloc_usable_size(const void *ptr) __attribute__ ((alias ("malloc_usable_size")));
#else // __ANDROID__
// C11 function, supported starting GLIBC 2.16
-void *aligned_alloc(size_t alignment, size_t size) __attribute__ ((alias ("memalign")));
+void *aligned_alloc(size_t alignment, size_t size) __attribute__ ((alias ("memalign"), copy (memalign)));
// Those non-standard functions are exported by GLIBC, and might be used
// in conjunction with standard malloc/free, so we must ovberload them.
// Bionic doesn't have them. Not removing from the linker scripts,
// as absent entry points are ignored by the linker.
-// Starting from GCC 9, the -Wmissing-attributes warning was extended for aliases below
-#if __GNUC__ == 9
- #pragma GCC diagnostic push
- #pragma GCC diagnostic ignored "-Wmissing-attributes"
-#endif
-void *__libc_malloc(size_t size) __attribute__ ((alias ("malloc")));
-void *__libc_calloc(size_t num, size_t size) __attribute__ ((alias ("calloc")));
-void *__libc_memalign(size_t alignment, size_t size) __attribute__ ((alias ("memalign")));
-void *__libc_pvalloc(size_t size) __attribute__ ((alias ("pvalloc")));
-void *__libc_valloc(size_t size) __attribute__ ((alias ("valloc")));
-#if __GNUC__ == 9
- #pragma GCC diagnostic pop
-#endif
+void *__libc_malloc(size_t size) __attribute__ ((alias ("malloc"), copy (malloc)));
+void *__libc_calloc(size_t num, size_t size) __attribute__ ((alias ("calloc"), copy (calloc)));
+void *__libc_memalign(size_t alignment, size_t size) __attribute__ ((alias ("memalign"), copy (memalign)));
+void *__libc_pvalloc(size_t size) __attribute__ ((alias ("pvalloc"), copy (pvalloc)));
+void *__libc_valloc(size_t size) __attribute__ ((alias ("valloc"), copy (valloc)));
// call original __libc_* to support naive replacement of free via __libc_free etc
void __libc_free(void *ptr)
Diff finished. Tue Mar 31 06:43:27 2020

@ -0,0 +1,30 @@
diff -up oneTBB-2021.11.0/cmake/compilers/Clang.cmake.orig oneTBB-2021.11.0/cmake/compilers/Clang.cmake
--- oneTBB-2021.11.0/cmake/compilers/Clang.cmake.orig 2023-11-17 09:23:05.000000000 -0700
+++ oneTBB-2021.11.0/cmake/compilers/Clang.cmake 2023-12-28 20:35:24.422191660 -0700
@@ -46,11 +46,6 @@ endif()
set(TBB_WARNING_LEVEL -Wall -Wextra $<$<BOOL:${TBB_STRICT}>:-Werror>)
set(TBB_TEST_WARNING_FLAGS -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor)
-# 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)
-endif()
-
# Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(AMD64|amd64|i.86|x86)")
set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},12.0>>:-mwaitpkg>)
diff -up oneTBB-2021.11.0/cmake/compilers/GNU.cmake.orig oneTBB-2021.11.0/cmake/compilers/GNU.cmake
--- oneTBB-2021.11.0/cmake/compilers/GNU.cmake.orig 2023-11-17 09:23:05.000000000 -0700
+++ oneTBB-2021.11.0/cmake/compilers/GNU.cmake 2023-12-28 20:37:54.828060692 -0700
@@ -42,11 +42,6 @@ endif()
set(TBB_COMMON_LINK_LIBS ${CMAKE_DL_LIBS})
-# 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)
-endif()
-
if (NOT ${CMAKE_CXX_COMPILER_ID} STREQUAL Intel)
# gcc 6.0 and later have -flifetime-dse option that controls elimination of stores done outside the object lifetime
set(TBB_DSE_FLAG $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},6.0>>:-flifetime-dse=1>)

@ -0,0 +1,12 @@
diff -up oneTBB-2021.7.0/src/tbbmalloc/frontend.cpp.orig oneTBB-2021.7.0/src/tbbmalloc/frontend.cpp
--- oneTBB-2021.6.0/src/tbbmalloc/frontend.cpp.orig 2022-10-07 08:34:12.000000000 -0600
+++ oneTBB-2021.6.0/src/tbbmalloc/frontend.cpp 2022-11-03 13:28:39.050045201 -0600
@@ -1516,7 +1516,7 @@ bool Block::readyToShare()
{
MallocMutex::scoped_lock scoped_cs(publicFreeListLock);
if ( (oldVal=publicFreeList)==nullptr )
- (intptr_t&)(publicFreeList) = UNUSABLE;
+ publicFreeList = reinterpret_cast<FreeObject *>(UNUSABLE);
}
#endif
return oldVal==nullptr;

@ -1,26 +0,0 @@
From db2f2116adfb545bb76c92205f91e3e3f0f9e44a Mon Sep 17 00:00:00 2001
From: Thomas Rodgers <rodgert@twrodgers.com>
Date: Wed, 2 Jun 2021 15:18:30 -0700
Subject: [PATCH] Mark tbb::empty_task::execute with [[gnu::used]]
---
include/tbb/task.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/tbb/task.h b/include/tbb/task.h
index 5e137c6..5b60163 100644
--- a/include/tbb/task.h
+++ b/include/tbb/task.h
@@ -1040,6 +1040,9 @@ inline void task::resume(suspend_point tag) {
//! task that does nothing. Useful for synchronization.
/** @ingroup task_scheduling */
class __TBB_DEPRECATED_IN_VERBOSE_MODE empty_task: public task {
+#if __has_cpp_attribute(gnu::used)
+ [[gnu::used]]
+#endif
task* execute() __TBB_override {
return NULL;
}
--
2.31.1

@ -1,5 +0,0 @@
Name: Threading Building Blocks
Description: The Threading Building Blocks library abstracts low-level threading details
URL: http://www.threadingbuildingblocks.org/
Version: _FEDORA_VERSION
Libs: -ltbb

@ -1,41 +1,38 @@
# If docs should point to local python3-docs rather than website.
# python3-docs is not shipped in RHEL 9+
%bcond py3docs %{undefined rhel}
Name: tbb Name: tbb
Summary: The Threading Building Blocks library abstracts low-level threading details Summary: The Threading Building Blocks library abstracts low-level threading details
Version: 2020.3 Version: 2021.11.0
Release: 8%{?dist}.1 Release: 7%{?dist}
License: ASL 2.0 License: Apache-2.0 AND BSD-3-Clause
URL: http://threadingbuildingblocks.org/ URL: http://threadingbuildingblocks.org/
Source0: https://github.com/intel/tbb/archive/v%{version}/%{name}-%{version}.tar.gz Source0: https://github.com/oneapi-src/oneTBB/archive/v%{version}/%{name}-%{version}.tar.gz
# These three are downstream sources. # These two are downstream sources.
Source6: tbb.pc
Source7: tbbmalloc.pc Source7: tbbmalloc.pc
Source8: tbbmalloc_proxy.pc Source8: tbbmalloc_proxy.pc
# Don't snip -Wall from C++ flags. Add -fno-strict-aliasing, as that # TBB tries to remove -Werror from the compiler flags, which turns
# uncovers some static-aliasing warnings. # -Werror=format-security into =format-security
# Related: https://bugzilla.redhat.com/show_bug.cgi?id=1037347 Patch0: tbb-2021-Werror.patch
Patch0: tbb-2019-dont-snip-Wall.patch
# Make attributes of aliases match those on the aliased function.
Patch1: tbb-2020-attributes.patch
# Fix test-thread-monitor, which had multiple bugs that could (and did, on
# ppc64le) result in a hang.
Patch2: tbb-2019-test-thread-monitor.patch
# Fix a test that builds a 4-thread barrier, but cannot guarantee that more # Fix code that violates the strict aliasing rules.
# than 2 threads will be available to use it. Patch1: tbb-2021-strict-aliasing.patch
Patch3: tbb-2019-test-task-scheduler-init.patch
# Fix ABI break resulting from tbb::empty_task being removed from libtbb.so's
# exported symbols
Patch4: tbb-mark-empty_task-execute-with-gnu-used.patch
BuildRequires: cmake BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: hwloc
BuildRequires: hwloc-devel
BuildRequires: make BuildRequires: make
BuildRequires: python3-devel BuildRequires: python3-devel
%if %{with py3docs}
BuildRequires: python3-docs
%endif
BuildRequires: %{py3_dist setuptools}
BuildRequires: %{py3_dist sphinx}
BuildRequires: %{py3_dist sphinx-rtd-theme}
BuildRequires: swig BuildRequires: swig
%description %description
@ -50,9 +47,19 @@ platforms. Since the library is also inherently scalable, no code
maintenance is required as more processor cores become available. maintenance is required as more processor cores become available.
%package bind
Summary: NUMA support library for TBB
Requires: %{name}%{?_isa} = %{version}-%{release}
%description bind
NUMA support library for TBB, allowing the binding of tasks to selected
CPU cores.
%package devel %package devel
Summary: The Threading Building Blocks C++ headers and shared development libraries Summary: The Threading Building Blocks C++ headers and shared development libraries
Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-bind%{?_isa} = %{version}-%{release}
%description devel %description devel
Header files and shared object symlinks for the Threading Building Header files and shared object symlinks for the Threading Building
@ -61,14 +68,19 @@ Blocks (TBB) C++ libraries.
%package doc %package doc
Summary: The Threading Building Blocks documentation Summary: The Threading Building Blocks documentation
%ifarch %{ix86}
# https://bugzilla.redhat.com/show_bug.cgi?id=2174300
Conflicts: %{name}-doc.x86_64
%endif
%description doc %description doc
HTML documentation for the user of the Threading Building Block (TBB) PDF documentation for the user of the Threading Building Block (TBB)
C++ library. C++ library.
%package -n python3-%{name} %package -n python3-%{name}
Summary: Python 3 TBB module Summary: Python 3 TBB module
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python3-%{name} %description -n python3-%{name}
Python 3 TBB module. Python 3 TBB module.
@ -77,152 +89,181 @@ Python 3 TBB module.
%prep %prep
%autosetup -p1 -n oneTBB-%{version} %autosetup -p1 -n oneTBB-%{version}
# For repeatable builds, don't query the hostname or architecture
sed -i 's/"`hostname -s`" ("`uname -m`"/fedorabuild (%{_arch}/' \
build/version_info_linux.sh
# Insert --as-needed before the libraries to be linked.
sed -i "s/-fPIC/& -Wl,--as-needed/" build/linux.gcc.inc
# Invoke the right python binary directly # Invoke the right python binary directly
sed -i 's,env python,python3,' python/TBB.py python/tbb/__*.py for fil in $(grep -Frl %{_bindir}/env python); do
sed -i.orig 's,env python3,python3,' $fil
touch -r $fil.orig $fil
rm $fil.orig
done
# Remove shebang from files that don't need it %if %{with py3docs}
sed -i '/^#!/d' python/tbb/{pool,test}.py # Use local objects.inv for intersphinx
sed -e "s|\('https://docs\.python\.org/': \)None|\1'%{_docdir}/python3-docs/html/objects.inv'|" \
-i doc/GSG/conf.py doc/main/conf.py
%endif
# Disable jQuery use %generate_buildrequires
sed -i '/^SEARCHENGINE/s/YES/NO/' Doxyfile cd python
%pyproject_buildrequires
%build %build
compiler="" export TBBROOT=$PWD
if [[ %{__cc} == *"gcc"* ]]; then export PYTHONPATH=$(sed "s,%{_prefix},$PWD/%{_vpath_builddir}/python/build," <<< %{python3_sitearch})
compiler="gcc" %cmake \
elif [[ %{__cc} == *"clang"* ]]; then -DCMAKE_CXX_STANDARD=17 \
compiler="clang" -DTBB4PY_BUILD:BOOL=ON \
else -DTBB_STRICT:BOOL=OFF \
compiler="%{__cc}" -DCMAKE_HWLOC_2_4_LIBRARY_PATH=%{_libdir}/libhwloc.so \
fi -DCMAKE_HWLOC_2_4_INCLUDE_PATH=%{_includedir}/hwloc \
%cmake_build
# The python package is not built the Fedora way. Do it over.
unset PYTHONPATH
export LD_LIBRARY_PATH=$(ls -1d $PWD/%{_vpath_builddir}/*relwithdebinfo)
export LDFLAGS="-L $LD_LIBRARY_PATH %{build_ldflags}"
cd python
%pyproject_wheel
cd -
# Build documentation
export BUILD_TYPE=oneapi
sphinx-build doc/GSG getting-started
sphinx-build doc/main html
%make_build tbb_build_prefix=obj stdver=c++14 \ %install
compiler=${compiler} \ %cmake_install
CXXFLAGS="%{optflags} -DUSE_PTHREAD" \
LDFLAGS="$RPM_LD_FLAGS -lpthread" # The python package is not installed the Fedora way. Do it over.
for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do rm -fr %{buildroot}%{python3_sitearch}
base=$(basename ${file}) cd python
sed 's/_FEDORA_VERSION/%{version}/' ${file} > ${base} %pyproject_install
touch -r ${file} ${base} cd -
mkdir -p %{buildroot}/%{_libdir}/pkgconfig
for file in %{SOURCE7} %{SOURCE8}; do
target=%{buildroot}/%{_libdir}/pkgconfig/$(basename ${file})
sed 's/_FEDORA_VERSION/%{version}/' $file > $target
touch -r $file $target
done done
# Build for python 3 # Upstream installs tbb32.pc on 32-bit but it's already in a separate directory
. build/obj_release/tbbvars.sh # because %_libdir is different for 32-bit and 64-bit, so rename it to tbb.pc.
pushd python if [ -f %{buildroot}/%{_libdir}/pkgconfig/%{name}32.pc ]; then
%make_build -C rml stdver=c++14 \ mv %{buildroot}/%{_libdir}/pkgconfig/%{name}32.pc %{buildroot}/%{_libdir}/pkgconfig/%{name}.pc
compiler=${compiler} \ fi
CPLUS_FLAGS="%{optflags} -DUSE_PTHREAD" \
LDFLAGS="$RPM_LD_FLAGS -lpthread"
cp -p rml/libirml.so* .
%py3_build
popd
# Build the documentation
make doxygen
# We don't want to ship jQuery in the tbb-doc package
rm html/jquery.js
find html -name '*.html' | xargs sed -i '/<script type="text.javascript" src="jquery.js"><.script>/d'
%check
# This test assumes it can create thread barriers for arbitrary numbers of
# threads, but tbb limits the number of threads spawned to a function of the
# number of CPUs available. Some of the koji builders have a small number of
# CPUs, so the test hangs waiting for threads that have not been created to
# arrive at the barrier. Skip this test until upstream fixes it.
sed -i '/test_task_scheduler_observer/d' build/Makefile.test
make test tbb_build_prefix=obj stdver=c++14 CXXFLAGS="%{optflags}"
%install rm -fr %{buildroot}%{_datadir}/doc
mkdir -p $RPM_BUILD_ROOT/%{_libdir}
mkdir -p $RPM_BUILD_ROOT/%{_includedir}
pushd build/obj_release
for file in libtbb{,malloc{,_proxy}}; do
install -p -D -m 755 ${file}.so.2 $RPM_BUILD_ROOT/%{_libdir}
ln -s $file.so.2 $RPM_BUILD_ROOT/%{_libdir}/$file.so
done
popd
pushd include
find tbb -type f ! -name \*.htm\* -exec \
install -p -D -m 644 {} $RPM_BUILD_ROOT/%{_includedir}/{} \
\;
popd
for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
install -p -D -m 644 $(basename ${file}) \
$RPM_BUILD_ROOT/%{_libdir}/pkgconfig/$(basename ${file})
done
# Install the rml headers %check
mkdir -p $RPM_BUILD_ROOT%{_includedir}/rml # Running the tests in parallel often leads to resource exhaustion.
cp -p src/rml/include/*.h $RPM_BUILD_ROOT%{_includedir}/rml ctest --output-on-failure --force-new-ctest-process
# Python 3 install
. build/obj_release/tbbvars.sh
pushd python
%py3_install
chmod a+x $RPM_BUILD_ROOT%{python3_sitearch}/TBB.py
chmod a+x $RPM_BUILD_ROOT%{python3_sitearch}/tbb/__*.py
cp -p libirml.so.1 $RPM_BUILD_ROOT%{_libdir}
ln -s libirml.so.1 $RPM_BUILD_ROOT%{_libdir}/libirml.so
popd
# Install the cmake files
cmake \
-DINSTALL_DIR=$RPM_BUILD_ROOT%{_libdir}/cmake/TBB \
-DSYSTEM_NAME=Linux \
-DLIB_REL_PATH=../.. \
-P cmake/tbb_config_installer.cmake
%files %files
%doc doc/Release_Notes.txt README.md %doc README.md
%license LICENSE %license LICENSE.txt
%{_libdir}/libtbb.so.2 %{_libdir}/libtbb.so.12*
%{_libdir}/libtbbmalloc.so.2 %{_libdir}/libtbbmalloc.so.2*
%{_libdir}/libtbbmalloc_proxy.so.2 %{_libdir}/libtbbmalloc_proxy.so.2*
%{_libdir}/libirml.so.1 %{_libdir}/libirml.so.1
%files bind
%{_libdir}/libtbbbind_2_5.so.3*
%files devel %files devel
%doc CHANGES cmake/README.rst %doc cmake/README.md
%{_includedir}/rml/ %{_includedir}/oneapi/
%{_includedir}/tbb/ %{_includedir}/tbb/
%{_libdir}/*.so %{_libdir}/*.so
%{_libdir}/cmake/TBB/ %{_libdir}/cmake/TBB/
%{_libdir}/pkgconfig/*.pc %{_libdir}/pkgconfig/*.pc
%files doc %files doc
%doc doc/Release_Notes.txt %doc getting-started html
%doc html
%files -n python3-%{name} %files -n python3-%{name}
%doc python/index.html %doc python/README.md
%{python3_sitearch}/TBB* %{python3_sitearch}/TBB*
%{python3_sitearch}/tbb/ %{python3_sitearch}/tbb/
%{python3_sitearch}/__pycache__/TBB* %{python3_sitearch}/__pycache__/TBB*
%changelog %changelog
* Tue Feb 04 2025 Jonathan Wakely <jwakely@redhat.com> - 2020.3-8.1 * Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2021.11.0-7
- Remove jQuery from Doxygen output (RHEL-77693) - Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 2020.3-8 * Fri Oct 25 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 2021.11.0-6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags - Rebuilt for MSVSphere 10
Related: rhbz#1991688
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2021.11.0-6
- Bump release for June 2024 mass rebuild
* Thu Jan 25 2024 Jonathan Wakely <jwakely@fedoraproject.org> - 2021.11.0-5
- Remove Requires:python3-docs for tbb-doc subpackage
* Mon Jan 22 2024 Jonathan Wakely <jwakely@fedoraproject.org> - 2021.11.0-4
- Rename 32-bit arch /usr/lib/pkgconfig/tbb32.pc to tbb.pc
* Fri Jan 19 2024 Yaakov Selkowitz <yselkowi@redhat.com> - 2021.11.0-3
- Avoid python3-docs dependency on RHEL
* Wed Jan 17 2024 Jonathan Wakely <jwakely@fedoraproject.org> - 2021.11.0-2
- Add patch for strict aliasing violation
* Thu Dec 28 2023 Jerry James <loganjerry@gmail.com> - 2021.11.0-1
- Rebase to version 2021.11.0
- New -bind subpackage for the NUMA support library
- Build with cmake
- Minor spec file cleanups
* Thu Aug 10 2023 Jonathan Wakely <jwakely@fedoraproject.org> - 2020.3-21
- SPDX migration
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jun 28 2023 Python Maint <python-maint@redhat.com> - 2020.3-19
- Rebuilt for Python 3.12
* Tue Jun 27 2023 Jonathan Wakely <jwakely@fedoraproject.org> - 2020.3-18
- Add conflicts tag for tbb-doc (#2174300)
- Remove outdated provides for bundled(jquery)
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2020.3-17
- Rebuilt for Python 3.12
* Tue Feb 21 2023 Jonathan Wakely <jwakely@redhat.com> - 2020.3-16
- Add versioned Requires: to python module
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jan 16 2023 Thomas Rodgers <trodgers@redhat.com> - 2020.3-14
- Fix build failure with GCC13 (bz 2161412)
* Wed Jan 11 2023 Thomas Rodgers <trodgers@redhat.com> - 2020.3-13
- Fix build failure with Python 3.12.0 (bz 2154975)
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2020.3-11
- Rebuilt for Python 3.11
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2020.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jun 09 2021 Thomas Rodgers <trodgers@redhat.com> - 2020.3-8
- Merge change to remove baseos-qe.koji-build.scratch-build.validation ahajkova
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2020.3-7
- Rebuilt for Python 3.10
* Thu Jun 3 2021 Thomas Rodgers <trodgers@redhat.com> - 2020.3-6 * Thu Jun 3 2021 Thomas Rodgers <trodgers@redhat.com> - 2020.3-6
- Fix ABI regression in tbb::empty_task caused by switch to LTO - Fix ABI regression in tbb::empty_task caused by switch to LTO
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2020.3-6
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Mon Feb 22 2021 Jerry James <loganjerry@gmail.com> - 2020.3-5 * Mon Feb 22 2021 Jerry James <loganjerry@gmail.com> - 2020.3-5
- Fix cmake file installation some more (bz 1930389) - Fix cmake file installation some more (bz 1930389)

Loading…
Cancel
Save