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: