commit ed63ae99f29446f396785e8c6338d13ceaa7835b Author: Toshaan Bharvani Date: Sun Oct 9 18:48:52 2022 +0200 initial package creation Signed-off-by: Toshaan Bharvani diff --git a/SOURCES/tbb-2019-dont-snip-Wall.patch b/SOURCES/tbb-2019-dont-snip-Wall.patch new file mode 100644 index 0000000..c3f75cc --- /dev/null +++ b/SOURCES/tbb-2019-dont-snip-Wall.patch @@ -0,0 +1,43 @@ +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 diff --git a/SOURCES/tbb-2019-test-task-scheduler-init.patch b/SOURCES/tbb-2019-test-task-scheduler-init.patch new file mode 100644 index 0000000..9eca318 --- /dev/null +++ b/SOURCES/tbb-2019-test-task-scheduler-init.patch @@ -0,0 +1,12 @@ +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 ) ); diff --git a/SOURCES/tbb-2019-test-thread-monitor.patch b/SOURCES/tbb-2019-test-thread-monitor.patch new file mode 100644 index 0000000..e2eee87 --- /dev/null +++ b/SOURCES/tbb-2019-test-thread-monitor.patch @@ -0,0 +1,56 @@ +--- 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 + + 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 request; ++ std::atomic ack; ++ std::atomic 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"); diff --git a/SOURCES/tbb-2020-attributes.patch b/SOURCES/tbb-2020-attributes.patch new file mode 100644 index 0000000..8844732 --- /dev/null +++ b/SOURCES/tbb-2020-attributes.patch @@ -0,0 +1,54 @@ +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 diff --git a/SOURCES/tbb-mark-empty_task-execute-with-gnu-used.patch b/SOURCES/tbb-mark-empty_task-execute-with-gnu-used.patch new file mode 100644 index 0000000..597efcd --- /dev/null +++ b/SOURCES/tbb-mark-empty_task-execute-with-gnu-used.patch @@ -0,0 +1,26 @@ +From db2f2116adfb545bb76c92205f91e3e3f0f9e44a Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +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 + diff --git a/SOURCES/tbb.pc b/SOURCES/tbb.pc new file mode 100644 index 0000000..1f4bd26 --- /dev/null +++ b/SOURCES/tbb.pc @@ -0,0 +1,5 @@ +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 diff --git a/SOURCES/tbbmalloc.pc b/SOURCES/tbbmalloc.pc new file mode 100644 index 0000000..d5a4b1c --- /dev/null +++ b/SOURCES/tbbmalloc.pc @@ -0,0 +1,5 @@ +Name: Threading Building Blocks Scalable Allocator +Description: Implementation of Scalable Memory Allocator of Threading Building Blocks +URL: http://www.threadingbuildingblocks.org/ +Version: _FEDORA_VERSION +Libs: -ltbbmalloc diff --git a/SOURCES/tbbmalloc_proxy.pc b/SOURCES/tbbmalloc_proxy.pc new file mode 100644 index 0000000..bbfcd48 --- /dev/null +++ b/SOURCES/tbbmalloc_proxy.pc @@ -0,0 +1,5 @@ +Name: Threading Building Blocks Scallable Malloc Proxy +Description: Implementation of proxy that redirects memory allocation calls to TBB Scalable Memory Allocator +URL: http://www.threadingbuildingblocks.org/ +Version: _FEDORA_VERSION +Libs: -ltbbmalloc_proxy -ltbbmalloc diff --git a/SPECS/tbb.spec b/SPECS/tbb.spec new file mode 100644 index 0000000..975d402 --- /dev/null +++ b/SPECS/tbb.spec @@ -0,0 +1,529 @@ +Name: tbb +Summary: The Threading Building Blocks library abstracts low-level threading details +Version: 2020.3 +Release: 8%{?dist} +License: ASL 2.0 +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 +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 + +# 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 + +BuildRequires: cmake +BuildRequires: doxygen +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: python3-devel +BuildRequires: swig + +%description +Threading Building Blocks (TBB) is a C++ runtime library that +abstracts the low-level threading details necessary for optimal +multi-core performance. It uses common C++ templates and coding style +to eliminate tedious threading implementation work. + +TBB requires fewer lines of code to achieve parallelism than other +threading models. The applications you write are portable across +platforms. Since the library is also inherently scalable, no code +maintenance is required as more processor cores become available. + + +%package devel +Summary: The Threading Building Blocks C++ headers and shared development libraries +Requires: %{name}%{?_isa} = %{version}-%{release} + +%description devel +Header files and shared object symlinks for the Threading Building +Blocks (TBB) C++ libraries. + + +%package doc +Summary: The Threading Building Blocks documentation +Provides: bundled(jquery) + +%description doc +PDF documentation for the user of the Threading Building Block (TBB) +C++ library. + + +%package -n python3-%{name} +Summary: Python 3 TBB module + +%description -n python3-%{name} +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 + +%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} +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 + +%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 +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 +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 + +%files +%doc doc/Release_Notes.txt README.md +%license LICENSE +%{_libdir}/libtbb.so.2 +%{_libdir}/libtbbmalloc.so.2 +%{_libdir}/libtbbmalloc_proxy.so.2 +%{_libdir}/libirml.so.1 + +%files devel +%doc CHANGES cmake/README.rst +%{_includedir}/rml/ +%{_includedir}/tbb/ +%{_libdir}/*.so +%{_libdir}/cmake/TBB/ +%{_libdir}/pkgconfig/*.pc + +%files doc +%doc doc/Release_Notes.txt +%doc html + +%files -n python3-%{name} +%doc python/index.html +%{python3_sitearch}/TBB* +%{python3_sitearch}/tbb/ +%{python3_sitearch}/__pycache__/TBB* + +%changelog +* Tue Aug 10 2021 Mohan Boddu - 2020.3-8 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Thu Jun 3 2021 Thomas Rodgers - 2020.3-6 +- Fix ABI regression in tbb::empty_task caused by switch to LTO + +* Fri Apr 16 2021 Mohan Boddu - 2020.3-6 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Mon Feb 22 2021 Jerry James - 2020.3-5 +- Fix cmake file installation some more (bz 1930389) + +* Thu Feb 18 2021 Jerry James - 2020.3-4 +- Fix cmake file installation (bz 1930389) +- Allow use of RTM instructions when available +- At upstream's suggestion, do not force ITT_NOTIFY support +- Drop -fetchadd64 patch, only needed for forced ITT_NOTIFY support + +* Wed Jan 27 2021 Fedora Release Engineering - 2020.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 2020.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Jerry James - 2020.3-1 +- Rebase to version 2020.3 + +* Tue Jul 14 2020 Tom Stellard - 2020.2-4 +- Use make macros +- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro + +* Tue May 26 2020 Miro Hrončok - 2020.2-3 +- Rebuilt for Python 3.9 + +* Mon Apr 27 2020 Timm Baeder - 2020.2-2 +- Pass the compiler to when building +- Update the tbb-2019-test-thread-monitor.patch to use std::atomic + +* Tue Mar 31 2020 Jerry James - 2020.2-1 +- Rebase to version 2020.2 + +* Fri Jan 31 2020 Fedora Release Engineering - 2020.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 22 2020 Jerry James - 2020.1-1 +- Rebase to version 2020.1 + +* Tue Dec 31 2019 Jerry James - 2020-1 +- Rebase to version 2020 + +* Sat Oct 12 2019 Jerry James - 2019.9-1 +- Rebase to 2019 update 9 + +* Thu Oct 03 2019 Miro Hrončok - 2019.8-4 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Tue Aug 27 2019 Jerry James - 2019.8-3 +- Add -test-thread-monitor and -test-task-scheduler-init patches to fix FTBFS + +* Mon Aug 19 2019 Miro Hrončok - 2019.8-3 +- Rebuilt for Python 3.8 + +* Sat Jul 27 2019 Fedora Release Engineering - 2019.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Jun 8 2019 Jerry James - 2019.8-1 +- Rebase to 2019 update 8 + +* Thu May 23 2019 Jerry James - 2019.7-1 +- Rebase to 2019 update 7 + +* Thu May 9 2019 Jerry James - 2019.6-1 +- Rebase to 2019 update 6 +- Add -attributes patch to silence gcc warnings + +* Mon Mar 25 2019 Jerry James - 2019.5-1 +- Rebase to 2019 update 5 + +* Mon Mar 4 2019 Jerry James - 2019.4-1 +- Rebase to 2019 update 4 + +* Sun Feb 03 2019 Fedora Release Engineering - 2019.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Dec 8 2018 Jerry James - 2019.3-1 +- Rebase to 2019 update 3 + +* Fri Nov 16 2018 Jerry James - 2019.2-1 +- Rebase to 2019 update 2 + +* Thu Oct 4 2018 Jerry James - 2019.1-1 +- Rebase to 2019 update 1 +- Drop special SSE2 build for 32-bit x86 as that is now default +- Drop unneeded -cxxflags patch +- Drop python 2 support (bz 1629761) + +* Sat Jul 14 2018 Fedora Release Engineering - 2018.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 3 2018 Jerry James - 2018.5-1 +- Rebase to 2018 update 5 +- Run check script on all architectures + +* Tue Jun 19 2018 Miro Hrončok - 2018.4-2 +- Rebuilt for Python 3.7 + +* Thu May 31 2018 Jerry James - 2018.4-1 +- Rebase to 2018 update 4 + +* Fri Feb 09 2018 Fedora Release Engineering - 2018.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 30 2018 Jerry James - 2018.2-4 +- Build libirml with the correct flags (bz 1540268) +- Do not build with -mrtm + +* Mon Jan 29 2018 Iryna Shcherbina - 2018.2-3 +- Fix Python 2 dependency from python3-tbb + +* Fri Jan 26 2018 Jerry James - 2018.2-2 +- Install libirml for the python interfaces + +* Wed Jan 24 2018 Jerry James - 2018.2-1 +- Rebase to 2018 update 2 + +* Sat Nov 25 2017 Jerry James - 2018.1-1 +- Rebase to 2018 update 1 + +* Thu Aug 03 2017 Fedora Release Engineering - 2017.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2017.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 8 2017 Jerry James - 2017.7-1 +- Rebase to 2017 update 7 +- Use the license macro +- Ship the new cmake files in -devel + +* Tue May 16 2017 Jerry James - 2017.6-1 +- Rebase to 2017 update 6 + +* Fri Mar 17 2017 Jerry James - 2017.5-1 +- Rebase to 2017 update 5 +- Change version scheme again to match upstream's change +- New source URL on github +- Drop upstreamed patch to fix detection of s390x as 64-bit arch + +* Sat Feb 11 2017 Fedora Release Engineering - 2017-8.20161128 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Jan 02 2017 Dan Horák - 2017-7.20161128 +- Fix detection of s390x as 64-bit arch (#1379632) + +* Mon Dec 19 2016 Miro Hrončok - 2017-6.20161128 +- Rebuild for Python 3.6 + +* Fri Dec 2 2016 Jerry James - 2017-5.20161128 +- Rebase to 2017 update 3 +- Drop upstreamed s390x patch + +* Wed Nov 2 2016 Jerry James - 2017-4.20161004 +- Rebase to 2017 update 2 + +* Fri Oct 07 2016 Dan Horák - 2017-3.20160916 +- Fix detection of s390x as 64-bit arch (#1379632) + +* Fri Sep 30 2016 Jerry James - 2017-2.20160916 +- New upstream release + +* Thu Sep 22 2016 Jerry James - 2017-1.20160722 +- Rebase to 2017, new upstream version numbering scheme + +* Tue Jul 19 2016 Fedora Release Engineering - 4.4-8.20160526 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Wed Jun 1 2016 Jerry James - 4.4-7.20160526 +- Rebase to 4.4u5 +- Build in C++14 mode +- Build the new python module + +* Fri May 6 2016 Jerry James - 4.4-6.20160413 +- Rebase to 4.4u4 + +* Mon Apr 4 2016 Jerry James - 4.4-5.20160316 +- Add -fno-delete-null-pointer-checks to fix optimized code + +* Fri Mar 18 2016 Jerry James - 4.4-4.20160316 +- Updated upstream tarball +- Link with RPM_LD_FLAGS + +* Sat Feb 20 2016 Jerry James - 4.4-3.20160128 +- Rebase to 4.4u3 + +* Fri Feb 05 2016 Fedora Release Engineering - 4.4-2.20151115 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 15 2016 Jerry James - 4.4-1.20151115 +- Rebase to 4.4u2 +- Fix the mfence patch to actually emit a memory barrier (bz 1288314) +- Build an sse2 version for i386 for better performance on capable CPUs +- Enable use of C++0x features +- Drop out-of-date CHANGES.txt from git + +* Fri Jun 19 2015 Fedora Release Engineering - 4.3-3.20141204 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 4.3-2.20141204 +- Rebuilt for GCC 5 C++11 ABI change + +* Mon Jan 19 2015 Petr Machata - 4.3-1.20141204 +- Rebase to 4.3u2 +- Drop ExclusiveArch + +* Thu Sep 25 2014 Karsten Hopp 4.1-9.20130314 +- enable ppc64le and run 'make test' on that new arch + +* Mon Aug 18 2014 Fedora Release Engineering - 4.1-8.20130314 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sun Jun 08 2014 Fedora Release Engineering - 4.1-7.20130314 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Jan 12 2014 Peter Robinson 4.1-6.20130314 +- Build on aarch64, minor spec cleanups + +* Tue Dec 3 2013 Petr Machata - 4.1-5.20130314 +- Fix building with -Werror=format-security (tbb-4.1-dont-snip-Wall.patch) + +* Thu Oct 3 2013 Petr Machata - 4.1-4.20130314 +- Fix %%install to also install include files that are not named *.h + +* Sun Aug 04 2013 Fedora Release Engineering - 4.1-3.20130314 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue May 28 2013 Petr Machata - 4.1-3.20130314 +- Enable ARM arches + +* Wed May 22 2013 Petr Machata - 4.1-2.20130314 +- Fix mfence patch. Since the __TBB_full_memory_fence macro was + function-call-like, it stole () intended for function invocation. + +* Wed May 22 2013 Petr Machata - 4.1-1.20130314 +- Rebase to 4.1 update 3 + +* Fri Feb 15 2013 Fedora Release Engineering - 4.0-7.20120408 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Aug 28 2012 Petr Machata - 4.0-6.20120408 +- Fix build on PowerPC + +* Sat Jul 21 2012 Fedora Release Engineering - 4.0-5.20120408 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Jun 7 2012 Petr Machata - 4.0-4.20120408 +- Rebase to 4.0 update 4 +- Refresh Getting_Started.pdf, Reference.pdf, Tutorial.pdf +- Provide pkg-config files +- Resolves: #825402 + +* Thu Apr 05 2012 Karsten Hopp 4.0-3.20110809 +- tbb builds now on PPC(64) + +* Sat Jan 14 2012 Fedora Release Engineering - 4.0-2.20110809 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Oct 18 2011 Petr Machata - 4.0-1.20110809 +- Rebase to 4.0 + - Port the mfence patch + - Refresh the documentation bundle + +* Tue Jul 26 2011 Petr Machata - 3.0-1.20110419 +- Rebase to 3.0-r6 + - Port both patches + - Package Design_Patterns.pdf + - Thanks to Richard Shaw for initial rebase patch +- Resolves: #723043 + +* Wed Feb 09 2011 Fedora Release Engineering - 2.2-3.20090809 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Thu Jun 10 2010 Petr Machata - 2.2-2.20090809 +- Replace mfence instruction with xchg to make it run on ia32-class + machines without SSE2. +- Resolves: #600654 + +* Tue Nov 3 2009 Petr Machata - 2.2-1.20090809 +- New upstream 2.2 +- Resolves: #521571 + +* Sun Jul 26 2009 Fedora Release Engineering - 2.1-3.20080605 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Feb 25 2009 Fedora Release Engineering - 2.1-2.20080605 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Jun 13 2008 Petr Machata - 2.1-1.20080605 +- New upstream 2.1 + - Drop soname patch, parallel make patch, and GCC 4.3 patch + +* Wed Feb 13 2008 Petr Machata - 2.0-4.20070927 +- Review fixes + - Use updated URL + - More timestamp preservation +- Initial import into Fedora CVS + +* Mon Feb 11 2008 Petr Machata - 2.0-3.20070927 +- Review fixes + - Preserve timestamp of installed files + - Fix soname not to contain "debug" + +* Tue Feb 5 2008 Petr Machata - 2.0-2.20070927 +- Review fixes + - GCC 4.3 patchset + - Add BR util-linux net-tools + - Add full URL to Source0 + - Build in debug mode to work around problems with GCC 4.3 + +* Mon Dec 17 2007 Petr Machata - 2.0-1.20070927 +- Initial package. +- Using SONAME patch from Debian.