Compare commits

...

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

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
Summary: The Threading Building Blocks library abstracts low-level threading details
Version: 2020.3
Release: 8%{?dist}.1
License: ASL 2.0
Version: 2021.11.0
Release: 7%{?dist}
License: Apache-2.0 AND BSD-3-Clause
URL: http://threadingbuildingblocks.org/
Source0: https://github.com/intel/tbb/archive/v%{version}/%{name}-%{version}.tar.gz
# These three are downstream sources.
Source6: tbb.pc
Source0: https://github.com/oneapi-src/oneTBB/archive/v%{version}/%{name}-%{version}.tar.gz
# These two are downstream sources.
Source7: tbbmalloc.pc
Source8: tbbmalloc_proxy.pc
# Don't snip -Wall from C++ flags. Add -fno-strict-aliasing, as that
# uncovers some static-aliasing warnings.
# Related: https://bugzilla.redhat.com/show_bug.cgi?id=1037347
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
# TBB tries to remove -Werror from the compiler flags, which turns
# -Werror=format-security into =format-security
Patch0: tbb-2021-Werror.patch
# Fix a test that builds a 4-thread barrier, but cannot guarantee that more
# than 2 threads will be available to use it.
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
# Fix code that violates the strict aliasing rules.
Patch1: tbb-2021-strict-aliasing.patch
BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: gcc-c++
BuildRequires: hwloc
BuildRequires: hwloc-devel
BuildRequires: make
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
%description
@ -50,9 +47,19 @@ platforms. Since the library is also inherently scalable, no code
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
Summary: The Threading Building Blocks C++ headers and shared development libraries
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-bind%{?_isa} = %{version}-%{release}
%description devel
Header files and shared object symlinks for the Threading Building
@ -61,14 +68,19 @@ Blocks (TBB) C++ libraries.
%package doc
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
HTML documentation for the user of the Threading Building Block (TBB)
PDF documentation for the user of the Threading Building Block (TBB)
C++ library.
%package -n python3-%{name}
Summary: Python 3 TBB module
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n python3-%{name}
Python 3 TBB module.
@ -77,152 +89,178 @@ Python 3 TBB module.
%prep
%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
sed -i 's,env python,python3,' python/TBB.py python/tbb/__*.py
# Remove shebang from files that don't need it
sed -i '/^#!/d' python/tbb/{pool,test}.py
# Disable jQuery use
sed -i '/^SEARCHENGINE/s/YES/NO/' Doxyfile
%build
compiler=""
if [[ %{__cc} == *"gcc"* ]]; then
compiler="gcc"
elif [[ %{__cc} == *"clang"* ]]; then
compiler="clang"
else
compiler="%{__cc}"
fi
%make_build tbb_build_prefix=obj stdver=c++14 \
compiler=${compiler} \
CXXFLAGS="%{optflags} -DUSE_PTHREAD" \
LDFLAGS="$RPM_LD_FLAGS -lpthread"
for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
base=$(basename ${file})
sed 's/_FEDORA_VERSION/%{version}/' ${file} > ${base}
touch -r ${file} ${base}
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
# Build for python 3
. build/obj_release/tbbvars.sh
pushd python
%make_build -C rml stdver=c++14 \
compiler=${compiler} \
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'
%if %{with py3docs}
# 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
%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
%generate_buildrequires
cd python
%pyproject_buildrequires
make test tbb_build_prefix=obj stdver=c++14 CXXFLAGS="%{optflags}"
%build
export TBBROOT=$PWD
export PYTHONPATH=$(sed "s,%{_prefix},$PWD/%{_vpath_builddir}/python/build," <<< %{python3_sitearch})
%cmake \
-DCMAKE_CXX_STANDARD=17 \
-DTBB4PY_BUILD:BOOL=ON \
-DTBB_STRICT:BOOL=OFF \
-DCMAKE_HWLOC_2_4_LIBRARY_PATH=%{_libdir}/libhwloc.so \
-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
%install
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
%cmake_install
# The python package is not installed the Fedora way. Do it over.
rm -fr %{buildroot}%{python3_sitearch}
cd python
%pyproject_install
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
popd
pushd include
find tbb -type f ! -name \*.htm\* -exec \
install -p -D -m 644 {} $RPM_BUILD_ROOT/%{_includedir}/{} \
\;
popd
# Upstream installs tbb32.pc on 32-bit but it's already in a separate directory
# because %_libdir is different for 32-bit and 64-bit, so rename it to tbb.pc.
if [ -f %{buildroot}/%{_libdir}/pkgconfig/%{name}32.pc ]; then
mv %{buildroot}/%{_libdir}/pkgconfig/%{name}32.pc %{buildroot}/%{_libdir}/pkgconfig/%{name}.pc
fi
for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
install -p -D -m 644 $(basename ${file}) \
$RPM_BUILD_ROOT/%{_libdir}/pkgconfig/$(basename ${file})
done
rm -fr %{buildroot}%{_datadir}/doc
# Install the rml headers
mkdir -p $RPM_BUILD_ROOT%{_includedir}/rml
cp -p src/rml/include/*.h $RPM_BUILD_ROOT%{_includedir}/rml
# 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
%check
# Running the tests in parallel often leads to resource exhaustion.
ctest --output-on-failure --force-new-ctest-process
%files
%doc doc/Release_Notes.txt README.md
%license LICENSE
%{_libdir}/libtbb.so.2
%{_libdir}/libtbbmalloc.so.2
%{_libdir}/libtbbmalloc_proxy.so.2
%doc README.md
%license LICENSE.txt
%{_libdir}/libtbb.so.12*
%{_libdir}/libtbbmalloc.so.2*
%{_libdir}/libtbbmalloc_proxy.so.2*
%{_libdir}/libirml.so.1
%files bind
%{_libdir}/libtbbbind_2_5.so.3*
%files devel
%doc CHANGES cmake/README.rst
%{_includedir}/rml/
%doc cmake/README.md
%{_includedir}/oneapi/
%{_includedir}/tbb/
%{_libdir}/*.so
%{_libdir}/cmake/TBB/
%{_libdir}/pkgconfig/*.pc
%files doc
%doc doc/Release_Notes.txt
%doc html
%doc getting-started html
%files -n python3-%{name}
%doc python/index.html
%doc python/README.md
%{python3_sitearch}/TBB*
%{python3_sitearch}/tbb/
%{python3_sitearch}/__pycache__/TBB*
%changelog
* Tue Feb 04 2025 Jonathan Wakely <jwakely@redhat.com> - 2020.3-8.1
- Remove jQuery from Doxygen output (RHEL-77693)
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2021.11.0-7
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* 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 Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 2020.3-8
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* 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
- 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
- Fix cmake file installation some more (bz 1930389)

Loading…
Cancel
Save