tbb 2020.1-1 (i686;x86_64;znver1;armv7hnl) 2020-10500
9999

Status published
Submitter nobodydead [@T] gmail.com
Platform rolling
Repository main
URL https://abf.openmandriva.org/build_lists/693519
Packages
libirml1-2020.1-1.i686.binary
libirml1-debuginfo-2020.1-1.i686.debuginfo
libtbb2-2020.1-1.i686.binary
libtbb2-debuginfo-2020.1-1.i686.debuginfo
libtbb-devel-2020.1-1.i686.binary
libtbbmalloc2-2020.1-1.i686.binary
libtbbmalloc2-debuginfo-2020.1-1.i686.debuginfo
libtbbmalloc_proxy2-2020.1-1.i686.binary
libtbbmalloc_proxy2-debuginfo-2020.1-1.i686.debuginfo
python-tbb-2020.1-1.i686.binary
python-tbb-debuginfo-2020.1-1.i686.debuginfo
tbb-2020.1-1.i686.source
tbb-debuginfo-2020.1-1.i686.debuginfo
lib64irml1-2020.1-1.x86_64.binary
lib64irml1-debuginfo-2020.1-1.x86_64.debuginfo
lib64tbb2-2020.1-1.x86_64.binary
lib64tbb2-debuginfo-2020.1-1.x86_64.debuginfo
lib64tbb-devel-2020.1-1.x86_64.binary
lib64tbbmalloc2-2020.1-1.x86_64.binary
lib64tbbmalloc2-debuginfo-2020.1-1.x86_64.debuginfo
lib64tbbmalloc_proxy2-2020.1-1.x86_64.binary
lib64tbbmalloc_proxy2-debuginfo-2020.1-1.x86_64.debuginfo
python-tbb-2020.1-1.x86_64.binary
python-tbb-debuginfo-2020.1-1.x86_64.debuginfo
tbb-2020.1-1.x86_64.source
tbb-debuginfo-2020.1-1.x86_64.debuginfo
lib64irml1-2020.1-1.znver1.binary
lib64irml1-debuginfo-2020.1-1.znver1.debuginfo
lib64tbb2-2020.1-1.znver1.binary
lib64tbb2-debuginfo-2020.1-1.znver1.debuginfo
lib64tbb-devel-2020.1-1.znver1.binary
lib64tbbmalloc2-2020.1-1.znver1.binary
lib64tbbmalloc2-debuginfo-2020.1-1.znver1.debuginfo
lib64tbbmalloc_proxy2-2020.1-1.znver1.binary
lib64tbbmalloc_proxy2-debuginfo-2020.1-1.znver1.debuginfo
python-tbb-2020.1-1.znver1.binary
python-tbb-debuginfo-2020.1-1.znver1.debuginfo
tbb-2020.1-1.znver1.source
tbb-debuginfo-2020.1-1.znver1.debuginfo
libirml1-2020.1-1.armv7hnl.binary
libirml1-debuginfo-2020.1-1.armv7hnl.debuginfo
libtbb2-2020.1-1.armv7hnl.binary
libtbb2-debuginfo-2020.1-1.armv7hnl.debuginfo
libtbb-devel-2020.1-1.armv7hnl.binary
libtbbmalloc2-2020.1-1.armv7hnl.binary
libtbbmalloc2-debuginfo-2020.1-1.armv7hnl.debuginfo
libtbbmalloc_proxy2-2020.1-1.armv7hnl.binary
libtbbmalloc_proxy2-debuginfo-2020.1-1.armv7hnl.debuginfo
python-tbb-2020.1-1.armv7hnl.binary
python-tbb-debuginfo-2020.1-1.armv7hnl.debuginfo
tbb-2020.1-1.armv7hnl.source
tbb-debuginfo-2020.1-1.armv7hnl.debuginfo
Build Date 2020-02-15 01:59:21 +0000 UTC
Last Updated 2020-02-16 17:07:46.986163668 +0000 UTC
$ git show --format=fuller --patch-with-stat --summary 6519d37ba51180017b022742320c3675c4e89bd0

commit 6519d37ba51180017b022742320c3675c4e89bd0
Author:     Bernhard Rosenkraenzer <bero@lindev.ch>
AuthorDate: Sat Feb 15 02:39:17 2020 +0100
Commit:     Bernhard Rosenkraenzer <bero@lindev.ch>
CommitDate: Sat Feb 15 02:39:17 2020 +0100

    2020.1
---
 .abf.yml                                |    2 +-
 .gitignore                              |   12 -
 CHANGES.txt                             | 1242 -------------------------------
 tbb-2019-attributes.patch               |   31 +
 tbb-2019-dont-snip-Wall.patch           |   43 ++
 tbb-2019-fetchadd4.patch                |   12 +
 tbb-2019-test-task-scheduler-init.patch |   12 +
 tbb-2019-test-thread-monitor.patch      |   47 ++
 tbb-3.0-cxxflags.patch                  |   18 -
 tbb-4.0-mfence.patch                    |   21 -
 tbb.pc                                  |    5 -
 tbb.spec                                |  365 ++++-----
 tbbmalloc.pc                            |    5 -
 tbbmalloc_proxy.pc                      |    5 -
 14 files changed, 289 insertions(+), 1531 deletions(-)
 delete mode 100644 .gitignore
 delete mode 100644 CHANGES.txt
 create mode 100644 tbb-2019-attributes.patch
 create mode 100644 tbb-2019-dont-snip-Wall.patch
 create mode 100644 tbb-2019-fetchadd4.patch
 create mode 100644 tbb-2019-test-task-scheduler-init.patch
 create mode 100644 tbb-2019-test-thread-monitor.patch
 delete mode 100644 tbb-3.0-cxxflags.patch
 delete mode 100644 tbb-4.0-mfence.patch
 delete mode 100644 tbb.pc
 delete mode 100644 tbbmalloc.pc
 delete mode 100644 tbbmalloc_proxy.pc

diff --git a/.abf.yml b/.abf.yml
index 836681a..19c9d59 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -1,2 +1,2 @@
 sources:
