diff --git a/README.md b/README.md
index 38ddcfa16b2..536aaba80f9 100644
--- a/README.md
+++ b/README.md
@@ -28,7 +28,7 @@ Stan Math depends on four libraries:
- Boost (version 1.75.0): [Boost Home Page](https://www.boost.org)
- Eigen (version 3.3.9: [Eigen Home Page](https://eigen.tuxfamily.org/index.php?title=Main_Page)
- SUNDIALS (version 5.7.0): [Sundials Home Page](https://computation.llnl.gov/projects/sundials/sundials-software)
-- Intel TBB (version 2019_U8): [Intel TBB Home Page](https://www.threadingbuildingblocks.org)
+- Intel TBB (version 2020.3): [Intel TBB Home Page](https://www.threadingbuildingblocks.org)
These are distributed under the `lib/` subdirectory. Only these
versions of the dependent libraries have been tested with Stan Math.
@@ -92,7 +92,7 @@ statements are given to the compiler and the necessary libraries are
linked: `~/stan-dev/math` and `~/stan-dev/math/lib/eigen_3.3.9` and
`~/stan-dev/math/lib/boost_1.75.0` and
`~/stan-dev/math/lib/sundials_5.7.0/include` and
-`~/stan-dev/math/lib/tbb_2019_U8/include`. The
+`~/stan-dev/math/lib/tbb_2020.3/include`. The
`~/stan-dev/math/lib/tbb` directory is created by the `math-libs`
makefile target automatically and contains the dynamically loaded
Intel TBB library. The flags `-Wl,-rpath,...` instruct the linker to
diff --git a/lib/tbb_2019_U8/.gitattributes b/lib/tbb_2020.3/.gitattributes
similarity index 100%
rename from lib/tbb_2019_U8/.gitattributes
rename to lib/tbb_2020.3/.gitattributes
diff --git a/lib/tbb_2019_U8/.gitignore b/lib/tbb_2020.3/.gitignore
similarity index 94%
rename from lib/tbb_2019_U8/.gitignore
rename to lib/tbb_2020.3/.gitignore
index 13b5c5a11f4..864ef9779a5 100644
--- a/lib/tbb_2019_U8/.gitignore
+++ b/lib/tbb_2020.3/.gitignore
@@ -77,6 +77,8 @@ Thumbs.db
################################
CMakeCache.txt
CMakeFiles/
+cmake/TBBConfig.cmake
+cmake/TBBConfigVersion.cmake
# Other #
#########
@@ -85,3 +87,4 @@ CMakeFiles/
.svn
crash*
*.tmp
+/.vs
diff --git a/lib/tbb_2019_U8/CHANGES b/lib/tbb_2020.3/CHANGES
similarity index 96%
rename from lib/tbb_2019_U8/CHANGES
rename to lib/tbb_2020.3/CHANGES
index 6e7cb60fd9e..e96a9699588 100644
--- a/lib/tbb_2019_U8/CHANGES
+++ b/lib/tbb_2020.3/CHANGES
@@ -2,6 +2,121 @@
The list of most significant changes made over time in
Intel(R) Threading Building Blocks (Intel(R) TBB).
+Intel TBB 2020 Update 3
+TBB_INTERFACE_VERSION == 11103
+
+Changes (w.r.t. Intel TBB 2020 Update 2):
+
+Changes affecting backward compatibility:
+
+- Changed body type concept of the flow::input_node.
+ Set TBB_DEPRECATED_INPUT_NODE_BODY to 1 to compile with the previous
+ concept of the body type.
+
+Bugs fixed:
+
+- Fixed compilation errors in C++20 mode due to ambiguity of comparison
+ operators. Inspired by Barry Revzin
+ (https://github.com/oneapi-src/oneTBB/pull/251).
+
+Open-source contributions integrated:
+
+- Fixed an issue in TBBBuild.cmake that causes the build with no arguments
+ to fail (https://github.com/oneapi-src/oneTBB/pull/233) by tttapa.
+- Added cmake/{TBBConfig,TBBConfigVersion}.cmake to Git ignore list
+ (https://github.com/oneapi-src/oneTBB/pull/239) by Eisuke Kawashima.
+
+------------------------------------------------------------------------
+Intel TBB 2020 Update 2
+TBB_INTERFACE_VERSION == 11102
+
+Changes (w.r.t. Intel TBB 2020 Update 1):
+
+- Cross-allocator copying constructor and copy assignment operator for
+ concurrent_vector are deprecated.
+- Added input_node to the flow graph API. It acts like a source_node
+ except for being inactive by default; source_node is deprecated.
+- Allocator template parameter for flow graph nodes is deprecated. Set
+ TBB_DEPRECATED_FLOW_NODE_ALLOCATOR to 1 to avoid compilation errors.
+- Flow graph preview hetero-features are deprecated.
+
+Bugs fixed:
+
+- Fixed the task affinity mechanism to prevent unlimited memory
+ consumption in case the number of threads is explicitly decreased.
+- Fixed memory leak related NUMA support functionality in task_arena.
+
+------------------------------------------------------------------------
+Intel TBB 2020 Update 1
+TBB_INTERFACE_VERSION == 11101
+
+Changes (w.r.t. Intel TBB 2020):
+
+Preview features:
+
+- The NUMA support library (tbbbind) no more depends on the main
+ TBB library.
+
+Bugs fixed:
+
+- Fixed the issue of task_arena constraints not propagated on
+ copy construction.
+- Fixed TBBGet.cmake script broken by TBB package name changes
+ (https://github.com/intel/tbb/issues/209).
+
+------------------------------------------------------------------------
+Intel TBB 2020
+TBB_INTERFACE_VERSION == 11100
+
+Changes (w.r.t. Intel TBB 2019 Update 9):
+
+- Extended task_arena interface to simplify development of NUMA-aware
+ applications.
+- Added warning notifications when the deprecated functionality is used.
+
+Open-source contributions integrated:
+
+- Fixed various build warnings
+ (https://github.com/intel/tbb/pull/179) by Raf Schietekat.
+
+------------------------------------------------------------------------
+Intel TBB 2019 Update 9
+TBB_INTERFACE_VERSION == 11009
+
+Changes (w.r.t. Intel TBB 2019 Update 8):
+
+- Multiple APIs are deprecated. For details, please see
+ Deprecated Features appendix in the TBB reference manual.
+- Added C++17 deduction guides for flow graph nodes.
+
+Preview Features:
+
+- Added isolated_task_group class that allows multiple threads to add
+ and execute tasks sharing the same isolation.
+- Extended the flow graph API to simplify connecting nodes.
+- Added erase() by heterogeneous keys for concurrent ordered containers.
+- Added a possibility to suspend task execution at a specific point
+ and resume it later.
+
+Bugs fixed:
+
+- Fixed the emplace() method of concurrent unordered containers to
+ destroy a temporary element that was not inserted.
+- Fixed a bug in the merge() method of concurrent unordered
+ containers.
+- Fixed behavior of a continue_node that follows buffering nodes.
+- Fixed compilation error caused by missed stdlib.h when CMake
+ integration is used (https://github.com/intel/tbb/issues/195).
+ Inspired by Andrew Penkrat.
+
+Open-source contributions integrated:
+
+- Added support for move-only types to tbb::parallel_pipeline
+ (https://github.com/intel/tbb/pull/159) by Raf Schietekat.
+- Fixed detection of clang version when CUDA toolkit is installed
+ (https://github.com/intel/tbb/pull/150) by Guilherme Amadio.
+
+------------------------------------------------------------------------
Intel TBB 2019 Update 8
TBB_INTERFACE_VERSION == 11008
diff --git a/lib/tbb_2019_U8/Doxyfile b/lib/tbb_2020.3/Doxyfile
similarity index 100%
rename from lib/tbb_2019_U8/Doxyfile
rename to lib/tbb_2020.3/Doxyfile
diff --git a/lib/tbb_2019_U8/LICENSE b/lib/tbb_2020.3/LICENSE
similarity index 100%
rename from lib/tbb_2019_U8/LICENSE
rename to lib/tbb_2020.3/LICENSE
diff --git a/lib/tbb_2019_U8/Makefile b/lib/tbb_2020.3/Makefile
similarity index 74%
rename from lib/tbb_2019_U8/Makefile
rename to lib/tbb_2020.3/Makefile
index 3603007ed73..f0641893876 100644
--- a/lib/tbb_2019_U8/Makefile
+++ b/lib/tbb_2020.3/Makefile
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,6 +13,7 @@
# limitations under the License.
tbb_root?=.
+cfg?=release
include $(tbb_root)/build/common.inc
.PHONY: default all tbb tbbmalloc tbbproxy test examples
@@ -25,25 +26,22 @@ default: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
all: tbb tbbmalloc tbbproxy test examples
tbb: mkdir
- $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbb cfg=debug
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
tbbmalloc: mkdir
- $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc
tbbproxy: mkdir
- $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=debug tbbproxy
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbproxy cfg=release tbbproxy
+tbbbind: mkdir
+ $(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbbind cfg=release tbbbind
+
test: tbb tbbmalloc $(if $(use_proxy),tbbproxy)
- -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=debug malloc_test
- -$(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.test cfg=debug
-$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbbmalloc cfg=release malloc_test
-$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.test cfg=release
rml: mkdir
- $(MAKE) -C "$(work_dir)_debug" -r -f $(tbb_root)/build/Makefile.rml cfg=debug
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.rml cfg=release
examples: tbb tbbmalloc
@@ -60,8 +58,6 @@ doxygen:
clean: clean_examples
$(shell $(RM) $(work_dir)_release$(SLASH)*.* >$(NUL) 2>$(NUL))
$(shell $(RD) $(work_dir)_release >$(NUL) 2>$(NUL))
- $(shell $(RM) $(work_dir)_debug$(SLASH)*.* >$(NUL) 2>$(NUL))
- $(shell $(RD) $(work_dir)_debug >$(NUL) 2>$(NUL))
@echo clean done
clean_examples:
@@ -69,8 +65,7 @@ clean_examples:
mkdir:
$(shell $(MD) "$(work_dir)_release" >$(NUL) 2>$(NUL))
- $(shell $(MD) "$(work_dir)_debug" >$(NUL) 2>$(NUL))
- @echo Created $(work_dir)_release and ..._debug directories
+ @echo Created the $(work_dir)_release directory
info:
@echo OS: $(tbb_os)
@@ -78,4 +73,3 @@ info:
@echo compiler=$(compiler)
@echo runtime=$(runtime)
@echo tbb_build_prefix=$(tbb_build_prefix)
-
diff --git a/lib/tbb_2019_U8/README b/lib/tbb_2020.3/README
similarity index 100%
rename from lib/tbb_2019_U8/README
rename to lib/tbb_2020.3/README
diff --git a/lib/tbb_2019_U8/README.md b/lib/tbb_2020.3/README.md
similarity index 77%
rename from lib/tbb_2019_U8/README.md
rename to lib/tbb_2020.3/README.md
index 4efa64a6648..15fc3f5ef7f 100644
--- a/lib/tbb_2019_U8/README.md
+++ b/lib/tbb_2020.3/README.md
@@ -1,5 +1,5 @@
-# Threading Building Blocks 2019 Update 8
-[![Stable release](https://img.shields.io/badge/version-2019_U8-green.svg)](https://github.com/01org/tbb/releases/tag/2019_U8)
+# Threading Building Blocks 2020
+[![Stable release](https://img.shields.io/badge/version-2020.3-green.svg)](https://github.com/intel/tbb/releases/tag/v2020.3)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
Threading Building Blocks (TBB) lets you easily write parallel C++ programs that take
@@ -8,16 +8,15 @@ full advantage of multicore performance, that are portable, composable and have
## Release Information
Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues).
-Since [2018 U5](https://github.com/01org/tbb/releases/tag/2018_U5) TBB binary packages include [Parallel STL](https://github.com/intel/parallelstl) as a high-level component.
+Since [2018 U5](https://github.com/intel/tbb/releases/tag/2018_U5) TBB binary packages include [Parallel STL](https://github.com/intel/parallelstl) as a high-level component.
## Documentation
* TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial)
-* TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation)
-and [latest](https://www.threadingbuildingblocks.org/docs/help/index.htm)
+* TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation). For latest documentation please refer to the [latest](https://github.com/intel/tbb/releases/latest) release assets.
## Support
Please report issues and suggestions via
-[GitHub issues](https://github.com/01org/tbb/issues) or start a topic on the
+[GitHub issues](https://github.com/intel/tbb/issues) or start a topic on the
[TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).
## How to Contribute
diff --git a/lib/tbb_2019_U8/STAN_CHANGES b/lib/tbb_2020.3/STAN_CHANGES
similarity index 100%
rename from lib/tbb_2019_U8/STAN_CHANGES
rename to lib/tbb_2020.3/STAN_CHANGES
diff --git a/lib/tbb_2019_U8/build/AIX.gcc.inc b/lib/tbb_2020.3/build/AIX.gcc.inc
similarity index 97%
rename from lib/tbb_2019_U8/build/AIX.gcc.inc
rename to lib/tbb_2020.3/build/AIX.gcc.inc
index 4258a708e6b..2f45d73944f 100644
--- a/lib/tbb_2019_U8/build/AIX.gcc.inc
+++ b/lib/tbb_2020.3/build/AIX.gcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/AIX.inc b/lib/tbb_2020.3/build/AIX.inc
similarity index 97%
rename from lib/tbb_2019_U8/build/AIX.inc
rename to lib/tbb_2020.3/build/AIX.inc
index 45e3651cf25..e02a6d312cc 100644
--- a/lib/tbb_2019_U8/build/AIX.inc
+++ b/lib/tbb_2020.3/build/AIX.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/BSD.clang.inc b/lib/tbb_2020.3/build/BSD.clang.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/BSD.clang.inc
rename to lib/tbb_2020.3/build/BSD.clang.inc
index 042c09b0c42..cfcd139a08e 100644
--- a/lib/tbb_2019_U8/build/BSD.clang.inc
+++ b/lib/tbb_2020.3/build/BSD.clang.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -35,7 +35,7 @@ LINK_FLAGS = -Wl,-rpath-link=. -Wl,-rpath=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+ CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
diff --git a/lib/tbb_2019_U8/build/BSD.inc b/lib/tbb_2020.3/build/BSD.inc
similarity index 92%
rename from lib/tbb_2019_U8/build/BSD.inc
rename to lib/tbb_2020.3/build/BSD.inc
index 6ef75dbabb4..e5ea784d4ff 100644
--- a/lib/tbb_2019_U8/build/BSD.inc
+++ b/lib/tbb_2020.3/build/BSD.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -25,7 +25,7 @@ ifndef arch
endif
ifndef runtime
- clang_version:=$(shell clang -v 2>&1 | grep version | sed "s/.*version \([0-9]*\.[0-9]*\).*/\1/")
+ clang_version:=$(shell clang --version | sed -n "1s/.*version \(.*[0-9]\) .*/\1/p")
os_version:=$(shell uname -r)
os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export runtime:=cc$(clang_version)_kernel$(os_kernel_version)
diff --git a/lib/tbb_2019_U8/build/FreeBSD.clang.inc b/lib/tbb_2020.3/build/FreeBSD.clang.inc
similarity index 93%
rename from lib/tbb_2019_U8/build/FreeBSD.clang.inc
rename to lib/tbb_2020.3/build/FreeBSD.clang.inc
index c7a2864d7e8..f4cdf1287b5 100644
--- a/lib/tbb_2019_U8/build/FreeBSD.clang.inc
+++ b/lib/tbb_2020.3/build/FreeBSD.clang.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/FreeBSD.gcc.inc b/lib/tbb_2020.3/build/FreeBSD.gcc.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/FreeBSD.gcc.inc
rename to lib/tbb_2020.3/build/FreeBSD.gcc.inc
index 653d4a3ed12..dbf6542adba 100644
--- a/lib/tbb_2019_U8/build/FreeBSD.gcc.inc
+++ b/lib/tbb_2020.3/build/FreeBSD.gcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -32,13 +32,13 @@ C_FLAGS = $(CPLUS_FLAGS)
# gcc 6.0 and later have -flifetime-dse option that controls
# elimination of stores done outside the object lifetime
-ifneq (,$(shell gcc -dumpfullversion -dumpversion | egrep "^([6-9])"))
+ifneq (,$(shell gcc -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
ifeq ($(cfg), release)
- CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
+ CPLUS_FLAGS = -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
diff --git a/lib/tbb_2019_U8/build/FreeBSD.inc b/lib/tbb_2020.3/build/FreeBSD.inc
similarity index 92%
rename from lib/tbb_2019_U8/build/FreeBSD.inc
rename to lib/tbb_2020.3/build/FreeBSD.inc
index 7eafb2743de..8b85bf02849 100644
--- a/lib/tbb_2019_U8/build/FreeBSD.inc
+++ b/lib/tbb_2020.3/build/FreeBSD.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/Makefile.rml b/lib/tbb_2020.3/build/Makefile.rml
similarity index 96%
rename from lib/tbb_2019_U8/build/Makefile.rml
rename to lib/tbb_2020.3/build/Makefile.rml
index 62983a6418f..fc0cb7744aa 100644
--- a/lib/tbb_2019_U8/build/Makefile.rml
+++ b/lib/tbb_2020.3/build/Makefile.rml
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -60,6 +60,13 @@ TBB_DEP_NON_RML_TEST?= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ
ifeq ($(cfg),debug)
RML_TBB_DEP+= spin_mutex_rml.$(OBJ)
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ)
+
+ifeq (windows icl,$(tbb_os) $(compiler_name))
+# Some versions of ICC link to the wrong version of the vc runtime
+# libcpmtd.lib should be used instead of libcpmt.lib
+LIB_LINK_FLAGS += /nodefaultlib:libcpmt.lib
+endif
+
else
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ)
endif
diff --git a/lib/tbb_2019_U8/build/Makefile.tbb b/lib/tbb_2020.3/build/Makefile.tbb
similarity index 98%
rename from lib/tbb_2019_U8/build/Makefile.tbb
rename to lib/tbb_2020.3/build/Makefile.tbb
index 63ee6ebfbba..1556899811a 100644
--- a/lib/tbb_2019_U8/build/Makefile.tbb
+++ b/lib/tbb_2020.3/build/Makefile.tbb
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2020.3/build/Makefile.tbbbind b/lib/tbb_2020.3/build/Makefile.tbbbind
new file mode 100644
index 00000000000..821009a3e90
--- /dev/null
+++ b/lib/tbb_2020.3/build/Makefile.tbbbind
@@ -0,0 +1,69 @@
+# Copyright (c) 2005-2020 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#------------------------------------------------------------------------------
+# Define rules for making the tbbbind shared library.
+#------------------------------------------------------------------------------
+
+tbb_root ?= "$(TBBROOT)"
+BUILDING_PHASE=1
+include $(tbb_root)/build/common.inc
+CPLUS_FLAGS += $(SDL_FLAGS)
+DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
+
+#------------------------------------------------------------
+# Define static pattern rules dealing with .cpp source files
+#------------------------------------------------------------
+$(warning CONFIG: cfg=$(cfg) arch=$(arch) compiler=$(compiler) target=$(target) runtime=$(runtime))
+
+.PHONY: tbbbind
+.PRECIOUS: %.$(OBJ)
+
+VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/old $(tbb_root)/src/rml/client
+
+CPLUS_FLAGS += $(PIC_KEY) $(DSE_KEY) $(DEFINE_KEY)__TBBBIND_BUILD=1
+
+# Suppress superfluous warnings for tbbbind compilation
+WARNING_KEY += $(WARNING_SUPPRESS)
+
+include $(tbb_root)/build/common_rules.inc
+
+TBBBIND.OBJ = tbb_bind.$(OBJ)
+
+ifneq (,$(TBBBIND.DEF))
+tbbbind.def: $(TBBBIND.DEF)
+ $(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
+
+LIB_LINK_FLAGS += $(EXPORT_KEY)tbbbind.def
+$(TBBBIND.DLL): tbbbind.def
+endif
+
+ifneq (,$(TBBBIND.DLL))
+$(TBBBIND.DLL): BUILDING_LIBRARY = $(TBBBIND.DLL)
+$(TBBBIND.DLL): $(TBBBIND.OBJ) $(TBBBIND_NO_VERSION.DLL)
+ $(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(TBBBIND.DLL) $(TBBBIND.OBJ) $(HWLOC.LIB) $(LIB_LINK_FLAGS)
+endif
+
+ifneq (,$(TBBBIND_NO_VERSION.DLL))
+$(TBBBIND_NO_VERSION.DLL):
+ echo "INPUT ($(TBBBIND.DLL))" > $(TBBBIND_NO_VERSION.DLL)
+endif
+
+tbbbind: $(TBBBIND.DLL)
+
+#clean:
+# $(RM) *.$(OBJ) *.$(DLL) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d core core.*[0-9][0-9] *.ver
+
+# Include automatically generated dependencies
+-include *.d
diff --git a/lib/tbb_2019_U8/build/Makefile.tbbmalloc b/lib/tbb_2020.3/build/Makefile.tbbmalloc
similarity index 99%
rename from lib/tbb_2019_U8/build/Makefile.tbbmalloc
rename to lib/tbb_2020.3/build/Makefile.tbbmalloc
index 421e95c54bd..4ba504f8934 100644
--- a/lib/tbb_2019_U8/build/Makefile.tbbmalloc
+++ b/lib/tbb_2020.3/build/Makefile.tbbmalloc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/Makefile.tbbproxy b/lib/tbb_2020.3/build/Makefile.tbbproxy
similarity index 98%
rename from lib/tbb_2019_U8/build/Makefile.tbbproxy
rename to lib/tbb_2020.3/build/Makefile.tbbproxy
index 196361cc03c..54f5e9cd2e8 100644
--- a/lib/tbb_2019_U8/build/Makefile.tbbproxy
+++ b/lib/tbb_2020.3/build/Makefile.tbbproxy
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/Makefile.test b/lib/tbb_2020.3/build/Makefile.test
similarity index 96%
rename from lib/tbb_2019_U8/build/Makefile.test
rename to lib/tbb_2020.3/build/Makefile.test
index a014e13783e..eb2c7053437 100644
--- a/lib/tbb_2019_U8/build/Makefile.test
+++ b/lib/tbb_2020.3/build/Makefile.test
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -103,6 +103,9 @@ test_dynamic_link.$(TEST_EXT): LIBS += $(LIBDL)
ifneq (,$(BIGOBJ_KEY))
TEST_BIGOBJ = test_opencl_node.$(TEST_EXT) \
test_atomic.$(TEST_EXT) \
+ test_concurrent_hash_map.$(TEST_EXT) \
+ test_concurrent_set.$(TEST_EXT) \
+ test_concurrent_map.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT) \
test_concurrent_unordered_map.$(TEST_EXT) \
test_join_node_key_matching.$(TEST_EXT) \
@@ -130,6 +133,8 @@ TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT) \
test_concurrent_unordered_map.$(TEST_EXT) \
test_concurrent_hash_map.$(TEST_EXT) \
+ test_concurrent_set.$(TEST_EXT) \
+ test_concurrent_map.$(TEST_EXT) \
test_enumerable_thread_specific.$(TEST_EXT) \
test_handle_perror.$(TEST_EXT) \
test_halt.$(TEST_EXT) \
@@ -194,6 +199,7 @@ TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_priority_queue_node.$(TEST_EXT) \
test_sequencer_node.$(TEST_EXT) \
test_source_node.$(TEST_EXT) \
+ test_input_node.$(TEST_EXT) \
test_overwrite_node.$(TEST_EXT) \
test_write_once_node.$(TEST_EXT) \
test_indexer_node.$(TEST_EXT) \
@@ -211,6 +217,7 @@ TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_composite_node.$(TEST_EXT) \
test_async_node.$(TEST_EXT) \
test_async_msg.$(TEST_EXT) \
+ test_resumable_tasks.$(TEST_EXT) \
test_tbb_version.$(TEST_EXT) # insert new files right above
# These tests depend on other technologies
@@ -246,6 +253,8 @@ endif
test_opencl_node.$(TEST_EXT): LIBS += $(OPENCL.LIB)
+test_arena_constraints_hwloc.$(TEST_EXT): LIBS += $(HWLOC.LIB)
+
$(TEST_TBB_PLAIN.EXE) $(TEST_TBB_SPECIAL.EXE): WARNING_KEY += $(TEST_WARNING_KEY)
# Run tests that are in SCHEDULER_DIRECTLY_INCLUDED and TEST_TBB_PLAIN.EXE but not in skip_tests (which is specified by user)
diff --git a/lib/tbb_2019_U8/build/OpenBSD.clang.inc b/lib/tbb_2020.3/build/OpenBSD.clang.inc
similarity index 93%
rename from lib/tbb_2019_U8/build/OpenBSD.clang.inc
rename to lib/tbb_2020.3/build/OpenBSD.clang.inc
index dd913a37ebd..0acc5eb2b22 100644
--- a/lib/tbb_2019_U8/build/OpenBSD.clang.inc
+++ b/lib/tbb_2020.3/build/OpenBSD.clang.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/OpenBSD.inc b/lib/tbb_2020.3/build/OpenBSD.inc
similarity index 92%
rename from lib/tbb_2019_U8/build/OpenBSD.inc
rename to lib/tbb_2020.3/build/OpenBSD.inc
index 7eafb2743de..8b85bf02849 100644
--- a/lib/tbb_2019_U8/build/OpenBSD.inc
+++ b/lib/tbb_2020.3/build/OpenBSD.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/SunOS.gcc.inc b/lib/tbb_2020.3/build/SunOS.gcc.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/SunOS.gcc.inc
rename to lib/tbb_2020.3/build/SunOS.gcc.inc
index dd449478a0d..f7749655d63 100644
--- a/lib/tbb_2019_U8/build/SunOS.gcc.inc
+++ b/lib/tbb_2020.3/build/SunOS.gcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -33,7 +33,7 @@ LIBS = -lpthread -lrt -ldl
C_FLAGS = $(CPLUS_FLAGS) -x c
ifeq ($(cfg), release)
- CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
+ CPLUS_FLAGS = -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
diff --git a/lib/tbb_2019_U8/build/SunOS.inc b/lib/tbb_2020.3/build/SunOS.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/SunOS.inc
rename to lib/tbb_2020.3/build/SunOS.inc
index 569d3214a21..30a2e684648 100644
--- a/lib/tbb_2019_U8/build/SunOS.inc
+++ b/lib/tbb_2020.3/build/SunOS.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/SunOS.suncc.inc b/lib/tbb_2020.3/build/SunOS.suncc.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/SunOS.suncc.inc
rename to lib/tbb_2020.3/build/SunOS.suncc.inc
index 74b2e47d46e..b0dfa484871 100644
--- a/lib/tbb_2019_U8/build/SunOS.suncc.inc
+++ b/lib/tbb_2020.3/build/SunOS.suncc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.clang.inc b/lib/tbb_2020.3/build/android.clang.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/android.clang.inc
rename to lib/tbb_2020.3/build/android.clang.inc
index 40b3149b48a..6edc48f7d12 100644
--- a/lib/tbb_2019_U8/build/android.clang.inc
+++ b/lib/tbb_2020.3/build/android.clang.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.gcc.inc b/lib/tbb_2020.3/build/android.gcc.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/android.gcc.inc
rename to lib/tbb_2020.3/build/android.gcc.inc
index 13b29fb8a50..980a8cac80a 100644
--- a/lib/tbb_2019_U8/build/android.gcc.inc
+++ b/lib/tbb_2020.3/build/android.gcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.icc.inc b/lib/tbb_2020.3/build/android.icc.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/android.icc.inc
rename to lib/tbb_2020.3/build/android.icc.inc
index 921a1f07f6a..6ba64d19bef 100644
--- a/lib/tbb_2019_U8/build/android.icc.inc
+++ b/lib/tbb_2020.3/build/android.icc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.inc b/lib/tbb_2020.3/build/android.inc
similarity index 97%
rename from lib/tbb_2019_U8/build/android.inc
rename to lib/tbb_2020.3/build/android.inc
index 893b33c16dd..3832ee53850 100644
--- a/lib/tbb_2019_U8/build/android.inc
+++ b/lib/tbb_2020.3/build/android.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.linux.inc b/lib/tbb_2020.3/build/android.linux.inc
similarity index 97%
rename from lib/tbb_2019_U8/build/android.linux.inc
rename to lib/tbb_2020.3/build/android.linux.inc
index 39767b69741..a7d2b183a27 100644
--- a/lib/tbb_2019_U8/build/android.linux.inc
+++ b/lib/tbb_2020.3/build/android.linux.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.linux.launcher.sh b/lib/tbb_2020.3/build/android.linux.launcher.sh
similarity index 99%
rename from lib/tbb_2019_U8/build/android.linux.launcher.sh
rename to lib/tbb_2020.3/build/android.linux.launcher.sh
index a394750c256..2643d3e0a51 100644
--- a/lib/tbb_2019_U8/build/android.linux.launcher.sh
+++ b/lib/tbb_2020.3/build/android.linux.launcher.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.macos.inc b/lib/tbb_2020.3/build/android.macos.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/android.macos.inc
rename to lib/tbb_2020.3/build/android.macos.inc
index 3efe09dfe11..a48ee32b7f7 100644
--- a/lib/tbb_2019_U8/build/android.macos.inc
+++ b/lib/tbb_2020.3/build/android.macos.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/android.windows.inc b/lib/tbb_2020.3/build/android.windows.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/android.windows.inc
rename to lib/tbb_2020.3/build/android.windows.inc
index c690966ff3c..a56f9a98f9c 100644
--- a/lib/tbb_2019_U8/build/android.windows.inc
+++ b/lib/tbb_2020.3/build/android.windows.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/big_iron.inc b/lib/tbb_2020.3/build/big_iron.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/big_iron.inc
rename to lib/tbb_2020.3/build/big_iron.inc
index dc8849f7c19..abe6accca40 100644
--- a/lib/tbb_2019_U8/build/big_iron.inc
+++ b/lib/tbb_2020.3/build/big_iron.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/build.py b/lib/tbb_2020.3/build/build.py
similarity index 99%
rename from lib/tbb_2019_U8/build/build.py
rename to lib/tbb_2020.3/build/build.py
index 4c3c1fb430e..c0ab15190fc 100644
--- a/lib/tbb_2019_U8/build/build.py
+++ b/lib/tbb_2020.3/build/build.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/codecov.txt b/lib/tbb_2020.3/build/codecov.txt
similarity index 100%
rename from lib/tbb_2019_U8/build/codecov.txt
rename to lib/tbb_2020.3/build/codecov.txt
diff --git a/lib/tbb_2019_U8/build/common.inc b/lib/tbb_2020.3/build/common.inc
similarity index 99%
rename from lib/tbb_2019_U8/build/common.inc
rename to lib/tbb_2020.3/build/common.inc
index b95c78d6b4a..815fa6824aa 100644
--- a/lib/tbb_2019_U8/build/common.inc
+++ b/lib/tbb_2020.3/build/common.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/common_rules.inc b/lib/tbb_2020.3/build/common_rules.inc
similarity index 97%
rename from lib/tbb_2019_U8/build/common_rules.inc
rename to lib/tbb_2020.3/build/common_rules.inc
index d56b92485ad..64bd74ab48b 100644
--- a/lib/tbb_2019_U8/build/common_rules.inc
+++ b/lib/tbb_2020.3/build/common_rules.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -42,6 +42,10 @@ endif
INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
+
+# Suppress warnings about usage of deprecated content
+CPLUS_FLAGS += $(DEFINE_KEY)TBB_SUPPRESS_DEPRECATED_MESSAGES=1
+
ifeq (1,$(tbb_cpf))
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_CPF_BUILD=1
endif
diff --git a/lib/tbb_2019_U8/build/detect.js b/lib/tbb_2020.3/build/detect.js
similarity index 91%
rename from lib/tbb_2019_U8/build/detect.js
rename to lib/tbb_2020.3/build/detect.js
index ccbe98634b5..ef8ccc1587c 100644
--- a/lib/tbb_2019_U8/build/detect.js
+++ b/lib/tbb_2020.3/build/detect.js
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2019 Intel Corporation
+// Copyright (c) 2005-2020 Intel Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -57,12 +57,18 @@ function doWork() {
WScript.Echo("mingw" + gccVersion);
}
else if (WScript.Arguments(0) == "/minversion") {
- // Comparing strings, not numbers; will not work for two-digit versions
- if (gccVersion >= WScript.Arguments(2)) {
- WScript.Echo("ok");
- } else {
- WScript.Echo("fail");
+ for (var i = 0; i < 3; i++) {
+ v1 = parseInt(gccVersion.split('.')[i]);
+ v2 = parseInt(WScript.Arguments(2).split('.')[i]);
+
+ if (v1 > v2) {
+ break;
+ } else if (v1 < v2) {
+ WScript.Echo("fail");
+ return;
+ }
}
+ WScript.Echo("ok");
}
}
return;
@@ -121,6 +127,8 @@ function doWork() {
} else if (mapContext.match(vc140)) {
if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "15.0")
WScript.Echo("vc14.1");
+ else if (WshShell.ExpandEnvironmentStrings("%VisualStudioVersion%") == "16.0")
+ WScript.Echo("vc14.2");
else
WScript.Echo("vc14");
} else {
diff --git a/lib/tbb_2019_U8/build/generate_tbbvars.bat b/lib/tbb_2020.3/build/generate_tbbvars.bat
similarity index 98%
rename from lib/tbb_2019_U8/build/generate_tbbvars.bat
rename to lib/tbb_2020.3/build/generate_tbbvars.bat
index d79450ca04e..121732804c2 100644
--- a/lib/tbb_2019_U8/build/generate_tbbvars.bat
+++ b/lib/tbb_2020.3/build/generate_tbbvars.bat
@@ -1,6 +1,6 @@
@echo off
REM
-REM Copyright (c) 2005-2019 Intel Corporation
+REM Copyright (c) 2005-2020 Intel Corporation
REM
REM Licensed under the Apache License, Version 2.0 (the "License");
REM you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/generate_tbbvars.sh b/lib/tbb_2020.3/build/generate_tbbvars.sh
similarity index 97%
rename from lib/tbb_2019_U8/build/generate_tbbvars.sh
rename to lib/tbb_2020.3/build/generate_tbbvars.sh
index 49189f22d2a..4106ed3f817 100644
--- a/lib/tbb_2019_U8/build/generate_tbbvars.sh
+++ b/lib/tbb_2020.3/build/generate_tbbvars.sh
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/index.html b/lib/tbb_2020.3/build/index.html
similarity index 96%
rename from lib/tbb_2019_U8/build/index.html
rename to lib/tbb_2020.3/build/index.html
index ae047697dab..0aeafa73c85 100644
--- a/lib/tbb_2019_U8/build/index.html
+++ b/lib/tbb_2020.3/build/index.html
@@ -18,6 +18,9 @@
Files
Makefile.tbbmalloc
Main Makefile to build the Intel TBB scalable memory allocator library as well as its tests.
Invoked via 'make tbbmalloc' from top-level Makefile.
+Makefile.tbbbind
+Main Makefile to build the tbbbind library.
+ Invoked via 'make tbbbind' from top-level Makefile
Makefile.test
Main Makefile to build and run the tests for the Intel TBB library.
Invoked via 'make test' from top-level Makefile.
@@ -73,7 +76,7 @@ Software prerequisites:
Explicitly specify the architecture when invoking GNU make, e.g. make arch=ia32.
-The default make target will build the release and debug versions of the Intel TBB library.
+The default make target will build the release version of the Intel TBB library.
Other targets are available in the top-level Makefile. You might find the following targets useful:
- make test will build and run Intel TBB unit-tests;
@@ -111,13 +114,15 @@
Software prerequisites:
- cd src;make debug
- Build and test debug libraries only.
- make tbb
-
- Make Intel TBB release and debug libraries.
+
- Make Intel TBB release libraries.
- make tbbmalloc
- Make Intel TBB scalable memory allocator libraries.
+
- make tbbbind
+
- Make the tbbbind library.
- make test
- Compile and run unit-tests
- make examples
-
- Build libraries and run all examples, like doing make debug clean release from the general example Makefile.
+
- Build libraries and run all examples, like doing make clean release from the general example Makefile.
Available in the open-source version only.
- make python
- Build, install, and test Python* API for Intel TBB. See details here.
@@ -233,7 +238,7 @@
To port the Makefile infrastructure:
Up to parent directory
-Copyright © 2005-2019 Intel Corporation. All Rights Reserved.
+Copyright © 2005-2020 Intel Corporation. All Rights Reserved.
Intel, the Intel logo and Itanium are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
diff --git a/lib/tbb_2019_U8/build/ios.clang.inc b/lib/tbb_2020.3/build/ios.clang.inc
similarity index 93%
rename from lib/tbb_2019_U8/build/ios.clang.inc
rename to lib/tbb_2020.3/build/ios.clang.inc
index 97629706b1a..a97aad59dd4 100644
--- a/lib/tbb_2019_U8/build/ios.clang.inc
+++ b/lib/tbb_2020.3/build/ios.clang.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/ios.macos.inc b/lib/tbb_2020.3/build/ios.macos.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/ios.macos.inc
rename to lib/tbb_2020.3/build/ios.macos.inc
index 684a82f7e9a..04f0c090a95 100644
--- a/lib/tbb_2019_U8/build/ios.macos.inc
+++ b/lib/tbb_2020.3/build/ios.macos.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/linux.clang.inc b/lib/tbb_2020.3/build/linux.clang.inc
similarity index 90%
rename from lib/tbb_2019_U8/build/linux.clang.inc
rename to lib/tbb_2020.3/build/linux.clang.inc
index 14ac2ae39fc..330e090a2d5 100644
--- a/lib/tbb_2019_U8/build/linux.clang.inc
+++ b/lib/tbb_2020.3/build/linux.clang.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -30,18 +30,21 @@ EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
-LIBS += -lpthread -lrt
+LIBS += -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
-# CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
- CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -DUSE_PTHREAD
+ # -g is set intentionally in the release mode. It should not affect performance.
+ CPLUS_FLAGS = -O2
endif
ifeq ($(cfg), debug)
- CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -O0 -g
endif
+CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
+LIB_LINK_FLAGS += -pthread
+
ifneq (,$(stdlib))
CPLUS_FLAGS += -stdlib=$(stdlib)
LIB_LINK_FLAGS += -stdlib=$(stdlib)
diff --git a/lib/tbb_2019_U8/build/linux.gcc.inc b/lib/tbb_2020.3/build/linux.gcc.inc
similarity index 91%
rename from lib/tbb_2019_U8/build/linux.gcc.inc
rename to lib/tbb_2020.3/build/linux.gcc.inc
index 46324b19eea..d820c15d7b5 100644
--- a/lib/tbb_2019_U8/build/linux.gcc.inc
+++ b/lib/tbb_2020.3/build/linux.gcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -31,27 +31,27 @@ EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
-LIBS += -lpthread -lrt
+LIBS += -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
# gcc 4.2 and higher support OpenMP
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[2-9]|[5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[2-9]|[5-9]|1[0-9])"))
OPENMP_FLAG = -fopenmp
endif
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9]|1[0-9])"))
RTM_KEY = -mrtm
endif
# gcc 4.0 and later have -Wextra that is used by some our customers.
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([4-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([4-9]|1[0-9])"))
WARNING_KEY += -Wextra
endif
# gcc 5.0 and later have -Wsuggest-override and -Wno-sized-deallocation options
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9]|1[0-9])"))
# enable -Wsuggest-override via a pre-included header in order to limit to C++11 and above
INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
WARNING_SUPPRESS += -Wno-sized-deallocation
@@ -59,19 +59,22 @@ endif
# gcc 6.0 and later have -flifetime-dse option that controls
# elimination of stores done outside the object lifetime
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
ifeq ($(cfg), release)
-# CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
- CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -DUSE_PTHREAD
+ # -g is set intentionally in the release mode. It should not affect performance.
+ CPLUS_FLAGS = -O2 -g
endif
ifeq ($(cfg), debug)
- CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
+ CPLUS_FLAGS = -DTBB_USE_DEBUG -O0 -g
endif
+CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
+LIB_LINK_FLAGS += -pthread
+
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
diff --git a/lib/tbb_2019_U8/build/linux.icc.inc b/lib/tbb_2020.3/build/linux.icc.inc
similarity index 92%
rename from lib/tbb_2019_U8/build/linux.icc.inc
rename to lib/tbb_2020.3/build/linux.icc.inc
index 4be0f02fea8..2367623d521 100644
--- a/lib/tbb_2019_U8/build/linux.icc.inc
+++ b/lib/tbb_2020.3/build/linux.icc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -34,17 +34,20 @@ endif
ITT_NOTIFY = -DDO_ITT_NOTIFY
ifeq (release,$(cfg))
SDL_FLAGS += -D_FORTIFY_SOURCE=2
-#CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -g -DUSE_PTHREAD
-CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -DUSE_PTHREAD
+# -g is set intentionally in the release mode. It should not affect performance.
+CPLUS_FLAGS = -O2 -qno-opt-report-embed
else
-CPLUS_FLAGS = $(ITT_NOTIFY) -O0 -g -DUSE_PTHREAD -DTBB_USE_DEBUG
+CPLUS_FLAGS = -O0 -g -DTBB_USE_DEBUG
endif
LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
-LIBS += -lpthread -lrt
+LIBS += -lrt
LINK_FLAGS = -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
+CPLUS_FLAGS += $(ITT_NOTIFY) -DUSE_PTHREAD -pthread
+LIB_LINK_FLAGS += -pthread
+
ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\."))
OPENMP_FLAG = -qopenmp
else
@@ -113,4 +116,3 @@ M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-
diff --git a/lib/tbb_2019_U8/build/linux.inc b/lib/tbb_2020.3/build/linux.inc
similarity index 92%
rename from lib/tbb_2019_U8/build/linux.inc
rename to lib/tbb_2020.3/build/linux.inc
index 4d59aaacf80..ad1841cb21d 100644
--- a/lib/tbb_2019_U8/build/linux.inc
+++ b/lib/tbb_2020.3/build/linux.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -116,6 +116,13 @@ TBB.LIB = $(TBB.DLL)
TBB_NO_VERSION.DLL=libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
LINK_TBB.LIB = $(TBB_NO_VERSION.DLL)
+TBBBIND_NO_VERSION.DLL = libtbbbind$(DEBUG_SUFFIX).$(DLL)
+TBBBIND.DEF = $(tbb_root)/src/tbb/$(def_prefix)-tbbbind-export.def
+TBBBIND.DLL = $(TBBBIND_NO_VERSION.DLL).$(SONAME_SUFFIX)
+TBBBIND.LIB = $(TBBBIND_NO_VERSION.DLL)
+LINK_TBBBIND.LIB = $(TBBBIND.LIB)
+HWLOC.LIB = -lhwloc
+
MALLOC_NO_VERSION.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(MALLOC_DLL)
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
MALLOC.DLL = $(MALLOC_NO_VERSION.DLL).$(SONAME_SUFFIX)
diff --git a/lib/tbb_2019_U8/build/linux.pathcc.inc b/lib/tbb_2020.3/build/linux.pathcc.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/linux.pathcc.inc
rename to lib/tbb_2020.3/build/linux.pathcc.inc
index 381b63600ec..066d285e24c 100644
--- a/lib/tbb_2019_U8/build/linux.pathcc.inc
+++ b/lib/tbb_2020.3/build/linux.pathcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -38,7 +38,7 @@ C_FLAGS = $(CPLUS_FLAGS)
OPENMP_FLAG = -openmp
ifeq ($(cfg), release)
- CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
+ CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
diff --git a/lib/tbb_2019_U8/build/linux.xl.inc b/lib/tbb_2020.3/build/linux.xl.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/linux.xl.inc
rename to lib/tbb_2020.3/build/linux.xl.inc
index 165aab8a7f0..81dbc6f350f 100644
--- a/lib/tbb_2019_U8/build/linux.xl.inc
+++ b/lib/tbb_2020.3/build/linux.xl.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/macos.clang.inc b/lib/tbb_2020.3/build/macos.clang.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/macos.clang.inc
rename to lib/tbb_2020.3/build/macos.clang.inc
index a41f5c47a67..a6b314b9b7e 100644
--- a/lib/tbb_2019_U8/build/macos.clang.inc
+++ b/lib/tbb_2020.3/build/macos.clang.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -35,7 +35,6 @@ LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY)
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
-# CPLUS_FLAGS = -g -O2
CPLUS_FLAGS = -O2
else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
@@ -43,6 +42,11 @@ endif
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
+ifeq (1,$(tbb_cpf))
+# For correct ucontext.h structures layout
+CPLUS_FLAGS += -D_XOPEN_SOURCE
+endif
+
# For Clang, we add the option to support RTM intrinsics *iff* xtest is found in
ifneq (,$(shell grep xtest `echo "\#include" | $(CONLY) -E -M - 2>&1 | grep immintrin.h` 2>/dev/null))
RTM_KEY = -mrtm
diff --git a/lib/tbb_2019_U8/build/macos.gcc.inc b/lib/tbb_2020.3/build/macos.gcc.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/macos.gcc.inc
rename to lib/tbb_2020.3/build/macos.gcc.inc
index 140d128ae31..00741588f94 100644
--- a/lib/tbb_2019_U8/build/macos.gcc.inc
+++ b/lib/tbb_2020.3/build/macos.gcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -35,25 +35,24 @@ LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY)
C_FLAGS = $(CPLUS_FLAGS)
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^(4\.[8-9]|[5-9]|1[0-9])"))
RTM_KEY = -mrtm
endif
# gcc 5.0 and later have -Wsuggest-override option
# enable it via a pre-included header in order to limit to C++11 and above
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([5-9]|1[0-9])"))
INCLUDE_TEST_HEADERS = -include $(tbb_root)/src/test/harness_preload.h
endif
# gcc 6.0 and later have -flifetime-dse option that controls
# elimination of stores done outside the object lifetime
-ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9])"))
+ifneq (,$(shell $(CONLY) -dumpfullversion -dumpversion | egrep "^([6-9]|1[0-9])"))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
ifeq ($(cfg), release)
-# CPLUS_FLAGS = -g -O2
CPLUS_FLAGS = -O2
else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
diff --git a/lib/tbb_2019_U8/build/macos.icc.inc b/lib/tbb_2020.3/build/macos.icc.inc
similarity index 93%
rename from lib/tbb_2019_U8/build/macos.icc.inc
rename to lib/tbb_2020.3/build/macos.icc.inc
index 5639eeec93b..6abc9aae26c 100644
--- a/lib/tbb_2019_U8/build/macos.icc.inc
+++ b/lib/tbb_2020.3/build/macos.icc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -49,8 +49,7 @@ endif
ifeq ($(cfg), release)
SDL_FLAGS += -D_FORTIFY_SOURCE=2
-# CPLUS_FLAGS = -g -O2 -fno-omit-frame-pointer
- CPLUS_FLAGS = -O2 -fno-omit-frame-pointer
+ CPLUS_FLAGS = -O2 -fno-omit-frame-pointer -qno-opt-report-embed
else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
@@ -58,6 +57,11 @@ endif
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -DUSE_PTHREAD $(ITT_NOTIFY)
+ifeq (1,$(tbb_cpf))
+# For correct ucontext.h structures layout
+CPLUS_FLAGS += -D_XOPEN_SOURCE
+endif
+
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-gen=srcpos
endif
diff --git a/lib/tbb_2019_U8/build/macos.inc b/lib/tbb_2020.3/build/macos.inc
similarity index 92%
rename from lib/tbb_2019_U8/build/macos.inc
rename to lib/tbb_2020.3/build/macos.inc
index 5011fc17c75..dde93216f5e 100644
--- a/lib/tbb_2019_U8/build/macos.inc
+++ b/lib/tbb_2020.3/build/macos.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -36,20 +36,16 @@ ifndef arch
export arch:=ppc32
endif
else
- ifeq ($(shell /usr/sbin/sysctl -n hw.machine),arm64)
- export arch:=arm64
- else
ifeq ($(shell /usr/sbin/sysctl -n hw.optional.x86_64 2>/dev/null),1)
export arch:=intel64
else
export arch:=ia32
endif
- endif
endif
endif
ifndef runtime
- clang_version:=$(shell clang -v 2>&1 >/dev/null | grep version | sed -e "s/.*version \(.*[0-9]\) .*/\1/")
+ clang_version:=$(shell clang --version | sed -n "1s/.*version \(.*[0-9]\) .*/\1/p")
ifndef os_version
os_version:=$(shell /usr/bin/sw_vers -productVersion)
endif
diff --git a/lib/tbb_2019_U8/build/mic.icc.inc b/lib/tbb_2020.3/build/mic.icc.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/mic.icc.inc
rename to lib/tbb_2020.3/build/mic.icc.inc
index 39548d8bf12..e1d66ad80e1 100644
--- a/lib/tbb_2019_U8/build/mic.icc.inc
+++ b/lib/tbb_2020.3/build/mic.icc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -31,7 +31,7 @@ SDL_FLAGS = -fstack-protector -Wformat -Wformat-security
ifeq (release,$(cfg))
SDL_FLAGS += -D_FORTIFY_SOURCE=2
- CPLUS_FLAGS = -O2 -g -DUSE_PTHREAD
+ CPLUS_FLAGS = -O2 -DUSE_PTHREAD
else
CPLUS_FLAGS = -O0 -g -DUSE_PTHREAD -DTBB_USE_DEBUG
endif
@@ -70,6 +70,3 @@ M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-
-
-
diff --git a/lib/tbb_2019_U8/build/mic.linux.inc b/lib/tbb_2020.3/build/mic.linux.inc
similarity index 96%
rename from lib/tbb_2019_U8/build/mic.linux.inc
rename to lib/tbb_2020.3/build/mic.linux.inc
index 4dcb5b028e1..32d5be5bedd 100644
--- a/lib/tbb_2019_U8/build/mic.linux.inc
+++ b/lib/tbb_2020.3/build/mic.linux.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/mic.linux.launcher.sh b/lib/tbb_2020.3/build/mic.linux.launcher.sh
similarity index 99%
rename from lib/tbb_2019_U8/build/mic.linux.launcher.sh
rename to lib/tbb_2020.3/build/mic.linux.launcher.sh
index 1376eb1183f..bb09afc1a04 100644
--- a/lib/tbb_2019_U8/build/mic.linux.launcher.sh
+++ b/lib/tbb_2020.3/build/mic.linux.launcher.sh
@@ -1,6 +1,6 @@
#!/bin/bash
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/mic.offload.inc b/lib/tbb_2020.3/build/mic.offload.inc
similarity index 99%
rename from lib/tbb_2019_U8/build/mic.offload.inc
rename to lib/tbb_2020.3/build/mic.offload.inc
index 407b9931255..2428166ec48 100644
--- a/lib/tbb_2019_U8/build/mic.offload.inc
+++ b/lib/tbb_2020.3/build/mic.offload.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/suncc.map.pause b/lib/tbb_2020.3/build/suncc.map.pause
similarity index 100%
rename from lib/tbb_2019_U8/build/suncc.map.pause
rename to lib/tbb_2020.3/build/suncc.map.pause
diff --git a/lib/tbb_2019_U8/build/test_launcher.bat b/lib/tbb_2020.3/build/test_launcher.bat
similarity index 97%
rename from lib/tbb_2019_U8/build/test_launcher.bat
rename to lib/tbb_2020.3/build/test_launcher.bat
index e956c5b95b6..83627b12267 100644
--- a/lib/tbb_2019_U8/build/test_launcher.bat
+++ b/lib/tbb_2020.3/build/test_launcher.bat
@@ -1,6 +1,6 @@
@echo off
REM
-REM Copyright (c) 2005-2019 Intel Corporation
+REM Copyright (c) 2005-2020 Intel Corporation
REM
REM Licensed under the Apache License, Version 2.0 (the "License");
REM you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/test_launcher.sh b/lib/tbb_2020.3/build/test_launcher.sh
similarity index 98%
rename from lib/tbb_2019_U8/build/test_launcher.sh
rename to lib/tbb_2020.3/build/test_launcher.sh
index 7cb81958dd9..224ed50757a 100644
--- a/lib/tbb_2019_U8/build/test_launcher.sh
+++ b/lib/tbb_2020.3/build/test_launcher.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/version_info_aix.sh b/lib/tbb_2020.3/build/version_info_aix.sh
similarity index 97%
rename from lib/tbb_2019_U8/build/version_info_aix.sh
rename to lib/tbb_2020.3/build/version_info_aix.sh
index c59ed49783c..793cad11dc6 100644
--- a/lib/tbb_2019_U8/build/version_info_aix.sh
+++ b/lib/tbb_2020.3/build/version_info_aix.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/version_info_android.sh b/lib/tbb_2020.3/build/version_info_android.sh
similarity index 97%
rename from lib/tbb_2019_U8/build/version_info_android.sh
rename to lib/tbb_2020.3/build/version_info_android.sh
index 3bef6039164..8d828b845b0 100644
--- a/lib/tbb_2019_U8/build/version_info_android.sh
+++ b/lib/tbb_2020.3/build/version_info_android.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/version_info_linux.sh b/lib/tbb_2020.3/build/version_info_linux.sh
similarity index 97%
rename from lib/tbb_2019_U8/build/version_info_linux.sh
rename to lib/tbb_2020.3/build/version_info_linux.sh
index c59ed49783c..793cad11dc6 100644
--- a/lib/tbb_2019_U8/build/version_info_linux.sh
+++ b/lib/tbb_2020.3/build/version_info_linux.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/version_info_macos.sh b/lib/tbb_2020.3/build/version_info_macos.sh
similarity index 89%
rename from lib/tbb_2019_U8/build/version_info_macos.sh
rename to lib/tbb_2020.3/build/version_info_macos.sh
index d49fcf8ed2b..b43c0e6b9f5 100644
--- a/lib/tbb_2019_U8/build/version_info_macos.sh
+++ b/lib/tbb_2020.3/build/version_info_macos.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@ echo "#define __TBB_VERSION_STRINGS(N) \\"
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`arch`")"'" ENDL \'
echo '#N": BUILD_OS'"\t\t"`sw_vers -productName`" version "`sw_vers -productVersion`'" ENDL \'
echo '#N": BUILD_KERNEL'"\t"`uname -v`'" ENDL \'
-echo '#N": BUILD_CLANG'"\t"`clang --version &1 | grep 'version '`'" ENDL \'
+echo '#N": BUILD_CLANG'"\t"`clang --version | sed -n "1p"`'" ENDL \'
echo '#N": BUILD_XCODE'"\t"`xcodebuild -version &1 | grep 'Xcode'`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
diff --git a/lib/tbb_2019_U8/build/version_info_sunos.sh b/lib/tbb_2020.3/build/version_info_sunos.sh
similarity index 96%
rename from lib/tbb_2019_U8/build/version_info_sunos.sh
rename to lib/tbb_2020.3/build/version_info_sunos.sh
index 4e54169be70..335fb419287 100644
--- a/lib/tbb_2019_U8/build/version_info_sunos.sh
+++ b/lib/tbb_2020.3/build/version_info_sunos.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/version_info_windows.js b/lib/tbb_2020.3/build/version_info_windows.js
similarity index 98%
rename from lib/tbb_2019_U8/build/version_info_windows.js
rename to lib/tbb_2020.3/build/version_info_windows.js
index bc387cbf90c..d3f4c0fbf00 100644
--- a/lib/tbb_2019_U8/build/version_info_windows.js
+++ b/lib/tbb_2020.3/build/version_info_windows.js
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2019 Intel Corporation
+// Copyright (c) 2005-2020 Intel Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/vs2013/index.html b/lib/tbb_2020.3/build/vs2013/index.html
similarity index 92%
rename from lib/tbb_2019_U8/build/vs2013/index.html
rename to lib/tbb_2020.3/build/vs2013/index.html
index 40b85f34289..5c584adbac6 100644
--- a/lib/tbb_2019_U8/build/vs2013/index.html
+++ b/lib/tbb_2020.3/build/vs2013/index.html
@@ -20,7 +20,7 @@ Files
Up to parent directory
-Copyright © 2017-2019 Intel Corporation. All Rights Reserved.
+Copyright © 2017-2020 Intel Corporation. All Rights Reserved.
Intel and the Intel logo are trademarks of Intel Corporation
or its subsidiaries in the U.S. and/or other countries.
diff --git a/lib/tbb_2019_U8/build/vs2013/makefile.sln b/lib/tbb_2020.3/build/vs2013/makefile.sln
similarity index 100%
rename from lib/tbb_2019_U8/build/vs2013/makefile.sln
rename to lib/tbb_2020.3/build/vs2013/makefile.sln
diff --git a/lib/tbb_2019_U8/build/vs2013/tbb.vcxproj b/lib/tbb_2020.3/build/vs2013/tbb.vcxproj
similarity index 96%
rename from lib/tbb_2019_U8/build/vs2013/tbb.vcxproj
rename to lib/tbb_2020.3/build/vs2013/tbb.vcxproj
index cbfcd3919d9..e1aa9b549d4 100644
--- a/lib/tbb_2019_U8/build/vs2013/tbb.vcxproj
+++ b/lib/tbb_2020.3/build/vs2013/tbb.vcxproj
@@ -170,7 +170,7 @@
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -198,7 +198,7 @@
X64
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -223,7 +223,7 @@
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreadedDLL
@@ -250,7 +250,7 @@
X64
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreadedDLL
@@ -273,7 +273,7 @@
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -301,7 +301,7 @@
X64
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -326,7 +326,7 @@
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreaded
@@ -353,7 +353,7 @@
X64
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBB_BUILD=1 /W4 /I../../src /I../../src/rml/include /I../../include
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreaded
diff --git a/lib/tbb_2019_U8/build/vs2013/tbbmalloc.vcxproj b/lib/tbb_2020.3/build/vs2013/tbbmalloc.vcxproj
similarity index 94%
rename from lib/tbb_2019_U8/build/vs2013/tbbmalloc.vcxproj
rename to lib/tbb_2020.3/build/vs2013/tbbmalloc.vcxproj
index 0a38cd5f65e..b8f21dd5d33 100644
--- a/lib/tbb_2019_U8/build/vs2013/tbbmalloc.vcxproj
+++ b/lib/tbb_2020.3/build/vs2013/tbbmalloc.vcxproj
@@ -170,7 +170,7 @@
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -197,7 +197,7 @@
X64
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
Disabled
.;%(AdditionalIncludeDirectories)
false
@@ -222,7 +222,7 @@
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreadedDLL
@@ -248,7 +248,7 @@
X64
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreadedDLL
@@ -271,7 +271,7 @@
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -298,7 +298,7 @@
X64
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
Disabled
.;%(AdditionalIncludeDirectories)
false
@@ -323,7 +323,7 @@
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreaded
@@ -347,7 +347,7 @@
X64
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc /I.
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
MultiThreaded
diff --git a/lib/tbb_2019_U8/build/vs2013/tbbmalloc_proxy.vcxproj b/lib/tbb_2020.3/build/vs2013/tbbmalloc_proxy.vcxproj
similarity index 91%
rename from lib/tbb_2019_U8/build/vs2013/tbbmalloc_proxy.vcxproj
rename to lib/tbb_2020.3/build/vs2013/tbbmalloc_proxy.vcxproj
index 758bb517413..23dac2f64b0 100644
--- a/lib/tbb_2019_U8/build/vs2013/tbbmalloc_proxy.vcxproj
+++ b/lib/tbb_2020.3/build/vs2013/tbbmalloc_proxy.vcxproj
@@ -170,7 +170,7 @@
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -199,7 +199,7 @@
X64
- /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MDd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
Disabled
.;%(AdditionalIncludeDirectories)
false
@@ -227,7 +227,7 @@
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -256,7 +256,7 @@
X64
- /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MD /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -282,7 +282,7 @@
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
Disabled
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -311,7 +311,7 @@
X64
- /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MTd /Od /Ob0 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /DTBB_USE_DEBUG /D__TBB_LIB_NAME=tbb_debug.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
Disabled
.;%(AdditionalIncludeDirectories)
false
@@ -339,7 +339,7 @@
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
@@ -368,7 +368,7 @@
X64
- /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
+ /c /MT /O2 /Zi /EHsc /GR /Zc:forScope /Zc:wchar_t /DTBB_SUPPRESS_DEPRECATED_MESSAGES=1 /D__TBB_LIB_NAME=tbb.lib /DDO_ITT_NOTIFY /GS /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0502 /W4 /D__TBBMALLOC_BUILD=1 /I../../src /I../../src/rml/include /I../../include /I../../src/tbbmalloc /I../../src/tbbmalloc
.;%(AdditionalIncludeDirectories)
%(PreprocessorDefinitions)
diff --git a/lib/tbb_2019_U8/build/vs2013/version_string.ver b/lib/tbb_2020.3/build/vs2013/version_string.ver
similarity index 100%
rename from lib/tbb_2019_U8/build/vs2013/version_string.ver
rename to lib/tbb_2020.3/build/vs2013/version_string.ver
diff --git a/lib/tbb_2019_U8/build/windows.cl.inc b/lib/tbb_2020.3/build/windows.cl.inc
similarity index 99%
rename from lib/tbb_2019_U8/build/windows.cl.inc
rename to lib/tbb_2020.3/build/windows.cl.inc
index b937692c15c..732b854f6dd 100644
--- a/lib/tbb_2019_U8/build/windows.cl.inc
+++ b/lib/tbb_2020.3/build/windows.cl.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/build/windows.gcc.inc b/lib/tbb_2020.3/build/windows.gcc.inc
similarity index 98%
rename from lib/tbb_2019_U8/build/windows.gcc.inc
rename to lib/tbb_2020.3/build/windows.gcc.inc
index 4d2be27c636..dc123eedc9c 100644
--- a/lib/tbb_2019_U8/build/windows.gcc.inc
+++ b/lib/tbb_2020.3/build/windows.gcc.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -85,7 +85,6 @@ ifeq (ok,$(call detect_js,/minversion gcc 6.0))
endif
ifeq ($(cfg), release)
-# CPLUS_FLAGS = -g -O2
CPLUS_FLAGS = -O2
endif
ifeq ($(cfg), debug)
diff --git a/lib/tbb_2019_U8/build/windows.icl.inc b/lib/tbb_2020.3/build/windows.icl.inc
similarity index 92%
rename from lib/tbb_2019_U8/build/windows.icl.inc
rename to lib/tbb_2020.3/build/windows.icl.inc
index 8010d5fc3c6..e3b0c0ff338 100644
--- a/lib/tbb_2019_U8/build/windows.icl.inc
+++ b/lib/tbb_2020.3/build/windows.icl.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -51,6 +51,11 @@ ifeq (ok,$(call detect_js,/minversion icl 17 4))
VS2017_SUPPORT = yes
endif
+# ICC 19.0.4 and higher provide support for VS2019
+ifeq (ok,$(call detect_js,/minversion icl 19 4))
+ VS2019_SUPPORT = yes
+endif
+
ifeq ($(runtime), vc_mt)
MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
else
@@ -59,7 +64,7 @@ endif
EH_FLAGS = $(if $(no_exceptions),/EHs-,/EHsc /GR)
ifeq ($(cfg), release)
- CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
+ CPLUS_FLAGS = $(MS_CRT_KEY) /O2 /Zi /Qopt-report-embed- $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /D__TBB_LIB_NAME=$(TBB.LIB)
ASM_FLAGS =
endif
ifeq ($(cfg), debug)
@@ -110,7 +115,7 @@ ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := $(if $(findstring vc8, $(VCVERSION)),/Qvc8)
endif
ifeq ($(VCCOMPAT_FLAG),)
- VCCOMPAT_FLAG := $(if $(findstring vc_mt, $(VCVERSION)),/Qvc10)
+ VCCOMPAT_FLAG := $(if $(findstring vc_mt, $(VCVERSION)),/Qvc14)
endif
ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := $(if $(findstring vc9, $(VCVERSION)),/Qvc9)
@@ -131,6 +136,11 @@ ifeq ($(VCCOMPAT_FLAG),)
VCCOMPAT_FLAG := /Qvc14.1
endif
endif
+ ifeq ($(VS2019_SUPPORT),yes)
+ ifneq (,$(findstring vc14.2, $(VCVERSION)))
+ VCCOMPAT_FLAG := /Qvc14.2
+ endif
+ endif
endif
ifeq ($(VCCOMPAT_FLAG),)
$(error VC version not detected correctly: $(VCVERSION) )
diff --git a/lib/tbb_2019_U8/build/windows.inc b/lib/tbb_2020.3/build/windows.inc
similarity index 90%
rename from lib/tbb_2019_U8/build/windows.inc
rename to lib/tbb_2020.3/build/windows.inc
index fdb9d5b8c33..dafd8928523 100644
--- a/lib/tbb_2019_U8/build/windows.inc
+++ b/lib/tbb_2020.3/build/windows.inc
@@ -1,4 +1,4 @@
-# Copyright (c) 2005-2019 Intel Corporation
+# Copyright (c) 2005-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -59,7 +59,11 @@ def_prefix = $(if $(findstring intel64,$(arch)),win64,win32)
# Target Windows version. Do not increase beyond 0x0502 without prior discussion!
# Used as the value for macro definition option in windows.cl.inc etc.
# For tests, we need at least Windows XP SP2 for sake of enabling stack backtraces.
+ifeq (1,$(tbb_cpf))
+_WIN32_WINNT=0x0600
+else
_WIN32_WINNT=0x0502
+endif
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
TBB.DEF = $(TBB.LST:.lst=.def)
@@ -68,13 +72,20 @@ TBB.LIB = tbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(LIBEXT)
TBB.RES = tbb_resource.res
# On Windows, we use #pragma comment to set the proper TBB lib to link with.
# But for cross-configuration testing, need to link explicitly.
-# Tests use this variable to detect dependency on TBB binary, so have to be non-empty.
+# Tests use this variable to detect dependency on TBB binary, so have to be non-empty.
LINK_TBB.LIB = $(if $(crosstest),$(TBB.LIB),$(DEFINE_KEY)__TBB_IMPLICITLY_LINKED)
TBB.MANIFEST =
ifneq ($(filter vc8 vc9,$(runtime)),)
TBB.MANIFEST = tbbmanifest.exe.manifest
endif
+TBBBIND.DEF = $(tbb_root)/src/tbb/$(def_prefix)-tbbbind-export.def
+TBBBIND.DLL = tbbbind$(DEBUG_SUFFIX).$(DLL)
+TBBBIND.LIB = tbbbind$(DEBUG_SUFFIX).$(LIBEXT)
+TBBBIND.RES = tbbbind.res
+LINK_TBBBIND.LIB = $(TBBBIND.LIB)
+HWLOC.LIB = libhwloc.$(LIBEXT)
+
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
MALLOC.DLL = tbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = tbbmalloc$(DEBUG_SUFFIX).$(LIBEXT)
diff --git a/lib/tbb_2019_U8/cmake/README.rst b/lib/tbb_2020.3/cmake/README.rst
similarity index 96%
rename from lib/tbb_2019_U8/cmake/README.rst
rename to lib/tbb_2020.3/cmake/README.rst
index 3b16c37c144..6997a437540 100644
--- a/lib/tbb_2019_U8/cmake/README.rst
+++ b/lib/tbb_2020.3/cmake/README.rst
@@ -30,7 +30,7 @@ Visit our `forum `_ has the following format: ``find_package(TBB .. ...)``. TBB interface version can also be obtained in the customer project via the ``TBB_INTERFACE_VERSION`` variable.
+* TBB versioning via `find_package `_ has the following format: ``find_package(TBB . ...)``.
Use cases of TBB integration into CMake-aware projects
------------------------------------------------------------
@@ -197,6 +197,7 @@ If ``tbbmalloc_proxy`` is requested, ``tbbmalloc`` component will also be added
TBBConfig creates `imported targets `_ as
shared libraries using the following format: ``TBB::`` (for example, ``TBB::tbb``, ``TBB::tbbmalloc``).
+Set ``TBB_FIND_RELEASE_ONLY`` to ``TRUE`` before ``find_package`` call in order to search only for release TBB version. This variable helps to avoid simultaneous linkage of release and debug TBB versions when CMake configuration is `Debug` but a third-party component depends on release TBB version.
Variables set during TBB configuration:
========================= ================================================
@@ -206,7 +207,7 @@ Variables set during TBB configuration:
``TBB__FOUND`` specific TBB component is found
``TBB_IMPORTED_TARGETS`` all created TBB imported targets
``TBB_VERSION`` TBB version (format: ``.``)
-``TBB_INTERFACE_VERSION`` TBB interface version
+``TBB_INTERFACE_VERSION`` TBB interface version (can be empty, see below for details)
========================= ================================================
TBBInstallConfig
@@ -219,7 +220,7 @@ Provides the following functions:
.. code:: cmake
tbb_install_config(INSTALL_DIR SYSTEM_NAME Linux|Darwin|Windows
- [TBB_VERSION ..|TBB_VERSION_FILE ]
+ [TBB_VERSION .|TBB_VERSION_FILE ]
[LIB_REL_PATH INC_REL_PATH ]
[LIB_PATH INC_PATH ])``
@@ -241,8 +242,8 @@ The use case is applicable for package maintainers who create own TBB packages a
``SYSTEM_NAME Linux|Darwin|Windows`` OS name to generate config files for
``TBB_VERSION_FILE `` Path to ``tbb_stddef.h`` to parse version from and
write it to TBBConfigVersion.cmake
-``TBB_VERSION ..`` Directly specified TBB version;
- alternative to ``TBB_VERSION_FILE`` parameter
+``TBB_VERSION .`` Directly specified TBB version; alternative to ``TBB_VERSION_FILE`` parameter;
+ ``TBB_INTERFACE_VERSION`` is set to empty value in this case
``LIB_REL_PATH `` Relative path to TBB binaries (.lib files on Windows), default: ``../../../lib``
``BIN_REL_PATH `` Relative path to TBB DLLs, default: ``../../../bin`` (applicable for Windows only)
``INC_REL_PATH `` Relative path to TBB headers, default: ``../../../include``
diff --git a/lib/tbb_2019_U8/cmake/TBBBuild.cmake b/lib/tbb_2020.3/cmake/TBBBuild.cmake
similarity index 98%
rename from lib/tbb_2019_U8/cmake/TBBBuild.cmake
rename to lib/tbb_2020.3/cmake/TBBBuild.cmake
index a2222e3578b..e4831d09c55 100644
--- a/lib/tbb_2019_U8/cmake/TBBBuild.cmake
+++ b/lib/tbb_2020.3/cmake/TBBBuild.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -54,7 +54,7 @@ function(tbb_build)
set(multiValueArgs USER_DEFINED_ARGS)
cmake_parse_arguments(tbb_GMA "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
- set(result ${tbb_GMA_USER_DEFINED_ARGS})
+ set(result "${tbb_GMA_USER_DEFINED_ARGS}")
if (NOT tbb_GMA_USER_DEFINED_ARGS MATCHES "compiler=")
# TODO: add other supported compilers.
diff --git a/lib/tbb_2019_U8/cmake/TBBGet.cmake b/lib/tbb_2020.3/cmake/TBBGet.cmake
similarity index 98%
rename from lib/tbb_2019_U8/cmake/TBBGet.cmake
rename to lib/tbb_2020.3/cmake/TBBGet.cmake
index 87872931ca2..230edcab578 100644
--- a/lib/tbb_2019_U8/cmake/TBBGet.cmake
+++ b/lib/tbb_2020.3/cmake/TBBGet.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -198,7 +198,7 @@ function(_tbb_get_url)
return()
endif()
- string(REGEX REPLACE ".*(https.*oss_${tbb_lib_archive_suffix}).*" "\\1" tbb_bin_url "${tbb_release_info}")
+ string(REGEX REPLACE ".*(https.*${tbb_lib_archive_suffix}).*" "\\1" tbb_bin_url "${tbb_release_info}")
set(${tbb_get_url_URL} ${tbb_bin_url} PARENT_SCOPE)
endif()
diff --git a/lib/tbb_2019_U8/cmake/TBBInstallConfig.cmake b/lib/tbb_2020.3/cmake/TBBInstallConfig.cmake
similarity index 96%
rename from lib/tbb_2019_U8/cmake/TBBInstallConfig.cmake
rename to lib/tbb_2020.3/cmake/TBBInstallConfig.cmake
index b6ed34b0bc9..e846fe3d849 100644
--- a/lib/tbb_2019_U8/cmake/TBBInstallConfig.cmake
+++ b/lib/tbb_2020.3/cmake/TBBInstallConfig.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Intel Corporation
+# Copyright (c) 2019-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -83,8 +83,8 @@ function(tbb_install_config)
file(READ ${tbb_version_file} _tbb_stddef)
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}")
- string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" _tbb_ver_interface "${_tbb_stddef}")
- set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}.${_tbb_ver_interface}")
+ string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
+ set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
endif()
# ------
diff --git a/lib/tbb_2019_U8/cmake/TBBMakeConfig.cmake b/lib/tbb_2020.3/cmake/TBBMakeConfig.cmake
similarity index 79%
rename from lib/tbb_2019_U8/cmake/TBBMakeConfig.cmake
rename to lib/tbb_2020.3/cmake/TBBMakeConfig.cmake
index bbcb990b328..8c2c78be53e 100644
--- a/lib/tbb_2019_U8/cmake/TBBMakeConfig.cmake
+++ b/lib/tbb_2020.3/cmake/TBBMakeConfig.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -56,33 +56,16 @@ function(tbb_make_config)
set(TBB_LIB_EXT "so.2")
# Note: multiline variable
- set(TBB_CHOOSE_COMPILER_SUBDIR "if (CMAKE_CXX_COMPILER_LOADED)
- set(_tbb_compiler_id \${CMAKE_CXX_COMPILER_ID})
- set(_tbb_compiler_ver \${CMAKE_CXX_COMPILER_VERSION})
-elseif (CMAKE_C_COMPILER_LOADED)
- set(_tbb_compiler_id \${CMAKE_C_COMPILER_ID})
- set(_tbb_compiler_ver \${CMAKE_C_COMPILER_VERSION})
-endif()
+ set(TBB_CHOOSE_COMPILER_SUBDIR "set(_tbb_compiler_subdir gcc4.8)
# For non-GCC compilers try to find version of system GCC to choose right compiler subdirectory.
-if (NOT _tbb_compiler_id STREQUAL \"GNU\")
- execute_process(COMMAND gcc --version OUTPUT_VARIABLE _tbb_gcc_ver_output ERROR_QUIET)
- string(REGEX REPLACE \".*gcc.*([0-9]+\\\\.[0-9]+)\\\\.[0-9]+.*\" \"\\\\1\" _tbb_compiler_ver \"\${_tbb_gcc_ver_output}\")
- if (NOT _tbb_compiler_ver)
+if (NOT CMAKE_CXX_COMPILER_ID STREQUAL \"GNU\" AND NOT CMAKE_C_COMPILER_ID STREQUAL \"GNU\")
+ find_program(_gcc_executable gcc)
+ if (NOT _gcc_executable)
message(FATAL_ERROR \"This Intel TBB package is intended to be used only in environment with available 'gcc'\")
endif()
- unset(_tbb_gcc_ver_output)
-endif()
-
-set(_tbb_compiler_subdir gcc4.1)
-foreach (_tbb_gcc_version 4.1 4.4 4.7)
- if (NOT _tbb_compiler_ver VERSION_LESS \${_tbb_gcc_version})
- set(_tbb_compiler_subdir gcc\${_tbb_gcc_version})
- endif()
-endforeach()
-
-unset(_tbb_compiler_id)
-unset(_tbb_compiler_ver)")
+ unset(_gcc_executable)
+endif()")
elseif (tbb_system_name STREQUAL "Windows")
set(TBB_SHARED_LIB_DIR "bin")
@@ -96,23 +79,14 @@ unset(_tbb_compiler_ver)")
message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC\")
endif()
-# Detect the most relevant MSVC subdirectory
-set(_tbb_msvc_1700_subdir vc11)
-set(_tbb_msvc_1800_subdir vc12)
-set(_tbb_msvc_1900_subdir vc14)
-set(_tbb_msvc_ver \${MSVC_VERSION})
-if (MSVC_VERSION VERSION_LESS 1700)
- message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC version 1700 (vc11) or higher\")
-elseif (MSVC_VERSION VERSION_GREATER 1900)
- set(_tbb_msvc_ver 1900)
+if (MSVC_VERSION VERSION_LESS 1900)
+ message(FATAL_ERROR \"This Intel TBB package is intended to be used only in the project with MSVC version 1900 (vc14) or higher\")
endif()
-set(_tbb_compiler_subdir \${_tbb_msvc_\${_tbb_msvc_ver}_subdir})
-unset(_tbb_msvc_1700_subdir)
-unset(_tbb_msvc_1800_subdir)
-unset(_tbb_msvc_1900_subdir)
+
+set(_tbb_compiler_subdir vc14)
if (WINDOWS_STORE)
- set(_tbb_compiler_subdir \${_tbb_compiler_subdir}_ui)
+ set(_tbb_compiler_subdir \${_tbb_compiler_subdir}_uwp)
endif()")
if (tbb_MK_CONFIG_FOR_SOURCE)
@@ -153,7 +127,7 @@ endif()")
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_stddef}")
string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_stddef}")
- set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}.${TBB_INTERFACE_VERSION}")
+ set(TBB_VERSION "${_tbb_ver_major}.${_tbb_ver_minor}")
if (tbb_MK_CONFIG_FOR_SOURCE)
set(TBB_CHOOSE_ARCH_AND_COMPILER "")
diff --git a/lib/tbb_2019_U8/cmake/tbb_config_generator.cmake b/lib/tbb_2020.3/cmake/tbb_config_generator.cmake
similarity index 97%
rename from lib/tbb_2019_U8/cmake/tbb_config_generator.cmake
rename to lib/tbb_2020.3/cmake/tbb_config_generator.cmake
index 3f94efd1868..495fc45de70 100644
--- a/lib/tbb_2019_U8/cmake/tbb_config_generator.cmake
+++ b/lib/tbb_2020.3/cmake/tbb_config_generator.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/cmake/tbb_config_installer.cmake b/lib/tbb_2020.3/cmake/tbb_config_installer.cmake
similarity index 97%
rename from lib/tbb_2019_U8/cmake/tbb_config_installer.cmake
rename to lib/tbb_2020.3/cmake/tbb_config_installer.cmake
index fa165e8e131..b1b2d444a40 100644
--- a/lib/tbb_2019_U8/cmake/tbb_config_installer.cmake
+++ b/lib/tbb_2020.3/cmake/tbb_config_installer.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2019 Intel Corporation
+# Copyright (c) 2019-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/cmake/templates/TBBConfig.cmake.in b/lib/tbb_2020.3/cmake/templates/TBBConfig.cmake.in
similarity index 72%
rename from lib/tbb_2019_U8/cmake/templates/TBBConfig.cmake.in
rename to lib/tbb_2020.3/cmake/templates/TBBConfig.cmake.in
index 84e25399f80..744f1215695 100644
--- a/lib/tbb_2019_U8/cmake/templates/TBBConfig.cmake.in
+++ b/lib/tbb_2020.3/cmake/templates/TBBConfig.cmake.in
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -13,23 +13,12 @@
# limitations under the License.
# It defines the following variables:
-# TBB_tbb_FOUND
-# TBB_tbbmalloc_FOUND
-# TBB_tbbmalloc_proxy_FOUND
+# TBB__FOUND
# TBB_IMPORTED_TARGETS
#
# TBBConfigVersion.cmake defines TBB_VERSION
#
# Initialize to default values
-if (NOT TBB_tbb_FOUND)
- set(TBB_tbb_FOUND 0)
-endif()
-if (NOT TBB_tbbmalloc_FOUND)
- set(TBB_tbbmalloc_FOUND 0)
-endif()
-if (NOT TBB_tbbmalloc_proxy_FOUND)
- set(TBB_tbbmalloc_proxy_FOUND 0)
-endif()
if (NOT TBB_IMPORTED_TARGETS)
set(TBB_IMPORTED_TARGETS "")
endif()
@@ -41,6 +30,8 @@ if (NOT TBB_FIND_COMPONENTS)
endforeach()
endif()
+set(TBB_INTERFACE_VERSION @TBB_INTERFACE_VERSION@)
+
# Add components with internal dependencies: tbbmalloc_proxy -> tbbmalloc
list(FIND TBB_FIND_COMPONENTS tbbmalloc_proxy _tbbmalloc_proxy_ix)
if (NOT _tbbmalloc_proxy_ix EQUAL -1)
@@ -54,14 +45,24 @@ endif()
unset(_tbbmalloc_proxy_ix)
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
- set(_tbb_release_lib "${CMAKE_CURRENT_LIST_DIR}/@TBB_LIB_REL_PATH@/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
- set(_tbb_debug_lib "${CMAKE_CURRENT_LIST_DIR}/@TBB_LIB_REL_PATH@/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
+ set(TBB_${_tbb_component}_FOUND 0)
+
+ get_filename_component(_tbb_release_lib "${CMAKE_CURRENT_LIST_DIR}/@TBB_LIB_REL_PATH@/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@" ABSOLUTE)
+
+ if (NOT TBB_FIND_RELEASE_ONLY)
+ get_filename_component(_tbb_debug_lib "${CMAKE_CURRENT_LIST_DIR}/@TBB_LIB_REL_PATH@/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@" ABSOLUTE)
+ endif()
if (EXISTS "${_tbb_release_lib}" OR EXISTS "${_tbb_debug_lib}")
if (NOT TARGET TBB::${_tbb_component})
add_library(TBB::${_tbb_component} SHARED IMPORTED)
+
+ get_filename_component(_tbb_current_realpath "${CMAKE_CURRENT_LIST_DIR}" REALPATH)
+ get_filename_component(_tbb_include_dir "${_tbb_current_realpath}/@TBB_INC_REL_PATH@" ABSOLUTE)
set_target_properties(TBB::${_tbb_component} PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/@TBB_INC_REL_PATH@")
+ INTERFACE_INCLUDE_DIRECTORIES "${_tbb_include_dir}")
+ unset(_tbb_current_realpath)
+ unset(_tbb_include_dir)
if (EXISTS "${_tbb_release_lib}")
set_target_properties(TBB::${_tbb_component} PROPERTIES
@@ -79,17 +80,19 @@ foreach (_tbb_component ${TBB_FIND_COMPONENTS})
if (_tbb_component STREQUAL tbbmalloc_proxy)
set_target_properties(TBB::tbbmalloc_proxy PROPERTIES INTERFACE_LINK_LIBRARIES TBB::tbbmalloc)
endif()
- list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
- else()
- message(STATUS "Using previously found TBB::${_tbb_component}")
endif()
+ list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
set(TBB_${_tbb_component}_FOUND 1)
elseif (TBB_FIND_REQUIRED AND TBB_FIND_REQUIRED_${_tbb_component})
message(STATUS "Missed required Intel TBB component: ${_tbb_component}")
- message(STATUS " one or both of:\n ${_tbb_release_lib}\n ${_tbb_debug_lib}\n files must exist.")
+ if (TBB_FIND_RELEASE_ONLY)
+ message(STATUS " ${_tbb_release_lib} must exist.")
+ else()
+ message(STATUS " one or both of:\n ${_tbb_release_lib}\n ${_tbb_debug_lib}\n files must exist.")
+ endif()
set(TBB_FOUND FALSE)
- set(TBB_${_tbb_component}_FOUND 0)
endif()
endforeach()
+list(REMOVE_DUPLICATES TBB_IMPORTED_TARGETS)
unset(_tbb_release_lib)
unset(_tbb_debug_lib)
diff --git a/lib/tbb_2019_U8/cmake/templates/TBBConfigInternal.cmake.in b/lib/tbb_2020.3/cmake/templates/TBBConfigInternal.cmake.in
similarity index 52%
rename from lib/tbb_2019_U8/cmake/templates/TBBConfigInternal.cmake.in
rename to lib/tbb_2020.3/cmake/templates/TBBConfigInternal.cmake.in
index 40528c6df16..ba161301152 100644
--- a/lib/tbb_2019_U8/cmake/templates/TBBConfigInternal.cmake.in
+++ b/lib/tbb_2020.3/cmake/templates/TBBConfigInternal.cmake.in
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -12,8 +12,16 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-# TBB_FOUND should not be set explicitly. It is defined automatically by CMake.
-# Handling of TBB_VERSION is in TBBConfigVersion.cmake.
+# It defines the following variables:
+# TBB__FOUND
+# TBB_IMPORTED_TARGETS
+#
+# TBBConfigVersion.cmake defines TBB_VERSION
+#
+# Initialize to default values
+if (NOT TBB_IMPORTED_TARGETS)
+ set(TBB_IMPORTED_TARGETS "")
+endif()
if (NOT TBB_FIND_COMPONENTS)
set(TBB_FIND_COMPONENTS "@TBB_DEFAULT_COMPONENTS@")
@@ -38,39 +46,50 @@ get_filename_component(_tbb_root "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_tbb_root "${_tbb_root}" PATH)
@TBB_CHOOSE_ARCH_AND_COMPILER@
foreach (_tbb_component ${TBB_FIND_COMPONENTS})
+ set(TBB_${_tbb_component}_FOUND 0)
+
set(_tbb_release_lib "@TBB_RELEASE_LIB_PATH@/@TBB_LIB_PREFIX@${_tbb_component}.@TBB_LIB_EXT@")
- set(_tbb_debug_lib "@TBB_DEBUG_LIB_PATH@/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
- if (EXISTS "${_tbb_release_lib}" OR EXISTS "${_tbb_debug_lib}")
- add_library(TBB::${_tbb_component} SHARED IMPORTED)
- set_target_properties(TBB::${_tbb_component} PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_COMPILE_DEFINITIONS@)
+ if (NOT TBB_FIND_RELEASE_ONLY)
+ set(_tbb_debug_lib "@TBB_DEBUG_LIB_PATH@/@TBB_LIB_PREFIX@${_tbb_component}_debug.@TBB_LIB_EXT@")
+ endif()
- if (EXISTS "${_tbb_release_lib}")
+ if (EXISTS "${_tbb_release_lib}" OR EXISTS "${_tbb_debug_lib}")
+ if (NOT TARGET TBB::${_tbb_component})
+ add_library(TBB::${_tbb_component} SHARED IMPORTED)
set_target_properties(TBB::${_tbb_component} PROPERTIES
- IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}"@TBB_IMPLIB_RELEASE@)
- set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
- endif()
+ INTERFACE_INCLUDE_DIRECTORIES "${_tbb_root}/include"@TBB_COMPILE_DEFINITIONS@)
- if (EXISTS "${_tbb_debug_lib}")
- set_target_properties(TBB::${_tbb_component} PROPERTIES
- IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}"@TBB_IMPLIB_DEBUG@)
- set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
- endif()
+ if (EXISTS "${_tbb_release_lib}")
+ set_target_properties(TBB::${_tbb_component} PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${_tbb_release_lib}"@TBB_IMPLIB_RELEASE@)
+ set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ endif()
- # Add internal dependencies for imported targets: TBB::tbbmalloc_proxy -> TBB::tbbmalloc
- if (_tbb_component STREQUAL tbbmalloc_proxy)
- set_target_properties(TBB::tbbmalloc_proxy PROPERTIES INTERFACE_LINK_LIBRARIES TBB::tbbmalloc)
- endif()
+ if (EXISTS "${_tbb_debug_lib}")
+ set_target_properties(TBB::${_tbb_component} PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${_tbb_debug_lib}"@TBB_IMPLIB_DEBUG@)
+ set_property(TARGET TBB::${_tbb_component} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ endif()
+ # Add internal dependencies for imported targets: TBB::tbbmalloc_proxy -> TBB::tbbmalloc
+ if (_tbb_component STREQUAL tbbmalloc_proxy)
+ set_target_properties(TBB::tbbmalloc_proxy PROPERTIES INTERFACE_LINK_LIBRARIES TBB::tbbmalloc)
+ endif()
+ endif()
list(APPEND TBB_IMPORTED_TARGETS TBB::${_tbb_component})
set(TBB_${_tbb_component}_FOUND 1)
elseif (TBB_FIND_REQUIRED AND TBB_FIND_REQUIRED_${_tbb_component})
message(STATUS "Missed required Intel TBB component: ${_tbb_component}")
+ if (TBB_FIND_RELEASE_ONLY)
+ message(STATUS " ${_tbb_release_lib} must exist.")
+ else()
+ message(STATUS " one or both of:\n ${_tbb_release_lib}\n ${_tbb_debug_lib}\n files must exist.")
+ endif()
set(TBB_FOUND FALSE)
- set(TBB_${_tbb_component}_FOUND 0)
endif()
endforeach()
+list(REMOVE_DUPLICATES TBB_IMPORTED_TARGETS)
@TBB_UNSET_ADDITIONAL_VARIABLES@
unset(_tbbmalloc_proxy_ix)
unset(_tbbmalloc_ix)
diff --git a/lib/tbb_2019_U8/cmake/templates/TBBConfigVersion.cmake.in b/lib/tbb_2020.3/cmake/templates/TBBConfigVersion.cmake.in
similarity index 95%
rename from lib/tbb_2019_U8/cmake/templates/TBBConfigVersion.cmake.in
rename to lib/tbb_2020.3/cmake/templates/TBBConfigVersion.cmake.in
index 2e31c80edad..c7b107b0a9f 100644
--- a/lib/tbb_2019_U8/cmake/templates/TBBConfigVersion.cmake.in
+++ b/lib/tbb_2020.3/cmake/templates/TBBConfigVersion.cmake.in
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2019 Intel Corporation
+# Copyright (c) 2017-2020 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/doc/Release_Notes.txt b/lib/tbb_2020.3/doc/Release_Notes.txt
similarity index 58%
rename from lib/tbb_2019_U8/doc/Release_Notes.txt
rename to lib/tbb_2020.3/doc/Release_Notes.txt
index 0ed0c2e2499..23b3f8150ac 100644
--- a/lib/tbb_2019_U8/doc/Release_Notes.txt
+++ b/lib/tbb_2020.3/doc/Release_Notes.txt
@@ -1,16 +1,23 @@
------------------------------------------------------------------------
Intel(R) Threading Building Blocks - Release Notes
- Version 2019
+ Version 2020
------------------------------------------------------------------------
+Intel(R) Threading Building Blocks (Intel(R) TBB) is planned to be
+improved through renewal and update with latest C++ standards to increase
+usability. Evaluation of some Intel(R) TBB features removal will be
+conducted in some future releases. Features under consideration are mapped
+to updated options as described in the 'TBB Revamp: Background,Changes,
+and Modernization'
+(see https://software.intel.com/en-us/articles/tbb-revamp).
System Requirements
-------------------
-Intel(R) Threading Building Blocks (Intel(R) TBB) is available
-commercially (see http://software.intel.com/en-us/intel-tbb) as a
-binary distribution, and in open source, in both source and binary
-forms (see http://threadingbuildingblocks.org).
+Intel(R) Threading Building Blocks is available commercially
+(see http://software.intel.com/en-us/intel-tbb) as a binary distribution,
+and in open source, in both source and binary forms
+(see https://github.com/intel/tbb).
When built from source, Intel(R) TBB is intended to be highly portable
and so supports a wide variety of operating systems and platforms (see
@@ -25,11 +32,9 @@ Hardware - Recommended
Microsoft* Windows* Systems
Intel(R) Core(TM) processor family
Intel(R) Xeon(R) processor family
- Intel(R) Xeon Phi(TM) processor family
Linux* Systems
Intel(R) Core(TM) processor family
Intel(R) Xeon(R) processor family
- Intel(R) Xeon Phi(TM) processor family
macOS* Systems
Intel(R) Core(TM) processor family
Android* Systems
@@ -37,8 +42,8 @@ Hardware - Recommended
Hardware - Supported
- Intel(R) Pentium(R) 4 processor family
- Intel(R) Xeon Phi(TM) coprocessor
+ Intel(R) Pentium(R) processor family
+ Intel(R) Xeon Phi(TM) processor family
Intel(R) Atom(TM) processor family
Non Intel(R) processors compatible with the above processors
@@ -49,40 +54,34 @@ Software - Minimum Requirements
Software - Recommended
- Intel(R) Parallel Studio XE 2018, 2019
- Intel(R) System Studio 2018, 2019
+ Intel(R) Parallel Studio XE 2019, 2020
+ Intel(R) System Studio 2019, 2020
Software - Supported Operating Systems
Systems with Microsoft* Windows* operating systems
Microsoft* Windows* 10
- Microsoft* Windows* 8.1
- Microsoft* Windows* 7 SP1
Microsoft* Windows* Server 2016
- Microsoft* Windows* Server 2012 R2
+ Microsoft* Windows* Server 2019
Systems with Linux* operating systems
- CentOS 7.1
- Debian* 8, 9
- Fedora* 27
+ CentOS* 7.1
+ Debian* 9, 10
+ Fedora* 30
Intel(R) Cluster Ready
- Red Hat* Enterprise Linux* 6, 7
- SuSE* Linux* Enterprise Server 12
- Ubuntu* 14.04 LTS, 16.04 LTS, 18.04 LTS
- WindRiver* Linux 8, 9
- Yocto 2.3
+ Red Hat* Enterprise Linux* 7, 8
+ SuSE* Linux* Enterprise Server 12,15
+ Ubuntu* 16.04 LTS, 18.04 LTS
+ Ubuntu* 19.04
+ WindRiver* Linux 9
+ Yocto* 2.3
Systems with OS X* or macOS* operating systems
- OS X* 10.11
- macOS* 10.12, 10.13
+ macOS* 10.14, 10.15
Systems with Android* operating systems
- Android* 5.x, 6.x, 7.x, 8.x
+ Android* 6.x, 7.x, 8.x, 9.x
Software - Supported Compilers
- Intel(R) C++ Compiler 17, 18 and 19 version
- Microsoft* Visual C++ 12.0 (Microsoft* Visual Studio* 2013,
- Windows* OS only)
- Microsoft* Visual C++ 14.0 (Microsoft* Visual Studio* 2015,
- Windows* OS only)
+ Intel(R) C++ Compiler 18, 19 and 19.1 version
Microsoft* Visual C++ 14.1 (Microsoft* Visual Studio* 2017,
Windows* OS only)
Microsoft* Visual C++ 14.2 (Microsoft* Visual Studio* 2019,
@@ -91,17 +90,17 @@ Software - Supported Compilers
Microsoft* Windows* Software Development Kit for Windows* 10
For each supported Linux* operating system, the standard gcc
version provided with that operating system is supported
- GNU Compilers (gcc) 4.1 - 7.1
- GNU C Library (glibc) version 2.4 - 2.19
- Clang* 3.8 - 7.0
- Xcode* 7.0 - 9.1
+ GNU Compilers (gcc) 4.8 - 9.1
+ GNU C Library (glibc) version 2.17 - 2.29
+ Clang* 3.8 - 8.0
+ Xcode* 8.x - 11.x
Android* NDK r10e - r17b
Software - Supported Performance Analysis Tools
- Intel(R) VTune(TM) Amplifier XE 2018, 2019
- Intel(R) Inspector XE 2018, 2019
- Intel(R) Advisor XE 2018, 2019
+ Intel(R) VTune(TM) Amplifier XE 2019, 2020
+ Intel(R) Inspector XE 2019, 2020
+ Intel(R) Advisor XE 2019, 2020
Known Issues
------------
@@ -113,16 +112,17 @@ Reference for notes applicable to multiple releases of Intel(R) TBB.
Library Issues
- - If you build Intel(R) TBB from sources with GCC 6, specify
- the -flifetime-dse=1 option to prevent crashes at runtime,
- or use Intel(R) TBB makefiles that automatically set this option.
+ - If you build Intel(R) TBB from sources with GCC 6 or higher,
+ specify the -flifetime-dse=1 option to prevent crashes at
+ runtime, or use Intel(R) TBB makefiles that automatically set
+ this option.
------------------------------------------------------------------------
-(C) 2019 Intel Corporation
+(C) 2020 Intel Corporation
-Intel, the Intel logo, Intel Core, Intel Atom, Xeon, Intel Xeon Phi and
-Pentium are trademarks of Intel Corporation in the U.S. and/or other
-countries.
+Intel, the Intel logo, Intel Core, Intel Atom, Celeron, Xeon,
+Intel Xeon Phi and Pentium are trademarks of Intel Corporation
+in the U.S. and/or other countries
* Other names and brands may be claimed as the property of others.
diff --git a/lib/tbb_2019_U8/doc/copyright_brand_disclaimer_doxygen.txt b/lib/tbb_2020.3/doc/copyright_brand_disclaimer_doxygen.txt
similarity index 81%
rename from lib/tbb_2019_U8/doc/copyright_brand_disclaimer_doxygen.txt
rename to lib/tbb_2020.3/doc/copyright_brand_disclaimer_doxygen.txt
index 5a51272d743..73780e34dc1 100644
--- a/lib/tbb_2019_U8/doc/copyright_brand_disclaimer_doxygen.txt
+++ b/lib/tbb_2020.3/doc/copyright_brand_disclaimer_doxygen.txt
@@ -1,6 +1,6 @@
-Copyright © 2005-2019 Intel Corporation. All Rights Reserved.
+Copyright © 2005-2020 Intel Corporation. All Rights Reserved.
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
diff --git a/lib/tbb_2019_U8/include/index.html b/lib/tbb_2020.3/include/index.html
similarity index 91%
rename from lib/tbb_2019_U8/include/index.html
rename to lib/tbb_2020.3/include/index.html
index 7895ced2fb5..c8698efbdb2 100644
--- a/lib/tbb_2019_U8/include/index.html
+++ b/lib/tbb_2020.3/include/index.html
@@ -15,7 +15,7 @@ Directories
Up to parent directory
-Copyright © 2005-2019 Intel Corporation. All Rights Reserved.
+Copyright © 2005-2020 Intel Corporation. All Rights Reserved.
Intel is a registered trademark or trademark of Intel Corporation
or its subsidiaries in the United States and other countries.
diff --git a/lib/tbb_2019_U8/include/serial/tbb/parallel_for.h b/lib/tbb_2020.3/include/serial/tbb/parallel_for.h
similarity index 75%
rename from lib/tbb_2019_U8/include/serial/tbb/parallel_for.h
rename to lib/tbb_2020.3/include/serial/tbb/parallel_for.h
index 5b42a67086a..4e6111b77d5 100644
--- a/lib/tbb_2019_U8/include/serial/tbb/parallel_for.h
+++ b/lib/tbb_2020.3/include/serial/tbb/parallel_for.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,6 +14,17 @@
limitations under the License.
*/
+#include "../../tbb/internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_parallel_for_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_parallel_for_H
+#pragma message("TBB Warning: serial/tbb/parallel_for.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef __TBB_SERIAL_parallel_for_H
#define __TBB_SERIAL_parallel_for_H
@@ -94,35 +105,35 @@ void start_for< Range, Body, Partitioner >::execute() {
//! Parallel iteration over range with default partitioner.
/** @ingroup algorithms **/
template
-void parallel_for( const Range& range, const Body& body ) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for( const Range& range, const Body& body ) {
serial::interface9::start_for::run(range,body,__TBB_DEFAULT_PARTITIONER());
}
//! Parallel iteration over range with simple partitioner.
/** @ingroup algorithms **/
template
-void parallel_for( const Range& range, const Body& body, const simple_partitioner& partitioner ) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for( const Range& range, const Body& body, const simple_partitioner& partitioner ) {
serial::interface9::start_for::run(range,body,partitioner);
}
//! Parallel iteration over range with auto_partitioner.
/** @ingroup algorithms **/
template
-void parallel_for( const Range& range, const Body& body, const auto_partitioner& partitioner ) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for( const Range& range, const Body& body, const auto_partitioner& partitioner ) {
serial::interface9::start_for::run(range,body,partitioner);
}
//! Parallel iteration over range with static_partitioner.
/** @ingroup algorithms **/
template
-void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner ) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for( const Range& range, const Body& body, const static_partitioner& partitioner ) {
serial::interface9::start_for::run(range,body,partitioner);
}
//! Parallel iteration over range with affinity_partitioner.
/** @ingroup algorithms **/
template
-void parallel_for( const Range& range, const Body& body, affinity_partitioner& partitioner ) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for( const Range& range, const Body& body, affinity_partitioner& partitioner ) {
serial::interface9::start_for::run(range,body,partitioner);
}
@@ -150,53 +161,53 @@ void parallel_for_impl(Index first, Index last, Index step, const Function& f, P
//! Parallel iteration over a range of integers with explicit step and default partitioner
template
-void parallel_for(Index first, Index last, Index step, const Function& f) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, Index step, const Function& f) {
parallel_for_impl(first, last, step, f, auto_partitioner());
}
//! Parallel iteration over a range of integers with explicit step and simple partitioner
template
-void parallel_for(Index first, Index last, Index step, const Function& f, const simple_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, Index step, const Function& f, const simple_partitioner& p) {
parallel_for_impl(first, last, step, f, p);
}
//! Parallel iteration over a range of integers with explicit step and auto partitioner
template
-void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, Index step, const Function& f, const auto_partitioner& p) {
parallel_for_impl(first, last, step, f, p);
}
//! Parallel iteration over a range of integers with explicit step and static partitioner
template
-void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, Index step, const Function& f, const static_partitioner& p) {
parallel_for_impl(first, last, step, f, p);
}
//! Parallel iteration over a range of integers with explicit step and affinity partitioner
template
-void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, Index step, const Function& f, affinity_partitioner& p) {
parallel_for_impl(first, last, step, f, p);
}
//! Parallel iteration over a range of integers with default step and default partitioner
template
-void parallel_for(Index first, Index last, const Function& f) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, const Function& f) {
parallel_for_impl(first, last, static_cast(1), f, auto_partitioner());
}
//! Parallel iteration over a range of integers with default step and simple partitioner
template
-void parallel_for(Index first, Index last, const Function& f, const simple_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, const Function& f, const simple_partitioner& p) {
parallel_for_impl(first, last, static_cast(1), f, p);
}
//! Parallel iteration over a range of integers with default step and auto partitioner
template
- void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, const Function& f, const auto_partitioner& p) {
parallel_for_impl(first, last, static_cast(1), f, p);
}
//! Parallel iteration over a range of integers with default step and static partitioner
template
-void parallel_for(Index first, Index last, const Function& f, const static_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, const Function& f, const static_partitioner& p) {
parallel_for_impl(first, last, static_cast(1), f, p);
}
//! Parallel iteration over a range of integers with default step and affinity_partitioner
template
-void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& p) {
+__TBB_DEPRECATED_IN_VERBOSE_MODE void parallel_for(Index first, Index last, const Function& f, affinity_partitioner& p) {
parallel_for_impl(first, last, static_cast(1), f, p);
}
diff --git a/lib/tbb_2019_U8/include/serial/tbb/tbb_annotate.h b/lib/tbb_2020.3/include/serial/tbb/tbb_annotate.h
similarity index 95%
rename from lib/tbb_2019_U8/include/serial/tbb/tbb_annotate.h
rename to lib/tbb_2020.3/include/serial/tbb/tbb_annotate.h
index 6b79be2d01d..3e67e4c439c 100644
--- a/lib/tbb_2019_U8/include/serial/tbb/tbb_annotate.h
+++ b/lib/tbb_2020.3/include/serial/tbb/tbb_annotate.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/include/tbb/aggregator.h b/lib/tbb_2020.3/include/tbb/aggregator.h
similarity index 97%
rename from lib/tbb_2019_U8/include/tbb/aggregator.h
rename to lib/tbb_2020.3/include/tbb/aggregator.h
index 33e83679e76..786c52c84d0 100644
--- a/lib/tbb_2019_U8/include/tbb/aggregator.h
+++ b/lib/tbb_2020.3/include/tbb/aggregator.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB__aggregator_H
#define __TBB__aggregator_H
+#define __TBB_aggregator_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#if !TBB_PREVIEW_AGGREGATOR
#error Set TBB_PREVIEW_AGGREGATOR before including aggregator.h
#endif
@@ -195,4 +198,7 @@ using interface6::aggregator_operation;
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_aggregator_H_include_area
+
#endif // __TBB__aggregator_H
diff --git a/lib/tbb_2019_U8/include/tbb/aligned_space.h b/lib/tbb_2020.3/include/tbb/aligned_space.h
similarity index 61%
rename from lib/tbb_2019_U8/include/tbb/aligned_space.h
rename to lib/tbb_2020.3/include/tbb/aligned_space.h
index 03b09d0981b..1b047f97aaf 100644
--- a/lib/tbb_2019_U8/include/tbb/aligned_space.h
+++ b/lib/tbb_2020.3/include/tbb/aligned_space.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,9 +14,23 @@
limitations under the License.
*/
+#include "internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_aligned_space_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_aligned_space_H
+#pragma message("TBB Warning: tbb/aligned_space.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef __TBB_aligned_space_H
#define __TBB_aligned_space_H
+#define __TBB_aligned_space_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "tbb_stddef.h"
#include "tbb_machine.h"
@@ -26,7 +40,7 @@ namespace tbb {
/** The elements are not constructed or destroyed by this class.
@ingroup memory_allocation */
template
-class aligned_space {
+class __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::aligned_space is deprecated, use std::aligned_storage") aligned_space {
private:
typedef __TBB_TypeWithAlignmentAtLeastAsStrict(T) element_type;
element_type array[(sizeof(T)*N+sizeof(element_type)-1)/sizeof(element_type)];
@@ -40,4 +54,7 @@ class aligned_space {
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_aligned_space_H_include_area
+
#endif /* __TBB_aligned_space_H */
diff --git a/lib/tbb_2019_U8/include/tbb/atomic.h b/lib/tbb_2020.3/include/tbb/atomic.h
similarity index 88%
rename from lib/tbb_2019_U8/include/tbb/atomic.h
rename to lib/tbb_2020.3/include/tbb/atomic.h
index 92d1e11ae4f..e602306f279 100644
--- a/lib/tbb_2019_U8/include/tbb/atomic.h
+++ b/lib/tbb_2020.3/include/tbb/atomic.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,9 +14,23 @@
limitations under the License.
*/
+#include "internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_atomic_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_atomic_H
+#pragma message("TBB Warning: tbb/atomic.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef __TBB_atomic_H
#define __TBB_atomic_H
+#define __TBB_atomic_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include
#if _MSC_VER
@@ -400,10 +414,12 @@ struct atomic_impl_with_arithmetic: atomic_impl {
/** See the Reference for details.
@ingroup synchronization */
template
-struct atomic: internal::atomic_impl {
+struct __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::atomic is deprecated, use std::atomic")
+atomic: internal::atomic_impl {
#if __TBB_ATOMIC_CTORS
atomic() = default;
constexpr atomic(T arg): internal::atomic_impl(arg) {}
+ constexpr atomic(const atomic& rhs): internal::atomic_impl(rhs) {}
#endif
T operator=( T rhs ) {
// "this" required here in strict ISO C++ because store_with_release is a dependent name
@@ -414,16 +430,20 @@ struct atomic: internal::atomic_impl {
#if __TBB_ATOMIC_CTORS
#define __TBB_DECL_ATOMIC(T) \
- template<> struct atomic: internal::atomic_impl_with_arithmetic { \
+ template<> struct __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::atomic is deprecated, use std::atomic") \
+ atomic: internal::atomic_impl_with_arithmetic { \
atomic() = default; \
constexpr atomic(T arg): internal::atomic_impl_with_arithmetic(arg) {} \
+ constexpr atomic(const atomic& rhs): \
+ internal::atomic_impl_with_arithmetic(rhs) {} \
\
T operator=( T rhs ) {return store_with_release(rhs);} \
atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \
};
#else
#define __TBB_DECL_ATOMIC(T) \
- template<> struct atomic: internal::atomic_impl_with_arithmetic { \
+ template<> struct __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::atomic is deprecated, use std::atomic") \
+ atomic: internal::atomic_impl_with_arithmetic { \
T operator=( T rhs ) {return store_with_release(rhs);} \
atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \
};
@@ -447,15 +467,20 @@ __TBB_DECL_ATOMIC(unsigned long)
type synonyms on the platform. Type U should be the wider variant of T from the
perspective of /Wp64. */
#define __TBB_DECL_ATOMIC_ALT(T,U) \
- template<> struct atomic: internal::atomic_impl_with_arithmetic { \
+ template<> struct __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::atomic is deprecated, use std::atomic") \
+ atomic: internal::atomic_impl_with_arithmetic { \
atomic() = default ; \
constexpr atomic(T arg): internal::atomic_impl_with_arithmetic(arg) {} \
+ constexpr atomic(const atomic& rhs): \
+ internal::atomic_impl_with_arithmetic(rhs) {} \
+ \
T operator=( U rhs ) {return store_with_release(T(rhs));} \
atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \
};
#else
#define __TBB_DECL_ATOMIC_ALT(T,U) \
- template<> struct atomic: internal::atomic_impl_with_arithmetic { \
+ template<> struct __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::atomic is deprecated, use std::atomic") \
+ atomic: internal::atomic_impl_with_arithmetic { \
T operator=( U rhs ) {return store_with_release(T(rhs));} \
atomic& operator=( const atomic& rhs ) {store_with_release(rhs); return *this;} \
};
@@ -478,10 +503,12 @@ __TBB_DECL_ATOMIC(wchar_t)
#endif /* _MSC_VER||!defined(_NATIVE_WCHAR_T_DEFINED) */
//! Specialization for atomic with arithmetic and operator->.
-template struct atomic: internal::atomic_impl_with_arithmetic {
+template struct __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::atomic is deprecated, use std::atomic")
+atomic: internal::atomic_impl_with_arithmetic {
#if __TBB_ATOMIC_CTORS
atomic() = default ;
constexpr atomic(T* arg): internal::atomic_impl_with_arithmetic(arg) {}
+ constexpr atomic(const atomic& rhs): internal::atomic_impl_with_arithmetic(rhs) {}
#endif
T* operator=( T* rhs ) {
// "this" required here in strict ISO C++ because store_with_release is a dependent name
@@ -496,10 +523,12 @@ template struct atomic: internal::atomic_impl_with_arithmetic, for sake of not allowing arithmetic or operator->.
-template<> struct atomic: internal::atomic_impl {
+template<> struct __TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::atomic is deprecated, use std::atomic")
+atomic: internal::atomic_impl {
#if __TBB_ATOMIC_CTORS
atomic() = default ;
constexpr atomic(void* arg): internal::atomic_impl(arg) {}
+ constexpr atomic(const atomic& rhs): internal::atomic_impl(rhs) {}
#endif
void* operator=( void* rhs ) {
// "this" required here in strict ISO C++ because store_with_release is a dependent name
@@ -551,4 +580,7 @@ inline atomic& as_atomic( T& t ) {
#pragma warning (pop)
#endif // warnings are restored
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_atomic_H_include_area
+
#endif /* __TBB_atomic_H */
diff --git a/lib/tbb_2019_U8/include/tbb/blocked_range.h b/lib/tbb_2020.3/include/tbb/blocked_range.h
similarity index 99%
rename from lib/tbb_2019_U8/include/tbb/blocked_range.h
rename to lib/tbb_2020.3/include/tbb/blocked_range.h
index d1ff1f4592c..b77e7e0a884 100644
--- a/lib/tbb_2019_U8/include/tbb/blocked_range.h
+++ b/lib/tbb_2020.3/include/tbb/blocked_range.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/include/tbb/blocked_range2d.h b/lib/tbb_2020.3/include/tbb/blocked_range2d.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/blocked_range2d.h
rename to lib/tbb_2020.3/include/tbb/blocked_range2d.h
index cd0fe1c3f80..2498e04675c 100644
--- a/lib/tbb_2019_U8/include/tbb/blocked_range2d.h
+++ b/lib/tbb_2020.3/include/tbb/blocked_range2d.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/include/tbb/blocked_range3d.h b/lib/tbb_2020.3/include/tbb/blocked_range3d.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/blocked_range3d.h
rename to lib/tbb_2020.3/include/tbb/blocked_range3d.h
index 5c6cf9f0e80..15f93130dc5 100644
--- a/lib/tbb_2019_U8/include/tbb/blocked_range3d.h
+++ b/lib/tbb_2020.3/include/tbb/blocked_range3d.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/include/tbb/blocked_rangeNd.h b/lib/tbb_2020.3/include/tbb/blocked_rangeNd.h
similarity index 99%
rename from lib/tbb_2019_U8/include/tbb/blocked_rangeNd.h
rename to lib/tbb_2020.3/include/tbb/blocked_rangeNd.h
index b623d0021eb..922c77c6e3d 100644
--- a/lib/tbb_2019_U8/include/tbb/blocked_rangeNd.h
+++ b/lib/tbb_2020.3/include/tbb/blocked_rangeNd.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2017-2019 Intel Corporation
+ Copyright (c) 2017-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/include/tbb/cache_aligned_allocator.h b/lib/tbb_2020.3/include/tbb/cache_aligned_allocator.h
similarity index 99%
rename from lib/tbb_2019_U8/include/tbb/cache_aligned_allocator.h
rename to lib/tbb_2020.3/include/tbb/cache_aligned_allocator.h
index a9983298b0d..5b4897c46f0 100644
--- a/lib/tbb_2019_U8/include/tbb/cache_aligned_allocator.h
+++ b/lib/tbb_2020.3/include/tbb/cache_aligned_allocator.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/lib/tbb_2019_U8/include/tbb/combinable.h b/lib/tbb_2020.3/include/tbb/combinable.h
similarity index 90%
rename from lib/tbb_2019_U8/include/tbb/combinable.h
rename to lib/tbb_2020.3/include/tbb/combinable.h
index a8aaf61cd41..aa8d24b1c64 100644
--- a/lib/tbb_2019_U8/include/tbb/combinable.h
+++ b/lib/tbb_2020.3/include/tbb/combinable.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_combinable_H
#define __TBB_combinable_H
+#define __TBB_combinable_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "enumerable_thread_specific.h"
#include "cache_aligned_allocator.h"
@@ -78,4 +81,8 @@ namespace tbb {
};
} // namespace tbb
+
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_combinable_H_include_area
+
#endif /* __TBB_combinable_H */
diff --git a/lib/tbb_2019_U8/include/tbb/compat/condition_variable b/lib/tbb_2020.3/include/tbb/compat/condition_variable
similarity index 85%
rename from lib/tbb_2019_U8/include/tbb/compat/condition_variable
rename to lib/tbb_2020.3/include/tbb/compat/condition_variable
index 8dc4e913378..a696781779e 100644
--- a/lib/tbb_2019_U8/include/tbb/compat/condition_variable
+++ b/lib/tbb_2020.3/include/tbb/compat/condition_variable
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,15 +14,29 @@
limitations under the License.
*/
+#include "../internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_condition_variable_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_condition_variable_H
+#pragma message("TBB Warning: tbb/compat/condition_variable is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef __TBB_condition_variable_H
#define __TBB_condition_variable_H
+#define __TBB_condition_variable_H_include_area
+#include "../internal/_warning_suppress_enable_notice.h"
+
#if _WIN32||_WIN64
#include "../machine/windows_api.h"
-namespace tbb {
+namespace tbb {
namespace interface5 {
-namespace internal {
+namespace internal {
struct condition_variable_using_event
{
//! Event for blocking waiting threads.
@@ -65,17 +79,17 @@ namespace interface5 {
// C++0x standard working draft 30.4.3
// Lock tag types
-struct defer_lock_t { }; //! do not acquire ownership of the mutex
-struct try_to_lock_t { }; //! try to acquire ownership of the mutex without blocking
-struct adopt_lock_t { }; //! assume the calling thread has already
-const defer_lock_t defer_lock = {};
-const try_to_lock_t try_to_lock = {};
-const adopt_lock_t adopt_lock = {};
+struct __TBB_DEPRECATED_IN_VERBOSE_MODE defer_lock_t { }; //! do not acquire ownership of the mutex
+struct __TBB_DEPRECATED_IN_VERBOSE_MODE try_to_lock_t { }; //! try to acquire ownership of the mutex without blocking
+struct __TBB_DEPRECATED_IN_VERBOSE_MODE adopt_lock_t { }; //! assume the calling thread has already
+__TBB_DEPRECATED_IN_VERBOSE_MODE const defer_lock_t defer_lock = {};
+__TBB_DEPRECATED_IN_VERBOSE_MODE const try_to_lock_t try_to_lock = {};
+__TBB_DEPRECATED_IN_VERBOSE_MODE const adopt_lock_t adopt_lock = {};
// C++0x standard working draft 30.4.3.1
-//! lock_guard
+//! lock_guard
template
-class lock_guard : tbb::internal::no_copy {
+class __TBB_DEPRECATED_IN_VERBOSE_MODE lock_guard : tbb::internal::no_copy {
public:
//! mutex type
typedef M mutex_type;
@@ -84,7 +98,7 @@ public:
/** precondition: If mutex_type is not a recursive mutex, the calling thread
does not own the mutex m. */
explicit lock_guard(mutex_type& m) : pm(m) {m.lock();}
-
+
//! Adopt_lock constructor
/** precondition: the calling thread owns the mutex m. */
lock_guard(mutex_type& m, adopt_lock_t) : pm(m) {}
@@ -96,9 +110,9 @@ private:
};
// C++0x standard working draft 30.4.3.2
-//! unique_lock
+//! unique_lock
template
-class unique_lock : tbb::internal::no_copy {
+class __TBB_DEPRECATED_IN_VERBOSE_MODE unique_lock : tbb::internal::no_copy {
friend class condition_variable;
public:
typedef M mutex_type;
@@ -132,7 +146,7 @@ public:
unique_lock(mutex_type& m, adopt_lock_t) : pm(&m), owns(true) {}
//! Timed unique_lock acquisition.
- /** To avoid requiring support for namespace chrono, this method deviates from the working draft in that
+ /** To avoid requiring support for namespace chrono, this method deviates from the working draft in that
it uses tbb::tick_count::interval_t to specify the time duration. */
unique_lock(mutex_type& m, const tick_count::interval_t &i) : pm(&m) {owns = try_lock_for( i );}
@@ -165,14 +179,14 @@ public:
if( !owns ) {
pm->lock();
owns = true;
- } else
+ } else
throw_exception_v4( tbb::internal::eid_possible_deadlock );
- } else
+ } else
throw_exception_v4( tbb::internal::eid_operation_not_permitted );
__TBB_ASSERT( owns, NULL );
}
- //! Try to lock the mutex.
+ //! Try to lock the mutex.
/** If successful, note that this lock owns it. Otherwise, set it false. */
bool try_lock() {
if( pm ) {
@@ -180,17 +194,17 @@ public:
owns = pm->try_lock();
else
throw_exception_v4( tbb::internal::eid_possible_deadlock );
- } else
+ } else
throw_exception_v4( tbb::internal::eid_operation_not_permitted );
return owns;
}
-
- //! Try to lock the mutex.
+
+ //! Try to lock the mutex.
bool try_lock_for( const tick_count::interval_t &i );
//! Unlock the mutex
/** And note that this lock no longer owns it. */
- void unlock() {
+ void unlock() {
if( owns ) {
pm->unlock();
owns = false;
@@ -208,10 +222,10 @@ public:
//! Release control over the mutex.
mutex_type* release() {
- mutex_type* o_pm = pm;
- pm = NULL;
- owns = false;
- return o_pm;
+ mutex_type* o_pm = pm;
+ pm = NULL;
+ owns = false;
+ return o_pm;
}
// 30.4.3.2.4 observers
@@ -231,12 +245,12 @@ private:
};
template
-bool unique_lock::try_lock_for( const tick_count::interval_t &i)
-{
+__TBB_DEPRECATED_IN_VERBOSE_MODE bool unique_lock::try_lock_for( const tick_count::interval_t &i)
+{
const int unique_lock_tick = 100; /* microseconds; 0.1 milliseconds */
// the smallest wait-time is 0.1 milliseconds.
bool res = pm->try_lock();
- int duration_in_micro;
+ int duration_in_micro;
if( !res && (duration_in_micro=int(i.seconds()*1e6))>unique_lock_tick ) {
tick_count::interval_t i_100( double(unique_lock_tick)/1e6 /* seconds */); // 100 microseconds = 0.1*10E-3
do {
@@ -248,7 +262,7 @@ bool unique_lock::try_lock_for( const tick_count::interval_t &i)
return (owns=res);
}
-//! Swap the two unique locks that have the mutexes of same type
+//! Swap the two unique locks that have the mutexes of same type
template
void swap(unique_lock& x, unique_lock& y) { x.swap( y ); }
@@ -273,24 +287,24 @@ typedef pthread_cond_t condvar_impl_t;
//! cv_status
/** C++0x standard working draft 30.5 */
-enum cv_status { no_timeout, timeout };
+enum cv_status { no_timeout, timeout };
//! condition variable
-/** C++0x standard working draft 30.5.1
+/** C++0x standard working draft 30.5.1
@ingroup synchronization */
-class condition_variable : tbb::internal::no_copy {
+class __TBB_DEPRECATED_IN_VERBOSE_MODE condition_variable : tbb::internal::no_copy {
public:
//! Constructor
- condition_variable() {
+ condition_variable() {
#if _WIN32||_WIN64
- internal_initialize_condition_variable( my_cv );
+ internal_initialize_condition_variable( my_cv );
#else
pthread_cond_init( &my_cv, NULL );
#endif
}
//! Destructor
- ~condition_variable() {
+ ~condition_variable() {
//precondition: There shall be no thread blocked on *this.
#if _WIN32||_WIN64
internal_destroy_condition_variable( my_cv );
@@ -300,18 +314,18 @@ public:
}
//! Notify one thread and wake it up
- void notify_one() {
+ void notify_one() {
#if _WIN32||_WIN64
- internal_condition_variable_notify_one( my_cv );
+ internal_condition_variable_notify_one( my_cv );
#else
pthread_cond_signal( &my_cv );
#endif
}
- //! Notify all threads
- void notify_all() {
+ //! Notify all threads
+ void notify_all() {
#if _WIN32||_WIN64
- internal_condition_variable_notify_all( my_cv );
+ internal_condition_variable_notify_all( my_cv );
#else
pthread_cond_broadcast( &my_cv );
#endif
@@ -445,7 +459,7 @@ inline cv_status condition_variable::wait_for( unique_lock& lock, const t
__TBB_DEFINE_PROFILING_SET_NAME(interface5::condition_variable)
-} // namespace tbb
+} // namespace tbb
#if TBB_IMPLEMENT_CPP0X
@@ -465,8 +479,11 @@ using tbb::interface5::cv_status;
using tbb::interface5::timeout;
using tbb::interface5::no_timeout;
-} // namespace std
+} // namespace std
#endif /* TBB_IMPLEMENT_CPP0X */
+#include "../internal/_warning_suppress_disable_notice.h"
+#undef __TBB_condition_variable_H_include_area
+
#endif /* __TBB_condition_variable_H */
diff --git a/lib/tbb_2019_U8/include/tbb/compat/ppl.h b/lib/tbb_2020.3/include/tbb/compat/ppl.h
similarity index 70%
rename from lib/tbb_2019_U8/include/tbb/compat/ppl.h
rename to lib/tbb_2020.3/include/tbb/compat/ppl.h
index a134244af33..f441b038f25 100644
--- a/lib/tbb_2019_U8/include/tbb/compat/ppl.h
+++ b/lib/tbb_2020.3/include/tbb/compat/ppl.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,9 +14,23 @@
limitations under the License.
*/
+#include "../internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_ppl_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_ppl_H
+#pragma message("TBB Warning: tbb/compat/ppl.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef __TBB_compat_ppl_H
#define __TBB_compat_ppl_H
+#define __TBB_ppl_H_include_area
+#include "../internal/_warning_suppress_enable_notice.h"
+
#include "../task_group.h"
#include "../parallel_invoke.h"
#include "../parallel_for_each.h"
@@ -55,4 +69,7 @@ namespace Concurrency {
} // namespace Concurrency
+#include "../internal/_warning_suppress_disable_notice.h"
+#undef __TBB_ppl_H_include_area
+
#endif /* __TBB_compat_ppl_H */
diff --git a/lib/tbb_2019_U8/include/tbb/compat/thread b/lib/tbb_2020.3/include/tbb/compat/thread
similarity index 62%
rename from lib/tbb_2019_U8/include/tbb/compat/thread
rename to lib/tbb_2020.3/include/tbb/compat/thread
index 9dac4305979..8b8a13d7944 100644
--- a/lib/tbb_2019_U8/include/tbb/compat/thread
+++ b/lib/tbb_2020.3/include/tbb/compat/thread
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,9 +14,23 @@
limitations under the License.
*/
+#include "../internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_thread_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_thread_H
+#pragma message("TBB Warning: tbb/compat/thread is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef __TBB_thread_H
#define __TBB_thread_H
+#define __TBB_thread_H_include_area
+#include "../internal/_warning_suppress_enable_notice.h"
+
#include "../tbb_config.h"
#if TBB_IMPLEMENT_CPP0X
@@ -31,7 +45,7 @@ namespace this_thread {
using tbb::this_tbb_thread::get_id;
using tbb::this_tbb_thread::yield;
- inline void sleep_for(const tbb::tick_count::interval_t& rel_time) {
+ __TBB_DEPRECATED_IN_VERBOSE_MODE inline void sleep_for(const tbb::tick_count::interval_t& rel_time) {
tbb::internal::thread_sleep_v3( rel_time );
}
}
@@ -46,6 +60,9 @@ namespace this_thread {
#endif /* TBB_IMPLEMENT_CPP0X */
+#include "../internal/_warning_suppress_disable_notice.h"
+#undef __TBB_thread_H_include_area
+
#else /* __TBB_thread_H */
#if __TBB_COMPAT_THREAD_RECURSION_PROTECTOR
diff --git a/lib/tbb_2019_U8/include/tbb/compat/tuple b/lib/tbb_2020.3/include/tbb/compat/tuple
similarity index 93%
rename from lib/tbb_2019_U8/include/tbb/compat/tuple
rename to lib/tbb_2020.3/include/tbb/compat/tuple
index 86e6cd9f9ce..c568ef3d20c 100644
--- a/lib/tbb_2019_U8/include/tbb/compat/tuple
+++ b/lib/tbb_2020.3/include/tbb/compat/tuple
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,9 +14,23 @@
limitations under the License.
*/
+#include "../internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_tuple_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_tuple_H
+#pragma message("TBB Warning: tbb/compat/tuple is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef __TBB_tuple_H
#define __TBB_tuple_H
+#define __TBB_tuple_H_include_area
+#include "../internal/_warning_suppress_enable_notice.h"
+
#include
#include "../tbb_stddef.h"
@@ -210,7 +224,7 @@ struct cons{
typedef __HT head_type;
typedef __TT tail_type;
- head_type head;
+ head_type head;
tail_type tail;
static const int length = 1 + tail_type::length;
@@ -272,12 +286,12 @@ struct cons{
template
-struct cons<__HT,null_type> {
+struct cons<__HT,null_type> {
typedef __HT head_type;
typedef null_type tail_type;
- head_type head;
+ head_type head;
static const int length = 1;
@@ -346,7 +360,7 @@ inline const __T wrap_dcons(__T*) { return __T(); }
// tuple definition
template
-class tuple : public internal::tuple_traits<__T0, __T1, __T2, __T3, __T4 __TBB_T_PACK >::U {
+class __TBB_DEPRECATED_IN_VERBOSE_MODE tuple : public internal::tuple_traits<__T0, __T1, __T2, __T3, __T4 __TBB_T_PACK >::U {
// friends
template friend class tuple_size;
template friend struct tuple_element;
@@ -362,7 +376,7 @@ class tuple : public internal::tuple_traits<__T0, __T1, __T2, __T3, __T4 __TBB_T
typedef typename internal::tuple_traits<__T0,__T1,__T2,__T3, __T4 __TBB_T_PACK >::U my_cons;
public:
- tuple(const __T0& t0=internal::wrap_dcons((__T0*)NULL)
+ __TBB_DEPRECATED_IN_VERBOSE_MODE tuple(const __T0& t0=internal::wrap_dcons((__T0*)NULL)
,const __T1& t1=internal::wrap_dcons((__T1*)NULL)
,const __T2& t2=internal::wrap_dcons((__T2*)NULL)
,const __T3& t3=internal::wrap_dcons((__T3*)NULL)
@@ -421,7 +435,7 @@ public:
// empty tuple
template<>
-class tuple : public null_type {
+class __TBB_DEPRECATED_IN_VERBOSE_MODE tuple : public null_type {
};
// helper classes
@@ -433,7 +447,7 @@ public:
};
template <>
-class tuple_size > {
+class tuple_size > {
public:
static const size_t value = 0;
};
@@ -480,5 +494,8 @@ namespace tbb {
#undef __TBB_CONST_REF_T_PARAM_PACK
#undef __TBB_T_PARAM_LIST_PACK
#undef __TBB_CONST_NULL_REF_PACK
-
+
+#include "../internal/_warning_suppress_disable_notice.h"
+#undef __TBB_tuple_H_include_area
+
#endif /* __TBB_tuple_H */
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_hash_map.h b/lib/tbb_2020.3/include/tbb/concurrent_hash_map.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_hash_map.h
rename to lib/tbb_2020.3/include/tbb/concurrent_hash_map.h
index e3f2a401059..80bad97bf7b 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_hash_map.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_hash_map.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_concurrent_hash_map_H
#define __TBB_concurrent_hash_map_H
+#define __TBB_concurrent_hash_map_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "tbb_stddef.h"
#include
#include // Need std::pair
@@ -122,9 +125,10 @@ namespace interface5 {
#endif
//! Constructor
hash_map_base() {
- std::memset( this, 0, pointers_per_table*sizeof(segment_ptr_t) // 32*4=128 or 64*8=512
- + sizeof(my_size) + sizeof(my_mask) // 4+4 or 8+8
- + embedded_buckets*sizeof(bucket) ); // n*8 or n*16
+ std::memset(my_table, 0, sizeof(my_table));
+ my_mask = 0;
+ my_size = 0;
+ std::memset(my_embedded_segment, 0, sizeof(my_embedded_segment));
for( size_type i = 0; i < embedded_block; i++ ) // fill the table
my_table[i] = my_embedded_segment + segment_base(i);
my_mask = embedded_buckets - 1;
@@ -407,6 +411,14 @@ namespace interface5 {
my_bucket(other.my_bucket),
my_node(other.my_node)
{}
+
+ hash_map_iterator& operator=( const hash_map_iterator &other ) {
+ my_map = other.my_map;
+ my_index = other.my_index;
+ my_bucket = other.my_bucket;
+ my_node = other.my_node;
+ return *this;
+ }
Value& operator*() const {
__TBB_ASSERT( hash_map_base::is_valid(my_node), "iterator uninitialized or at end of container?" );
return my_node->value();
@@ -664,7 +676,9 @@ class concurrent_hash_map : protected internal::hash_map_base {
return create_node(allocator, std::piecewise_construct,
std::forward_as_tuple(key), std::forward_as_tuple());
#else
- T obj; // Use of temporary object in impossible, because create_node takes non-const reference
+ // Use of a temporary object is impossible, because create_node takes a non-const reference.
+ // copy-initialization is possible because T is already required to be CopyConstructible.
+ T obj = T();
return create_node(allocator, key, tbb::internal::move(obj));
#endif
}
@@ -1206,7 +1220,7 @@ class concurrent_hash_map : protected internal::hash_map_base {
}
n = search_bucket( key, b );
if( n )
- return &n->item;
+ return n->storage();
else if( check_mask_race( h, m ) )
goto restart;
return 0;
@@ -1630,4 +1644,7 @@ inline void swap(concurrent_hash_map &a, concurrent_hash
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_hash_map_H_include_area
+
#endif /* __TBB_concurrent_hash_map_H */
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_lru_cache.h b/lib/tbb_2020.3/include/tbb/concurrent_lru_cache.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_lru_cache.h
rename to lib/tbb_2020.3/include/tbb/concurrent_lru_cache.h
index c28fb6e23ed..a18dbf29cc9 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_lru_cache.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_lru_cache.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_concurrent_lru_cache_H
#define __TBB_concurrent_lru_cache_H
+#define __TBB_concurrent_lru_cache_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#if ! TBB_PREVIEW_CONCURRENT_LRU_CACHE
#error Set TBB_PREVIEW_CONCURRENT_LRU_CACHE to include concurrent_lru_cache.h
#endif
@@ -280,4 +283,8 @@ class concurrent_lru_cache : internal::no_assign{
using interface6::concurrent_lru_cache;
} // namespace tbb
+
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_lru_cache_H_include_area
+
#endif //__TBB_concurrent_lru_cache_H
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_map.h b/lib/tbb_2020.3/include/tbb/concurrent_map.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_map.h
rename to lib/tbb_2020.3/include/tbb/concurrent_map.h
index d022d880316..32fbe6847a4 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_map.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_map.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2019 Intel Corporation
+ Copyright (c) 2019-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_concurrent_map_H
#define __TBB_concurrent_map_H
+#define __TBB_concurrent_map_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#if !TBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS
#error Set TBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS to include concurrent_map.h
#endif
@@ -379,5 +382,8 @@ using interface10::concurrent_multimap;
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_map_H_include_area
+
#endif // __TBB_CONCURRENT_ORDERED_CONTAINERS_PRESENT
#endif // __TBB_concurrent_map_H
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_priority_queue.h b/lib/tbb_2020.3/include/tbb/concurrent_priority_queue.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_priority_queue.h
rename to lib/tbb_2020.3/include/tbb/concurrent_priority_queue.h
index c5c03999dff..9c70098bd70 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_priority_queue.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_priority_queue.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_concurrent_priority_queue_H
#define __TBB_concurrent_priority_queue_H
+#define __TBB_concurrent_priority_queue_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "atomic.h"
#include "cache_aligned_allocator.h"
#include "tbb_exception.h"
@@ -543,4 +546,7 @@ using interface5::concurrent_priority_queue;
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_priority_queue_H_include_area
+
#endif /* __TBB_concurrent_priority_queue_H */
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_queue.h b/lib/tbb_2020.3/include/tbb/concurrent_queue.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_queue.h
rename to lib/tbb_2020.3/include/tbb/concurrent_queue.h
index be8e8f81725..122f98e54fa 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_queue.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_queue.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_concurrent_queue_H
#define __TBB_concurrent_queue_H
+#define __TBB_concurrent_queue_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "internal/_concurrent_queue_impl.h"
#include "internal/_allocator_traits.h"
@@ -470,4 +473,7 @@ using strict_ppl::concurrent_queue;
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_queue_H_include_area
+
#endif /* __TBB_concurrent_queue_H */
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_set.h b/lib/tbb_2020.3/include/tbb/concurrent_set.h
similarity index 97%
rename from lib/tbb_2019_U8/include/tbb/concurrent_set.h
rename to lib/tbb_2020.3/include/tbb/concurrent_set.h
index 70269947e14..ecb2162437f 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_set.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_set.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2019 Intel Corporation
+ Copyright (c) 2019-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_concurrent_set_H
#define __TBB_concurrent_set_H
+#define __TBB_concurrent_set_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#if !TBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS
#error Set TBB_PREVIEW_CONCURRENT_ORDERED_CONTAINERS to include concurrent_set.h
#endif
@@ -294,4 +297,8 @@ using interface10::concurrent_multiset;
} // namespace tbb
#endif // __TBB_CONCURRENT_ORDERED_CONTAINERS_PRESENT
+
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_set_H_include_area
+
#endif // __TBB_concurrent_set_H
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_unordered_map.h b/lib/tbb_2020.3/include/tbb/concurrent_unordered_map.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_unordered_map.h
rename to lib/tbb_2020.3/include/tbb/concurrent_unordered_map.h
index cc73dad78e6..a9d8df8a571 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_unordered_map.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_unordered_map.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -20,6 +20,9 @@
#ifndef __TBB_concurrent_unordered_map_H
#define __TBB_concurrent_unordered_map_H
+#define __TBB_concurrent_unordered_map_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "internal/_concurrent_unordered_impl.h"
namespace tbb
@@ -483,4 +486,7 @@ using interface5::concurrent_unordered_multimap;
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_unordered_map_H_include_area
+
#endif// __TBB_concurrent_unordered_map_H
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_unordered_set.h b/lib/tbb_2020.3/include/tbb/concurrent_unordered_set.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_unordered_set.h
rename to lib/tbb_2020.3/include/tbb/concurrent_unordered_set.h
index 93a772ba5e1..edb02565ae4 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_unordered_set.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_unordered_set.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -20,6 +20,9 @@
#ifndef __TBB_concurrent_unordered_set_H
#define __TBB_concurrent_unordered_set_H
+#define __TBB_concurrent_unordered_set_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "internal/_concurrent_unordered_impl.h"
namespace tbb
@@ -439,4 +442,7 @@ using interface5::concurrent_unordered_multiset;
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_concurrent_unordered_set_H_include_area
+
#endif// __TBB_concurrent_unordered_set_H
diff --git a/lib/tbb_2019_U8/include/tbb/concurrent_vector.h b/lib/tbb_2020.3/include/tbb/concurrent_vector.h
similarity index 98%
rename from lib/tbb_2019_U8/include/tbb/concurrent_vector.h
rename to lib/tbb_2020.3/include/tbb/concurrent_vector.h
index 461d4c35ea2..a4988aaa7bb 100644
--- a/lib/tbb_2019_U8/include/tbb/concurrent_vector.h
+++ b/lib/tbb_2020.3/include/tbb/concurrent_vector.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_concurrent_vector_H
#define __TBB_concurrent_vector_H
+#define __TBB_concurrent_vector_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "tbb_stddef.h"
#include "tbb_exception.h"
#include "atomic.h"
@@ -338,6 +341,14 @@ namespace internal {
my_item(other.my_item)
{}
+ vector_iterator& operator=( const vector_iterator& other )
+ {
+ my_vector=other.my_vector;
+ my_index=other.my_index;
+ my_item=other.my_item;
+ return *this;
+ }
+
vector_iterator operator+( ptrdiff_t offset ) const {
return vector_iterator( *my_vector, my_index+offset );
}
@@ -666,7 +677,7 @@ class concurrent_vector: protected internal::allocator_base,
//! Copying constructor for vector with different allocator type
template
- concurrent_vector( const concurrent_vector& vector, const allocator_type& a = allocator_type() )
+ __TBB_DEPRECATED concurrent_vector( const concurrent_vector& vector, const allocator_type& a = allocator_type() )
: internal::allocator_base(a), internal::concurrent_vector_base()
{
vector_allocator_ptr = &internal_allocator;
@@ -748,7 +759,7 @@ class concurrent_vector: protected internal::allocator_base,
//! Assignment for vector with different allocator type
template
- concurrent_vector& operator=( const concurrent_vector& vector ) {
+ __TBB_DEPRECATED concurrent_vector& operator=( const concurrent_vector& vector ) {
if( static_cast( this ) != static_cast( &vector ) )
internal_assign(vector.internal_vector_base(),
sizeof(T), &destroy_array, &assign_array, ©_array);
@@ -1378,4 +1389,8 @@ inline void swap(concurrent_vector &a, concurrent_vector &b)
#pragma warning (pop)
#endif // warning 4267,4127 are back
+
+#undef __TBB_concurrent_vector_H_include_area
+#include "internal/_warning_suppress_disable_notice.h"
+
#endif /* __TBB_concurrent_vector_H */
diff --git a/lib/tbb_2019_U8/include/tbb/critical_section.h b/lib/tbb_2020.3/include/tbb/critical_section.h
similarity index 80%
rename from lib/tbb_2019_U8/include/tbb/critical_section.h
rename to lib/tbb_2020.3/include/tbb/critical_section.h
index ba693b38af5..fb3332b2e6e 100644
--- a/lib/tbb_2019_U8/include/tbb/critical_section.h
+++ b/lib/tbb_2020.3/include/tbb/critical_section.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,9 +14,23 @@
limitations under the License.
*/
+#include "internal/_deprecated_header_message_guard.h"
+
+#if !defined(__TBB_show_deprecation_message_critical_section_H) && defined(__TBB_show_deprecated_header_message)
+#define __TBB_show_deprecation_message_critical_section_H
+#pragma message("TBB Warning: tbb/critical_section.h is deprecated. For details, please see Deprecated Features appendix in the TBB reference manual.")
+#endif
+
+#if defined(__TBB_show_deprecated_header_message)
+#undef __TBB_show_deprecated_header_message
+#endif
+
#ifndef _TBB_CRITICAL_SECTION_H_
#define _TBB_CRITICAL_SECTION_H_
+#define __TBB_critical_section_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#if _WIN32||_WIN64
#include "machine/windows_api.h"
#else
@@ -122,8 +136,12 @@ class critical_section_v4 : internal::no_copy {
static const bool is_fair_mutex = true;
}; // critical_section_v4
} // namespace internal
-typedef internal::critical_section_v4 critical_section;
+__TBB_DEPRECATED_IN_VERBOSE_MODE_MSG("tbb::critical_section is deprecated, use std::mutex") typedef internal::critical_section_v4 critical_section;
__TBB_DEFINE_PROFILING_SET_NAME(critical_section)
} // namespace tbb
+
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_critical_section_H_include_area
+
#endif // _TBB_CRITICAL_SECTION_H_
diff --git a/lib/tbb_2019_U8/include/tbb/enumerable_thread_specific.h b/lib/tbb_2020.3/include/tbb/enumerable_thread_specific.h
similarity index 96%
rename from lib/tbb_2019_U8/include/tbb/enumerable_thread_specific.h
rename to lib/tbb_2020.3/include/tbb/enumerable_thread_specific.h
index 1bcac28d6c7..248597f2997 100644
--- a/lib/tbb_2019_U8/include/tbb/enumerable_thread_specific.h
+++ b/lib/tbb_2020.3/include/tbb/enumerable_thread_specific.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_enumerable_thread_specific_H
#define __TBB_enumerable_thread_specific_H
+#define __TBB_enumerable_thread_specific_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "atomic.h"
#include "concurrent_vector.h"
#include "tbb_thread.h"
@@ -28,6 +31,10 @@
#include "tbb_profiling.h"
#include // for memcpy
+#if __TBB_PREVIEW_RESUMABLE_TASKS
+#include "task.h" // for task::suspend_point
+#endif
+
#if _WIN32||_WIN64
#include "machine/windows_api.h"
#else
@@ -41,7 +48,13 @@
namespace tbb {
//! enum for selecting between single key and key-per-instance versions
-enum ets_key_usage_type { ets_key_per_instance, ets_no_key };
+enum ets_key_usage_type {
+ ets_key_per_instance
+ , ets_no_key
+#if __TBB_PREVIEW_RESUMABLE_TASKS
+ , ets_suspend_aware
+#endif
+};
namespace interface6 {
@@ -54,10 +67,33 @@ namespace interface6 {
using namespace tbb::internal;
+ template
+ struct ets_key_selector {
+ typedef tbb_thread::id key_type;
+ static key_type current_key() {
+ return tbb::internal::thread_get_id_v3();
+ }
+ };
+
+#if __TBB_PREVIEW_RESUMABLE_TASKS
+ template <>
+ struct ets_key_selector {
+ typedef task::suspend_point key_type;
+ static key_type current_key() {
+ return internal_current_suspend_point();
+ }
+ };
+
+ inline task::suspend_point atomic_compare_and_swap(task::suspend_point& location,
+ const task::suspend_point& value, const task::suspend_point& comparand) {
+ return as_atomic(location).compare_and_swap(value, comparand);
+ }
+#endif
+
template
class ets_base: tbb::internal::no_copy {
protected:
- typedef tbb_thread::id key_type;
+ typedef typename ets_key_selector::key_type key_type;
#if __TBB_PROTECTED_NESTED_CLASS_BROKEN
public:
#endif
@@ -115,8 +151,9 @@ namespace interface6 {
void table_clear();
// The following functions are not used in concurrent context,
// so we don't need synchronization and ITT annotations there.
+ template
void table_elementwise_copy( const ets_base& other,
- void*(*add_element)(ets_base&, void*) ) {
+ void*(*add_element)(ets_base&, void*) ) {
__TBB_ASSERT(!my_root,NULL);
__TBB_ASSERT(!my_count,NULL);
if( !other.my_root ) return;
@@ -131,7 +168,7 @@ namespace interface6 {
for( size_t j = root->start(tbb::tbb_hash()(s1.key)); ; j=(j+1)&mask ) {
slot& s2 = root->at(j);
if( s2.empty() ) {
- s2.ptr = add_element(*this, s1.ptr);
+ s2.ptr = add_element(static_cast&>(*this), s1.ptr);
s2.key = s1.key;
break;
}
@@ -165,7 +202,7 @@ namespace interface6 {
template
void* ets_base::table_lookup( bool& exists ) {
- const key_type k = tbb::this_tbb_thread::get_id();
+ const key_type k = ets_key_selector::current_key();
__TBB_ASSERT(k != key_type(),NULL);
void* found;
@@ -238,7 +275,7 @@ namespace interface6 {
//! Specialization that exploits native TLS
template <>
- class ets_base: protected ets_base {
+ class ets_base: public ets_base {
typedef ets_base super;
#if _WIN32||_WIN64
#if __TBB_WIN8UI_SUPPORT
@@ -795,7 +832,7 @@ namespace interface6 {
return lref.value_committed();
}
- static void* create_local_by_copy( internal::ets_base& base, void* p ) {
+ static void* create_local_by_copy( internal::ets_base& base, void* p ) {
enumerable_thread_specific& ets = static_cast(base);
padded_element& lref = *ets.my_locals.grow_by(1);
new(lref.value()) T(*static_cast(p));
@@ -803,7 +840,7 @@ namespace interface6 {
}
#if __TBB_ETS_USE_CPP11
- static void* create_local_by_move( internal::ets_base& base, void* p ) {
+ static void* create_local_by_move( internal::ets_base& base, void* p ) {
enumerable_thread_specific& ets = static_cast(base);
padded_element& lref = *ets.my_locals.grow_by(1);
new(lref.value()) T(std::move(*static_cast(p)));
@@ -884,7 +921,7 @@ namespace interface6 {
~enumerable_thread_specific() {
if(my_construct_callback) my_construct_callback->destroy();
// Deallocate the hash table before overridden free_array() becomes inaccessible
- this->internal::ets_base::table_clear();
+ this->internal::ets_base::table_clear();
}
//! returns reference to local, discarding exists
@@ -1130,4 +1167,7 @@ using interface6::flatten2d;
} // namespace tbb
+#include "internal/_warning_suppress_disable_notice.h"
+#undef __TBB_enumerable_thread_specific_H_include_area
+
#endif
diff --git a/lib/tbb_2019_U8/include/tbb/flow_graph.h b/lib/tbb_2020.3/include/tbb/flow_graph.h
similarity index 73%
rename from lib/tbb_2019_U8/include/tbb/flow_graph.h
rename to lib/tbb_2020.3/include/tbb/flow_graph.h
index cbdad306508..03020f79143 100644
--- a/lib/tbb_2019_U8/include/tbb/flow_graph.h
+++ b/lib/tbb_2020.3/include/tbb/flow_graph.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2005-2019 Intel Corporation
+ Copyright (c) 2005-2020 Intel Corporation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -17,6 +17,9 @@
#ifndef __TBB_flow_graph_H
#define __TBB_flow_graph_H
+#define __TBB_flow_graph_H_include_area
+#include "internal/_warning_suppress_enable_notice.h"
+
#include "tbb_stddef.h"
#include "atomic.h"
#include "spin_mutex.h"
@@ -26,11 +29,24 @@
#include "task.h"
#include "cache_aligned_allocator.h"
#include "tbb_exception.h"
+#include "pipeline.h"
#include "internal/_template_helpers.h"
#include "internal/_aggregator_impl.h"
+#include "tbb/internal/_allocator_traits.h"
#include "tbb_profiling.h"
#include "task_arena.h"
+#if TBB_USE_THREADING_TOOLS && TBB_PREVIEW_FLOW_GRAPH_TRACE && ( __linux__ || __APPLE__ )
+ #if __INTEL_COMPILER
+ // Disabled warning "routine is both inline and noinline"
+ #pragma warning (push)
+ #pragma warning( disable: 2196 )
+ #endif
+ #define __TBB_NOINLINE_SYM __attribute__((noinline))
+#else
+ #define __TBB_NOINLINE_SYM
+#endif
+
#if __TBB_PREVIEW_ASYNC_MSG
#include // std::vector in internal::async_storage
#include // std::shared_ptr in async_msg
@@ -49,6 +65,12 @@
#define FLOW_SPAWN(a) tbb::task::spawn((a))
#endif
+#if TBB_DEPRECATED_FLOW_NODE_ALLOCATOR
+#define __TBB_DEFAULT_NODE_ALLOCATOR(T) cache_aligned_allocator
+#else
+#define __TBB_DEFAULT_NODE_ALLOCATOR(T) null_type
+#endif
+
// use the VC10 or gcc version of tuple if it is available.
#if __TBB_CPP11_TUPLE_PRESENT
#include
@@ -83,7 +105,7 @@ namespace flow {
//! An enumeration the provides the two most common concurrency levels: unlimited and serial
enum concurrency { unlimited = 0, serial = 1 };
-namespace interface10 {
+namespace interface11 {
//! A generic null type
struct null_type {};
@@ -95,11 +117,9 @@ class continue_msg {};
template< typename T > class sender;
template< typename T > class receiver;
class continue_receiver;
-} // namespaceX
-namespace interface11 {
+
template< typename T, typename U > class limiter_node; // needed for resetting decrementer
-}
-namespace interface10 {
+
template< typename R, typename B > class run_and_put_task;
namespace internal {
@@ -110,6 +130,14 @@ template class round_robin_cache;
template class predecessor_cache;
template class reservable_predecessor_cache;
+#if __TBB_PREVIEW_FLOW_GRAPH_NODE_SET
+namespace order {
+struct following;
+struct preceding;
+}
+template struct node_set;
+#endif
+
#if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
// Holder of edges both for caches and for those nodes which do not have predecessor caches.
// C == receiver< ... > or sender< ... >, depending.
@@ -156,7 +184,7 @@ class edge_container {
} // namespace internal
-} // namespace interface10
+} // namespace interfaceX
} // namespace flow
} // namespace tbb
@@ -165,7 +193,7 @@ class edge_container {
namespace tbb {
namespace flow {
-namespace interface10 {
+namespace interface11 {
// enqueue left task if necessary. Returns the non-enqueued task if there is one.
static inline tbb::task *combine_tasks(graph& g, tbb::task * left, tbb::task * right) {
@@ -185,7 +213,7 @@ static inline tbb::task *combine_tasks(graph& g, tbb::task * left, tbb::task * r
#if __TBB_PREVIEW_ASYNC_MSG
-template < typename T > class async_msg;
+template < typename T > class __TBB_DEPRECATED async_msg;
namespace internal {
@@ -380,7 +408,7 @@ class untyped_receiver {
virtual task* try_put_task_wrapper( const void* p, bool is_async ) = 0;
- virtual graph& graph_reference() = 0;
+ virtual graph& graph_reference() const = 0;
// NOTE: Following part of PROTECTED and PRIVATE sections is copy-paste from original receiver class
@@ -397,9 +425,9 @@ template< typename T >
class sender : public internal::untyped_sender {
public:
//! The output type of this sender
- typedef T output_type;
+ __TBB_DEPRECATED typedef T output_type;
- typedef typename internal::async_helpers::filtered_type filtered_type;
+ __TBB_DEPRECATED typedef typename internal::async_helpers::filtered_type filtered_type;
//! Request an item from the sender
virtual bool try_get( T & ) { return false; }
@@ -436,9 +464,9 @@ class receiver : public internal::untyped_receiver {
template< typename, typename > friend struct internal::async_helpers;
public:
//! The input type of this receiver
- typedef T input_type;
+ __TBB_DEPRECATED typedef T input_type;
- typedef typename internal::async_helpers::filtered_type filtered_type;
+ __TBB_DEPRECATED typedef typename internal::async_helpers::filtered_type filtered_type;
//! Put an item to the receiver
bool try_put( const typename internal::async_helpers::filtered_type& t ) {
@@ -466,20 +494,20 @@ template< typename T >
class sender {
public:
//! The output type of this sender
- typedef T output_type;
+ __TBB_DEPRECATED typedef T output_type;
//! The successor type for this node
- typedef receiver successor_type;
+ __TBB_DEPRECATED typedef receiver successor_type;
virtual ~sender() {}
// NOTE: Following part of PUBLIC section is partly copy-pasted in sender under #if __TBB_PREVIEW_ASYNC_MSG
//! Add a new successor to this node
- virtual bool register_successor( successor_type &r ) = 0;
+ __TBB_DEPRECATED virtual bool register_successor( successor_type &r ) = 0;
//! Removes a successor from this node
- virtual bool remove_successor( successor_type &r ) = 0;
+ __TBB_DEPRECATED virtual bool remove_successor( successor_type &r ) = 0;
//! Request an item from the sender
virtual bool try_get( T & ) { return false; }
@@ -495,13 +523,13 @@ class sender {
#if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
//! interface to record edges for traversal & deletion
- typedef typename internal::edge_container built_successors_type;
- typedef typename built_successors_type::edge_list_type successor_list_type;
- virtual built_successors_type &built_successors() = 0;
- virtual void internal_add_built_successor( successor_type & ) = 0;
- virtual void internal_delete_built_successor( successor_type & ) = 0;
- virtual void copy_successors( successor_list_type &) = 0;
- virtual size_t successor_count() = 0;
+ __TBB_DEPRECATED typedef typename internal::edge_container built_successors_type;
+ __TBB_DEPRECATED typedef typename built_successors_type::edge_list_type successor_list_type;
+ __TBB_DEPRECATED virtual built_successors_type &built_successors() = 0;
+ __TBB_DEPRECATED virtual void internal_add_built_successor( successor_type & ) = 0;
+ __TBB_DEPRECATED virtual void internal_delete_built_successor( successor_type & ) = 0;
+ __TBB_DEPRECATED virtual void copy_successors( successor_list_type &) = 0;
+ __TBB_DEPRECATED virtual size_t successor_count() = 0;
#endif /* TBB_DEPRECATED_FLOW_NODE_EXTRACTION */
}; // class sender
@@ -510,10 +538,10 @@ template< typename T >
class receiver {
public:
//! The input type of this receiver
- typedef T input_type;
+ __TBB_DEPRECATED typedef T input_type;
//! The predecessor type for this node
- typedef sender predecessor_type;
+ __TBB_DEPRECATED typedef sender predecessor_type;
//! Destructor
virtual ~receiver() {}
@@ -532,24 +560,24 @@ class receiver {
template< typename X, typename Y > friend class internal::broadcast_cache;
template< typename X, typename Y > friend class internal::round_robin_cache;
virtual task *try_put_task(const T& t) = 0;
- virtual graph& graph_reference() = 0;
+ virtual graph& graph_reference() const = 0;
public:
// NOTE: Following part of PUBLIC and PROTECTED sections is copy-pasted in receiver under #if __TBB_PREVIEW_ASYNC_MSG
//! Add a predecessor to the node
- virtual bool register_predecessor( predecessor_type & ) { return false; }
+ __TBB_DEPRECATED virtual bool register_predecessor( predecessor_type & ) { return false; }
//! Remove a predecessor from the node
- virtual bool remove_predecessor( predecessor_type & ) { return false; }
+ __TBB_DEPRECATED virtual bool remove_predecessor( predecessor_type & ) { return false; }
#if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
- typedef typename internal::edge_container built_predecessors_type;
- typedef typename built_predecessors_type::edge_list_type predecessor_list_type;
- virtual built_predecessors_type &built_predecessors() = 0;
- virtual void internal_add_built_predecessor( predecessor_type & ) = 0;
- virtual void internal_delete_built_predecessor( predecessor_type & ) = 0;
- virtual void copy_predecessors( predecessor_list_type & ) = 0;
- virtual size_t predecessor_count() = 0;
+ __TBB_DEPRECATED typedef typename internal::edge_container built_predecessors_type;
+ __TBB_DEPRECATED typedef typename built_predecessors_type::edge_list_type predecessor_list_type;
+ __TBB_DEPRECATED virtual built_predecessors_type &built_predecessors() = 0;
+ __TBB_DEPRECATED virtual void internal_add_built_predecessor( predecessor_type & ) = 0;
+ __TBB_DEPRECATED virtual void internal_delete_built_predecessor( predecessor_type & ) = 0;
+ __TBB_DEPRECATED virtual void copy_predecessors( predecessor_list_type & ) = 0;
+ __TBB_DEPRECATED virtual size_t predecessor_count() = 0;
#endif /* TBB_DEPRECATED_FLOW_NODE_EXTRACTION */
protected:
@@ -572,13 +600,13 @@ class continue_receiver : public receiver< continue_msg > {
public:
//! The input type
- typedef continue_msg input_type;
+ __TBB_DEPRECATED typedef continue_msg input_type;
//! The predecessor type for this node
- typedef receiver::predecessor_type predecessor_type;
+ __TBB_DEPRECATED typedef receiver::predecessor_type predecessor_type;
//! Constructor
- explicit continue_receiver(
+ __TBB_DEPRECATED explicit continue_receiver(
__TBB_FLOW_GRAPH_PRIORITY_ARG1(int number_of_predecessors, node_priority_t priority)) {
my_predecessor_count = my_initial_predecessor_count = number_of_predecessors;
my_current_count = 0;
@@ -586,14 +614,14 @@ class continue_receiver : public receiver< continue_msg > {
}
//! Copy constructor
- continue_receiver( const continue_receiver& src ) : receiver() {
+ __TBB_DEPRECATED continue_receiver( const continue_receiver& src ) : receiver() {
my_predecessor_count = my_initial_predecessor_count = src.my_initial_predecessor_count;
my_current_count = 0;
__TBB_FLOW_GRAPH_PRIORITY_EXPR( my_priority = src.my_priority; )
}
//! Increments the trigger threshold
- bool register_predecessor( predecessor_type & ) __TBB_override {
+ __TBB_DEPRECATED bool register_predecessor( predecessor_type & ) __TBB_override {
spin_mutex::scoped_lock l(my_mutex);
++my_predecessor_count;
return true;
@@ -603,33 +631,33 @@ class continue_receiver : public receiver< continue_msg > {
/** Does not check to see if the removal of the predecessor now makes the current count
exceed the new threshold. So removing a predecessor while the graph is active can cause
unexpected results. */
- bool remove_predecessor( predecessor_type & ) __TBB_override {
+ __TBB_DEPRECATED bool remove_predecessor( predecessor_type & ) __TBB_override {
spin_mutex::scoped_lock l(my_mutex);
--my_predecessor_count;
return true;
}
#if TBB_DEPRECATED_FLOW_NODE_EXTRACTION
- typedef internal::edge_container built_predecessors_type;
- typedef built_predecessors_type::edge_list_type predecessor_list_type;
+ __TBB_DEPRECATED typedef internal::edge_container built_predecessors_type;
+ __TBB_DEPRECATED typedef built_predecessors_type::edge_list_type predecessor_list_type;
built_predecessors_type &built_predecessors() __TBB_override { return my_built_predecessors; }
- void internal_add_built_predecessor( predecessor_type &s) __TBB_override {
+ __TBB_DEPRECATED void internal_add_built_predecessor( predecessor_type &s) __TBB_override {
spin_mutex::scoped_lock l(my_mutex);
my_built_predecessors.add_edge( s );
}
- void internal_delete_built_predecessor( predecessor_type &s) __TBB_override {
+ __TBB_DEPRECATED void internal_delete_built_predecessor( predecessor_type &s) __TBB_override {
spin_mutex::scoped_lock l(my_mutex);
my_built_predecessors.delete_edge(s);
}
- void copy_predecessors( predecessor_list_type &v) __TBB_override {
+ __TBB_DEPRECATED void copy_predecessors( predecessor_list_type &v) __TBB_override {
spin_mutex::scoped_lock l(my_mutex);
my_built_predecessors.copy_edges(v);
}
- size_t predecessor_count() __TBB_override {
+ __TBB_DEPRECATED size_t predecessor_count() __TBB_override {
spin_mutex::scoped_lock l(my_mutex);
return my_built_predecessors.edge_count();
}
@@ -695,9 +723,9 @@ class continue_receiver : public receiver< continue_msg > {
}
#endif /* __TBB_PREVIEW_MESSAGE_BASED_KEY_MATCHING */
- using interface10::sender;
- using interface10::receiver;
- using interface10::continue_receiver;
+ using interface11::sender;
+ using interface11::receiver;
+ using interface11::continue_receiver;
} // flow
} // tbb
@@ -706,7 +734,7 @@ class continue_receiver : public receiver< continue_msg > {
namespace tbb {
namespace flow {
-namespace interface10 {
+namespace interface11 {
#include "internal/_flow_graph_body_impl.h"
#include "internal/_flow_graph_cache_impl.h"
@@ -739,6 +767,9 @@ void graph_iterator::internal_forward() {
if (current_node) current_node = current_node->next;
}
+} // namespace interfaceX
+
+namespace interface10 {
//! Constructs a graph with isolated task_group_context
inline graph::graph() : my_nodes(NULL), my_nodes_last(NULL), my_task_arena(NULL) {
prepare_task_arena();
@@ -756,6 +787,8 @@ inline graph::graph(task_group_context& use_this_context) :
my_context(&use_this_context), my_nodes(NULL), my_nodes_last(NULL), my_task_arena(NULL) {
prepare_task_arena();
own_context = false;
+ cancelled = false;
+ caught_exception = false;
my_root_task = (new (task::allocate_root(*my_context)) empty_task);
my_root_task->set_ref_count(1);
tbb::internal::fgt_graph(this);
@@ -784,7 +817,7 @@ inline void graph::release_wait() {
}
}
-inline void graph::register_node(graph_node *n) {
+inline void graph::register_node(tbb::flow::interface11::graph_node *n) {
n->next = NULL;
{
spin_mutex::scoped_lock lock(nodelist_mutex);
@@ -795,7 +828,7 @@ inline void graph::register_node(graph_node *n) {
}
}
-inline void graph::remove_node(graph_node *n) {
+inline void graph::remove_node(tbb::flow::interface11::graph_node *n) {
{
spin_mutex::scoped_lock lock(nodelist_mutex);
__TBB_ASSERT(my_nodes && my_nodes_last, "graph::remove_node: Error: no registered nodes");
@@ -807,25 +840,25 @@ inline void graph::remove_node(graph_node *n) {
n->prev = n->next = NULL;
}
-inline void graph::reset( reset_flags f ) {
+inline void graph::reset( tbb::flow::interface11::reset_flags f ) {
// reset context
- internal::deactivate_graph(*this);
+ tbb::flow::interface11::internal::deactivate_graph(*this);
if(my_context) my_context->reset();
cancelled = false;
caught_exception = false;
// reset all the nodes comprising the graph
for(iterator ii = begin(); ii != end(); ++ii) {
- graph_node *my_p = &(*ii);
+ tbb::flow::interface11::graph_node *my_p = &(*ii);
my_p->reset_node(f);
}
// Reattach the arena. Might be useful to run the graph in a particular task_arena
// while not limiting graph lifetime to a single task_arena::execute() call.
prepare_task_arena( /*reinit=*/true );
- internal::activate_graph(*this);
+ tbb::flow::interface11::internal::activate_graph(*this);
// now spawn the tasks necessary to start the graph
for(task_list_type::iterator rti = my_reset_task_list.begin(); rti != my_reset_task_list.end(); ++rti) {
- internal::spawn_in_graph_arena(*this, *(*rti));
+ tbb::flow::interface11::internal::spawn_in_graph_arena(*this, *(*rti));
}
my_reset_task_list.clear();
}
@@ -848,6 +881,10 @@ inline void graph::set_name(const char *name) {
}
#endif
+} // namespace interface10
+
+namespace interface11 {
+
inline graph_node::graph_node(graph& g) : my_graph(g) {
my_graph.register_node(this);
}
@@ -858,9 +895,13 @@ inline graph_node::~graph_node() {
#include "internal/_flow_graph_node_impl.h"
+#if __TBB_PREVIEW_FLOW_GRAPH_NODE_SET
+using internal::node_set;
+#endif
+
//! An executable node that acts as a source, i.e. it has no predecessors
template < typename Output >
-class source_node : public graph_node, public sender< Output > {
+class input_node : public graph_node, public sender< Output > {
public:
//! The type of the output message, which is complete
typedef Output output_type;
@@ -878,26 +919,319 @@ class source_node : public graph_node, public sender< Output > {
//! Constructor for a node with a successor
template< typename Body >
- source_node( graph &g, Body body, bool is_active = true )
+ __TBB_NOINLINE_SYM input_node( graph &g, Body body )
+ : graph_node(g), my_active(false),
+ my_body( new internal::input_body_leaf< output_type, Body>(body) ),
+ my_init_body( new internal::input_body_leaf< output_type, Body>(body) ),
+ my_reserved(false), my_has_cached_item(false)
+ {
+ my_successors.set_owner(this);
+ tbb::internal::fgt_node_with_body( CODEPTR(), tbb::internal::FLOW_SOURCE_NODE, &this->my_graph,
+ static_cast *>(this), this->my_body );
+ }
+
+#if __TBB_PREVIEW_FLOW_GRAPH_NODE_SET
+ template
+ input_node( const node_set& successors, Body body )
+ : input_node(successors.graph_reference(), body) {
+ make_edges(*this, successors);
+ }
+#endif
+
+ //! Copy constructor
+ __TBB_NOINLINE_SYM input_node( const input_node& src ) :
+ graph_node(src.my_graph), sender