-  tbb42_20140122oss_src.tgz: d897a6ced4f425c6608422a2e19218898e727260
+  tbb-2020.1.tar.gz: 493a1faf80a7ab320448eec0fbfaedf40e9574ee
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 1f23f1e..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,12 +0,0 @@
-tbb22_20090809oss_src.tgz
-Tutorial.pdf
-Reference.pdf
-Getting_Started.pdf
-/tbb30_20110419oss_src.tgz
-/Design_Patterns.pdf
-tbb*/
-/tbb40_20110809oss_src.tgz
-/tbb40_20120408oss_src.tgz
-*.rpm
-/tbb41_20130314oss_src.tgz
-.*.log
diff --git a/CHANGES.txt b/CHANGES.txt
deleted file mode 100644
index e96d77b..0000000
--- a/CHANGES.txt
+++ /dev/null
@@ -1,1242 +0,0 @@
-TBB 4.0 Update 4
-
-Changes (w.r.t. TBB 4.0 Update 3):
-
-- The TBB memory allocator transparently supports large pages on Linux.
-- A new flow_graph example, logic_sim, was added.
-- Support for DirectX* 9 was added to GUI examples.
-
-Community Preview Features:
-
-- Added: aggregator, a new concurrency control mechanism.
-
-Bugs fixed:
-
-- The abort operation on concurrent_bounded_queue now leaves the queue
-    in a reusable state. If a bad_alloc or bad_last_alloc exception is
-    thrown while the queue is recovering from an abort, that exception
-    will be reported instead of user_abort on the thread on which it
-    occurred, and the queue will not be reusable.
-- Steal limiting heuristic fixed to avoid premature stealing disabling
-    when large amount of __thread data is allocated on thread stack.
-- Fixed a low-probability leak of arenas in the task scheduler.
-- In STL-compatible allocator classes, the method construct() was fixed
-    to comply with C++11 requirements.
-- Fixed a bug that prevented creation of fixed-size memory pools
-    smaller than 2M.
-- Significantly reduced the amount of warnings from various compilers.
-
-Open-source contributions integrated:
-
-- Multiple improvements by Raf Schietekat.
-- Basic support for Clang on Mac OS X* by Blas Rodriguez Somoza.
-- Fixes for warnings and corner-case bugs by Blas Rodriguez Somoza
-    and Edward Lam.
-
-------------------------------------------------------------------------
-TBB 4.0 Update 3
-
-Changes (w.r.t. TBB 4.0 Update 2):
-
-- Modifications to the low-level API for memory pools:
-    added support for aligned allocations;
-    pool policies reworked to allow backward-compatible extensions;
-    added a policy to not return memory space till destruction;
-    pool_reset() does not return memory space anymore.
-- Class tbb::flow::graph_iterator added to iterate over all nodes
-    registered with a graph instance.
-- multioutput_function_node has been renamed multifunction_node.
-    multifunction_node and split_node are now fully-supported features.
-- For the tagged join node, the policy for try_put of an item with
-    already existing tag has been defined: the item will be rejected.
-- Matching the behavior on Windows, on other platforms the optional
-    shared libraries (libtbbmalloc, libirml) now are also searched
-    only in the directory where libtbb is located.
-- The platform isolation layer based on GCC built-ins is extended.
-
-Backward-incompatible API changes:
-
-- a graph reference parameter is now required to be passed to the
-    constructors of the following flow graph nodes: overwrite_node, 
-    write_once_node, broadcast_node, and the CPF or_node.
-- the following tbb::flow node methods and typedefs have been renamed:
-       Old                             New
-    join_node and or_node:
-       inputs()                 ->     input_ports()
-       input_ports_tuple_type   ->     input_ports_type
-    multifunction_node and split_node:
-       ports_type               ->     output_ports_type
-
-Bugs fixed:
-
-- Not all logical processors were utilized on systems with more than
-    64 cores split by Windows into several processor groups.
-
-------------------------------------------------------------------------
-TBB 4.0 Update 2 commercial-aligned release
-
-Changes (w.r.t. TBB 4.0 Update 1 commercial-aligned release):
-
-- concurrent_bounded_queue now has an abort() operation that releases 
-    threads involved in pending push or pop operations. The released 
-    threads will receive a tbb::user_abort exception.
-- Added Community Preview Feature:  concurrent_lru_cache container, 
-    a concurrent implementation of LRU (least-recently-used) cache.
-
-Bugs fixed:
-
-- fixed a race condition in the TBB scalable allocator.
-- concurrent_queue counter wraparound bug was fixed, which occurred when
-    the number of push and pop operations exceeded ~>4 billion on IA32.
-- fixed races in the TBB scheduler that could put workers asleep too
-    early, especially in presense of affinitized tasks.
-
-------------------------------------------------------------------------
-TBB 4.0 Update 1 commercial-aligned release
-
-Changes (w.r.t. TBB 4.0 commercial-aligned release):
-
-- Memory leaks fixed in binpack example.
-- Improvements and fixes in the TBB allocator.
-
-------------------------------------------------------------------------
-TBB 4.0 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 8 commercial-aligned release):
-
-- concurrent_priority_queue is now a fully supported feature.
-    Capacity control methods were removed.
-- Flow graph is now a fully supported feature.
-- A new memory backend has been implemented in the TBB allocator.
-    It can reuse freed memory for both small and large objects, and
-    returns unused memory blocks to the OS more actively.
-- Improved partitioning algorithms for parallel_for and parallel_reduce
-    to better handle load imbalance.
-- The convex_hull example has been refactored for reproducible
-    performance results.
-- The major interface version has changed from 5 to 6.
-    Deprecated interfaces might be removed in future releases.
-
-Community Preview Features:
-
-- Added: serial subset, i.e. sequential implementations of TBB generic
-    algorithms (currently, only provided for parallel_for).
-- Preview of new flow graph nodes:
-    or_node (accepts multiple inputs, forwards each input separately
-      to all successors),
-    split_node (accepts tuples, and forwards each element of a tuple
-      to a corresponding successor), and
-    multioutput_function_node (accepts one input, and passes the input
-    and a tuple of output ports to the function body to support outputs
-    to multiple successors).
-- Added: memory pools for more control on memory source, grouping,
-    and collective deallocation.
-
-------------------------------------------------------------------------
-TBB 3.0 Update 8 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 7 commercial-aligned release):
-
-- Task priorities become an official feature of TBB,
-    not community preview as before.
-- Atomics API extended, and implementation refactored.
-- Added task::set_parent() method.
-- Added concurrent_unordered_set container.
-
-Open-source contributions integrated:
-
-- PowerPC support by Raf Schietekat.
-- Fix of potential task pool overrun and other improvements
-    in the task scheduler by Raf Schietekat.
-- Fix in parallel_for_each to work with std::set in Visual* C++ 2010.
-
-Community Preview Features:
-
-- Graph community preview feature was renamed to flow graph.
-    Multiple improvements in the implementation.
-    Binpack example was added for the feature.
-- A number of improvements to concurrent_priority_queue.
-    Shortpath example was added for the feature.
-- TBB runtime loaded functionality was added (Windows*-only).
-    It allows to specify which versions of TBB should be used,
-    as well as to set directories for the library search.
-- parallel_deterministic_reduce template function was added.
-
-------------------------------------------------------------------------
-TBB 3.0 Update 7 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 6 commercial-aligned release):
-
-- Added implementation of the platform isolation layer based on 
-    GCC atomic built-ins; it is supposed to work on any platform 
-    where GCC has these built-ins.
-
-Community Preview Features:
-
-- Graph's dining_philosophers example added.
-- A number of improvements to graph and concurrent_priority_queue.
-
-
-------------------------------------------------------------------------
-TBB 3.0 Update 6 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 5 commercial-aligned release):
-
-- Added Community Preview feature: task and task group priority, and
-    Fractal example demonstrating it.
-- parallel_pipeline optimized for data items of small and large sizes.
-- Graph's join_node is now parametrized with a tuple of up to 10 types.
-- Improved performance of concurrent_priority_queue.
-
-Open-source contributions integrated:
-
-- Initial NetBSD support by Aleksej Saushev.
-
-Bugs fixed:
-
-- Failure to enable interoperability with Intel(R) Cilk(tm) Plus runtime
-    library, and a crash caused by invoking the interoperability layer
-    after one of the libraries was unloaded.
-- Data race that could result in concurrent_unordered_map structure
-    corruption after call to clear() method.
-- Stack corruption caused by PIC version of 64-bit CAS compiled by Intel
-    compiler on Linux.
-- Inconsistency of exception propagation mode possible when application
-    built with Microsoft* Visual Studio* 2008 or earlier uses TBB built
-    with Microsoft* Visual Studio* 2010.
-- Affinitizing master thread to a subset of available CPUs after TBB
-    scheduler was initialized tied all worker threads to the same CPUs.
-- Method is_stolen_task() always returned 'false' for affinitized tasks.
-- write_once_node and overwrite_node did not immediately send buffered
-    items to successors
-
-------------------------------------------------------------------------
-TBB 3.0 Update 5 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 4 commercial-aligned release):
-
-- Added Community Preview feature: graph.
-- Added automatic propagation of master thread FPU settings to
-    TBB worker threads.
-- Added a public function to perform a sequentially consistent full 
-    memory fence: tbb::atomic_fence() in tbb/atomic.h.
-
-Bugs fixed:
-
-- Data race that could result in scheduler data structures corruption
-    when using fire-and-forget tasks.
-- Potential referencing of destroyed concurrent_hash_map element after
-    using erase(accessor&A) method with A acquired as const_accessor.
-- Fixed a correctness bug in the convex hull example.
-
-Open-source contributions integrated:
-
-- Patch for calls to internal::atomic_do_once() by Andrey Semashev.
-
-------------------------------------------------------------------------
-TBB 3.0 Update 4 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 3 commercial-aligned release):
-
-- Added Community Preview feature: concurrent_priority_queue.
-- Fixed library loading to avoid possibility for remote code execution,
-    see http://www.microsoft.com/technet/security/advisory/2269637.mspx.
-- Added support of more than 64 cores for appropriate Microsoft* 
-    Windows* versions. For more details, see 
-    http://msdn.microsoft.com/en-us/library/dd405503.aspx.
-- Default number of worker threads is adjusted in accordance with 
-    process affinity mask.
-
-Bugs fixed:
-
-- Calls of scalable_* functions from inside the allocator library 
-    caused issues if the functions were overridden by another module.
-- A crash occurred if methods run() and wait() were called concurrently
-    for an empty tbb::task_group (1736).
-- The tachyon example exhibited build problems associated with 
-    bug 554339 on Microsoft* Visual Studio* 2010. Project files were
-    modified as a partial workaround to overcome the problem. See 
-    http://connect.microsoft.com/VisualStudio/feedback/details/554339.
-
-------------------------------------------------------------------------
-TBB 3.0 Update 3 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 2 commercial-aligned release):
-
-- cache_aligned_allocator class reworked to use scalable_aligned_malloc.
-- Improved performance of count() and equal_range() methods
-    in concurrent_unordered_map.
-- Improved implementation of 64-bit atomic loads and stores on 32-bit
-    platforms, including compilation with VC 7.1.
-- Added implementation of atomic operations on top of OSAtomic API
-    provided by Mac OS* X.
-- Removed gratuitous try/catch blocks surrounding thread function calls
-  in tbb_thread.
-- Xcode* projects were added for sudoku and game_of_life examples.
-- Xcode* projects were updated to work without TBB framework.
-
-Bugs fixed:
-
-- Fixed a data race in task scheduler destruction that on rare occasion
-    could result in memory corruption.
-- Fixed idle spinning in thread bound filters in tbb::pipeline (1670).
-
-Open-source contributions integrated:
-
-- MinGW-64 basic support by brsomoza (partially).
-- Patch for atomic.h by Andrey Semashev.
-- Support for AIX & GCC on PowerPC by Giannis Papadopoulos.
-- Various improvements by Raf Schietekat.
-
-------------------------------------------------------------------------
-TBB 3.0 Update 2 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 Update 1 commercial-aligned release):
-
-- Destructor of tbb::task_group class throws missing_wait exception
-    if there are tasks running when it is invoked.
-- Interoperability layer with Intel Cilk Plus runtime library added
-    to protect TBB TLS in case of nested usage with Intel Cilk Plus.
-- Compilation fix for dependent template names in concurrent_queue.
-- Memory allocator code refactored to ease development and maintenance.
-
-Bugs fixed:
-
-- Improved interoperability with other Intel software tools on Linux in
-    case of dynamic replacement of memory allocator (1700)
-- Fixed install issues that prevented installation on
-    Mac OS* X 10.6.4 (1711).
-
-------------------------------------------------------------------------
-TBB 3.0 Update 1 commercial-aligned release
-
-Changes (w.r.t. TBB 3.0 commercial-aligned release):
-
-- Decreased memory fragmentation by allocations bigger than 8K.
-- Lazily allocate worker threads, to avoid creating unnecessary stacks.
-
-Bugs fixed:
-
-- TBB allocator used much more memory than malloc (1703) - see above.
-- Deadlocks happened in some specific initialization scenarios
-    of the TBB allocator (1701, 1704).
-- Regression in enumerable_thread_specific: excessive requirements
-    for object constructors.
-- A bug in construction of parallel_pipeline filters when body instance
-    was a temporary object.
-- Incorrect usage of memory fences on PowerPC and XBOX360 platforms.
-- A subtle issue in task group context binding that could result
-    in cancelation signal being missed by nested task groups.
-- Incorrect construction of concurrent_unordered_map if specified
-    number of buckets is not power of two.
-- Broken count() and equal_range() of concurrent_unordered_map.
-- Return type of postfix form of operator++ for hash map's iterators.
-
-------------------------------------------------------------------------
-TBB 3.0 commercial-aligned release
-
-Changes (w.r.t. TBB 2.2 Update 3 commercial-aligned release):
-
-- All open-source-release changes down to TBB 2.2 U3 below
-    were incorporated into this release.
-
-------------------------------------------------------------------------
-20100406 open-source release
-
-Changes (w.r.t. 20100310 open-source release):
-
-- Added support for Microsoft* Visual Studio* 2010, including binaries.
-- Added a PDF file with recommended Design Patterns for TBB.
-- Added parallel_pipeline function and companion classes and functions
-    that provide a strongly typed lambda-friendly pipeline interface.
-- Reworked enumerable_thread_specific to use a custom implementation of
-    hash map that is more efficient for ETS usage models.
-- Added example for class task_group; see examples/task_group/sudoku.
-- Removed two examples, as they were long outdated and superceded:
-    pipeline/text_filter (use pipeline/square);
-    parallel_while/parallel_preorder (use parallel_do/parallel_preorder).
-- PDF documentation updated.
-- Other fixes and changes in code, tests, and examples.
-
-Bugs fixed:
-
-- Eliminated build errors with MinGW32.
-- Fixed post-build step and other issues in VS projects for examples.
-- Fixed discrepancy between scalable_realloc and scalable_msize that
-    caused crashes with malloc replacement on Windows.
-
-------------------------------------------------------------------------
-20100310 open-source release
-
-Changes (w.r.t. TBB 2.2 Update 3 commercial-aligned release):
-
-- Version macros changed in anticipation of a future release.
-- Directory structure aligned with Intel(R) C++ Compiler;
-    now TBB binaries reside in <arch>/<os_key>/[bin|lib]
-    (in TBB 2.x, it was [bin|lib]/<arch>/<os_key>).
-- Visual Studio projects changed for examples: instead of separate set
-    of files for each VS version, now there is single 'msvs' directory
-    that contains workspaces for MS C++ compiler (<example>_cl.sln) and
-    Intel C++ compiler (<example>_icl.sln). Works with VS 2005 and above.
-- The name versioning scheme for backward compatibility was improved;
-    now compatibility-breaking changes are done in a separate namespace.
-- Added concurrent_unordered_map implementation based on a prototype
-    developed in Microsoft for a future version of PPL.
-- Added PPL-compatible writer-preference RW lock (reader_writer_lock).
-- Added TBB_IMPLEMENT_CPP0X macro to control injection of C++0x names
-    implemented in TBB into namespace std.
-- Added almost-C++0x-compatible std::condition_variable, plus a bunch
-    of other C++0x classes required by condition_variable.
-- With TBB_IMPLEMENT_CPP0X, tbb_thread can be also used as std::thread.
-- task.cpp was split into several translation units to structure
-    TBB scheduler sources layout. Static data layout and library
-    initialization logic were also updated.
-- TBB scheduler reworked to prevent master threads from stealing
-    work belonging to other masters.
-- Class task was extended with enqueue() method, and slightly changed
-    semantics of methods spawn() and destroy(). For exact semantics,
-    refer to TBB Reference manual.
-- task_group_context now allows for destruction by non-owner threads.
-- Added TBB_USE_EXCEPTIONS macro to control use of exceptions in TBB
-    headers. It turns off (i.e. sets to 0) automatically if specified
-    compiler options disable exception handling.
-- TBB is enabled to run on top of Microsoft's Concurrency Runtime
-    on Windows* 7 (via our worker dispatcher known as RML).
-- Removed old unused busy-waiting code in concurrent_queue.
-- Described the advanced build & test options in src/index.html.
-- Warning level for GCC raised with -Wextra and a few other options.
-- Multiple fixes and improvements in code, tests, examples, and docs.
-
-Open-source contributions integrated:
-
-- Xbox support by Roman Lut (Deep Shadows), though further changes are
-    required to make it working; e.g. post-2.1 entry points are missing.
-- "Eventcount" by Dmitry Vyukov evolved into concurrent_monitor,
-    an internal class used in the implementation of concurrent_queue.
-
-------------------------------------------------------------------------
-TBB 2.2 Update 3 commercial-aligned release
-
-Changes (w.r.t. TBB 2.2 Update 2 commercial-aligned release):
-
-- PDF documentation updated.
-
-Bugs fixed:
-
-- concurrent_hash_map compatibility issue exposed on Linux in case
-    two versions of the container were used by different modules.
-- enforce 16 byte stack alignment for consistence with GCC; required
-    to work correctly with 128-bit variables processed by SSE.
-- construct() methods of allocator classes now use global operator new.
-
-------------------------------------------------------------------------
-TBB 2.2 Update 2 commercial-aligned release
-
-Changes (w.r.t. TBB 2.2 Update 1 commercial-aligned release):
-
-- parallel_invoke and parallel_for_each now take function objects
-    by const reference, not by value.
-- Building TBB with /MT is supported, to avoid dependency on particular
-    versions of Visual C++* runtime DLLs. TBB DLLs built with /MT
-    are located in vc_mt directory.
-- Class critical_section introduced.
-- Improvements in exception support: new exception classes introduced,
-    all exceptions are thrown via an out-of-line internal method.
-- Improvements and fixes in the TBB allocator and malloc replacement,
-    including robust memory identification, and more reliable dynamic
-    function substitution on Windows*.
-- Method swap() added to class tbb_thread.
-- Methods rehash() and bucket_count() added to concurrent_hash_map.
-- Added support for Visual Studio* 2010 Beta2. No special binaries
-    provided, but CRT-independent DLLs (vc_mt) should work.
-- Other fixes and improvements in code, tests, examples, and docs.
-
-Open-source contributions integrated:
-
-- The fix to build 32-bit TBB on Mac OS* X 10.6.
-- GCC-based port for SPARC Solaris by Michailo Matijkiw, with use of
-    earlier work by Raf Schietekat.
-
-Bugs fixed:
-
-- 159 - TBB build for PowerPC* running Mac OS* X.
-- 160 - IBM* Java segfault if used with TBB allocator.
-- crash in concurrent_queue<char> (1616).
-
-------------------------------------------------------------------------
-TBB 2.2 Update 1 commercial-aligned release
-
-Changes (w.r.t. TBB 2.2 commercial-aligned release):
-
-- Incorporates all changes from open-source releases below.
-- Documentation was updated.
-- TBB scheduler auto-initialization now covers all possible use cases.
-- concurrent_queue: made argument types of sizeof used in paddings
-  consistent with those actually used.
-- Memory allocator was improved: supported corner case of user's malloc
-    calling scalable_malloc (non-Windows), corrected processing of
-    memory allocation requests during tbb memory allocator startup
-    (Linux).
-- Windows malloc replacement has got better support for static objects.
-- In pipeline setups that do not allow actual parallelism, execution
-    by a single thread is guaranteed, idle spinning eliminated, and
-    performance improved.
-- RML refactoring and clean-up.
-- New constructor for concurrent_hash_map allows reserving space for
-    a number of items.
-- Operator delete() added to the TBB exception classes.
-- Lambda support was improved in parallel_reduce.
-- gcc 4.3 warnings were fixed for concurrent_queue.
-- Fixed possible initialization deadlock in modules using TBB entities
-    during construction of global static objects.
-- Copy constructor in concurrent_hash_map was fixed.
-- Fixed a couple of rare crashes in the scheduler possible before
-    in very specific use cases.
-- Fixed a rare crash in the TBB allocator running out of memory.
-- New tests were implemented, including test_lambda.cpp that checks
-    support for lambda expressions.
-- A few other small changes in code, tests, and documentation.
-
-------------------------------------------------------------------------
-20090809 open-source release
-
-Changes (w.r.t. TBB 2.2 commercial-aligned release):
-
-- Fixed known exception safety issues in concurrent_vector.
-- Better concurrency of simultaneous grow requests in concurrent_vector.
-- TBB allocator further improves performance of large object allocation.
-- Problem with source of text relocations was fixed on Linux
-- Fixed bugs related to malloc replacement under Windows
-- A few other small changes in code and documentation.
-
-------------------------------------------------------------------------
-TBB 2.2 commercial-aligned release
-
-Changes (w.r.t. TBB 2.1 U4 commercial-aligned release):
-
-- Incorporates all changes from open-source releases below.
-- Architecture folders renamed from em64t to intel64 and from itanium
-    to ia64.
-- Major Interface version changed from 3 to 4. Deprecated interfaces
-    might be removed in future releases.
-- Parallel algorithms that use partitioners have switched to use
-    the auto_partitioner by default.
-- Improved memory allocator performance for allocations bigger than 8K.
-- Added new thread-bound filters functionality for pipeline.
-- New implementation of concurrent_hash_map that improves performance
-    significantly.
-- A few other small changes in code and documentation.
-
-------------------------------------------------------------------------
-20090511 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Basic support for MinGW32 development kit.
-- Added tbb::zero_allocator class that initializes memory with zeros.
-    It can be used as an adaptor to any STL-compatible allocator class.
-- Added tbb::parallel_for_each template function as alias to parallel_do.
-- Added more overloads for tbb::parallel_for.
-- Added support for exact exception propagation (can only be used with
-    compilers that support C++0x std::exception_ptr).
-- tbb::atomic template class can be used with enumerations.
-- mutex, recursive_mutex, spin_mutex, spin_rw_mutex classes extended
-    with explicit lock/unlock methods.
-- Fixed size() and grow_to_at_least() methods of tbb::concurrent_vector
-    to provide space allocation guarantees. More methods added for
-    compatibility with std::vector, including some from C++0x.
-- Preview of a lambda-friendly interface for low-level use of tasks.
-- scalable_msize function added to the scalable allocator (Windows only).
-- Rationalized internal auxiliary functions for spin-waiting and backoff.
-- Several tests undergo decent refactoring.
-
-Changes affecting backward compatibility:
-
-- Improvements in concurrent_queue, including limited API changes.
-    The previous version is deprecated; its functionality is accessible
-    via methods of the new tbb::concurrent_bounded_queue class.
-- grow* and push_back methods of concurrent_vector changed to return
-    iterators; old semantics is deprecated.
-
-------------------------------------------------------------------------
-TBB 2.1 Update 4 commercial-aligned release
-
-Changes (w.r.t. TBB 2.1 U3 commercial-aligned release):
-
-- Added tests for aligned memory allocations and malloc replacement.
-- Several improvements for better bundling with Intel(R) C++ Compiler.
-- A few other small changes in code and documentaion.
-
-Bugs fixed:
-
-- 150 - request to build TBB examples with debug info in release mode.
-- backward compatibility issue with concurrent_queue on Windows.
-- dependency on VS 2005 SP1 runtime libraries removed.
-- compilation of GUI examples under Xcode* 3.1 (1577).
-- On Windows, TBB allocator classes can be instantiated with const types
-    for compatibility with MS implementation of STL containers (1566).
-
-------------------------------------------------------------------------
-20090313 open-source release
-
-Changes (w.r.t. 20081109 open-source release):
-
-- Includes all changes introduced in TBB 2.1 Update 2 & Update 3
-    commercial-aligned releases (see below for details).
-- Added tbb::parallel_invoke template function. It runs up to 10
-    user-defined functions in parallel and waits for them to complete.
-- Added a special library providing ability to replace the standard
-    memory allocation routines in Microsoft* C/C++ RTL (malloc/free,
-    global new/delete, etc.) with the TBB memory allocator.
-    Usage details are described in include/tbb/tbbmalloc_proxy.h file.
-- Task scheduler switched to use new implementation of its core
-    functionality (deque based task pool, new structure of arena slots).
-- Preview of Microsoft* Visual Studio* 2005 project files for
-    building the library is available in build/vsproject folder.
-- Added tests for aligned memory allocations and malloc replacement.
-- Added parallel_for/game_of_life.net example (for Windows only)
-    showing TBB usage in a .NET application.
-- A number of other fixes and improvements to code, tests, makefiles,
-    examples and documents.
-
-Bugs fixed:
-
-- The same list as in TBB 2.1 Update 4 right above.
-
-------------------------------------------------------------------------
-TBB 2.1 Update 3 commercial-aligned release
-
-Changes (w.r.t. TBB 2.1 U2 commercial-aligned release):
-
-- Added support for aligned allocations to the TBB memory allocator.
-- Added a special library to use with LD_PRELOAD on Linux* in order to
-    replace the standard memory allocation routines in C/C++ with the
-    TBB memory allocator.
-- Added null_mutex and null_rw_mutex: no-op classes interface-compliant
-    to other TBB mutexes.
-- Improved performance of parallel_sort, to close most of the serial gap
-    with std::sort, and beat it on 2 and more cores.
-- A few other small changes.
-
-Bugs fixed:
-
-- the problem where parallel_for hanged after exception throw
-    if affinity_partitioner was used (1556).
-- get rid of VS warnings about mbstowcs deprecation (1560),
-    as well as some other warnings.
-- operator== for concurrent_vector::iterator fixed to work correctly
-    with different vector instances.
-
-------------------------------------------------------------------------
-TBB 2.1 Update 2 commercial-aligned release
-
-Changes (w.r.t. TBB 2.1 U1 commercial-aligned release):
-
-- Incorporates all open-source-release changes down to TBB 2.1 U1,
-    except for:
-    - 20081019 addition of enumerable_thread_specific;
-- Warning level for Microsoft* Visual C++* compiler raised to /W4 /Wp64;
-    warnings found on this level were cleaned or suppressed.
-- Added TBB_runtime_interface_version API function.
-- Added new example: pipeline/square.
-- Added exception handling and cancellation support
-    for parallel_do and pipeline.
-- Added copy constructor and [begin,end) constructor to concurrent_queue.
-- Added some support for beta version of Intel(R) Parallel Amplifier.
-- Added scripts to set environment for cross-compilation of 32-bit
-    applications on 64-bit Linux with Intel(R) C++ Compiler.
-- Fixed semantics of concurrent_vector::clear() to not deallocate
-    internal arrays. Fixed compact() to perform such deallocation later.
-- Fixed the issue with atomic<T*> when T is incomplete type.
-- Improved support for PowerPC* Macintosh*, including the fix
-    for a bug in masked compare-and-swap reported by a customer.
-- As usual, a number of other improvements everywhere.
-
-------------------------------------------------------------------------
-20081109 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Added new serial out of order filter for tbb::pipeline.
-- Fixed the issue with atomic<T*>::operator= reported at the forum.
-- Fixed the issue with using tbb::task::self() in task destructor
-    reported at the forum.
-- A number of other improvements to code, tests, makefiles, examples
-    and documents.
-
-Open-source contributions integrated:
-- Changes in the memory allocator were partially integrated.
-
-------------------------------------------------------------------------
-20081019 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Introduced enumerable_thread_specific<T>.  This new class provides a
-    wrapper around native thread local storage as well as iterators and
-    ranges for accessing the thread local copies (1533).
-- Improved support for Intel(R) Threading Analysis Tools
-    on Intel(R) 64 architecture.
-- Dependency from Microsoft* CRT was integrated to the libraries using
-    manifests, to avoid issues if called from code that uses different
-    version of Visual C++* runtime than the library.
-- Introduced new defines TBB_USE_ASSERT, TBB_USE_DEBUG,
-    TBB_USE_PERFORMANCE_WARNINGS, TBB_USE_THREADING_TOOLS.
-- A number of other improvements to code, tests, makefiles, examples
-    and documents.
-
-Open-source contributions integrated:
-
-- linker optimization: /incremental:no .
-
-------------------------------------------------------------------------
-20080925 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Same fix for a memory leak in the memory allocator as in TBB 2.1 U1.
-- Improved support for lambda functions.
-- Fixed more concurrent_queue issues reported at the forum.
-- A number of other improvements to code, tests, makefiles, examples
-    and documents.
-
-------------------------------------------------------------------------
-TBB 2.1 Update 1 commercial-aligned release
-
-Changes (w.r.t. TBB 2.1 commercial-aligned release):
-
-- Fixed small memory leak in the memory allocator.
-- Incorporates all open-source-release changes since TBB 2.1, except for:
-    - 20080825 changes for parallel_do;
-
-------------------------------------------------------------------------
-20080825 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Added exception handling and cancellation support for parallel_do.
-- Added default HashCompare template argument for concurrent_hash_map.
-- Fixed concurrent_queue.clear() issues due to incorrect assumption
-    about clear() being private method.
-- Added the possibility to use TBB in applications that change
-    default calling conventions (Windows* only).
-- Many improvements to code, tests, examples, makefiles and documents.
-
-Bugs fixed:
-
-- 120, 130 - memset declaration missed in concurrent_hash_map.h
-
-------------------------------------------------------------------------
-20080724 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Inline assembly for atomic operations improved for gcc 4.3
-- A few more improvements to the code.
-
-------------------------------------------------------------------------
-20080709 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- operator=() was added to the tbb_thread class according to
-    the current working draft for std::thread.
-- Recognizing SPARC* in makefiles for Linux* and Sun Solaris*.
-
-Bugs fixed:
-
-- 127 - concurrent_hash_map::range fixed to split correctly.
-
-Open-source contributions integrated:
-
-- fix_set_midpoint.diff by jyasskin
-- SPARC* support in makefiles by Raf Schietekat
-
-------------------------------------------------------------------------
-20080622 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Fixed a hang that rarely happened on Linux
-    during deinitialization of the TBB scheduler.
-- Improved support for Intel(R) Thread Checker.
-- A few more improvements to the code.
-
-------------------------------------------------------------------------
-TBB 2.1 commercial-aligned release
-
-Changes (w.r.t. TBB 2.0 U3 commercial-aligned release):
-
-- All open-source-release changes down to, and including, TBB 2.0 below,
-    were incorporated into this release.
-
-------------------------------------------------------------------------
-20080605 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Explicit control of exported symbols by version scripts added on Linux.
-- Interfaces polished for exception handling & algorithm cancellation.
-- Cache behavior improvements in the scalable allocator.
-- Improvements in text_filter, polygon_overlay, and other examples.
-- A lot of other stability improvements in code, tests, and makefiles.
-- First release where binary packages include headers/docs/examples, so
-    binary packages are now self-sufficient for using TBB.
-
-Open-source contributions integrated:
-
-- atomics patch (partially).
-- tick_count warning patch.
-
-Bugs fixed:
-
-- 118 - fix for boost compatibility.
-- 123 - fix for tbb_machine.h.
-
-------------------------------------------------------------------------
-20080512 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Fixed a problem with backward binary compatibility
-    of debug Linux builds.
-- Sun* Studio* support added.
-- soname support added on Linux via linker script. To restore backward
-    binary compatibility, *.so -> *.so.2 softlinks should be created.
-- concurrent_hash_map improvements - added few new forms of insert()
-    method and fixed precondition and guarantees of erase() methods.
-    Added runtime warning reporting about bad hash function used for
-    the container. Various improvements for performance and concurrency.
-- Cancellation mechanism reworked so that it does not hurt scalability.
-- Algorithm parallel_do reworked. Requirement for Body::argument_type
-    definition removed, and work item argument type can be arbitrarily
-    cv-qualified.
-- polygon_overlay example added.
-- A few more improvements to code, tests, examples and Makefiles.
-
-Open-source contributions integrated:
-
-- Soname support patch for Bugzilla #112.
-
-Bugs fixed:
-
-- 112 - fix for soname support.
-
-------------------------------------------------------------------------
-TBB 2.0 U3 commercial-aligned release (package 017, April 20, 2008)
-
-Corresponds to commercial 019 (for Linux*, 020; for Mac OS* X, 018)
-packages.
-
-Changes (w.r.t. TBB 2.0 U2 commercial-aligned release):
-
-- Does not contain open-source-release changes below; this release is
-    only a minor update of TBB 2.0 U2.
-- Removed spin-waiting in pipeline and concurrent_queue.
-- A few more small bug fixes from open-source releases below.
-
-------------------------------------------------------------------------
-20080408 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- count_strings example reworked: new word generator implemented, hash
-    function replaced, and tbb_allocator is used with std::string class.
-- Static methods of spin_rw_mutex were replaced by normal member
-    functions, and the class name was versioned.
-- tacheon example was renamed to tachyon.
-- Improved support for Intel(R) Thread Checker.
-- A few more minor improvements.
-
-Open-source contributions integrated:
-
-- Two sets of Sun patches for IA Solaris support.
-
-------------------------------------------------------------------------
-20080402 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Exception handling and cancellation support for tasks and algorithms
-    fully enabled.
-- Exception safety guaranties defined and fixed for all concurrent
-    containers.
-- User-defined memory allocator support added to all concurrent
-    containers.
-- Performance improvement of concurrent_hash_map, spin_rw_mutex.
-- Critical fix for a rare race condition during scheduler
-    initialization/de-initialization.
-- New methods added for concurrent containers to be closer to STL,
-    as well as automatic filters removal from pipeline
-    and __TBB_AtomicAND function.
-- The volatile keyword dropped from where it is not really needed.
-- A few more minor improvements.
-
-------------------------------------------------------------------------
-20080319 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Support for gcc version 4.3 was added.
-- tbb_thread class, near compatible with std::thread expected in C++0x,
-    was added.
-
-Bugs fixed:
-
-- 116 - fix for compilation issues with gcc version 4.2.1.
-- 120 - fix for compilation issues with gcc version 4.3.
-
-------------------------------------------------------------------------
-20080311 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- An enumerator added for pipeline filter types (serial vs. parallel).
-- New task_scheduler_observer class introduced, to observe when
-    threads start and finish interacting with the TBB task scheduler.
-- task_scheduler_init reverted to not use internal versioned class;
-    binary compatibility guaranteed with stable releases only.
-- Various improvements to code, tests, examples and Makefiles.
-
-------------------------------------------------------------------------
-20080304 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Task-to-thread affinity support, previously kept under a macro,
-    now fully legalized.
-- Work-in-progress on cache_aligned_allocator improvements.
-- Pipeline really supports parallel input stage; it's no more serialized.
-- Various improvements to code, tests, examples and Makefiles.
-
-Bugs fixed:
-
-- 119 - fix for scalable_malloc sometimes failing to return a big block.
-- TR575 - fixed a deadlock occurring on Windows in startup/shutdown
-    under some conditions.
-
-------------------------------------------------------------------------
-20080226 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Introduced tbb_allocator to select between standard allocator and
-    tbb::scalable_allocator when available.
-- Removed spin-waiting in pipeline and concurrent_queue.
-- Improved performance of concurrent_hash_map by using tbb_allocator.
-- Improved support for Intel(R) Thread Checker.
-- Various improvements to code, tests, examples and Makefiles.
-
-------------------------------------------------------------------------
-TBB 2.0 U2 commercial-aligned release (package 017, February 14, 2008)
-
-Corresponds to commercial 017 (for Linux*, 018; for Mac OS* X, 016)
-packages.
-
-Changes (w.r.t. TBB 2.0 U1 commercial-aligned release):
-
-- Does not contain open-source-release changes below; this release is
-    only a minor update of TBB 2.0 U1.
-- Add support for Microsoft* Visual Studio* 2008, including binary
-    libraries and VS2008 projects for examples.
-- Use SwitchToThread() not Sleep() to yield threads on Windows*.
-- Enhancements to Doxygen-readable comments in source code.
-- A few more small bug fixes from open-source releases below.
-
-Bugs fixed:
-
-- TR569 - Memory leak in concurrent_queue.
-
-------------------------------------------------------------------------
-20080207 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Improvements and minor fixes in VS2008 projects for examples.
-- Improvements in code for gating worker threads that wait for work,
-  previously consolidated under #if IMPROVED_GATING, now legalized.
-- Cosmetic changes in code, examples, tests.
-
-Bugs fixed:
-
-- 113 - Iterators and ranges should be convertible to their const
-    counterparts.
-- TR569 - Memory leak in concurrent_queue.
-
-------------------------------------------------------------------------
-20080122 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Updated examples/parallel_for/seismic to improve the visuals and to
-    use the affinity_partitioner (20071127 and forward) for better
-    performance.
-- Minor improvements to unittests and performance tests.
-
-------------------------------------------------------------------------
-20080115 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Cleanup, simplifications and enhancements to the Makefiles for
-    building the libraries (see build/index.html for high-level
-    changes) and the examples.
-- Use SwitchToThread() not Sleep() to yield threads on Windows*.
-- Engineering work-in-progress on exception safety/support.
-- Engineering work-in-progress on affinity_partitioner for
-    parallel_reduce.
-- Engineering work-in-progress on improved gating for worker threads
-    (idle workers now block in the OS instead of spinning).
-- Enhancements to Doxygen-readable comments in source code.
-
-Bugs fixed:
-
-- 102 - Support for parallel build with gmake -j
-- 114 - /Wp64 build warning on Windows*.
-
-------------------------------------------------------------------------
-20071218 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Full support for Microsoft* Visual Studio* 2008 in open-source.
-    Binaries for vc9/ will be available in future stable releases.
-- New recursive_mutex class.
-- Full support for 32-bit PowerMac including export files for builds.
-- Improvements to parallel_do.
-
-------------------------------------------------------------------------
-20071206 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Support for Microsoft* Visual Studio* 2008 in building libraries
-    from source as well as in vc9/ projects for examples.
-- Small fixes to the affinity_partitioner first introduced in 20071127.
-- Small fixes to the thread-stack size hook first introduced in 20071127.
-- Engineering work in progress on concurrent_vector.
-- Engineering work in progress on exception behavior.
-- Unittest improvements.
-
-------------------------------------------------------------------------
-20071127 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- Task-to-thread affinity support (affinity partitioner) first appears.
-- More work on concurrent_vector.
-- New parallel_do algorithm (function-style version of parallel while)
-    and parallel_do/parallel_preorder example.
-- New task_scheduler_init() hooks for getting default_num_threads() and
-    for setting thread stack size.
-- Support for weak memory consistency models in the code base.
-- Futex usage in the task scheduler (Linux).
-- Started adding 32-bit PowerMac support.
-- Intel(R) 9.1 compilers are now the base supported Intel(R) compiler
-    version.
-- TBB libraries added to link line automatically on Microsoft Windows*
-    systems via #pragma comment linker directives.
-
-Open-source contributions integrated:
-
-- FreeBSD platform support patches.
-- AIX weak memory model patch.
-
-Bugs fixed:
-
-- 108 - Removed broken affinity.h reference.
-- 101 - Does not build on Debian Lenny (replaced arch with uname -m).
-
-------------------------------------------------------------------------
-20071030 open-source release
-
-Changes (w.r.t. previous open-source release):
-
-- More work on concurrent_vector.
-- Better support for building with -Wall -Werror (or not) as desired.
-- A few fixes to eliminate extraneous warnings.
-- Begin introduction of versioning hooks so that the internal/API
-    version is tracked via TBB_INTERFACE_VERSION.  The newest binary
-    libraries should always work with previously-compiled code when-
-    ever possible.
-- Engineering work in progress on using futex inside the mutexes (Linux).
-- Engineering work in progress on exception behavior.
-- Engineering work in progress on a new parallel_do algorithm.
-- Unittest improvements.
-
-------------------------------------------------------------------------
-20070927 open-source release
-
-Changes (w.r.t. TBB 2.0 U1 commercial-aligned release):
-
-- Minor update to TBB 2.0 U1 below.
-- Begin introduction of new concurrent_vector interfaces not released
-    with TBB 2.0 U1.
-
-------------------------------------------------------------------------
-TBB 2.0 U1 commercial-aligned release (package 014, October 1, 2007)
-
-Corresponds to commercial 014 (for Linux*, 016) packages.
-
-Changes (w.r.t. TBB 2.0 commercial-aligned release):
-
-- All open-source-release changes down to, and including, TBB 2.0 below,
-    were incorporated into this release.
-- Made a number of changes to the officially supported OS list:
-    Added Linux* OSs:
-	Asianux* 3, Debian* 4.0, Fedora Core* 6, Fedora* 7,
-	Turbo Linux* 11, Ubuntu* 7.04;
-    Dropped Linux* OSs:
-	Asianux* 2, Fedora Core* 4, Haansoft* Linux 2006 Server,
-	Mandriva/Mandrake* 10.1, Miracle Linux* 4.0,
-	Red Flag* DC Server 5.0;
-    Only Mac OS* X 10.4.9 (and forward) and Xcode* tool suite 2.4.1 (and
-	forward) are now supported.
-- Commercial installers on Linux* fixed to recommend the correct
-    binaries to use in more cases, with less unnecessary warnings.
-- Changes to eliminate spurious build warnings.
-
-Open-source contributions integrated:
-
-- Two small header guard macro patches; it also fixed bug #94.
-- New blocked_range3d class.
-
-Bugs fixed:
-
-- 93 - Removed misleading comments in task.h.
-- 94 - See above.
-
-------------------------------------------------------------------------
-20070815 open-source release
-
-Changes:
-
-- Changes to eliminate spurious build warnings.
-- Engineering work in progress on concurrent_vector allocator behavior.
-- Added hooks to use the Intel(R) compiler code coverage tools.
-
-Open-source contributions integrated:
-
-- Mac OS* X build warning patch.
-
-Bugs fixed:
-
-- 88 - Fixed TBB compilation errors if both VS2005 and Windows SDK are
-    installed.
-
-------------------------------------------------------------------------
-20070719 open-source release
-
-Changes:
-
-- Minor update to TBB 2.0 commercial-aligned release below.
-- Changes to eliminate spurious build warnings.
-
-------------------------------------------------------------------------
-TBB 2.0 commercial-aligned release (package 010, July 19, 2007)
-
-Corresponds to commercial 010 (for Linux*, 012) packages.
-
-- TBB open-source debut release.
-
-------------------------------------------------------------------------
-TBB 1.1 commercial release (April 10, 2007)
-
-Changes (w.r.t. TBB 1.0 commercial release):
-
-- auto_partitioner which offered an automatic alternative to specifying
-    a grain size parameter to estimate the best granularity for tasks.
-- The release was added to the Intel(R) C++ Compiler 10.0 Pro.
-
-------------------------------------------------------------------------
-TBB 1.0 Update 2 commercial release
-
-Changes (w.r.t. TBB 1.0 Update 1 commercial release):
-
-- Mac OS* X 64-bit support added.
-- Source packages for commercial releases introduced.
-
-------------------------------------------------------------------------
-TBB 1.0 Update 1 commercial-aligned release
-
-Changes (w.r.t. TBB 1.0 commercial release):
-
-- Fix for critical package issue on Mac OS* X.
-
-------------------------------------------------------------------------
-TBB 1.0 commercial release (August 29, 2006)
-
-Changes (w.r.t. TBB 1.0 beta commercial release):
-
-- New namespace (and compatibility headers for old namespace).
-    Namespaces are tbb and tbb::internal and all classes are in the
-    underscore_style not the WindowsStyle.
-- New class: scalable_allocator (and cache_aligned_allocator using that
-    if it exists).
-- Added parallel_for/tacheon example.
-- Removed C-style casts from headers for better C++ compliance.
-- Bug fixes.
-- Documentation improvements.
-- Improved performance of the concurrent_hash_map class.
-- Upgraded parallel_sort() to support STL-style random-access iterators
-    instead of just pointers.
-- The Windows vs7_1 directories renamed to vs7.1 in examples.
-- New class: spin version of reader-writer lock.
-- Added push_back() interface to concurrent_vector().
-
-------------------------------------------------------------------------
-TBB 1.0 beta commercial release
-
-Initial release.
-
-Features / APIs:
-
-- Concurrent containers: ConcurrentHashTable, ConcurrentVector,
-    ConcurrentQueue.
-- Parallel algorithms: ParallelFor, ParallelReduce, ParallelScan,
-    ParallelWhile, Pipeline, ParallelSort.
-- Support: AlignedSpace, BlockedRange (i.e., 1D), BlockedRange2D
-- Task scheduler with multi-master support.
-- Atomics: read, write, fetch-and-store, fetch-and-add, compare-and-swap.
-- Locks: spin, reader-writer, queuing, OS-wrapper.
-- Memory allocation: STL-style memory allocator that avoids false
-    sharing.
-- Timers.
-
-Tools Support:
-- Intel(R) Thread Checker 3.0.
-- Intel(R) Thread Profiler 3.0.
-
-Documentation:
-- First Use Documents: README.txt, INSTALL.txt, Release_Notes.txt,
-    Doc_Index.html, Getting_Started.pdf, Tutorial.pdf, Reference.pdf.
-- Class hierarchy HTML pages (Doxygen).
-- Tree of index.html pages for navigating the installed package, esp.
-    for the examples.
-
-Examples:
-- One for each of these TBB features: ConcurrentHashTable, ParallelFor,
-    ParallelReduce, ParallelWhile, Pipeline, Task.
-- Live copies of examples from Getting_Started.pdf.
-- TestAll example that exercises every class and header in the package
-    (i.e., a "liveness test").
-- Compilers: see Release_Notes.txt.
-- APIs: OpenMP, WinThreads, Pthreads.
-
-Packaging:
-- Package for Windows installs IA-32 and EM64T bits.
-- Package for Linux installs IA-32, EM64T and IPF bits.
-- Package for Mac OS* X installs IA-32 bits.
-- All packages support Intel(R) software setup assistant (ISSA) and
-    install-time FLEXlm license checking.
-- ISSA support allows license file to be specified directly in case of
-    no Internet connection or problems with IRC or serial #s.
-- Linux installer allows root or non-root, RPM or non-RPM installs.
-- FLEXlm license servers (for those who need floating/counted licenses)
-    are provided separately on Intel(R) Premier.
-
-------------------------------------------------------------------------
-Intel and Cilk are registered trademarks or trademarks of Intel Corporation or its
-subsidiaries in the United States and other countries.
-
-* Other names and brands may be claimed as the property of others.
diff --git a/tbb-2019-attributes.patch b/tbb-2019-attributes.patch
new file mode 100644
index 0000000..ebb71fb
--- /dev/null
+++ b/tbb-2019-attributes.patch
@@ -0,0 +1,31 @@
+diff -up tbb-2019_U7/src/tbbmalloc/proxy.cpp.orig tbb-2019_U7/src/tbbmalloc/proxy.cpp
+--- tbb-2019_U7/src/tbbmalloc/proxy.cpp.orig	2019-05-23 04:35:29.000000000 -0600
++++ tbb-2019_U7/src/tbbmalloc/proxy.cpp	2019-05-23 18:25:22.360659477 -0600
+@@ -146,7 +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
+ */
+-extern "C" void *__TBB_malloc_proxy(size_t) __attribute__ ((alias ("malloc")));
++extern "C" void *__TBB_malloc_proxy(size_t) __attribute__ ((alias ("malloc"), copy (malloc)));
+ 
+ static void *orig_msize;
+ 
+@@ -293,11 +293,11 @@ void *aligned_alloc(size_t alignment, si
+ // 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.
+-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")));
++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.  Wed May 23 18:26:03 2019
diff --git a/tbb-2019-dont-snip-Wall.patch b/tbb-2019-dont-snip-Wall.patch
new file mode 100644
index 0000000..3c0e884
--- /dev/null
+++ b/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
+@@ -126,7 +126,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
+@@ -266,7 +266,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/tbb-2019-fetchadd4.patch b/tbb-2019-fetchadd4.patch
new file mode 100644
index 0000000..72b0d09
--- /dev/null
+++ b/tbb-2019-fetchadd4.patch
@@ -0,0 +1,12 @@
+diff -up tbb-2019_U9/src/tbb/tools_api/ittnotify_config.h.orig tbb-2019_U9/src/tbb/tools_api/ittnotify_config.h
+--- tbb-2020.1/src/tbb/tools_api/ittnotify_config.h.orig	2020-01-21 04:26:46.000000000 -0700
++++ tbb-2020.1/src/tbb/tools_api/ittnotify_config.h	2020-01-22 20:59:51.911673011 -0700
+@@ -335,7 +335,7 @@ ITT_INLINE long
+ __itt_interlocked_increment(volatile long* ptr) ITT_INLINE_ATTRIBUTE;
+ ITT_INLINE long __itt_interlocked_increment(volatile long* ptr)
+ {
+-    return __TBB_machine_fetchadd4(ptr, 1) + 1L;
++    return __atomic_fetch_add(ptr, 1L, __ATOMIC_SEQ_CST) + 1L;
+ }
+ #endif /* ITT_SIMPLE_INIT */
+ 
diff --git a/tbb-2019-test-task-scheduler-init.patch b/tbb-2019-test-task-scheduler-init.patch
new file mode 100644
index 0000000..9eca318
--- /dev/null
+++ b/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/tbb-2019-test-thread-monitor.patch b/tbb-2019-test-thread-monitor.patch
new file mode 100644
index 0000000..27d6a19
--- /dev/null
+++ b/tbb-2019-test-thread-monitor.patch
@@ -0,0 +1,47 @@
+--- tbb-2019_U8/src/rml/test/test_thread_monitor.cpp.orig	2019-06-06 04:29:15.000000000 -0600
++++ tbb-2019_U8/src/rml/test/test_thread_monitor.cpp	2019-08-27 11:36:44.253575223 -0600
+@@ -33,21 +33,21 @@ public:
+     }
+     typedef rml::internal::thread_monitor thread_monitor;
+     thread_monitor monitor;
+-    volatile int request;
+-    volatile int ack;
+-    volatile unsigned clock;
+-    volatile unsigned stamp;
++    tbb::atomic<int> request;
++    tbb::atomic<int> ack;
++    tbb::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 );
++                ++clock;
+                 monitor.commit_wait(c);
+             } else
+                 monitor.cancel_wait();
+@@ -60,7 +60,7 @@ void ThreadState::loop() {
+                     rml::internal::thread_monitor::yield();
+             }
+             int r = request;
+-            ack = request;
++            ack = r;
+             if( !r ) return;
+         }
+     }
+@@ -89,7 +89,7 @@ int TestMain () {
+                                 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/tbb-3.0-cxxflags.patch b/tbb-3.0-cxxflags.patch
deleted file mode 100644
index 0794e77..0000000
--- a/tbb-3.0-cxxflags.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -up tbb30_20110419oss/build/linux.gcc.inc\~ tbb30_20110419oss/build/linux.gcc.inc
---- tbb30_20110419oss/build/linux.gcc.inc~	2011-04-19 13:48:58.000000000 +0200
-+++ tbb30_20110419oss/build/linux.gcc.inc	2011-07-26 14:02:48.482006056 +0200
-@@ -59,10 +59,10 @@ ifneq (,$(shell gcc -dumpversion | egrep
- endif
- 
- ifeq ($(cfg), release)
--        CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
-+        CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD $(CXXFLAGS)
- endif
- ifeq ($(cfg), debug)
--        CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
-+        CPLUS_FLAGS = $(CXXFLAGS) -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
- endif
- 
- ifneq (00,$(lambdas)$(cpp0x))
-
-Diff finished.  Tue Feb 26 13:00:13 2013
diff --git a/tbb-4.0-mfence.patch b/tbb-4.0-mfence.patch
deleted file mode 100644
index a463bc9..0000000
--- a/tbb-4.0-mfence.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -up tbb40_20110809oss/include/tbb/machine/linux_ia32.h\~ tbb40_20110809oss/include/tbb/machine/linux_ia32.h
---- tbb40_20110809oss/include/tbb/machine/linux_ia32.h~	2011-08-24 15:51:56.000000000 +0200
-+++ tbb40_20110809oss/include/tbb/machine/linux_ia32.h	2011-10-18 15:04:01.994271994 +0200
-@@ -42,7 +42,14 @@
- #define __TBB_control_consistency_helper() __TBB_compiler_fence()
- #define __TBB_acquire_consistency_helper() __TBB_compiler_fence()
- #define __TBB_release_consistency_helper() __TBB_compiler_fence()
--#define __TBB_full_memory_fence()          __asm__ __volatile__("mfence": : :"memory")
-+#define __TBB_full_memory_fence()          __TBB_full_memory_fence_imp()
-+inline void __TBB_full_memory_fence_imp() {
-+    int tmp;
-+    __asm__ __volatile__("xchg %0,%0"
-+			 : "=r"(tmp)
-+			 : "r"(tmp)
-+			 : "memory");
-+}
- 
- #if __TBB_ICC_ASM_VOLATILE_BROKEN
- #define __TBB_VOLATILE
-
-Diff finished.  Tue Oct 18 15:04:09 2011
diff --git a/tbb.pc b/tbb.pc
deleted file mode 100644
index d3bae0a..0000000
--- a/tbb.pc
+++ /dev/null
@@ -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: @VERSION@
-Libs: -ltbb
diff --git a/tbb.spec b/tbb.spec
index b1426c1..71a1309 100644
--- a/tbb.spec
+++ b/tbb.spec
@@ -1,252 +1,173 @@
-%define	reldate	20140122
-%define	major	4
-%define	minor	2
-%define	update	3
-%define	dotver	%{major}.%{minor}
-%define oname	tbb%{major}%{minor}_%{reldate}oss
-
-%define	tbbmaj	2
-%define	libtbb	%mklibname tbb %{tbbmaj}
-%define	libtbm	%mklibname tbbmalloc %{tbbmaj}
-%define	libtbmp	%mklibname tbbmalloc_proxy %{tbbmaj}
-%define	devname	%mklibname -d tbb
+%define major 2
 
-Name:		tbb
-Summary:	The Threading Building Blocks library abstracts low-level threading details
-Version:	%{dotver}
-Release:	1.%{reldate}.3
-License:	GPLv2 with exceptions
-Group:		Development/C++
-URL:		http://threadingbuildingblocks.org/
+%define libtbb %mklibname tbb %{major}
+%define libtbbmalloc %mklibname tbbmalloc %{major}
+%define libtbbmalloc_proxy %mklibname tbbmalloc_proxy %{major}
+%define libirml %mklibname irml 1
+%define devname %mklibname -d tbb
 
-Source0:	http://threadingbuildingblocks.org/sites/default/files/software_releases/source/%{oname}_src.tgz
+Summary:	Thread Building Blocks
+Name:		tbb
+Version:	2020.1
+Release:	1
+Url:		http://threadbuildingblocks.org/
+Source0:	https://github.com/intel/tbb/archive/v%{version}/%{name}-%{version}.tar.gz
+License:	Apache 2.0
+Group:		System/Libraries
+BuildRequires:	make
+BuildRequires:	doxygen graphviz
+BuildRequires:	pkgconfig(python3)
+BuildRequires:	swig
+# 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:		https://src.fedoraproject.org/rpms/tbb/raw/master/f/tbb-2019-dont-snip-Wall.patch
+# Make attributes of aliases match those on the aliased function.
+Patch1:		https://src.fedoraproject.org/rpms/tbb/raw/master/f/tbb-2019-attributes.patch
+# Fix test-thread-monitor, which had multiple bugs that could (and did, on
+# ppc64le) result in a hang.
+Patch2:		https://src.fedoraproject.org/rpms/tbb/raw/master/f/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:		https://src.fedoraproject.org/rpms/tbb/raw/master/f/tbb-2019-test-task-scheduler-init.patch
+# Fix compilation on aarch64 and s390x.  See
+# https://github.com/intel/tbb/issues/186
+Patch4:		https://src.fedoraproject.org/rpms/tbb/raw/master/f/tbb-2019-fetchadd4.patch
 
-# These two are downstream sources.
-Source6:	tbb.pc
-Source7:	tbbmalloc.pc
-Source8:	tbbmalloc_proxy.pc
+%description
+Thread Building Blocks
 
-# Propagate CXXFLAGS variable into flags used when compiling C++.
-# This so that RPM_OPT_FLAGS are respected.
-Patch1:		tbb-3.0-cxxflags.patch
+%package -n %{libtbb}
+Summary:	Thread Building Blocks library
+Group:		System/Libraries
 
-# Replace mfence with xchg (for 32-bit builds only) so that TBB
-# compiles and works supported hardware.  mfence was added with SSE2,
-# which we still don't assume.
-Patch2:		tbb-4.0-mfence.patch
+%description -n %{libtbb}
+Thread Building Blocks library
 
-ExclusiveArch:	%{ix86} %{x86_64} ia64 ppc ppc64 %{armx} %{riscv}
+%files -n %{libtbb}
+%{_libdir}/libtbb.so.%{major}
 
-%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 -n	%{libtbb}
-Summary:	Threading Building Blocks
+%package -n %{libtbbmalloc}
+Summary:	Thread Building Blocks library
 Group:		System/Libraries
 
-%description -n	%{libtbb}
-The Threading Building Blocks library abstracts low-level threading details
+%description -n %{libtbbmalloc}
+Thread Building Blocks library
 
-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.
+%files -n %{libtbbmalloc}
+%{_libdir}/libtbbmalloc.so.%{major}
 
-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 -n	%{libtbm}
-Summary:	Threading Building Blocks Scalable Allocator
+%package -n %{libtbbmalloc_proxy}
+Summary:	Thread Building Blocks library
 Group:		System/Libraries
 
-%description -n	%{libtbm}
-Implementation of Scalable Memory Allocator of Threading Building Blocks.
+%description -n %{libtbbmalloc_proxy}
+Thread Building Blocks library
+
+%files -n %{libtbbmalloc_proxy}
+%{_libdir}/libtbbmalloc_proxy.so.%{major}
 
-%package -n	%{libtbmp}
-Summary:	Threading Building Blocks Scallable Malloc Proxy
+%package -n %{libirml}
+Summary:	Thread Building Blocks library
 Group:		System/Libraries
 
-%description -n	%{libtbmp}
-Implementation of proxy that redirects memory allocation calls to TBB Scalable
-Memory Allocator.
+%description -n %{libirml}
+Thread Building Blocks library
+
+%files -n %{libirml}
+%{_libdir}/libirml.so.1
 
-%package -n	%{devname}
-Summary:	The Threading Building Blocks C++ headers and shared development libraries
-Group:		Development/C++
+%package -n %{devname}
+Summary:	Development files for the Thread Building Blocks library
+Group:		Development/C++ and C
 Requires:	%{libtbb} = %{EVRD}
-Requires:	%{libtbm} = %{EVRD}
-Requires:	%{libtbmp} = %{EVRD}
+Requires:	%{libtbbmalloc} = %{EVRD}
+Requires:	%{libtbbmalloc_proxy} = %{EVRD}
+Requires:	%{libirml} = %{EVRD}
 Provides:	%{name}-devel = %{EVRD}
 
-%description -n	%{devname}
-Header files and shared object symlinks for the Threading Building
-Blocks (TBB) C++ libraries.
-
-%package	doc
-Summary:	The Threading Building Blocks documentation
-Group:		Books/Computer books
-
-%description	doc
-PDF documentation for the user of the Threading Building Block (TBB)
-C++ library.
-
-%prep
-%setup -q -n %{oname}
-%patch1 -p1
-%patch2 -p1
-
-%build
-%make CXXFLAGS="%{optflags}" LDFLAGS="%{ldflags}" tbb_build_prefix=obj
-for file in %{SOURCE6} %{SOURCE7} %{SOURCE8}; do
-    sed 's/@VERSION@/%{major}.%{minor}.%{update}/' ${file} > $(basename ${file})
-done
-
-%install
-pushd build/obj_release
-    for file in libtbb*.so.%{tbbmaj}; do
-	install -p -m755 ${file} -D %{buildroot}%{_libdir}/${file}
-	ln -s ${file} %{buildroot}%{_libdir}/$(echo ${file}|cut -d. -f1-2)
-    done
-popd
-
-pushd include
-    find tbb -type f ! -name \*.htm\* -exec \
-	install -p -m 644 {} -D %{buildroot}%{_includedir}/{} \
-    \;
-popd
-
-for file in tbb*.pc; do
-    install -p -m644 ${file} -D %{buildroot}%{_libdir}/pkgconfig/${file}
-done
-
-%files -n %{libtbb}
-%{_libdir}/libtbb.so.%{tbbmaj}*
-
-%files -n %{libtbm}
-%{_libdir}/libtbbmalloc.so.%{tbbmaj}*
-
-%files -n %{libtbmp}
-%{_libdir}/libtbbmalloc_proxy.so.%{tbbmaj}*
+%description -n %{devname}
+Development files for the Thread Building Blocks library
 
 %files -n %{devname}
-%doc COPYING CHANGES
+%doc html
 %{_includedir}/tbb
-%{_libdir}/libtbb*.so
-%{_libdir}/pkgconfig/tbb*.pc
-
-%files doc
-%doc doc/Release_Notes.txt
-%doc doc/html
-
-%changelog
-* Fri Feb 28 2014 Per Øyvind Karlsen <proyvind@moondrake.org> 4.2-1.20140122.1
-- initial mdk release adapted from Fedora
-
-* Sun Jan 12 2014 Peter Robinson <pbrobinson@fedoraproject.org> 4.1-6.20130314
-- Build on aarch64, minor spec cleanups
-
-* Tue Dec  3 2013 Petr Machata <pmachata@redhat.com> - 4.1-5.20130314
-- Fix building with -Werror=format-security (tbb-4.1-dont-snip-Wall.patch)
-
-* Thu Oct  3 2013 Petr Machata <pmachata@redhat.com> - 4.1-4.20130314
-- Fix %%install to also install include files that are not named *.h
-
-* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.1-3.20130314
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
-
-* Tue May 28 2013 Petr Machata <pmachata@redhat.com> - 4.1-3.20130314
-- Enable ARM arches
-
-* Wed May 22 2013 Petr Machata <pmachata@redhat.com> - 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 <pmachata@redhat.com> - 4.1-1.20130314
-- Rebase to 4.1 update 3
-
-* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-7.20120408
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
-
-* Tue Aug 28 2012 Petr Machata <pmachata@redhat.com> - 4.0-6.20120408
-- Fix build on PowerPC
-
-* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-5.20120408
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
-
-* Thu Jun  7 2012 Petr Machata <pmachata@redhat.com> - 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 <karsten@redhat.com> 4.0-3.20110809
-- tbb builds now on PPC(64)
-
-* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.0-2.20110809
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
-
-* Tue Oct 18 2011 Petr Machata <pmachata@redhat.com> - 4.0-1.20110809
-- Rebase to 4.0
-  - Port the mfence patch
-  - Refresh the documentation bundle
-
-* Tue Jul 26 2011 Petr Machata <pmachata@redhat.com> - 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 <rel-eng@lists.fedoraproject.org> - 2.2-3.20090809
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
-
-* Thu Jun 10 2010 Petr Machata <pmachata@redhat.com> - 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 <pmachata@redhat.com> - 2.2-1.20090809
-- New upstream 2.2
-- Resolves: #521571
+%{_includedir}/rml
+%{_includedir}/serial
+%{_libdir}/*.so
+%{_libdir}/cmake/tbb
+%{_libdir}/pkgconfig/*.pc
+
+%package -n python-%{name}
+Summary:	Python bindings for Thread Building Blocks
+Group:		System/Libraries
 
-* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-3.20080605
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+%description -n python-%{name}
+Python bindings for Thread Building Blocks
 
-* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1-2.20080605
-- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+%files -n python-%{name}
+%{python3_sitearch}/TBB*
+%{python3_sitearch}/tbb
+%{python3_sitearch}/__pycache__/TBB*
 
-* Fri Jun 13 2008 Petr Machata <pmachata@redhat.com> - 2.1-1.20080605
-- New upstream 2.1
-  - Drop soname patch, parallel make patch, and GCC 4.3 patch
+%prep
+%autosetup -p1
 
-* Wed Feb 13 2008 Petr Machata <pmachata@redhat.com> - 2.0-4.20070927
-- Review fixes
-  - Use updated URL
-  - More timestamp preservation
-- Initial import into Fedora CVS
+%build
+if echo %{__cc} | grep -q gcc; then
+	COMPILER=gcc
+else
+	# Workaround for clang bug
+	COMPILER=gcc #clang
+fi
+%make_build all compiler=$COMPILER stdver=c++2a \
+	CXXFLAGS="%{optflags} -DDO_ITT_NOTIFY -DUSE_PTHREAD" \
+	LDFLAGS="%{ldflags} -pthread"
+
+. build/*_release/tbbvars.sh
+cd python
+%make_build -C rml stdver=c++2a \
+	CPLUS_FLAGS="%{optflags} -DDO_ITT_NOTIFY -DUSE_PTHREAD" \
+	LDFLAGS="%{ldflags} -pthread"
+cp -a rml/libirml.so* .
+%py3_build
+cd -
+
+%make_build doxygen
 
-* Mon Feb 11 2008 Petr Machata <pmachata@redhat.com> - 2.0-3.20070927
-- Review fixes
-  - Preserve timestamp of installed files
-  - Fix soname not to contain "debug"
 
-* Tue Feb  5 2008 Petr Machata <pmachata@redhat.com> - 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
+%install
+mkdir -p %{buildroot}%{_libdir}/cmake %{buildroot}%{_libdir}/pkgconfig
+install -p -D -m 755 build/*_release/*.so.%{major} %{buildroot}%{_libdir}/
 
-* Mon Dec 17 2007 Petr Machata <pmachata@redhat.com> - 2.0-1.20070927
-- Initial package.
-- Using SONAME patch from Debian.
+cd %{buildroot}%{_libdir}
+for i in *.so.*; do
+	ln -s $i $(echo $i |sed -e 's,\.so\..*,.so,')
+done
+cd -
+
+cp -a include %{buildroot}%{_includedir}
+cp -a src/rml/include %{buildroot}%{_includedir}/rml
+
+find %{buildroot}%{_includedir} -name "*.html" |xargs rm -f
+
+. build/*_release/tbbvars.sh
+cd python
+%py3_install
+find %{buildroot} -name "*.py" |xargs chmod +x
+cp -a libirml.so.1 %{buildroot}%{_libdir}/
+ln -s libirml.so.1 %{buildroot}%{_libdir}/libirml.so
+cd -
+
+rm cmake/README.rst
+cp -a cmake %{buildroot}%{_libdir}/cmake/%{name}
+
+for i in tbb tbbmalloc tbbmalloc_proxy irml; do
+	cat >%{buildroot}%{_libdir}/pkgconfig/$i.pc <<EOF
+Name: Thread Building Blocks - $i
+Description: %{summary}
+URL: http://threadbuildingblocks.org/
+Version: %{version}
+Libs: -l$i
+EOF
+done
diff --git a/tbbmalloc.pc b/tbbmalloc.pc
deleted file mode 100644
index b8ef0ea..0000000
--- a/tbbmalloc.pc
+++ /dev/null
@@ -1,5 +0,0 @@
-Name: Threading Building Blocks Scalable Allocator
-Description: Implementation of Scalable Memory Allocator of Threading Building Blocks
-URL: http://www.threadingbuildingblocks.org/
-Version: @VERSION@
-Libs: -ltbbmalloc
diff --git a/tbbmalloc_proxy.pc b/tbbmalloc_proxy.pc
deleted file mode 100644
index 1508990..0000000
--- a/tbbmalloc_proxy.pc
+++ /dev/null
@@ -1,5 +0,0 @@
-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: @VERSION@
-Libs: -ltbbmalloc_proxy -ltbbmalloc
Not Available

benbullard79 [@T] cox.netThese *should* be OK1523d 12hrs
benbullard79 [@T] cox.netThese *should* be OK1523d 12hrs
benbullard79 [@T] cox.netThese *should* be OK1523d 12hrs