Compare commits

..
Author SHA1 Message Date
Konstantin Boyarinov 8301257efd Fix polymorphic memory resource feature detection on libc++ + add conditional export in the module (#2188) 2026-09-09 12:40:59 +02:00
Sergei Aleksandrovich 583ff86379 Fix lost wakeup in mutex/rw_mutex on AArch64 (#2136) 2026-09-09 11:06:24 +02:00
Alexandr-KonovalovandCopilot Autofix powered by AI b021a68cc9 Test syscall failures during interleaved memory allocation (#2182)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-09-07 12:29:29 +02:00
Olga Malysheva e00c68dcac [TCM] Use correct path for .lib files in vars.bat (#2183) 2026-09-04 10:39:53 +02:00
843162db8c Description of static linking (#2161)
Co-authored-by: Olga Malysheva <olga.malysheva@intel.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-09-02 09:07:50 -05:00
Ilya IsaevandKonstantin Boyarinov 4167f80a63 Set core_type and max_threads_per_core only for supported arenas (#2181)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2026-09-02 14:46:33 +02:00
dependabot[bot] ba51d1c178 Bump step-security/harden-runner from 2.20.0 to 2.21.0 (#2178)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-02 14:31:52 +02:00
dependabot[bot] 562f45baa5 Bump actions/labeler from 6.1.0 to 7.0.0 (#2177)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-02 13:25:43 +02:00
dependabot[bot] 09da692d7e Bump ossf/scorecard-action from 2.4.3 to 2.4.4 (#2176)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-02 13:24:42 +02:00
Ilya IsaevandAleksei Fedotov b03a694ee0 [TCM] Add def files for TCM (#2180)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <fedotov.aleksei@gmail.com>
2026-09-01 17:31:02 +02:00
Konstantin Boyarinov a8216b9520 Move custom assertion handler to TBB namespace (#2167) 2026-08-28 11:50:42 +02:00
Ilya Isaev a88990d057 Save settings from r1::arena to task_arena during attach (#2160)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-08-28 11:05:57 +02:00
Konstantin Boyarinov a8d9731c90 Improve performance of parallel_sort algorithm (#2132) 2026-08-27 16:37:52 +02:00
Ilya IsaevandAlexey Kukanov 00eb0fe3a7 Reapply "Rework get_task and steal_task" patch (#2169)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2026-08-27 15:45:31 +02:00
Ilya Isaev 358d8e04e7 Use try-lock approach on stealing path (#2158)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-08-27 12:44:30 +02:00
Dmitri Mokhov 03bfb4eb11 Simplify constrained nested arena test (#2165) 2026-08-26 10:50:13 -05:00
Ilya Isaev 88fbc345cb Reduce number of iterations for TestCleanupMaster under sanitizers (#2168) 2026-08-26 12:20:08 +02:00
Ilya Isaev cef64f65e8 [TCM] Fix path in TCM installation (#2166)
Fix incorrectly changed path in install CMake scripts
2026-08-25 16:22:20 +02:00
Olga Malysheva e349c15263 Update oneTBB version to 2023.2.0 (#2153) 2026-08-19 17:24:20 +02:00
Mike VossandCopilot Autofix powered by AI 3cdc6f6558 Add starvation avoidance based on priorities (#2150)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-13 13:21:31 -05:00
fe43e53039 Move leave_policy/parallel_phase functionality out of preview (#2157)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-08-13 19:04:24 +02:00
321475449d Update leave_policy/parallel phase-related RFCs (#2130)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-08-13 12:19:38 +02:00
e5b7756973 Introduce new constructors for flow::resource_limiter (#2137)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-13 11:28:55 +02:00
Alexandr-Konovalov dea347d9b5 Explicitely prohibit resuming after calling of assertion_handler (#2147) 2026-08-11 11:56:55 +02:00
dependabot[bot] f09e1fef1e Bump github/codeql-action/autobuild from 4.36.0 to 4.37.3 (#2146)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 11:48:07 +02:00
dependabot[bot] 7044849c44 Bump actions/checkout from 6.0.2 to 7.0.1 (#2145)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 11:47:43 +02:00
dependabot[bot] 8f7db26f42 Bump github/codeql-action/analyze from 4.36.0 to 4.37.3 (#2144)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 11:47:24 +02:00
dependabot[bot] b5b83e6e20 Bump step-security/harden-runner from 2.19.4 to 2.20.0 (#2143)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 11:47:06 +02:00
dependabot[bot] 1bd6950cdc Bump github/codeql-action/init from 4.36.0 to 4.37.3 (#2142)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-11 11:46:35 +02:00
Olga Malysheva 171e5ead91 [TCM] Update version to 1.6.0 (#2154) 2026-08-10 11:39:17 +02:00
Aleksei Fedotov fe9bfc5870 [TCM] Add possibility to build TCM using oneTBB's CMake (#2110) 2026-08-04 17:33:47 +02:00
NsPro04 d9d0c41aac Fix no member named 'hardware_destructive_interference_size' (#2149)
In "cache_aligned_allocator.h", include <new> to define std::hardware_destructive_interference_size
2026-08-04 09:01:51 +02:00
Alexandr-Konovalov 2fea40755c Extend comments in test_utils.cpp (#2141) 2026-07-31 15:32:58 +02:00
Aleksei Fedotov a736b40f52 [TCM] Add common paths to generated envars scripts (#2134) 2026-07-24 17:02:23 +02:00
Konstantin Boyarinov 75470994e8 Make task_arena constants constexpr (#2120) 2026-07-24 10:20:55 +02:00
Mike VossandAleksei Fedotov 7dcc00cebe Fix to avoid exceeding concurrency in resource_limited_node (#2103)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-07-23 10:23:18 -05:00
Aleksei Fedotov 1bf3c3a6a3 [TCM] Correct renegotiating for two requests w/o hyperthreading (#2129) 2026-07-22 17:07:49 +02:00
Ilya IsaevandMike Voss 82bfdfe3a7 Move C++20 modules RFC to experimental (#2122)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-07-15 12:27:25 +02:00
Aleksei Fedotov 656f1f26e9 [TCM] Disable test threads sleep for small number of CPUs (#2126) 2026-07-14 17:48:55 +02:00
Dmitri Mokhov fc47943ae6 Fix slot index handling for constrained nested arenas (#2121) 2026-07-13 10:02:23 -05:00
Olga Malysheva 0e2d2c0bb9 Address comments from the original PR #2123 (#2124) 2026-07-10 15:21:06 +02:00
Olga Malysheva b2e6335a2d Update Release Notes and System Requirements for oneTBB 2023.1 release (#2123) 2026-07-10 14:22:24 +02:00
Aleksei Fedotov d2addf4f7b [CI] Update Windows job windows-2025 (#2113) 2026-06-30 14:14:15 +02:00
Aleksei Fedotov 65cd296b51 [DOCTEST] Suppress MSVC warning about incorrect std::tuple specialization (#2114) 2026-06-30 10:55:03 +02:00
Aleksei Fedotov bce61b2c1a [CI] Add checks for exit codes of executed commands (#2112) 2026-06-30 10:42:53 +02:00
Aleksei Fedotov f48775ba44 [TCM] Move TCM internals to implementation side (#2111) 2026-06-24 15:53:31 +02:00
Alexandr-Konovalov 628c90df68 Mention is the docs, that interleaving is not mandatory (#2109) 2026-06-22 10:21:46 +02:00
285bb670a3 Support interleaved allocations of objects > 2MB with non-default bytes_per_chunk (#2107)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-06-22 10:20:35 +02:00
Dmitri Mokhov 10f8b53684 Update the spec to clarify which parameters are overridden by task_arena::initialize (#2104) 2026-06-17 15:02:10 -05:00
Konstantin Boyarinov b9a0766bfd Fix sporadic hangs in FG buffering node tests (#2102) 2026-06-16 12:45:05 +02:00
0f4a5b1b67 Add documentation about C++20 modules support (#2105)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-06-15 20:53:38 +02:00
Alexandr-Konovalov 43b4edece2 Allocate memory directly from NUMA nodes to support interleaving (#2087) 2026-06-10 18:25:24 +02:00
51c79a6b89 Add documentation for interleaved memory allocation (#2088)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2026-06-09 18:29:44 +02:00
Philipp Remy 265b28bed6 Fix universal builds on Apple with LLVM Clang (#2094)
Signed-off-by: Philipp Remy <philipp@philippremy.net>
2026-06-09 14:20:41 +02:00
Alexandr-Konovalov ca41ba283c Explicitly tests alignment utility functions (#2100) 2026-06-08 16:09:08 +02:00
dependabot[bot] 3436ab3944 Bump actions/labeler from 6.0.1 to 6.1.0 (#2096)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-02 11:27:06 +02:00
dependabot[bot] 5f3fb4ea38 Bump step-security/harden-runner from 2.19.0 to 2.19.4 (#2097)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-02 11:26:30 +02:00
dependabot[bot] caf48d533d Bump github/codeql-action from 4.35.2 to 4.36.0 (#2095)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-02 11:25:56 +02:00
dependabot[bot] e9af1a1b38 Bump step-security/harden-runner from 2.16.1 to 2.19.0 (#2069)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-29 17:40:16 +02:00
dependabot[bot] 45291f4f66 Bump actions/upload-artifact from 7.0.0 to 7.0.1 (#2070)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-29 17:39:31 +02:00
dependabot[bot] 2319e77c31 Bump github/codeql-action from 4.35.1 to 4.35.2 (#2071)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-29 17:38:54 +02:00
Alexandr-Konovalov 269d340d0d The library uses libnuma.so.1, test also should use it (#2093) 2026-05-29 16:17:28 +02:00
Konstantin Boyarinov bdbec20606 Increase GCC version to suppress unordered_map and concurrent_monitor node destruction warning (#2091) 2026-05-28 16:25:54 +02:00
Alexandr-KonovalovandCopilot Autofix powered by AI 821101aac9 Load libnuma.so.1 under Linux, as libnuma.so goes from *-dev package (#2090)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-27 12:10:32 +02:00
Ilya Isaev 41b2678845 Align PREVIEW macro usage in tests with __TBB_TEST_PREVIEW (#2089)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-05-27 11:38:10 +02:00
1c0217d5e2 Fix a race in task group dynamic dependencies implementation (#2079)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-05-26 16:55:46 +02:00
Ilya Isaev c1237e81ca Remove TBB_CPF, use TBB_TEST_PREVIEW to enable preview feature testing (#2083)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-05-22 12:32:20 +02:00
Aleksei Fedotov febb98f3bc [tbbmalloc] Add assertions about computed bin indices and masks (#2082) 2026-05-21 12:11:38 +02:00
Olga Malysheva d901b250e1 [TCM] Open source Thread Composability Manager (#2061) 2026-05-21 11:35:51 +02:00
Alexandr-KonovalovandCopilot Autofix powered by AI 26f1380e46 Factor out align_up* functions in tbb library. (#2077)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-20 15:02:50 +02:00
Ilya Isaev 1d1541dff3 Fix compilation on systems without resumable tasks support (#2081)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-05-18 16:45:37 +02:00
Ilya Isaev c2372fbbe6 Add experimental C++20 modules support (#2068)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-05-13 10:54:08 +02:00
Alexandr-Konovalov 63391bcc96 Add const to library ABI (#2075) 2026-05-13 10:24:47 +02:00
ab3ced8246 Support interleaved NUMA allocations (#2074)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-05-12 21:31:05 +02:00
Ilya IsaevandMike Voss 5ce6061afa Add RFC about C++20 modules support (#2043)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-05-12 17:40:58 +02:00
Ilya Isaev a0633a3163 Add basic C++20 modules testing, extend test_tbb_header (#1974)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-05-11 17:31:54 +02:00
Alexey Kukanov a3f1dc2171 Propose the API for NUMA interleaved allocations (#2063) 2026-05-07 19:46:24 +02:00
Olga Malysheva 22d6c1af11 Update oneTBB version to 2023.1.0 for the next release (#2073) 2026-05-05 09:30:37 +02:00
Fedotov, Aleksei 2b7ddfc432 [TCM] Add UXL Foundations Copyright 2026-04-30 16:59:25 +02:00
Fedotov, Aleksei bc8b68d1c1 [TCM] Fix codespell 2026-04-30 12:54:51 +02:00
Aleksei Fedotov 42f91b5673 [tbbmalloc] Avoid disabling 4267 and 4244 warnings (#2057) 2026-04-29 12:16:08 +02:00
Olga Malysheva 82ac48556c Fix links in GSG (#2064) 2026-04-27 18:13:28 +02:00
Aleksei FedotovandMike Voss 8018524c10 [TCM] Use CMake's TARGET_FILE generator as suggested in review
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-04-27 17:27:03 +02:00
Olga Malysheva 7f508fa86e Update Release Notes and system Requirements for 2023.0 release. (#2054) 2026-04-24 11:24:23 +02:00
Fedotov, Aleksei 7bc8577403 Introduce Thread Composability Manager (TCM)
git-subtree-dir: thread_composability_manager
git-subtree-mainline: 114d96d0ea
git-subtree-split: 57ad6817a0
2026-04-23 12:30:57 +02:00
Fedotov, Aleksei 57ad6817a0 [TCM] Remove benchmarks subdirectory in their entirety 2026-04-23 12:00:31 +02:00
Aleksei Fedotov 9341ed953d [TCM] Update license to Apache 2.0 WITH LLVM-exception (#228) 2026-04-23 12:00:25 +02:00
3fed6d6de6 Satisfy BinSkim Rule BA2004.EnableSecureSourceCodeHashing (#2060)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-23 10:57:15 +02:00
Olga MalyshevaandIlya Isaev 153feba356 Use CMake 3.12 way to search for Python interpreter when possible (#2059)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2026-04-23 10:54:58 +02:00
114d96d0ea Add sub-RFC for interleaving memory allocation (#2032)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2026-04-22 17:26:43 +02:00
947a53893e Document feature-test macros (#2049)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-18 12:26:52 +02:00
Ilya Isaev 0e9f1d0d09 Add missing default value for this_task_arena::end_parallel_phase (#2055)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-18 12:26:38 +02:00
fec5e0036b Add task_group::wait_for_task documentation (#2048)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-04-17 09:17:51 +02:00
1ab634cee7 Add documentation for global_control::leave_policy (#2045)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2026-04-16 14:15:12 -05:00
Alexandr-KonovalovandAleksei Fedotov f918c9c99d Support IPO build for modern Intel compilers with old cmake under Linux (#2052)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-16 18:33:44 +02:00
e6107c9849 Add documentation for core type selectors (#2047)
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-04-16 09:45:19 -05:00
Mike Voss 593857e7af Added abi table to VERSIONING.md (#1868) 2026-04-16 07:51:35 -05:00
Mike Voss 038ae183c7 Added specification to doc directory (#2017) 2026-04-15 10:22:15 -05:00
petterreinholdtsenandPetter Reinholdtsen 9bab6cca23 Adjusted test_lightweight to avoid zero threads in test. (#2033)
Co-authored-by: Petter Reinholdtsen <pere@debian.org>
2026-04-14 18:04:32 +03:00
Konstantin Boyarinov e4f282e141 Add developer guide topic about FG deduction guides (#2051) 2026-04-14 15:53:03 +03:00
Konstantin BoyarinovandAlexey Kukanov f8f8f54b4c Remove "Reduction for Rvalues" from reference (#2050)
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2026-04-14 15:07:33 +03:00
Aleksei Fedotov f50ec64e40 [TCM] Remove GUI-related stuff from tbb-based benchmarks (#226) 2026-04-14 13:49:53 +02:00
Ilya IsaevandMike Voss dcbaacbcff Update the example with NUMA-bound task arenas (#2044)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-04-13 09:50:53 +02:00
Konstantin BoyarinovandMike Voss 38d73c35d1 Add documentation for resource_limiter and resource_limited_node (#2046)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-04-12 10:14:14 +03:00
Aleksei Fedotov 562746e49e Streamline the test for reserving slots in constrained arena (#2016) 2026-04-09 15:15:12 +02:00
Aleksei Fedotov 430e2bcbc7 Add RFC about TCM open sourcing (#1970) 2026-04-09 11:57:57 +02:00
Dmitri Mokhov 70c4e61e54 Move "Advanced Core Type Selection" RFC from "proposed" to "experimental" (#2005) 2026-04-08 13:36:00 -05:00
dependabot[bot] 2f1446bf20 Bump microsoft/setup-msbuild from 2.0.0 to 3.0.0 (#2037)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 14:30:35 +03:00
dependabot[bot] c0a57b9b06 Bump step-security/harden-runner from 2.15.1 to 2.16.1 (#2036)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 14:30:15 +03:00
dependabot[bot] 3995f88b5a Bump actions/download-artifact from 8.0.0 to 8.0.1 (#2035)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 14:29:56 +03:00
dependabot[bot] a946ef4152 Bump github/codeql-action from 4.32.4 to 4.35.1 (#2034)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-08 14:29:34 +03:00
navvyswethgraphics 49c45b1bcb Fix ARM64EC builds by excluding ARM64EC from x64(_M_X64) detection on Windows (#2030) 2026-04-02 21:18:27 +02:00
petterreinholdtsenandPetter Reinholdtsen 846e077898 Don't use CPU binding on GNU Hurd (#2038)
Co-authored-by: Petter Reinholdtsen <pere@debian.org>
2026-04-02 13:35:51 +02:00
Aleksei Fedotov 8af52d48ff [TCM] Deprecate existing version API and replace it with tcmGetVersion() (#224) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov d687233644 [TCM] Rectify expectations in test constrained requests (#223)
If resources are constrained by a number of available CPUs rather than by a mask (e.g., via cgroups), two test cases in test_constrained_requests required reconsideration. This patch reworks some of the checks in the test. Also, it adds further TODOs to address later.
2026-04-02 12:22:48 +02:00
Aleksei Fedotov e049453269 [TCM] Add explicit linking with pthread (#222) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov fc210f475f [TCM] Add tests for cgroup support (#220) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 0625bf7d60 [TCM] Do not specify /analyze flag for Intel LLVM compiler (#221) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 8668efe5c2 [TCM] Update composable scenarios benchmark to add it to performance CI (#213) 2026-04-02 12:22:48 +02:00
5fde898d69 [TCM] Add modulefiles for TCM (#219)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Olga Malysheva <olga.malysheva@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:48 +02:00
Aleksei Fedotov 12fb2cc3b5 [TCM] Do not assert on the callback return code (#217) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 609af5daf4 [TCM] Fix copyright year (#218) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 2e80ac2890 [TCM] Avoid the use of deleted std::string(nullptr) constructor (#214) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 84454799c3 [TCM] Add a bit more details in the test logs (#216) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov d1ccf3207a [TCM] Fix helper that checks availability of certain # of resources (#215) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 9896332bc9 [TCM] Adapt the test_basic_apis to various number of platform resources (#212) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 747b4100f8 [TCM] Update the copyright for files that were changed this year (#210) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 0410223edd [TCM] Fix TCM assert and extend testing of constrained requests (#199) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 810afd06cd [TCM] Capture std::thread::id and print its consecutive number (#208) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 7af0e6a88c [TCM] Fix ill-defined loop when converting permit flags to std::string (#207) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 02465adc84 [TCM] Suppress MSVC contradictory warning C6387 about possible nullptr (#209) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 28f847d687 [TCM] Fix benchmarks build (#206)
This fixes various issues when building TCM benchmarks using Intel LLVM C++ compiler. The issues include:
- `max_index` is unused variable in case of a release build.
- Destructor in `fractal_runtime` is not defined as virtual while there are virtual methods.
- `~fractal_runtime_tbb` has exception specification that is more lax than the one of the base class.
- `num_frames` is initialized before functor `f` in `fractal_runtime`.
- `num_threads` is unused.

Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:48 +02:00
Ilya IsaevandAleksei Fedotov 1e2c9b413d [TCM] fractal: Improve CPU utilization by adjusting OpenMP scheduling settings (#203)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:48 +02:00
Copilot 1364c776c7 [TCM] Avoid race on reading tcm_state_epoch in make_new_permit (#202) 2026-04-02 12:22:48 +02:00
Olga Malysheva 9a47f6b30e [TCM] Update version to 1.5.0 for oneAPI 2026.0 (#204) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 482237977f [TCM] Fix cmake minimum required version and copyright year (#205) 2026-04-02 12:22:48 +02:00
Ilya IsaevandAleksei Fedotov d463050bf1 [TCM] Allow runtime permutations in Seismic benchmark (#198)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:48 +02:00
Ilya IsaevandAleksei Fedotov e0ddda3471 [TCM] Respect CFS CPU constraints (#191)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:48 +02:00
Aleksei Fedotov 12e4f6b122 [TCM] Regard unconstrained requests together with constrained (#193) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov 992784d786 [TCM] Sort test runs by order of appearance within the translation unit (#200)
Add filename and line number info to each test case.
2026-04-02 12:22:48 +02:00
Ilya Isaev 516a17662b [TCM] Add vars scripts for TCM (#181)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:48 +02:00
Aleksei Fedotov 1b452c7011 [TCM] Move alternating clients test and rename it (#197) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov b4fa6a641a [TCM] Log test header and footer to standard out stream (#196) 2026-04-02 12:22:48 +02:00
Aleksei Fedotov feb041f752 [TCM] Make TCM tests independent from each other (#194) 2026-04-02 12:22:47 +02:00
Aleksei Fedotov 007b7c3b90 [TCM] Introduce RFC process (#183) 2026-04-02 12:22:47 +02:00
Ilya Isaev 777c2f0359 [TCM] Port fractal sample from oneTBB examples (#188)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 978febc1db [TCM] Introduce test logger and make reporting functionality using it (#189) 2026-04-02 12:22:47 +02:00
Ilya Isaev cf201f4efa [TCM] Improve matrix write/read in Cholesky benchmark (#187)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Olga Malysheva 4b06283961 [TCM] Add hardening flags to the library build (#186) 2026-04-02 12:22:47 +02:00
Aleksei Fedotov be2c0ab2ba [TCM] Use portable "LINKER" option on Windows (#185) 2026-04-02 12:22:47 +02:00
Olga Malysheva e7e55adad8 [TCM] Set TCM version to 1.4.0 for oneAPI 2025.2 (#182) 2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov 1b7bef1a5e [TCM] Suggest to use TCM after a couple of failed tcmConnect attempts (#180)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Olga Malysheva 5f0125be6a [TCM] Add new SDL-recommended flags (#178) 2026-04-02 12:22:47 +02:00
Aleksei Fedotov 29b4160dd1 [TCM] Suppress overzealous MSVC warning (#179)
MSVC is pessimistic about the number of bytes to be written into the array during its initialization. The 'permit_size' is always greater than the warning shows. So, suppressing it.
2026-04-02 12:22:47 +02:00
Ilya Isaev 1b28088c63 [TCM] Workaround warning -Wcast-function-type-mismatch (#177)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov ae45b783c9 [TCM] Fix table formatting in the docs (#176) 2026-04-02 12:22:47 +02:00
Ilya Isaev 35dbb2d84f [TCM] Prioritize HWLOCROOT variable (#175)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Olga Malysheva 572b0224c9 [TCM] Update version to 1.3.0 for oneAPI 2025.1 (#174)
Although the library doesn't include any interface changes but the package includes the new HWLOC version. So, it was decided to increase the minor version and keep it in sync with the interface version for better debuggability from internal users perspective. We might change this approach in future, especially if TCM is open sourced.
2026-04-02 12:22:47 +02:00
Olga MalyshevaandAleksei Fedotov 51f22034ec [TCM] Add new SDL-recommended flags (#173)
* Add new SDL-recommended flags - /LTCG, /sdl, /Gy as well as /INCREMENTAL:NO and /GL

---------

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei FedotovandIlya Isaev 1caa795811 [TCM] Improve reporting in resource balancing test (#171)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 3b8da48035 [TCM] Add test for disconnecting an owning client (#169)
Also, start adding high-level routines in testing infrastructure that check for TCM invariants such as all resources are occupied or available, etc.
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 77f3a9e8fa [TCM] Streamline validation of a constrained request (#172) 2026-04-02 12:22:47 +02:00
Aleksei Fedotov 5e572a146c [TCM] Fix incorrect logging in test utils (#170)
Due to assignment to the `permit_handle` in `tcmRequestPermit` function,
test always logged that the permit request was made on an existing
permit handle.
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 7cd5abdaaf [TCM] Isolate HWLOC use in tests (#168) 2026-04-02 12:22:47 +02:00
Aleksei Fedotov 66fb804d7b [TCM] Avoid linking HWLOC where it isn't needed (#167)
Don't link HWLOC library with the tests that do not require it
2026-04-02 12:22:47 +02:00
Olga Malysheva 5cb8edd561 [TCM] Add SECURITY.md file (#165)
* Add SECURITY.md file (PSE recommendation)
2026-04-02 12:22:47 +02:00
Olga Malysheva d85ca32271 [TCM] Add dependabot.yml (#166) 2026-04-02 12:22:47 +02:00
Aleksei Fedotov 613c650547 [TCM] Fix year in copyright notices of a couple of files (#164) 2026-04-02 12:22:47 +02:00
Ilya Isaev 7a99b62f8c [TCM] Bump CMake minimum required version to 3.5 (#163)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov a28ab310bb [TCM] Release client resources during disconnection (#161)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 6a8f5e9cb0 [TCM] Re-read of the permit state after taking the lock for permit deactivation (#159)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 8b48915475 [TCM] Fix compilation warnings in benchmarks (#160)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov 439ab179d1 [TCM] Add flag that restrict HWLOC's interference with Windows process affinity (#157)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov 51d30cbe44 [TCM] tcmIdlePermit: renegotiate only when there is a demand (#158)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 9bf145f56e [TCM] Allow subsequent deactivations of already deactivated permit (#156)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 606676b7ec [TCM] Load TCM library in the test_premature_exit by filename (#153)
This will make test_premature_exit more robust.

Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 9fbaa7d5ee [TCM] Fix signed/unsigned mismatch in permit tracer (#154)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Olga Malysheva e0e9baeccc [TCM] Update version to 1.2.0 (oneAPI 2025.0) (#151) 2026-04-02 12:22:47 +02:00
Ilya Isaev 490649535b [TCM] Revert "Invoke callback for initiator's client in tcmActivatePermit function …" (#150)
This reverts commit 1c4f0a0d7545b9933498c6cc17ed05d9d260bcf7.
2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov 0f5a4d15ee [TCM] Fix rigid_concurrency permits overriding lazy_inactive_permit pointer (#148)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov 31c4d2524b [TCM] Invoke callback for initiator's client in tcmActivatePermit function (#142)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 4386f8d4bb [TCM] Move checking permit_handle for nullptr under is_valid() (#143)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov f1043c27a9 [TCM] Add permit tracer (#141)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 987c503f39 [TCM] Fix warning about unsigned value being assigned to a signed type (#140)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov cc1cac0b1c [TCM] Do not store useless active rigid concurrency permits (#138)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 5c7ab0f677 [TCM] Revise expectations in the test with overlapping clients (#137)
The test has incorrect assumption and is too white-boxish. This patch makes it less white-boxish, but still assumes that TCM negotiates minimal number of permits to satisfy minimum of requested resources.
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 9e937f144f [TCM] Fix oneMKL and oneTBB mentioning in the documentation (#135) 2026-04-02 12:22:47 +02:00
Ilya Isaev 4096b5af51 [TCM] Port Cholesky benchmark from oneTBB repo to TCM with adjusted build parameters (#134)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov ae508fd264 [TCM] Add warnings about changing permit's state that affects container comparators (#133) 2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov f7013971d6 [TCM] Determine primary thread during resource distribution for nested case (#129)
This patch makes an assumption in TCM that the requesting thread is going to be registered with the permit being obtained, and, therefore, makes TCM searching for less by one resource in case the thread that requesting a permit is already registered with another, and, hence, was given a resource previously.

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov b6efa13c1c [TCM] Add possibility to request permit in inactive state (#132) 2026-04-02 12:22:47 +02:00
Pavel KumbrasevandIlya Isaev 7d90f4bd35 [TCM] Initial implementation of Fuzz testing for TCM environment variables (#110)
Implemented a simple Fuzz function that set TCM env variables with random values. Validate that TCM is working by executing basic test.
---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 26889f9d61 [TCM] Improve internal profiling (#124)
This simplifies the interface along with increasing the amount of statistics gathered.
2026-04-02 12:22:47 +02:00
Olga Malysheva bdba7ddcf0 [TCM] Update version to 1.1.0 for 2024.2 release. (#131)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov d1a6341203 [TCM] Re-activating permit w/o resource search when minimum is satisfied (#130) 2026-04-02 12:22:47 +02:00
Ilya Isaev 5faa24e84b [TCM] Fix copyright year in .rc (#128)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov c9ac3d1c89 [TCM] Restrict load-time search in Current Working Directory on Windows (#126)
Restrict Windows loader to look in CWD if it isn't in Safe load list
2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov df1de71f25 [TCM] Improve code coverage (#125)
Removed FCFS.
Removed unused helper functions.
Removed unused system_topology functions which was there due to borrowing from TBBBind.
Added get_permit_state function to clean up code a little bit.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 1a89c385ae [TCM] Automatic year substitution in resource file (#123) 2026-04-02 12:22:47 +02:00
Ilya Isaev 98f261fb7a [TCM] Release resources when releasing lazy deactivated permit (#122)
There is a missed spot in TCM which testing didn't cover: releasing of lazy inactive permit. Permit didn't give back its resources and it could lead to not getting granted concurrency for newer permits.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Ilya IsaevandFedotov, Aleksei dbd711db45 [TCM] Add exclude-libs option for Intel compilers (#121)
When using -static-intel option, Intel Compiler statically links internal libraries like libimf. Their symbols are exported automatically which can lead to unexpected issues due to mixed symbols in scenarios when multiple libraries with same dependencies are present. To eliminate this issue, --exclude-libs ALL link option is used.

Co-authored-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Ilya Isaev 11ecbeccad [TCM] Fix copyright (#120)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov 1a9dcd8e7a [TCM] Enable CMake plugin mechanism (#119)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Ilya Isaev 9b7d6eded9 [TCM] Increase TCM patch version (1.0.0 -> 1.0.1) (#118) 2026-04-02 12:22:47 +02:00
Ilya IsaevandAleksei Fedotov 44cf932630 [TCM] Keep granted resources for inactive permit when there is no demand (#115)
This patch slightly changes logic of permit's deactivation to make it work in more "lazy" manner. This means that in case where there is no demand for resources (in this case having other active or pending permits), deactivation of the permit will work like idle - keeping the resources and just change a state of the permit. This allows to quickly activate this permit later.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Olga Malysheva 1f44f04e19 [TCM] Add copyright info to Windows DLLs (#117)
* Add resource file .rc to produce DLL info with copyrights on Windows

---------

Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2026-04-02 12:22:47 +02:00
Ilya Isaev 03348a07cb [TCM] Add missed -fvisibility-inlines-hidden flag for Intel Classic Compiler (#116)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Ilya Isaev e909cb9683 [TCM] Remove indirection from ThreadComposabilityManager's pimpl implementation (#114)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov ceaf406e16 [TCM] Use special predefined variable __func__ for automatic test naming (#101)
Also split test for TCM environment to have canonical appearance.
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 041519e696 [TCM] One time permit memory allocation (#109)
Make one-time allocation for representation of a permit
2026-04-02 12:22:47 +02:00
Pavel Kumbrasev 8e5dcb00f9 [TCM] Fix missed callback (#113)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2026-04-02 12:22:47 +02:00
Ilya Isaev 3965761081 [TCM] Add SDL compile flags (#112)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Ilya Isaev 95e6d62c1b [TCM] Remove processing internal envvars to mitigate potential security risks (#111)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 5d4faa10d5 [TCM] Extend tests for incorrect requests (#106) 2026-04-02 12:22:47 +02:00
Aleksei Fedotov 63a6013c67 [TCM] Return invalid argument when releasing nullptr (#107) 2026-04-02 12:22:47 +02:00
Olga Malysheva cf7f965f80 [TCM] Fix the product name (TCMLIB-80) (#108)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2026-04-02 12:22:47 +02:00
Ilya Isaev 1bf071d4ab [TCM] TCM_DISABLE->TCM_ENABLE, remove -beta suffix, add Date and Time info (#105)
TCM is now DISABLED by default, thus replace opt-out envvar by opt-in one. Remove "-beta" suffix from the version. Add "BUILD TIME"  and "COMMIT ID" information to be available with TCM_VERSION=1

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 3b8ac51dda [TCM] Insert into pending container only if request was not satisfied (#102) 2026-04-02 12:22:47 +02:00
Pavel KumbrasevandAleksei Fedotov fa1cab976f [TCM] Add time tracker implementation (#104)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-04-02 12:22:47 +02:00
Aleksei Fedotov 73ee170d77 [TCM] Add indents in the tests' output (#103)
Add indents in the tests' output to simply log analysis
2026-04-02 12:22:47 +02:00
petterreinholdtsenandPetter Reinholdtsen 34b3d4b73b Provide useful PTHREAD_STACK_MIN value if OS do not define it. (#2026)
Co-authored-by: Petter Reinholdtsen <pere@debian.org>
2026-03-31 10:38:49 +02:00
petterreinholdtsenandPetter Reinholdtsen 88482f5f1a Extend gcc 12-14 workaround in notify_one_relaxed() to 15 (#2029)
Co-authored-by: Petter Reinholdtsen <pere@debian.org>
2026-03-31 09:47:48 +02:00
petterreinholdtsenandPetter Reinholdtsen e020cf2e63 Tests: disabled increased_priority_guard on GNU Hurd. (#2028)
Co-authored-by: Petter Reinholdtsen <pere@debian.org>
2026-03-31 09:32:20 +02:00
Dmitri Mokhov 01badbebb0 Revert "Rework get_task and steal_task to better interact with out_of_work checks (#1779)" (#2022) 2026-03-25 10:09:04 -05:00
2561dc7a3f Improve resource_limited_node coverage (#2018)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-24 11:06:37 +02:00
Dmitri Mokhov 1911b28398 Fix ODR violation crash in global_control::active_value() for static builds (#2020) 2026-03-23 09:38:49 -05:00
Ilya Isaev e327de0d69 Skip leak warning test when ASAN is enabled (#2019)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-03-23 11:50:47 +01:00
Aleksei Fedotov c593e32768 Fix failure regex for tbbbind tests with pkg-config HWLOC target (#2021)
tbbbind tests linked with HWLOC found using pkg-config used incorrect failure regular exression, leading to test always passed.
2026-03-23 11:29:26 +01:00
ef6f9b5ea5 Account for cgroups constraints in the NUMA task arena conformance test (#2014)
Co-authored-by: Aleksei Fedotov <fedotov.aleksei@gmail.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2026-03-19 09:42:53 +01:00
5309534d7b Add -fcf-protection=full conditionally. (#2015)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2026-03-18 14:34:35 +01:00
Dmitri Mokhov cbc7a52b08 Move "Global Control Parameter for Worker Fast Leave Behavior" RFC from "proposed" to "experimental" (#2006) 2026-03-17 10:34:53 -05:00
Aleksei Fedotov 767bb681de Replace hwloc_bitmap_t with tcm_cpu_mask_t (#2013)
oneTBB should not know anything about HWLOC interfaces, but is aware about TCM. Therefore, where
necessary it should rely on either TBBBind or TCM instead, not HWLOC. Since TBBBind does not define
the type representing the CPU mask, replace all the references of mask from HWLOC to mask from TCM.
2026-03-16 17:36:38 +01:00
Ilya Isaev 5c785d7b00 Use single year in copyright, update the checker (#2009)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-03-16 17:36:09 +01:00
Aleksei Fedotov 1727c70c52 Add necessary lines to fulfill brief scanner requirements (#2012) 2026-03-16 14:04:40 +01:00
Dmitri Mokhov af05780cce Add constraints affinity mask export from TBBBind to ensure cross-hwloc consistency with TCM (#1990) 2026-03-13 16:17:30 -05:00
Mike Voss 5ee6eb9df6 Fixed use of wrong "c" character (#2011) 2026-03-13 14:21:07 -05:00
Dmitri Mokhov e793c9ab10 Remove __TBB_ARENA_BINDING macro (#2008) 2026-03-13 13:34:13 -05:00
Aleksei Fedotov 9ebef4f972 Add tests for cgroup support (#2004) 2026-03-13 18:33:40 +01:00
Ilya Isaev b6ffd275a2 Fix C2398 compilation error in test_task.cpp (#2010)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-03-13 15:09:40 +01:00
Ilya Isaev 1368bbf89b Fix a set of AddressSanitizer and ThreadSanitizer issues (#1889)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-03-13 10:16:50 +01:00
Konstantin Boyarinov fef013d2d4 Fix warning in resource_limited_node test (#2007) 2026-03-12 16:33:44 +02:00
Dmitri MokhovandIlya Isaev eaa50b33d0 [RFC] Global Control Parameter for Worker Fast Leave Behavior (#1923)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2026-03-11 11:25:49 -05:00
Konstantin Boyarinov 77972437ac Introduce feature-test macro for task_group dependencies (#1993) 2026-03-11 17:59:12 +02:00
3f66347ae1 [RFC] Advanced Core Type Selection (#1917)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-03-11 09:31:03 -05:00
Konstantin Boyarinov a7ecf37807 Improve task_group::wait_for_task testing (#2001) 2026-03-10 18:00:36 +02:00
Aleksei Fedotov 40a0c423be Explicit type cast to avoid compilation issue (#2000)
`-pedantic` or `-pedantic-errors` compiler options produce compilation issues. This patch fixes them.
2026-03-10 14:57:37 +01:00
Konstantin Boyarinov 3a41cfb933 Disable resource_limited_node test case for systems without resumable tasks (#2003) 2026-03-10 13:01:12 +02:00
Dmitri Mokhov 104db7fba8 Add parallel phase feature test macro and simplify leave policy initialization logic (#2002) 2026-03-10 05:38:15 -05:00
Konstantin Boyarinov d38d12c81f [RFC] Add arena and submit method preservation as exit criteria for task_group dependencies (#1817) 2026-03-09 18:43:04 +02:00
Olga Malysheva fa3c37bf40 Update harden-runner manually to fix the issue (#1996) 2026-03-09 15:21:27 +01:00
Dmitri Mokhov 19f7d3331b Fix failure of create_numa_task_arenas/selector combo test (#1998) 2026-03-09 08:16:35 -05:00
Konstantin Boyarinov fb390c56dd Fix resource_limited_node exception safety (#1997) 2026-03-06 18:48:55 +02:00
Mike Voss 03c286d058 Update blocked_range.h to remove unneeded include (#1995) 2026-03-06 10:11:20 -06:00
Alexandr-Konovalov 6f0ba27e6c Report if IPO is requested but disabled because not supported (#1994) 2026-03-06 09:40:57 +01:00
Dmitri Mokhov 0b30ba316c Add a global_control parameter to toggle worker fast leave behavior (#1991) 2026-03-06 10:39:54 +02:00
Dmitri MokhovandIlya Isaev 00711ab64a Implement multiple core type constraints using selectors (#1987)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2026-03-06 10:39:23 +02:00
Konstantin BoyarinovandMike Voss 5991385163 Add resource_limited_node and resource_limiter to the Flow Graph (#1964)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-03-06 10:15:44 +02:00
Konstantin Boyarinov 747cab46cb Waiting for Individual tasks in task_group API (#1887) 2026-03-06 08:23:57 +02:00
f889fae4ad RFC for Waiting for Individual Tasks in task_group (#1862)
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2026-03-05 17:48:08 +02:00
Ilya Isaev 97f44bc428 Clang build on Windows: address comments from #1936 (#1992)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-03-05 15:51:14 +01:00
JustinZhuandjustinzhu@home 746ec661c8 Fix Windows Clang compiler flags in CMake configuration (#1936)
Co-authored-by: justinzhu@home <zhuguangwen@zealshow.com>
2026-03-05 12:20:10 +01:00
Konstantin BoyarinovandRuslan Arutyunyan b56a6c71bc Flow Graph deduction guides improvements, support for newly added body types (#1734)
Co-authored-by: Ruslan Arutyunyan <ruslan.arutyunyan@intel.com>
2026-03-05 12:48:11 +02:00
Nikolay PetrovandAleksei Fedotov 0bd0ae8d3d feat(python): Add free-threading (NOGIL) Python 3.13+ support (#1965)
Signed-off-by: Nikolay Petrov <nikolay.a.petrov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-03-04 10:44:02 -06:00
Konstantin Boyarinov 51aa602dfe Revert the constructor of tbb::flow::resource_limiter (#1989) 2026-03-03 19:45:12 +02:00
Alexey KukanovandKonstantin Boyarinov 463b603aef Update the API proposal for the resource limited node (#1979)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2026-03-02 20:38:26 +01:00
Konstantin Boyarinov d4a1c23305 Fix copyright check when there are no files with copyright changed (#1986) 2026-03-02 15:56:51 +02:00
Ilya Isaev 914f8cd7ae Mark functions and variables as inline to avoid "TU-local entity exposure" issue (#1960)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-03-02 11:16:55 +01:00
dependabot[bot] 662602c648 Bump github/codeql-action from 4.32.0 to 4.32.4 (#1982)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 09:31:45 +02:00
dependabot[bot] 06ef3676c8 Bump actions/upload-artifact from 6.0.0 to 7.0.0 (#1983)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 09:31:21 +02:00
dependabot[bot] 729174d804 Bump step-security/harden-runner from 2.14.1 to 2.15.0 (#1984)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 09:30:59 +02:00
dependabot[bot] 886a3ff7e5 Bump actions/download-artifact from 7.0.0 to 8.0.0 (#1985)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 09:30:05 +02:00
Konstantin Boyarinov 96ba55042d Fix Task Dynamic Dependencies when RTTI is disabled (#1928) 2026-02-27 19:30:14 +02:00
Stéphane GINIER e28b9506b6 Fix compilation for platforms with non-resumable tasks (#1977) 2026-02-27 14:33:09 +01:00
Mateusz Jakub Fila 492c01ee2b update "mutex flavors" docs (#1973) 2026-02-24 13:12:33 -06:00
Konstantin Boyarinov 1009400588 Increase LLVM compiler version for allocator::destroy deprecation warning (#1975) 2026-02-24 15:23:45 +02:00
f71cccc781 Distributed size for concurrent ordered containers (#1803)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-02-24 11:47:06 +02:00
50fe7ef4bf Add RFC for flow::resource_limited_node and flow::resource_provider (#1957)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2026-02-23 18:20:07 +02:00
Konstantin Boyarinov f01f35d917 Remove std::aligned_storage usage from tests (#1971) 2026-02-18 15:22:11 +02:00
Aras Pranckevičius a5967f0fcf Build: do not include windows.h from header files (#1932) 2026-02-17 16:12:36 +02:00
Ilya IsaevandOlga Malysheva e13a512327 Fix tests compilation when using native Clang on Windows (#1959)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Olga Malysheva <olga.malysheva@intel.com>
2026-02-17 08:56:29 +01:00
Stéphane GINIER 51dffe9487 Fix rc file Non-ASCII 8-bit in non-Unicode string (#1968) 2026-02-16 16:17:14 +01:00
Olga Malysheva e8aa5f1ee3 Add UXL copyright to DLL properties (#1958) 2026-02-11 18:14:58 +01:00
Ilya Isaev 7cb69a7e1d Use correct Intel copyright year for proxy.cpp (#1963)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-02-10 12:49:36 +01:00
Lukasz Dorau a32d75796d Do not initialize pointers to original functions in (libc_)free (#1956)
Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2026-02-09 17:23:39 +01:00
dependabot[bot] 3ebfedd863 Bump github/codeql-action from 4.31.9 to 4.32.0 (#1953)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 14:12:49 +02:00
dependabot[bot] 2bb9ca5156 Bump actions/checkout from 6.0.1 to 6.0.2 (#1954)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 14:12:31 +02:00
dependabot[bot] fa296991ef Bump step-security/harden-runner from 2.14.0 to 2.14.1 (#1955)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 14:12:08 +02:00
Olga Malysheva 476a5a792b Correct product name (#1952) 2026-01-30 16:16:01 +01:00
Olga Malysheva ba3c297a39 Add missed copyright notice to the newly added file (#1951) 2026-01-26 19:42:59 +01:00
Ganael LaplancheandKonstantin Boyarinov 8b9ca4d80b FreeBSD: Add affinity support to tests (#1950)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2026-01-26 15:50:46 +02:00
Ganael LaplancheandKonstantin Boyarinov 8948cdb92d FreeBSD: fix several tests (#1945)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2026-01-23 15:30:26 +02:00
Alexandr-Konovalov 70b5bb9fae Use compiler's modern name, document cmake controls. (#1914) 2026-01-20 13:31:41 +01:00
Alexandr-Konovalov 2c22d159f0 Fix build of sycl examples under Windows (#1948) 2026-01-20 13:31:18 +01:00
Ben GreinerandIlya Isaev 360e0178e7 Python bindings: Replace direct setup.py usage with PEP517 (pip) (#1941)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2026-01-15 15:48:41 +01:00
Konstantin BoyarinovandAleksei Fedotov 05387d33d6 Extend blocked_nd_range construction test with necessary checks (#1933)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-01-13 21:38:59 +02:00
8eef2c6e4f Move CTAD for blocked_nd_range out of preview (#1929)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-01-13 15:45:46 +02:00
Konstantin Boyarinov dfcb16b10c Minor fix for copyright check (#1944) 2026-01-08 16:17:51 +02:00
dependabot[bot]andBoyarinov, Konstantin 0e7773e040 Bump step-security/harden-runner from 2.13.3 to 2.14.0 (#1937)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Boyarinov, Konstantin <konstantin.boyarinov@intel.com>
2026-01-08 15:03:26 +02:00
dependabot[bot]andBoyarinov, Konstantin fa1f20e8a7 Bump github/codeql-action from 4.31.7 to 4.31.9 (#1938)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Boyarinov, Konstantin <konstantin.boyarinov@intel.com>
2026-01-08 15:00:01 +02:00
dependabot[bot] b37573f1e4 Bump actions/download-artifact from 6.0.0 to 7.0.0 (#1939)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 14:54:04 +02:00
dependabot[bot] a225504b36 Bump actions/upload-artifact from 5.0.0 to 6.0.0 (#1940)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 14:51:59 +02:00
Ilya Isaev a337e29656 Bump copyright year in files affected by PR1902 (#1942)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-01-08 13:48:14 +01:00
Konstantin BoyarinovandIsaev, Ilya 1c0db8271a Fix and extend the copyright check (#1810)
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
2026-01-08 14:44:25 +02:00
Ilya IsaevandAleksei Fedotov 0f28710440 Implement API to create NUMA-bound task arenas (#1902)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2026-01-07 09:25:39 +01:00
Alexey KukanovandKonstantin Boyarinov f9955004ed Rework get_task and steal_task to better interact with out_of_work checks (#1779)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2025-12-19 14:23:31 +01:00
dependabot[bot] ce30448720 Bump actions/checkout from 6.0.0 to 6.0.1 (#1922)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 18:07:14 +02:00
dependabot[bot] 4eebefbb68 Bump step-security/harden-runner from 2.13.2 to 2.13.3 (#1921)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 18:06:54 +02:00
dependabot[bot] 09076c03ee Bump github/codeql-action from 4.31.5 to 4.31.7 (#1920)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-18 18:06:34 +02:00
Dmitri Mokhov db7891a246 Remove unnecessary friend operator (#1931) 2025-12-15 08:01:04 -06:00
Olga Malysheva 52a7b37398 Change dependabot schedule to monthly run (#1925) 2025-12-09 17:50:26 +01:00
Ilya Isaev 99d0c48180 Update from macos-13 to macos-15-intel due to image retirement (#1924)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-12-09 13:39:15 +01:00
Olga MalyshevaandKonstantin Boyarinov 1b3edbf85c Update MAINTAINERS.md and CODEOWNERS (#1910)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2025-12-09 12:30:09 +01:00
dependabot[bot] b963626302 Bump step-security/harden-runner from 2.13.1 to 2.13.2 (#1908)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 18:51:43 +02:00
dependabot[bot] dd335b88a0 Bump github/codeql-action from 4.31.2 to 4.31.5 (#1919)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 18:35:11 +02:00
dependabot[bot] fb35d72cdd Bump actions/checkout from 5.0.0 to 6.0.0 (#1915)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 18:34:42 +02:00
Konstantin BoyarinovandAleksei Fedotov 1114d23f45 Flow Graph - remove C++03 legacy (#945)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-12-01 17:09:50 +02:00
Olga Malysheva 0cd32ab10a Use separate Coverity project for Windows scan (#1886) 2025-11-10 20:33:48 +01:00
Ilya Isaev f5d9aa92fa Add arena constraints testing on Linux (#1905)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-11-10 12:03:43 +01:00
Dmitri Mokhov cfd170368e Remove inadvertently specified -fexceptions for TBBMalloc on WASM (#1893) 2025-11-06 09:28:33 -06:00
Konstantin Boyarinov de0daa2b2f Add new ittnotify hits to codespell ignore list (#1901) 2025-11-05 13:14:14 +02:00
Olga Malysheva 67cd2d0031 Update doctest to version 2.4.12 (#1896) 2025-11-05 11:32:37 +01:00
Olga Malysheva 560ea5fd50 Update ittapi to 3.26.4 (#1895) 2025-11-04 11:16:23 +01:00
dependabot[bot] 3b736d8964 Bump actions/download-artifact from 5.0.0 to 6.0.0 (#1883)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 23:08:23 +01:00
dependabot[bot] 4eea6498d1 Bump actions/upload-artifact from 4.6.2 to 5.0.0 (#1884)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 23:07:50 +01:00
dependabot[bot] 0993eb2597 Bump github/codeql-action from 4.30.9 to 4.31.2 (#1894)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 08:31:52 +02:00
Olga Malysheva 537a62c868 Run CodeQL only when the source code and tests changed (#1891) 2025-10-30 09:38:43 +01:00
Olga Malysheva a4d9201841 Update oneTBB version to 2023.0.0 for the next release (#1890) 2025-10-29 18:18:42 +01:00
Olga MalyshevaandMike Voss 83ffdf71d1 Update Release Notes and System Requirements for 2022.3 release. (#1881)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2025-10-28 21:18:00 +01:00
f07d4df23a Documentation for Task Group Dynamic Dependencies (#1863)
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2025-10-21 18:58:23 +03:00
dependabot[bot] d43b8c3243 Bump github/codeql-action from 4.30.8 to 4.30.9 (#1880)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 15:00:39 +03:00
Ilya Isaev ed1d7a7fbf [Documentation] Use task_arena interoperability functionality with task_group (#1866)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-10-21 12:00:47 +02:00
eleir9268 6c1ea129c2 Fix tests on QNX (#1865) 2025-10-20 10:12:51 +02:00
47d2b2c88b Add tasking documentation to user guide (#1791)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-10-17 15:22:58 -05:00
Olga Malysheva 9aa510a4d3 Collect Release notes from all releases in the master (#1878) 2025-10-17 10:44:29 +02:00
Dmitri Mokhov 110462de33 Documentation for Custom Assertion Handler (#1873) 2025-10-16 16:29:01 -05:00
dependabot[bot] 52323150cf Bump ossf/scorecard-action from 2.4.2 to 2.4.3 (#1869)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 11:49:59 +03:00
dependabot[bot] 589c986356 Bump github/codeql-action from 3.30.3 to 4.30.8 (#1875)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-13 11:49:45 +03:00
Dmitri Mokhov 80b15efc67 Fix parallel phase documentation example path (#1874) 2025-10-10 07:48:16 -05:00
Alexey Kukanov 4b123127e7 Move task_arena_waiting/task_group_interop to supported RFCs (#1864) 2025-10-06 13:45:57 +02:00
Konstantin Boyarinov 3df32aa46d Fix returning an empty task_handle from task_group task (#1867) 2025-10-05 17:43:17 +03:00
Konstantin Boyarinov 981eb42aee Remove dead function from task_handle class (#1860) 2025-09-22 19:05:25 +03:00
Alexey Kukanov 6f468b0385 Remove outdated extensions from the reference (#1855) 2025-09-19 13:45:46 +02:00
Mike VossandAleksei Fedotov 5ce1cc8c54 Use execution_slot to ensure backwards compatibility (#1853)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-09-18 13:24:48 -05:00
Ilya Isaev 3bb1c639f1 Suppress warning C4611 in MSVC (#1854)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-09-18 16:57:01 +02:00
dependabot[bot] 63dc0389da Bump github/codeql-action from 3.30.1 to 3.30.3 (#1851)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-17 12:02:37 +02:00
dependabot[bot] 39197401ee Bump step-security/harden-runner from 2.13.0 to 2.13.1 (#1850)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-16 21:41:09 +02:00
Łukasz Plewa f42e37262b add assert to suppress coverity issue (#1846) 2025-09-15 15:37:17 +02:00
Alexandr-Konovalov a17e0823ab Do not load TBBbind, only use already loaded (#1847)
The test manually load TBBbind. Previously the test repeated the TBBbind load procedure from TBB library, so potentially the test could load a TBBbind different from one loaded by the TBB library. After the change no new load is performed, only search between already loaded dynamic libraries. This resolves the potential issue mentioned above.
2025-09-15 11:53:28 +02:00
91af3aea3a Make task_group::wait more thread safe (#1780)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-09-12 11:39:06 -05:00
Konstantin BoyarinovandIlya Isaev 49b71fb80f [CI] Cancel existing workflow in case of new commit in the feature branch (#1848)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2025-09-12 18:34:58 +03:00
Alexandr-KonovalovandKonstantin Boyarinov 9d68318891 Fix missing brief covers for test_tbb_version.cpp (#1845)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2025-09-12 12:13:15 +02:00
7981bb4083 Update status of Custom Assertion Handler feature (#1838)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2025-09-11 19:13:13 +02:00
Alexandr-KonovalovandKonstantin Boyarinov 5154cf5f96 Add test for custom assertion handler inside TBBbind (#1828)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2025-09-11 19:12:39 +02:00
Federico Ficarelli 2a483d2314 Fix ASan detection on clang (#1842) 2025-09-11 16:03:28 +02:00
Zizheng Guo 33862d979c Fix/suppress new GCC warnings (#1752) 2025-09-11 16:48:01 +03:00
wszqkzqk e574119686 Only enable fcf-protection on x86 based processors for clang (#1792)
Signed-off-by: Zhou Qiankang <wszqkzqk@qq.com>
2025-09-11 15:43:53 +02:00
Aleksei FedotovandIsaev, Ilya aea8ce893c Support CPU resource constraints set using cgroups (#1777)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-09-10 13:19:07 +02:00
Konstantin Boyarinov ee718990c2 Enable TTAS strategy for spin_mutex and queuing_mutex (#1829) 2025-09-09 17:53:32 +03:00
Ilya Isaev b1d5aa29a4 Support assertion handler testing when tests compiled with -fno-exceptions (#1843)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-09-09 15:23:34 +02:00
Konstantin Boyarinov 132268ddd0 Fix assertion in task_handle_task::finalize (#1839) 2025-09-08 15:27:39 +03:00
dependabot[bot] f309ff7cf3 Bump github/codeql-action from 3.29.11 to 3.30.1 (#1840)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 12:33:12 +03:00
dependabot[bot] d9cfc65f8d Bump actions/labeler from 5.0.0 to 6.0.1 (#1841)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-08 12:21:24 +03:00
Alexey KukanovandVasanth Tovinkere bd9dad9065 Stop enforcing ITT domains to be active (#1835)
Co-authored-by: Vasanth Tovinkere <vasanth.tovinkere@intel.com>
2025-09-05 15:40:52 +02:00
6575d93a46 Custom assertion handler (#1815)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-09-03 10:25:02 -05:00
0d0fe7cf14 Implementation of task_group dynamic dependencies (#1682)
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2025-09-03 08:46:53 +03:00
Konstantin Boyarinov 712ad98443 Fix warnings in concurrent unordered containers and blocked range test (#1831) 2025-09-01 13:30:36 +03:00
dependabot[bot] f946f24cc4 Bump github/codeql-action from 3.29.9 to 3.29.11 (#1826)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-01 13:22:35 +03:00
Konstantin BoyarinovandAlexey Kukanov 575948b37c Add current_task_ptr entry point (#1821)
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-08-27 19:21:31 +03:00
Dmitri MokhovandAlexey Kukanov fcf40fc39f Custom assertion handler (#1808)
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-08-26 19:03:12 -05:00
Dmitri Mokhov 33da759dec Adjust mismatching years in CONTRIBUTING.md (#1825) 2025-08-25 07:16:33 -05:00
dependabot[bot] c4f2d38b94 Bump github/codeql-action from 3.29.8 to 3.29.9 (#1819)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 19:49:08 +03:00
dependabot[bot] fa5dfe1738 Bump actions/checkout from 4.2.2 to 5.0.0 (#1820)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-19 19:48:50 +03:00
Alexey Kukanov 681b96ecad Send ITT task end notifications with less delay (#1806)
Do not postpone the notifications for more than just a few unsuccessful attempts to find a non-local task, in order to avoid skewed results in profiling tools.
2025-08-19 18:44:37 +02:00
Ilya Isaev 4e4fffed4f Improve task_arena interoperability with task_groups (#1784)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-08-18 10:35:26 +02:00
dependabot[bot] a83797042a Bump actions/download-artifact from 4.3.0 to 5.0.0 (#1813)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-14 18:11:08 +03:00
dependabot[bot] 0bf0c9a853 Bump github/codeql-action from 3.29.4 to 3.29.8 (#1814)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-14 18:10:50 +03:00
7276846834 Add implementation details information for task group dynamic dependencies (#1743)
Co-authored-by: Michael Voss <MichaelJ.Voss@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2025-08-12 21:26:18 +03:00
Ilya IsaevandAlexey Kukanov 6b0cb2b88e Refactor reference_vertex: improve lifetime tracking, add tests, move class into the library (#1785)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-08-11 13:24:21 +02:00
Olga Malysheva 4ba5c69de4 Correct names in the new samples README (#1804) 2025-08-07 16:39:22 +02:00
Federico Ficarelli 8652376147 Avoid nullptr member function call if key hasn't been found by hash_buffer_impl::find_element_ref_with_key (#1800) 2025-08-02 16:17:20 +02:00
Mike VossandAlexey Kukanov 9f3ae90ed2 Added wording for supported hardware platforms in CONTRIBUTING (#1797)
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-08-01 08:24:40 -05:00
Caleb Zulawski af49577753 Bazel: apply -mwaitpkg only to x86-64 (#1790) 2025-07-31 11:55:21 +02:00
dependabot[bot] 42381256ab Bump github/codeql-action from 3.29.2 to 3.29.4 (#1793)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-30 11:30:32 +03:00
42cafa567e Extended Semantics RFC for task_group dynamic dependencies (#1664)
Co-authored-by: Michael Voss <MichaelJ.Voss@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-07-25 14:17:24 +03:00
dependabot[bot] 45726ad1da Bump actions/checkout from 4.1.1 to 4.2.2 (#1773)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 13:13:35 +03:00
dependabot[bot] 0bab27645e Bump step-security/harden-runner from 2.12.1 to 2.13.0 (#1786)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-21 13:13:17 +03:00
Coleman ddd006ac0f Fix assertion failure when using ASAN (#1726) (#1782) 2025-07-21 11:42:39 +02:00
dependabot[bot] 792d312233 Bump github/codeql-action from 3.29.1 to 3.29.2 (#1774)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-10 17:32:56 +02:00
Olga Malysheva 61352ca814 Update version for the next release (#1776) 2025-07-10 11:43:44 +02:00
Konstantin Boyarinov 9a771aafb6 Fix duplicating keys in concurrent_hash_map (#1771) 2025-07-07 20:11:32 +03:00
StepSecurity Bot 042c05859c [StepSecurity] ci: Harden GitHub Actions (#1769)
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
2025-07-02 16:37:33 +02:00
StepSecurity Bot 78f8d9c982 [StepSecurity] ci: Harden GitHub Actions (#1756)
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
2025-07-02 15:16:53 +02:00
lmarz 65d46656f5 Only enable fcf-protection on x86 based processors (#1768) 2025-07-02 09:18:31 +02:00
dependabot[bot] a22fa7afed Bump github/codeql-action from 3.29.0 to 3.29.1 (#1766)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 14:56:36 +02:00
Alexandra e0376a760e Release notes and System Requirements for oneTBB 2022.2 (#1765) 2025-06-30 15:31:48 +02:00
Alexandra 8acdf22f9e Update layout.html (#1763) 2025-06-25 18:38:59 +02:00
Jessica Marz e1f9047a83 updating documentation footer (#1748) 2025-06-25 16:08:32 +02:00
Alexandra 4846d563d1 Update layout.html (#1761) 2025-06-25 16:05:30 +02:00
ambbox 38d23f2394 concurrent_hash_map.rst - remove →erase (#1755) 2025-06-16 19:09:59 +03:00
dependabot[bot] ec7f5f3438 Bump step-security/harden-runner from 2.12.0 to 2.12.1 (#1753)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 11:46:41 +02:00
dependabot[bot] b6ac4d0e8a Bump github/codeql-action from 3.24.10 to 3.29.0 (#1754)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-16 10:23:20 +02:00
StepSecurity BotandOlga Malysheva ed2b49da48 [StepSecurity] ci: Harden GitHub Actions (#1736)
Signed-off-by: StepSecurity Bot <bot@stepsecurity.io>
Co-authored-by: Olga Malysheva <olga.malysheva@intel.com>
2025-06-13 10:07:18 +02:00
Olga Malysheva adb0a81b7f Add Coverity Windows job (#1751) 2025-06-12 18:14:42 +02:00
Alexandra 54f3611e12 Update README.md (#1750) 2025-06-06 15:02:22 +02:00
Alexandra bebc0cdbd2 Docs: HWLOC linked with libtbbbind (#1747) 2025-06-06 13:05:41 +02:00
Alexandra 10175ea047 Doc clean-up (#1708) 2025-06-03 17:06:49 +02:00
Jimmy Wei 0f6f87d1ad Migrate oneTBB samples from oneAPI-samples (#1730) 2025-06-03 14:07:21 +03:00
Olga Malysheva 65f1633ff4 Replace windows-2019 (deprecated) runner with windows-11-arm (#1746) 2025-06-02 16:42:30 +02:00
dependabot[bot] 5fa5d2f19e Bump ossf/scorecard-action from 2.4.1 to 2.4.2 (#1744)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 11:50:02 +02:00
Dmitri Mokhov 2a766ddb13 Add a forward declaration to avoid a compilation error in GCC ≤ 7 (#1742) 2025-05-28 15:10:11 -05:00
Aleksei Fedotov 051fd44c11 Extend test dynamic link (#1724) 2025-05-27 12:19:51 +02:00
Mike VossandKonstantin Boyarinov d304712beb Fix for overwrite_node to continue_node accounting (#1729)
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2025-05-22 10:43:45 -05:00
Aleksei FedotovandAlexandra e3ab04b078 Extend documentation wrt mixing with other threading packages (#1702)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2025-05-21 18:30:42 +02:00
Łukasz Plewa 326ab8f617 fix deadlock during initialization between vtune and tbbmalloc_proxy 2025-05-20 15:10:54 +02:00
Dmitri Mokhov e60bce120d Prevent copying of scoped_parallel_phase (#1731) 2025-05-15 22:42:17 -05:00
Dmitri Mokhov 803ad72649 Add an assertion in post coroutine-resume cleanup (#1728) 2025-05-14 13:35:25 -05:00
Mike Voss 982d9cb27f RFC for experimental support for type-specified message keys for join_node (#1704) 2025-05-12 13:05:25 -05:00
Mike VossandAleksei Fedotov 38f44f2ca7 Added RFC for Flow Graph Helper Functions (#1648)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-05-09 14:16:47 -05:00
Ilya Isaev e1caa5f5a7 Fix deprecation warning about <ciso646> header (#1725)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-05-07 15:54:05 +02:00
Ilya Isaev e0edf7a653 Reduce execution time of test_parallel_phase (#1723)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-05-06 10:42:31 +02:00
Olga Malysheva 7dfe7e744a Update compiler and linker options (#1719) 2025-04-30 21:29:20 +02:00
Aleksei Fedotov 2df02d2ac7 Fix various issues with build on Windows (#1720) 2025-04-29 21:07:58 +02:00
Aleksei Fedotov 61cfd830d4 Fix link to oneTBB Specification (#1718) 2025-04-29 13:58:53 +02:00
sarathnanduandsarathnandu c6c393777f Fix address sanitizer failures in tbb malloc (#1650)
Co-authored-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
2025-04-28 10:25:41 -05:00
Olga Malysheva a869ca2c33 Replace CPATH with C_INCLUDE_PATH and CPLUS_INCLUDE_PATH (#1710) 2025-04-25 21:18:02 +02:00
Olga Malysheva e28b8840b3 Add ubuntu-arm clang configuration (#1701) 2025-04-25 21:15:41 +02:00
Konstantin Boyarinov dceb92191f Fix copyright for Natvis file (#1715) 2025-04-25 16:00:24 +03:00
Konstantin Boyarinov b56dab688b Add Natvis file for TBB contianers (#1711) 2025-04-24 18:41:32 +03:00
John Ericson dedade160c Fix build errors on MinGW and FreeBSD (#1696) 2025-04-24 10:00:39 +02:00
Konstantin Boyarinov 61fd1fdf23 Disable scalable memory pools from test_tbb_header when _CRTDBG_MAP_ALLOC is defined (#1712) 2025-04-22 19:21:05 +03:00
dependabot[bot] 08ab3e5c06 Bump step-security/harden-runner from 2.11.1 to 2.12.0 in /.github/workflows (#1713)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-22 13:45:39 +02:00
Dmitri Mokhov 09b3703530 Make link options portable across compilers on Windows (#1705) 2025-04-15 13:34:35 -05:00
Olga MalyshevaandAlexandra 704ca611c4 Improve documentation (#1676)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2025-04-09 16:57:36 +02:00
Alexey Kukanov 8682bc9e66 [RFC] API to simplify creation of task arenas constrained to NUMA nodes (#1679) 2025-04-09 12:30:55 +02:00
Ilya Isaev 3dfecb5d1a Tests: fix uninitialized variables in copy_counting_object (#1642)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-04-08 09:09:55 +02:00
dependabot[bot] 814986f20e Bump step-security/harden-runner from 2.11.0 to 2.11.1 (#1697)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 13:53:47 +02:00
Vertexwahn 45c247870f Bazel support: Bump platform dependency (#1694) 2025-04-07 10:28:34 +02:00
Dmitri Mokhov f528a583cb Add copyright headers to new benchmarking scripts (#1692) 2025-04-01 09:23:11 -05:00
Dmitri Mokhov 31275c3f3a Correct Intel compiler version check in test_allocators.cpp (#1693) 2025-04-01 09:22:50 -05:00
Olga Malysheva a0be99678e Correct Intel compiler version check in CMakeLists (#1691) 2025-04-01 12:31:09 +02:00
Olga Malysheva e4fafed1cb Update version to 2022.2.0 for the next release (#1689) 2025-04-01 10:16:16 +02:00
Alexey Kukanov 0217e03ec1 Consider task_arena and task_group combination in detail (#1662) 2025-03-27 10:11:55 -05:00
Alexandra 0881802eeb Update RELEASE_NOTES.md and System Requirements for oneTBB 2022.1 (#1674) 2025-03-27 11:57:53 +01:00
Marc PaternoandKyle Knoepfel f3883b3666 [rfc] Resource-limited Nodes (#1677)
* Limited-resource RFC.

* Add to introduction

* Add question about constrained template use

* More work on introduction

* Primarily whitespace cleanup.

* Standardize thread-(un)safe

* Add blurb on C++20 support

* Updates to serialization RFC

* Incomplete version of sequence diagram

* Expand on limited resources

* Update README.md

* Update image

* Update README.md

* Minor updates

* Add performance analysis to README

* Whitespace cleanup

* Adjust heading levels

* Minor edits to text

* Adjust levels one more time

* Final editing pass before PR

* Remove unused plantuml files

* Adjust PR based on Mike's and Konstantin's suggestions/questions

* Adjust GitHub markdown

* Adjust GitHub markdown...again

* Update proposal based on @akukanov's suggestion

* Include graph diagram of analyzed workflow

* Use png instead

* Show graph with limiters

---------

Co-authored-by: Kyle Knoepfel <knoepfel@fnal.gov>
2025-03-25 18:52:50 -05:00
Dmitrii Golovanov 6c0fb2024a examples: build targets for benchmarking (#1678)
* examples: common: add_benchmark_target macro

New `add_benchmark_target` macro to use it with benchmark targets where post-execution data transformation is needed to summarize results, convert output to .csv files, etc. This feature requires `gawk` utility installed.

* examples: Tachyon, Primes, Sudoku: Add benchmark data post-processing

Add two new build targets to the Tachyon, Primes, and Sudoku examples to execute them for benchmarking with suggested parameters and optional .csv report file.

Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
2025-03-25 18:04:14 -05:00
Olga Malysheva 39d0606b03 Add more hardening flags to library build (#1680) 2025-03-24 18:51:45 +01:00
Aleksei Fedotov 621af05d94 Allow loading dependencies by name (#1594)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2025-03-21 10:31:36 +01:00
Oleg Butakov 34e7495b16 Fix compilation on macOS with GCC (#1603) 2025-03-20 14:09:46 +01:00
Olga Malysheva ed141f3130 Replace ubuntu version in Documentation build CI job (#1675) 2025-03-12 12:32:32 +01:00
Dmitrii Golovanov 280e32f887 Example Benchmarks: calculate relative error on repeats (#1669)
* Move measurements class to measurements.hpp

Move class `measurements` from utility.hpp to its own file
measurements.hpp to simplify its use at example applications
eliminating duplicate declarations on include.
Adjust `seismic` example accordingly.

* examples: Extend class 'measurements'

Extend class `measurements`:
 * keep initial number of iterations.
 * stop() to return duration from the last start().

Add optional prefix and suffix at utility::report_relative_error().

* examples: tachyon: Add relative error estimation

Extend Tachyon example with additional option to execute
rendering several times and calculate relative error to
estimate rendering performance reliability.

* examples: primes: Add relative error estimation

Extend the Primes example `n-of-repeats` execution mode to
calculate relative error for each of the parallel threads
execution block (`n-of-threads`), so it is now possible to
measure their performance reliability.

* examples: sudoku: Add repeats and relative error

Extend Sudoku example with additional option to repeat solution
several times and calculate relative error to estimate
performance reliability.

Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
2025-03-07 17:30:59 -06:00
Dmitrii Golovanov 7b10f20ab6 Fix cmake error on in-source build (#1670)
Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
2025-03-07 17:53:47 +02:00
2b39fda900 Add documentation for blocked_nd_range CTAD (#1641)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2025-03-06 22:08:08 +02:00
e02bdf20e7 Add documentation for parallel_phase feature (#1646)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-03-06 17:59:51 +01:00
Dmitri MokhovandAlexandra 35b9fe6da9 Add info about TBBBind and custom allocators to known limitations (#1666)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2025-03-06 08:43:37 -06:00
Olga Malysheva 6e78ddb76c Update test matrix, etc. (#1661)
* Update test matrix
* Update ubuntu runner for non-testing jobs as well
* Use common version of clang-format
* Fix typos found by codespell
* Configure codespell
* Disable formatting on a piece of code
2025-03-05 15:01:51 +01:00
Ilya IsaevandAlexandra d784b62819 Add info about conflict between Release and Debug TBB to Known Limitations (#1663)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2025-03-05 10:58:06 +01:00
Ilya IsaevandAleksei Fedotov 196cbe5ae8 Link tbbbind with static HWLOC instead of HWLOC 1.11 (#1631)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-03-04 10:05:06 +01:00
Alexandra 15b86bd1e2 Update docs with new paths (#1667) 2025-03-04 10:01:21 +01:00
Dmitrii Golovanov a0007251a7 Fix underflow at concurrent_hash_map (#1665)
Fix underflow at concurrent_hash_map::clear() to make Coverity scan
happy.

Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
2025-03-03 15:48:48 -06:00
fa23dd3141 [RFC] task_group_dynamic_dependencies (#1469)
* Removed deprecated as cause for archive

* Added task_group_dynamic_dependencies RFC

* Addressed several comments on RFC

* Updated add_dependency figure

* Updated naming in task_group_dynamic_dependencies RFC and added more details

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Response to reviews

* Additional wording changes for dynamic tasks RFC

* Apply suggestions from code review

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Apply suggestions from code review

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Apply suggestions from code review

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* Changes to address reviews

* Addressed API comments for dynamic task API RFC

* Clarified what a valid task_handle can represent

* Apply suggestions from code review

Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>

* Apply comments & changes to the task group dependencies RFC (#1637)

* Remove concrete proposals from the RFC

* Apply review comments

* Update rfcs/proposed/task_group_dynamic_dependencies/README.md

* Apply review comments

---------

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2025-02-28 11:44:22 -06:00
Alexandra c71e06df83 Doc syntax fixes (#1660) 2025-02-28 17:03:37 +01:00
Olga Malysheva 2bfb15c32f Ignore TBB_FILE_TRIM for ICC (#1658) 2025-02-27 20:19:29 +01:00
Konstantin Boyarinov b58a15d2a1 Add missed headers to tbb.h (#1651) 2025-02-27 13:26:25 +02:00
Konstantin Boyarinov 8475f7e187 Update the list of maintainers (#1657) 2025-02-27 13:25:46 +02:00
Alexandra af1a128a93 Doc fixes (#1647) 2025-02-24 14:28:11 +01:00
Alexey Kukanov e49b67f757 Initial RFC for the task arena waiting functionality (#1617) 2025-02-24 14:00:31 +01:00
dependabot[bot]andKonstantin Boyarinov 9158f68080 Bump ossf/scorecard-action from 2.4.0 to 2.4.1 (#1649)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2025-02-24 12:23:23 +02:00
aacabd0277 Updated RFCs process description to align with oneDPL (#1612)
* Updated RFCs process description to align with oneDPL

* Update rfcs/README.md

Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>

* Update rfcs/README.md

Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>

* Response to reviews

* Update rfcs/README.md

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>

* Addressed review feedback

---------

Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-02-21 09:49:09 -06:00
Mike VossandDmitri Mokhov a44ca5a27e Added VERSIONING.md (#1640)
* Added Versioning Policies

* Update VERSIONING.md

Fixed subtitle based on review

* Update VERSIONING.md

Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>

* Update VERSIONING.md

---------

Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2025-02-19 14:05:07 -06:00
dependabot[bot] c712c1ad99 Bump step-security/harden-runner from 2.10.4 to 2.11.0 (#1635)
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.10.4 to 2.11.0.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/v2.10.4...v2.11.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-17 11:12:12 +02:00
Bora YalçınerandBora Yalciner b21eebe723 Fix legacy *.lib files not obeying CMAKE_INSTALL_LIBDIR variable. (#1613)
Co-authored-by: Bora Yalciner <yalcinerbora@outlook.com>
2025-02-12 15:01:21 -06:00
Konstantin Boyarinov d68d40b2e0 Cleanup preview macros (#1632) 2025-02-12 12:37:30 +02:00
Konstantin Boyarinov 45c2298727 Add CI workflow for testing documentation examples (#1629) 2025-02-11 16:37:25 +02:00
moritz-h d3ad09cd7f Fix build with non-english locale (#1606) 2025-02-07 09:15:06 +01:00
Dmitri Mokhov b92627be07 Suppress Intel Compiler debug iterator vectorization warning in test_openmp.cpp (#1630) 2025-02-06 08:58:20 -06:00
Konstantin Boyarinov fa5ed8e81c Suppress Intel Compiler deprecation warning for STL in test_allocators.cpp (#1626) 2025-02-05 16:01:25 +02:00
Ilya IsaevandAleksei Fedotov 1684f054f6 Ignore system-wide installed HWLOC for test/conformance_arena_constraints (#1624)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2025-01-31 17:53:54 +01:00
Ilya Isaev 79b5d689ec Stabilize test_parallel_phase (#1623)
Use task_arena::enqueue instead of parallel_for to reduce probability of missed wakeup

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2025-01-31 17:53:07 +01:00
Konstantin Boyarinov 409280bae7 Fix C++20 macro in parallel_for_each + fix concepts macro definition (#1611) 2025-01-31 17:32:54 +02:00
Dmitri Mokhov e653e16216 Update build instructions for WASM (#1622)
Emscripten uses static linking, so we should explicitly request a static TBB library instead of

* explicitly asking for shared (current instructions)
* using the default, i.e., shared

Both of the above get overridden with multiple warnings.
2025-01-30 11:10:19 -06:00
Olga Malysheva 8a14e3cb89 /d1trimfile option is not supported by ClangCL (#1620) 2025-01-30 17:26:53 +01:00
Konstantin Boyarinov c02c2d28da Change ONETBB_SPEC_VERSION macro to align with the latest oneAPI spec (#1618) 2025-01-30 14:23:37 +02:00
Dmitri Mokhov 3c85ad7766 Fix UBSan issue (#1615)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2025-01-28 08:26:53 -06:00
Konstantin BoyarinovandRuslan Arutyunyan 9d45787238 Add explicit deduction guides for blocked_nd_range (#1525)
* Enable CTAD for blocked_rangeNd since C++17

* Fix constraits test failure

* Extend implementation with tests and explicit deduction guide

* Remove unnecessary helper function

* Simplify the deduction guide

* Add deduction guide for blocked_range type

* Enable CTAD for blocked_rangeNd since C++17

* Fix constraits test failure

* Fix merging issue

* Add new deduction guides and test

* Update copyright years

* Update copyright years

* Save progress

* Apply review comments + introduce preview macros

* Fix fancy value

* Add single C array support

---------

Co-authored-by: Ruslan Arutyunyan <ruslan.arutyunyan@intel.com>
2025-01-24 15:23:59 -06:00
Konstantin Boyarinov d4b5ee58cd Add RFC for CTAD in blocked_nd_range (#1607)
* Add CTAD RFC

* Fix examples

* Add information about the braced-init-list limitation

* Retarget the RFC to experimental

* Add exit criterias + cleanup

* Add one more limitation

* Add link
2025-01-24 15:21:31 -06:00
a9fcf49775 Add reference implementation for parallel_phase feature (#1570)
Implement parallel_phase API proposed in RFC, add new entry points to the library, move the RFC to the experimental stage. 

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
2025-01-24 18:35:51 +01:00
Vladislav Shchapov 0f287a7bc6 Enable Coverity Scan only on uxlfoundation/oneTBB repo (#1589)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-01-24 18:02:20 +01:00
Mike Voss 37f6cb92b7 [RFC] Added numa_support rfc (#1535)
With sub-RFC about increased NUMA availability.
2025-01-24 17:15:50 +01:00
Konstantin BoyarinovandIlya Isaev 0d73df4f49 Fix concurrent_bounding_queue capacity on copy, move and swap operations (#1609)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2025-01-21 16:01:37 +02:00
Olga Malysheva 8dea30c377 Ignore TBB_FILE_TRIM option for Intel compiler (#1610)
* TBB_FILE_TRIM is not supported with Intel compiler on Windows
2025-01-21 12:18:14 +01:00
dependabot[bot] f8d1bf0362 Bump step-security/harden-runner from 2.10.3 to 2.10.4 (#1608)
Bumps [step-security/harden-runner](https://github.com/step-security/harden-runner) from 2.10.3 to 2.10.4.
- [Release notes](https://github.com/step-security/harden-runner/releases)
- [Commits](https://github.com/step-security/harden-runner/compare/v2.10.3...v2.10.4)

---
updated-dependencies:
- dependency-name: step-security/harden-runner
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-20 11:12:54 +02:00
Olga Malysheva e589dc0b50 Update version to 2022.1.0 for the next release. (#1605) 2025-01-15 17:45:26 +01:00
d62834b13e Fix the allocator for Flow Graph critical tasks creating (#1596)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2025-01-15 13:41:53 +02:00
Vladislav Shchapov acd1e736ed CTest: do not run oneTBB tests in parallel (#1590)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-01-15 09:57:43 +01:00
Mike VossandDmitri Mokhov ba984824a2 Remove non-ASCII characters in doctest strings (#1602)
* Fixed incorrect C in doctest string

* Fixed incorrect K in doctest string

---------

Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2025-01-14 16:27:03 -06:00
Vladislav Shchapov f0985b145f Fix deprecation warning: Compatibility with CMake < 3.10 will be removed from a future version of CMake. (#1585)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2025-01-14 17:35:58 +01:00
Ruslan ArutyunyanandBoyarinov, Konstantin b1c534bb9d Enable CTAD for blocked_rangeNd since C++17 (#1524)
Co-authored-by: Boyarinov, Konstantin <konstantin.boyarinov@intel.com>
2025-01-14 13:50:41 +02:00
dependabot[bot]andBoyarinov, Konstantin edad47b823 Bump step-security/harden-runner from 2.10.2 to 2.10.3 (#1599)
* Bump step-security/harden-runner from 2.10.2 to 2.10.3

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Boyarinov, Konstantin <konstantin.boyarinov@intel.com>
2025-01-14 13:36:34 +02:00
Mike Voss ef539f9e24 Update CODEOWNERS (#1597) 2025-01-10 16:28:39 -05:00
Ilya Isaev 8659619fbd Fallback to GetThreadGroupAffinity if GetNativeSystemInfo reports wrongly (#1587)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-12-20 10:41:59 +01:00
Olga Malysheva 503fdb2e31 Add Coverity scan (#1455)
* Add Coverity scan workflow and status badge
2024-12-18 16:44:53 +01:00
Ilya Isaev d6c0dfa521 Add option to enable control flow guard during compilation (#1586)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-12-18 09:19:45 +01:00
Ash Vardanian 4719ac1d90 Avoid -Wstringop-overflow in GCC 14 (#1583) 2024-12-12 16:04:18 +02:00
Ilya IsaevandFedotov, Aleksei 7a60b70036 Fix CPU binding on HCC Windows systems (#1575)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2024-12-10 18:16:23 +01:00
Aleksei FedotovandMike Voss 77478a1fc3 RFC to change dependency loading process (#1564)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2024-12-10 14:54:24 +01:00
dd27a25bdf [RFC] Propose parallel phase API extension for task_arena to warm-up/retain/release worker threads (#1522)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2024-12-09 17:38:03 +01:00
Olga Malysheva 9b843adfbb Replace deprecated macos-12 environment with macos-14 and macos-15 (#1578) 2024-12-09 12:59:28 +01:00
Kursat AktasandMike Voss bd689b5a7e Introducing oneTBB Guru on Gurubase.io (#1566)
Signed-off-by: Kursat Aktas <kursat.ce@gmail.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2024-12-05 13:56:48 -06:00
Olga Malysheva 90b0f18297 Fix broken links after migration to uxlfoundation org. (#1577) 2024-12-05 16:49:25 +01:00
FantasqueX db883d1d0f Improve code readability in CMake integration section (#1574) 2024-12-03 12:16:06 +01:00
snadampal d3b0a80d02 Bazel: fix build issue on arm64 linux platform (#1571) 2024-11-29 09:17:51 +01:00
Alexey KukanovandAlexandra 0d377cc8ec Extend the documentation with more information about multidimensional ranges (#1569)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-11-28 16:25:24 +01:00
bef1519a42 Introduce MAINTAINERS.md (#1560)
---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-11-25 12:22:07 +00:00
Ilya Isaev bd291eb0d1 Fix module show when using Lmod (#1567) 2024-11-22 10:31:52 +01:00
dependabot[bot] 0d545e2865 Bump step-security/harden-runner in /.github/workflows (#1565) 2024-11-19 13:57:59 +00:00
Olga Malysheva f5a5f79a33 Adjust labeler config file (#1563)
* Adjust labeler config file
* Fix labeler workflow
2024-11-18 15:16:20 +01:00
d1d43adf6a Move blocked_nd_range out of preview (#1449)
---------

Signed-off-by: Tobias Weinzierl <tobias.weinzierl@durham.ac.uk>
Co-authored-by: Johannes Bockhorst <johannesbockhorst2@gmail.com>
Co-authored-by: Alexey Kukanov <alexey.kukanov@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-11-07 10:29:36 +00:00
dependabot[bot] ae2b801c3f Bump github/issue-labeler from 3.2 to 3.4 (#1551) 2024-11-06 10:59:13 +00:00
dependabot[bot] eae64c1c41 Bump actions/download-artifact from 2 to 4 (#1549) 2024-11-06 10:57:24 +00:00
dependabot[bot] 9b5ca7493c Bump step-security/harden-runner from 2.6.1 to 2.10.1 (#1550) 2024-11-06 10:54:55 +00:00
dependabot[bot] 3874ffd4fb Bump actions/labeler from 4 to 5 (#1548) 2024-11-06 10:52:45 +00:00
dependabot[bot] afad98a166 Bump ossf/scorecard-action from 2.3.1 to 2.4.0 (#1547) 2024-11-06 10:51:09 +00:00
Olga Malysheva 22a5be7095 Add dependabot.yml to enable automatic check for GitHub actions version update (#1546) 2024-11-05 15:08:35 +01:00
Aleksei Fedotov 63a2a4dae3 Fix race in concurrent_vector::grow_by() (#1532)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2024-11-04 15:59:46 +01:00
sarathnanduandAleksei Fedotov 73ccfb5ff3 Added a utility class for Relative Error compute. (#1446)
* Add a utility class measurements for relative error analysis.

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2024-11-04 08:10:16 -06:00
Ilya Isaev 9c9ace2686 Fix flow_graph tests build when compiling with GCC 13.3 (#1543)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-11-01 09:52:18 +00:00
Olga Malysheva bd15be276b Update upload-artifact to v4 (#1541) 2024-10-31 14:49:14 +01:00
Alexandra 86c06983bf Release Notes for 2022.0 (#1537)
* Release Notes for 2022.0

* Update RELEASE_NOTES.md
2024-10-31 12:42:28 +01:00
Dmitri Mokhov 948f0bbd4c Fix maximum concurrency on Windows with NUMA (#1538)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2024-10-25 09:42:08 -05:00
Ilya Isaev 377a91431e Remove sync-labels property from issue_labeler (#1534) 2024-10-23 17:07:47 +02:00
Brad Smith 42b833fe80 Fix futex support on OpenBSD (#1499)
OpenBSD no longer supports direct syscalls.
2024-10-15 12:58:21 +01:00
Ilya Isaev 94bee9c86b Fix constraints_variety set traverse, extend constraints test cases (#1530)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-10-15 13:44:41 +02:00
Alexandra 26d7f29349 Doc update for oneTBB 2022.0 (#1515) 2024-10-09 18:12:28 +02:00
bongkyu7-kim 9d85bf3b4e Fix get stack base in linux (#1485)
In case of pthread_attr_getstack() returns np_stack_size = 1MB,
- calculated stack_base = stack_limit + stack_size(default: 4MB)
- real stack_base = stack_limit + np_stack_size(1MB)
stack_base is wrong because calculated with 4MB stack size.

Due to this wrong stack_base, task_dispatcher::can_steal() can be always false.
It causes abnormal long loop in task_dispatcher::receive_or_steal_task().

Correct this problem using np_stack_size instead of stack_size.

Signed-off-by: Bongkyu Kim <bongkyu7.kim@samsung.com>
2024-10-07 11:10:25 +02:00
Konstantin Boyarinov af8d95c5f7 Add try_put_and_wait documentation (#1514) 2024-10-02 16:46:47 +03:00
2a7e0dbe46 [RFCs] Add rfcs directory (#1464)
* Add rfcs directory

---------

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2024-09-26 09:02:45 -05:00
Vladislav Shchapov 4b02f628ae Use GCC visibility attributes on Unix (#1114)
* To allow compiling with -fvisibility=hidden flag, GCC visibility attributes (with value "default") should be set.
* Enforce exporting unsafe_wait symbols on MacOS

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-09-24 16:39:57 +02:00
Pavel Kumbrasev c881143c53 Remove email from README (#1509) 2024-09-23 16:43:50 +01:00
Fang XuandAlexandra 498a0c7e96 Add TBB_FILE_TRIM option (#1401)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-09-19 15:01:02 +02:00
Alexandra a9d98815ee Update conf.py (#1511) 2024-09-12 17:32:07 +02:00
Alexandra 6895c0defc Fix rst (#1502) 2024-09-12 17:28:33 +02:00
Pavel Kumbrasev 6915673035 Fix race on reference_vertex dtor (#1506)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-09-05 11:33:53 +01:00
Łukasz Plewa 8152ba465a Fix coverity issue in the alignToBin (#1492)
Those values should be always >=0 but coverity do not know it.
Assert should fix it.
2024-09-03 17:16:14 +02:00
Łukasz Plewa 2d5b10f2d4 Fix coverity issue in block::initEmptyBlock (#1491)
getObjectSize should not return values bigger then 2^16-1.
We are assigning it's return value, which is 32 bit to 16 bit one,
so it is good to assert it anyway.
2024-09-03 17:14:50 +02:00
Łukasz Plewa bca0235663 Fix coverity issue in BitMaskMax (#1490)
It should never happen but coverity do not know it.
Assert should enough here
2024-09-03 17:14:03 +02:00
Konstantin Boyarinov 6f27d0dca6 Remove unused prio_push declaration (#1503) 2024-09-03 18:11:12 +03:00
Konstantin Boyarinov fe3c895752 Improve try_put_and_wait coverage (#1501) 2024-09-02 14:51:22 +03:00
Konstantin Boyarinov d666d342a6 [try_put_and_wait] Remove unnecessary functions (#1497) 2024-08-28 17:41:38 +03:00
Pavel Kumbrasev 7dd2b9cd1f Add new test: check clean-up of per-thread vertex map (#1496)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-08-28 13:44:23 +01:00
Pavel Kumbrasev 95eae117bc Remove redundant methods from reference_vertex (#1494) 2024-08-28 10:32:20 +01:00
Łukasz Plewa 374c27dca6 fix coverity issue in tbbmalloc HugePagesStatus
page_size variable was set to -1024 if hugepages was not used, while
being unsigned type. It did not matter as it was not used, when
hugepages are not used, but it is better to set it just to 0.
2024-08-26 18:38:41 +02:00
aae7fa62d1 [try_put_and_wait] Add try_put_and_wait feature to oneTBB Flow Graph (#1463)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Mike Voss <michaelj.voss@intel.com>
2024-08-26 12:58:18 +03:00
Pavel Kumbrasev 5555985128 Add link flags for static linking with ICX libs (#1489)
---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-08-23 14:21:04 +01:00
Konstantin BoyarinovandValery Matskevich 85a948b3f0 Remove std::aligned_storage from unordered containers (#1486)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Valery Matskevich <generalretcher@gmail.com>
2024-08-22 16:14:36 +03:00
Ilya Isaev ad9e324a89 Make thread registration in local_wait_for_all (#1477)
local_wait_for_all function seems to be a common spot for both external and worker threads to perform thread registration. So, basically whole implementation is to simply call register_thread only on first thread enter to local_wait_for_all and unregister_thread on last thread exit.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-08-21 17:25:03 +02:00
Ilya Isaev 04be823227 Parse TBB_INTERFACE_VERSION to get minor binary version (#1483)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-08-21 12:14:10 +02:00
Brad Smith e85d3705e7 Set the extension correctly for OpenBSD (#1468) 2024-08-21 10:15:29 +02:00
sarathnandu 2543c7fca5 separate debug symbols into a dbg file (#1476)
* separate debug symbols into a separate .dbg file when TBB_LINUX_SEPARATE_DBG is set.
2024-08-20 11:06:37 -05:00
Łukasz Plewa 2d516c871b Fix tbb malloc proxy on 14.30.33807 (#1478)
In this version of the ucrtbase.dll, the assembly of the _msize
function has changed.

The first instruction of this function is a relative jump (0xE9)
followed by a 4-byte offset. This offset has changed, but we can
safely assume that 0xE9 followed by any offset value is correct,
especially since we have special handling for the 0xE9 instruction in
the InsertTrampoline() function.

The 0xCC is an INT 3 instruction, so it's a free space to use.
2024-08-16 13:06:20 +02:00
Olga Malysheva 7105e0a676 Update oneTBB version to 2022.0.0 for the next release (#1479) 2024-08-16 13:05:27 +02:00
Olga Malysheva d405245230 Fix documentation build in CI (#1480) 2024-08-16 13:04:51 +02:00
sarathnandu 182e8e70e2 Update README.md with TBB_FIND_PACKAGE variable info (#1471)
* Update README.md with TBB_FIND_PACKAGE variable info
2024-08-14 09:52:37 -05:00
Vladislav Shchapov 3f810456b9 Update actions/checkout@v2 to actions/checkout@v4 (#1474)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-08-14 10:28:01 +02:00
Vladislav Shchapov ce60d6b7f9 Suppress GCC 12.x-13.x warning: region of size 0 (#1470)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-08-07 12:20:06 +01:00
Konstantin Boyarinovandpavelkumbrasev 306c75f5e9 Flow Graph scalability improvements (#1348)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-08-01 13:07:49 +03:00
Pavel Kumbrasev fa237b90ce Improve parallel_for_each scalability (#1445)
---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-07-31 11:13:45 +01:00
Ilya Isaev 4d0dc6a224 Restrict HWLOC's interference with Windows process affninity (#1457)
On Windows systems with multiple processor groups, HWLOC x86 backend might interfere with process affinity mask leading applications trying to set process affinity mask to fail.

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-07-29 10:28:39 +02:00
Vladislav Shchapov 2360b48807 Fixed build on non-English locales (#1450)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-07-23 14:45:51 +02:00
Ilya Isaev fd3960d311 Use TBB_TCM_TESTING CMake flag to hint to testing suite about TCM presence (#1452)
Disable global_control and arena priorities related tests and test cases when using TCM.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-07-22 11:16:17 +02:00
sarathnandu 89674dd32f Update the CODEOWNERS list with owners for include headers. (#1431)
* Update the CODEOWNERS list with owners for include headers.
2024-07-19 11:46:53 -05:00
Olga Malysheva 87a922eaa8 Add CodeQL scan workflow (#1443)
* Add CodeQL scan workflow
2024-07-17 14:31:18 +02:00
Olga Malysheva 95a749c59f Add OSSF scorecard workflow (#1442)
* Add OSSF scorecard workflow
2024-07-17 14:30:15 +02:00
Richard Barnes a74fb75f43 throw() -> noexcept 2024-07-16 07:29:35 -07:00
1f52f5093e Reworked wait_contex approach + scalability improvement in task_group (#1345)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2024-07-09 14:24:40 +03:00
Alexandra bad4c42be4 Fix Specs links (#1439) 2024-07-03 11:01:59 +02:00
VertexwahnandAlexandra 78d0290476 Improve Bazel support (#1434)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-07-03 10:25:13 +02:00
Vladislav Shchapov 04fe9127cd Fix dangling pointer (#1430)
* Fix dangling pointer
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-06-28 18:47:38 +03:00
Alexandr-Konovalov cf9406ebe7 Correct targets in examples' README.md (#1424)
Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
2024-06-28 11:30:58 +02:00
Pavel Kumbrasev db334fc49b Fix conformance_global_control (#1421)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-06-26 14:09:01 +01:00
Pavel KumbrasevandIlya Isaev 718aaf84f0 Refactor set of soft_limit to fix a bug (#1418)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2024-06-25 14:03:06 +01:00
Pavel KumbrasevandAlexandra 55bf2b3341 Define communication channels (#1408)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-06-24 12:02:43 +01:00
Olivier Chafik 8a95c39c2a Don't compile -mrtm when building with GNU + Emscripten (#1391) 2024-06-24 12:36:36 +02:00
Pavel KumbrasevandAlexandra d6ade50c9b WASM improvements (#1395)
* Improve thread stack init
* Update WASM readme
---------
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-06-24 10:40:39 +01:00
Pavel Kumbrasev fc18ad2319 Improve robustness of leaked observer warning (#1410)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-06-21 15:22:16 -05:00
Pavel KumbrasevandAlexandra 34108490bd Introduce issue templates (#1400)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-06-20 08:26:33 +01:00
Olga Malysheva ca7f580146 Add OSSF scorecard and best practices badges to README (#1409)
* Add OSSF scorecard and best practices badges.
2024-06-18 12:43:00 +02:00
Konstantin Boyarinov fdf1fdb57d Fix concurrent unordered containers build on GCC14 (#1397) 2024-06-10 19:57:19 +03:00
Pavel Kumbrasev 882a6fe68c Correct CODEOWNERS file extension (#1396)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-06-10 15:00:35 +01:00
Olga Malysheva b57aab85b6 Add UXL identity to README (#1387) 2024-06-03 12:46:36 +02:00
Alexandra d8c53ce141 Remove sign-off instructions (#1388) 2024-05-29 16:26:42 +02:00
Konstantin BoyarinovandAlexandra 50d56cc679 [Doc] Add documentation for rvalue reduction (#1385)
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-05-24 16:25:55 +03:00
Olga Malysheva 471454d14c Add Code of Conduct. (#1358)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2024-05-16 15:04:39 +02:00
sarathnandu c4ec31c237 Adding CODEOWNERS.txt to identify lead maintainers. (#1370)
* Adding CODEOWNERS.txt to identify  lead maintainers.
2024-05-15 18:46:53 +05:30
Dmitri Mokhov 54353f7714 Add a comment explaining why initialize_allocate_handler() is not called in the current library implementation (#1380)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2024-05-13 14:46:45 -05:00
JhaShweta1 279d61ada1 Update README.md (#1381)
Removed duplicate command
2024-05-13 12:21:04 -05:00
JhaShweta1 2753b9a189 Document Installation/Build Process from release packages (#1369)
* Release package installation
2024-05-13 10:35:56 -05:00
Timmie Smith 762b8af7e2 Improve regex to handle warning about the Intel Classic Compiler deprecation (#1378) 2024-05-06 13:29:37 -05:00
Martijn CourteauxandAlexandra 377e6c3b17 Detect binutils version to enable/disable WAITPKG support (#1347)
Signed-off-by: Martijn Courteaux <courteauxmartijn@gmail.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-05-03 14:10:36 +02:00
Dmitri Mokhov 3cef80b261 Ensure test_partitioner reliability by waiting between repeats for threads to leave (#1373)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2024-05-02 09:09:12 -05:00
Valery Matskevich 2539ba6a67 Using default partitioner instead of auto where default should be used (#1327)
Signed-off-by: Valery Matskevich <generalretcher@gmail.com>
2024-04-29 22:35:44 -05:00
Dmitri Mokhov 0da79a8935 Remove unused JPEG reading functionality from the Tachyon example (#1360)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2024-04-25 11:32:42 -05:00
Pavel Kumbrasev c1a0e74470 Improve arena construction by applying constraint (#1151)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-04-25 15:24:46 +01:00
Olga Malysheva 9951bf0db8 Fix e-mail for Security reports (#1367)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2024-04-25 15:05:50 +02:00
Pavel Kumbrasev 3420fb92c4 Improve machine_pause on arm64 (#1368)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-04-25 13:51:32 +01:00
Dmitri Mokhov 92c8529ff4 Add task arena worker block time (#1352)
* Add `threading_control::is_any_other_client_active()` to verify if other arenas are requesting workers.
* Add hybrid CPU detection at initialization.
* On non-hybrid CPUs, make workers block for 1ms before leaving the arena, unless
  - more work becomes available in the arena (-> unblock and stay in the arena);
  - other arenas are requesting workers (-> unblock and leave the arena immediately).

Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-04-24 16:50:56 -05:00
Alexandra 9501cd9dbd Update SECURITY.md (#1365) 2024-04-24 20:01:13 +02:00
Timmie Smith 4f913ce690 Updating contents to write permissions to allow commit to be created. (#1364) 2024-04-24 11:12:37 -05:00
sarathnanduandpavelkumbrasev 791701a8c6 Increase yields multiplier on APPLE platforms (#1356)
* Increase yields multiplier on APPLE platforms

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2024-04-24 21:23:27 +05:30
Olga MalyshevaandAlexandra ad9d6e3edc Update Security policy (#1359)
* Update Security policy

---------

Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2024-04-24 17:36:31 +02:00
Geert BleyenandIlya Isaev 39b4ff4adc CMake: Add Apple framework support (#1319)
Add cmake option TBB_BUILD_APPLE_FRAMEWORKS to build oneTBB as Apple Frameworks.
This is needed to be able to create iOS compatible app bundles which need to embed TBB as framework, as using dylibs is prohibited by Apple.

Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2024-04-24 15:35:15 +02:00
Timmie Smith a5c8624e96 Reintroduce restricted permissions for all jobs while providing pages with write access needed to deploy documentation. (#1362) 2024-04-24 07:28:12 -05:00
sarathnandu 483789879d Fix compilation error in mingw [-Werror=unused-value] (#1361) 2024-04-24 13:13:56 +05:30
Olga Malysheva 1abf0cecbd Update TPP file (#1357)
Update TPP file with actual 3rd party dependencies data.

Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2024-04-23 20:29:48 +02:00
Vladislav Shchapov 548b88a09a Add CI for static TBB build (#1350)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2024-04-22 15:44:59 +02:00
Vertexwahn 0f2f3e5b69 Improve Bazel support (#1342)
- Bump platforms to 0.0.9
- Remove different name in WORKSPACE.bazel file
- Add bazelized test_task test
2024-04-22 12:53:47 +02:00
Alexandra bd0f1f9514 Update doc build instructions (#1351) 2024-04-19 11:44:55 +02:00
Daniel Bashir 5155e9f78e Correct MyHashCompare example in concurrent_hash_map page (#1339)
Signed off by: Daniel Bashir <dbashir@hmc.edu>
2024-04-18 13:50:33 +03:00
Santiago Ospina De Los Ríos 4a87ca1cc5 Delay Сontrol variable initialization (#1346)
Initialize/destroy Controls during acquire/release resources stage to avoid unexpected problems with global objects initialization order. 

Signed off by: Santiago Ospina De Los Ríos <sospinar@gmail.com>
2024-04-18 10:44:41 +01:00
Timmie Smith 26ee8abcc2 Reverting workflow permissions restriction to reenable pages job. (#1349) 2024-04-17 11:16:52 -05:00
meator d9034a4e2e pool.py: Fix invalid escape sequences (#1344)
* pool.py: Fix invalid escape sequences

Signed-off-by: meator <meator.dev@gmail.com>
2024-04-17 11:30:15 +02:00
Alexandra 224eca369a Release Notes 2021.12 (#1338)
* Update RELEASE_NOTES.md for 2021.12
2024-04-12 20:55:53 +02:00
Łukasz Plewa 84c859a5ea fix copyright (#1340)
PR #1230 was merged with invalid copyrights

Signed-off-by: Łukasz Plewa <lukasz.plewa@intel.com>
2024-04-04 14:12:47 -05:00
Łukasz Plewa b26552d26e fix copyright
Signed-off-by: Łukasz Plewa <lukasz.plewa@intel.com>
2024-04-02 17:23:23 +02:00
Jerry James fd4d06d307 Fix a strict aliasing violation
Signed-off-by: Jerry James <loganjerry@gmail.com>
2024-04-02 17:23:23 +02:00
JiaLing Zhang 78d0318fc2 LoongArch64 use 32 HUGE_PAGE_SIZE
Signed-off-by: JiaLing Zhang <zhangjialing@loongson.cn>
2024-04-02 15:17:33 +02:00
Ilya Isaev 3210a79406 Fix copyright years in GNU and Intel cmake files (#1333)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-03-26 17:11:32 +01:00
Julien Schueller 9e76c87c79 CMake: Set _FORTIFY_SOURCE once (#1273)
Signed-off-by: Julien Schueller <schueller@phimeca.com>
2024-03-26 15:11:02 +01:00
JhaShweta1 0d1787b991 Update ittnotify from v3.24.2 to v3.24.4 (#1326)
* Update ittnotify from v3.24.2 to v3.24.6
2024-03-19 14:45:18 -05:00
Dmitri Mokhov 5b10a8741c Exclude the CWD from the dependent DLL search (#1330)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2024-03-19 08:09:54 -05:00
Daniel Simon 8b87444d2c Require both TBB_FIND_PACKAGE and TBB_DIR for external TBB usage(#1324)
Currently TBB attempts a find package and excludes the entire build part of the CMake setup when *either* `TBB_FIND_PACKAGE` *or* `TBB_DIR` are defined. This is an issue when using `FetchContent` with `OVERRIDE_FIND_PACKAGE` as CMake declares `TBB_DIR` to equal `${CMAKE_BINARY_DIR}/CMakeFiles/pkgRedirects/`.
2024-03-14 12:31:27 +01:00
Krzysztof Filipek df7306cb1e Add CODEOWNERS file
Code owners are automatically requested for review when someone opens
a pull request that modifies code that they own. Code owners are
not automatically requested to review draft pull requests.

Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2024-03-11 16:56:55 +01:00
Timmie Smith e2f1502126 Setting write access for pages deployment job. (#1325) 2024-03-11 12:51:30 +01:00
Olga Malysheva 9e401d119c Update library version to 2021.13.0 and copyright year for DLLs. (#1322)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2024-03-05 20:38:33 +01:00
Alexandr-Konovalov 244fba9d40 Fix deadlock in test_scheduler_mix (#1309)
After stealing, current arena must be taken into account while selecting
next arena to prevent deadlock. Arena index is passed explicitly for that.

Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
2024-02-27 09:52:37 +01:00
Timmie Smith 37d5a9fd49 Set minimum access permissions on all workflows (#1306)
* Adding read-only permissions to all jobs in the CI workflow to ensure minimum required access.
2024-02-26 16:21:03 -06:00
JhaShweta1 f0d4aba544 Omit tests that takes too long for emscripten (#1312)
* Omitting tests that takes too long in CI
2024-02-16 15:37:57 -06:00
Konstantin Boyarinov ae0696c64f Better rvalues support for parallel_reduce algorithm (#1307)
Signed-off-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2024-02-14 15:45:46 +02:00
Kenneth Assogba 7340a88088 Spelling error fix in count_strings.cpp: strunt -> struct (#1311) 2024-02-13 09:57:03 +01:00
Ilya IsaevandPavel Kumbrasev 627cac6dd0 Correct behavior on deactivated permit (#1308)
* Correct behavior on deactivated permit

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2024-02-05 20:31:26 +01:00
JhaShweta1 fabaaa6587 Flag to compile oneTBB without threads (#1303)
* compile WASM without pthread
2024-02-05 11:08:58 -06:00
Timmie Smith 144b184667 Adding read-only permission to all jobs in the CI flow to ensure minimum required access (#1300) 2024-01-23 14:52:52 -06:00
Alexandr-Konovalov 54a22a627c Add NOMINMAX before windows.h in enumerable_thread_specific.h (#1291)
Currently enumerable_thread_specific.h inclusion breaks std::min and
std::max usage due to macro spreading from windows.h.

Signed-off-by: Alexandr Konovalov <alexandr.konovalov@intel.com>
2024-01-22 10:58:56 -06:00
Kyle Knoepfel 4dfcb6d2e9 Fix typo (#1288) 2024-01-11 10:05:01 -06:00
Ilya Isaev 8c9814cfd4 Update copyright year in MODULE.bazel (#1289)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2024-01-09 17:04:01 +01:00
Vertexwahn c41d4782e4 Improve Bazel support (#1285)
Bump of Bazel version to 7.0.0
Add MODULE.bazel to support Bazel's new system of handling dependencies (bzlmod)
Remove .bazelrc (config of out-of-source build is not needed or a best practice)
2024-01-09 09:41:25 +01:00
Konstantin Boyarinov 3b9f9baef9 Fix parallel_for_each iterator tag dispatch for move iterators + fix stack overflow on Windows (#1276) 2023-12-13 16:21:59 +02:00
LE GARREC Vincent f4db1c8aba Fix flow graph reservation documentation (#1235)
Signed-off-by: LE GARREC Vincent <github@le-garrec.fr>
2023-12-13 15:19:06 +01:00
Alexandra f6b7cb1b5f Introduce SUPPORT.md (#1282) 2023-12-13 10:23:33 +01:00
Olga Malysheva 58653a3729 Set PKG_CONFIG_PATH in modulefiles (#1279)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2023-12-06 15:11:17 +01:00
JhaShweta1 8259efb347 emscriptem 3.1.45+ doesn't support mrtm and waitpkg (#1271)
WASM: build fails for Emscripten 3.1.45+
2023-11-27 10:28:07 -05:00
Alexandra f4629cc848 Update conf.py (#1272) 2023-11-22 19:14:49 +01:00
Alexandra a71747cd86 Update WASM documentation (#1207) 2023-11-20 13:03:54 +01:00
Alexandra d1c04c902b Update RELEASE_NOTES.md for 2021.11 (#1267)
* Update RELEASE_NOTES.md for 2021.11
2023-11-17 17:44:55 +01:00
Dmitri Mokhov f71c92ae4a Minor waiter code refactoring (#1262)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-11-16 08:14:19 -06:00
Konstantin Boyarinov de0a3a653b Fix parallel_for_each with C++20 iterators (#1250) 2023-11-14 13:16:21 +02:00
Liam Keegan 12ceae1213 Fix CMake "Threads::Threads target not found" issue for static builds (#1248)
- add `Threads` dependency to installed CMake config for static builds only
- based on #912 by @p12tic including reviewer comments from @ilya-lavrenov and @isaevil
- resolves #1145

Signed-off-by: Liam Keegan <liam@keegan.ch>
2023-11-10 09:08:42 +01:00
Alexandra c62b646850 Update Mixing_Two_Runtimes.rst (#1227) 2023-11-08 11:59:54 +01:00
Pavel Kumbrasev ab7f370cd1 Fix tests compilation on OpenBSD (#1246)
* Fix test_eh_thread on OpenBSD
* Disable test_malloc_compliance on OpenBSD
---------
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-11-08 09:11:51 +00:00
Brecht Sanders 7b8018f0bc Support Windows on ARM64 (aarch64) when building with MinGW-w64 (#1245) 2023-11-06 16:49:31 +01:00
Vladislav Shchapov f27eb147f1 CMake: add option TBB_INSTALL (#800)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-11-06 16:49:09 +01:00
Julien Schueller 4bb8938d04 CMake: Bump required version (#1237)
Bump cmake version to 3.5 to avoid this deprecation message:

CMake Deprecation Warning at CMakeLists.txt:15 (cmake_minimum_required):
  Compatibility with CMake < 3.5 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

Signed-off-by: Julien Schueller <schueller@phimeca.com>
2023-11-06 10:20:39 +01:00
Olga Malysheva 9f59fcf432 Change location of headers and lib files in NuGet packages (#1241)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2023-10-26 11:13:45 +02:00
Dmitri Mokhov 3cd37a22c7 Upgrade oneTBB version to 2021.12 (#1238)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-10-24 08:07:16 -05:00
Alexandra d5a5a723ec Update INSTALL.md (#1239) 2023-10-24 13:42:50 +02:00
Jordan Cartwright d6b0e9d442 update the documentation runs-on config (#1234)
Signed-off-by: Jordan Cartwright <jordan.cartwright@intel.com>
2023-10-24 10:46:45 +02:00
bavirnen 6ae3df4c8f Use correct OpenMP compile flags for Intel LLVM compiler (#1232) 2023-10-20 16:58:02 +02:00
Martin Marinov bec5d998b1 Rename ENDL with TBB_ENDL to reduce the likehood of potential conflicts with application source code (#1220) 2023-10-19 13:25:26 +02:00
Ilya Isaev ddfc32d926 Show patch version in the version string (#1229)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-10-19 12:58:14 +02:00
Dmitri MokhovandAlexandra 8370742daa Add Pi sample (#1221)
* Add Pi sample

Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2023-10-16 10:24:08 -05:00
Ilya Isaev 7b927dc4a8 Search libraries only in explicitly pointed locations (#1218)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-09-29 09:04:58 +02:00
GertyP fd1590c459 Fix msvc.cmake overwriting user TBB_COMMON_COMPILE_FLAGS values (#1217)
Most other /cmake/compilers/...cmake files preserve any user-supplied
flags. This change brings use of MSVC compile settings in to line with
the documented behaviour of TBB_COMMON_COMPILE_FLAGS in -
https://github.com/oneapi-src/oneTBB/blob/master/cmake/README.md#cmake-files

Signed-off-by: Dan Hawson <danhawson@gmail.com>
2023-09-27 11:42:47 +02:00
Elias Engelbert Plank 7eb68ae9d3 Fix compiler warning for missing virtual dtor (#1215)
This fixes issue #1210 by adding a default virtual destructor for tbb::detail::r1::control_storage.

Signed-off-by: Elias Engelbert Plank <plank.elias.engelbert@gmail.com>
2023-09-27 09:12:36 +02:00
Pavel KumbrasevandDmitri Mokhov 91ba7e7e19 Fix race in single task Fibonacci example (#1209)
* Enable multiple recycles
* Extend fibonacci with continuation recursion
* Bypass task to operator()() to remove extra synchronization complexities

---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-09-25 15:07:48 -05:00
Pavel Kumbrasev 11545bd606 Fix brief in test_fuzzing (#1206)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-09-18 12:09:06 +01:00
Ilya Lavrenov a9d76a1721 Allow pkg-config search for hwloc for cross-compilation (#1202) 2023-09-12 10:08:42 +02:00
Dmitri Mokhov e131071769 Fix/suppress new GCC 12/13 warnings (#1192)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-09-11 10:35:07 -05:00
Julien SchuellerandIlya Isaev 2a6bd1e198 CMake: -z linker flag is not supported on MinGW either (#1193)
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2023-09-11 12:26:41 +02:00
Ilya IsaevandKonstantin Boyarinov 546fe2736c Fix test_task crash/hang on RT Linux systems (#1201)
"Test priority inversion" test case manually increases threads' priority (including main thread) to test priority inversion problem but never restore it. That could lead to busy-waiting inside oneTBB on RT Linux kernels which is not expected. This patch restores previous priority after the test case completes.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2023-09-08 12:27:47 +02:00
Alexandra 229b63ee0a [DOC] Introduce new "Known Limitations" topic (#1178) 2023-09-08 12:04:27 +02:00
Alexandra 0b05d0f4ca [doc] MacOs Removal (#1186) 2023-09-08 11:46:34 +02:00
Dmitri Mokhov 35d2aedf98 Make test_implicit_linkage_on_windows portable across compilers (#1200)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-09-07 08:38:16 -05:00
Yuya Asano cb6cc0ec55 Fix inline literals in Edges.rst. (#1177)
* Fix inline literals in Edges.rst.

Signed-off-by: Yuya Asano <64895419+sukeya@users.noreply.github.com>
2023-09-04 09:43:01 +02:00
Ilya Isaev d0748d299f Remove code that is not used anymore (#1191)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-09-01 14:42:59 +02:00
Dmitri Mokhov 261551ed82 Add tag to brief description (#1190)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-08-30 12:01:22 -05:00
Dmitri Mokhov 48ba0d7acd Add fuzz testing (#1184)
* Add a CMake option: `TBB_FUZZ_TESTING` (default: off)
* Add a `test_fuzzing`, which uses libFuzzer to fuzz all the environment variables and launches `test_task` each time.

Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-08-29 18:43:23 -05:00
Pavel Kumbrasev 7b022651e0 Fix thread request on arena::update_concurrency (#1188)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-08-29 15:34:33 +01:00
xiacunshunandcunshunxia 1ddebef8ac doctest: Fix compiler error of address will never be NULL (#1181)
Co-authored-by: cunshunxia <cunshunxia@tencent.com>
2023-08-28 09:36:16 +01:00
Ilya Isaev b2474bfc63 Correctly get fully qualified name if modulefile is a symlink (#1185)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-08-25 16:41:51 +02:00
Vertexwahn fa6605faf1 Fix _WIN32 define (#1183)
By accident, the define was called WIN32 - should be _WIN32.
The string #if _WIN32 can be found more than 100 times in this repo - #if WIN32 only one time.
It breaks the Bazel build of oneTBB on Windows (bazel build //...).
2023-08-25 09:08:39 +02:00
JhaShweta1 3f1ecfe509 copyright_failure: reverted back commit message (#1182)
* reverted back commit message
2023-08-24 17:50:49 -04:00
Pavel Kumbrasev d489c1f7a0 Extend Fibonacci (migration) example (#1173)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-08-24 09:25:03 +01:00
JhaShweta1 c4a799dff6 Spelling correction (#1179)
* codespell changes
2023-08-23 15:45:36 -04:00
Krzysztof Filipek 3b378356eb Add explicit methods to meet the "rule of zero/three/five"
Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-08-18 16:58:25 +02:00
Krzysztof Filipek c79ef1e5f4 Add missing methods to RecursiveMallocCallProtector class
This commit adds missing methods to meet "the rule of three".

Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-08-18 16:58:25 +02:00
Krzysztof Filipek b40b034fa9 Add missing methods to scoped_lock class
This commit adds missing methods to meet "the rule of three".

Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-08-18 16:58:25 +02:00
Krzysztof Filipek b9a0ab455c Add missing methods to ThreadId class
This commit adds missing methods to meet "the rule of three".

Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-08-18 16:58:25 +02:00
Krzysztof Filipek 568a7e5822 Add missing methods to RegisterProcessShutdownNotification struct
This commit adds missing methods to meet "the rule of three".

Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-08-18 16:58:25 +02:00
JhaShweta1 706ad8677f Update ittnotify to the latest version v3.24.2 (#1176)
* itt version update to v3.24.2
2023-08-18 08:44:43 -04:00
71e1bb8efc Integration of Thread composability manager (#1163)
Add TCM support in oneTBB. oneTBB can coordinate with Intel(R) OpenMP on CPU resources usage to avoid excessive oversubscription when both runtimes are used within a process.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2023-08-17 11:58:01 +01:00
Ilya IsaevandOlga Malysheva 5f1ae0dce3 Support multiple layout variations in Linux/Windows vars scripts, refactor modulefiles (#1157)
env/vars scripts now support different layouts (for example, bin/ or redist/ on Windows, lib/<arch> or lib<arch_suffix>/ on Linux). Also modulefiles now rely on lib/ and lib32/ for library path, not on lib/intel64/gcc4.8 or lib/ia32/gcc4.8

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Olga Malysheva <olga.malysheva@intel.com>
2023-08-17 12:57:54 +02:00
7cee22511f Enable WASM on oneTBB (#1006)
* WASM/emscripten on oneTBB
---------

Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2023-08-11 12:34:55 -04:00
Lukasz Dorau 4743eda21c Initialize uninitialized scalar field currTime
Initialize uninitialized scalar field currTime.
It fixes the Coverity issue #449478.

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2023-08-11 11:23:41 +02:00
Lukasz Dorau 83e480199d Make lastAccessMiss a local variable
Make lastAccessMiss a local variable.
It fixes the Coverity issue #449482.

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2023-08-10 18:23:25 +02:00
Lukasz Dorau 900b99bb43 Initialize uninitialized scalar field currCacheIdx
Initialize uninitialized scalar field currCacheIdx.
It fixes the Coverity issue #449484.

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2023-08-10 17:18:30 +02:00
Lukasz Dorau 926c3783a5 Assert if a shift amount is negative
Shifting by a negative amount has an undefined behavior.
A shift amount must not be negative.

It fixes the Coverity issues: 449477 and 913889.

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2023-08-10 17:08:19 +02:00
Pavel Kumbrasev ddc3bd0392 Close File before leave function (#1171)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-08-10 15:44:20 +01:00
Krzysztof Filipek 20514c0eb8 CI: Update issue-labeler and grand proper permissions
Issue labeler stops working due to GHA upgrade to newer Node:
https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/

Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-08-10 14:38:02 +02:00
Lukasz Dorau 4992457dc2 Verify size in alignToBin()
Size in alignToBin() must not be less than the StepFactor (8).

It fixes the Coverity issues: 449474 and 913880.

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2023-08-10 12:36:56 +02:00
JhaShweta1 691dd26b66 oneTBB: CI- example fgbzip2 linkage fail (icx, Win32) (#1166)
* Update CMakeLists.txt: Added FORCE:multiple for intelLLVM
2023-08-09 11:52:51 -04:00
Łukasz Plewa 32d5ec1f02 Add additional synchronization around *CachesCleanup function
This commit fixes the issue when test_malloc_pools TestFixedBufferPool
fails sporadically on test_malloc_pools.cpp:437

utils::NativeParallelFor( p, FixedPoolUse(p, pool, MAX_OBJECT/p/2,1) );

The main problem was that threads were not aware of cleanup operations
done by SoftCachesCleanup() and HardCachesCleanup() functions.
So while one thread was doing a cleanup, the second one
returns ENOMEM as it couldn't find any memory to allocate in the
backend (this test creates fixedSizePool)

The change adds additional flags and counters that indicate cleanup
operation is in progress, allowing the thread to wait for those
operations to complete before deciding if there is free memory to
allocate or not and return this information to the caller.

In the scenario reproduced by the test, memory for the allocation can
be reclaimed from the LOC. This operation happens in the
loc.cleanAll() or loc.regularCleanup functions called respectively, by
hardCachesCleanup() or softCachesCleanup() functions.
In those functions, free memory is removed from LOC and added to the
backend bin. Between those operations, other threads are unaware that
this memory block is free and returns ENOMEM to the user.

To fix this problem, this patch adds two flags to indicate that
cleanup (soft or hard) is in progress, and threads should wait before
returning NULL to the user.

But there was one more problem: backend::clean() function.
This function removes memory from the bins to try to release or
coalesce it. The problem is that other threads were not aware of
this operation. It causes a 'funny' situation when:

Thread 1: Performs HardCachescleanup function
Thread 2: wait "waitTillBlockReleased()"
Thread 1: Returns memory from LOC
Thread 2: exits waitTillBlockReleased() as it detected new memory in
backend
Thread 1: starts backend::clean() - removes memory from the bin to try
coalesce it
Thread 2: Fail memory allocation as there is no free block in
bins, and returns ENOMEM
Thread 1: Finish coalescing and return memory back to bins

To resolve this problem, this patch adds a counter which allows
threads to detect when clean operation is done so that the threads
will wait for the complition of there is no memory available.

Signed-off-by: Łukasz Plewa <lukasz.plewa@intel.com>
2023-08-07 12:13:38 +02:00
Łukasz Plewa 25c399f4de Refactor waitTillBlockReleased function
"for loop" without condition and without iterator is not a great
solution for code readability. For simple infinite loop "while loop" is
much more readable solution.

Signed-off-by: Łukasz Plewa <lukasz.plewa@intel.com>
2023-08-07 12:13:38 +02:00
Alexandra f5fb3c9153 Update CMake README.md (#1156) 2023-08-04 13:49:33 +02:00
Pavel Kumbrasev acc5bdfe1a Add shortcut for mutex.h and rw_mutex (#1158)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-08-03 12:59:53 +01:00
Ilya Isaev f9fd1bee10 Allow building and loading of TBBBind on macOS (#1132)
With this patch user may build TBBBind on macOS and be able to use tbb::info namespace to obtain high-level information about the system and limit task_arena accordingly (without actual CPU binding since such functionality is not supported on macOS via HWLOC).

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-08-03 11:01:54 +02:00
Pavel Kumbrasev 3e7d8e7f28 Add mutex.h and rw_mutex.h to oneapi/tbb.h (#1153)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-08-02 10:59:19 +01:00
Alexandra 45a99b4218 Update SYSTEM_REQUIREMENTS.md (#1154)
Align with 2021.10 System Requirements
2023-08-01 17:43:49 +02:00
Ilya Isaev 539cbb3e67 Remove unsupported -z switch while compiling on MacOS (#1150)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-07-27 17:04:09 +02:00
sarathnandu 7c79c824af Update Tpause constant for better performance on high core count system. (#1149)
* Update Tpause constant for better performance on high core count system.

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
2023-07-26 14:18:21 -05:00
Alexandra aff58fee2c Update Release Notes for oneTBB 2021.10 (#1146) 2023-07-24 17:25:39 +02:00
Ilya Isaev 37a89d47f2 Fix test_task_group compilation on GCC 12 (#1144)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-07-19 15:08:13 +02:00
Aleksei Fedotov 60a815be1d [TCM] Add important composable scenario (#96)
Nested parallelism use case where TBB outer loop has a relatively small amount of work comparing to the amount of OpenMP work on the nested level is of particular importance to the TCM project, since it exposes the main problem with oversubscription, which resolution justifies such projects as TCM.

This patch adds such a use case into synthetic set of TCM benchmarks.

Besides this, the patch also makes other small improvements to avoid type conversion issues and makes the OpenMP executor to not specifying the "num_threads" clause on the loop pragma if user did not specify the concurrency of the OpenMP executor explicitly.
2023-07-17 18:26:41 +02:00
Ilya IsaevandAleksei Fedotov 1db4972980 [TCM] Add constrained and perfect nesting use cases (#95)
Add two new microbenchmarks:
ubench_constrained.cpp - perfect nested microbenchmarks using NUMA constraints
ubench_perfect_nested - "perfect nesting" case

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2023-07-14 15:03:05 +02:00
Pavel KumbrasevandAleksei Fedotov d2504bd30f [TCM] Add TLS implementation for register/unregister (#94)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2023-07-11 16:23:49 +01:00
188981fa71 [TCM] Port previously implemented TCM microbenchmarks with some refactoring (#91)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2023-07-07 11:19:52 +02:00
Ilya Isaev 013495cdd8 [TCM] Fix Seismic compilation issues (#92)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-07-04 16:27:05 +01:00
Aleksei Fedotov a20bacda01 [TCM] Add seismic benchmark from oneTBB repository (#88)
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-07-03 10:22:16 +01:00
Dmitri Mokhov 88f73bbb48 Fix test_concurrent_queue failure with ICL19.0/VS2017 (#1141)
Prevent an incorrect optimization by ICL 19.0 (fixed in ICL 19.1) with VS 2017 stdlib with inline-level=1 (/Ob1) that resulted in premature object destruction inside `std::unordered_set`.

Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-06-30 08:59:14 -05:00
Aleksei Fedotov faa41e328c [TCM] Do not overwrite request parameters when idle rigid gets negotiated (#89)
The OpenMP can adjust the number of threads when it re-activates the rigid concurrency permit after it was involuntary deactivated while being in IDLE state.
Therefore, TCM should try satisfying initially requested amount of resources as much as possible for such permits.
2023-06-28 14:36:59 +02:00
3f76ae94d0 [TCM] Order negotiation of resources (#87)
The patch puts an order on the resources redistribution. It starts by trying to satisfy the request with available resources. If these are not enough, then it takes back IDLE resources (even from rigid concurrency permits), and only after that negotiates resources from ACTIVE permits.

For non-rigid concurrency IDLE permits the negotiation happens until required amount of resources for these permits is still satisfied. If further negotiation is required, the permits are moved to INACTIVE state. The rigid concurrency permits in IDLE state are transferred to INACTIVE state without negotiation. Later on if such rigid-concurrency permit tries to activate, the TCM tries to match the amount of resources the permit was given before it was deactivated.

Besides that the patch also reveals a couple of issues with support of constrained requests and a data-race in `updated_permit` function, which have been fixed, corresponding regression tests were added.

The patch also allows automatic inference of the request parameters if a client did only automatic request initialization.

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2023-06-26 18:35:30 +02:00
Alexandra e813596ba3 Documentation for std::invoke (#1112) 2023-06-21 18:46:54 +02:00
87c2fdc129 Add new Fibonacci example built on Task API emulation (#1104)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2023-06-21 15:34:57 +01:00
Marian Klymov dc883a59b3 scalable_allocator.h: add missing include for namespace injection (#1137)
Signed-off-by: Marian Klymov <nekto1989@gmail.com>
2023-06-21 13:22:55 +01:00
Emmanuel Ferdman 7f0dc95ec5 FIX: Remove broken style.css reference from layout.html (#1115) 2023-06-21 12:07:52 +02:00
Alexandra 10e75e446e Update next_steps.rst (#1135) 2023-06-20 11:01:52 +02:00
Olga MalyshevaandDmitri Mokhov 89b2e0e316 Update outdated URLs in comments (#1129)
* Update outdated URLs in comments

Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
Co-authored-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-06-19 11:44:36 +02:00
c456844955 Refactor market into threading layer (#758)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-06-16 15:37:06 +01:00
Łukasz Plewa c7865c1be0 Fix deadlock in tbbmalloc raportFreeBlocks function (#1117)
trylockblock() locks mutex in the current element and mutex in right
neighbor, so we have to free both locks.

Signed-off-by: Łukasz Plewa <lukasz.plewa@intel.com>
2023-06-13 10:54:47 +01:00
Pavel Kumbrasev 3f657a3438 Fix task_task_arena for one thread env (#1131)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-06-13 10:54:13 +01:00
Pavel Kumbrasev f8f7f738f4 Fix current_thread_index for masterless arena(1,0) (#1128)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-06-13 08:54:09 +01:00
Konstantin Boyarinov fc184738eb Minor fixes for KW in tbbmalloc (#1124)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-06-08 12:52:09 +03:00
Ilya Isaev 50a1320c74 Install pdb files on MSVC (#1063)
*.pdb files are shipped in GH prebuilt binaries but they are not installed when trying to do make install

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-06-06 11:27:19 +02:00
Ilya Isaev e6684b220b Fix filenames strip for tbb4py installation on newer versions of setuptools (#1072)
When using setuptools version > 60 there is issue with cutting names of install files when passing build directory with ./.
Workaround is to use intermediate directory instead of ./.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-06-06 11:21:41 +02:00
Ilya Isaev 26b4256790 Use binary major version for dlopen on MacOS (#1062)
MacOS version of code tries to open unversioned binaries of runtime plugins unlike on Linux. This patch aligns this behavior.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-06-06 11:18:07 +02:00
Pavel Kumbrasev 3ca0656dda Compile resumable tasks with ucontext even if it is deprecated (#1123)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-06-06 10:12:39 +01:00
Brad Smith b74f657b48 Use CMAKE_DL_LIBS to properly choose to use libdl or not. (#1120)
Fixes build on *BSD with GCC. Same also done here for Clang..
https://github.com/oneapi-src/oneTBB/commit/dbccbee9f5527e802925852e225b1d1584f43a7a
2023-06-05 09:33:54 +02:00
Pavel KumbrasevandIlya Isaev ea4e6156a2 Fix build on systems without ucontext.h in libc (#1055)
* Enable thread based resumable tasks if ucontext is absent

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2023-06-01 14:40:05 +01:00
Krzysztof Filipek 42bd067650 Add issue labeler (#1070)
Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-05-30 16:01:19 +02:00
Vladislav Shchapov a6834cccb6 Update macOS 10.15 to macOS 12 in CI (#1113)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-05-26 09:45:48 +01:00
Alexandra 95f951176a Update Get Started Guide (#1110) 2023-05-24 17:01:02 +02:00
Alexandra 3c162e4ed6 Install sphinx-tabs extension at documentation stage (#1111) 2023-05-24 13:52:09 +02:00
Konstantin Boyarinov d238e987a5 Uncomment pipeline tests (#1106)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-05-22 13:12:17 +03:00
Konstantin Boyarinov b95e88f168 Remove extra whitespaces in copyright (#1105)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-05-22 11:55:30 +03:00
Ilya Lavrenov d91db363fe Allow to override CMAKE_POSITION_INDEPENDENT_CODE when build statically (#1100) 2023-05-22 09:33:52 +02:00
Konstantin Boyarinov a088cfa04f Use of std::invoke to run the body in algorithms and graph nodes (#880)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-05-17 19:29:13 +03:00
Ilya Isaev 9f4344b7e1 Use more robust way to find TBB libraries in cmake/pkg configs (#1088)
This patch replaces get_filename_component by find_library which is more flexible and can find libraries in multiple locations if PATH_SUFFIXES argument is specified.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-05-17 11:40:56 +02:00
Alexandra 0a6d67cde1 Create SECURITY.md (#1103) 2023-05-16 17:28:09 +02:00
JhaShweta1andKonstantin Boyarinov 155acce74e Adding helper methods to concurrent_queue and concurrent_bounded_queue (#1033)
* Align interface of concurrent_queue and concurrent_bounded_queue with the spec.

Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
Co-authored-by: Konstantin Boyarinov <konstantin.boyarinov@intel.com>
2023-05-15 15:49:46 -05:00
sarathnandu 4bb2faa06e Add runtime support for disabling RTLD_DEEPBIND flag (#1065)
* Add runtime support for disabling RTLD_DEEPBIND by default to enable Address Sanitizer.

The Address Sanitizer will not work properly if the RTLD_DEEPBIND flag is passed to dlopen. The accepted workaround is to build your code without passing RTLD_DEEPBIND to dlopen when using the Address Sanitizer 

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
2023-05-15 07:37:32 -04:00
Alexandra 0416d88c18 Update SYSTEM_REQUIREMENTS.md (#1098) 2023-05-15 11:53:59 +02:00
Dmitri Mokhov 9515f14f7d Add DLL info for all tbbbind versions instead of just the default (#1095)
Also, add patch number to file version.

Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-05-04 09:34:53 -05:00
Konstantin Boyarinov 4cc1ccac6f Fix 3-way comparison detection mechanism (#1094)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-05-03 15:53:16 +03:00
Alexandra 303848e4aa Update task_group_extensions.rst (#1084) 2023-05-03 13:32:33 +02:00
Alexandra 509659102c Update SYSTEM_REQUIREMENTS.md (#1090) 2023-05-02 18:25:34 +02:00
Alexandra f4082a4c20 doc: WASM support topic (#1025) 2023-05-02 18:05:20 +02:00
JhaShweta1andpavelkumbrasev 84bf9d452b Update Doctest to newer version (#999)
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-04-27 13:33:48 +01:00
Yun Hsiang e8e550e84f Add riscv64 toolchain.cmake (#1086)
Add riscv64 toolchain СMake
---------

Signed-off-by: Yun Hsiang <yun.hsiang@sifive.com>
2023-04-27 10:15:44 +02:00
Pavel Kumbrasev 04179683b6 Split test_join_node_key_matching into separate test files (#1089)
* Split test join_node_key_matching on two tests

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

* Correct copyright

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

* Correct file brief

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

* Apply review comments

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-04-26 15:15:23 +02:00
Alexandra cafca33508 Update Graph_Object.rst (#1036) 2023-04-24 15:33:15 +02:00
Lukasz Dorau fc06b29994 Do not intercept allocation symbols in tbbmalloc tests (fix) (#1079)
* Revert "Do not run the test_malloc_new_handler test under Valgrind (#1077)"

This reverts commit 727601afc0.

* Do not intercept allocation symbols in tbbmalloc tests (fix)

Valgring intercepts all allocation symbols with its own by default,
so it disables using tbbmalloc. In case of tbbmalloc tests
intercept allocation symbols only in the default system libraries,
but not in any other shared library or the executable
defining public malloc or operator new related functions.

With this change the test_malloc_new_handler test works correctly,
so let's revert #1077.

This patch fixes three tbbmalloc tests:
- test_malloc_new_handler,
- test_malloc_atexit,
- test_malloc_overload
that have not passed under Valgrind so far.

Fixes: #1080
Fixes: #1081
Ref: #1077

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>

---------

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2023-04-24 11:12:33 +02:00
Olga Malysheva 7196bb4fef Align vars.bat with the list of supported VS (#1085)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2023-04-24 11:05:51 +02:00
Alexandra d5225609e8 Update conf.py (#1082) 2023-04-20 12:25:38 +02:00
Lukasz Dorau 727601afc0 Do not run the test_malloc_new_handler test under Valgrind (#1077)
Add the NOMEMCHECK option to the tbb_add_test() function.

Do not run the test_malloc_new_handler test under Valgrind,
because this test throws an exception in new/new[],
but Valgrind cannot throw exceptions and so is aborting instead.

Fixes: #1075

Signed-off-by: Lukasz Dorau <lukasz.dorau@intel.com>
2023-04-19 09:10:55 +02:00
Alexandra ce4c43b9f3 Update conf.py (#1078) 2023-04-18 22:22:20 +02:00
Krzysztof Filipek f55d4e09b6 Add GitHub Actions workflow for labeling PRs (#1064)
This PR adds an automatic labeling feature to OneTBB.
The purpose of this commit is to add initial support
and label PRs changing anything related to tbbmalloc.

Signed-off-by: Krzysztof Filipek <krzysztof.filipek@intel.com>
2023-04-17 09:54:58 +02:00
Konstantin Boyarinov 269d1c3e0c Fix uninitialized variable in tbbmalloc for KW (#1068)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-04-17 10:31:28 +03:00
Ilya Isaev 10a6d95e3b Upgrade oneTBB version to 2021.10 (#1073)
* Upgrade oneTBB version to 2021.10

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Fix copyrights

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-04-14 17:36:49 +02:00
Alexandra b7e669fdf8 Update SYSTEM_REQUIREMENTS.md (#1071) 2023-04-14 17:11:58 +02:00
Alexandra 9e62b0473a Doc fix (#1067) 2023-04-14 13:20:55 +02:00
Alexandra ecac5c6017 Update REALESE_NOTES.md (#1066) 2023-04-14 12:16:16 +02:00
Valentina Kats bb66e4a71c [TCM] Rename LICENSE.TXT to LICENSE.txt (#86) 2023-04-11 18:16:24 +02:00
Vladislav Shchapov a96a032f2c Fix for build error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical] (#1059)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-04-06 09:13:36 +02:00
Ilya Isaev 5b2a49008c Set TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH to ON on MacOS (#1058)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-04-05 10:13:04 +02:00
Konstantin Boyarinov d5fd1e97a3 Fix reserve(0) issue for concurrent unordered containers (#1057)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-04-04 17:34:22 +03:00
Aleksei Fedotovandpavelkumbrasev cba4dee4cd [TCM] Update license in TCM files in accordance with the policy (#85)
Signed-off-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-04-04 11:36:24 +02:00
Valentina Kats 4379cf65fd [TCM] LICENSE.txt and third-party-programs.txt creation (#79)
* Create LICENSE.TXT

* Create third-party-programs.txt

* Add oneTBB to the list
2023-04-03 21:04:17 +02:00
sarathnanduandPavel Kumbrasev 2110128e4e Introduce new SDL compile flags on Windows and fix warnings. (#1035)
* Add Windows compiler flags related to security and fix TBB Malloc Warnings.
---------

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2023-03-30 08:31:51 -05:00
Vyacheslav Zhdanovskiy 13ccfff7c3 Avoid CMake warning if CPack is already included (#1054)
* Avoid CMake warning if CPack is already included

Signed-off-by: Vyacheslav Zhdanovskiy <vyacheslav.zhdanovskiy@nvi-research.com>

* Document the usage of an internal CPack variable

Signed-off-by: Vyacheslav Zhdanovskiy <vyacheslav.zhdanovskiy@nvi-research.com>

---------

Signed-off-by: Vyacheslav Zhdanovskiy <vyacheslav.zhdanovskiy@nvi-research.com>
2023-03-30 11:01:41 +02:00
Yun Hsiang 44505eb653 Disable ITT_NOTIFY for RISC-V (#1053)
ITT_NOTIFY doesn't support RISC-V. Disable it when building for RISC-V.

Signed-off-by: Yun Hsiang <yun.hsiang@sifive.com>
2023-03-29 17:22:01 +02:00
Aleksei Fedotov 7eca30594f [TCM] Catch thrown exceptions from the test (#81) 2023-03-24 09:33:05 +01:00
Ilya Isaev e5bfa25388 [TCM] Use export attributes on Linux (#80)
* Export only public API

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Add visibility-inlines-hidden

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-03-23 11:04:00 +01:00
Dmitri Mokhov e1f0f36054 Correct the minor interface version test (#1049)
In version.h, TBB_INTERFACE_VERSION_MINOR is defined as TBB_INTERFACE_VERSION%1000/10. This test works for single-digit minor versions, but starts failing, e.g., for TBB_INTERFACE_VERSION_MINOR=12110 (where minor version should be 11).

Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2023-03-22 15:35:18 -05:00
Dessie WilliamsandDessie Williams 47059fdef5 Updated Ubuntu 18.04 to latest (#1047)
* Update Ubuntu OS

* Update ci.yml

* Update ci.yml

* Update ci.yml

---------

Co-authored-by: Dessie Williams <109994540+dessie-williams@users.noreply.github.com>
2023-03-22 15:47:38 +01:00
Jonathan PeytonandFedotov, Aleksei 298411ea82 [TCM] Use standard predefined macro to detect Windows (#78)
/DWIN32 is automatically put on command line by CMake but isn't the standard predefined macro to detect Windows.
Instead, use _WIN32 || _WIN64 to detect Windows platform which is done in many other places in the code.

Co-authored-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2023-03-17 18:04:05 +01:00
Aleksei Fedotov 47a2bcec75 [TCM] Treat requests with automatic constraints specified as invalid (#77) 2023-03-16 18:20:14 +01:00
Alexandra a6a884ad0a Fixes to the lost topics (#1046) 2023-03-16 13:45:01 +01:00
Aleksei Fedotov 17e5e694fe [TCM] Return invalid argument if constraints and their size are not in sync (#76) 2023-03-15 18:02:18 +01:00
Ilya IsaevandPavel Kumbrasev 5ddf07d3b4 [TCM] Respect process affinity (#75)
* Respect process affinity

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Apply suggestions from code review

Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>

* Respect affinity in tests

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Fix constrained requests test not respecting affinity

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Remove redundant code

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Add comment to flags setting

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2023-03-15 16:51:31 +01:00
sarathnandu f91f55f25a Fix test build failure in Mips for debug mode. (#1042)
* Removed the "-fPIC -shared" flag added by cmake by default.

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
2023-03-14 15:10:57 -05:00
Alexandra 518643f326 Update conf.py (#1044) 2023-03-14 17:28:26 +01:00
Aleksei Fedotov b860fefdfd [TCM] Use oversubscribed concurrency for max_concurrency in constraints (#74)
If constraints are initialized by default but has the mask set, the value for max_concurrency should
be set to oversubscribed concurrency of the mask to be able to allocate as maximum resources as
possible and on the given mask, hence avoid violating compatibility rule.
2023-03-14 12:39:55 +01:00
Aleksei Fedotov 16631b6b65 [TCM] Fix wrong test assumption + improved readability (#73)
Test resource balancing had incorrect assumption that the callback was invoked after rigid concurrency request was made. Most likely, this was left untouched after FAIR RDS was changed to negotiate only required resources.
We did not notice that because the check for this did not propagate its status to the "public".
2023-03-14 11:02:16 +01:00
Alexandra bb45f09201 Update Get Started Guide with instruction of HWLOC usage (#1028) 2023-03-13 16:07:09 +01:00
Alexandra cf95d2cce3 Lost topics (#1027) 2023-03-13 15:12:45 +01:00
Alexandra 79b240c778 Update Working_on_the_Assembly_Line_pipeline.rst (#1009) 2023-03-13 15:11:46 +01:00
Ilya IsaevandAleksei Fedotov be844f72a7 [TCM] Add API to print meta info, slightly rework order of information printed (#64)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2023-03-10 12:08:42 +01:00
Aleksei Fedotov 4d74f22807 [TCM] Fix resource distribution during activation of a pending permit (#72)
If one permit deactivates the TCM now correctly redistribute the released resources to the activated permit with constraint.
2023-03-09 18:27:43 +01:00
Pavel Kumbrasev 1425eec954 [TCM] Fixed Coverity hints (#65)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-03-07 09:33:21 +00:00
Aleksei FedotovandIsaev, Ilya 92f229a4fc [TCM] Fix constraint parameters inference (#69)
* Update constraint's max_concurrency after inference of parameters

* Add back accidentally removed cv-qualifier

* Revert the use of unused variable

* Change benches order

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

---------

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-03-06 16:56:35 +01:00
Pavel KumbrasevandIsaev, Ilya b8e25ddbb5 [TCM] Add micro benchmark (#63)
* Add micro benchmark

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

* Add new line

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

* Add new benchmark scenarios

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

* Add CMake

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Correct compile flags

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>

* Fix unused variable

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

* Fix compilation on other compilers

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>

---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-03-06 15:56:34 +01:00
Ilya Isaev 0893628e3b [TCM] Add sonaming to TCM binaries (#68)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-03-03 10:38:08 +01:00
sarathnanduandIlya Isaev d8604942dc Fix for Cmake error when CMAKE_BUILD_TYPE is not set (#1037)
* Fix for Cmake error when CMAKE_BUILD_TYPE is not set

* Update the check for CMAKE_BUILD_TYPE

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>

* Update disabling LTO on debug mode.

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>

* Update cmake/utils.cmake

Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>

* Updated the copyright info

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>

---------

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2023-03-02 16:23:39 -06:00
Aleksei Fedotov fdaef045c8 [TCM] Infer minimum of requested resources by summing up constraints minimums (#67)
* Move constraints bounds summation into separate function
* Assume minimum requested resources equals to sum of constraint mins
2023-03-02 13:48:05 +00:00
Aleksei Fedotov 325480e7bc [TCM] Automatic inferring of request arguments (#66)
* WIP: Add test for the TCM request that was initialized by default

Also, add number of platform resources without oversubscription in tests and rename total_number_of_threads constaint.
2023-03-01 15:41:06 +01:00
Sam James 154cc73ca4 test: common: include <cstdlib> for abort() (fix build with GCC 13) (#1031)
GCC 13 (as usual for new compiler releases) shuffles around some
internal includes and so <cstdint> etc is no longer transitively included.

See https://www.gnu.org/software/gcc/gcc-13/porting_to.html.

Signed-off-by: Sam James <sam@gentoo.org>
2023-02-22 08:16:46 -06:00
Ilya Isaev 06ee8580f0 [TCM] Fix copyright and codespell scans (#60)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-22 10:45:51 +00:00
Ilya Isaev 89e920d4cc [TCM] Remove names from source code (#59)
Fix IPLDT scans hits
2023-02-21 14:34:47 +01:00
Pavel Kumbrasev 0e8ca5fc35 [TCM] Correct reg expression for HWLOC version parsing (#58)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-02-20 16:54:59 +01:00
Ilya IsaevandAleksei Fedotov ff44bc8435 [TCM] Add support for versioning, slightly rework environment variables behaviour (#32)
Support for printing meta info when TCM_VERSION is set to 1. Added runtime functions to get TCM version.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2023-02-20 11:13:52 +01:00
Olga Malysheva 18815e1243 Update Release Notes for 2021.8.0 release (#1029)
Signed-off-by: Olga Malysheva Olga.Malysheva@intel.com
2023-02-17 16:42:49 +01:00
Ilya Isaev 689cde15ac Disable LTO when configuring in Debug mode (#1026)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-17 14:59:21 +01:00
Pavel Kumbrasev 52cc85d009 [TCM] Wrote in permit_handle only on permit initialization (#57)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-02-16 13:00:16 +00:00
Ilya Isaev 0178faee56 [TCM] Change CPACK package name (#56)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-15 11:12:02 +00:00
Pavel Kumbrasev c81d0a7b2d [TCM] Add debug postfix to lib build (#55)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-02-15 10:16:35 +01:00
Aleksei Fedotov b9cbb9b93d [TCM] Add test to allow requesting of zero resources (#49)
This is useful for registration of the permit handle
2023-02-14 17:11:33 +01:00
Aleksei Fedotov be6f9ede7b [TCM] Use number of processor groups determination from HWLOC (#54)
It also corrects the first check for possibility to satisfy permit request, and updates the year in the Copyright notice.
2023-02-14 17:11:01 +01:00
Aleksei Fedotov 2b8944b0b1 [TCM] Make test overlapping clients more deterministric (#53) 2023-02-14 17:09:41 +01:00
sarathnandu e2dca807a1 Add Compiler defense flags to Clang and Gnu cmake files (#1022)
* Add flags to prevent compiler from optimizing out security checks
2023-02-13 17:17:11 +01:00
Aleksei Fedotov 8f9ac0a8ad [TCM] Extending test for premature exit of an application (#47)
* Add Windows implementation of the test

* Improve test_premature_exit

* Add error message in case the test is being built on unsupported OS
2023-02-13 16:50:53 +01:00
Ilya Isaev 4aa700d360 [TCM] Add TCM_DIR support (#51)
* Add option to run TCM test with external TCM library

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-13 15:49:51 +00:00
Aleksei Fedotov a1d78351f0 [TCM] Fix compilation errors of test for constrained requests on Windows (#48) 2023-02-13 16:46:48 +01:00
Vladislav Shchapov 9bd4d0650e Fix invalid WORKING_DIRECTORY for tests and multi-config CMake Generator (like Microsoft Visual Studio). (#870)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-02-13 11:09:59 +01:00
Pavel KumbrasevandFedotov, Aleksei eb69d23e73 [TCM] Move hwloc topology load to static method for eager initialization (#38)
Also, add the test that models the behaviour of oneTBB, where worker threads are detached.

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2023-02-10 16:42:30 +01:00
Aleksei Fedotov 421acb5d15 [TCM] Integrate other existing tests for constrained requests (#41) 2023-02-10 11:01:13 +01:00
Ilya Isaev 55cd6ea7fa [TCM] Add binaries signing support (#46)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-10 10:47:19 +01:00
Aleksei Fedotov d5a07be0a2 [TCM] Allow omitting client callback when connecting to the TCM (#45) 2023-02-10 10:39:01 +01:00
Fedotov, Aleksei 34da582c5f [TCM] Repair num_satisfiable field when calculating updates 2023-02-09 10:20:11 +01:00
Aleksei Fedotov b2690018cc [TCM] Test allow omitting mask when copy permit's data for constrained permit (#40) 2023-02-08 14:31:06 +01:00
Ilya Isaev ff688c362e [TCM] Install HWLOC to TCM package (#42)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-07 13:48:55 +00:00
Ilya Isaev 921c0359fe [TCM] Change name prefix from "zerm" to "tcm" (#35)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-06 11:17:26 +01:00
Ilya Isaev 7023fe29d9 [TCM] Add single output directory for binaries and tests (#37)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-02-06 11:16:41 +01:00
Fedotov, Aleksei 24a7a7eaa5 [TCM] Fix test_rb by removing uncertainty about resources distribution 2023-02-02 17:55:17 +01:00
Fedotov, Aleksei 26fa943fed [TCM] Rename copy_request() to precisely reflect its function 2023-01-30 14:24:35 +01:00
Fedotov, Aleksei b65cc03428 [TCM] Improve assert message 2023-01-30 14:24:35 +01:00
Fedotov, Aleksei 84e80d3db0 [TCM] Remove superfluous copying of HWLOC masks 2023-01-30 14:24:35 +01:00
pavelkumbrasev a98798e9b1 [TCM] Check mask only if exists
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-01-30 14:24:35 +01:00
Fedotov, Aleksei 7cf1c2f5fb [TCM] Compare masks during copying of permit request 2023-01-30 14:24:35 +01:00
Fedotov, Aleksei bd9d8312cd [TCM] Refactor the allocation and copying of the permit requests 2023-01-30 14:24:35 +01:00
Fedotov, Aleksei 2b1792db56 [TCM] Store permit request nearby permit data
This replaces the use of the unordered 'permit handle-to-request' map with a vector of permit
handles.
2023-01-30 14:24:35 +01:00
Fedotov, Aleksei cab94b9c65 [TCM] Remove incorrect asserts 2023-01-30 14:24:35 +01:00
Fedotov, Aleksei 5ddef563b8 [TCM] Do deep copying of permit requests
The deep copying helps in resolving possible crashes and data races issues.

The deep copying includes the copying of the constraints and their masks in case they were specified
by the client.

Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2023-01-30 14:24:35 +01:00
pavelkumbrasev 442ad60b78 [TCM] Add deep copy to req init in map
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-01-30 14:24:35 +01:00
Pavel KumbrasevandFedotov, Aleksei e8386bdad1 [TCM] Remove static from buffer objects (TSAN report) (#33)
Remove static qualifier from containers in renegotiate_permits()

Since containers become function locals and they are destroyed when execution goes out of scope, remove unnecessary clearing out on exit from renegotiate_permits()

---------

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2023-01-27 17:58:05 +01:00
Pavel KumbrasevandIlya Isaev f2ef7480b5 [TCM] Fix build on Windows (#34)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2023-01-27 12:29:29 +00:00
Pavel KumbrasevandIlya Isaev 815e8f0a28 [TCM] Add compiler configs in CMake (#29)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
2023-01-27 11:30:14 +00:00
Pavel Kumbrasev 23266bc541 Suppress TSAN warning on ITT initialization (#1020)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2023-01-27 10:51:30 +00:00
Jonathan Wakely 9acde48238 Remove shebang lines from Python files (#1017)
These files do not have the executable bit set in their file mode, and
they only need to be run as modules, not as executable scripts.

Signed-off-by: Jonathan Wakely <jwakely@fedoraproject.org>

Signed-off-by: Jonathan Wakely <jwakely@fedoraproject.org>
2023-01-26 12:09:23 +01:00
Fedotov, Aleksei f1d1a24875 [TCM] Fix representation of hwloc mask in the test system
The use of std::string results in the additional new line symbol when printing the mask on the
console, which makes its representation poor. Additionally, the size of the mask was computed
incorrectly, since 'hwloc_bitmap_weight' function returns the number of turned ON bits, instead of
the number of characters needed to represent the mask in the text form.

Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2023-01-26 10:35:27 +01:00
Andrew Corrigan 0cf592bd62 Reduces warnings using Xcode/AppleClang (#1018)
Signed-off-by: Andrew Corrigan <andrew.corrigan@gmail.com>
2023-01-26 08:39:38 +00:00
dda388c2f0 [TCM] Refactored constrained requests support (#27)
Signed-off-by: Pavlov, Evgeniy <evgeniy.pavlov@intel.com>
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Pavlov, Evgeniy <evgeniy.pavlov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-01-25 14:29:07 +00:00
Ilya Isaev fa5280c06f [TCM] Add CMake files and build dir to .gitignore (#28)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-01-19 11:20:54 +01:00
sarathnandu 3b161438c9 Prevent compiler from optimizing out security checks (#1007)
Add flags to prevent compiler from optimizing out security checks
2023-01-16 12:00:03 +01:00
Adrian Bunk fc2d7f9124 Build tbbmalloc also on mips (#845)
Signed-off-by: Adrian Bunk <bunk@debian.org>
2023-01-16 08:00:42 +00:00
Ilya Isaev 9434ec94f6 Suppress ICC deprecation warning for mallinfo (#1005)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2023-01-11 14:41:20 +01:00
Yuriy Chernyshov bef111d02f Fix compilation error on MacOS (#989) 2023-01-11 14:03:48 +01:00
Alexandra c497ad8a76 Fix filter_mode namespace of pipeline in the code blocks (#1002) 2023-01-11 10:15:15 +01:00
Alexandra 2e9b2b180e Update SYSTEM_REQUIREMENTS.md (#1003) 2023-01-10 18:19:40 +01:00
Vladislav Shchapov 989ede9661 Cleanup Windows resource files (#924)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2023-01-10 10:42:21 +00:00
kboyarinov 752cde6f12 Fix copyright year for PR983 (#1001)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2023-01-09 18:29:44 +02:00
John Paul Adrian Glaubitz 55b8e1b167 Use __sync_fetch_and_add() on ia64 with non-Intel compilers (#979) (#983)
Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
2023-01-09 13:58:35 +02:00
Christian Fersch e6e493f96e Fix unmatched pragma warning push/pop (#996)
Signed-off-by: Christian Fersch <christian.fersch@ptvgroup.com>
2023-01-02 17:51:02 +02:00
kboyarinov f3303b1114 Fix test_numa_dist on Windows (#997)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2022-12-26 12:55:37 +02:00
Vertexwahn e6104c9599 Switch from bazel_tools to platfroms to support Bazel 6.0.0 (#994)
Signed-off-by: Vertexwahn <julian.amann@tum.de>
2022-12-21 16:19:28 +01:00
2ecfcf5afc Moving the Hybrid CPUs API out of preview (#680)
Move the Hybrid CPUs API out of preview. This patch removes the necessity of setting the preview macro and removes the API reference topic

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
Co-authored-by: Kochin Ivan <kochin.ivan@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2022-12-20 18:36:17 +01:00
Olga Malysheva 66c6d8e330 Update ittnotify and doctest copyright year (#993)
Signed-off-by: Olga Malysheva <olga.malysheva@intel.com>
2022-12-16 15:33:48 +01:00
kboyarinov cd44d19898 Fix/suppress warnings on gcc12.1 (#866)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2022-12-16 09:47:01 +00:00
Deepan fa4f581805 Make alias input_type protected for join_node (#868)
* Make typedef input_type protected so that it's not exposed in join_node public interface

Signed-off-by: Deepanjan Biswas <deepanjan.biswas@formlabs.com>

* Make join_FE_node typedefs private

Signed-off-by: Deepanjan Biswas <deepanjan.biswas@formlabs.com>

* Use a different name for the tuple size template argument

Signed-off-by: Deepanjan Biswas <deepanjan.biswas@formlabs.com>

* Use the new template argument name as the base class argument. This builds on macOS

Signed-off-by: Deepanjan Biswas <deepanjan.biswas@formlabs.com>

Signed-off-by: Deepanjan Biswas <deepanjan.biswas@formlabs.com>
2022-12-14 00:26:16 +02:00
Vladislav Shchapov c7157ce332 Workaroud to -Wdeprecated-declarations warnings on macOS 13 SDK (#954)
* Disable -Wdeprecated-declarations warning in doctest.

* Replace sprintf "%f" with std::to_string.

Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-12-13 10:48:09 +01:00
Dmitry Kurtaev d477500377 Fixes for Android NDK 25 (#953)
Signed-off-by: Dmitry Kurtaev <dmitry.kurtaev@gmail.com>
2022-12-13 10:42:28 +01:00
Anuya Welling 0e6d4699bb Replacing files to update ittnotify to tag v3.23.0 (#956)
* Replacing files to update ittnotify to tag v3.23.0

* codespell error elimination

* Adding back changes made by PR #917

* Adding back changes made by #850

* Changing copyright

* ITT RELEASE RESOURCES MACRO

* Fixing copyright issue

* Address changes for frontend.cpp
2022-12-12 17:19:23 +01:00
Ilya Isaev bc48c4a099 Add backoff to task_stream::pop (#931)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-12-07 16:17:37 +01:00
0f0d1cb994 Enable ThreadSanitizer on macOS (#911)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Isaev, Ilya <ilya.isaev@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2022-12-06 08:12:14 +00:00
Ilya Isaev 274f68e529 Remove unused variable from conformance_join_node.cpp (#975)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-12-02 17:23:19 +01:00
Pavel Kumbrasev 17b7834b80 Remove unused variable (#974)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2022-12-02 11:52:09 +00:00
Vladislav Shchapov 5e91b2c07d Fix: warning: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Wextra-semi-stmt]. (#969)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-11-26 11:49:29 -06:00
Alexandra 797dfaa7fc Update README.md (#964) 2022-11-16 16:59:40 +01:00
Cheney Wang dece01699f Add vcpkg installation instructions (#907)
* Add vcpkg installation instructions

* Update INSTALL.md
2022-11-16 12:26:12 +01:00
Alexandra f2e97f941e Rename Automically_Replacing_malloc.rst (#938) 2022-11-16 11:34:21 +01:00
kboyarinovandPavel Kumbrasev f2af74732b Fix part of Coverity hits (#960)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2022-11-14 15:51:48 +02:00
Ilya Isaev 3fefeb64b3 Update interface version for oneTBB 2021.9 (#962)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-11-14 13:07:42 +01:00
Rui Ueyama 4146a9e1f1 Fix ASAN issue (#959)
ASAN report an error if we tries to downcast a misaligned address.
To avoid it, we need to check if an address is valid before casting it.

Here is the ASAN error:

/home/runner/work/mold/mold/third-party/tbb/src/tbb/../../include/tbb/../oneapi/tbb/concurrent_hash_map.h:446:23: runtime error: downcast of misaligned address 0x000000000003 for type 'tbb::detail::d2::hash_map_iterator<tbb::detail::d2::concurrent_hash_map<std::basic_string_view<char, std::char_traits<char>>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, tbb::detail::d1::tbb_hash_compare<std::basic_string_view<char, std::char_traits<char>>>, tbb::detail::d1::tbb_allocator<std::pair<const std::basic_string_view<char, std::char_traits<char>>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>>>, std::pair<const std::basic_string_view<char, std::char_traits<char>>, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, st0x000000000003: note: pointer points here
<memory cannot be printed>
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /home/runner/work/mold/mold/third-party/tbb/src/tbb/../../include/tbb/../oneapi/tbb/concurrent_hash_map.h:446:23

Signed-off-by: Rui Ueyama <ruiu@cs.stanford.edu>

Signed-off-by: Rui Ueyama <ruiu@cs.stanford.edu>
2022-11-14 11:57:50 +02:00
Alexandra b14b68a522 Update README.md (#901) 2022-11-14 10:50:52 +01:00
kboyarinov 3003ec0774 Fix "field used uninitialized" on modern gcc versions (#958)
Signed-off-by: kboyarinov <konstantin.boyarinov@intel.com>
2022-11-09 17:02:48 +02:00
Alexandpavelkumbrasev eac9465052 Fix concurrent_[bounded_]queue correctness on weak memory models (#782)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2022-11-04 09:39:20 +00:00
a45d68f28e Update release notes for oneTBB 2021.7 (#872)
* Update release notes for oneTBB 2021.7

* Update RELEASE_NOTES.md

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
Co-authored-by: Timmie Smith <timmie.smith@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2022-10-26 18:04:44 +02:00
Rui Ueyama 137c1a88b6 Retry if pthread_create fails with EAGAIN (#824)
Signed-off-by: Rui Ueyama <ruiu@cs.stanford.edu>
2022-10-26 12:54:20 +01:00
Ilya Isaev ceacd2207e Rework test_eh_thread to avoid sporadic failures (#946)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-10-26 12:13:51 +01:00
Ilya Isaev cb88c51c9c Handle case when LRU history capacity is zero (#939)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-10-21 15:02:08 +02:00
Ilya Isaev 912cd2b0b3 Fix build with source dir path containing spaces (#930)
Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-10-20 10:30:35 +02:00
Dirk MuellerandMo Zhou e8666c0b9c Add s390x, hppa and riscv64 architecture detection (#917)
* Fix build failure for s390x and hppa architectures.

Signed-off-by: Mo Zhou <cdluminate@gmail.com>

* Add riscv64 architecture detection

Signed-off-by: Dirk Müller <dirk@dmllr.de>

Signed-off-by: Mo Zhou <cdluminate@gmail.com>
Signed-off-by: Dirk Müller <dirk@dmllr.de>
Co-authored-by: Mo Zhou <cdluminate@gmail.com>
2022-10-18 11:34:09 +03:00
Vladislav Shchapov 71b04524d0 Workaround for test_dynamic_link builded with gcc and lto
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-10-17 19:19:23 +01:00
Ilya Isaev aa247fa816 [tbb::parallel_for_each] Don't call destructor for uninitialized object (#933)
Current implementation of parallel_for_each may call destructors for uninitialized objects when using Input iterator and count of elements in block is less than max_block_size. This is UB and can lead to incorrect memory access in some scenarios.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-10-17 14:03:06 +02:00
Kavin Teenakul 13544f9432 Update INSTALL.md (#820)
fix typo
2022-10-13 18:12:13 +03:00
AlexandraandPavel Kumbrasev 635761449f Update testing_approach.rst (#937)
* Update testing_approach.rst

* Update doc/main/intro/testing_approach.rst

Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>

Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2022-10-11 18:08:27 +02:00
Pavel Kumbrasev 6bfd29bde7 Exclude includes from version.h during .rc files comilation (#928)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2022-10-05 12:57:13 +02:00
egfefey e6459e22ae Delete resource.rc (#922) 2022-10-05 11:17:35 +01:00
egfefey 85792ca411 Egfefey patch windows dll (#916)
* Restoring Windows DLL details information

This restores the detailed information in the Windows dll. This has been absent from the revamped oneTBB.

* Update CMakeLists.txt

Enabling build of Windows resource file.

* Update CMakeLists.txt

Updating copyright year

* Add files via upload

Adding Windows resource file for tbbmalloc

* Update CMakeLists.txt

Enabling building of tbbmalloc resource file

* Add files via upload

Adding tbbmalloc_proxy Windows resource file

* Update CMakeLists.txt

Enabling the build of tbbmalloc_proxy resource file

* Add files via upload

Adding tbbbind resource file

* Update CMakeLists.txt

Enabling tbbbind resource file build

* Update resource.rc

Product name update in resource file

* Update CMakeLists.txt

Restricting resource build to default tbbbind

* Add files via upload

Replacing resource.rc with tbb.rc to conform with other dlls (tbbmalloc, tbbbind etc)

* Update CMakeLists.txt

Update from resource.rc to tbb.rc

* Update CMakeLists.txt

Updating copyright year

* Update CMakeLists.txt

Updating the copyright year

* Update tbb.rc

Removing "Windows" from the product name and sourcing the version from version.h

* Update tbb_bind.rc

Removing "Windows" from the product name and sourcing the version info from version.h

* Update tbbmalloc.rc

Removing "Windows" from the product name and sourcing the version info from version.h

* Update tbbmalloc_proxy.rc

Removing "Windows" from the product name and sourcing the version info from version.h
2022-09-30 12:51:10 -05:00
kboyarinov 3fbdbb8b2e Fix the implicit deduction guides on MacOS (#898) 2022-09-28 14:12:46 +03:00
Vladislav Shchapov 3c91aea522 Fix universal binary build on macos. (#919)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-09-27 13:15:06 +02:00
Ilya Isaev 2eccd5f998 Fix tbb4py test sporadic fails (#913)
There are sporadic fails with tbb4py test (test.py). The problem is that some test cases rely on the fact, that submitted async work will not finish until calling get with timeout. To do there is a call for time.sleep in functor submitted. Sporadically, expected result is not happening (like OSX example in issue) so to prevent that, the blocking is used.

Signed-off-by: Isaev, Ilya <ilya.isaev@intel.com>
2022-09-26 16:14:17 +02:00
cc3a9aa992 Correct behavior for proportional_mode (#904)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: kboyarinov <konstantin.boyarinov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2022-09-26 14:29:27 +01:00
Alexandra 104fb5c9de Testing approach doc (#914)
* Signed-off-by:Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com

* Update testing_approach.rst
2022-09-26 12:35:30 +02:00
Pavel Kumbrasev f10350212b Remove unused function from _concurrent_queue_base.h (#915)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2022-09-23 14:18:20 +01:00
kboyarinov 8155aaeb6b Fix concurrent queues not to require default constructor from T (#886)
* Fix concurrent_queue::clear not to require default ctor

* Suppress warning about the unused variable in release mode

* Fix the conformance test not to rely on the additional item in dtor

* template->class in template template parameter

* Rework the fix

* Remove unnecessary flag from internal pop method

* Minor clean-up

* Add exception macros to the test

* Add whitespace

* Fix PR comments

* Fix logic for a build with no exceptions
2022-09-05 11:03:53 +03:00
Alexandra f3747fed09 Fix an analytics script (#874) 2022-09-01 10:43:46 +02:00
Valentina Kats a748475d7a Update version number for oneTBB 2021.8.0 (#883)
* Update version.h

* Address feedback
2022-08-31 13:23:25 +02:00
kboyarinov 57f8bb1d99 Fix concurrent_bounded_queue::pop return type (#888) 2022-08-29 17:33:37 +03:00
Jakub Kopal 01fa1414a2 Fix concurrent-queue pop comment (#809)
* fix concurrent-queue pop comment

* Update copyright date
2022-08-29 11:07:03 +03:00
Anuya Welling dce182a7b5 Fixing clang error on tbb numa test (#867) 2022-08-17 14:48:23 -05:00
Kirigami 5cb212d447 add loongarch support (#850)
* add loongarch support

* update the copyright year of ittnotify_config.h
2022-08-14 11:21:51 +03:00
Timmie Smith 323260671b Resolving doctest errors - correcting test classifications. (#856) 2022-07-15 19:25:59 -05:00
Anuya Welling 4b895704d8 Addressing doctest error - found wrong tag : number (#855) 2022-07-13 08:39:34 -05:00
andreastedile fc824596aa Fix typo (#852)
Signed-off-by: andreastedile <andrea.stedile@studenti.unitn.it>
2022-07-06 18:04:32 -05:00
Vladislav Shchapov bc7e83a2f0 Fix signed/unsigned compare. (#849)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
2022-06-29 10:46:52 -05:00
Anuya Welling 0a521127a8 Tbb numa bug fix (#842)
* Add fix for close scheme numa affinity.

Signed-off-by: sarathnandu <sarath.nandu.ramachandran.nair@intel.com>
2022-06-27 18:12:30 -05:00
sarathnanduandAnuya Welling 5deb46f4c2 Add Win Numa test-cases (#846)
* Added tests for overflow and using all threads

Signed-off-by: Sarath Nandu R <sarath.nandu.ramachandran.nair@intel.com>
Co-authored-by: Anuya Welling <anuya.welling@intel.com>
2022-06-27 18:04:48 -05:00
Christoph Erhardt 801df0edeb Fix overeager stripping of compile flag (#716)
The existing regex strips all occurrences of the given string from
`${CMAKE_CXX_FLAGS}`, regardless of whether it is just a substring of a
flag. For instance, `-Werror=format-security` gets truncated to
`=format-security`.

The new regex makes sure that only whole words get replaced.

Signed-off-by: Christoph Erhardt <github@sicherha.de>
2022-06-02 10:04:22 -05:00
Dmitri Mokhov 451e76ef68 Do not store in LargeObjectCache objects whose sizes align to maxHugeSize (#838)
Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
2022-05-26 12:56:50 -05:00
Valentina Kats faaf43c4ab Update RELEASE_NOTES.md for oneTBB 2021.6 (#835) 2022-05-20 13:21:25 -05:00
AlexandAlexander A Utkin c14ecee586 [TCM] Fix a couple of races (#8)
* Fix a couple of races

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>

* Rework skip logic

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>

* Fix allotment logic

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>

* Review changes.

* Correct test log messages

* Review changes

* Correct test utils

* Update test test_static_permit (rework and rename)

* Correct test

* Code correction

* Use skip_concurrenency_checkc flag in test_rigid_concurrency_permit() function

Co-authored-by: Alexander A Utkin <alexander.utkin@intel.com>
2022-04-05 18:31:01 +03:00
Alexey Veprev 9d2a3477ce CMake/readme: fix note (#805) 2022-04-01 16:49:55 +03:00
Alexey Veprev d6f4c40e83 [TCM] CMake: create README with basic build instructions (#22) 2022-03-31 22:30:36 +03:00
Alex Utkin f343fbde09 [TCM] Correction: MSVC not package bit fields with mixed types (#21)
* Correction: MSVC not package bit fields with mixed types
* Fix comment in static assert
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2022-03-31 18:38:38 +03:00
Alex Utkin 2ac6c07be8 [TCM] Fix Windows compilation issues (#19)
* Windows compilation issues: prevent min/max problem, secure warnings and etc.

* Windows compilation issues: C4101: unreferenced local variable.

* Windows compilation issues: C4018: signed/unsigned mismatch and bool issue.

* Windows compilation issues: C4018: signed/unsigned mismatch and bool issue. Part II

* Windows compilation issues: suppress compile warnings.

* Windows compilation issues: suppress compile warnings. Part II

* Windows compilation issues: adds helpers to simplify test code.

* Windows compilation issues: temporary comment static_asserts - not pass on MSVC.

* Corrects test name in log.

* Simplify test framework.

* Changes logging output.

* Windows compilation issues: don't use static assert for structures with bit-fields on Windows.

* Review changes.

* Correct project compile options.

* Windows compilation issues: correct tests.

* Windows compilation issues: avoid compile warnings.

* Windows compilation issues: correct Linux build.

* Prevent error: unused variable.

* Style correction.

* Rework CMake configuration: creates common part as separate file.

* Suppress compile warnings for test on Linux.

* Suppress compile warnings for test on Linux. Update.

* Corrects tests to avoid missing-field-initializers warning on Linux.

* Review changes.

* Integrate new test helpers.

* Review changes: migrate to system processing include file not found in CMake.
2022-03-31 15:53:16 +03:00
Evgeniy Pavlov 5ac88fef28 [TCM] Split TCM's header onto two: with API and data structures (#16)
Signed-off-by: Pavlov, Evgeniy <evgeniy.pavlov@intel.com>
2022-03-25 19:54:50 +03:00
Alexandra 3e352b4812 Update layout.html (#815) 2022-03-25 14:02:28 +03:00
Alexandra 4aa0b0b2db Update examples.rst (#816) 2022-03-24 16:52:43 +03:00
Aleksei Fedotov a791791b88 [TCM] Recognize TCM_DISABLE environment variable (#13)
There is a need for global switch for TCM. The idea is to have an envariable that, when set to anything except for zero, makes the TCM to drop connection attempts.
In order to have reasonable performance this variable is read only once - at the library load time when its globals are initialized. Because of that it is impossible to write single test that changes the variable during the test and makes connection attempts to the TCM. Therefore, the patch adds three identical tests, but modifies the environment these tests are invoked in.

The patch addresses issue #6.
2022-03-24 10:57:38 +03:00
Alexandra 3859d1111f Update conf.py (#812) 2022-03-22 17:52:55 +03:00
Alexandra efea9935d1 Update intro_gsg.rst (#811) 2022-03-21 14:42:01 +03:00
Anton PotapovandAlexandra ed9d4b5e9a TBB DOC : Dev Guide: Task Scheduler Bypass and How Does Task Scheduler Works (#521)
* TBB DOC : Dev Guide: Task Scheduler Bypass and How Task Scheduler
Works

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2022-03-21 11:24:26 +03:00
Alexandra 0a0a5926ee Update conf.py (#810) 2022-03-18 18:26:28 +03:00
Alexandra 2c4f282e86 Update intro_gsg.rst (#808) 2022-03-18 16:53:06 +03:00
Alexandra 05023723ff Update Get Started Guide (#803) 2022-03-16 13:25:18 +03:00
Evgeniy Pavlov 6ecebd90d9 [TCM] Add the RM design document in RST format converted from *.docx (#5)
* Add the TCM design doc in RST-format

Signed-off-by: Pavlov, Evgeniy <evgeniy.pavlov@intel.com>
2022-03-15 15:10:05 +03:00
Alex 500abe33f8 Workaround conflict with _CRTDBG_MAP_ALLOC (#787)
* Workaround conflict with _CRTDBG_MAP_ALLOC

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-03-15 09:21:35 +03:00
Aleksei Fedotov 39eeb13af4 [TCM] Add initial implementation of the Thread Composability Manager (#2)
* Add initial implementation of the Thread Composability Manager

Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2022-03-09 19:14:40 +03:00
Aleksei Fedotov 0a09c4ff54 [TCM] Add Git-related machinery (#1)
Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2022-03-09 18:16:12 +03:00
Ilya Isaev 1da8f0d33b Add topic about "Lazy Initiliazation" pattern to Design patterns (#790)
New topic about Lazy initialization pattern and how it can be implemented using oneapi::tbb::collaborative_call_once has been added.

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2022-03-09 16:56:39 +03:00
a938322524 Document a way to flow graph can be attached to arbitrary task_arena (#785)
* Document a way to flow graph can be attached to arbitrary task_arena

task_arena interface provides mechanisms to guide tasks execution within the arena by
setting the preferred computation units or restricting part of computation units. In some
cases, you may want to use mechanisms within a flow graph.

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
Co-authored-by: Alexandra Epanchinzeva <alexandra.epanchinzeva@intel.com>
2022-03-09 15:04:40 +03:00
Fedotov, Aleksei 3f9baefb41 [TCM] Add README 2022-03-05 11:54:53 +03:00
Vladislav Shchapov af90f6cffc CMake/test: fix -rdynamic for full LTO build (#798)
Signed-off-by: Vladislav Shchapov <phprus@gmail.com>
2022-03-05 10:11:43 +03:00
Alexandra e386960a77 Instruction for building the docs locally (#778) 2022-03-04 19:49:25 +03:00
Alexandra ce0d258e72 Update doc structure and add new files (#791) 2022-03-02 18:37:52 +03:00
Sergey Zheltov 09346731f1 CI: don't run copyright_check on master branch (#792) 2022-02-28 19:11:12 +03:00
Aleksei Fedotov e5cbe500d2 Actualize documentation about proportional splitting constructor in Range (#728)
Actualize documentation about proportional splitting

Signed-off-by: Fedotov, Aleksei <aleksei.fedotov@intel.com>
2022-02-28 10:34:08 +03:00
KseniiaBakina a392038c6d Add copyright checker (#784) 2022-02-28 06:59:04 +03:00
Ilya Isaev f8102d5ba7 Fix test_collaborative_call_once SIGABRT on ARM 32 bit(#789)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2022-02-24 16:56:05 +03:00
Alex 31cba51f69 Rework incorrect assert in try_destroy_arena (#781)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-02-21 11:33:26 +03:00
Alex ab1409e16b Fix incorrect assertion in test_eh_algorithms (#771)
* Fix incorrect assertion in test_eh_algorithms

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-02-21 11:02:56 +03:00
Pavel Kumbrasev a8681a54c2 Remove suspend_callback_wrapper struct (#780)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2022-02-21 10:06:32 +03:00
Pavel KumbrasevandAlex e77098d67f Call suspend user function on the calling thread (#727)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
Co-authored-by: Alex <alexei.katranov@intel.com>
2022-02-18 11:44:43 +03:00
Alexandra 6666292fbf Update conf.py (#774) 2022-02-16 14:49:57 +03:00
Alexey Veprev c9e43df346 version.h: fix year (#772)
Signed-off-by: Veprev, Alexey <alexey.veprev@intel.com>
2022-02-10 11:01:19 +03:00
Alexey Veprev 39c6fa3010 Update version number for 2021.7 (#770)
Signed-off-by: Veprev, Alexey <alexey.veprev@intel.com>
2022-02-09 15:47:50 +03:00
Sergey Zheltov 690aaf497a Update copyright year 2021 -> 2022 (#769)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2022-02-09 12:59:44 +03:00
kboyarinov 56cb263e40 Fix incorrect access to concurrent_hash_map from transparent insertion (#759)
* Fix incorrect access

* Add test for chmap access modes

* Change copyright year for test_concurrent_hash_map.cpp
2022-02-07 16:45:43 +03:00
Alex 18e06f7f6b Simplify private worker synchronization mechanism (#754)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-02-07 15:03:03 +03:00
Anton PotapovandAlexandra fd76f45215 Documentation update for unpreview task_handle and related stuff (#755)
* Unpreview task_handle and related stuff

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2022-02-07 12:35:20 +03:00
Julien Voisin 3a7f96db56 mallinfo is only defined on glibc and android (#764)
It currently prevents compilation under musl:

```
[ 90%] Building CXX object src/tbbmalloc_proxy/CMakeFiles/tbbmalloc_proxy.dir/proxy.cpp.o
/__w/mimalloc-bench/mimalloc-bench/extern/tbb/src/tbbmalloc_proxy/proxy.cpp:263:26: error: return type 'struct mallinfo' is incomplete
  263 | struct mallinfo mallinfo() __THROW
      |                          ^
compilation terminated due to -Wfatal-errors.
``
2022-02-07 09:56:15 +03:00
Alexandra e274a9e4b3 Update CONTRIBUTING.md (#765) 2022-02-04 21:39:41 +03:00
Alex f5ed9a6b6a Workaround ASAN false positive in test_eh_algorithm (#767)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-02-04 14:12:45 +03:00
Rui Ueyama 6a15b64093 Make tbb compile with musl libc (#748)
TBB resumable tasks are implemented using getcontext() and setcontext()
on Unix-like systems. These functions are deprecated in the recent
versions of POSIX and may not exist. musl libc does not provide these
functions.

There's unfortunately no way to detect musl (musl intentionally do not
define macros like `__MUSL__`), so __TBB_RESUMABLE_TASKS is defined if
`__GLIBC__`. glibc-compatible libc's such as uClibc defines `__GLIBC__`,
so it should work as a catch-all condition.

Signed-off-by: Rui Ueyama <ruiu@cs.stanford.edu>
2022-02-04 13:32:11 +03:00
fpliu c17f1ec1cb CMake: fix ANDROID_STL handling (issue #710) (#729)
ANDROID_STL variable is optional, it may be empty. ${ANDROID_STL} should be enclosed in quotation marks.

Reference:
https://developer.android.com/ndk/guides/cmake#android_stl

Signed-off-by: leleliu008 <leleliu008@gmail.com>
2022-02-04 10:58:53 +03:00
Alex 219c42520c Fix external thread termination (#762)
* Fix external thread termination
* Fix tls key corruption for the last external thread
* Refactor task_dispatch attach/detach logic

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-02-04 10:21:05 +03:00
Vladimir SerovandAleksei Fedotov 5d21288abc Code coverage for overwrite_node (#760)
Test for coverage cancel function of oneapi::tbb::flow::overwrite_node::register_predecessor_task

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2022-02-03 13:32:09 +03:00
Sergey Zheltov 2a9ed7045e CI: replace testing on Windows Server 2016 + VS2017 with Server 2022 + VS2022 (#763)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2022-02-02 19:14:21 +03:00
Sergey Zheltov c21e688ad0 Update copyright year 2021 -> 2022 (#761)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2022-02-01 19:40:54 +03:00
Sergey Zheltov cd6a5f9f4a CI: fix documentation build error (#753) 2022-01-27 15:08:48 +03:00
Vertexwahn 3c76824ade Add Bazel build support for macOS (#746)
Signed-off-by: Julian Amann <julian.amann@tum.de>
2022-01-27 10:48:48 +03:00
Pavel Kumbrasev 525a38895c Fix incorrect synchronization in private server (#739)
* Fix a race in thread shutdown protocol

Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2022-01-26 15:21:41 +03:00
Ilya Isaevandvlserov 57f524ca71 clang-tidy: use nullptr instead of NULL (#631)
This patch applies clang-tidy check- modernize-use-nullptr

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: vlserov <vladimir.serov@intel.com>
2022-01-26 12:39:57 +03:00
Alex 4d2254b08f Improve code readability in private_worker (#752)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-01-26 07:46:34 +03:00
Alexandra 4eda0f93a7 Update pull_request_template.md (#751)
Signed-off-by: Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com
2022-01-25 14:45:12 +03:00
Ilya Isaev e0cc518745 Split tbb::flow::join_node testing into separate test files (#741)
In order to reduce GOT size on MIPS that leads to linkage errors (relocation truncated to fit: R_MIPS_GOT_PAGE) in debug, tbb::flow::join_node testing was split into separate files.

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2022-01-24 19:19:36 +03:00
Sergey Zheltov 35e0f552bd Fix DLL loading for tbb4py on Windows (#749)
* Fix DLL loading for tbb4py on Windows

Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>

* Fix copyright year

Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2022-01-24 18:35:12 +03:00
Anton Potapov 74207e5d2d Fix race in conformance_task_arena (#744)
* Fix race in conformance_task_arena

- call observe(false) in the derived observer destructor
- do the same for all observers in the tests 

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2022-01-24 12:25:29 +03:00
Sergey Zheltov 13f9f32b3a Update copyright year 2021 -> 2022 (#743)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2022-01-21 17:09:47 +03:00
kboyarinovandAlexei Katranov 555bc873f8 Fix unordered and ordered containers ranges for empty containers (#703)
* Fix container::range_type behavior in case of empty containers

* Remove test that violates the spec

* Fix range.begin to point to a value node

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>

* Remove first_value_node from empty

Co-authored-by: Alexei Katranov <alexei.katranov@intel.com>
2022-01-21 11:09:12 +03:00
Alexey Oralov 1bfd90d19a Delete tbb_gen_vars (#742)
Signed-off-by: Aleksey Oralov <alexey.oralov@intel.com>
2022-01-20 22:22:38 +03:00
Pavel Kumbrasev a36bf9cb86 Fix incorrect resize behavior with first_block (#735)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2022-01-20 12:01:21 +03:00
Alexey VeprevandAlexandra 70ac2444f5 INSTALL.md: add example for multi-config generators (#736)
Signed-off-by: Veprev, Alexey <alexey.veprev@intel.com>

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2022-01-19 12:21:21 +03:00
Alexandra 1318c0582e Update conf.py (#737)
Signed-off-by: Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com
2022-01-18 16:26:45 +03:00
Alexandra 6b0507b72d Update RELEASE_NOTES.md (#734)
Signed-off-by: Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com
2022-01-17 15:18:23 +03:00
Anton PotapovandPavel Kumbrasev 84efdd2a87 making task_group_context::is_proxy race free (#726)
* making task_group_context::is_proxy race free

using special value of task_group_context::my_state (former my_lifetime_state) to avoid
races on task_group_context::my_traits

the race was on task_group_context::my_traits member
- it was read by the is_proxy() member during task spawning
- it was written to in bind_to() function on first task spawning

- some renamings
 -  task_group_context::my_state -> my_may_have_children
 -  task_group_context::my_lifetime_state ->my_state
 -  task_group_context::lifetime_state -> state

- removed unused enum values

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2022-01-17 15:15:22 +03:00
Anton Potapov f1ba69bde9 Rectifing testing of some preview features controlled by __TBB_CPF_BUILD (#732)
Explicit enabling of task_group related preview features was removed, in favor of logic in test/common/config.h

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2022-01-17 09:47:24 +03:00
Anton Potapov 14d3d41f81 Missed part of task_group_exptensions unpreview (#668) (#731)
Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2022-01-17 09:46:23 +03:00
Alex ec39c5463d Fix overflow in concurrent_hash_map (#704)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-01-13 12:29:23 +03:00
Alex 1eaccf7a8c Improve task arena test coverage (#725)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2022-01-13 12:29:07 +03:00
Anton Potapov 3db67b5ba2 Fixed deadlock in the task_group conforance tests (#699)
- use same arena for task_group::run() and task_group::wait() methods
- use single thread environment for test stability

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2022-01-11 22:39:11 +03:00
Ilya Isaev 4ba6676737 Update doctest version to 2.4.7 (#692)
Updated doctest version to the new released 2.4.7 and applied necessary locally made workarounds

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2022-01-10 18:55:21 +03:00
Anton Potapov 603d9f7e17 Fix Migration Guide Link (#721) 2022-01-10 17:23:02 +03:00
Ivan Kochin e386c96deb Update the name of the link to the CMake readme (#722)
Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2022-01-10 15:32:25 +03:00
Vladimir Serov d1667d514d VS2015: fix possible unreached code warning (#706)
Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-12-30 09:48:40 +03:00
AlexandAnton Potapov 5fc0a5f6b3 task_scheduler_handle productization (#566)
* task_scheduler_handle productization

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com

Co-authored-by: Anton Potapov <anton.potapov@intel.com>
2021-12-29 21:28:56 +03:00
Alex 90b0671b31 Resolve doxygen class naming conflicts (#705)
* Fix doxygen class naming conflicts

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-12-28 17:30:10 +03:00
Alexey Veprev 0860b7f562 CMake: convert TBB_SIGNTOOL path TO_CMAKE_PATH (#701)
Signed-off-by: Veprev, Alexey alexey.veprev@intel.com
2021-12-27 11:15:16 +03:00
Vladislav Shchapov 013035b4e9 Fix issue #687 (test_eh_thread) (#697)
Signed-off-by: Vladislav Shchapov <phprus@gmail.com>
2021-12-23 17:17:24 +03:00
Vladimir Serov 534428d0f8 Build issue: GCC 4.8 bug (#693)
Class template inheritance doesn't work well with function-local types
Move class definition to global scope

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-12-22 16:52:00 +03:00
Andrey Semashev 8a87469451 Optimize x86 atomic_fence (#328)
* Added optimized x86 atomic_fence for gcc-compatible compilers.

On x86 (32 and 64-bit) any lock-prefixed instruction provides sequential
consistency guarantees for atomic operations and is more efficient than
mfence.

We are choosing a "lock not" on a dummy byte on the stack for the following
reasons:

 - The "not" instruction does not affect flags or clobber any registers.
   The memory operand is presumably accessible through esp/rsp.
 - The dummy byte variable is at the top of the stack, which is likely
   hot in cache.
 - The dummy variable does not alias any other data on the stack, which
   means the "lock not" instruction won't introduce any false data
   dependencies with prior or following instructions.

In order to avoid various sanitizers and valgrind complaining, we have to
initialize the dummy variable to zero prior to the operation.

Additionally, for memory orders weaker than seq_cst there is no need for
any special instructions, and we only need a compiler fence. For the relaxed
memory order we don't need even that.

This optimization is only enabled for gcc up to version 11. In gcc 11 the
compiler implements a similar optimization for std::atomic_thread_fence.
Compilers compatible with gcc (namely, clang up to 13 and icc up to 2021.3.0,
inclusively) identify themselves as gcc < 11 and also benefit from this
optimization, as they otherwise generate mfence for
std::atomic_thread_fence(std::memory_order_seq_cst).

Signed-off-by: Andrey Semashev <andrey.semashev@gmail.com>

* Removed explicit mfence in atomic_fence on Windows.

The necessary instructions according to the memory order argument
should already be generated by std::atomic_thread_fence.

Signed-off-by: Andrey Semashev <andrey.semashev@gmail.com>

* Removed memory order argument from atomic_fence.

The code uses memory_order_seq_cst in all call sites of atomic_fence,
so remove the argument and simplifiy the implementation a bit. Also, renamed
the function to make the memory order it implements apparent.

Signed-off-by: Andrey Semashev <andrey.semashev@gmail.com>
2021-12-22 13:18:30 +03:00
74b7fc748b Moving task_group_exptensions out of the preview (#668)
Moving task_group_exptensions out of the preview

- moved all but :
  - is_inside_task
  - scheduller bypass

- replaced exceptions with asserts for undefined behavior
 - made some flags in the tests non-atomic for TSAN to raise a flag if
implementation is incorrect

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
Co-authored-by: Ilya Isaev <ilya.isaev@intel.com>
Co-authored-by: Alex <alexei.katranov@intel.com>
2021-12-21 12:03:42 +03:00
Alexandra 6563a2225b Update README.md (#674)
* Update README.md

Signed-off-by: Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2021-12-21 11:28:07 +03:00
Khem Raj 883c2e5245 Musl/linux can not use RTLD_DEEPBIND (#684)
Exclude non-glibc linux systems along with android
Fixes
src/tbb/dynamic_link.cpp:417:29: error: use
 of undeclared identifier 'RTLD_DEEPBIND'                                                                                    |             flags = flags | RTLD_DEEPBIND;
|                             ^

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-12-15 19:08:07 +03:00
Ilya MishinandSerov, Vladimir 0815661e4c Fix limiter_node decrementer (#647)
* Fix limiter_node decrementer

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Fix align

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* add new variable for check unused decrements

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove iostream

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove unnesessary cast

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* align whitespaces

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Fix whitespace alignment

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>

* Revert workaround for GCC

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>

Co-authored-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-12-13 11:59:05 +03:00
Vladimir Serov 6edb5c3ae9 Deallocate object with based on actual type (#667)
* Deallocate object with based on actual type

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-12-13 11:58:32 +03:00
Alexandra 56d44d28bb Restructuring the docs (#683) 2021-12-10 16:41:38 +03:00
Vladimir Serov 952845afef Suppress data race during ittnotify initialization (#659)
Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-12-08 12:33:41 +03:00
Ilya MishinandAleksei Fedotov 324afd9e4d Catch exception in lightweight node (#623)
* Add raii to aggregator to prevent stuck

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Add test

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Reuse tbb raii guard

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Add header

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* execute_and_wait lightweight task

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove unused headers

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove space

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove std::function

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* noexcept lightweight body

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix cmake

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix space

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* gcc error

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* declval gateway_type

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* new tests

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* template tests

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* macro TBB_USE_EXCEPTIONS

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Apply suggestions from code review

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2021-12-08 11:46:43 +03:00
Ivan Kochin 4eec89fe7a Check the swappable requirement for the parallel_sort algorithm (#656)
Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-12-06 17:43:26 +03:00
مهدي شينون (Mehdi Chinoune) f5de7b039e Copy tbb.lib only with MSVC (#679) 2021-12-06 17:22:05 +03:00
Andrey Semashev b7a062e2d9 Use memalign, posix_memalign and _aligned_malloc to allocate aligned memory. (#671)
This uses the standard allocator for allocating and freeing memory with
higher alignment requirements instead of the hand-rolled implementation.

Signed-off-by: Andrey Semashev <andrey.semashev@gmail.com>
2021-12-03 16:44:04 +03:00
kboyarinov fc8717e18c Move heterogeneous extensions from preview (#672) 2021-12-03 15:20:05 +03:00
Ilya Isaev 2713d41e4c Fix incorrect definition of assignment operator in containers (#676)
* Fixed incorrect definitions of assignment operators in associative containers.

This fixes incorrect return types of assignment operators imported from
base classes. Other than copy and move assignment operators, which are
generated by the compiler even if imported with a using-declaration,
the imported operators will be returning a reference to the base class
instead of the derived class.

Fixes https://github.com/oneapi-src/oneTBB/issues/372.

Signed-off-by: Andrey Semashev <andrey.semashev@gmail.com>
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-12-02 13:02:24 +03:00
Ilya Isaev cf0a673956 collaborative_call_once: alignment with Spec 1.1 (#662)
collaborative_call_once is moved from preview. Also added conformance_collaborative_call_once test file

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-11-29 12:33:09 +03:00
Alexandra fb8ae3b97d Update RELEASE_NOTES.md (#670)
Signed-off-by: Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com
2021-11-24 16:09:49 +03:00
Pavel Kumbrasev 3ab999a0a7 Move mutexes out of preview (#666)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-11-22 11:52:52 +03:00
Alexandra 46d3acde26 Update conf.py (#664)
* Signed-off-by:Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com

* Update conf.py

* Update conf.py
2021-11-19 17:11:53 +03:00
AlexandAnton Potapov 7631793a32 Fix stack overflow protection mechanism (#553)
* Fix stack size calculation

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
Co-authored-by: Anton Potapov <anton.potapov@intel.com>
2021-11-19 15:07:25 +03:00
Alexandra 3692900c51 Update README.md (#663)
* Update README.md

* Update README.md
2021-11-18 11:34:24 +03:00
AlexandraandAlexey Veprev 25f8494f45 Installation Guide (#630)
* Installation Guide

* Update INSTALL.md

* Update README.md

* Update INSTALL.md

* Update INSTALL.md

* Update INSTALL.md

* Update INSTALL.md

* Update INSTALL.md

Co-authored-by: Alexey Veprev <alexey.veprev@intel.com>

* Update INSTALL.md

* Update README.md

* Update INSTALL.md

* Update README.md

Co-authored-by: Alexey Veprev <alexey.veprev@intel.com>
2021-11-18 11:18:41 +03:00
Sergey Zheltov 252ee0d301 CMake: fix warning 'LNK4044: unrecognized option /openmp' (#661)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2021-11-17 20:27:54 +03:00
Alexandra 7b3cb6747d New docs and update README.md (#660)
* Signed-off-by:Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com

* Update SYSTEM_REQUIREMENTS.md

* Update SYSTEM_REQUIREMENTS.md
2021-11-17 12:10:00 +03:00
Ivan Kochin bd4fb54e72 Disable the TBBbind target during the static library build (#658)
* Disable the TBBbind target during the static library build

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-11-16 21:15:11 +03:00
588c6a9f8b task_group extensions: documentation for task_group::run_and_wait(task_handle&&) method (#563)
* task_group extensions:

	- documentation for task_group::run_and_wait(task_handle&&) method

Co-authored-by: Alex <alexei.katranov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2021-11-16 16:42:02 +03:00
Alexandra b2cbc926ec Update conf.py (#652)
* Update conf.py

* static folder
2021-11-16 12:52:17 +03:00
Alexandra 7dee0fbd15 Update index.rst (#655)
Signed-off-by: Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com
2021-11-16 11:20:12 +03:00
Ivan Kochin 9052aaabd9 Remove several redundant steps inside the parallel_sort algorithm (#657)
Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-11-16 09:40:53 +03:00
AndrewDeanMSandAndrew Dean 2915b9b93f CMake: add option TBBMALLOC_PROXY_BUILD (#586)
Signed-off-by: Andrew Dean <Andrew.Dean@microsoft.com>

Co-authored-by: Andrew Dean <Andrew.Dean@microsoft.com>
2021-11-12 22:57:58 +03:00
Ilya Isaev 51277f0e58 Fix typo in detail/_config.h (#645)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-11-09 18:33:27 +03:00
Julien Schueller ce47617377 Fix build with MinGW (#618)
Signed-off-by: Julien Schueller <schueller at phimeca dot com>
2021-11-09 17:14:14 +03:00
Ilya Isaev c8211a2168 Fix code coverage on macOS (#643)
Changed macro logic to let bool governor::wait_package_enabled() be called on macOS

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-11-09 15:44:36 +03:00
Ilya Isaev e82d250338 Check presence of Hugepagesize field (#594)
Don't enable HP and THP support if there is no Hugepagesize field in /proc/meminfo
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-11-02 23:02:53 +03:00
Ganael Laplanche cb885710ab Fix build on FreeBSD (#613)
__unix__ is defined on FreeBSD and makes #elif __FreeBSD__ section skipped

Signed-off-by: Ganael Laplanche <ganael.laplanche@martymac.org>
2021-11-02 16:30:59 +03:00
Alexey Veprev cf29ce8177 PR template: add signed-off-by checkbox (#638)
Signed-off-by: Veprev, Alexey alexey.veprev@intel.com
2021-11-02 16:20:36 +03:00
Alexey Veprev 8c9445dee5 CMake: add python_build target to ALL (#635)
Signed-off-by: Veprev, Alexey alexey.veprev@intel.com
2021-10-29 15:45:40 +03:00
Ivan Kochinandkboyarinov b95bbc9c9f Rvalue and constant ranges support for the tbb::parallel_sort algorithm (#605)
* Use forwarding reference for the parallel_sort overload that takes range

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
Co-authored-by: kboyarinov <konstantin.boyarinov@intel.com>
2021-10-29 11:52:42 +03:00
Alexandra 7c7be274a1 Create Bazel.md (#632) 2021-10-28 12:29:33 +03:00
Ivan Kochin 6feeba8035 Use native CMake way to detect the IPO support (#608)
* Use native CMake way to detect the IPO support

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-10-27 17:23:32 +03:00
Vertexwahn 01a68ed7b3 Improve Bazel support (#592)
* Improve Bazel build documentation
* Update Bazel version
* Add support for waitpkg to the Bazel build
2021-10-25 23:03:13 +03:00
Ilya Isaev ba947f1806 Changes in code after applying some clang-tidy check fixes (#620)
Applied fixes from clang-tidy(readability and modernize)

Signed-off-by: Ilya Isaev ilya.isaev@intel.com
2021-10-21 12:43:09 +03:00
Ilya Mishin adf44fbf25 Clang-format sudoku example and fix CI check (#629)
* Clang-format sudoku example

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* try use clang-format-10

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* one more pointer

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* check clang-format

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* check clang-format-10

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-10-20 15:10:54 +03:00
Vladislav Shchapov d439ddfb80 Fix build error if defined _WIN32_WINNT (#603)
- define NOMINMAX in the tests if not defined
2021-10-20 11:53:03 +03:00
Ivan Kochin 963dfbf770 Remove wrong "global" entry point from the tbbbind entry points list on Windows (#626)
Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-10-20 10:40:13 +03:00
Ilya Isaev 15c838cea3 vars.bat: fix issue with no TBB in PATH (#622)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-10-19 16:31:53 +03:00
Alexey Veprev 1b41b7e6cc Update version to 2021.6 (#621)
Signed-off-by: Veprev, Alexey <alexey.veprev@intel.com>
2021-10-18 18:37:23 +03:00
Ilya Mishin a1f53c8fa2 Remove tbbproxy library dependency from nuget package (#619)
Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-10-14 17:33:47 +03:00
Ganael Laplanche c4a42feb53 Fix FreeBSD/amd64 build on 13-STABLE and 14-CURRENT (clang >= 12.0.1) (#614)
Fix build on FreeBSD/amd64 with clang >= 12 or gcc >= 11
2021-10-14 14:11:56 +03:00
Ilya Mishin 106e08a45a Fix memory leak in sudoku example (#607)
* Fix memory leak in sudoku example

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* right macro

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove iostream

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove hardcoded value

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* do one board copy instead of three copies

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* make task_group local

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-10-14 12:30:40 +03:00
vlserov 1168c5cb83 Clang13 warnings fixing (#612)
Resolved warnings: deprecated-copy, unused-but-set-variable

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-10-13 19:14:42 +03:00
Ilya Isaev 155a9af909 vars.bat: add variable with full path to DLLs (#611)
Signed-off-by: Ilya Isaev ilya.isaev@intel.com
2021-10-13 13:23:13 +03:00
Ilya Isaev ef970eb0d9 Detect 32 bit x86 systems while adding -mwaitpkg option (#609)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-10-08 11:40:15 +03:00
Sergey Zheltov b61fd08145 CMake: disable build of tbbmalloc_proxy on Windows ARM64 (#604)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2021-10-07 19:26:03 +03:00
Felix Yan 6fad69889d Define ITT_ARCH_IA64 when undefiend (#550) 2021-10-07 09:16:16 +03:00
Anton PotapovandPavel Kumbrasev 3c20b8f0b2 Revamp left over removal (#602)
* Revamp left over removal

Signed-off-by: Anton Potapov <anton.potapov@intel.com>

Co-authored-by: Pavel Kumbrasev <pavel.kumbrasev@intel.com>
2021-10-06 12:44:31 +03:00
Ivan Kochin 70bf10c0a9 Include missed <cstdint> header to oneapi/tbb/info.h (#601)
This header is required to use `intptr_t`.
2021-10-04 18:59:40 +03:00
Alexandra 144f75fd65 Clean-up (#598) 2021-10-01 19:40:53 +03:00
Alexandra b3d63b7a7f Update conf.py (#597) 2021-10-01 17:42:30 +03:00
Alex a8206f8540 Skip leak test in test_arena_constaints with tsan (#595)
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-10-01 13:07:21 +03:00
Anton Potapov 4ca7d964db Fixed possible buffer overrun in dynamic_link (#591)
Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-09-30 15:51:05 +03:00
Ilya Isaev c09c4163ca Use yield function from tbb in tbbmalloc (#590)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-09-30 09:11:34 +03:00
Vertexwahn 5ab8e5f6ea Fix spelling (contex -> context) (#593) 2021-09-30 08:37:33 +03:00
Pavel Kumbrasev f13f3ef35a Correct commit_wait in rml_monitor (#581)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-09-29 14:49:27 +03:00
Ilya Isaev d65c9b3a5f Fix test_tbb_header compiling on Windows with IntelLLVM (#589)
Fixed compilation error on Windows while compiling with IntelLLVM compiler: "#include resolved using non-portable Microsoft search rules"

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-09-28 18:09:51 +03:00
Ilya Mishin e6162e8838 Fix comment in test_limiter_node (#585)
Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-09-24 17:43:45 +03:00
Sergey Zheltov 43169c243f CMake: fix compile options for Windows ARM64 (#579)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2021-09-16 19:18:49 +03:00
Alexandra 5d7abed881 Update index.rst (#578) 2021-09-15 12:46:54 +03:00
Anton PotapovandAlexandra f580ec8edb DOC: Migration guide: Deferred task creation (#537)
- added Deferred task creation chapter

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-09-14 21:53:25 +03:00
Anton Potapov c4a120705f [DOC]: Update Get Started Guide (#575)
- added code sample
2021-09-14 18:33:42 +03:00
Alexandra 3b1bc31f45 [DOC]: Update Get Started Guide (#564) 2021-09-14 16:55:00 +03:00
e8037363ac DOC: Migration guide chapter for Scheduler Bypass (#525)
* DOC: Migration guide chapter for Scheduler Bypass

Signed-off-by: Anton Potapov <anton.potapov@intel.com>

* DOC: Migration guide chapter for Scheduler Bypass

Minor code cleanups for code samples

Co-authored-by: Pavel <pavel.kumbrasev@intel.com>
Signed-off-by: Anton Potapov <anton.potapov@intel.com>

* DOC: Migration guide chapter for Scheduler Bypass

- fixed wording

Co-authored-by: Alex <alexei.katranov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

* DOC: Migration guide chapter for Scheduler Bypass

- fixed wording

* DOC: Migration guide chapter for Scheduler Bypass

- fixed code sample
- add sentence about what defer is doing

Signed-off-by: Anton Potapov <anton.potapov@intel.com>

* DOC: Migration guide chapter for Scheduler Bypass

- fixed wording

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>

Co-authored-by: Pavel <pavel.kumbrasev@intel.com>
Co-authored-by: Alex <alexei.katranov@intel.com>
Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2021-09-14 15:57:16 +03:00
Alexandra 0a57bda871 Update index.rst (#572) 2021-09-14 11:08:07 +03:00
Ekaterina Mekhnetsova 4624e4ff59 Remove old tms configurations (#571)
* Remove old tms configurations

* Update custom.js
2021-09-10 13:50:24 +03:00
Ilya Mishin 7567de93ae Workaround gcc bug in test_limiter_node (#569)
* Workaround gcc bug in test_limiter_node

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* unify workaround

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-09-07 18:29:59 +03:00
Alex 97ac8f4324 Disable RTM based tests under TSAN (#567)
* Disable RTM based tests (speculative mutexes) under TSAN

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-09-07 11:26:55 +03:00
PavelandAlex 40a9a10600 Fix memory semantics in queuing_rw_mutex (#552)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

Co-authored-by: Alex <alexei.katranov@intel.com>
2021-09-03 17:05:11 +03:00
Alexey Oralov 5d8ddb3fb6 Add PR template (#554)
Signed-off-by: Alexey Oralov alexey.oralov@intel.com
2021-09-03 09:25:41 +03:00
vlserovandpavelkumbrasev 4d3f9752d0 Performance: Avoid lock during working with multiple arenas (#562)
Synchronization order of calls function market::adjust_demand should
be made for arena, not for the market itself.

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-09-02 15:22:24 +03:00
Ekaterina Mekhnetsova 0a2b398702 Add analytics script for documentation (#561)
* Add analytics script for doc

* Update layout.html
2021-09-02 13:45:25 +03:00
Alexey Veprev 497a2b1695 Update version to 2021.5 (#559)
Signed-off-by: Veprev, Alexey <alexey.veprev@intel.com>
2021-09-01 17:07:44 +03:00
Pavel 86fe3f04c1 Fix arena layout (#557)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-08-31 15:03:40 +03:00
Anton PotapovandAlex dd8f8a7826 task_group extensions run_and_wait(task_handle&&) method (#538)
* task_group extensions:

- added task_group::run_and_wait(task_handle&&) method

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
Co-authored-by: Alex <alexei.katranov@intel.com>
2021-08-31 14:51:53 +03:00
Ilya Isaev f81abcb640 Increase number of iterations to cover 'resume_node::reset' call (#551)
Increased number of iterations to have a more stable coverage of resume_node::reset() function.

Signed-off-by: Ilya Isaev ilya.isaev@intel.com
2021-08-30 13:54:46 +03:00
Ilya Mishin 6aab19f72a Cover remove_edge with successor::input_ports_type (#549)
Signed-off-by: Ilya Mishin <ilya.mishin@intel.com>
2021-08-27 12:59:13 +03:00
Alexandra a6b90fc9f5 Contribution guidelines (#506)
* Signed-off-by:Alexandra Epanchinzeva alexandra.epanchinzeva@intel.com

* Minor fixes

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md
2021-08-26 17:55:23 +03:00
Ivan Kochin 1ea36d9e9d Cover the constraints_threads_per_core() reserved interface by testing (#544)
* Cover the constraints_threads_per_core reserved interface by testing

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-08-25 13:12:07 +03:00
Ilya IsaevandAlex 9924f9e808 Fix static build on Windows (#543)
This patch fixes issue with reference leak reported by test_global_control and test_tbb_fork on static build.

Signed-off-by: Isaev, Ilya ilya.isaev@intel.com

Co-authored-by: Alex <alexei.katranov@intel.com>
2021-08-24 14:23:05 +03:00
Ekaterina Mekhnetsova b60c4d3631 Update conf.py (#545) 2021-08-24 10:40:49 +03:00
Ekaterina Mekhnetsova 0695d176ff DOC: Add a link to Intel cookies (#542)
* Add a link to Intel cookies

* Update syntax
2021-08-24 10:29:57 +03:00
Pavel c6045a4f6f Fix using tbb::this_task_arena::current_thread_index() with uninitilized arena (#541)
Fix using tbb::this_task_arena::current_thread_index() with uninitilized arena
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-08-23 09:48:35 +03:00
vlserov d2405e35d1 Remove unused template class tls (#536)
Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-08-18 10:46:17 +03:00
Ilya Mishin de0109bed0 Improve Flow Graph conformance tests (#410)
* continue and function node

* multifunction node

* input node

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* buffering nodes

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* new input and output messages

* service nodes

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* green CI

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* graph reset tests

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* additional reset tests

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix codestyle issues

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* copy constructor fix

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* sfinae fix

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix unique_ptr on cxx11

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* style fixes

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* copy_constructor fix

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix atomic initialization

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fid data race

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-08-12 11:29:31 +03:00
AlexandAlexandra b44f164b5c [DOC] Fix task_scheduler_handle description (#509)
* [DOC] Fix task_scheduler_hadnle description

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>

Co-authored-by: Alexandra <alexandra.epanchinzeva@intel.com>
2021-08-12 10:51:15 +03:00
Sergey Zheltov 1167f54bdf CMake: suppress alignment warning for ARM64-MSVC (#532)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2021-08-11 20:39:08 +03:00
Ilya Isaev 8584c45634 Code coverage fixes (#516)
In scope of this patch TBB_BUILD and TBBMALLOC_BUILD options were added. It was done to support scenarios when we are testing without tbbmalloc. It allows us to cover place where we fail to link with tbbmalloc and start using std_cache_aligned_allocate/deallocate.

Signed-off-by: Ilya Isaev ilya.isaev@intel.com
2021-08-09 11:52:01 +03:00
Ilya Mishin 1ecde27f49 Fix inclusive language usage issues in tbbmalloc (#522)
Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-08-06 11:45:00 +03:00
vlserov 5a643c2360 GCC 11: suppress stringop-overread warning (#519)
1. Using thread_local for non-pointer types instead of tbb::detail::r1::tls
2. Replace magic-value with valid pointer

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-08-05 15:57:27 +03:00
Alexey Veprev 357c9b27fa Update version number for 2021.4 (#520)
Signed-off-by: Veprev, Alexey alexey.veprev@intel.com
2021-08-02 18:20:31 +03:00
Alex 4df48f9850 Fix a race condition in AddrRange in tbbmalloc (#518)
The change fixes a possible crash of realloc when replaced with tbbmalloc_proxy on Linux.

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-07-30 21:09:57 +03:00
Pavel 552f342b26 Add workaround for incorrect soft limit initialization (#512)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-07-30 15:59:06 +03:00
Alexandpavelkumbrasev 34c7d170ca Add heavy mix test for the scheduler (#490)
The test found a couple of issues that are also addressed in the patch

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-07-30 15:58:14 +03:00
Ivan KochinandAlexey Veprev 7ec3cf8408 Fix the HWLOC linking when it was found using pkg-config (#508)
* Use imported target instead of variables during the HWLOC search using pkg-config
* Remove redundant code + rephrase the description
* Fix the indentation
* Rework testing

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>

Co-authored-by: Alexey Veprev <alexey.veprev@intel.com>
2021-07-30 15:21:15 +03:00
Ilya Mishin a070e5f208 Fix optimization flag on icx Windows Release build (#513)
Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-07-29 15:50:48 +03:00
Michael Vitrano 7d70bb51c3 Support building for Windows ARM64 (#507)
* Support building for Windows ARM64

Signed-off-by: Michael Vitrano <michaelvitrano@gmail.com>
2021-07-26 18:23:29 +03:00
Ivan Kochin b53726aac7 Prevent linking HWLOC 2.4 with tbbbind_2_5 (#501)
* Prevent linking HWLOC 2.4 with tbbbind_2_5
* Fix typo
* Rename and extend the comment

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-07-23 14:49:49 +03:00
vlserov fcb8377bee ASAN: test_task_group timeout (#502)
Disable memory leak tests under ASAN

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-07-22 14:41:20 +03:00
Ilya Mishin dbccbee9f5 ICX compiler support on windows (#499)
* Support ICX on windows

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* clang macro

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* update compiler map

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix intptr_t

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix duplicate

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix spaces

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* fix spaces 2

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* update style

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Update CMakeLists.txt

* Update test_openmp.cpp
2021-07-22 10:43:27 +03:00
Ivan Kochin edc30c82a1 Bind internal pinning observer lifetime to internal arena (#488)
* Bind internal pinning observer lifetime to the internal arena
* Control the tbbbind system_topology lifetime manually
* Fix entry point name
* Apply review remarks:
 * rename platform_topology to system_topology inside tbbbind
 * other minor fixes

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-07-21 23:01:03 +03:00
7941f880cb Fix build and tests of statically linked oneTBB (#492)
Fix build of libraries and tests while linking statically.

Signed-off-by: buzyaba <isaev.ameninc@gmail.com>

Co-authored-by: Alexey Veprev <alexey.veprev@intel.com>
Co-authored-by: buzyaba <isaev.ameninc@gmail.com>
2021-07-21 15:56:23 +03:00
8827ea7d1d Add export attributes + bug fixes (#351)
* Change (_WIN32 || _WIN64) to (_WIN32)

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add _MSC_VER guards around #pragma warning directives

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Tweak MUTEX_INITIALIZER to suppress warnings

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Undefine PATH_MAX before redefining to suppress warnings

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Wrap #undef PATH_MAX

Co-authored-by: Alex <alexei.katranov@intel.com>

* Add lib prefix to dll names on mingw

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Quote LINK_FLAGS and LINK_DEPENDS to avoid space in paths problem

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Move #include <cstring> outside of #if _WIN32 block

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* wchar_t everywhere

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add export attributes

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Tweak export macros

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add export directives to tbbmalloc

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Wrap version script arguments + Undefine __STRICT_ANSI__

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Export directives for tbbbind

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Temporarily disable def files flag

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Fix __STRICT_ANSI__ undefine

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Fix macro in spin_mutex.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add export directives to task_group.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add waitpkg detection

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Tweak x86_64 detection

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Fix -U__STRICT_ANSI__ again

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Do not link with dl on mingw

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add extra include files for allocator.cpp

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add export directives for version.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Move export directives macro to a separate file

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Split export directives into separate macros

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Remove tbbmalloc symbols from proxy.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Replace TBBMALLOC_EXPORT with TBB_EXPORT in tbb_allocator.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Include scalable_allocator.h in tbbmalloc.cpp

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Disable C4275 in _exception.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add export directives for is_writer

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add export directives for _waitable_atomic.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Create macro for tbbbind

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Include <new> in scalable_allocator.h

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add export case for Apple OS

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add VERSION and SOVERSION

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Fix warnings under MSYS2 + GCC 10.3.x

* Trying to fix Linux CI

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Remove std::this_thread::yield() dependency on Windows

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Apply suggestions + fix typo

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Add def file flags back in

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Tweak export directives mechanism

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

* Change bool to auto to prevent warnings on VS2015

Signed-off-by: Long Nguyen <nguyen.long.908132@gmail.com>

Co-authored-by: Alex <alexei.katranov@intel.com>
Co-authored-by: Vittorio Romeo <vittorio.romeo@outlook.com>
2021-07-21 10:04:02 +03:00
Alexandpavelkumbrasev a080baf996 Additional set of Thread Sanitizer related fixes (#482)
- Fix incorrect assert in concurrent_hash_map implementation
- Fix incorrect asserts in global_control implementation
- Fix exception pointer inside task_group_context
- Rework racy asserts in test_flow_graph_whitebox
- Improve test_eh_algorithm to work with sanitizers
- Disable memory limit test in test_malloc_compliance
- Add lifetime asserts in collaborative_call_once
- Rework backref space in tbbmalloc to use atomics
- Fix a lifetime issue in utils::SpinBariier
- Some tests were disabled

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-07-19 14:47:09 +03:00
Ilya Isaev 9cef57778c Workaround non-zero exit code (#496)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-07-19 09:19:45 +03:00
Ilya Isaev e279ae19cb Remove dead code for code coverage (#497)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-07-19 09:12:58 +03:00
Ilya Mishin 1098f48187 Fix failed test_limiter_node on gcc10,11 release build (#493)
Signed-off-by: ilya.mishin <ilya.mishin@intel.com>
2021-07-16 18:00:30 +03:00
Olga Malysheva a85a8bd32f Update third-party-programs.txt (#495)
Signed-off-by: Olga Malysheva <Olga.Malysheva@intel.com>
2021-07-16 16:29:00 +03:00
Ilya Isaev 35147e0021 Simplify synchronization logic in task_group_context (#462)
The current synchronization in task_group_context made by more then one atomic variable. This code hard to debug and each ThreadSanitizer report in this code usual require unreadable workaround to fix it. To improve correctness and readability of this code it was decided to rewrite synchronization using mutex.

Signed-off-by: Ilya Isaev ilya.isaev@intel.com
2021-07-16 12:03:21 +03:00
vlserov 68e075cbb9 ASAN: leak in test_arena_constraints/conformance_arena_constraints (#484)
Memory leak has been caused by ThirdParty library.
Adding LSAN suppression list for filter known issues.

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-07-14 09:10:47 +03:00
Pavel b3fb839485 Enable thread-based resumable tasks under ASan (#486)
Signed-off-by: pavelkumbrasev <pavel.kumbrasev@intel.com>
2021-07-09 15:26:02 +03:00
Vertexwahn 6164044548 Add support for Bazel build (#442)
Signed-off-by: Vertexwahn <julian.amann@tum.de>
2021-07-08 11:04:01 +03:00
Alex 8e7f9e14ba Fix internal allocator related issues (#480)
*For some reason, GCC does not instrument tbbmalloc with TSan when lto is enabled.
*Fix race in internal allocator on handler pointer initialization.
*Simplify checks in conformance_parallel_for

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-07-08 09:32:20 +03:00
Ivan Kochin a3151ce8ac Fix tests compilation on FreeBSD (#425)
* Use right affinity mask type during tests compilation on FreeBSD
* Disable priority inversion testing on FreeBSD
* Fix test_malloc_compliance compilation
* Add TODO, remove redundant blank line

Signed-off-by: Kochin, Ivan <kochin.ivan@intel.com>
2021-07-08 08:01:30 +03:00
43c1805ec6 Add thread based resumable tasks (#479)
Co-authored-by: vlserov <vladimir.serov@intel.com>
Co-authored-by: pavelkumbrasev <pavel.kumbrasev@intel.com>

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-07-07 09:11:23 +03:00
Ilya Mishin c94904e909 oneAPI pkg-config support (#452)
* oneAPI pkg-config support

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* tbb and tbb32

* remove uwp

* remove unnecessary variable

* define variable

* correct install

* remove exec_prefix

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* new path

* update vars

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* absolute paths for CMAKE_INSTALL_*DIR

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove )

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-07-06 18:43:44 +03:00
Alexey Oralov c75ed5bf40 Update path to archive (#483)
Signed-off-by: Alexey Oralov alexey.oralov@intel.com
2021-07-06 13:38:13 +03:00
Alexey Oralov 055cc6eaa0 CI: enable publishing of documentation on pages (#473)
Signed-off-by: Aleksey Oralov <alexey.oralov@intel.com>
2021-07-06 13:05:41 +03:00
Ivan Kochin 07300f7eab Prevent vars generation conflict (#469)
Signed-off-by: Kochin, Ivan <kochin.ivan@intel.com>
2021-07-06 07:33:42 +03:00
Alexey Veprev a3a6cd638d CMake: fix path to tbb.pc.in file (#476)
Signed-off-by: Veprev, Alexey <alexey.veprev@intel.com>
2021-07-05 17:23:29 +03:00
Alex 59ac78fa87 Fix flow graph tests under Thread Sanitizer (#444)
* Fix fg tests under tsan

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-07-05 11:49:17 +03:00
Pablo Romero 734f0bc0be Add support for QNX Neutrino (#440)
* Added support for QCC (QNX GNU Compiler)
* Enable source code compilation with non-Linux Unix systems with special focus on QNX.

Signed-off-by: promero <promero@mathworks.com>
2021-07-02 18:44:55 +03:00
vlserov de8bf52c4a ASAN: test_handle_perror (#472)
test_handle_perror doesn't depend on TBB library.
Only include paths are required.

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-07-02 15:13:20 +03:00
Ivan Kochin c646de018a Fix LTO flags for Visual Studio compilation with old Cmake versions(<3.13) (#471)
Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-07-01 18:22:16 +03:00
Ivan KochinandAleksei Fedotov e96dbf4b48 Upgrade from HWLOC 2.4 to HWLOC 2.5 (#448)
* Upgrade from HWLOC 2.4 to HWLOC 2.5
* Introduce tbbbind_2_5 library
* Remove tbbbind_2_4 library
* Use the HWLOC_TOPOLOGY_FLAG_RESTRICT_TO_CPUBINDING topology flag (introduces as a part of HWLOC 2.5) to restrict topology discovering to process binding
* Fix testing on Linux
* Apply review comments
* Improve wording: variable -> substring
* Use right tbbbind version for incompatible hwlocs test
* Rework option semantic
* Update README.md for CMake
* Rework readme
* Update cmake/README.md

Signed-off-by: Kochin, Ivan <kochin.ivan@intel.com>

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2021-07-01 15:07:39 +03:00
vlserov 94b62cc1d8 ASAN: test_malloc_whitebox (#467)
Reverting ASAN fix for test_malloc_regression #415
Turn off memory leaks test in test_malloc_regression test case

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-07-01 11:31:04 +03:00
Ilya Isaev 112076d06c Improve code coverage (#463)
Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-07-01 10:09:04 +03:00
kboyarinov 4a23d00235 Multiple fixes for constraints (#465)
* Fix a typo in chmap, temporary rename concept range

* Rename range concept, add workaround for Windows

* Reimplement with respect to prospective destructors

* Fix fibonacci
2021-06-30 16:22:06 +03:00
Ivan Kochin a3635ce50b Fix LTO flags on Windows for old CMake versions (#466)
* Fix LTO flags for old CMake versions
* Update cmake/README.md

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-06-30 01:01:00 +03:00
Mircho Rodozov fa944e1960 Remove arch macros checks for getSmallObjectIndex (#461)
Remove arch macros checks for getSmallObjectIndex 

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-06-29 21:09:43 +03:00
Ivan Kochin 3e4ab55091 Fix dlopen flags for loading tbbmalloc and rml (#457)
* Fix dlopen flags for loading tbbmalloc and rml
* Rework macro definition approach
* Use correct macro name

Signed-off-by: Kochin, Ivan <kochin.ivan@intel.com>
2021-06-29 09:41:39 +03:00
Alexey Oralov 67c1171696 Add build documentation to CI (#423)
Signed-off-by: Aleksey Oralov <alexey.oralov@intel.com>
2021-06-28 17:44:37 +03:00
Anton Potapov c0b91bdba9 ASAN: disable OOM test in test_malloc_compliance (#459)
Out Of Memory conditions simulated in the ReallocParam test breaking ASAN, so skip this case under it.

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-06-28 10:25:55 +03:00
Anton Potapov 3a47fb3718 ASAN: disable test_malloc_overload (#458)
- ASAN overload malloc/free, so test is no longer test TBBMalloc

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-06-28 10:21:31 +03:00
Anton Potapov 3a6580652d ASAN: disable tests causing OOM conditions (#456)
- do not run theses tests under ASAN :
   - test_eh_thread
   - test_malloc_new_handler

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-06-25 12:05:27 +03:00
Alex 2ca2a5f206 Fix leaking proxy task objects (#431)
* Fix leaking proxy task objects

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-06-25 09:15:57 +03:00
Ivan Kochin 0354fc109f Solve the issue with different incompatible HWLOC library versions in one executable (#426)
* Solve the issue with different incompatible hwlocs in one executable
* Support macOS and Windows
* Fix flags on Windows and MacOS
* Try to fix Windows compilation
* Add warning suppression
* Rename the CMake variable
* Fix the RTLD_DEEPBIND flag placement condition
* Improve naming
* Change flags logic
* Suppress MSVC 2015 warning: 'int': forcing value to bool 'true' or 'false'

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
2021-06-23 19:45:29 +03:00
Anton PotapovandAleksei Fedotov 4386b0f0cd task_group extensions : task_handle comparison operators unit tests (#451)
* task_group extensions

- unit tests for empty check / comparison operators

Signed-off-by: Anton Potapov <anton.potapov@intel.com>

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2021-06-23 14:12:52 +03:00
kboyarinov 16b6a651a9 Fix error C3864 for constraints on Windows (#449)
* Fix Windows warning on constraints

* Fix whitespaces
2021-06-23 12:16:05 +03:00
Anton Potapov ec505c7d5a Workaround GCC 11 warning in concurrent_unordered_base (#447)
Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-06-22 12:16:57 +03:00
Ivan KochinandAnton Potapov e1b24895e6 SOM example: enable mandatory concurrency (#450)
SOM requires mandatory concurrency to prevent hanging on 1-threaded configurations since this example has cross-graph dependencies

* SOM example: enable mandatory concurrency
* Add include & define NOMINMAX
* Improve comment wording

Signed-off-by: Kochin Ivan <kochin.ivan@intel.com>
Co-authored-by: Anton Potapov <anton.potapov@intel.com>
2021-06-22 09:38:19 +03:00
Ivan Kochin ac3d43b691 Enable intermodular optimization during the compilation (#432)
* Enable IPO during the compilation
* Add compilation flag for clang++
* Rework CMake approach
* Disable LTO on Android due to Android NDK bug
* Remove redundant code

Signed-off-by: Kochin, Ivan <kochin.ivan@intel.com>
2021-06-21 12:23:49 +03:00
vlserov fbc48b39c6 ASAN: Use after scope in conformance_concurrent_queue (#435)
Updating concurrent_queue_rep to accept Allocator as a function parameter instead of holding reference to it.

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-06-18 10:21:25 +03:00
Sergey Zheltov 29009a8e51 Fix oneTBB package version in CMake integration (#446)
Signed-off-by: Zheltov, Sergey1 <sergey1.zheltov@intel.com>
2021-06-17 12:10:46 +03:00
Ilya Isaev 4beec37a1d Fix TSAN errors in collaborative_call_once (#445)
* Fix TSAN errors in collaborative_call_once

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-06-17 07:34:44 +03:00
Khem Raj 933a38a460 arena: Remove dead code (#429)
Fixes clang warning
arena.cpp:226:19: error: variable 'drained' set b
ut not used [-Werror,-Wunused-but-set-variable]
|     std::intptr_t drained = 0;
|                   ^

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2021-06-17 07:34:08 +03:00
Ilya Mishin 64715f43d8 Fix failed mips debug build (#443)
* Fix mips debug join_node tests

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Macro in header

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Macro name

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* Right macro

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove unnecessary macro

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* macro only in join_node test

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>
2021-06-16 12:09:09 +03:00
Alexandra 2526dcf136 Update README.md (#436)
* Update README.md
2021-06-10 15:05:29 +03:00
Ilya Mishin b36260b443 Enable all join_node constructors testing (#441)
* enable all constructors testing

Signed-off-by: Mishin, Ilya <ilya.mishin@intel.com>

* remove unnecessary definitions
2021-06-10 13:37:16 +03:00
vlserov 345a2204ca ASAN: skip test_malloc_atexit under ASAN (#434)
Skip test_malloc_atexit since it not applicable under ASAN.

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-06-10 12:05:36 +03:00
Alex 81dd27c4f6 Fix some gcc11 warnings (#433)
* Supress mallinfo deprecation warning in test_malloc_overload.cpp
* Fix warning in flow_graph_types_impl

Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-06-09 12:00:48 +03:00
Ivan Kochin 55f9b17864 Update doctest version to 2.4.6 (#413)
* Update doctest version to 2.4.6

Signed-off-by: Kochin, Ivan <kochin.ivan@intel.com>
2021-06-08 17:43:37 +03:00
PavelandAlexei Katranov 3119997522 Improve wakeup signal propagation in private server (#427)
* Improve wakeup signal propagation in private server

Signed-off-by: pkumbras <pavel.kumbrasev@intel.com>

Co-authored-by: Alexei Katranov <alexei.katranov@intel.com>
2021-06-07 16:51:19 +03:00
Rupanshu Yadav fc9a3bbc78 Fix grammatical mistake in README.md (#428) 2021-06-04 21:25:36 +03:00
Ilya MishinandAleksei Fedotov 25e2b1dd25 Fix negative delta in limiter_node decrementer (#422)
* fix negative delta in limiter_node decrementer

* add assert

* fix warning

* add new test

* refactor test

* more checks

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>

* counter to right place

* fix build

Co-authored-by: Aleksei Fedotov <aleksei.fedotov@intel.com>
2021-06-04 17:27:08 +03:00
vlserov 4b479c1e0b ASAN fix for test_malloc_regression (#415)
ASAN allocator never releases memory to OS, instead of it just marks those memory as "freed".
Generic OS functions for getting currently allocated memory aren't working correctly under ASAN.

- Using __sanitizer_get_current_allocated_bytes func instead of generic OS func for getting currently allocated memory

Signed-off-by: Serov, Vladimir <vladimir.serov@intel.com>
2021-06-02 16:55:58 +03:00
Ilya IsaevandAlex bf1f2ab6eb Add collaborative_call_once algorithm (#397)
collaborative_call_once is a function similar to std::call_once but allows waiting threads to join oneTBB parallel construction called inside the initializing functor. The semantics of exceptions is also similar to std::call_once: whenever the exception is thrown, it is rethrown on the initializing thread and this or other thread can try to call initializing functor again until it is completed without an exception.

This pull request integrates #357. It is reworked to avoid dynamic memory allocation and fit the state into one word (see state machine in #267).  In cooperation with @BenFrantzDale @HenryHeffanFormlabs

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>

Co-authored-by: Alex <alexei.katranov@intel.com>
2021-06-02 16:44:25 +03:00
Anton Potapov fde1856728 task_group extensions (task_handle) minor cleanups (#404)
- moved task_handle related stuff to separate header file
- replaced free standing helper functions with single "acessor" class
- removed needless condition in the ctx_of() function

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-06-01 15:34:30 +03:00
Anton Potapov 16350adcff ASAN: fix memory leak in concurrent_skip_list move assign operator (#409)
- delete head node as well beffore move assigning
 - introduced internal helper member function delete_head


Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-05-31 18:11:34 +03:00
Ilya Isaev 012aea0351 Fix shellcheck scan errors and warnings (#411)
* Fix shellcheck errors and warnings

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>

* Apply comments and parse args properly on ZSH

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>

* Parse ia32 via regex

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>

* arg_ia32 to tbb_arg_ia32

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>

* Fix indenting

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>

* Change regex

Signed-off-by: Ilya Isaev <ilya.isaev@intel.com>
2021-05-26 20:20:51 +03:00
Ivan KochinandAlex c52c62ba78 Remove the same test cases to fix MIPS compilation (#412)
* Remove the same test cases to fix MIPS compilation

* Update test/tbb/test_join_node_msg_key_matching.cpp

Co-authored-by: Ivan Kochin <iv.kochin@gmail.com>

Co-authored-by: Alex <alexei.katranov@intel.com>
2021-05-25 14:33:00 +03:00
Alexei Katranov 3b04521726 Fix atomic usage in conformance_parallel_pipeline
Signed-off-by: Alexei Katranov <alexei.katranov@intel.com>
2021-05-25 08:02:10 +03:00
Jan Tojnar fa3268c3df CMake/pkg-config: fix paths in .pc file with absolute GNUInstallDirs (#395)
Signed-off-by: Jan Tojnar <jtojnar@gmail.com>
2021-05-21 18:46:06 +03:00
Ivan KochinandKochin, Ivan 5d4a4acf95 Fix the logic that depends on optional copy elision (#402)
* Fix the behavior when copy elision is disabled

* Update test/tbb/test_task_arena.cpp

* Rework doctest ContextScope destruction to fix MSVC compilation

* Remove raii_guard assignment + remove std::move from doctest

* Fix typo

* Rework the fix for doctest to get rid of hangs on Windows

* Add static assertion to check constructors noexcept state

* Remove copy elision disabling flag

* Add a comment with the reason of absence of std::move

Co-authored-by: Kochin, Ivan <ivan.kochin@intel.com>
2021-05-21 12:37:58 +03:00
Anton Potapov 0063fb3c76 ASAN fix for test_eh_algorithm (fixup for #401) (#403)
- fixup for #401

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-05-21 12:03:25 +03:00
Anton Potapov d8251013ce ASAN use after scope fix for concurrent_skip_list (#400)
- removed reference to container allocator from skip_list_node
 - added special skip_list_node::create skip_list_node::destroy static
methods

 - moved concurrent_skip_list, *_map/*multimap, *set/*multiset into d2
namespace due layout change of skip_list_node


Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-05-21 10:50:08 +03:00
Anton Potapov 444fd2bd0f ASAN fix for test_eh_algorithm (#401)
- fixed read out of bounds

Signed-off-by: Anton Potapov <anton.potapov@intel.com>
2021-05-19 18:52:27 +03:00
Ilya Mishin 3e9e8c9c4d Add threshold requirement for eh tests (#399)
* Add threshold requirement for eeh tests

* typo error fix
2021-05-18 12:40:09 +03:00
Tobias Fischer c46e2aa03e Pull in https://github.com/oneapi-src/oneTBB/pull/299 2021-05-17 20:05:20 +03:00
Alexey Veprev a497817ca0 README: add CI status badge (#398)
Signed-off-by: Alexey Veprev <alexey.veprev@intel.com>
2021-05-17 14:39:38 +03:00
tbbdev 8b6f831c68 Commit oneTBB source code 5ba997e1 2021-05-17 10:52:00 +03:00
Sergey Zheltov 6aa706d879 CI: fix a typo in the job name (#392) 2021-05-07 21:24:55 +03:00
Sergey Zheltov 6caecf9630 CI: enable testing via GitHub Actions (#390) 2021-05-07 17:15:01 +03:00
tbbdev be66b3a1cf Commit oneTBB source code 614fdc20 2021-05-07 16:29:12 +03:00
tbbdev 478de5b188 Commit oneTBB source code 82ff8707 2021-05-05 10:28:54 +03:00
tbbdev 9e15720bc7 Commit oneTBB source code b0fb1535 2021-03-26 10:22:37 +03:00
tbbdev 4523a7615e Commit oneTBB source code 4fcd448a 2021-03-01 17:31:49 +03:00
tbbdev b15aabb39a Commit oneTBB source code 9ed4a21c 2021-01-26 15:10:57 +03:00
tbbdev d86ed7fbaa Commit oneTBB source code 09241505 2020-12-24 16:20:58 +03:00
tbbdev 8dcbd5b11b Commit oneTBB source code 8fda6294 2020-11-18 12:07:23 +03:00
tbbdev 49e08aac08 Commit oneTBB source code 6420d97a 2020-10-28 19:26:00 +03:00
tbbdev 51c0b2f742 Commit oneTBB source code 4ebd2d06 2020-09-25 11:03:12 +03:00
tbbdev 7a257a3ca0 Fix for README.md 2017-05-14 19:45:46 +03:00
2983 changed files with 266695 additions and 295494 deletions

No files matched your search

+1
View File
@@ -0,0 +1 @@
8.1.1
+7
View File
@@ -0,0 +1,7 @@
# Lines starting with '#' are comments.
# Each line is a file pattern followed by one or more owners.
# More details are here: https://help.github.com/articles/about-codeowners/
src/tbbmalloc @ldorau @lplewa @kfilipek
src/tbbmalloc_proxy @ldorau @lplewa @kfilipek
+7
View File
@@ -0,0 +1,7 @@
---
name: Ask a question
about: Use this template for any questions
title: ''
labels: 'question'
assignees: ''
---
+32
View File
@@ -0,0 +1,32 @@
---
name: Report a bug or a performance issue
about: Use this template to report unexpected behavior
title: ''
labels: 'bug'
assignees: ''
---
# Summary
Provide a short summary of the issue.
See the sections below
for factors important for the reproduction of an issue.
# Version
Report oneTBB version used to reproduce the problem.
# Environment
Provide any environmental details that you consider significant for reproducing the issue.
The following information is important:
* Hardware
* OS name and version
* Compiler version
# Observed Behavior
Document behavior you observe.
# Expected Behavior
Document behavior you expect.
# Steps To Reproduce
Check that the issue is reproducible with the latest revision
of the master branch. Include all the steps to reproduce the issue.
@@ -0,0 +1,19 @@
---
name: Request a feature
about: Use this template to request new functionality or change the behavior of the library
title: ''
labels: 'new feature'
assignees: ''
---
# Summary
Include a short summary of the request.
See the sections below
for factors important for a feature request.
# Problem Statement
Describe the problem you want to solve with a reasonable level of detail.
# Preferred Solution
Provide your ideas regarding problem solutions.
+20
View File
@@ -0,0 +1,20 @@
---
name: Request a documentation change
about: Use this template to report documentation issue or request documentation changes
title: ''
labels: 'documentation'
assignees: ''
---
# Summary
Include a short summary of the issue or request.
See the sections below
for factors important for a documentation
issue.
# URLs
Include pointers to documents that are impacted.
# Additional Details
Provide a detailed description of the expected changes in documentation
and suggestions you have.
+6
View File
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
+27
View File
@@ -0,0 +1,27 @@
# Copyright (c) 2023 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.
# PR template regexp's for issue labeler
bug fix:
- '\[(x|X)\]\sbug\sfix'
enhancement:
- '\[(x|X)\]\snew\sfeature'
tests:
- '\[(x|X)\]\stests'
infrastructure:
- '\[(x|X)\]\sinfrastructure'
documentation:
- '\[(x|X)\]\sdocumentation'
allocator:
- '\[(x|X)\]\sallocator'
+17
View File
@@ -0,0 +1,17 @@
# Copyright (c) 2023-2024 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.
allocator:
- changed-files:
- any-glob-to-any-file: ['src/tbbmalloc/**/*', 'src/tbbmalloc_proxy/**/*', 'test/tbbmalloc/**/*']
+38
View File
@@ -0,0 +1,38 @@
### Description
_Add a comprehensive description of proposed changes_
Fixes # - _issue number(s) if exists_
### Type of change
_Choose one or multiple, leave empty if none of the other choices apply_
_Add a respective label(s) to PR if you have permissions_
- [ ] bug fix - _change that fixes an issue_
- [ ] new feature - _change that adds functionality_
- [ ] tests - _change in tests_
- [ ] infrastructure - _change in infrastructure and CI_
- [ ] documentation - _documentation update_
### Tests
- [ ] added - _required for new features and some bug fixes_
- [ ] not needed
### Documentation
- [ ] updated in # - _add PR number_
- [ ] needs to be updated
- [ ] not needed
### Breaks backward compatibility
- [ ] Yes
- [ ] No
- [ ] Unknown
### Notify the following users
_List users with `@` to send notifications_
### Other information
+64
View File
@@ -0,0 +1,64 @@
#!/bin/bash
#
# Copyright (c) 2021-2025 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.
SCAN_TARGET=$1
SKIP_PATTERN='*/.github/*,*/test/common/doctest.*'
IGNORE_WORDS='parms,affinitized'
# Ignored cases
IGNORE_COMMAND="sed -e /.*\\sOd\\s*=.*/d \
-e /.*\\sOt\\s*=.*/d \
-e /.*\\siff\\s*=.*/d \
-e /.*\\sith\\s*=.*/d \
-e /.*\\scas\\s*=.*/d \
-e /.*\\sCAS\\s*=.*/d \
-e /.*\\ssom\\s*=.*/d \
-e /.*\\sSOM\\s*=.*/d \
-e /.*\\suint\\s*=.*/d \
-e /.*\\sUINT\\s*=.*/d \
-e /.*\\scopyable\\s*=.*/d \
-e /.*\\sCopyable\\s*=.*/d \
-e /.*\\sFo\\s*=.*/d \
-e /.*pipeline_filters.h.*nd\\s*=.*/d \
-e /.*ittnotify.h.*unx\\s*=.*/d \
-e /.*ittnotify.*.h.*hist\\s*=.*/d \
-e /.*bzlib.cpp.*MSDOS\\s*=.*/d \
-e /.*test_task.cpp.*tE\\s*=.*/d \
-e /.*backend.cpp.*resSize\\s*=.*/d \
-e /.*test_join_node.h.*Ned\\s*=.*/d \
-e /.*test_indexer_node.cpp.*OT\\s*=.*/d \
-e /.*allocator_stl_test_common.h.*Aci*\\s*=.*/d \
-e /.*seismic_video.cpp.*DialogBox\\s*=.*/d \
-e /.*test_composite_node.cpp.*que\\s*=.*/d \
-e /.*blocksort.cpp.*hiSt\\s*=.*/d \
-e /.*compress.cpp.*fave\\s*=.*/d \
-e /.*count_strings.cpp.*ue\\s*=.*/d \
-e /.*count_strings.cpp.*nd\\s*=.*/d \
-e /.*count_strings.cpp.*ths\\s*=.*/d \
-e /.*polygon_overlay\/README.md.*ist\\s*=.*/d \
-e /.*_pipeline_filters.h.*nd\\s*=.*/d \
-e /.*sub_string_finder\/README.md.*ba\\s*=.*/d
-e /.*frontend.cpp.*SEH\\s*=.*/d
-e /.*assert_impl.h.*statics\\s*=.*/d"
SCAN_RESULT=`codespell --quiet-level=2 --skip "${SKIP_PATTERN}" -L "${IGNORE_WORDS}" ${SCAN_TARGET}`
SCAN_RESULT=`echo -e "${SCAN_RESULT}" | ${IGNORE_COMMAND}`
echo "${SCAN_RESULT}"
if [[ ! -z ${SCAN_RESULT} ]]; then
exit 1
fi
+785
View File
@@ -0,0 +1,785 @@
# Copyright (c) 2021-2025 Intel Corporation
# Copyright (c) 2026 UXL Foundation Contributors
#
# 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.
name: oneTBB CI
on:
push:
branches: [master]
pull_request:
branches: [master]
types:
- opened
- synchronize
- reopened
permissions: read-all
env:
BUILD_CONCURRENCY: 2
MACOS_BUILD_CONCURRENCY: 3
TEST_TIMEOUT: 180
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ !contains(github.ref, 'refs/heads/master') }}
jobs:
codespell:
runs-on: [ubuntu-22.04]
timeout-minutes: 10
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run scan
run: |
set -e -x -o pipefail
sudo apt update && sudo apt install -y codespell
${GITHUB_WORKSPACE}/.github/scripts/codespell.sh `pwd`
examples_clang-format:
runs-on: [ubuntu-22.04]
timeout-minutes: 10
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run scan
run: |
set -e -x -o pipefail
command -v clang-format
cp -r examples examples_formatted
find examples_formatted -regex '.*\.\(cpp\|hpp\)' -exec clang-format -style=file -i {} \;
diff -r examples examples_formatted
documentation:
needs: [codespell]
env:
BUILD_TYPE: oss
runs-on: [ubuntu-latest]
timeout-minutes: 10
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install prerequisites
run: |
set -e -x -o pipefail
pip3 install -U Jinja2
pip3 install git+https://github.com/executablebooks/sphinx-book-theme.git
pip3 install sphinx_design
echo GITHUB_SHA_SHORT=${GITHUB_SHA::8} >> $GITHUB_ENV
mkdir html
- name: Build documentation
run: |
set -e -x -o pipefail
export BUILD_TYPE=${BUILD_TYPE} && sphinx-build doc html
tar -czvf html.tar.gz html/
- name: Save docs
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: oneTBB-html-docs-${{ env.GITHUB_SHA_SHORT }}
path: html.tar.gz
pages:
if: ${{ github.ref == 'refs/heads/master' }}
permissions:
contents: write
pages: write
id-token: write
runs-on: ubuntu-latest
needs: [documentation]
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- name: Checkout gh-pages
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: gh-pages
path: gh-pages
- name: Set env
run: echo GITHUB_SHA_SHORT=${GITHUB_SHA::8} >> $GITHUB_ENV
- name: Download documetation
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: oneTBB-html-docs-${{ env.GITHUB_SHA_SHORT }}
- name: Publish to github pages
run: |
set -e -x -o pipefail
tar -xvf html.tar.gz
cd gh-pages
rm -rf *
touch .nojekyll # https://github.blog/2009-12-29-bypassing-jekyll-on-github-pages/
cp -r ../html/* .
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit --reset-author --amend -m "Update from GitHub Actions"
git push --force origin gh-pages
copyright_check:
if: ${{ github.ref != 'refs/heads/master' }}
runs-on: [ubuntu-latest]
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
- name: Run check
run: |
set -e -x -o pipefail
base_sha=${{ github.event.pull_request.base.sha }}
current_year=$(date +%Y)
apache_copyright_line="Licensed under the Apache License"
uxl_copyright_re="Copyright \(c\) [0-9]+ UXL Foundation Contributors"
intel_copyright_re="Copyright.*[0-9]\{4\}.*Intel"
check_failed=false
new_files=$(git diff --find-renames --diff-filter=A --name-only "$base_sha" || true)
modified_files=$(git diff --find-renames --diff-filter=M --name-only "$base_sha" || true)
if [ -n "$new_files" ]; then
new_with_apache=$(grep -lF "$apache_copyright_line" $new_files || true)
for file in $new_with_apache; do
uxl_match=$(grep -cE "$uxl_copyright_re" "$file" || true)
if [ "$uxl_match" -eq 0 ]; then
echo "ERROR: New file is missing UXL copyright: $file"
check_failed=true
else
year_match=$(grep -cE "Copyright \(c\) ${current_year} UXL Foundation Contributors" "$file" || true)
if [ "$year_match" -eq 0 ]; then
echo "ERROR: New file must have current year (${current_year}) in UXL copyright: $file"
check_failed=true
fi
fi
done
fi
if [ -n "$modified_files" ]; then
modified_with_apache=$(grep -lF "$apache_copyright_line" $modified_files || true)
for file in $modified_with_apache; do
uxl_match=$(grep -cE "$uxl_copyright_re" "$file" || true)
if [ "$uxl_match" -eq 0 ]; then
echo "ERROR: Modified file is missing single year UXL copyright: $file"
check_failed=true
continue
fi
original_uxl=$(git show "${base_sha}:${file}" 2>/dev/null | grep -oE "$uxl_copyright_re" || true)
current_uxl=$(grep -oE "$uxl_copyright_re" "$file" || true)
if [ -n "$original_uxl" ] && [ "$original_uxl" != "$current_uxl" ]; then
echo "ERROR: UXL copyright year must not be changed in: $file"
check_failed=true
fi
done
fi
all_changed_files=$(git diff --find-renames --diff-filter=AM --name-only "$base_sha" || true)
if [ -n "$all_changed_files" ]; then
all_with_apache=$(grep -lF "$apache_copyright_line" $all_changed_files || true)
for file in $all_with_apache; do
original_intel=$(git show "${base_sha}:${file}" 2>/dev/null | grep "$intel_copyright_re" || true)
current_intel=$(grep "$intel_copyright_re" "$file" || true)
if [ -n "$original_intel" ] && [ "$original_intel" != "$current_intel" ]; then
echo "ERROR: Intel copyright must not be modified in: $file"
check_failed=true
fi
done
fi
if [ "$check_failed" = true ]; then
exit 1
fi
python_module_test_ubuntu_latest:
runs-on: [ubuntu-latest]
timeout-minutes: 15
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run testing
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -DTBB4PY_BUILD=ON -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc ..
make VERBOSE=1 -j${BUILD_CONCURRENCY} python_build
ctest -R python_test --output-on-failure --timeout ${TEST_TIMEOUT}
linux-testing:
name: ${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}_preview=${{ matrix.preview }}${{ matrix.cmake_static }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
c_compiler: gcc
cxx_compiler: g++
std: 14
build_type: relwithdebinfo
preview: 'OFF'
- os: ubuntu-22.04
c_compiler: gcc
cxx_compiler: g++
std: 17
build_type: release
preview: 'ON'
- os: ubuntu-24.04-arm
c_compiler: gcc-14
cxx_compiler: g++-14
std: 20
build_type: debug
preview: 'ON'
- os: ubuntu-24.04-arm
c_compiler: clang
cxx_compiler: clang++
std: 20
build_type: release
preview: 'ON'
- os: ubuntu-22.04-arm
c_compiler: gcc
cxx_compiler: g++
std: 20
build_type: release
preview: 'ON'
cmake_static: -DBUILD_SHARED_LIBS=OFF
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install dependencies
shell: bash
run: |
sudo apt-get update && sudo apt-get install -y pkg-config libhwloc-dev hwloc
- name: Run testing
shell: bash
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ${{ matrix.cmake_static }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DTBB_TEST_PREVIEW=${{ matrix.preview }} -DTCM_BUILD=OFF ..
make VERBOSE=1 -j${BUILD_CONCURRENCY}
ctest --timeout ${TEST_TIMEOUT} --output-on-failure
linux-tcm-testing:
name: tcm_test_${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
c_compiler: clang
cxx_compiler: clang++
std: 20
build_type: relwithdebinfo
- os: ubuntu-24.04
c_compiler: gcc
cxx_compiler: g++
std: 17
build_type: debug
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install dependencies
shell: bash
run: |
sudo apt-get update && sudo apt-get install -y pkg-config libhwloc-dev hwloc
- name: Run testing
shell: bash
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
-DTCM_BUILD=ON -DTBB_BUILD=OFF ..
make VERBOSE=1 -j${BUILD_CONCURRENCY}
ctest --timeout ${TEST_TIMEOUT} --output-on-failure
linux-tcm-integration-testing:
name: tcm_integration_test_${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 45
env:
TCM_ENABLE: 1
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
c_compiler: clang
cxx_compiler: clang++
std: 23
build_type: debug
- os: ubuntu-24.04
c_compiler: gcc
cxx_compiler: g++
std: 20
build_type: relwithdebinfo
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install dependencies
shell: bash
run: |
sudo apt-get update && sudo apt-get install -y pkg-config libhwloc-dev hwloc
- name: Run testing
shell: bash
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
-DTCM_BUILD=ON -DTBB_TCM_TESTING=ON ..
make VERBOSE=1 -j${BUILD_CONCURRENCY}
ctest --timeout ${TEST_TIMEOUT} --output-on-failure
macos-testing:
name: ${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}_preview=${{ matrix.preview }}${{ matrix.cmake_static }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- os: macos-15
c_compiler: clang
cxx_compiler: clang++
std: 17
build_type: debug
preview: 'ON'
- os: macos-14
c_compiler: clang
cxx_compiler: clang++
std: 14
build_type: relwithdebinfo
preview: 'ON'
- os: macos-15-intel
c_compiler: clang
cxx_compiler: clang++
std: 20
build_type: release
preview: 'ON'
cmake_static: -DBUILD_SHARED_LIBS=OFF
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run testing
shell: bash
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ${{ matrix.cmake_static }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DTBB_TEST_PREVIEW=${{ matrix.preview }} ..
make VERBOSE=1 -j${MACOS_BUILD_CONCURRENCY}
ctest --timeout ${TEST_TIMEOUT} --output-on-failure
windows-testing:
name: ${{ matrix.job_name }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- os: windows-2025
generator: Visual Studio 18 2026
c_compiler: cl
cxx_compiler: cl
std: 14
build_type: relwithdebinfo
preview: 'ON'
job_name: windows_cl2026_cxx14_relwithdebinfo_preview=ON
- os: windows-11-arm
generator: Visual Studio 17 2022
c_compiler: cl
cxx_compiler: cl
std: 20
build_type: release
preview: 'ON'
job_name: windows_11_arm_cl2022_cxx20_release_preview=ON-DBUILD_SHARED_LIBS=OFF
cmake_static: -DBUILD_SHARED_LIBS=OFF
- os: windows-2022
generator: Visual Studio 17 2022
c_compiler: cl
cxx_compiler: cl
std: 17
build_type: relwithdebinfo
preview: 'OFF'
job_name: windows_cl2022_cxx17_relwithdebinfo_preview=OFF
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run testing
run: |
mkdir build
cd build
cmake -G "${{ matrix.generator }}" -A x64 -DCMAKE_CXX_STANDARD=${{ matrix.std }} ${{ matrix.cmake_static }} `
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} `
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DTBB_TEST_PREVIEW=${{ matrix.preview }} ..
if (!$?) {
throw "CMake configuration step failed, exit code $LastExitCode"
}
cmake --build . --config ${{ matrix.build_type }} -j -v
if (!$?) {
throw "CMake build step failed, exit code $LastExitCode"
}
ctest -C ${{ matrix.build_type }} --timeout ${env:TEST_TIMEOUT} --output-on-failure
if (!$?) {
throw "CTest failed, exit code $LastExitCode"
}
windows-tcm-testing:
name: tcm_test_${{ matrix.job_name }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- os: windows-2025
c_compiler: cl
cxx_compiler: cl
std: 23
build_type: debug
job_name: windows_cl2026_cxx14_debug
- os: windows-2022
c_compiler: cl
cxx_compiler: cl
std: 17
build_type: relwithdebinfo
job_name: windows_cl2022_cxx17_relwithdebinfo
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install Dependencies
run: |
vcpkg install hwloc
- name: Run testing
run: |
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} `
-DCMAKE_CXX_STANDARD=${{ matrix.std }} `
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} `
-DTCM_BUILD=ON -DTBB_BUILD=OFF `
-DCMAKE_TOOLCHAIN_FILE="${env:VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" ..
if (!$?) {
throw "CMake configuration step failed, exit code $LastExitCode"
}
cmake --build . --config ${{ matrix.build_type }} --parallel -v
if (!$?) {
throw "CMake build step failed, exit code $LastExitCode"
}
ctest -C ${{ matrix.build_type }} --timeout ${env:TEST_TIMEOUT} --output-on-failure
if (!$?) {
throw "CTest failed, exit code $LastExitCode"
}
windows-tcm-integration_testing:
name: tcm_integration_test_${{ matrix.job_name }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
include:
- os: windows-2025
c_compiler: cl
cxx_compiler: cl
std: 20
build_type: relwithdebinfo
job_name: windows_cl2026_cxx14_relwithdebinfo
- os: windows-2022
c_compiler: cl
cxx_compiler: cl
std: 17
build_type: debug
job_name: windows_cl2022_cxx17_debug
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install Dependencies
run: |
vcpkg install hwloc
- name: Run testing
run: |
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} `
-DCMAKE_CXX_STANDARD=${{ matrix.std }} `
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} `
-DTCM_BUILD=ON -DTBB_TCM_TESTING=ON `
-DCMAKE_TOOLCHAIN_FILE="${env:VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" ..
if (!$?) {
throw "CMake configuration step failed, exit code $LastExitCode"
}
cmake --build . --config ${{ matrix.build_type }} --parallel -v
if (!$?) {
throw "CMake build step failed, exit code $LastExitCode"
}
ctest -C ${{ matrix.build_type }} --timeout ${env:TEST_TIMEOUT} --output-on-failure
if (!$?) {
throw "CTest failed, exit code $LastExitCode"
}
linux-examples-testing:
name: examples_${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}_preview=${{ matrix.preview }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
c_compiler: gcc
cxx_compiler: g++
std: 14
build_type: relwithdebinfo
preview: 'OFF'
- os: ubuntu-22.04
c_compiler: gcc
cxx_compiler: g++
std: 17
build_type: release
preview: 'ON'
- os: ubuntu-24.04
c_compiler: gcc
cxx_compiler: g++
std: 20
build_type: debug
preview: 'ON'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run testing
shell: bash
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
-DTBB_TEST_PREVIEW=${{ matrix.preview }} -DTBB_TEST=OFF -DTBB_EXAMPLES=ON ..
cmake --build . -v --target light_test_examples
macos-examples-testing:
name: examples_${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}_preview=${{ matrix.preview }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- os: macos-15
c_compiler: clang
cxx_compiler: clang++
std: 14
build_type: relwithdebinfo
preview: 'ON'
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run testing
shell: bash
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
-DTBB_TEST_PREVIEW=${{ matrix.preview }} -DTBB_TEST=OFF -DTBB_EXAMPLES=ON ..
cmake --build . -v --target light_test_examples
windows-examples-testing:
name: ${{ matrix.job_name }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- os: windows-11-arm
generator: Visual Studio 17 2022
c_compiler: cl
cxx_compiler: cl
std: 14
build_type: relwithdebinfo
preview: 'ON'
job_name: examples_windows_11_arm_cl2022_cxx14_relwithdebinfo_preview=ON
- os: windows-2022
generator: Visual Studio 17 2022
c_compiler: cl
cxx_compiler: cl
std: 17
build_type: relwithdebinfo
preview: 'OFF'
job_name: examples_windows_cl2022_cxx17_relwithdebinfo_preview=OFF
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Run testing
run: |
mkdir build
cd build
cmake -G "${{ matrix.generator }}" -A x64 -DCMAKE_CXX_STANDARD=${{ matrix.std }} `
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} `
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }} -DTBB_TEST_PREVIEW=${{ matrix.preview }} -DTBB_TEST=OFF -DTBB_EXAMPLES=ON ..
if (!$?) {
throw "CMake configuration step of examples failed, exit code $LastExitCode"
}
cmake --build . -v --target light_test_examples
if (!$?) {
throw "CMake build step of examples failed, exit code $LastExitCode"
}
linux-doc-examples-testing:
name: doc_examples_${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}_${{ matrix.cmake_extra }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
c_compiler: clang
cxx_compiler: clang++
generator: Ninja
std: 20
build_type: relwithdebinfo
cmake_extra: -DTBB_TEST_CXX20_MODULES=ON
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Install dependencies
shell: bash
run: |
sudo apt-get update && sudo apt-get install -y ninja-build
if [[ "${{ matrix.cxx_compiler }}" == "clang++" ]]; then
sudo apt-get install -y libomp-dev
fi
- name: Test doc examples
run: |
set -e -x -o pipefail
mkdir build && cd build
cmake -G "${{ matrix.generator }}" -DCMAKE_CXX_STANDARD=${{ matrix.std }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type}} \
-DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \
${{ matrix.cmake_extra }} -DTBB_TEST=OFF -DTBB_DOC_EXAMPLES=ON ..
cmake --build . -v --parallel --target build-doc-examples
ctest -C ${{ matrix.build_type }} --timeout ${env:TEST_TIMEOUT} --output-on-failure -L doc-examples
windows-doc-examples-testing:
name: doc_examples_${{ matrix.os }}_${{ matrix.cxx_compiler }}_cxx${{ matrix.std }}_${{ matrix.build_type }}_${{ matrix.cmake_extra }}
runs-on: ['${{ matrix.os }}']
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- os: windows-2022
generator: "Visual Studio 17 2022"
c_compiler: cl
cxx_compiler: cl
std: 20
build_type: relwithdebinfo
cmake_extra: -DTBB_TEST_CXX20_MODULES=ON
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Test doc examples
run: |
mkdir build && cd build
cmake -G "${{ matrix.generator }}" -A x64 -DCMAKE_CXX_STANDARD=${{ matrix.std }} `
-DCMAKE_BUILD_TYPE=${{ matrix.build_type}} -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} `
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }} ${{ matrix.cmake_extra }} -DTBB_TEST=OFF -DTBB_DOC_EXAMPLES=ON ..
if (!$?) {
throw "CMake configuration step of examples from documentation failed, exit code $LastExitCode"
}
cmake --build . --config ${{ matrix.build_type }} -v --parallel --target build-doc-examples
if (!$?) {
throw "CMake build step of examples from documentation failed, exit code $LastExitCode"
}
ctest -C ${{ matrix.build_type }} --timeout ${env:TEST_TIMEOUT} --output-on-failure -L doc-examples
if (!$?) {
throw "CTest of examples from documentation failed, exit code $LastExitCode"
}
+93
View File
@@ -0,0 +1,93 @@
# Copyright (c) 2024-2025 Intel Corporation
# Copyright (c) 2026 UXL Foundation Contributors
#
# 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.
name: "CodeQL"
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
paths:
- 'src/**'
- 'include/**'
- 'test/**'
- 'python/**'
- '.github/workflows/codeql.yml'
schedule:
- cron: '0 0 * * 1'
permissions:
contents: read
jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
# timeout-minutes:
permissions:
# required for all workflows
security-events: write
# required to fetch internal or private CodeQL packs
packages: read
# only required for workflows in private repositories
actions: read
contents: read
strategy:
fail-fast: false
matrix:
language: ["cpp", "python"]
steps:
- name: Harden Runner
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
with:
languages: ${{ matrix.language }}
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
# If the analyze step fails for one of the languages you are analyzing with
# "We were unable to automatically build your code", modify the matrix above
# to set the build mode to "manual" for that language. Then modify this step
# to build your code.
# Command-line programs to run using the OS shell.
# See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
#- if: matrix.build-mode == 'manual'
# shell: bash
# run: |
# echo 'If you are using a "manual" build mode for one or more of the' \
# 'languages you are analyzing, replace this with the commands to build' \
# 'your code, for example:'
# echo ' make bootstrap'
# echo ' make release'
# exit 1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81 # v4.37.3
with:
category: "/language:${{matrix.language}}"
+102
View File
@@ -0,0 +1,102 @@
# Copyright (c) 2024-2025 Intel Corporation
# Copyright (c) 2025 UXL Foundation Contributors
#
# 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.
name: Coverity Scan
on:
# Only run on push to master branch
push:
branches: [master]
permissions: read-all
env:
BUILD_CONCURRENCY: 4
COVERITY_PROJECT_LIN: oneapi-src%2FoneTBB
COVERITY_PROJECT_WIN: uxlfoundation%2FoneTBB
jobs:
coverity_linux:
name: Coverity Linux
if: github.repository == 'uxlfoundation/oneTBB'
runs-on: [ubuntu-latest]
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Download Linux 64 Coverity Tool
run: |
curl https://scan.coverity.com/download/cxx/linux64 --output ${GITHUB_WORKSPACE}/cov-linux64-tool.tar.gz \
--data "token=${{secrets.COVERITY_TOKEN}}&project=${{env.COVERITY_PROJECT_LIN}}"
mkdir cov-linux64-tool
tar -xzf cov-linux64-tool.tar.gz --strip 1 -C cov-linux64-tool
- name: Build with cov-build
run: |
export PATH="${PWD}/cov-linux64-tool/bin:${PATH}"
mkdir build && cd build
cmake -DCMAKE_CXX_STANDARD=20 -DCMAKE_BUILD_TYPE=relwithdebinfo \
-DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -DTBB_TEST_PREVIEW=ON ..
cov-build --dir cov-int make VERBOSE=1 -j${{env.BUILD_CONCURRENCY}}
- name: Archive Coverity build results
run: |
cd build
tar -czvf cov-int.tgz cov-int
- name: Submit Coverity results for analysis
run: |
cd build
curl \
--form token="${{ secrets.COVERITY_TOKEN }}" \
--form email="${{ secrets.COVERITY_EMAIL }}" \
--form file=@cov-int.tgz \
--form version="${GITHUB_SHA}" \
--form description="" \
"https://scan.coverity.com/builds?project=${{env.COVERITY_PROJECT_LIN}}"
coverity_windows:
name: Coverity Windows
if: github.repository == 'uxlfoundation/oneTBB'
runs-on: [windows-latest]
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Download Windows 64 Coverity Tool
run: |
curl https://scan.coverity.com/download/cxx/win64 -o cov-win64-tool.zip -d "token=${{secrets.COVERITY_TOKEN_WIN}}&project=${{env.COVERITY_PROJECT_WIN}}"
7z x cov-win64-tool.zip
del cov-win64-tool.zip
move cov-analysis-win64* cov-win64-tool
- name: Setup MSBuild
uses: microsoft/setup-msbuild@30375c66a4eea26614e0d39710365f22f8b0af57 # v3.0.0
- name: Build with cov-build
shell: bash
run: |
export PATH="${PWD}/cov-win64-tool/bin:${PATH}"
cmake -DCMAKE_CXX_STANDARD=14 -DCMAKE_BUILD_TYPE=relwithdebinfo \
-DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -DTBB_TEST_PREVIEW=ON .
cov-configure --msvc
cov-build --dir cov-int msbuild.exe ALL_BUILD.vcxproj -m -v:n
- name: Archive Coverity build results
run: |
7z a -r cov-int.zip cov-int
- name: Submit Coverity results for analysis
run: |
curl --form token="${{ secrets.COVERITY_TOKEN_WIN }}" --form email="${{ secrets.COVERITY_EMAIL }}" --form file=@cov-int.zip --form version="${GITHUB_SHA}" --form description="" "https://scan.coverity.com/builds?project=${{env.COVERITY_PROJECT_WIN}}"
+42
View File
@@ -0,0 +1,42 @@
# Copyright (c) 2023-2025 Intel Corporation
# Copyright (c) 2026 UXL Foundation Contributors
#
# 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.
name: "Issue Labeler"
on:
issues:
types: [opened, edited]
pull_request:
types: [opened, edited]
permissions: read-all
jobs:
triage:
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
contents: read
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: github/issue-labeler@c1b0f9f52a63158c4adc09425e858e87b32e9685 # v3.4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/issue_labeler.yml
enable-versioned-regex: 0
+36
View File
@@ -0,0 +1,36 @@
# Copyright (c) 2023-2025 Intel Corporation
# Copyright (c) 2026 UXL Foundation Contributors
#
# 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.
name: "Pull Request Labeler"
on:
- pull_request_target
permissions: read-all
jobs:
triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/labeler@bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13 # v7.0.0
with:
configuration-path: .github/labeler.yml
+89
View File
@@ -0,0 +1,89 @@
# Copyright (c) 2024-2025 Intel Corporation
# Copyright (c) 2026 UXL Foundation Contributors
#
# 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.
name: OSSF Scorecard
on:
# For Branch-Protection check. Only the default branch is supported. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection
branch_protection_rule:
# To guarantee Maintained check is occasionally updated. See
# https://github.com/ossf/scorecard/blob/main/docs/checks.md#maintained
schedule:
- cron: '00 02 * * *'
push:
branches: [ "master" ]
# Declare default permissions as read only.
permissions: read-all
jobs:
analysis:
name: Scorecard analysis
runs-on: ubuntu-latest
permissions:
# Needed to upload the results to code-scanning dashboard.
security-events: write
# Needed to publish results and get a badge (see publish_results below).
id-token: write
# Uncomment the permissions below if installing in a private repository.
# contents: read
# actions: read
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@05e31511f85b41b11d1cf0ef85d0992719546e2c # v2.21.0
with:
egress-policy: audit
- name: "Checkout code"
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: "Run analysis"
uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4
with:
results_file: results.sarif
results_format: sarif
# (Optional) "write" PAT token. Uncomment the `repo_token` line below if:
# - you want to enable the Branch-Protection check on a *public* repository, or
# - you are installing Scorecard on a *private* repository
# To create the PAT, follow the steps in https://github.com/ossf/scorecard-action?tab=readme-ov-file#authentication-with-fine-grained-pat-optional.
# repo_token: ${{ secrets.SCORECARD_TOKEN }}
# Public repositories:
# - Publish results to OpenSSF REST API for easy access by consumers
# - Allows the repository to include the Scorecard badge.
# - See https://github.com/ossf/scorecard-action#publishing-results.
# For private repositories:
# - `publish_results` will always be set to `false`, regardless
# of the value entered here.
publish_results: true
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
#- name: "Upload artifact"
# uses: actions/upload-artifact@97a0fba1372883ab732affbe8f94b823f91727db # v3.pre.node20
# with:
# name: SARIF file
# path: results.sarif
# retention-days: 5
# Upload the results to GitHub's code scanning dashboard (optional).
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
#- name: "Upload to code-scanning"
# uses: github/codeql-action/upload-sarif@1b1aada464948af03b950897e5eb522f92603cc2 # v3.24.9
# with:
# sarif_file: results.sarif
+52 -76
View File
@@ -1,86 +1,62 @@
# Ignore the debug and release directories created with Makefile builds #
#########################################################################
build/*_debug/
build/*_release/
# -------- C++ --------
# Prerequisites
*.d
# Compiled source #
###################
*.com
*.class
*.dll
*.lib
*.pdb
*.exe
*.o
*.so
*.so.1
*.so.2
*.dylib
*.a
*.obj
*.pyc
*.orig
*.raw
*.sample
# Compiled Object files
*.slo
*.swp
*.config
*.la
*.lai
*.lo
*.nhdr
*.nii.gz
*.nrrd
*.o
*.obj
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.tgz
*.zip
# Precompiled Headers
*.gch
*.pch
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# Compiled Dynamic libraries
*.so
*.so.*
*.dylib
*.dll
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Fortran module files
*.mod
*.smod
# IDE generated files #
######################
/.ninja_deps
/.ninja_log
/build.ninja
/rules.ninja
*~
.emacs.desktop
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Build system generated files #
################################
# Executables
*.exe
*.out
*.app
# -------- CMake --------
CMakeCache.txt
CMakeFiles/
CMakeFiles
CMakeScripts
Testing
Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
build/*
# -------- Python --------
__pycache__/
*.py[cod]
*$py.class
# -------- IDE --------
.vscode/*
.vs/*
out/*
CMakeSettings.json
# -------- CTags --------
.tags
.ctags
# Other #
#########
.clang_complete
.idea
.svn
crash*
*.tmp
+189
View File
@@ -0,0 +1,189 @@
# Copyright (c) 2021-2025 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.
# DISCLAIMER: Bazel support is community-based. The maintainers do not
# use Bazel internally. The Bazel build can have security risks or
# optimization gaps.
load("@rules_cc//cc:defs.bzl", "cc_library", "cc_test")
load("@rules_license//rules:license.bzl", "license")
package(
default_applicable_licenses = [":license"],
)
exports_files([
"LICENSE",
])
license(
name = "license",
license_kinds = ["@rules_license//licenses/spdx:Apache-2.0"],
license_text = "LICENSE.txt",
)
cc_library(
name = "tbb",
srcs = glob([
"src/tbb/*.cpp",
"src/tbb/*.h",
]) + select({
"@platforms//cpu:x86_64": glob(["src/tbb/tools_api/**/*.h"]),
"//conditions:default": [],
}),
hdrs = glob([
"include/tbb/*.h",
"include/oneapi/*.h",
"include/oneapi/tbb/*.h",
"include/oneapi/tbb/detail/*.h",
]),
copts = ["-w"] + select({
"@platforms//os:windows": [""],
"@platforms//cpu:x86_64": ["-mwaitpkg"],
"//conditions:default": [""],
}),
defines =
select({
"@platforms//cpu:x86_64": ["__TBB_NO_IMPLICIT_LINKAGE"],
"//conditions:default": [
"USE_PTHREAD",
],
}) +
select({
"@platforms//os:osx": ["_XOPEN_SOURCE"],
"//conditions:default": [],
}),
includes = [
"include",
],
linkopts =
select({
"@platforms//os:windows": [],
"@platforms//os:linux": [
"-ldl",
"-pthread",
"-lrt",
],
"//conditions:default": ["-pthread"],
}),
local_defines = select({
"@platforms//cpu:x86_64": [
"__TBB_USE_ITT_NOTIFY",
],
"//conditions:default": [],
}) + [
"__TBB_BUILD",
],
textual_hdrs = select({
"@platforms//cpu:x86_64": [
"src/tbb/tools_api/ittnotify_static.c",
],
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
)
cc_library(
name = "tbbmalloc",
srcs =
glob([
"src/tbbmalloc/*.h",
"src/tbb/*.h",
"src/tbbmalloc_proxy/*.h",
]) + [
"src/tbbmalloc/backend.cpp",
"src/tbbmalloc/backref.cpp",
"src/tbbmalloc/frontend.cpp",
"src/tbbmalloc/large_objects.cpp",
"src/tbbmalloc/tbbmalloc.cpp",
],
hdrs = glob([
"include/tbb/*.h",
"include/oneapi/tbb/detail/*.h",
"include/oneapi/tbb/*.h",
]),
includes = [
"include",
],
local_defines = [
"__TBBMALLOC_BUILD",
],
visibility = ["//visibility:public"],
)
cc_library(
name = "tbbmalloc_proxy",
srcs = [
"src/tbbmalloc_proxy/function_replacement.cpp",
"src/tbbmalloc_proxy/proxy.cpp",
],
visibility = ["//visibility:public"],
deps = [
":tbbmalloc",
],
)
cc_test(
name = "test_mutex",
srcs = [
"test/tbb/test_mutex.cpp",
"test/tbb/test_mutex.h",
] + glob([
"test/common/*.h",
]),
includes = ["test"],
deps = [
":tbb",
],
)
cc_test(
name = "test_parallel_for",
srcs = [
"test/tbb/test_parallel_for.cpp",
"test/tbb/test_partitioner.h",
] + glob([
"test/common/*.h",
]),
includes = ["test"],
deps = [
":tbb",
],
)
cc_test(
name = "test_parallel_reduce",
srcs = [
"test/tbb/test_parallel_reduce.cpp",
] + glob([
"test/common/*.h",
]),
includes = ["test"],
deps = [
":tbb",
],
)
cc_test(
name = "test_task",
srcs = [
"test/tbb/test_task.cpp",
] + glob([
"test/common/*.h",
]),
includes = ["test"],
deps = [
":tbb",
],
)
+108
View File
@@ -0,0 +1,108 @@
# Bazel* build support
The main build system of oneTBB is CMake*.
[Bazel*](https://bazel.build/) support is community-based.
The Bazel configuration may not include recommended compiler and/or linker flags used in the official CMake configuration.
---
**NOTE**
Bazel is not recommended for use by oneTBB maintainers. Thus, it is not used internally.
---
The Bazel oneTBB build is currently only intended for a subset of oneTBB that suffices restricted use cases.
Pull requests to improve the Bazel build experience are welcome.
The standard Bazel approach to handling third-party libraries is static linking. It is the best practice within the Bazel ecosystem.
## Using oneTBB as a dependency
### Traditional WORKSPACE approach
This example demonstrates how to use oneTBB as a dependency within a Bazel project.
The following file structure is assumed:
```
example
├── .bazelrc
├── BUILD.bazel
├── main.cpp
└── WORKSPACE.bazel
```
_WORKSPACE.bazel_:
```python
load("@platforms//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(
name = "oneTBB",
branch = "master",
remote = "https://github.com/uxlfoundation/oneTBB/",
)
```
In the *WORKSPACE* file, the oneTBB GitHub* repository is fetched.
_BUILD.bazel_:
```python
cc_binary(
name = "Demo",
srcs = ["main.cpp"],
deps = ["@oneTBB//:tbb"],
)
```
The *BUILD* file defines a binary named `Demo` that has a dependency to oneTBB.
_main.cpp_:
```c++
#include "oneapi/tbb/version.h"
#include <iostream>
int main() {
std::cout << "Hello from oneTBB "
<< TBB_VERSION_MAJOR << "."
<< TBB_VERSION_MINOR << "."
<< TBB_VERSION_PATCH
<< "!" << std::endl;
return 0;
}
```
The expected output of this program is the current version of oneTBB.
Switch to the folder with the files created earlier and run the binary with `bazel run //:Demo`.
### Bzlmod
If you use Bzlmod, you can fetch oneTBB with the [Bazel Central Registry](https://registry.bazel.build/).
Add the following line to your `MODULE.bazel` file:
```bazel
bazel_dep(name = "onetbb", version = "2021.13.0")
```
## Build oneTBB using Bazel
Run ```bazel build //...``` in the oneTBB root directory.
## Compiler support
The Bazel build uses the compiler flag `-mwaitpkg` in non-Windows* builds.
This flag is supported by the GNU* Compiler Collection (GCC) version 9.3, Clang* 12, and newer versions of those tools.
---
**NOTE**
To use the Bazel build with earlier versions of GCC, remove `-mwaitpkg` flag as it leads to errors during compilation.
---
-2271
View File
File diff suppressed because it is too large. Load diff
+432
View File
@@ -0,0 +1,432 @@
# Copyright (c) 2020-2025 Intel Corporation
# Copyright (c) 2026 UXL Foundation Contributors
#
# 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.
# If the running version of CMake is older than 3.12, the extra ... dots will be seen as version component separators,
# resulting in the ...<max> part being ignored and preserving the pre-3.12 behavior of basing policies on <min>.
cmake_minimum_required(VERSION 3.5.0...3.31.3)
# Enable CMake policies
if (POLICY CMP0063)
# The NEW behavior for this policy is to honor the visibility properties for all target types.
cmake_policy(SET CMP0063 NEW)
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
endif()
if (POLICY CMP0068)
# RPATH settings do not affect install_name on macOS since CMake 3.9
cmake_policy(SET CMP0068 NEW)
endif()
if (POLICY CMP0091)
# The NEW behavior for this policy is to not place MSVC runtime library flags in the default
# CMAKE_<LANG>_FLAGS_<CONFIG> cache entries and use CMAKE_MSVC_RUNTIME_LIBRARY abstraction instead.
cmake_policy(SET CMP0091 NEW)
elseif (DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
message(FATAL_ERROR "CMAKE_MSVC_RUNTIME_LIBRARY was defined while policy CMP0091 is not available. Use CMake 3.15 or newer.")
endif()
if (POLICY CMP0148)
# CMake 3.27: The FindPythonInterp and FindPythonLibs modules are removed
cmake_policy(SET CMP0148 OLD)
endif()
if (TBB_WINDOWS_DRIVER AND (NOT ("${CMAKE_MSVC_RUNTIME_LIBRARY}" STREQUAL MultiThreaded OR "${CMAKE_MSVC_RUNTIME_LIBRARY}" STREQUAL MultiThreadedDebug)))
message(FATAL_ERROR "Enabled TBB_WINDOWS_DRIVER requires CMAKE_MSVC_RUNTIME_LIBRARY to be set to MultiThreaded or MultiThreadedDebug.")
endif()
# Enable support of minimum supported macOS version flag
if (APPLE)
if (NOT CMAKE_CXX_OSX_DEPLOYMENT_TARGET_FLAG)
set(CMAKE_CXX_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=" CACHE STRING "Minimum macOS version flag")
endif()
if (NOT CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG)
set(CMAKE_C_OSX_DEPLOYMENT_TARGET_FLAG "-mmacosx-version-min=" CACHE STRING "Minimum macOS version flag")
endif()
endif()
file(READ include/oneapi/tbb/version.h _tbb_version_info)
string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" _tbb_ver_major "${_tbb_version_info}")
string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" _tbb_ver_minor "${_tbb_version_info}")
string(REGEX REPLACE ".*#define TBB_VERSION_PATCH ([0-9]+).*" "\\1" _tbb_ver_patch "${_tbb_version_info}")
string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" TBB_INTERFACE_VERSION "${_tbb_version_info}")
string(REGEX REPLACE ".*#define __TBB_BINARY_VERSION ([0-9]+).*" "\\1" TBB_BINARY_VERSION "${_tbb_version_info}")
string(REGEX REPLACE "..(..)." "\\1" TBB_BINARY_MINOR_VERSION "${TBB_INTERFACE_VERSION}")
set(TBBMALLOC_BINARY_VERSION 2)
set(TBBBIND_BINARY_VERSION 3)
project(TBB VERSION ${_tbb_ver_major}.${_tbb_ver_minor}.${_tbb_ver_patch} LANGUAGES CXX)
unset(_tbb_ver_major)
unset(_tbb_ver_minor)
include(CheckCXXCompilerFlag)
include(GNUInstallDirs)
include(CMakeDependentOption)
# ---------------------------------------------------------------------------------------------------------
# Handle C++ standard version.
if (NOT MSVC) # no need to cover MSVC as it uses C++14 by default.
if (NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 11)
endif()
if (CMAKE_CXX${CMAKE_CXX_STANDARD}_STANDARD_COMPILE_OPTION) # if standard option was detected by CMake
set(CMAKE_CXX_STANDARD_REQUIRED ON)
else() # if standard option wasn't detected by CMake (e.g. for Intel Compiler with CMake 3.1)
# TBB_CXX_STD_FLAG should be added to targets via target_compile_options
set(TBB_CXX_STD_FLAG -std=c++${CMAKE_CXX_STANDARD})
check_cxx_compiler_flag(${TBB_CXX_STD_FLAG} c++${CMAKE_CXX_STANDARD})
if (NOT c++${CMAKE_CXX_STANDARD})
message(FATAL_ERROR "C++${CMAKE_CXX_STANDARD} (${TBB_CXX_STD_FLAG}) support is required")
endif()
unset(c++${CMAKE_CXX_STANDARD})
endif()
endif()
set(CMAKE_CXX_EXTENSIONS OFF) # use -std=c++... instead of -std=gnu++...
# ---------------------------------------------------------------------------------------------------------
# Setup symbol visibility properties.
set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE)
set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
# ---------------------------------------------------------------------------------------------------------
# Detect architecture (bitness).
if (CMAKE_SIZEOF_VOID_P EQUAL 4)
set(TBB_ARCH 32)
else()
set(TBB_ARCH 64)
endif()
option(TBB_TEST "Enable testing" ON)
option(TBB_EXAMPLES "Enable examples" OFF)
option(TBB_STRICT "Treat compiler warnings as errors" ON)
option(TBB_WINDOWS_DRIVER "Build as Universal Windows Driver (UWD)" OFF)
option(TBB_NO_APPCONTAINER "Apply /APPCONTAINER:NO (for testing binaries for Windows Store)" OFF)
option(TBB4PY_BUILD "Enable tbb4py build" OFF)
option(TBB_BUILD "Enable tbb build" ON)
option(TBBMALLOC_BUILD "Enable tbbmalloc build" ON)
cmake_dependent_option(TBBMALLOC_PROXY_BUILD "Enable tbbmalloc_proxy build" ON "TBBMALLOC_BUILD" OFF)
option(TBB_FIND_PACKAGE "Enable search for external oneTBB using find_package instead of build from sources" OFF)
option(TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH "Disable HWLOC automatic search by pkg-config tool" ${CMAKE_CROSSCOMPILING})
option(TBB_ENABLE_IPO "Enable Interprocedural Optimization (IPO) during the compilation" ON)
option(TBB_CONTROL_FLOW_GUARD "Enable Control Flow Guard (CFG) during the compilation" OFF)
option(TBB_FUZZ_TESTING "Enable fuzz testing" OFF)
option(TBB_INSTALL "Enable installation" ON)
option(TBB_FILE_TRIM "Enable __FILE__ trim" ON)
if(LINUX)
option(TBB_LINUX_SEPARATE_DBG "Enable separation of the debug symbols during the build" OFF)
endif()
if(APPLE)
option(TBB_BUILD_APPLE_FRAMEWORKS "Build as Apple Frameworks" OFF)
endif()
if (TCM_BUILD)
set(TCM_BUILD_OPTION_EXPLICITLY_SET TRUE)
endif()
option(TCM_BUILD "Enable Thread Composability Manager (TCM) build" ON)
if (WIN32)
if (TBB_VERIFY_DEPENDENCY_SIGNATURE)
message(STATUS "Dependency signature verification during dynamic linking in run-time is ENABLED.")
elseif (NOT DEFINED TBB_VERIFY_DEPENDENCY_SIGNATURE)
message(WARNING
"Dependency signature verification during dynamic linking in run-time is disabled by "
"default. This may lead to security vulnerabilities. See installation section in "
"oneTBB documentation for more details.")
else()
message(STATUS "Dependency signature verification during dynamic linking in run-time is DISABLED")
endif()
option(TBB_VERIFY_DEPENDENCY_SIGNATURE
"Verify signature of a dependency during its dynamic linking at run-time on Windows*" OFF)
endif()
if (NOT DEFINED BUILD_SHARED_LIBS)
set(BUILD_SHARED_LIBS ON)
endif()
if (NOT BUILD_SHARED_LIBS)
if(NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
endif()
message(WARNING "You are building oneTBB as a static library. This is highly discouraged and such configuration is not supported. Consider building a dynamic library to avoid unforeseen issues.")
endif()
if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "Build type" FORCE)
message(STATUS "CMAKE_BUILD_TYPE is not specified. Using default: ${CMAKE_BUILD_TYPE}")
# Possible values of build type for cmake-gui
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif()
if (CMAKE_BUILD_TYPE)
string(TOLOWER ${CMAKE_BUILD_TYPE} _tbb_build_type)
if (_tbb_build_type STREQUAL "debug")
set(TBB_ENABLE_IPO OFF)
endif()
unset(_tbb_build_type)
endif()
# -------------------------------------------------------------------
# Files and folders naming
set(CMAKE_DEBUG_POSTFIX _debug)
if (NOT DEFINED TBB_OUTPUT_DIR_BASE)
if (MSVC)
if (NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY OR CMAKE_MSVC_RUNTIME_LIBRARY MATCHES DLL)
set(_tbb_msvc_runtime _md)
else()
set(_tbb_msvc_runtime _mt)
endif()
if (WINDOWS_STORE)
if (TBB_NO_APPCONTAINER)
set(_tbb_win_store _wsnoappcont)
else()
set(_tbb_win_store _ws)
endif()
elseif(TBB_WINDOWS_DRIVER)
set(_tbb_win_store _wd)
endif()
endif()
string(REGEX MATCH "^([0-9]+\.[0-9]+|[0-9]+)" _tbb_compiler_version_short ${CMAKE_CXX_COMPILER_VERSION})
string(TOLOWER ${CMAKE_CXX_COMPILER_ID}_${_tbb_compiler_version_short}_cxx${CMAKE_CXX_STANDARD}_${TBB_ARCH}${_tbb_msvc_runtime}${_tbb_win_store} TBB_OUTPUT_DIR_BASE)
unset(_tbb_msvc_runtime)
unset(_tbb_win_store)
unset(_tbb_compiler_version_short)
endif()
foreach(output_type LIBRARY ARCHIVE PDB RUNTIME)
if (CMAKE_BUILD_TYPE)
string(TOLOWER ${CMAKE_BUILD_TYPE} _tbb_build_type_lower)
set(CMAKE_${output_type}_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${TBB_OUTPUT_DIR_BASE}_${_tbb_build_type_lower})
unset(_tbb_build_type_lower)
endif()
if (CMAKE_CONFIGURATION_TYPES)
foreach(suffix ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER ${suffix} _tbb_suffix_upper)
string(TOLOWER ${suffix} _tbb_suffix_lower)
set(CMAKE_${output_type}_OUTPUT_DIRECTORY_${_tbb_suffix_upper} ${CMAKE_BINARY_DIR}/${TBB_OUTPUT_DIR_BASE}_${_tbb_suffix_lower})
endforeach()
unset(_tbb_suffix_lower)
unset(_tbb_suffix_upper)
endif()
endforeach()
if (CMAKE_CONFIGURATION_TYPES)
# We can't use generator expressions in a cmake variable name.
set(TBB_TEST_WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/${TBB_OUTPUT_DIR_BASE}_$<LOWER_CASE:$<CONFIG>>)
else()
set(TBB_TEST_WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif()
# -------------------------------------------------------------------
# -------------------------------------------------------------------
# Common dependencies
#force -pthread during compilation for Emscripten
if (EMSCRIPTEN AND NOT EMSCRIPTEN_WITHOUT_PTHREAD)
set(THREADS_HAVE_PTHREAD_ARG TRUE)
endif()
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)
# -------------------------------------------------------------------
file(GLOB FILES_WITH_EXTRA_TARGETS ${CMAKE_CURRENT_SOURCE_DIR}/cmake/*.cmake)
foreach(FILE_WITH_EXTRA_TARGETS ${FILES_WITH_EXTRA_TARGETS})
include(${FILE_WITH_EXTRA_TARGETS})
endforeach()
if (TBB_FILE_TRIM)
file(RELATIVE_PATH TBB_RELATIVE_BIN_PATH ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR})
file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} NATIVE_TBB_PROJECT_ROOT_DIR)
if (TBB_RELATIVE_BIN_PATH)
file(TO_NATIVE_PATH ${TBB_RELATIVE_BIN_PATH} NATIVE_TBB_RELATIVE_BIN_PATH)
else()
file(TO_NATIVE_PATH ${CMAKE_CURRENT_BINARY_DIR} NATIVE_TBB_RELATIVE_BIN_PATH)
endif()
endif ()
if (TBB_CONTROL_FLOW_GUARD)
message(STATUS "Control Flow Guard (CFG) enabled")
endif()
set(TBB_COMPILER_SETTINGS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake/compilers/${CMAKE_CXX_COMPILER_ID}.cmake)
if (EXISTS ${TBB_COMPILER_SETTINGS_FILE})
include(${TBB_COMPILER_SETTINGS_FILE})
else()
message(WARNING "TBB compiler settings not found ${TBB_COMPILER_SETTINGS_FILE}")
endif()
# - Enabling LTO on Android causes the NDK bug.
# NDK throws the warning: "argument unused during compilation: '-Wa,--noexecstack'"
# - For some reason GCC does not instrument code with Thread Sanitizer when lto is enabled and C linker is used.
if (TBB_ENABLE_IPO AND BUILD_SHARED_LIBS AND NOT ANDROID_PLATFORM AND NOT TBB_SANITIZE MATCHES "thread")
# For older cmake versions without CheckIPOSupported and when ipo detection is broken,
# try to enable IPO unconditionally.
if (CMAKE_VERSION VERSION_LESS 3.9 OR TBB_IPO_DETECTION_BROKEN)
set(TBB_IPO_FLAGS TRUE)
else()
cmake_policy(SET CMP0069 NEW)
include(CheckIPOSupported)
check_ipo_supported(RESULT TBB_IPO_PROPERTY)
if (NOT TBB_IPO_PROPERTY)
message(WARNING "IPO disabled: not supported by this compiler.")
endif()
endif()
if (TBB_IPO_PROPERTY OR TBB_IPO_FLAGS)
message(STATUS "IPO enabled")
endif()
endif()
if (TBB_FIND_PACKAGE AND TBB_DIR)
# Allow specifying external TBB to test with.
# Do not add main targets and installation instructions in that case.
message(STATUS "Using external TBB for testing")
find_package(TBB REQUIRED)
else()
if (TBB_BUILD)
add_subdirectory(src/tbb)
endif()
if (TBBMALLOC_BUILD)
add_subdirectory(src/tbbmalloc)
if(TBBMALLOC_PROXY_BUILD AND NOT "${MSVC_CXX_ARCHITECTURE_ID}" MATCHES "ARM64")
add_subdirectory(src/tbbmalloc_proxy)
endif()
endif()
if (NOT BUILD_SHARED_LIBS)
message(STATUS "TBBBind build targets are disabled due to unsupported environment")
else()
add_subdirectory(src/tbbbind)
endif()
if (TBB_INSTALL)
# -------------------------------------------------------------------
# Installation instructions
include(CMakePackageConfigHelpers)
install(DIRECTORY include/
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
COMPONENT devel)
install(EXPORT ${PROJECT_NAME}Targets
NAMESPACE TBB::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
COMPONENT devel)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
"include(\${CMAKE_CURRENT_LIST_DIR}/${PROJECT_NAME}Targets.cmake)\n")
if (NOT BUILD_SHARED_LIBS)
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
"include(CMakeFindDependencyMacro)\nfind_dependency(Threads)\n")
endif()
write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
COMPATIBILITY AnyNewerVersion)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
COMPONENT devel)
install(FILES "README.md"
DESTINATION ${CMAKE_INSTALL_DOCDIR}
COMPONENT devel)
# -------------------------------------------------------------------
endif()
endif()
if (TBB_TEST OR TCM_TEST)
enable_testing()
endif()
if (TBB_TEST)
add_subdirectory(test)
endif()
if (TBB_EXAMPLES)
add_subdirectory(examples)
endif()
if (TBB_DOC_EXAMPLES)
set(TBB_DOC_EXAMPLES_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/doc/main/examples_testing")
if (NOT EXISTS ${TBB_DOC_EXAMPLES_DIRECTORY})
message(FATAL_ERROR "Documentation examples are not found while testing was enabled")
else()
message(STATUS "Enabling testing for examples from documentation")
enable_testing()
add_subdirectory(${TBB_DOC_EXAMPLES_DIRECTORY})
endif()
endif()
if (TBB_BENCH)
if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/benchmark)
message(FATAL_ERROR "Benchmarks are not supported yet")
endif()
enable_testing()
add_subdirectory(benchmark)
endif()
if (ANDROID_PLATFORM)
if ("${ANDROID_STL}" STREQUAL "c++_shared")
if (${ANDROID_NDK_MAJOR} GREATER_EQUAL "25")
if(ANDROID_ABI STREQUAL "arm64-v8a")
set(ANDROID_TOOLCHAIN_NAME "aarch64-linux-android")
elseif(ANDROID_ABI STREQUAL "x86_64")
set(ANDROID_TOOLCHAIN_NAME "x86_64-linux-android")
elseif(ANDROID_ABI STREQUAL "armeabi-v7a")
set(ANDROID_TOOLCHAIN_NAME "arm-linux-androideabi")
elseif(ANDROID_ABI STREQUAL "x86")
set(ANDROID_TOOLCHAIN_NAME "i686-linux-android")
endif()
configure_file(
"${ANDROID_TOOLCHAIN_ROOT}/sysroot/usr/lib/${ANDROID_TOOLCHAIN_NAME}/libc++_shared.so"
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libc++_shared.so"
COPYONLY)
else()
configure_file(
"${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/${ANDROID_ABI}/libc++_shared.so"
"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/libc++_shared.so"
COPYONLY)
endif()
endif()
# This custom target may be implemented without separate CMake script, but it requires
# ADB(Android Debug Bridge) executable file availability, so to incapsulate this requirement
# only for corresponding custom target, it was implemented by this way.
add_custom_target(device_environment_cleanup COMMAND ${CMAKE_COMMAND}
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/android/device_environment_cleanup.cmake)
endif()
if (TBB4PY_BUILD)
add_subdirectory(python)
endif()
if (TCM_BUILD)
set(TCM_SUBDIR_NAME thread_composability_manager)
if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${TCM_SUBDIR_NAME}")
add_subdirectory(${TCM_SUBDIR_NAME})
elseif (TCM_BUILD_OPTION_EXPLICITLY_SET)
message(FATAL_ERROR "Build of Thread Composability Manager (TCM) is disabled since "
"${TCM_SUBDIR_NAME} subdirectory does not exist")
endif()
unset(TCM_SUBDIR_NAME)
endif()
# Keep it the last instruction.
add_subdirectory(cmake/post_install)
+28
View File
@@ -0,0 +1,28 @@
# Where component owners are known, add them here.
/oneTBB/src/tbb/ @kboyarinov
/oneTBB/src/tbb/ @dnmokhov
/oneTBB/include/oneapi/tbb/parallel_* @kboyarinov
/oneTBB/include/oneapi/tbb/parallel_* @dnmokhov
/oneTBB/include/oneapi/tbb/concurrent_* @kboyarinov
/oneTBB/include/oneapi/tbb/flow_graph* @kboyarinov
/oneTBB/include/oneapi/tbb/flow_graph* @aleksei-fedotov
/oneTBB/include/oneapi/tbb/detail/_flow_graph* @kboyarinov
/oneTBB/include/oneapi/tbb/detail/_flow_graph* @aleksei-fedotov
/oneTBB/include/oneapi/tbb/detail/_concurrent* @kboyarinov
/oneTBB/src/doc @aepanchi
/oneTBB/src/doc @omalyshe
/oneTBB/src/tbbbind/ @isaevil
/oneTBB/src/tbbmalloc/ @lplewa
/oneTBB/src/tbbmalloc_proxy/ @lplewa
/oneTBB/cmake/ @isaevil
/oneTBB/*CMakeLists.txt @isaevil
/oneTBB/python/ @isaevil
/oneTBB/rfcs/ @vossmjp
/oneTBB/rfcs/ @akukanov
# Bazel build related files.
/oneTBB/.bazelversion @Vertexwahn
/oneTBB/Bazel.md @Vertexwahn
/oneTBB/BUILD.bazel @Vertexwahn
/oneTBB/MODULE.bazel @Vertexwahn
+134
View File
@@ -0,0 +1,134 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official email address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
oneTBBCodeOfConduct At intel DOT com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
+50
View File
@@ -0,0 +1,50 @@
<!--
******************************************************************************
* 
* 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.
*******************************************************************************/-->
# How to Contribute
As an open source project, we welcome community contributions to oneAPI Threading Building Blocks (oneTBB). This document explains how to participate in project conversations, log bugs and enhancement requests, and submit code patches to the project.
## Licensing
Licensing is very important to open source projects. It helps ensure the software continues to be available under the terms that the author desired. The oneTBB project uses the [Apache 2.0 License](https://github.com/uxlfoundation/oneTBB/blob/master/LICENSE.txt), a permissive open source license that allows you to freely use, modify, and distribute your own products that include Apache 2.0 licensed software. By contributing to the oneTBB project, you agree to the license and copyright terms therein and release your own contributions under these terms.
Some imported or reused components within oneTBB use other licenses, as described in [third-party-programs.txt](https://github.com/uxlfoundation/oneTBB/blob/master/third-party-programs.txt). By carefully reviewing potential contributions, we can ensure that the community can develop products with oneTBB without concerns over patent or copyright issues.
## Prerequisites
As a contributor, you'll want to be familiar with the oneTBB project and the repository layout. You should also know how to use it as explained in the [oneTBB documentation](https://uxlfoundation.github.io/oneTBB/) and how to set up your build development environment to configure, build, and test oneTBB as explained in the [oneTBB Build System Description](cmake/README.md).
## Pull Requests
You can find all [open oneTBB pull requests](https://github.com/uxlfoundation/oneTBB/pulls) on GitHub.
### Before contributing changes directly to the oneTBB repository
* Make sure you can build the product and run all the tests with your patch.
* For a larger feature, provide a relevant test.
* Document your code. The oneTBB project uses reStructuredText for documentation.
* If your documentation has code samples or examples, place them into the corresponding example folder.
* Update the copyright year in the first line of the changing file(s).
For example, if you commit your changes in 2025:
* the copyright year should be `2005-2025` for existing files
* the copyright year should be `2025` for new files
* Submit a pull request into the master branch. You can submit changes with a pull request (preferred) or by sending an email patch.
Code changes that are known or suspected to break support for any currently supported hardware are not allowed.
Contributors should make a reasonable effort to ensure compatibility with these platforms. If a contribution
inadvertently affects hardware support, the community will work together to address and resolve the issue.
Continuous Integration (CI) testing is enabled for the repository. Your pull request must pass all checks before it can be merged. We will review your contribution and may provide feedback to guide you if any additional fixes or modifications are necessary. When reviewed and accepted, your pull request will be merged into our GitHub repository.
+147
View File
@@ -0,0 +1,147 @@
# Install
## Install from Release Packages
To install oneTBB from the release packages, use the following commands:
```bash
tar -xvf oneapi-tbb-xxx.xx.x-*.tgz
source env/vars.sh
```
## Install from Sources
### Prerequisites
- Make sure you have installed CMake version 3.1 (or newer) on your system. oneTBB uses CMake build configuration.
- Configure and build oneTBB. To work with build configurations, see [Build System Description](cmake/README.md).
### Configure oneTBB
At the command prompt, type:
```
cmake <options> <repo_root>
```
You may want to use some additional options for configuration:
| Option | Purpose | Description |
|---------------------------------------------|-------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `-G <generator>` | Specify project generator | For more information, run cmake `–help`. |
| `-DCMAKE_BUILD_TYPE=Debug` | Specify for Debug build | Not applicable for multi-configuration generators such as Visual Studio generator. |
| `-DTBB_VERIFY_DEPENDENCY_SIGNATURE=ON\|OFF` | Controls signature verification of dynamic dependencies loaded during runtime | If set to ON, only the signed dynamic dependencies are loaded. This is the recommended behavior. By default, the value is unspecified. Therefore, the warning is printed. To suppress the warning, set the value explicitly. |
For a more detailed list of available CMake configuration options see [Build System
Description](./cmake/README.md)
### Build oneTBB
To build the system, run:
```
cmake --build . <options>
```
Some useful build options:
- `--target <target>` - specific target, "all" is default.
- `--config <Release|Debug>` - build configuration, applicable only for multi-config generators such as Visual Studio generator.
### Install and Pack oneTBB
---
**NOTE**
Be careful about installing prefix. It defaults to `/usr/local` on UNIX* and `c:/Program Files/${PROJECT_NAME}` on Windows* OS.
You can define custom `CMAKE_INSTALL_PREFIX` during configuration:
```
cmake -DCMAKE_INSTALL_PREFIX=/my/install/prefix ..
```
---
Installation can also be done using:
```
cmake --install <project-binary-dir>
```
Special ``--install`` target can alternatively be used for installation, e.g. ``make install``.
You can use the ``install`` components for partial installation.
The following install components are supported:
- `runtime` - oneTBB runtime package (core shared libraries and `.dll` files on Windows* OS).
- `devel` - oneTBB development package (header files, CMake integration files, library symbolic links, and `.lib` files on Windows* OS).
- `tbb4py` - [oneTBB Module for Python](https://github.com/uxlfoundation/oneTBB/blob/master/python/README.md).
If you want to install specific components after configuration and build, run:
```bash
cmake -DCOMPONENT=<component> [-DBUILD_TYPE=<build-type>] -P cmake_install.cmake
```
Simple packaging using CPack is supported.
The following commands allow you to create a simple portable package that includes header files, libraries, and integration files for CMake:
```bash
cmake <options> ..
cpack
```
### Installation from vcpkg
You can download and install oneTBB using the [vcpkg](https://github.com/Microsoft/vcpkg) dependency manager:
```sh
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh #.\bootstrap-vcpkg.bat(for Windows)
./vcpkg integrate install
./vcpkg install tbb
```
The oneTBB port in vcpkg is kept up to date by Microsoft* team members and community contributors. If the version is out of date, create an issue or pull request on the [vcpkg repository](https://github.com/Microsoft/vcpkg).
### Example
#### Single-Configuration Generators
The following example demonstrates how to install oneTBB for single-configuration generators (e.g. GNU Make, Ninja, etc.).
```bash
# Do our experiments in /tmp
cd /tmp
# Clone oneTBB repository
git clone https://github.com/uxlfoundation/oneTBB.git
cd oneTBB
# Create binary directory for out-of-source build
mkdir build && cd build
# Configure: customize CMAKE_INSTALL_PREFIX and disable TBB_TEST to avoid tests build
cmake -DCMAKE_INSTALL_PREFIX=/tmp/my_installed_onetbb -DTBB_TEST=OFF ..
# Build
cmake --build .
# Install
cmake --install .
# Well done! Your installed oneTBB is in /tmp/my_installed_onetbb
```
#### Multi-Configuration Generators
The following example demonstrates how to install oneTBB for multi-configuration generators such as Visual Studio*.
Choose the configuration during the build and install steps:
```batch
REM Do our experiments in %TMP%
cd %TMP%
REM Clone oneTBB repository
git clone https://github.com/uxlfoundation/oneTBB.git
cd oneTBB
REM Create binary directory for out-of-source build
mkdir build && cd build
REM Configure: customize CMAKE_INSTALL_PREFIX and disable TBB_TEST to avoid tests build
cmake -DCMAKE_INSTALL_PREFIX=%TMP%\my_installed_onetbb -DTBB_TEST=OFF ..
REM Build "release with debug information" configuration
cmake --build . --config relwithdebinfo
REM Install "release with debug information" configuration
cmake --install . --config relwithdebinfo
REM Well done! Your installed oneTBB is in %TMP%\my_installed_onetbb
```
View File
File renamed without changes.
+141
View File
@@ -0,0 +1,141 @@
<!--
******************************************************************************
*
* 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.
*******************************************************************************/-->
# Introduction
This document defines roles in the oneTBB project.
# Roles and Responsibilities
oneTBB project defines three main roles:
* [Contributor](#contributor)
* [Code Owner](#code-Owner)
* [Maintainer](#maintainer)
[permissions]: https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#permissions-for-each-role
| | Contributor | Code Owner | Maintainer |
| :------------------------------------------------------------------------------------------------------------------------------------------ | :---------------------: | :---------------------: | :---------------------: |
| _Responsibilities_ | | | |
| Follow the [Code of Conduct](./CODE_OF_CONDUCT.md) | ✓ | ✓ | ✓ |
| Follow [Contribution Guidelines](./CONTRIBUTING.md) | ✓ | ✓ | ✓ |
| Ensure [Contribution Guidelines](./CONTRIBUTING.md) are followed | ✗ | ✓ | ✓ |
| Co-own component or aspect of the library,<br> including contributing: bug fixes, implementing features,<br> and performance optimizations | ✗ | ✓ | ✓ |
| Co-own on technical direction of component or<br> aspect of the library including work on RFCs | ✗ | ✓ | ✓ |
| Co-own the project as a whole,<br> including determining strategy and policy for the project | ✗ | ✗ | ✓ |
| _Privileges_ | | | |
| Permission granted | [Read][permissions] | [Write][permissions] | [Maintain][permissions] |
| Eligible to become | Code Owner | Maintainer | ✗ |
| Can recommend Contributors<br> to become Code Owner | ✗ | ✓ | ✓ |
| Can participate in promotions of<br> Code Owners and Maintainers | ✗ | ✗ | ✓ |
| Can suggest Milestones during planning | ✓ | ✓ | ✓ |
| Can choose Milestones for specific component | ✗ | ✓ | ✓ |
| Make a decision on project's Milestones during planning | ✗ | ✗ | ✓ |
| Can propose new RFC or<br> participate in review of existing RFC | ✓ | ✓ | ✓ |
| Can request rework of RFCs<br> in represented area of responsibility | ✗ | ✓ | ✓ |
| Can request rework of RFCs<br> in any part of the project | ✗ | ✗ | ✓ |
| Can manage release process of the project | ✗ | ✗ | ✓ |
| Can represent the project in public as a Maintainer | ✗ | ✗ | ✓ |
These roles are merit based. Refer to the corresponding section for specific
requirements and the nomination process.
## Contributor
A Contributor invests time and resources to improve oneTBB project.
Anyone can become a Contributor by bringing value in any following way:
* Answer questions from community members.
* Propose changes to the design.
* Provide feedback on design proposals.
* Review and/or test pull requests.
* Test releases and report bugs.
* Contribute code, including bug fixes, features implementations,
and performance optimizations.
## Code Owner
A Code Owner has responsibility for a specific project component or a functional
area. Code Owners are collectively responsible
for developing and maintaining their component or functional areas, including
reviewing all changes to corresponding areas of responsibility and indicating
whether those changes are ready to be merged. Code Owners have a track record of
contribution and review in the project.
**Requirements:**
* Track record of accepted code contributions to a specific project component.
* Track record of contributions to the code review process.
* Demonstrate in-depth knowledge of the architecture of a specific project
component.
* Commit to being responsible for that specific area.
How to become a Code Owner?
1. A Contributor is nominated by opening a PR modifying the MAINTAINERS.md file
including name, Github username, and affiliation.
2. At least two specific component Maintainers approve the PR.
3. [CODEOWNERS](./CODEOWNERS) file is updated to represent corresponding areas of responsibility.
## Maintainer
Maintainers are the most established contributors responsible for the
project technical direction. They participate in making decisions about the
strategy and priorities of the project.
**Requirements:**
* Have experience as a Code Owner.
* Track record of major project contributions to a specific project component.
* Demonstrate deep knowledge of a specific project component.
* Demonstrate broad knowledge of the project across multiple areas.
* Commit to using privileges responsibly for the good of the project.
* Be able to exercise judgment for the good of the project, independent of
their employer, friends, or team.
Process of becoming a maintainer:
1. A Maintainer may nominate a current code owner to become a new Maintainer by
opening a PR against MAINTAINERS.md file.
2. A majority of the current Maintainers must then approve the PR.
# Code Owners and Maintainers List
## oneTBB core (API, Architecture, Tests)
| Name | Github ID | Affiliation | Role |
| --------------------- | --------------------- | ----------------- | ---------- |
| Ilya Isaev | @isaevil | Intel Corporation | Code Owner |
| Alexey Kukanov | @akukanov | Intel Corporation | Code Owner |
| Konstantin Boyarinov | @kboyarinov | Intel Corporation | Maintainer |
| Aleksei Fedotov | @aleksei-fedotov | Intel Corporation | Maintainer |
| Michael Voss | @vossmjp | Intel Corporation | Maintainer |
| Dmitri Mokhov | @dnmokhov | Intel Corporation | Maintainer |
## oneTBB TBBMALLOC (API, Architecture, Tests)
| Name | Github ID | Affiliation | Role |
| --------------------- | --------------------- | ----------------- | ---------- |
| Łukasz Plewa | @lplewa | Intel Corporation | Maintainer |
## oneTBB Documentation
| Name | Github ID | Affiliation | Role |
| ---------------------- | --------------------- | ----------------- | ---------- |
| Alexandra Epanchinzeva | @aepanchi | Independent | Code Owner |
| Olga Malysheva | @omalyshe | Intel Corporation | Code Owner |
## oneTBB Release Management
| Name | Github ID | Affiliation | Role |
| ------------------ | --------------------- | ----------------- | ---------- |
| Olga Malysheva | @omalyshe | Intel Corporation | Maintainer |
+26
View File
@@ -0,0 +1,26 @@
# Copyright (c) 2021-2025 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.
# DISCLAIMER: Bazel support is community-based. The maintainers do not
# use Bazel internally. The Bazel build can have security risks or
# optimization gaps.
module(
name = "onetbb",
compatibility_level = 1,
)
bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "rules_cc", version = "0.1.1")
bazel_dep(name = "rules_license", version = "1.0.0")
-84
View File
@@ -1,84 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
tbb_root?=.
include $(tbb_root)/build/common.inc
.PHONY: default all tbb tbbmalloc tbbproxy test examples
#workaround for non-depend targets tbb and tbbmalloc which both depend on version_string.ver
#According to documentation, recursively invoked make commands can process their targets in parallel
.NOTPARALLEL: tbb tbbmalloc tbbproxy
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
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
$(MAKE) -C examples -r -f Makefile tbb_root=.. release test
python: mkdir
$(MAKE) -C "$(work_dir)_release" -r -f $(tbb_root)/build/Makefile.tbb cfg=release
bash -c ". $(work_dir)_release$(SLASH)tbbvars.sh && $(MAKE) -rC '$(full_tbb_root)/python' CXX=$(compiler) install test-install"
.PHONY: clean clean_examples mkdir info
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:
$(shell $(MAKE) -s -i -r -C examples -f Makefile tbb_root=.. clean >$(NUL) 2>$(NUL))
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
info:
@echo OS: $(tbb_os)
@echo arch=$(arch)
@echo compiler=$(compiler)
@echo runtime=$(runtime)
@echo tbb_build_prefix=$(tbb_build_prefix)
-11
View File
@@ -1,11 +0,0 @@
Intel(R) Threading Building Blocks - README
See index.html for directions and documentation.
If source is present (./Makefile and src/ directories),
type 'gmake' in this directory to build and test.
See examples/index.html for runnable examples and directions.
See http://threadingbuildingblocks.org for full documentation
and software information.
+58 -21
View File
@@ -1,34 +1,71 @@
# Intel(R) Threading Building Blocks 2017 Update 3
[![Stable release](https://img.shields.io/badge/version-2017_U3-green.svg)](https://github.com/01org/tbb/releases/tag/2017_U3)
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE)
# oneAPI Threading Building Blocks (oneTBB) <img align="right" width="200" height="100" src="https://raw.githubusercontent.com/uxlfoundation/artwork/e98f1a7a3d305c582d02c5f532e41487b710d470/foundation/uxl-foundation-logo-horizontal-color.svg">
[![Apache License Version 2.0](https://img.shields.io/badge/license-Apache_2.0-green.svg)](LICENSE.txt) [![oneTBB CI](https://github.com/uxlfoundation/oneTBB/actions/workflows/ci.yml/badge.svg)](https://github.com/uxlfoundation/oneTBB/actions/workflows/ci.yml?query=branch%3Amaster)
[![Join the community on GitHub Discussions](https://badgen.net/badge/join%20the%20discussion/on%20github/blue?icon=github)](https://github.com/uxlfoundation/oneTBB/discussions)
[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9125/badge)](https://www.bestpractices.dev/projects/9125)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/uxlfoundation/oneTBB/badge)](https://securityscorecards.dev/viewer/?uri=github.com/uxlfoundation/oneTBB)
[![Gurubase](https://img.shields.io/badge/Gurubase-Ask%20oneTBB%20Guru-006BFF)](https://gurubase.io/g/onetbb)
[![Coverity Scan Build Status](https://img.shields.io/coverity/scan/30373.svg?label=coverity-lin)](https://scan.coverity.com/projects/oneapi-src-onetbb)
[![Coverity Scan Build Status](https://img.shields.io/coverity/scan/32544.svg?label=coverity-win)](https://scan.coverity.com/projects/uxlfoundation-onetbb)
Intel(R) Threading Building Blocks (Intel(R) TBB) lets you easily write parallel C++ programs that take
full advantage of multicore performance, that are portable, composable and have future-proof scalability.
oneTBB is a flexible C++ library that simplifies the work of adding parallelism
to complex applications, even if you are not a threading expert.
The library lets you easily write parallel programs that take full advantage of the multi-core performance. Such programs are portable,
composable and have a future-proof scalability. oneTBB provides you with functions, interfaces, and classes to parallelize and scale the code.
All you have to do is to use the templates.
The library differs from typical threading packages in the following ways:
* oneTBB enables you to specify logical parallelism instead of threads.
* oneTBB targets threading for performance.
* oneTBB is compatible with other threading packages.
* oneTBB emphasizes scalable, data parallel programming.
* oneTBB relies on generic programming.
Refer to oneTBB [examples](examples) and [samples](https://github.com/oneapi-src/oneAPI-samples/tree/master/Libraries/oneTBB) to see how you can use the library.
oneTBB is a part of the [UXL Foundation](http://www.uxlfoundation.org) and is an implementation of [oneAPI specification](https://oneapi.io).
> **_NOTE:_** Threading Building Blocks (TBB) is now called oneAPI Threading Building Blocks (oneTBB) to highlight that the tool is a part of the oneAPI ecosystem.
## Release Information
Here are the latest [Changes](CHANGES) and [Release Notes](doc/Release_Notes.txt) (contains system requirements and known issues).
This release provides additional TBB examples for workshops, conferences etc.
examples/ppopp17 – examples for PPoPP 2017
examples/europar17 – examples for Euro-Par 2017
See [Release Notes](RELEASE_NOTES.md) and [System Requirements](SYSTEM_REQUIREMENTS.md).
## Documentation
* Intel(R) TBB [tutorial](https://software.intel.com/en-us/tbb-tutorial)
* Intel(R) TBB general documentation: [stable](https://software.intel.com/en-us/tbb-documentation)
and [latest](https://www.threadingbuildingblocks.org/docs/help/index.htm)
* [oneTBB Specification](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/latest/elements/onetbb/source/nested-index)
* [oneTBB Developer Guide and Reference](https://uxlfoundation.github.io/oneTBB)
* [Migrating from TBB to oneTBB](https://uxlfoundation.github.io/oneTBB/main/tbb_userguide/Migration_Guide.html)
* [README for the CMake build system](cmake/README.md)
* [oneTBB Versioning Policies](VERSIONING.md)
* [oneTBB Testing Approach](https://uxlfoundation.github.io/oneTBB/main/intro/testing_approach.html)
* [Basic support for the Bazel build system](Bazel.md)
* [oneTBB Discussions](https://github.com/uxlfoundation/oneTBB/discussions)
* [WASM Support](WASM_Support.md)
## Installation
See [Installation from Sources](INSTALL.md) to learn how to install oneTBB.
## Governance
The oneTBB project is governed by the UXL Foundation.
You can get involved in this project in following ways:
* Join the [Open Source and Specification Working Group](https://github.com/uxlfoundation/foundation/tree/main?tab=readme-ov-file#working-groups) meetings.
* Join the mailing lists for the [UXL Foundation](https://lists.uxlfoundation.org/g/main/subgroups) to receive meetings schedule and latest updates.
* Contribute to oneTBB project or oneTBB specification. Read [CONTRIBUTING](./CONTRIBUTING.md) for more information.
## Support
Please report issues and suggestions via
[GitHub issues](https://github.com/01org/tbb/issues) or start a topic on the
[Intel(R) TBB forum](http://software.intel.com/en-us/forums/intel-threading-building-blocks/).
See our [documentation](./SUPPORT.md) to learn how to request help.
## How to Contribute
Please, read the instructions on the official [Intel(R) TBB open source site](https://www.threadingbuildingblocks.org/submit-contribution).
We welcome community contributions, so check our [Contributing Guidelines](CONTRIBUTING.md)
to learn more.
## Сontact engineering team
* [E-mail us.](mailto:inteltbbdevelopers@intel.com)
Use GitHub Issues for feature requests, bug reports, and minor inquiries. For broader questions and development-related discussions, use GitHub Discussions.
## License
oneAPI Threading Building Blocks is licensed under [Apache License, Version 2.0](LICENSE.txt).
By its terms, contributions submitted to the project are also done under that license.
------------------------------------------------------------------------
Intel and the Intel logo are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
\* Other names and brands may be claimed as the property of others.
\* All names and brands may be claimed as the property of others.
+466
View File
@@ -0,0 +1,466 @@
<!--
******************************************************************************
* 
* 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.
*******************************************************************************/-->
# oneTBB 2023.1 Release Notes
## :rocket: Preview Features
- NUMA Optimization: Use new interleaved memory allocation APIs to explicitly control memory placement across NUMA nodes. The ``allocate_numa_interleaved`` and ``deallocate_numa_interleaved`` functions allocate and deallocate memory across multiple NUMA nodes, helping increase bandwidth and avoid bottlenecks from single-node allocation.
- C++20 Modules: This release adds experimental support for C++20 modules with the introduction of ``include/oneapi/tbb.cppm``. Developers can use this instead of traditional headers to reduce compilation times and improve encapsulation.
## :tada: New Features
- oneTBB repository now contains Thread Composability Manager (TCM) source code - a project that helps in limiting oversubscription that can arise when multiple parallel runtimes are used within an application. More information is available at https://uxlfoundation.github.io/oneTBB/main/tbb_userguide/appendix_B.html#avoid-cpu-overutilization
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- When CPU resource coordination is enabled by setting the TCM_ENABLE environment variable to 1, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
- Using oneTBB on WASM* may cause applications to run in a single thread. See [Limitations of WASM Support](https://github.com/uxlfoundation/oneTBB/blob/master/WASM_Support.md#limitations).
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://uxlfoundation.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Added IPO build support for modern Intel compilers with old CMake under Linux*.
## :octocat: Open-Source Contributions Integrated
- Improved support for GNU* Hurd*. Contributed by Petter Reinholdtsen (https://github.com/uxlfoundation/oneTBB/pull/2028, https://github.com/uxlfoundation/oneTBB/pull/2038, https://github.com/uxlfoundation/oneTBB/pull/2026).
- Fixed Windows* build on ARM64* when using MSVC. contributed by navvyswethgraphics (https://github.com/uxlfoundation/oneTBB/pull/2030).
# oneTBB 2023.0 Release Notes
## :rocket: Preview Features
- Introduced ability to wait for a single task in a ``task_group`` instead of waiting for all tasks to finish. This increases reactivity and decreases latency in key user workloads.
- Introduced ``flow::resource_limited_node`` and ``flow::resource_limiter`` classes. These nodes only execute when they can successfully acquire the necessary resources from the resource limiters associated with the node. This feature is used to guard access to shared resources, while maximizing available parallelism in the graph.
- Introduced ``task_arena`` core type selector to better support hybrid architectures with several core types. Users use this new flexible API to more tightly constrain execution to set preferences for the specific core types that match their workload.
- Added global control parameter to set default block time behavior on server HW. This allows developers to revert to older blocking behavior if their applications are not able to fully utilize all cores, thereby reducing idle spinning.
## :tada: New Features
- Added new API to create a set of NUMA bound task arenas, simplifying common patterns used to optimize for NUMA architectures.
- Extended Flow Graph functional node deduction guides to support non-static member function and member object pointers as a node bodies.
- The Flow Graph join_node and indexer_node now support 10 or more input ports.
- Explicit deduction guides for ``blocked_nd_range`` are now a fully supported feature.
- Added native WASM exception handling support.
- Added support for Python 3.14.
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- When CPU resource coordination is enabled by setting the TCM_ENABLE environment variable to 1, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
- Using oneTBB on WASM* may cause applications to run in a single thread. See [Limitations of WASM Support](https://github.com/uxlfoundation/oneTBB/blob/master/WASM_Support.md#limitations).
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://uxlfoundation.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Significantly improved scalability for concurrent ordered containers on systems with many threads. This change results in greater than 3x performance for some use cases.
- Fixed ODR violations when public inline functions expose entities with internal linkage.
## :octocat: Open-Source Contributions Integrated
- Updated tbb4py installation approach to be aligned with PEP517. Contributed by Ben Greiner (https://github.com/uxlfoundation/oneTBB/pull/1941).
- Improved usage of <windows.h> in oneTBB code. Contributed by Aras Pranckevi&#269;ius (https://github.com/uxlfoundation/oneTBB/pull/1932).
- Fixed CMake build issue with Clang on Windows*. Contributed by JustinZhu (https://github.com/uxlfoundation/oneTBB/pull/1936).
# oneTBB 2022.3 Release Notes
## :rocket: Preview Features
- Introduced API for setting dynamic task dependencies in task_group. This allows successor tasks to execute only after all their predecessors have completed.
## :tada: New Features
- Extended task_arena with API support for enqueuing functions into a task_group and waiting for the task_group to complete.
- Introduced API for setting and getting the assertion handler. This allows applications to set their own assertion handling functions.
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293.
- When CPU resource coordination is enabled by setting the TCM_ENABLE environment variable to 1, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
- When CPU resource coordination is enabled, cgroups CPU quota and period limitations settings are ignored.
- Using oneTBB on WASM* may cause applications to run in a single thread. See [Limitations of WASM Support](https://github.com/uxlfoundation/oneTBB/blob/master/WASM_Support.md#limitations).
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://uxlfoundation.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Fixed overwrite_node and write_once_node to prevent premature trigger of continue_node successors.
- Fixed keys duplication in concurrent_hash_map when the container is initialized using a pair of iterators, or std::initializer_list (https://github.com/uxlfoundation/oneTBB/issues/1764).
- Improved support for profiling tools by allowing the oneTBB notifications to be ignored by tools and by better timing of task completion notifications.
- Fixed incorrect deallocation of tasks in task_group (https://github.com/uxlfoundation/oneTBB/issues/1834).
- Improved performance scalability of spin_mutex::lock, spin_mutex::try_lock and queuing_mutex::scoped_lock::try_acquire.
- Fixed potential oversubscription issue by respecting CPU quota and period limitations provided via cgroups settings on Linux* (https://github.com/uxlfoundation/oneTBB/issues/190, https://github.com/uxlfoundation/oneTBB/issues/1760).
## :octocat: Open-Source Contributions Integrated
- Fixed CMake build issue on some architectures. Contributed by lmarz (https://github.com/uxlfoundation/oneTBB/pull/1768).
- Fixed stack size assertion failure when running with ASAN. Contributed by omegacoleman (https://github.com/uxlfoundation/oneTBB/pull/1782).
- Improved Bazel support on non-x86 architectures. Contributed by Caleb Zulawski (https://github.com/uxlfoundation/oneTBB/pull/1790).
- Fixed potential crash caused by nullptr dereference for the tag_matching join_node. Contributed by Federico Ficarelli (https://github.com/uxlfoundation/oneTBB/pull/1800).
- Fixed false positive GCC* warnings. Contributed by Zizheng Guo (https://github.com/uxlfoundation/oneTBB/pull/1752).
- Fixed ASAN detection for Clang*. Contributed by Federico Ficarelli (https://github.com/uxlfoundation/oneTBB/pull/1842).
# oneTBB 2022.2 Release Notes
## :tada: New Features
- Improved Hybrid CPU and NUMA Platforms API Support: Enhanced API availability for better compatibility with Hybrid CPU and NUMA platforms.
- Added support for verifying signatures of dynamic dependencies at runtime. To enable this feature, specify
``-DTBB_VERIFY_DEPENDENCY_SIGNATURE=ON`` when invoking CMake.
- Added support for printing warning messages about issues in dynamic dependency loading. To see these messages in the console, build the library with the ``TBB_DYNAMIC_LINK_WARNING`` macro defined.
- Added a Natvis file for custom visualization of TBB containers when debugging with Microsoft* Visual Studio.
- Refined Environment Setup: Replaced CPATH with ``C_INCLUDE_PATH and CPLUS_INCLUDE_PATH`` in environment setup to avoid unintended compiler warnings caused by globally applied include paths.
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293.
- When CPU resource coordination is enabled, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
- Using oneTBB on WASM* may cause applications to run in a single thread. See [Limitations of WASM Support](https://github.com/uxlfoundation/oneTBB/blob/master/WASM_Support.md#limitations).
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://uxlfoundation.github.io/oneTBB/main/intro/limitations.html).
## :octocat: Open-Source Contributions Integrated
- Fixed a CMake configuration error on systems with non-English locales. Contributed by moritz-h (https://github.com/uxlfoundation/oneTBB/pull/1606).
- Made the install destination of import libraries on Windows* configurable. Contributed by Bora Yalçıner (https://github.com/uxlfoundation/oneTBB/pull/1613).
- Resolved an in-source CMake build error. Contributed by Dmitrii Golovanov (https://github.com/uxlfoundation/oneTBB/pull/1670).
- Migrated the build system to Bazel* version 8.1.1. Contributed by Julian Amann (https://github.com/uxlfoundation/oneTBB/pull/1694).
- Fixed build errors on MinGW* and FreeBSD*. Contributed by John Ericson (https://github.com/uxlfoundation/oneTBB/pull/1696).
- Addressed build errors on macOS* when using the GCC compiler. Contributed by Oleg Butakov (https://github.com/uxlfoundation/oneTBB/pull/1603).
# oneTBB 2022.1 Release Notes
## :tada: New Features
- The oneTBB repository migrated to the new [UXL Foundation](https://github.com/uxlfoundation/oneTBB) organization.
- ``blocked_nd_range`` is now a fully supported feature.
- Introduced the ``ONETBB_SPEC_VERSION`` macro to specify the version of oneAPI specification implemented by the current version of the library.
## :rocket: Preview Features
- Added the explicit deduction guides to ``blocked_nd_range`` to support C++17 Class Template Argument Deduction.
- Extended ``task_arena`` API to select TBB workers leave policy and to hint the start and the end of parallel computations.
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293.
- When CPU resource coordination is enabled, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
- Using oneTBB on WASM* may cause applications to run in a single thread. See [Limitations of WASM Support](https://github.com/uxlfoundation/oneTBB/blob/master/WASM_Support.md#limitations).
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://uxlfoundation.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Fixed deadlock when using `tbb::concurrent_vector::grow_by()` (https://github.com/uxlfoundation/oneTBB/issues/1531).
- Fixed assertion in the Debug version of oneTBB on systems with multiple processor groups.
- Fixed issues with Flow Graph priorities when using limited concurrency nodes (https://github.com/uxlfoundation/oneTBB/issues/1595).
- Improved support of ``tbb::task_arena::constraints`` functionality on Windows* systems with multiple processor groups.
- Fixed ``concurrent_queue`` and ``concurrent_bounded_queue`` capacity preserving on copying, moving, and swapping (https://github.com/uxlfoundation/oneTBB/issues/1598).
- Fixed ``parallel_for_each`` compilation issues on GCC 9 in C++20 mode (https://github.com/uxlfoundation/oneTBB/issues/1552).
## :octocat: Open-Source Contributions Integrated
- Fixed linkage errors when the application is built with the hidden symbols visibility. Contributed by Vladislav Shchapov (https://github.com/uxlfoundation/oneTBB/pull/1114).
- On Linux* OS, for external thread, determined stack size using POSIX* API instead of relying on the stack size of a worker thread. Contributed by bongkyu7-kim (https://github.com/uxlfoundation/oneTBB/pull/1485).
- Added a CMake option to use relative paths instead of full paths in debug information. Contributed by Fang Xu (https://github.com/uxlfoundation/oneTBB/pull/1401).
- Improved OpenBSD* support by removing the use of direct syscalls. Contributed by Brad Smith (https://github.com/uxlfoundation/oneTBB/pull/1499).
- Fixed build issues on ARM64* when using Bazel. Contributed by snadampal (https://github.com/uxlfoundation/oneTBB/pull/1571).
- Suppressed deprecation warnings for CMake versions earlier than 3.10 when using the latest CMake. Contributed by Vladislav Shchapov (https://github.com/uxlfoundation/oneTBB/pull/1585).
# oneTBB 2022.0 Release Notes
## :rocket: Preview Features
- Extended the Flow Graph receiving nodes with a new ``try_put_and_wait`` API that submits a message to the graph and waits for its completion.
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293.
- When CPU resource coordination is enabled, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
- Using oneTBB on WASM*, may cause applications to run in a single thread. See [Limitations of WASM Support](https://github.com/oneapi-src/oneTBB/blob/master/WASM_Support.md#limitations).
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://oneapi-src.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Fixed the missed signal for thread request for enqueue operation.
- Significantly improved scalability of ``task_group``, ``flow_graph``, and ``parallel_for_each``.
- Removed usage of ``std::aligned_storage`` deprecated in C++23 (Inspired by Valery Matskevich https://github.com/oneapi-src/oneTBB/pull/1394).
- Fixed the issue where ``oneapi::tbb::info`` interfaces might interfere with the process affinity mask on the Windows* OS systems with multiple processor groups.
## :octocat: Open-Source Contributions Integrated
- Detect the GNU Binutils version to determine WAITPKG support better. Contributed by Martijn Courteaux (https://github.com/oneapi-src/oneTBB/pull/1347).
- Fixed the build on non-English locales. Contributed by Vladislav Shchapov (https://github.com/oneapi-src/oneTBB/pull/1450).
- Improved Bazel support. Contributed by Julian Amann (https://github.com/oneapi-src/oneTBB/pull/1434).
# oneTBB 2021.13 Release Notes
## :tada: New Features
- Extended the parallel_reduce and parallel_deterministic_reduce functional form API to better support rvalues reduction (https://github.com/uxlfoundation/oneTBB/pull/1299).
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293.
- When CPU resource coordination is enabled, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
- Using oneTBB on WASM* may cause applications to run in a single thread. See [Limitations of WASM Support](https://github.com/uxlfoundation/oneTBB/blob/master/WASM_Support.md#limitations).
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://uxlfoundation.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Improved security by excluding CWD from search of load-time dependencies.
- Improved performance on Apple* platforms by aligning block-time behavior with other OS.
- Improved performance on non-hybrid CPU hardware by reworking block-time behavior.
- Improved performance on ARM64 platform by fixing backoff behavior for spin loops.
- Improved performance when constraints API is used on server CPU HW with multiple NUMA nodes.
## :octocat: Open-Source Contributions Integrated
- Improved WASM support by fixing a segmentation fault happening if global tbb::task_scheduler_observer is used. Contributed by Santiago Ospina De Los Ríos https://github.com/oneapi-src/oneTBB/pull#1346).
# oneTBB 2021.12 Release Notes
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293.
- When CPU resource coordination is enabled, tasks from a lower-priority ``task_arena`` might be executed before tasks from a higher-priority ``task_arena``.
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://oneapi-src.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Fixed ``parallel_for_each`` algorithm behavior for iterators defining ``iterator_concept`` trait instead of ``iterator_category``.
- Fixed the redefinition issue for ``std::min`` and ``std::max`` on Windows* OS ([GitHub* #832](https://github.com/oneapi-src/oneTBB/issues/832)).
- Fixed the incorrect binary search order in ``TBBConfig.cmake``.
- Enabled the oneTBB library search using the pkg-config tool in Conda packages.
## :octocat: Open-Source Contributions Integrated
- Fixed the compiler warning for missing virtual destructor. Contributed by Elias Engelbert Plank (https://github.com/oneapi-src/oneTBB/pull/1215).
# oneTBB 2021.11 Release Notes
## :rotating_light: Known Limitations
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows* OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293).
- Using ``TBBConfig.cmake`` in 32-bit environment may cause incorrect linkage with 64-bit oneTBB library. As a workaround, set ``CMAKE_PREFIX_PATH``:
- On Linux* OS: to ``TBBROOT/lib32/``
- On Windows* OS: to ``TBBROOT/lib32/;TBBROOT/bin32/``
> **_NOTE:_** To see known limitations that impact all versions of oneTBB, refer to [oneTBB Documentation](https://oneapi-src.github.io/oneTBB/main/intro/limitations.html).
## :hammer: Issues Fixed
- Fixed ``tbb::this_task_arena()`` behavior for specific ``tbb::task_arena{1,0}``.
- Restored performance on systems with a high number of CPU cores that support ``_tpause``.
# oneTBB 2021.10 Release Notes
## :tada: New Features
- Since C++17, parallel algorithms and Flow Graph nodes are allowed to accept pointers to the member functions and member objects as the user-provided callables.
- Added missed member functions, such as assignment operators and swap function, to the ``concurrent_queue`` and ``concurrent_bounded_queue`` containers.
## :rotating_light: Known Limitations
- A static assert will cause compilation failures in oneTBB headers when compiling with clang 12.0.0 or newer if using the LLVM standard library with ``-ffreestanding`` and C++11/14 compiler options.
- An application using Parallel STL algorithms in libstdc++ versions 9 and 10 may fail to compile due to incompatible interface changes between earlier versions of Threading Building Blocks (TBB) and oneAPI Threading Building Blocks (oneTBB). Disable support for Parallel STL algorithms by defining ``PSTL_USE_PARALLEL_POLICIES`` (in libstdc++ 9) or ``_GLIBCXX_USE_TBB_PAR_BACKEND`` (in libstdc++ 10) macro to zero before inclusion of the first standard header file in each translation unit.
- On Linux* OS, if oneAPI Threading Building Blocks (oneTBB) or Threading Building Blocks (TBB) are installed in a system folder like ``/usr/lib64``, the application may fail to link due to the order in which the linker searches for libraries. Use the ``-L`` linker option to specify the correct location of oneTBB library. This issue does not affect the program execution.
- The ``oneapi::tbb::info`` namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc* version lower than 2.5.
- Using a hwloc* version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows* OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA* topology may be detected incorrectly on Windows* OS machines where the number of NUMA* node threads exceeds the size of 1 processor group.
- On Windows* OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying ``/wd4324`` to the compiler command line.
- oneTBB does not support ``fork()``, to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293).
## :hammer: Issues Fixed
- Fixed the hang in the reserve method of concurrent unordered containers ([GitHub* #1056](http://github.com/oneapi-src/oneTBB/issues/1056)).
- Fixed the C++20 three-way comparison feature detection ([GitHub* #1093](http://github.com/oneapi-src/oneTBB/issues/1093)).
- Fixed oneTBB integration with CMake* in the Conda* environment.
# oneTBB 2021.9 Release Notes
## :tada: New Features
- Hybrid CPU support is now a fully supported feature.
## :rotating_light: Known Limitations
- A static assert will cause compilation failures in oneTBB headers when compiling with clang 12.0.0 or newer if using the LLVM standard library with -ffreestanding and C++11/14 compiler options.
- An application using Parallel STL algorithms in libstdc++ versions 9 and 10 may fail to compile due to incompatible interface changes between earlier versions of Threading Building Blocks (TBB) and oneAPI Threading Building Blocks (oneTBB). Disable support for Parallel STL algorithms by defining PSTL_USE_PARALLEL_POLICIES (in libstdc++ 9) or _GLIBCXX_USE_TBB_PAR_BACKEND (in libstdc++ 10) macro to zero before inclusion of the first standard header file in each translation unit.
- On Linux* OS, if oneAPI Threading Building Blocks (oneTBB) or Threading Building Blocks (TBB) are installed in a system folder like /usr/lib64, the application may fail to link due to the order in which the linker searches for libraries. Use the -L linker option to specify the correct location of oneTBB library. This issue does not affect the program execution.
- The oneapi::tbb::info namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- oneTBB does not support fork(), to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293).
## :hammer: Issues Fixed
- Improved robustness of thread creation algorithm on Linux* OS.
- Enabled full support of Thread Sanitizer on macOS*
- Fixed the issue with destructor calls for uninitialized objects in oneapi::tbb::parallel_for_each algorithm (GitHub* #691)
- Fixed the issue with tbb::concurrent_lru_cache when items history capacity is zero (GitHub* #265)
- Fixed compilation issues on modern GCC* versions
## :octocat: Open-Source Contributions Integrated
- Fixed the issue reported by the Address Sanitizer. Contributed by Rui Ueyama (https://github.com/oneapi-src/oneTBB/pull/959).
- Fixed the input_type alias exposed by flow_graph::join_node. Contributed by Deepan (https://github.com/oneapi-src/oneTBB/pull/868).
# oneTBB 2021.8 Release Notes
## :rotating_light: Known Limitations
- A static assert causes compilation failures in oneTBB headers when compiling with Clang* 12.0.0 or newer if using the LLVM* standard library with -ffreestanding and C++11/14 compiler options.
- An application using Parallel STL algorithms in libstdc++ versions 9 and 10 may fail to compile due to incompatible interface changes between earlier versions of Threading Building Blocks (TBB) and oneAPI Threading Building Blocks (oneTBB). Disable support for Parallel STL algorithms by defining PSTL_USE_PARALLEL_POLICIES (in libstdc++ 9) or _GLIBCXX_USE_TBB_PAR_BACKEND (in libstdc++ 10) macro to zero before inclusion of the first standard header file in each translation unit.
- On Linux* OS, if oneAPI Threading Building Blocks (oneTBB) or Threading Building Blocks (TBB) are installed in a system folder like /usr/lib64, the application may fail to link due to the order in which the linker searches for libraries. Use the -L linker option to specify the correct location of oneTBB library. This issue does not affect the program execution.
- The oneapi::tbb::info namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows* OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- oneTBB does not support fork(), to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293).
## :hammer: Issues Fixed
- Fixed oneapi::tbb::concurrent_bounded_queue::pop return type (GitHub* [#807](https://github.com/oneapi-src/oneTBB/issues/807)).
- Fixed oneapi::tbb::concurrent_queue and oneapi::tbb::concurrent_bounded_queue with non-default constructible value types (GitHub* [#885](https://github.com/oneapi-src/oneTBB/issues/885)).
- Fixed incorrect splitting of iteration space in case there is no support for proportional splitting in custom ranges.
## :octocat: Open-Source Contributions Integrated
- Fix for full LTO* build, library and tests, on UNIX* OS systems. Contributed by Vladislav Shchapov (https://github.com/oneapi-src/oneTBB/pull/798).
# oneTBB 2021.7 Release Notes
## :rotating_light: Known Limitations
- A static assert causes compilation failures in oneTBB headers when compiling with Clang* 12.0.0 or newer if using the LLVM* standard library with -ffreestanding and C++11/14 compiler options.
- An application using Parallel STL algorithms in libstdc++ versions 9 and 10 may fail to compile due to incompatible interface changes between earlier versions of Threading Building Blocks (TBB) and oneAPI Threading Building Blocks (oneTBB). Disable support for Parallel STL algorithms by defining PSTL_USE_PARALLEL_POLICIES (in libstdc++ 9) or _GLIBCXX_USE_TBB_PAR_BACKEND (in libstdc++ 10) macro to zero before inclusion of the first standard header file in each translation unit.
- On Linux* OS, if oneAPI Threading Building Blocks (oneTBB) or Threading Building Blocks (TBB) are installed in a system folder like /usr/lib64, the application may fail to link due to the order in which the linker searches for libraries. Use the -L linker option to specify the correct location of oneTBB library. This issue does not affect the program execution.
- The oneapi::tbb::info namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows* OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- oneTBB does not support fork(), to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293).
## :hammer: Issues Fixed
- Memory allocator crash when allocating ~1TB on 64-bit systems (GitHub* [#838](https://github.com/oneapi-src/oneTBB/issues/838)).
- Fixed thread distribution over NUMA nodes on Windows* OS systems.
- For oneapi::tbb::suspend, it is guaranteed that the user-specified callable object is executed by the calling thread.
## :octocat: Open-Source Contributions Integrated
- Fix for full LTO* build, library and tests, on UNIX* OS systems. Contributed by Vladislav Shchapov (https://github.com/oneapi-src/oneTBB/pull/798).
# oneTBB 2021.6 Release Notes
## :tada: New Features
- Improved support and use of the latest C++ standards for parallel_sort that allows using this algorithm with user-defined and standard library-defined objects with modern semantics.
- The following features are now fully functional: task_arena extensions, collaborative_call_once, adaptive mutexes, heterogeneous overloads for concurrent_hash_map, and task_scheduler_handle.
- Added support for Windows* Server 2022 and Python 3.10.
## :rotating_light: Known Limitations
- An application using Parallel STL algorithms in libstdc++ versions 9 and 10 may fail to compile due to incompatible interface changes between earlier versions of Threading Building Blocks (TBB) and oneAPI Threading Building Blocks (oneTBB). Disable support for Parallel STL algorithms by defining PSTL_USE_PARALLEL_POLICIES (in libstdc++ 9) or _GLIBCXX_USE_TBB_PAR_BACKEND (in libstdc++ 10) macro to zero before inclusion of the first standard header file in each translation unit.
- On Linux* OS, if oneAPI Threading Building Blocks (oneTBB) or Threading Building Blocks (TBB) are installed in a system folder like /usr/lib64, the application may fail to link due to the order in which the linker searches for libraries. Use the -L linker option to specify the correct location of oneTBB library. This issue does not affect the program execution.
- The oneapi::tbb::info namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- oneTBB does not support fork(), to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293).
## :hammer: Issues Fixed
- Memory allocator crash on a system with an incomplete /proc/meminfo (GitHub* [#584](https://github.com/oneapi-src/oneTBB/issues/584)).
- Incorrect blocking of task stealing (GitHub* #[478](https://github.com/oneapi-src/oneTBB/issues/478)).
- Hang due to incorrect decrement of a limiter_node (GitHub* [#634](https://github.com/oneapi-src/oneTBB/issues/634)).
- Memory corruption in some rare cases when passing big messages in a flow graph (GitHub* [#639](https://github.com/oneapi-src/oneTBB/issues/639)).
- Possible deadlock in a throwable flow graph node with a lightweight policy. The lightweight policy is now ignored for functors that can throw exceptions (GitHub* [#420](https://github.com/oneapi-src/oneTBB/issues/420)).
- Crash when obtaining a range from empty ordered and unordered containers (GitHub* [#641](https://github.com/oneapi-src/oneTBB/issues/641)).
- Deadlock in a concurrent_vector resize() that could happen when the new size is less than the previous size (GitHub* [#733](https://github.com/oneapi-src/oneTBB/issues/733)).
## :octocat: Open-Source Contributions Integrated
- Improved aligned memory allocation. Contributed by Andrey Semashev (https://github.com/oneapi-src/oneTBB/pull/671).
- Optimized usage of atomic_fence on IA-32 and Intel(R) 64 architectures. Contributed by Andrey Semashev (https://github.com/oneapi-src/oneTBB/pull/328).
- Fixed incorrect definition of the assignment operator in containers. Contributed by Andrey Semashev (https://github.com/oneapi-src/oneTBB/issues/372).
# oneTBB 2021.5 Release Notes
## :rocket: Preview Features
- Extended task_group interface with a new run_and_wait overload to accept task_handle.
## :tada: New Features
- Enabled Microsoft Visual Studio* 2022 and Python 3.9 support.
## :rotating_light: Known Limitations
- An application using Parallel STL algorithms in libstdc++ versions 9 and 10 may fail to compile due to incompatible interface changes between earlier versions of Threading Building Blocks (TBB) and oneAPI Threading Building Blocks (oneTBB). Disable support for Parallel STL algorithms by defining PSTL_USE_PARALLEL_POLICIES (in libstdc++ 9) or _GLIBCXX_USE_TBB_PAR_BACKEND (in libstdc++ 10) macro to zero before inclusion of the first standard header file in each translation unit.
- On Linux* OS, if oneAPI Threading Building Blocks (oneTBB) or Threading Building Blocks (TBB) are installed in a system folder like /usr/lib64, the application may fail to link due to the order in which the linker searches for libraries. Use the -L linker option to specify the correct location of oneTBB library. This issue does not affect the program execution.
- The oneapi::tbb::info namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- oneTBB does not support fork(), to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
- C++ exception handling mechanism on Windows* OS on ARM64* might corrupt memory if an exception is thrown from any oneTBB parallel algorithm (see Windows* OS on ARM64* compiler issue: https://developercommunity.visualstudio.com/t/ARM64-incorrect-stack-unwinding-for-alig/1544293).
## :hammer: Issues Fixed
- Reworked synchronization mechanism to reduce contention when multiple task_arena's are used concurrently.
- Fixed possible correctness issue in queuing_rw_mutex on non-Intel platforms.
- Fixed GCC* 11 warnings.
- Fixed sporadic memory corruption.
# oneTBB 2021.4 Release Notes
## :rocket: Preview Features
- Introduced the collaborative_call_once algorithm that executes the callable object exactly once, but allows other threads to join oneTBB parallel construction used inside this callable object. Inspired by Ben FrantzDale and Henry Heffan.
## :rotating_light: Known Limitations
- An application using Parallel STL algorithms in libstdc++ versions 9 and 10 may fail to compile due to incompatible interface changes between earlier versions of Threading Building Blocks (TBB) and oneAPI Threading Building Blocks (oneTBB). Disable support for Parallel STL algorithms by defining PSTL_USE_PARALLEL_POLICIES (in libstdc++ 9) or _GLIBCXX_USE_TBB_PAR_BACKEND (in libstdc++ 10) macro to zero before inclusion of the first standard header file in each translation unit.
- On Linux* OS, if oneAPI Threading Building Blocks (oneTBB) or Threading Building Blocks (TBB) are installed in a system folder like /usr/lib64, the application may fail to link due to the order in which the linker searches for libraries. Use the -L linker option to specify the correct location of oneTBB library. This issue does not affect the program execution.
- The oneapi::tbb::info namespace interfaces might unexpectedly change the process affinity mask on Windows* OS systems (see https://github.com/open-mpi/hwloc/issues/366 for details) when using hwloc version lower than 2.5.
- Using a hwloc version other than 1.11, 2.0, or 2.5 may cause an undefined behavior on Windows OS. See https://github.com/open-mpi/hwloc/issues/477 for details.
- The NUMA topology may be detected incorrectly on Windows OS machines where the number of NUMA node threads exceeds the size of 1 processor group.
- On Windows OS on ARM64*, when compiling an application using oneTBB with the Microsoft* Compiler, the compiler issues a warning C4324 that a structure was padded due to the alignment specifier. Consider suppressing the warning by specifying /wd4324 to the compiler command line.
- oneTBB does not support fork(), to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
## :hammer: Issues Fixed
- Enabled full support of Address Sanitizer and Thread Sanitizer.
- Fixed a race condition in tbbmalloc that may cause a crash in realloc() when using tbbmalloc_proxy.
- Enabled GCC* 11 support.
- Fixed limiter_node behavior when an integral type is used as an argument for the DecrementType template parameter.
- Fixed a possible memory leak when the static or affinity partitioners are used.
- Fixed possible system oversubscription when using a process mask and an explicit number of threads in the task arena.
## :octocat: Open-Source Contributions Integrated
- Enabled PowerPC* Linux* OS support. Contributed by Mircho Rodozov (https://github.com/oneapi-src/oneTBB/pull/461)
- Improved UNIX* system support and enabled QNX Neutrino* RTOS support. Contributed by Pablo Romero (https://github.com/oneapi-src/oneTBB/pull/440)
- Enabled experimental Bazel* build system support. Contributed by Julian Amann (https://github.com/oneapi-src/oneTBB/pull/442)
- Enabled oneTBB build for Windows* OS on ARM64*. Contributed by Michael Vitrano (https://github.com/oneapi-src/oneTBB/pull/507)
- Added MinGW* and export attributes support. Contributed by Long Nguyen (https://github.com/oneapi-src/oneTBB/pull/351)
+66
View File
@@ -0,0 +1,66 @@
# Security Policy
As an open-source project, we understand the importance of and responsibility
for security. This Security Policy outlines our guidelines and procedures to
ensure the highest level of security and trust for oneTBB users.
## Supported Versions
Security vulnerabilities are fixed in the [latest version][1]
and delivered as a patch release. We don't guarantee security fixes to be
back-ported to older oneTBB versions.
## Report a Vulnerability
We are very grateful to the security researchers and users that report back
security vulnerabilities. We investigate every report thoroughly.
We strongly encourage you to report security vulnerabilities to us privately,
before disclosing them on public forums or opening a public GitHub* issue.
Report a vulnerability to us in one of two ways:
* Open a draft **[GitHub* Security Advisory][2]**
* Send an e-mail to: **security@uxlfoundation.org**.
Along with the report, provide the following info:
* A descriptive title.
* Your name and affiliation (if any).
* A description of the technical details of the vulnerabilities.
* A minimal example of the vulnerability so we can reproduce your findings.
* An explanation of who can exploit this vulnerability, and what they gain
doing so.
* Whether this vulnerability is public or known to third parties. If it is,
provide details.
### When Should I Report a Vulnerability?
* You think you discovered a potential security vulnerability in oneTBB.
* You are unsure how the potential vulnerability affects oneTBB.
* You think you discovered a vulnerability in another project or 3rd party
component on which oneTBB depends. If the issue is not fixed in the 3rd party
component, try to report directly there first.
### When Should I NOT Report a Vulnerability?
* You got an automated scan hit and are unable to provide details.
* You need help using oneTBB for security.
* You need help applying security-related updates.
* Your issue is not security-related.
## Security Reports Review Process
We aim to respond quickly to your inquiry and coordinate a fix and
disclosure with you. All confirmed security vulnerabilities will be addressed
according to severity level and impact on oneTBB. Normally, security issues
are fixed in the next planned release.
## Disclosure Policy
We will publish security advisories using the
[**GitHub Security Advisories feature**][3]
to keep our community well-informed, and will credit you for your findings
unless you prefer to stay anonymous. We request that you refrain from
exploiting the vulnerability or making it public before the official disclosure.
We will disclose the vulnerabilities and bugs as soon as possible once
mitigation is implemented and available.
## Feedback on This Policy
If you have any suggestions on how this Policy could be improved, submit
an issue or a pull request to this repository. **Do not** report
potential vulnerabilities or security flaws via a pull request.
[1]: https://github.com/uxlfoundation/oneTBB/releases/latest
[2]: https://github.com/uxlfoundation/oneTBB/security/advisories/new
[3]: https://github.com/uxlfoundation/oneTBB/security/advisories
+35
View File
@@ -0,0 +1,35 @@
<!--
******************************************************************************
* 
* 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.
*******************************************************************************/-->
# oneTBB Support
We are committed to providing support and assistance to help you make the most out of oneTBB.
Use the following methods if you face any challenges.
## Issues
If you have a problem, check out the [GitHub Issues](https://github.com/uxlfoundation/oneTBB/issues) to see if the issue you want to address is already reported.
You may find users that have encountered the same bug or have similar ideas for changes or updates.
You can use issues to report a problem, make a feature request, or add comments on an existing issue.
## Discussions
Visit the [GitHub Discussions](https://github.com/uxlfoundation/oneTBB/discussions) to engage with the community, ask questions, or help others.
## Email
Reach out to us privately via [email](mailto:inteltbbdevelopers@intel.com).
+88
View File
@@ -0,0 +1,88 @@
<!--
******************************************************************************
* 
* 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.
*******************************************************************************/-->
# System Requirements <!-- omit in toc -->
This document provides details about hardware, operating system, and software prerequisites for the oneAPI Threading Building Blocks (oneTBB).
## Table of Contents <!-- omit in toc -->
- [Supported Hardware](#supported-hardware)
- [Software](#software)
- [Supported Operating Systems](#supported-operating-systems)
- [Community-Supported Platforms](#community-supported-platforms)
- [Supported Compilers](#supported-compilers)
- [Limitations](#limitations)
## Supported Hardware
- Intel(R) Celeron(R) processor family
- Intel(R) Core* processor family
- Intel(R) Xeon(R) processor family
- Intel(R) Atom* processor family
- Non-Intel(R) processors compatible with the processors listed above
Changes to the list of supported hardware will be announced in advance with a deprecation period preceding removal or reduction of support.
## Software
### Supported Operating Systems
- Systems with Microsoft* Windows* operating systems:
- Microsoft* Windows* 10
- Microsoft* Windows* 11
- Microsoft* Windows* Server 2019
- Microsoft* Windows* Server 2022
- Microsoft* Windows* Server 2025
- Systems with Linux* operating systems:
- Amazon* Linux 2023
- Debian* 12, 13
- Fedora* 43, 44
- Rocky* Linux* 9, 10
- Red Hat* Enterprise Linux* 8, 9, 10
- SuSE* Linux* Enterprise Server 15 SP6 and SP7
- SuSE* Linux* Enterprise Server 16
- Ubuntu* 24.04, 26.04
- Systems with macOS* operating systems:
- macOS* 12.x, 13.x, 14.x, 15.x
- Systems with Android* operating systems:
- Android* 9
### Community-Supported Platforms
- MinGW*
- FreeBSD*
- Microsoft* Windows* on ARM*/ARM64*
- macOS* on ARM64*
### Supported Compilers
- Intel* oneAPI DPC++/C++ Compiler
- Microsoft* Visual C++ 14.2 (Microsoft* Visual Studio* 2019, Windows* OS only)
- Microsoft* Visual C++ 14.3 (Microsoft* Visual Studio* 2022, Windows* OS only)
- Microsoft* Visual C++ 14.5 (Microsoft* Visual Studio* 2026, Windows* OS only)
- For each supported Linux* operating system, the standard gcc version provided with that operating system is supported:
- GNU Compilers (gcc) 8.x – 16.x
- GNU C Library (glibc) version 2.28 – 2.43
- Clang* 7.x - 22.x
## Limitations
There are some cases where we cannot provide support for your platforms. It includes:
1. The platform is out of official support (met end of life). When you use an unsupported platform, you can face a security risk that can be difficult to resolve.
2. We do not have the infrastructure to test a platform. Therefore we cannot guarantee that oneTBB works correctly on that platform.
3. Changes affect more code than just platform-specific macros.
4. The platform is incompatible with oneTBB. Some platforms may have limitations that prevent oneTBB from working correctly. We cannot provide support in these cases as the issue is beyond our control.
5. The platform is modified or customized. If you made significant updates to your platform, it might be hard for us to find the root cause of the issue. Therefore, we may not be able to provide support as the modification could affect the oneTBB functionality.
We understand that these limitations can be frustrating. Thus, we suggest creating a branch specifically for the unsupported platform, allowing other users to contribute to or use your implementation.
+115
View File
@@ -0,0 +1,115 @@
# oneTBB Versioning Policies
There are several types of "versioning" used by the oneTBB project.
1. The *oneTBB specification version*
2. The *official oneTBB library version*
3. The *library interface version*
4. *API versioning* used to maintain backwards compatibility
The oneTBB project uses semantic versioning (https://semver.org/) and as a oneAPI Library,
the oneTBB project makes commitments around compatibility as described
[here](https://www.intel.com/content/www/us/en/docs/oneapi/programming-guide/2024-1/oneapi-library-compatibility.html).
With semantic versioning, a MAJOR version increment generally means an incompatible API change,
while a MINOR version increment means added functionality that is implemented in a backwards compatible manner.
## The oneTBB Specification Version
The oneTBB project is governed by the [UXL foundation](https://uxlfoundation.org/) and has
[an open specification](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/latest/elements/onetbb/source/nested-index).
Each release of the specification has a version number.
[As described in the specification](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/latest/elements/onetbb/source/configuration/version_information),
the value of the `ONETBB_SPEC_VERSION` macro in `oneapi/tbb/version.h` is latest specification of oneTBB fully
supported by the implementation.
## The oneTBB Library Version
The oneTBB library version can be thought of as the name of the release. If you want to find a specific
release in the repository (https://github.com/uxlfoundation/oneTBB), the tag you would look for corresponds
to the oneTBB library version.
[As described in the specification](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/latest/elements/onetbb/source/configuration/version_information),
the macros `TBB_VERSION_MAJOR`, `TBB_VERSION_MINOR`, `TBB_VERSION_STRING` in `oneapi/tbb/version.h`
provide the library version of the implementation that is being compiled against. The function
`const char* TBB_runtime_version();` can be used to query the library version of the oneTBB binary library that is
loaded at runtime.
## The oneTBB Interface Version
The oneTBB interface version is the public contract about the interface to the library including the
functions exported by the binary library and the types defined in the headers. The oneTBB library is designed
for backwards compatibility. It works well in the scenarios where components compile/link against a TBB version
X.Y. And then at runtime, the application loads a library version X.Z, where X.Z >= X.Y.
A minor version may add new functionality in the headers or in the binary library, including new entry points to the
binary library. An application compiled against an older minor version could not have used this new functionality
and therefore can safely use the newer binary library.
[As described in the specification](https://oneapi-spec.uxlfoundation.org/specifications/oneapi/latest/elements/onetbb/source/configuration/version_information),
the macros `TBB_INTERFACE_VERSION_MAJOR`, `TBB_INTERFACE_VERSION_MINOR`, `TBB_INTERFACE_VERSION` in `oneapi/tbb/version.h`
can be used to determine the interface version of the implementation that is being compiled against. The function
`int TBB_runtime_interface_version();` can be used to query the interface version of the oneTBB binary library that is
loaded at runtime.
### Shared Library Practices for Linux
On Linux we use a symlink system for binary libraries in the oneTBB distribution, and also explicitly set a soname.
The actual shared library is libtbb.so.X.Y but it is built with a –soname that uses only the major version number,
libtbb.so.X. In addition, there is a symlink from libtbb.so.X -> libtbb.so.X.Y and a symlink from
libtbb.so -> libtbb.so.X. Therefore, whether you build against libtbb.so, libtbb.so.X or libtbb.so.X.Y, your
application will have a dependency on libtbb.so.X.
A common development process is to compile and link against a library version X.Y. This creates
a dependency on libtbb.so.X. The packaged project then redistributes a TBB shared library that
is X.Z, where X.Z >= X.Y.
In the (unusual) case where the package does not redistribute a TBB library and instead depends on a version already
available on the install platform, it is safest to build against the oldest version you expect to encounter; in the
extreme this would be X.1. Of course, building against X.1 means no additional functionalility added in any later minor
release can be used during the development of the application.
### Shared Library Practices for Windows
On Windows, the TBB binary library has only the major version number, tbb12.dll.
## API versioning used to maintain backwards compatibility
This section is targeted at oneTBB contributors and will likely not be of interest to users of the
oneTBB library.
As mentioned previously, minor release may add new functionality, including modified definitions of classes
in the headers or new entry points into the binary library. To safely add this new functionality in a way
that avoids conflicts, oneTBB has namespaces for class definitions in the headers (that start with the
letter "d") and namespaces for symbols exported by the binary runtime library (that start with the
letter "r").
Below is an example of
[a function exported](https://github.com/uxlfoundation/oneTBB/blob/45c2298727d09556a523d6aeaec84ef23872eccf/src/tbb/parallel_pipeline.cpp#L446)
by the oneTBB runtime library:
namespace tbb {
namespace detail {
namespace r1 {
void __TBB_EXPORTED_FUNC parallel_pipeline(d1::task_group_context& cxt,
std::size_t max_token,
const d1::filter_node& fn);
}
}
}
This function is in the runtime namespace `r1` and takes `d1` versions of `task_group_context` and
`filter_node` classes as arguments. Backward incompatible changes added to the library can be added
to namespaces with incremented version numbers.
Rules for the `d` namespace include:
- If the layout of public class X is changed incompatibly, the “d” namespace number should be incremented.
- If there are existing entry points using the current version of class X, the old version of X should
be kept in the previous “d” namespace.
## API and ABI changes by release
For a detailed table of API and ABI changes across all oneTBB releases, see:
[API and ABI Changes by Release](https://uxlfoundation.github.io/oneTBB/main/intro/api_abi_changes.html)
+81
View File
@@ -0,0 +1,81 @@
<!--
******************************************************************************
* 
* 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.
*******************************************************************************/-->
# WASM Support
oneTBB extends its capabilities by offering robust support for ``WASM`` (see ``Limitation`` sections).
``WASM`` stands for WebAssembly, a low-level binary format for executing code in web browsers.
It is designed to be a portable target for compilers and efficient to parse and execute.
Using oneTBB with WASM, you can take full advantage of parallelism and concurrency while working on web-based applications, interactive websites, and a variety of other WASM-compatible platforms.
oneTBB offers WASM support through the integration with [Emscripten*](https://emscripten.org/docs/introducing_emscripten/index.html), a powerful toolchain for compiling C and C++ code into WASM-compatible runtimes.
## Build
**Prerequisites:** Download and install Emscripten*. See the [instructions](https://emscripten.org/docs/getting_started/downloads.html).
To build the system, run:
```
mkdir build && cd build
emcmake cmake .. -DCMAKE_CXX_COMPILER=em++ -DCMAKE_C_COMPILER=emcc -DTBB_STRICT=OFF -DCMAKE_CXX_FLAGS=-Wno-unused-command-line-argument -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=ON -DBUILD_SHARED_LIBS=OFF -DTBB_EXAMPLES=ON -DTBB_TEST=ON
```
To compile oneTBB without ``pthreads``, set the flag ``-DEMSCRIPTEN_WITHOUT_PTHREAD=true`` in the command above. By default, oneTBB uses the ``pthreads``.
```
cmake --build . <options>
cmake --install . <options>
```
Where:
* ``emcmake`` - a tool that sets up the environment for Emscripten*.
* ``-DCMAKE_CXX_COMPILER=em++`` - specifies the C++ compiler as Emscripten* C++ compiler.
* ``-DCMAKE_C_COMPILER=emcc`` - specifies the C compiler as Emscripten* C compiler.
> **_NOTE:_** See [CMake documentation](https://github.com/uxlfoundation/oneTBB/blob/master/cmake/README.md) to learn about other options.
## Run Test
To run tests, use:
```
ctest
```
# Limitations
You can successfully build your application with oneTBB using WASM, but you may not achieve optimal performance immediately. This is due to the limitation with nested Web Workers: a Web Worker cannot schedule another worker without help from a browser thread. This can lead to unexpected performance outcomes, such as the application running in serial.
Find more information in the [issue](https://github.com/emscripten-core/emscripten/discussions/21963) in the Emscripten repository.
To workaround this issue, try one of the following ways:
1. **Recommended Solution: Use the ``-sPROXY_TO_PTHREAD`` Flag**.
This flag splits the initial thread into a browser thread and a main thread (proxied by a Web Worker), effectively resolving the issue as the browser thread is always present in the event loop and can participate in Web Workers scheduling. Refer to the [Emscripten documentation](https://emscripten.org/docs/porting/pthreads.html) for more details about ``-sPROXY_TO_PTHREAD`` since using this flag may require refactoring the code.
2. **Alternative Solution: Warm Up the oneTBB Thread Pool**
Initialize the oneTBB thread pool before making the first call to oneTBB. This approach forces the browser thread to participate in Web Workers scheduling.
```cpp
int num_threads = tbb::this_task_arena::max_concurrency();
std::atomic<int> barrier{num_threads};
tbb::parallel_for(0, num_threads, [&barrier] (int) {
barrier--;
while (barrier > 0) {
// Send browser thread to event loop
std::this_thread::yield();
}
}, tbb::static_partitioner{});
```
> **_NOTE:_** Be aware that it might cause delays on the browser side.
+19
View File
@@ -0,0 +1,19 @@
# Copyright (c) 2021-2025 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.
# DISCLAIMER: Bazel support is community-based. The maintainers do not
# use Bazel internally. The Bazel build can have security risks or
# optimization gaps.
# WORKSPACE marker file needed by Bazel
-75
View File
@@ -1,75 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
DYLIB_KEY = -shared
LIBDL = -ldl
CPLUS = g++
CONLY = gcc
LIB_LINK_FLAGS = -shared
LIBS = -lpthread -ldl
C_FLAGS = $(CPLUS_FLAGS) -x c
ifeq ($(cfg), release)
CPLUS_FLAGS = -O2 -DUSE_PTHREAD -pthread
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD -pthread
endif
ASM=
ASM_FLAGS=
TBB_ASM.OBJ=
ifeq (powerpc,$(arch))
CPLUS_FLAGS += -maix64 -Wl,-G
LIB_LINK_FLAGS += -maix64 -Wl,-b64 -Wl,-brtl -Wl,-G
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASSEMBLY_SOURCE=ibm_aix51
ifeq (powerpc,$(arch))
TBB_ASM.OBJ = atomic_support.o
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-66
View File
@@ -1,66 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifndef arch
arch:=$(shell uname -p)
export arch
endif
ifndef runtime
gcc_version:=$(shell gcc -dumpversion)
os_version:=$(shell uname -r)
os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
endif
native_compiler := gcc
export compiler ?= gcc
debugger ?= gdb
CMD=$(SHELL) -c
CWD=$(shell pwd)
RM?=rm -f
RD?=rmdir
MD?=mkdir -p
NUL= /dev/null
SLASH=/
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_aix.sh $(VERSION_FLAGS) >version_string.ver
MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
ifdef LIBPATH
export LIBPATH := .:$(LIBPATH)
else
export LIBPATH := .
endif
####### Build settings ########################################################
OBJ = o
DLL = so
TBB.LST =
TBB.DEF =
TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
TBB.LIB = $(TBB.DLL)
LINK_TBB.LIB = $(TBB.LIB)
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = $(MALLOC.DLL)
LINK_MALLOC.LIB = $(MALLOC.LIB)
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
-110
View File
@@ -1,110 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wextra -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor -Wno-dangling-else
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
LIBDL =
CPLUS = clang++
CONLY = clang
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
LIBS += -lpthread -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
endif
ifneq (,$(stdlib))
CPLUS_FLAGS += -stdlib=$(stdlib)
LIB_LINK_FLAGS += -stdlib=$(stdlib)
endif
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ifeq (intel64,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m32 -march=pentium4
LIB_LINK_FLAGS += -m32
endif
ifeq (ppc64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ppc32,$(arch))
CPLUS_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
ifeq (bg,$(arch))
CPLUS = bgclang++
CONLY = bgclang
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-93
View File
@@ -1,93 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
DYLIB_KEY = -shared
WARNING_SUPPRESS = -Wno-parentheses
CPLUS = g++
CONLY = gcc
LIB_LINK_FLAGS = -shared
LIBS = -lpthread
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 -dumpversion | egrep "^([6-9])"))
# keep pre-contruction stores for zero initialization
DSE_KEY = -flifetime-dse=1
endif
ifeq ($(cfg), release)
CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
endif
ASM=
ASM_FLAGS=
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ifeq (ia64,$(arch))
# Position-independent code (PIC) is a must on IA-64 architecture, even for regular (not shared) executables
CPLUS_FLAGS += $(PIC_KEY)
endif
ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASSEMBLY_SOURCE=$(arch)-gas
ifeq (ia64,$(arch))
ASM=as
TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
MALLOC_ASM.OBJ = atomic_support.o lock_byte.o pause.o
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-74
View File
@@ -1,74 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifndef arch
ifeq ($(shell uname -m),i386)
export arch:=ia32
endif
ifeq ($(shell uname -m),ia64)
export arch:=ia64
endif
ifeq ($(shell uname -m),amd64)
export arch:=intel64
endif
endif
ifndef runtime
gcc_version:=$(shell gcc -dumpversion)
os_version:=$(shell uname -r)
os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
endif
native_compiler := gcc
export compiler ?= gcc
debugger ?= gdb
CMD=$(SHELL) -c
CWD=$(shell pwd)
RM?=rm -f
RD?=rmdir
MD?=mkdir -p
NUL= /dev/null
SLASH=/
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(VERSION_FLAGS) >version_string.ver
MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
ifdef LD_LIBRARY_PATH
export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
else
export LD_LIBRARY_PATH := .
endif
####### Build settings ########################################################
OBJ = o
DLL = so
LIBEXT=so
TBB.LST =
TBB.DEF =
TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
TBB.LIB = $(TBB.DLL)
LINK_TBB.LIB = $(TBB.LIB)
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = $(MALLOC.DLL)
LINK_MALLOC.LIB = $(MALLOC.LIB)
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
-166
View File
@@ -1,166 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
# TODO: investigate why version_string.ver is not complete when $(RML_SERVER.OBJ) is being compiled.
.NOTPARALLEL:
tbb_root ?= $(TBBROOT)
BUILDING_PHASE=1
TEST_RESOURCE = $(RML.RES)
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
ifeq (android,$(target))
$(error "RML is not supported on Android")
endif
# default target
default_rml: rml rml_test
RML_ROOT ?= $(tbb_root)/src/rml
RML_SERVER_ROOT = $(RML_ROOT)/server
VPATH = $(tbb_root)/src/tbb $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE)
VPATH += $(RML_ROOT)/server $(RML_ROOT)/client $(RML_ROOT)/test $(tbb_root)/src/test
include $(tbb_root)/build/common_rules.inc
#--------------------------------------------------------------------------
# Define rules for making the RML server shared library and client objects.
#--------------------------------------------------------------------------
# Object files that make up RML server
RML_SERVER.OBJ = rml_server.$(OBJ)
# Object files that RML clients need
RML_TBB_CLIENT.OBJ ?= rml_tbb.$(OBJ) dynamic_link_rml.$(OBJ)
RML_OMP_CLIENT.OBJ ?= rml_omp.$(OBJ) omp_dynamic_link.$(OBJ)
RML.OBJ = $(RML_SERVER.OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
ifeq (windows,$(tbb_os))
RML_ASM.OBJ = $(if $(findstring intel64,$(arch)),$(TBB_ASM.OBJ))
endif
ifeq (linux,$(tbb_os))
RML_ASM.OBJ = $(if $(findstring ia64,$(arch)),$(TBB_ASM.OBJ))
endif
RML_TBB_DEP= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) concurrent_vector_rml.$(OBJ) semaphore_rml.$(OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
TBB_DEP_NON_RML_TEST?= cache_aligned_allocator_rml.$(OBJ) dynamic_link_rml.$(OBJ) $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ) tbb_misc_ex_rml.$(OBJ)
ifeq ($(cfg),debug)
RML_TBB_DEP+= spin_mutex_rml.$(OBJ)
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ) tbb_misc_rml.$(OBJ)
else
TBB_DEP_RML_TEST?= $(RML_ASM.OBJ)
endif
LIBS += $(LIBDL)
INCLUDES += $(INCLUDE_KEY)$(RML_ROOT)/include $(INCLUDE_KEY).
T_INCLUDES = $(INCLUDES) $(INCLUDE_KEY)$(tbb_root)/src/test $(INCLUDE_KEY)$(RML_SERVER_ROOT)
ifeq ($(rml_wcrm),1)
CPLUS_FLAGS+=/DRML_USE_WCRM
endif
# Suppress superfluous warnings for RML compilation
R_CPLUS_FLAGS = $(subst DO_ITT_NOTIFY,DO_ITT_NOTIFY=0,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) \
$(DEFINE_KEY)TBB_USE_THREADING_TOOLS=0 $(DEFINE_KEY)__TBB_RML_STATIC=1 $(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1
%.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(INCLUDES) $<
ifeq (linux,$(tbb_os))
omp_dynamic_link.$(OBJ): CPLUS_FLAGS+=-fno-exceptions
endif
tbb_misc_rml.$(OBJ) $(RML_SERVER.OBJ): version_string.ver
RML_TEST.OBJ = test_job_automaton.$(OBJ) test_thread_monitor.$(OBJ) test_rml_tbb.$(OBJ) test_rml_omp.$(OBJ) test_rml_mixed.$(OBJ)
$(RML_TBB_DEP): %_rml.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(R_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(INCLUDES) $<
$(RML_TEST.OBJ): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(R_CPLUS_FLAGS) $(PIC_KEY) $(T_INCLUDES) $<
ifneq (,$(RML.DEF))
rml.def: $(RML.DEF)
$(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
LIB_LINK_FLAGS += $(EXPORT_KEY)rml.def
$(RML.DLL): rml.def
endif
$(RML.DLL): CPLUS_FLAGS += $(SDL_FLAGS)
$(RML.DLL): BUILDING_LIBRARY = $(RML.DLL)
$(RML.DLL): $(RML_TBB_DEP) $(RML_SERVER.OBJ) $(RML.RES) $(RML_NO_VERSION.DLL) $(RML_ASM.OBJ)
$(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(RML.DLL) $(RML_SERVER.OBJ) $(RML_TBB_DEP) $(RML_ASM.OBJ) $(RML.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
ifneq (,$(RML_NO_VERSION.DLL))
$(RML_NO_VERSION.DLL):
echo "INPUT ($(RML.DLL))" > $(RML_NO_VERSION.DLL)
endif
rml: $(RML.DLL) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ)
#------------------------------------------------------
# End of rules for making the RML server shared library
#------------------------------------------------------
#------------------------------------------------------
# Define rules for making the RML unit tests
#------------------------------------------------------
add_debug=$(basename $(1))_debug$(suffix $(1))
cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
RML_TESTS = test_job_automaton.$(TEST_EXT) test_thread_monitor.$(TEST_EXT)
RML_CUSTOM_TESTS = test_rml_tbb.$(TEST_EXT) test_rml_omp.$(TEST_EXT) test_rml_mixed.$(TEST_EXT) test_rml_omp_c_linkage.$(TEST_EXT)
test_rml_tbb.$(TEST_EXT): test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_tbb.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
test_rml_omp.$(TEST_EXT): test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_omp.$(OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
test_rml_mixed.$(TEST_EXT): test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) test_rml_mixed.$(OBJ) $(RML_TBB_CLIENT.OBJ) $(RML_OMP_CLIENT.OBJ) $(TBB_DEP_RML_TEST) $(LIBS) $(LINK_FLAGS)
rml_omp_stub.$(OBJ): rml_omp_stub.cpp
$(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(T_INCLUDES) $(PIC_KEY) $<
test_rml_omp_c_linkage.$(TEST_EXT): test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ)
$(CONLY) $(C_FLAGS) $(OUTPUT_KEY)$@ test_rml_omp_c_linkage.$(OBJ) rml_omp_stub.$(OBJ) omp_dynamic_link.$(OBJ) $(LIBS) $(LINK_FLAGS)
$(RML_TESTS): %.$(TEST_EXT): %.$(OBJ) $(TBB_DEP_NON_RML_TEST)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(TBB_DEP_NON_RML_TEST) $(LIBS) $(LINK_FLAGS)
### run_cmd is usually empty
rml_test: $(call cross_suffix,$(RML.DLL)) $(TEST_PREREQUISITE) $(RML_TESTS) $(RML_CUSTOM_TESTS)
$(run_cmd) ./test_job_automaton.$(TEST_EXT) $(args)
$(run_cmd) ./test_thread_monitor.$(TEST_EXT) $(args)
$(run_cmd) ./test_rml_tbb.$(TEST_EXT) $(args)
$(run_cmd) ./test_rml_omp.$(TEST_EXT) $(args)
$(run_cmd) ./test_rml_mixed.$(TEST_EXT) $(args)
$(run_cmd) ./test_rml_omp_c_linkage.$(TEST_EXT) $(args)
#------------------------------------------------------
# End of rules for making the TBBMalloc unit tests
#------------------------------------------------------
# Include automatically generated dependencies
-include *.d
-118
View File
@@ -1,118 +0,0 @@
# Copyright (c) 2005-2016 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 TBB 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))
default_tbb: $(TBB.DLL)
.PHONY: default_tbb tbbvars clean
.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)__TBB_BUILD=1
# Object files (that were compiled from C++ code) that gmake up TBB
TBB_CPLUS.OBJ = concurrent_hash_map.$(OBJ) \
concurrent_queue.$(OBJ) \
concurrent_vector.$(OBJ) \
dynamic_link.$(OBJ) \
itt_notify.$(OBJ) \
cache_aligned_allocator.$(OBJ) \
pipeline.$(OBJ) \
queuing_mutex.$(OBJ) \
queuing_rw_mutex.$(OBJ) \
reader_writer_lock.$(OBJ) \
spin_rw_mutex.$(OBJ) \
x86_rtm_rw_mutex.$(OBJ) \
spin_mutex.$(OBJ) \
critical_section.$(OBJ) \
mutex.$(OBJ) \
recursive_mutex.$(OBJ) \
condition_variable.$(OBJ) \
tbb_thread.$(OBJ) \
concurrent_monitor.$(OBJ) \
semaphore.$(OBJ) \
private_server.$(OBJ) \
rml_tbb.$(OBJ) \
tbb_misc.$(OBJ) \
tbb_misc_ex.$(OBJ) \
task.$(OBJ) \
task_group_context.$(OBJ) \
governor.$(OBJ) \
market.$(OBJ) \
arena.$(OBJ) \
scheduler.$(OBJ) \
observer_proxy.$(OBJ) \
tbb_statistics.$(OBJ) \
tbb_main.$(OBJ)
# OLD/Legacy object files for backward binary compatibility
ifeq (,$(findstring $(DEFINE_KEY)TBB_NO_LEGACY,$(CPLUS_FLAGS)))
TBB_CPLUS_OLD.OBJ = \
concurrent_vector_v2.$(OBJ) \
concurrent_queue_v2.$(OBJ) \
spin_rw_mutex_v2.$(OBJ) \
task_v2.$(OBJ)
endif
# Object files that gmake up TBB (TBB_ASM.OBJ is platform-specific)
TBB.OBJ = $(TBB_CPLUS.OBJ) $(TBB_CPLUS_OLD.OBJ) $(TBB_ASM.OBJ)
# Suppress superfluous warnings for TBB compilation
WARNING_KEY += $(WARNING_SUPPRESS)
include $(tbb_root)/build/common_rules.inc
ifneq (,$(TBB.DEF))
tbb.def: $(TBB.DEF) $(TBB.LST)
$(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(INCLUDES) > $@
LIB_LINK_FLAGS += $(EXPORT_KEY)tbb.def
$(TBB.DLL): tbb.def
endif
tbbvars.sh:
$(MAKE_TBBVARS)
$(TBB.DLL): BUILDING_LIBRARY = $(TBB.DLL)
$(TBB.DLL): $(TBB.OBJ) $(TBB.RES) tbbvars.sh $(TBB_NO_VERSION.DLL)
$(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(TBB.DLL) $(TBB.OBJ) $(TBB.RES) $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS)
ifneq (,$(TBB_NO_VERSION.DLL))
$(TBB_NO_VERSION.DLL):
echo "INPUT ($(TBB.DLL))" > $(TBB_NO_VERSION.DLL)
endif
#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
-236
View File
@@ -1,236 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
# default target
default_malloc: malloc malloc_test
tbb_root ?= $(TBBROOT)
BUILDING_PHASE=1
TEST_RESOURCE = $(MALLOC.RES)
TESTFILE=tbbmalloc
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,$(call cross_cfg,_$(cfg)))
MALLOC_ROOT ?= $(tbb_root)/src/tbbmalloc
MALLOC_SOURCE_ROOT ?= $(MALLOC_ROOT)
VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
VPATH += $(MALLOC_ROOT) $(MALLOC_SOURCE_ROOT)
CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBBMALLOC_NO_IMPLICIT_LINKAGE=1)
TEST_SUFFIXES=proxy
TEST_PREREQUISITE+=$(MALLOC.LIB)
LINK_FILES+=$(LINK_MALLOC.LIB)
include $(tbb_root)/build/common_rules.inc
ORIG_CPLUS_FLAGS:=$(CPLUS_FLAGS)
ORIG_INCLUDES:=$(INCLUDES)
ORIG_LINK_MALLOC.LIB:=$(LINK_MALLOC.LIB)
#------------------------------------------------------
# Define rules for making the TBBMalloc shared library.
#------------------------------------------------------
# Object files that make up TBBMalloc
MALLOC_CPLUS.OBJ = backend.$(OBJ) large_objects.$(OBJ) backref.$(OBJ) tbbmalloc.$(OBJ)
MALLOC.OBJ := $(MALLOC_CPLUS.OBJ) $(MALLOC_ASM.OBJ) itt_notify_malloc.$(OBJ) frontend.$(OBJ)
PROXY.OBJ := proxy.$(OBJ) tbb_function_replacement.$(OBJ)
M_CPLUS_FLAGS := $(subst $(WARNING_KEY),,$(M_CPLUS_FLAGS)) $(DEFINE_KEY)__TBBMALLOC_BUILD=1
M_INCLUDES := $(INCLUDES) $(INCLUDE_KEY)$(MALLOC_ROOT) $(INCLUDE_KEY)$(MALLOC_SOURCE_ROOT)
# Suppress superfluous warnings for TBBMalloc compilation
$(MALLOC.OBJ): M_CPLUS_FLAGS += $(WARNING_SUPPRESS)
# Suppress superfluous warnings for TBBMalloc proxy compilation
$(PROXY.OBJ): CPLUS_FLAGS += $(WARNING_SUPPRESS)
frontend.$(OBJ): frontend.cpp version_string.ver
$(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(M_INCLUDES) $(INCLUDE_KEY). $<
$(PROXY.OBJ): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(DEFINE_KEY)__TBBMALLOC_BUILD=1 $(M_INCLUDES) $<
$(MALLOC_CPLUS.OBJ): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(M_INCLUDES) $<
itt_notify_malloc.$(OBJ): itt_notify.cpp
$(CPLUS) $(COMPILE_ONLY) $(M_CPLUS_FLAGS) $(PIC_KEY) $(DSE_KEY) $(OUTPUTOBJ_KEY)$@ $(INCLUDES) $<
MALLOC_LINK_FLAGS = $(LIB_LINK_FLAGS)
PROXY_LINK_FLAGS = $(LIB_LINK_FLAGS)
ifneq (,$(MALLOC.DEF))
tbbmalloc.def: $(MALLOC.DEF)
$(CPLUS) $(PREPROC_ONLY) $< $(M_CPLUS_FLAGS) $(WARNING_SUPPRESS) $(INCLUDES) > $@
MALLOC_LINK_FLAGS += $(EXPORT_KEY)tbbmalloc.def
$(MALLOC.DLL): tbbmalloc.def
endif
$(MALLOC.DLL) $(MALLOCPROXY.DLL): CPLUS_FLAGS += $(SDL_FLAGS)
$(MALLOC.DLL) $(MALLOCPROXY.DLL): M_CPLUS_FLAGS += $(SLD_FLAGS)
$(MALLOC.DLL): BUILDING_LIBRARY = $(MALLOC.DLL)
$(MALLOC.DLL): $(MALLOC.OBJ) $(MALLOC.RES) $(MALLOC_NO_VERSION.DLL)
$(subst $(CPLUS),$(CONLY),$(LIB_LINK_CMD)) $(LIB_OUTPUT_KEY)$(MALLOC.DLL) $(MALLOC.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(MALLOC_LINK_FLAGS)
ifneq (,$(MALLOCPROXY.DEF))
tbbmallocproxy.def: $(MALLOCPROXY.DEF)
$(CPLUS) $(PREPROC_ONLY) $< $(CPLUS_FLAGS) $(WARNING_SUPPRESS) $(INCLUDES) > $@
PROXY_LINK_FLAGS += $(EXPORT_KEY)tbbmallocproxy.def
$(MALLOCPROXY.DLL): tbbmallocproxy.def
endif
ifneq (,$(MALLOCPROXY.DLL))
$(MALLOCPROXY.DLL): BUILDING_LIBRARY = $(MALLOCPROXY.DLL)
$(MALLOCPROXY.DLL): $(PROXY.OBJ) $(MALLOCPROXY_NO_VERSION.DLL) $(MALLOC.DLL) $(MALLOC.RES)
$(LIB_LINK_CMD) $(LIB_OUTPUT_KEY)$(MALLOCPROXY.DLL) $(PROXY.OBJ) $(MALLOC.RES) $(LIB_LINK_LIBS) $(LINK_MALLOC.LIB) $(PROXY_LINK_FLAGS)
endif
ifneq (,$(MALLOC_NO_VERSION.DLL))
$(MALLOC_NO_VERSION.DLL):
echo "INPUT ($(MALLOC.DLL))" > $(MALLOC_NO_VERSION.DLL)
endif
ifneq (,$(MALLOCPROXY_NO_VERSION.DLL))
$(MALLOCPROXY_NO_VERSION.DLL):
echo "INPUT ($(MALLOCPROXY.DLL))" > $(MALLOCPROXY_NO_VERSION.DLL)
endif
malloc: $(MALLOC.DLL) $(MALLOCPROXY.DLL)
malloc_dll: $(MALLOC.DLL)
malloc_proxy_dll: $(MALLOCPROXY.DLL)
.PHONY: malloc malloc_dll malloc_proxy_dll
#------------------------------------------------------
# End of rules for making the TBBMalloc shared library
#------------------------------------------------------
#------------------------------------------------------
# Define rules for making the TBBMalloc unit tests
#------------------------------------------------------
# --------- The list of TBBMalloc unit tests ----------
MALLOC_TESTS = test_ScalableAllocator.$(TEST_EXT) \
test_ScalableAllocator_STL.$(TEST_EXT) \
test_malloc_compliance.$(TEST_EXT) \
test_malloc_regression.$(TEST_EXT) \
test_malloc_init_shutdown.$(TEST_EXT) \
test_malloc_pools.$(TEST_EXT) \
test_malloc_pure_c.$(TEST_EXT) \
test_malloc_whitebox.$(TEST_EXT) \
test_malloc_used_by_lib.$(TEST_EXT) \
test_malloc_lib_unload.$(TEST_EXT)
ifneq (,$(MALLOCPROXY.DLL))
MALLOC_TESTS += test_malloc_overload.$(TEST_EXT) \
test_malloc_overload_proxy.$(TEST_EXT) \
test_malloc_atexit.$(TEST_EXT)
endif
# -----------------------------------------------------
# ------------ Set test specific variables ------------
ifeq (windows.gcc,$(tbb_os).$(compiler))
test_malloc_overload.$(TEST_EXT): LIBS += $(MALLOCPROXY.LIB)
endif
MALLOC_M_CPLUS_TESTS = test_malloc_whitebox.$(TEST_EXT) test_malloc_lib_unload.$(TEST_EXT) \
test_malloc_used_by_lib.$(TEST_EXT)
MALLOC_NO_LIB_TESTS = test_malloc_whitebox.$(TEST_EXT) test_malloc_lib_unload.$(TEST_EXT) \
test_malloc_used_by_lib.$(TEST_EXT) test_malloc_overload.$(TEST_EXT)
MALLOC_LINK_PROXY_TESTS = test_malloc_overload_proxy.$(TEST_EXT)
MALLOC_ADD_DLL_TESTS = test_malloc_lib_unload.$(TEST_EXT) test_malloc_used_by_lib.$(TEST_EXT) \
test_malloc_atexit.$(TEST_EXT)
# TODO: implement accurate warning suppression for tests to unify with Makefile.test.
$(MALLOC_M_CPLUS_TESTS): CPLUS_FLAGS=$(M_CPLUS_FLAGS)
$(MALLOC_M_CPLUS_TESTS): INCLUDES=$(M_INCLUDES)
$(MALLOC_NO_LIB_TESTS): LINK_MALLOC.LIB=
$(MALLOC_NO_LIB_TESTS): LINK_FLAGS+=$(LIBDL)
$(MALLOC_LINK_PROXY_TESTS): LINK_MALLOC.LIB=$(LINK_MALLOCPROXY.LIB)
ifneq (,$(DYLIB_KEY))
$(MALLOC_ADD_DLL_TESTS): %.$(TEST_EXT): %_dll.$(DLL)
$(MALLOC_ADD_DLL_TESTS): TEST_LIBS+=$(@:.$(TEST_EXT)=_dll.$(LIBEXT))
endif
test_malloc_over%.$(TEST_EXT): CPLUS_FLAGS=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
test_malloc_over%.$(TEST_EXT): INCLUDES=$(M_INCLUDES)
test_malloc_overload_proxy.$(TEST_EXT): LINK_FLAGS+=$(LIBDL)
test_malloc_atexit_dll.$(DLL): CPLUS_FLAGS=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
test_malloc_atexit.$(TEST_EXT): CPLUS_FLAGS=$(subst /MT,/MD,$(M_CPLUS_FLAGS))
test_malloc_atexit.$(TEST_EXT): LINK_FLAGS+=$(LIBDL)
# on Ubuntu 11.10 linker called with --as-needed, so dependency on libtbbmalloc_proxy
# is not created, and malloc overload via linking with -ltbbmalloc_proxy is not working.
# Overcome with --no-as-needed.
ifeq (linux.gcc,$(tbb_os).$(compiler))
test_malloc_atexit.$(TEST_EXT): MALLOCPROXY.LIB := -Wl,--no-as-needed $(MALLOCPROXY.LIB)
endif
# The test isn't added to MALLOC_LINK_PROXY_TESTS, because we need both
# tbbmalloc and proxy libs. For platforms other than Android it's enough
# to modify LINK_MALLOC.LIB for TEST_EXT target only. But under Android build
# of DLL and TEST_EXT can be requested independently, so there is no chance
# to set LINK_MALLOC.LIB in TEST_EXT build rule, and affect DLL build.
test_malloc_atexit.$(TEST_EXT): LINK_MALLOC.LIB := $(LINK_MALLOC.LIB) $(LINK_MALLOCPROXY.LIB)
test_malloc_atexit_dll.$(DLL): LINK_MALLOC.LIB := $(LINK_MALLOC.LIB) $(LINK_MALLOCPROXY.LIB)
test_malloc_whitebox.$(TEST_EXT): $(MALLOC_ASM.OBJ) version_string.ver
test_malloc_whitebox.$(TEST_EXT): INCLUDES+=$(INCLUDE_KEY).
test_malloc_whitebox.$(TEST_EXT): LINK_FILES+=$(MALLOC_ASM.OBJ)
# Some _dll targets need to restore variables since they are changed by parent
# target-specific rule of its .exe targets
test_malloc_lib_unload_dll.$(DLL): CPLUS_FLAGS=$(ORIG_CPLUS_FLAGS)
test_malloc_lib_unload_dll.$(DLL): INCLUDES=$(ORIG_INCLUDES)
test_malloc_used_by_lib_dll.$(DLL): CPLUS_FLAGS=$(subst /MT,/LD,$(M_CPLUS_FLAGS))
test_malloc_used_by_lib_dll.$(DLL): LINK_FILES+=$(ORIG_LINK_MALLOC.LIB)
test_malloc_used_by_lib_dll.$(DLL): LIBDL=
# -----------------------------------------------------
# ---- The list of TBBMalloc test running commands ----
# run_cmd is usually empty
malloc_test: $(MALLOC.DLL) malloc_test_no_depends
malloc_test_no_depends: $(TEST_PREREQUISITE) $(MALLOC_TESTS)
$(run_cmd) ./test_malloc_pools.$(TEST_EXT) $(args) 1:4
ifneq (,$(MALLOCPROXY.DLL))
$(run_cmd) ./test_malloc_atexit.$(TEST_EXT) $(args)
$(run_cmd) $(TEST_LAUNCHER) -l $(MALLOCPROXY.DLL) ./test_malloc_overload.$(TEST_EXT) $(args)
$(run_cmd) $(TEST_LAUNCHER) ./test_malloc_overload_proxy.$(TEST_EXT) $(args)
endif
$(run_cmd) $(TEST_LAUNCHER) ./test_malloc_lib_unload.$(TEST_EXT) $(args)
$(run_cmd) $(TEST_LAUNCHER) ./test_malloc_used_by_lib.$(TEST_EXT)
$(run_cmd) ./test_malloc_whitebox.$(TEST_EXT) $(args) 1:4
$(run_cmd) $(TEST_LAUNCHER) -u ./test_malloc_compliance.$(TEST_EXT) $(args) 1:4
$(run_cmd) ./test_ScalableAllocator.$(TEST_EXT) $(args)
$(run_cmd) ./test_ScalableAllocator_STL.$(TEST_EXT) $(args)
$(run_cmd) ./test_malloc_regression.$(TEST_EXT) $(args)
$(run_cmd) ./test_malloc_init_shutdown.$(TEST_EXT) $(args)
$(run_cmd) ./test_malloc_pure_c.$(TEST_EXT) $(args)
# -----------------------------------------------------
#------------------------------------------------------
# End of rules for making the TBBMalloc unit tests
#------------------------------------------------------
# Include automatically generated dependencies
-include *.d
-109
View File
@@ -1,109 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
# default target
default_tbbproxy: tbbproxy tbbproxy_test
tbb_root ?= $(TBBROOT)
BUILDING_PHASE=1
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,_$(cfg))
PROXY_ROOT ?= $(tbb_root)/src/tbbproxy
PROXY_SOURCE_ROOT ?= $(PROXY_ROOT)
VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/test
VPATH += $(PROXY_ROOT) $(PROXY_SOURCE_ROOT)
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DLL_NAME=$(TBB.DLL)
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_LST=$(TBB.LST)
CPLUS_FLAGS += $(foreach dir,$(VPATH),$(INCLUDE_KEY)$(dir))
CPLUS_FLAGS += $(PIC_KEY) $(DSE_KEY)
include $(tbb_root)/build/common_rules.inc
#------------------------------------------------------
# Define rules for making the TBB Proxy static library.
#------------------------------------------------------
# Object files that make up TBB Proxy
PROXY_CPLUS.OBJ = tbbproxy.$(OBJ)
PROXY_ASM.OBJ = tbbproxy-asm.$(OBJ)
PROXY.OBJ := $(PROXY_CPLUS.OBJ) $(PROXY_ASM.OBJ)
# Not using intrinsics prevents undesired dependence on ICL libraries (e.g. libirc).
# Not using default libs prevents link issues caused by different CRT versions in tbbproxy and in an app.
$(PROXY.OBJ): CPLUS_FLAGS += $(DEFINE_KEY)ARCH_$(arch) $(DEFINE_KEY)OS_$(tbb_os) $(NOINTRINSIC_KEY) $(NODEFAULTLIB_KEY)
$(PROXY_CPLUS.OBJ): CPLUS_FLAGS+=$(if $(filter windows.%cl,$(tbb_os).$(compiler)),/Fdtbbproxy$(DEBUG_SUFFIX).pdb)
$(PROXY_CPLUS.OBJ): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(INCLUDES) $<
$(PROXY.LIB): $(PROXY.OBJ)
$(AR) $(AR_FLAGS) $(AR_OUTPUT_KEY)$@ $^
.PRECIOUS : %.$(ASMEXT)
tbbproxy-asm.$(ASMEXT) : tbbproxy-$(tbb_os).$(ASMEXT) $(TBB.LST) $(TBB-OBJECTS.LST)
$(CPLUS) $(PREPROC_ONLY) $< $(INCLUDES) $(CPLUS_FLAGS) $(DEFINE_KEY)__TBB_BUILD=1 > $@
.PHONY: tbbproxy
ifeq (windows,$(tbb_os))
tbbproxy: $(PROXY.LIB)
else
tbbproxy:
endif
#------------------------------------------------------
# End of rules for making the TBB Proxy static library
#------------------------------------------------------
#------------------------------------------------------
# Define rules for making the TBB Proxy unit tests
#------------------------------------------------------
add_debug=$(basename $(1))_debug$(suffix $(1))
cross_suffix=$(if $(crosstest),$(if $(DEBUG_SUFFIX),$(subst _debug,,$(1)),$(call add_debug,$(1))),$(1))
PROXY_LIB = $(call cross_suffix,$(PROXY.LIB))
PROXY_TESTS_SRCS = test_runtime_loader.cpp
PROXY_TESTS_OBJS = $(PROXY_TESTS_SRCS:.cpp=.$(OBJ))
PROXY_TESTS_EXES = $(PROXY_TESTS_OBJS:.$(OBJ)=.$(TEST_EXT))
# Run rules.
.PHONY: tbbproxy_test
ifeq (windows,$(tbb_os))
tbbproxy_test: $(call cross_suffix,$(PROXY.LIB)) $(TEST_PREREQUISITE) $(PROXY_TESTS_EXES)
$(run_cmd) ./test_runtime_loader.$(TEST_EXT) $(args)
else
tbbproxy_test:
endif
# Link rules.
$(PROXY_TESTS_EXES): %.$(TEST_EXT): %.$(OBJ) $(PROXY_LIB)
$(CPLUS) $(OUTPUT_KEY)$@ $(CPLUS_FLAGS) $< $(PROXY_LIB) $(LIBS) $(LIBDL) $(LINK_FLAGS)
# Compilation rules.
$(PROXY_TESTS_OBJS): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $(OUTPUT_KEY)$@ $<
#------------------------------------------------------
# End of rules for making the TBB Proxy unit tests
#------------------------------------------------------
# Include automatically generated dependencies
-include *.d
-302
View File
@@ -1,302 +0,0 @@
# Copyright (c) 2005-2016 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 TBB tests.
#------------------------------------------------------------------------------
.PHONY: default test_tbb_plain test_tbb_openmp test_tbb_cilk test_tbb_old clean
default: test_tbb_plain test_tbb_openmp test_tbb_cilk test_tbb_old
tbb_root ?= $(TBBROOT)
BUILDING_PHASE=1
TEST_RESOURCE = $(TBB.RES)
TESTFILE=test
include $(tbb_root)/build/common.inc
DEBUG_SUFFIX=$(findstring _debug,$(call cross_cfg,_$(cfg)))
#------------------------------------------------------------
# Define static pattern rules dealing with .cpp source files
#------------------------------------------------------------
VPATH = $(tbb_root)/src/tbb/$(ASSEMBLY_SOURCE) $(tbb_root)/src/tbb $(tbb_root)/src/rml/client $(tbb_root)/src/old $(tbb_root)/src/test $(tbb_root)/src/perf
CPLUS_FLAGS += $(if $(crosstest),$(DEFINE_KEY)__TBB_NO_IMPLICIT_LINKAGE=1) $(if $(LINK_TBB.LIB),$(DEFINE_KEY)TEST_USES_TBB=1)
TEST_PREREQUISITE+=$(TBB.LIB)
LINK_FILES+=$(LINK_TBB.LIB)
ifdef use_proxy
USE_PROXY_FLAG = $(DEFINE_KEY)HARNESS_USE_RUNTIME_LOADER
CPLUS_FLAGS += $(USE_PROXY_FLAG)
LINK_TBB.LIB = $(PROXY.LIB)
LIBS += $(LIBDL)
endif
TEST_SUFFIXES=secondary compiler_builtins pic
include $(tbb_root)/build/common_rules.inc
# Rules for the tests, which use TBB in a dynamically loadable library
test_model_plugin.$(TEST_EXT): LINK_TBB.LIB =
test_model_plugin.$(TEST_EXT): CPLUS_FLAGS := $(CPLUS_FLAGS:$(USE_PROXY_FLAG)=)
test_model_plugin.$(TEST_EXT): LIBS += $(LIBDL)
ifneq (,$(DYLIB_KEY))
test_model_plugin.$(TEST_EXT): test_model_plugin_dll.$(DLL)
endif
# tbb_misc.$(OBJ) has to be specified here (instead of harness_inject_scheduler.h) because it carries dependency on version_string.ver
SCHEDULER_DEPENDENCIES = $(TBB_ASM.OBJ) tbb_misc.$(OBJ)
# These executables don't depend on the TBB library, but include core .cpp files directly
SCHEDULER_DIRECTLY_INCLUDED = test_task_leaks.$(TEST_EXT) \
test_task_assertions.$(TEST_EXT) \
test_fast_random.$(TEST_EXT) \
test_global_control_whitebox.$(TEST_EXT) \
test_concurrent_queue_whitebox.$(TEST_EXT)
# Necessary to locate version_string.ver referenced from directly included tbb_misc.cpp
INCLUDES += $(INCLUDE_KEY). $(INCLUDE_TEST_HEADERS)
$(SCHEDULER_DIRECTLY_INCLUDED): WARNING_KEY += $(WARNING_SUPPRESS)
$(SCHEDULER_DIRECTLY_INCLUDED): LIBS += $(LIBDL)
#tbb.lib must not be linked to scheduler white box tests in order to not violate ODR
$(SCHEDULER_DIRECTLY_INCLUDED): LINK_TBB.LIB =
$(SCHEDULER_DIRECTLY_INCLUDED): LINK_FILES += $(SCHEDULER_DEPENDENCIES)
$(SCHEDULER_DIRECTLY_INCLUDED): $(SCHEDULER_DEPENDENCIES)
# test_tbb_header detects "multiple definition" linker error using the test that covers the whole library
TWICE_LINKED_TESTS = test_tbb_header.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT)
%_secondary.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_SECONDARY=1
# Detecting "multiple definition" linker error using the test that covers the whole library
$(TWICE_LINKED_TESTS): %.$(TEST_EXT): %.$(OBJ) %_secondary.$(OBJ)
$(TWICE_LINKED_TESTS): LINK_FILES+=$(@:.$(TEST_EXT)=_secondary.$(OBJ))
# Checks that TBB works correctly in position independent code
%_pic.$(OBJ): CPLUS_FLAGS+=$(PIC_KEY)
%_pic.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_PIC=1
# Test of generic gcc port and icc intrinsics port
%_compiler_builtins.$(TEST_EXT): LINK_TBB.LIB =
%_compiler_builtins.$(OBJ): CPLUS_FLAGS+=$(DEFINE_KEY)__TBB_TEST_BUILTINS=1 $(DEFINE_KEY)TBB_USE_ASSERT=0
# dynamic_link tests don't depend on the TBB library
test_dynamic_link%.$(TEST_EXT): LINK_TBB.LIB =
test_dynamic_link.$(TEST_EXT): LIBS += $(LIBDL)
TEST_BIG_OBJ = test_opencl_node.$(TEST_EXT) test_join_node.$(TEST_EXT) test_atomic.$(TEST_EXT)
ifeq (windows_windows,$(tbb_os)_$(target))
ifneq (gcc,$(compiler))
$(TEST_BIG_OBJ): override CXXFLAGS += /bigobj
endif
endif
# TODO: remove repetition of .$(TEST_EXT) in the list bellow
# The main list of TBB tests
TEST_TBB_PLAIN.EXE = test_assembly.$(TEST_EXT) \
test_global_control.$(TEST_EXT) \
test_tbb_fork.$(TEST_EXT) \
test_assembly_compiler_builtins.$(TEST_EXT) \
test_aligned_space.$(TEST_EXT) \
test_atomic.$(TEST_EXT) \
test_atomic_pic.$(TEST_EXT) \
test_atomic_compiler_builtins.$(TEST_EXT) \
test_blocked_range.$(TEST_EXT) \
test_blocked_range2d.$(TEST_EXT) \
test_blocked_range3d.$(TEST_EXT) \
test_concurrent_queue.$(TEST_EXT) \
test_concurrent_vector.$(TEST_EXT) \
test_concurrent_unordered_set.$(TEST_EXT) \
test_concurrent_unordered_map.$(TEST_EXT) \
test_concurrent_hash_map.$(TEST_EXT) \
test_enumerable_thread_specific.$(TEST_EXT) \
test_handle_perror.$(TEST_EXT) \
test_halt.$(TEST_EXT) \
test_model_plugin.$(TEST_EXT) \
test_mutex.$(TEST_EXT) \
test_mutex_native_threads.$(TEST_EXT) \
test_rwm_upgrade_downgrade.$(TEST_EXT) \
test_cache_aligned_allocator.$(TEST_EXT) \
test_cache_aligned_allocator_STL.$(TEST_EXT) \
test_parallel_for.$(TEST_EXT) \
test_parallel_reduce.$(TEST_EXT) \
test_parallel_sort.$(TEST_EXT) \
test_parallel_scan.$(TEST_EXT) \
test_parallel_while.$(TEST_EXT) \
test_parallel_do.$(TEST_EXT) \
test_pipeline.$(TEST_EXT) \
test_pipeline_with_tbf.$(TEST_EXT) \
test_parallel_pipeline.$(TEST_EXT) \
test_lambda.$(TEST_EXT) \
test_task_scheduler_init.$(TEST_EXT) \
test_task_scheduler_observer.$(TEST_EXT) \
test_task.$(TEST_EXT) \
test_tbb_thread.$(TEST_EXT) \
test_std_thread.$(TEST_EXT) \
test_tick_count.$(TEST_EXT) \
test_inits_loop.$(TEST_EXT) \
test_yield.$(TEST_EXT) \
test_eh_tasks.$(TEST_EXT) \
test_eh_algorithms.$(TEST_EXT) \
test_eh_flow_graph.$(TEST_EXT) \
test_parallel_invoke.$(TEST_EXT) \
test_task_group.$(TEST_EXT) \
test_ittnotify.$(TEST_EXT) \
test_parallel_for_each.$(TEST_EXT) \
test_tbb_header.$(TEST_EXT) \
test_combinable.$(TEST_EXT) \
test_task_auto_init.$(TEST_EXT) \
test_task_arena.$(TEST_EXT) \
test_concurrent_monitor.$(TEST_EXT) \
test_semaphore.$(TEST_EXT) \
test_critical_section.$(TEST_EXT) \
test_reader_writer_lock.$(TEST_EXT) \
test_tbb_condition_variable.$(TEST_EXT) \
test_intrusive_list.$(TEST_EXT) \
test_concurrent_priority_queue.$(TEST_EXT) \
test_task_priority.$(TEST_EXT) \
test_task_enqueue.$(TEST_EXT) \
test_task_steal_limit.$(TEST_EXT) \
test_hw_concurrency.$(TEST_EXT) \
test_fp.$(TEST_EXT) \
test_tuple.$(TEST_EXT) \
test_flow_graph.$(TEST_EXT) \
test_broadcast_node.$(TEST_EXT) \
test_continue_node.$(TEST_EXT) \
test_function_node.$(TEST_EXT) \
test_limiter_node.$(TEST_EXT) \
test_join_node.$(TEST_EXT) \
test_buffer_node.$(TEST_EXT) \
test_queue_node.$(TEST_EXT) \
test_priority_queue_node.$(TEST_EXT) \
test_sequencer_node.$(TEST_EXT) \
test_source_node.$(TEST_EXT) \
test_overwrite_node.$(TEST_EXT) \
test_write_once_node.$(TEST_EXT) \
test_indexer_node.$(TEST_EXT) \
test_multifunction_node.$(TEST_EXT) \
test_split_node.$(TEST_EXT) \
test_static_assert.$(TEST_EXT) \
test_aggregator.$(TEST_EXT) \
test_concurrent_lru_cache.$(TEST_EXT) \
test_examples_common_utility.$(TEST_EXT) \
test_dynamic_link.$(TEST_EXT) \
test_parallel_for_vectorization.$(TEST_EXT) \
test_tagged_msg.$(TEST_EXT) \
test_partitioner_whitebox.$(TEST_EXT) \
test_flow_graph_whitebox.$(TEST_EXT) \
test_composite_node.$(TEST_EXT) \
test_async_node.$(TEST_EXT) \
test_async_msg.$(TEST_EXT) \
test_tbb_version.$(TEST_EXT) # insert new files right above
# skip mode_plugin for now
skip_tests += test_model_plugin
ifdef OPENMP_FLAG
test_openmp.$(TEST_EXT): CPLUS_FLAGS += $(OPENMP_FLAG)
test_tbb_openmp: $(TEST_PREREQUISITE) test_openmp.$(TEST_EXT)
$(run_cmd) ./test_openmp.$(TEST_EXT) 1:4
else
test_tbb_openmp:
@echo "OpenMP is not available"
endif
ifdef CILK_AVAILABLE
# Workaround on cilkrts linkage known issue (see Intel(R) C++ Composer XE 2011 Release Notes)
# The issue reveals itself if a version of binutils is prior to 2.17
ifeq (linux_icc,$(tbb_os)_$(compiler))
test_cilk_interop.$(TEST_EXT): LIBS += -lcilkrts
test_gfx_factory.$(TEST_EXT): LIBS += -lcilkrts
endif
test_tbb_cilk: test_cilk_interop.$(TEST_EXT)
$(run_cmd) ./test_cilk_interop.$(TEST_EXT) $(args)
else
test_tbb_cilk:
@echo "Intel(R) Cilk(TM) Plus is not available"
endif
test_opencl_node.$(TEST_EXT): LIBS += $(OPENCL.LIB)
$(TEST_TBB_PLAIN.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)
TESTS_TO_RUN := $(filter-out $(addsuffix .$(TEST_EXT),$(skip_tests)),$(TEST_TBB_PLAIN.EXE) $(SCHEDULER_DIRECTLY_INCLUDED))
# This definition intentionally consists of two blank lines
define eol
endef
# First build the targets, then run them
# Form a list of commands separated with end of line
# Note that usually run_cmd is empty, and tests run directly
test_tbb_plain: $(TEST_PREREQUISITE) $(TESTS_TO_RUN)
$(foreach test, $(TESTS_TO_RUN), $(run_cmd) ./$(test) $(args) $(eol))
# For deprecated files, we don't mind warnings etc., thus compilation rules are most relaxed
CPLUS_FLAGS_DEPRECATED = $(DEFINE_KEY)TBB_DEPRECATED=1 $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(WARNING_SUPPRESS) $(INCLUDE_KEY)$(tbb_root)/src/test
TEST_TBB_OLD.OBJ = test_concurrent_vector_v2.$(OBJ) test_concurrent_queue_v2.$(OBJ) test_mutex_v2.$(OBJ) test_task_scheduler_observer_v3.$(OBJ)
$(TEST_TBB_OLD.OBJ): CPLUS_FLAGS := $(CPLUS_FLAGS_DEPRECATED)
TEST_TBB_OLD.EXE = $(subst .$(OBJ),.$(TEST_EXT),$(TEST_TBB_OLD.OBJ))
ifeq (,$(NO_LEGACY_TESTS))
test_tbb_old: $(TEST_PREREQUISITE) $(TEST_TBB_OLD.EXE)
$(run_cmd) ./test_concurrent_vector_v2.$(TEST_EXT) $(args) 1:4
$(run_cmd) ./test_concurrent_queue_v2.$(TEST_EXT) $(args) 1:4
$(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 1
$(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 2
$(run_cmd) ./test_mutex_v2.$(TEST_EXT) $(args) 4
$(run_cmd) ./test_task_scheduler_observer_v3.$(TEST_EXT) $(args) 1:4
else
test_tbb_old:
@echo Legacy tests skipped
endif
ifneq (,$(codecov))
codecov_gen:
profmerge
codecov $(if $(findstring -,$(codecov)),$(codecov),) -demang -comp $(tbb_root)/build/codecov.txt
endif
time_%: time_%.$(TEST_EXT) $(TEST_PREREQUISITE)
$(run_cmd) ./$< $(args)
# for some reason, "perf_%.$(TEST_EXT): perf_dll.$(DLL)" does not work TODO: find out how to apply pattern here
perf_sched.$(TEST_EXT): perf_dll.$(DLL)
perf_%.$(TEST_EXT): TEST_LIBS = perf_dll.$(LIBEXT)
perf_%: perf_%.$(TEST_EXT) $(TEST_PREREQUISITE)
$(run_cmd) ./$< $(args)
clean_%:
$(RM) $*.$(OBJ) $*.exe $*.$(DLL) $*.$(LIBEXT) $*.res $*.map $*.ilk $*.pdb $*.exp $*.*manifest $*.tmp $*.d *.ver
clean:
$(RM) *.$(OBJ) *.exe *.$(DLL) *.$(LIBEXT) *.res *.map *.ilk *.pdb *.exp *.manifest *.tmp *.d pgopti.* *.dyn core core.*[0-9][0-9] *.ver
# Include automatically generated dependencies
-include *.d
-92
View File
@@ -1,92 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
DYLIB_KEY = -shared
LIBDL = -ldl
CPLUS = g++
CONLY = gcc
LIB_LINK_FLAGS = -shared
LIBS = -lpthread -lrt -ldl
C_FLAGS = $(CPLUS_FLAGS) -x c
ifeq ($(cfg), release)
CPLUS_FLAGS = -g -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG -g -O0 -DUSE_PTHREAD
endif
ASM=
ASM_FLAGS=
TBB_ASM.OBJ=
ifeq (ia64,$(arch))
# Position-independent code (PIC) is a must for IA-64
CPLUS_FLAGS += $(PIC_KEY)
endif
ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify)
ifeq (sparc,$(arch))
CPLUS_FLAGS += -mcpu=v9 -m64
LIB_LINK_FLAGS += -mcpu=v9 -m64
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASSEMBLY_SOURCE=$(arch)-gas
ifeq (ia64,$(arch))
ASM=ias
TBB_ASM.OBJ = atomic_support.o lock_byte.o log2.o pause.o
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-83
View File
@@ -1,83 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifndef arch
arch:=$(shell uname -p)
ifeq ($(arch),i386)
ifeq ($(shell isainfo -b),64)
arch:=intel64
else
arch:=ia32
endif
endif
export arch
# For non-IA systems running Sun OS, 'arch' will contain whatever is printed by uname -p.
# In particular, for SPARC architecture it will contain "sparc".
endif
ifndef runtime
gcc_version:=$(shell gcc -dumpversion)
os_version:=$(shell uname -r)
os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export runtime:=cc$(gcc_version)_kernel$(os_kernel_version)
endif
ifeq ($(arch),sparc)
native_compiler := gcc
export compiler ?= gcc
else
native_compiler := suncc
export compiler ?= suncc
endif
# debugger ?= gdb
CMD=$(SHELL) -c
CWD=$(shell pwd)
RM?=rm -f
RD?=rmdir
MD?=mkdir -p
NUL= /dev/null
SLASH=/
MAKE_VERSIONS=bash $(tbb_root)/build/version_info_sunos.sh $(VERSION_FLAGS) >version_string.ver
MAKE_TBBVARS=bash $(tbb_root)/build/generate_tbbvars.sh
ifdef LD_LIBRARY_PATH
export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
else
export LD_LIBRARY_PATH := .
endif
####### Build settings ########################################################
OBJ = o
DLL = so
LIBEXT=so
TBB.LST =
TBB.DEF =
TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
TBB.LIB = $(TBB.DLL)
LINK_TBB.LIB = $(TBB.LIB)
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = $(MALLOC.DLL)
LINK_MALLOC.LIB = $(MALLOC.LIB)
MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
-92
View File
@@ -1,92 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -xMMD -errtags
PREPROC_ONLY = -E -xMMD
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -KPIC
DYLIB_KEY = -G
LIBDL = -ldl
# WARNING_AS_ERROR_KEY = -errwarn=%all
WARNING_AS_ERROR_KEY = Warning as error
# Supported Solaris Studio* 12.2 and above, remove ',inlasmpnu' in the line below to build by compiler prior Solaris Studio* 12.2
WARNING_SUPPRESS = -erroff=unassigned,attrskipunsup,badargtype2w,badbinaryopw,wbadasg,wvarhidemem,inlasmpnu
tbb_strict=0
CPLUS = CC
CONLY = cc
OPENMP_FLAG = -xopenmp
LIB_LINK_FLAGS = -G -R . -M$(tbb_root)/build/suncc.map.pause
LINK_FLAGS += -M$(tbb_root)/build/suncc.map.pause
LIBS = -lpthread -lrt -R .
C_FLAGS = $(CPLUS_FLAGS)
#TODO: the $(stdlib) instead of hard-wiring STLPort
ifeq ($(cfg), release)
CPLUS_FLAGS = -mt -xO2 -g -library=stlport4 -DUSE_PTHREAD $(WARNING_SUPPRESS)
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -mt -DTBB_USE_DEBUG -g -library=stlport4 -DUSE_PTHREAD $(WARNING_SUPPRESS)
endif
ASM=
ASM_FLAGS=
TBB_ASM.OBJ=
ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64
ASM_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
# TODO: verify whether -m64 implies V9 on relevant Sun Studio versions
# (those that handle gcc assembler syntax)
ifeq (sparc,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
export TBB_CUSTOM_VARS_SH=export CXXFLAGS="-I$${TBBROOT}/include -library=stlport4 $(CXXFLAGS) -M$${TBBROOT}/build/suncc.map.pause"
export TBB_CUSTOM_VARS_CSH=setenv CXXFLAGS "-I$${TBBROOT}/include -library=stlport4 $(CXXFLAGS) -M$${TBBROOT}/build/suncc.map.pause"
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASSEMBLY_SOURCE=$(arch)-fbe
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_INCLUDES = $(INCLUDES) -I$(MALLOC_ROOT) -I$(MALLOC_SOURCE_ROOT)
M_CPLUS_FLAGS = $(CPLUS_FLAGS)
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-118
View File
@@ -1,118 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
SDL_FLAGS = -fPIE -fPIC -fstack-protector -Wformat -Wformat-security
TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
CPLUS = $(TARGET_CXX)
CONLY = $(TARGET_CC)
# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
PIE_FLAG = -pie
ifeq ($(APP_PIE), false)
PIE_FLAG=
endif
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
SDL_FLAGS += -D_FORTIFY_SOURCE=2
CPLUS_FLAGS = -O2
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG
endif
CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H
ifneq (,$(findstring $(arch),ia32 intel64))
CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY
endif
ifeq (0, $(dynamic_load))
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
endif
# Paths to the NDK prebuilt tools and libraries
CPLUS_FLAGS += --sysroot=$(SYSROOT)
LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
LIBS = -L$(CPLUS_LIB_PATH) -lc++_shared
ifneq (,$(findstring $(ndk_version),r12 r12b r13 r13b))
LIBS += -lc++abi
ifeq (arm,$(arch))
LIBS += -lunwind
endif
endif
ifeq (arm,$(arch))
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0
endif
CPLUS_FLAGS += $(TARGET_CFLAGS)
LIB_LINK_FLAGS += $(TARGET_CFLAGS) $(TARGET_LDFLAGS) -L$(CPLUS_LIB_PATH)
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ASM = $(tbb_tool_prefix)as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-117
View File
@@ -1,117 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
CPLUS = $(tbb_tool_prefix)g++
CONLY = $(tbb_tool_prefix)gcc
# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
PIE_FLAG = -pie
ifeq ($(APP_PIE), false)
PIE_FLAG=
endif
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = -O2
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG
endif
CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H
ifneq (,$(findstring $(arch),ia32 intel64))
CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY
endif
ifeq (0, $(dynamic_load))
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
endif
# Paths to the NDK prebuilt tools and libraries
CPLUS_FLAGS += --sysroot=$(SYSROOT)
LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared
ifeq (ia32,$(arch))
# TODO: Determine best setting of -march and add to CPLUS_FLAGS
CPLUS_FLAGS += -m32
LIB_LINK_FLAGS += -m32
else ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
else ifeq (arm,$(arch))
CPLUS_FLAGS += -march=armv7-a $(DEFINE_KEY)TBB_USE_GCC_BUILTINS=1 $(DEFINE_KEY)__TBB_64BIT_ATOMICS=0
else ifeq (arm64,$(arch))
CPLUS_FLAGS += -march=armv8-a
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ASM = $(tbb_tool_prefix)as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-120
View File
@@ -1,120 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY =
TEST_WARNING_KEY = -Wshadow -Woverloaded-virtual -Wextra
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
CPLUS = icpc
CONLY = icc
# -soname is necessary for proper linkage to TBB prebuilt libraries when building application with Android SDK
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
# pie is necessary for test executables to work and might be removed if newer NDK will add it implicitly
PIE_FLAG = -pie
ifeq ($(APP_PIE), false)
PIE_FLAG=
endif
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = -O2
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -g -O0 $(DEFINE_KEY)TBB_USE_DEBUG
endif
CPLUS_FLAGS += $(DEFINE_KEY)USE_PTHREAD $(DEFINE_KEY)_GLIBCXX_HAVE_FENV_H
ifneq (,$(findstring $(arch),ia32 intel64))
CPLUS_FLAGS += $(DEFINE_KEY)DO_ITT_NOTIFY
endif
ifeq (0, $(dynamic_load))
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_DYNAMIC_LOAD_ENABLED=0
endif
# Paths to the NDK prebuilt tools and libraries
CPLUS_FLAGS += --sysroot=$(SYSROOT)
LIB_LINK_FLAGS += --sysroot=$(SYSROOT)
# the -static-intel flag is to remove the need to copy Intel-specific libs to the device.
LIBS = -L$(CPLUS_LIB_PATH) -lgnustl_shared -static-intel
ifeq (ia32,$(arch))
# TODO: Determine best setting of -march and add to CPLUS_FLAGS
CPLUS_FLAGS += -m32 -march=pentium4 -falign-stack=maintain-16-byte
LIB_LINK_FLAGS += -m32
else
ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
endif
ifeq (arm,$(findstring arm,$(arch)))
$(error "Unsupported architecture $(arch) for icc compiler")
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ASM = $(tbb_tool_prefix)as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-63
View File
@@ -1,63 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
#
# Extra gmake command-line parameters for use with Android:
#
# dlopen_workaround: Some OS versions need workaround for dlopen to avoid recursive calls.
#
####### Detections and Commands ###############################################
ifeq (android,$(findstring android,$(tbb_os)))
$(error TBB only supports cross-compilation for Android. Specify "target=android" instead.)
endif
ifndef BUILDING_PHASE
ifneq ("command line","$(origin arch)")
ifeq (icc,$(compiler))
export COMPILER_VERSION := ICC: $(shell icc -V </dev/null 2>&1 | grep 'Version')
ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION)))
export arch:=ia32
else ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION)))
export arch:=intel64
else
$(error "No support for Android in $(COMPILER_VERSION)")
endif
else
ifdef ANDROID_SERIAL
uname_m:=$(shell adb shell uname -m)
ifeq (i686,$(uname_m))
export arch:=ia32
else
export arch:=$(uname_m)
endif
endif
endif
endif
endif
ifeq ("$(arch)","")
$(error "No target architecture specified and \'ANDROID_SERIAL\' environment variable specifying target device not set")
endif
# Android platform only supported from TBB 4.1 forward
NO_LEGACY_TESTS = 1
-67
View File
@@ -1,67 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
####### Detections and Commands ###############################################
# Must set def_prefix according to target architecture detected above
ifeq (ia32,$(arch))
def_prefix = lin32
endif
ifeq (arm,$(findstring arm,$(arch)))
def_prefix = lin32
endif
ifeq (64,$(findstring 64,$(arch)))
def_prefix = lin64
endif
ifdef ndk_version
$(warning "NDK version $(ndk_version)")
else
$(warning "NDK version not set in environment, using \'unknown\' instead.")
ndk_version:=unknown
endif
export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
AR = $(tbb_tool_prefix)ar
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(VERSION_FLAGS) >version_string.ver
####### Build settings ########################################################
# No SONAME_SUFFIX for Android allowed in library names
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
TBB.DEF = $(TBB.LST:.lst=.def)
TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
TBB.LIB = $(TBB.DLL)
TBB_NO_VERSION.DLL=
LINK_TBB.LIB = $(TBB.LIB)
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = $(MALLOC.DLL)
MALLOC_NO_VERSION.DLL=
LINK_MALLOC.LIB = $(MALLOC.LIB)
MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
MALLOCPROXY_NO_VERSION.DLL=
MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
TEST_LAUNCHER=
run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
-148
View File
@@ -1,148 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Usage:
# android.linux.launcher.sh [-v] [-q] [-s] [-r <repeats>] [-u] [-l <library>] <executable> <arg1> <arg2> <argN>
# where: -v enables verbose output
# where: -q enables quiet mode
# where: -s runs the test in stress mode (until non-zero exit code or ctrl-c pressed)
# where: -r <repeats> specifies number of times to repeat execution
# where: -u is ignored on Android
# where: -l <library> specifies the library name to be assigned to LD_PRELOAD
#
# Libs and executable necessary for testing should be present in the current directory before running.
# ANDROID_SERIAL must be set to the connected Android target device name for file transfer and test runs.
# ANDROID_TEST_DIRECTORY may be set to the directory used for testing on the Android target device; otherwise,
# the default directory used is "/data/local/tmp/$(basename $PWD)".
# Note: Do not remove the redirections to '/dev/null' in the script, otherwise the nightly test system will fail.
do_cleanup() #
{ #
adb pull $targetdir/events.txt events.txt > /dev/null 2>&1 #
# Remove target directory on the device
adb shell "rm -r ${targetdir}; mkdir -p ${targetdir}" > /dev/null 2>&1 #
} #
do_trap_cleanup() #
{ #
do_cleanup #
exit -1 #
} #
while getopts "qvsr:ul:" flag #
do case $flag in #
s ) # Stress testing mode
echo Doing stress testing. Press Ctrl-C to terminate
run_env='stressed() { while $*; do :; done; }; ' #
run_prefix="stressed $run_prefix" ;; #
r ) # Repeats test n times
run_env="repeated() { for i in $(seq -s ' ' 1 $OPTARG) ; do echo \$i of $OPTARG:; \$*; done; }; " #
run_prefix="repeated $run_prefix" ;; #
l ) # Additional library
ldpreload="$OPTARG " ;; #
u ) # Stack limit
;; #
q ) # Quiet mode, removes 'done' but prepends any other output by test name
OUTPUT='2>&1 | sed -e "s/done//;/^[[:space:]]*$/d;s!^!$exename: !"' ;; #
v ) # Verbose mode
SUPPRESS='' #
verbose=1 ;; #
esac done #
shift `expr $OPTIND - 1` #
[ -z "$OUTPUT" ] && OUTPUT='| sed -e "s/\\r$//"' #
[ $verbose ] || SUPPRESS='>/dev/null' #
# Collect the executable name
exename=$(basename $1) #
shift #
# Prepare the target directory on the device
currentdir=$(basename $PWD) #
targetdir=${ANDROID_TEST_DIRECTORY:-/data/local/tmp/$currentdir} #
do_cleanup #
trap do_trap_cleanup INT # if someone hits control-c, cleanup the device
# Collect the list of files to transfer to the target device, starting with executable itself.
fnamelist="$exename" #
# Add the C++ standard library from the NDK, which is required for all tests on Android.
if [ ! -z "${LIB_STL_ANDROID}" ]; then #
fnamelist="$fnamelist ${LIB_STL_ANDROID}" #
else #
fnamelist="$fnamelist libc++_shared.so" #
fi #
# Find the TBB libraries and add them to the list.
# Add TBB libraries from the current directory that contains libtbb* files
files="$(ls libtbb* 2> /dev/null)" #
[ -z "$files" ] || fnamelist="$fnamelist $files" #
# Add any libraries built for specific tests.
exeroot=${exename%\.*} #
files="$(ls ${exeroot}*.so ${exeroot}*.so.* 2> /dev/null)" #
[ -z "$files" ] || fnamelist="$fnamelist $files" #
# TODO: Add extra libraries from the Intel(R) Compiler for certain tests
# found=$(echo $exename | egrep 'test_malloc_atexit\|test_malloc_lib_unload' 2> /dev/null)
# if [ ! -z $found ] ; then
# fnamelist="$fnamelist ${compiler_path_lib}/libimf.so \
# ${compiler_path_lib}/libsvml.so \
# ${compiler_path_lib}/libintlc.so.5"
# fi
# Transfer collected executable and library files to the target device.
transfers_ok=1 #
for fullname in $fnamelist; do { #
if [ -r $fullname ]; then { #
# Transfer the executable and libraries to top-level target directory
[ $verbose ] && echo -n "Pushing $fullname: " #
eval "adb push $fullname ${targetdir}/$(basename $fullname) $SUPPRESS 2>&1" #
}; else { #
echo "Error: required file ${currentdir}/${fullname} for test $exename not available for transfer." #
transfers_ok=0 #
}; fi #
}; done #
if [ "${transfers_ok}" = "0" ]; then { #
do_cleanup #
exit -1 #
}; fi #
# Transfer input files used by example codes by scanning the executable argument list.
for fullname in "$@"; do { #
if [ -r $fullname ]; then { #
directory=$(dirname $fullname) #
filename=$(basename $fullname) #
# strip leading "." from fullname if present
if [ "$directory" = "\." ]; then { #
directory="" #
fullname=$filename #
}; fi #
# Create the target directory to hold input file if necessary
if [ ! -z $directory ]; then { #
eval "adb shell 'mkdir $directory' $SUPPRESS 2>&1" #
}; fi #
# Transfer the input file to corresponding directory on target device
[ $verbose ] && echo -n "Pushing $fullname: " #
eval "adb push $fullname ${targetdir}/$fullname $SUPPRESS 2>&1" #
}; fi #
}; done #
# Set LD_PRELOAD if necessary
[ -z "$ldpreload" ] || run_prefix="LD_PRELOAD='$ldpreload' $run_prefix" #
[ $verbose ] && echo Running $run_prefix ./$exename $* #
run_env="$run_env cd $targetdir; export LD_LIBRARY_PATH=." #
[ -z "$VIRTUAL_MACHINE" ] || run_env="$run_env; export VIRTUAL_MACHINE=$VIRTUAL_MACHINE" #
# The return_code file is the best way found to return the status of the test execution when using adb shell.
eval 'adb shell "$run_env; $run_prefix ./$exename $* || echo -n \$? >error_code"' "${OUTPUT}" #
# Capture the return code string and remove the trailing \r from the return_code file contents
err=`adb shell "cat $targetdir/error_code 2>/dev/null"` #
[ -z $err ] || echo $exename: exited with error $err #
do_cleanup #
# Return the exit code of the test.
exit $err #
-76
View File
@@ -1,76 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
####### Detections and Commands ###############################################
# Must set def_prefix according to target architecture detected above
ifeq (ia32,$(arch))
def_prefix = lin32
endif
ifeq (arm,$(findstring arm,$(arch)))
def_prefix = lin32
endif
ifeq (64,$(findstring 64,$(arch)))
def_prefix = lin64
endif
ifdef ndk_version
$(warning "NDK version $(ndk_version)")
else
$(warning "NDK version not set in environment, using \'unknown\' instead.")
ndk_version:=unknown
endif
export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
AR = $(tbb_tool_prefix)ar
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_android.sh $(VERSION_FLAGS) >version_string.ver
####### Build settings ########################################################
# No SONAME_SUFFIX for Android allowed in library names
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
TBB.DEF = $(TBB.LST:.lst=.def)
TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
TBB.LIB = $(TBB.DLL)
TBB_NO_VERSION.DLL=
LINK_TBB.LIB = $(TBB.LIB)
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = $(MALLOC.DLL)
MALLOC_NO_VERSION.DLL=
LINK_MALLOC.LIB = $(MALLOC.LIB)
MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
MALLOCPROXY_NO_VERSION.DLL=
MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
TBB.RES =
MALLOC.RES =
RML.RES =
TBB.MANIFEST =
MALLOC.MANIFEST =
RML.MANIFEST =
OBJ = o
DLL = so
TEST_LAUNCHER=
run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
-77
View File
@@ -1,77 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
####### Detections and Commands ###############################################
# Must set def_prefix according to target architecture detected above
ifeq (ia32,$(arch))
def_prefix = lin32
endif
ifeq (arm,$(findstring arm,$(arch)))
def_prefix = lin32
endif
ifeq (64,$(findstring 64,$(arch)))
def_prefix = lin64
endif
ifdef ndk_version
ndk_version:= $(firstword $(subst /, ,$(ndk_version)))
ndk_version:= $(firstword $(subst \, ,$(ndk_version)))
$(warning "NDK version $(ndk_version)")
else
$(warning "NDK version not set in environment, using \'unknown\' instead.")
ndk_version:=unknown
endif
export runtime:=$(target)_NDK$(ndk_version)_version_$(target_os_version)
AR = $(tbb_tool_prefix)ar
MAKE_VERSIONS = cmd /C cscript /nologo /E:jscript $(subst \,/,$(tbb_root))/build/version_info_windows.js $(CONLY) $(arch) $(subst \,/,"$(VERSION_FLAGS)") > version_string.ver
####### Build settings ########################################################
# No SONAME_SUFFIX for Android allowed in library names
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
TBB.DEF = $(TBB.LST:.lst=.def)
TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
TBB.LIB = $(TBB.DLL)
TBB_NO_VERSION.DLL=
LINK_TBB.LIB = $(TBB.LIB)
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(DLL)
MALLOC.LIB = $(MALLOC.DLL)
MALLOC_NO_VERSION.DLL=
LINK_MALLOC.LIB = $(MALLOC.LIB)
MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
MALLOCPROXY_NO_VERSION.DLL=
MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
TBB.RES =
MALLOC.RES =
RML.RES =
TBB.MANIFEST =
MALLOC.MANIFEST =
RML.MANIFEST =
OBJ = o
DLL = so
TEST_LAUNCHER=
run_cmd ?= -sh $(tbb_root)/build/android.linux.launcher.sh $(largs)
-76
View File
@@ -1,76 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
#------------------------------------------------------------------------------
# Defines settings for building the TBB run-time as a static library.
# Use these only on platforms where dynamic linking is impractical.
#
# IF YOU USE TBB AS A STATIC LIBRARY, YOU MUST GUARANTEE THAT ONLY ONE COPY OF
# THE TBB RUN-TIME IS LINKED INTO AN APPLICATION! LINKING IN MULTIPLE COPIES
# OF THE TBB RUN-TIME, DIRECTLY OR INDIRECTLY, MAY CAUSE PROGRAM FAILURE!
#------------------------------------------------------------------------------
# Note that ITT_NOTIFY allows to selectively remove the definition of
# DO_ITT_NOTIFY without sabotaging deferred expansion of CPLUS_FLAGS.
# TODO: currently only in linux.{gcc,xl}.inc
# Note that -pthread with xl gives "1501-210 (W) command option t contains an incorrect subargument";
# multithreading is instead achieved by using the _r affix in the compiler name.
# TODO: is -lpthread still relevant/needed with XL and _r affix?
# Note that usage of dynamic (shared) libraries is disabled
# (via -D__TBB_DYNAMIC_LOAD_ENABLED=0 and LIBDL emptied) primarily for performance.
# OS specific settings =>
LIB_LINK_CMD = ar rcs
LIB_LINK_FLAGS =
LIB_LINK_LIBS =
LIB_OUTPUT_KEY =
DYLIB_KEY =
ifeq ($(tbb_os),linux)
ifeq ($(compiler),clang)
LIBS = -pthread -lrt
endif
ifeq ($(compiler),gcc)
LIBS = -pthread -lrt
endif
ifeq ($(compiler),xl)
LIBS = -lpthread -lrt
endif
LINK_FLAGS =
endif
override CXXFLAGS += -D__TBB_DYNAMIC_LOAD_ENABLED=0 -D__TBB_SOURCE_DIRECTLY_INCLUDED=1
ITT_NOTIFY =
DLL = a
LIBEXT = a
LIBPREF = lib
LIBDL =
# <= OS specific settings
TBB.DLL = $(LIBPREF)tbb$(DEBUG_SUFFIX).$(LIBEXT)
LINK_TBB.LIB = $(TBB.DLL)
TBB.LST =
TBB.DEF =
TBB_NO_VERSION.DLL =
MALLOC.DLL = $(LIBPREF)tbbmalloc$(DEBUG_SUFFIX).$(LIBEXT)
LINK_MALLOC.LIB = $(MALLOC.DLL)
MALLOC.DEF =
MALLOC_NO_VERSION.DLL =
MALLOCPROXY.DLL =
MALLOCPROXY.DEF =
-7
View File
@@ -1,7 +0,0 @@
src/tbb
src/tbbmalloc
include/tbb
src/rml/server
src/rml/client
src/rml/include
source/malloc
-162
View File
@@ -1,162 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifndef tbb_os
# Windows sets environment variable OS; for other systems, ask uname
ifeq ($(OS),)
OS:=$(shell uname)
ifeq ($(OS),)
$(error "Cannot detect operating system")
endif
export tbb_os=$(OS)
endif
ifeq ($(OS), Windows_NT)
export tbb_os=windows
endif
ifeq ($(OS), Linux)
export tbb_os=linux
endif
ifeq ($(OS), Darwin)
export tbb_os=macos
endif
endif # !tbb_os
ifeq ($(tbb_cpf),1)
export CPF_SUFFIX ?=_preview
endif
ifdef cpp0x
$(warning "Warning: deprecated cpp0x=$(cpp0x) is used, stdver must be used instead. Building in stdver=c++0x mode.")
export stdver ?= c++0x
override cpp0x=
endif
ifneq (,$(stdver))
ifeq (,$(findstring ++, $(stdver)))
$(warning "Warning: unexpected stdver=$(stdver) is used.")
endif
CXX_STD_FLAGS = -std=$(stdver) -D_TBB_CPP0X
endif
# The requested option is added unconditionally.
# If it is not supported, a compiler warning or error is expected.
# Note that CXX_STD_FLAGS can be changed in <os>.<compiler>.inc.
CXX_ONLY_FLAGS += $(CXX_STD_FLAGS)
ifeq (,$(wildcard $(tbb_root)/build/$(tbb_os).inc))
$(error "$(tbb_os)" is not supported. Add build/$(tbb_os).inc file with os-specific settings )
endif
# detect arch and runtime versions, provide common host-specific definitions
include $(tbb_root)/build/$(tbb_os).inc
ifeq ($(arch),)
$(error Architecture not detected)
endif
ifeq ($(runtime),)
$(error Runtime version not detected)
endif
# process target-dependent compilation and testing configurations
ifdef target
# optionally process target-dependent options for compilation and testing
ifneq (,$(wildcard $(tbb_root)/build/$(target).inc))
include $(tbb_root)/build/$(target).inc
endif
# optionally process host-dependent environment for target-dependent compilation and testing
ifneq (,$(wildcard $(tbb_root)/build/$(target).$(tbb_os).inc))
include $(tbb_root)/build/$(target).$(tbb_os).inc
endif
# insure at least one target-dependent configuration file was found for compilation and testing
ifeq (,$(wildcard $(tbb_root)/build/$(target).inc)$(wildcard $(tbb_root)/build/$(target).$(tbb_os).inc))
$(error "$(target)" is not supported. Add build/$(target).inc or build/$(target).$(tbb_os).inc file)
endif
endif #target
# Support for running debug tests to release library and vice versa
flip_cfg=$(subst _flipcfg,_release,$(subst _release,_debug,$(subst _debug,_flipcfg,$(1))))
cross_cfg = $(if $(crosstest),$(call flip_cfg,$(1)),$(1))
# Setting default configuration to release
cfg?=release
ifdef BUILDING_PHASE
ifndef target
target:=$(tbb_os)
endif
# process host/target compiler-dependent build configuration
ifeq (,$(wildcard $(tbb_root)/build/$(target).$(compiler).inc))
$(error "$(compiler)" is not supported on $(target). Add build/$(target).$(compiler).inc file with compiler-specific settings. )
endif
include $(tbb_root)/build/$(target).$(compiler).inc
endif
ifneq ($(BUILDING_PHASE),1)
# definitions for top-level Makefiles
origin_build_dir:=$(origin tbb_build_dir)
tbb_build_dir?=$(tbb_root)$(SLASH)build
export tbb_build_prefix?=$(tbb_os)_$(arch)_$(compiler)_$(runtime)$(CPF_SUFFIX)
work_dir=$(tbb_build_dir)$(SLASH)$(tbb_build_prefix)
endif # BUILDING_PHASE != 1
ifdef offload
extra_inc=$(offload).offload.inc
endif
ifdef extra_inc
ifneq (,$(wildcard $(tbb_root)/build/$(extra_inc)))
include $(tbb_root)/build/$(extra_inc)
else
$(error specified build file: "build/$(extra_inc)" is not found. )
endif
endif
ifndef BUILDING_PHASE
work_dir:=$(work_dir)
# assign new value for tbb_root if path is not absolute (the filter keeps only /* paths)
ifeq ($(filter /% $(SLASH)%, $(subst :, ,$(tbb_root)) ),)
full_tbb_root:=$(CURDIR)/$(tbb_root)
ifeq ($(origin_build_dir),undefined)
#relative path are needed here as a workaround to support whitespaces in path
override tbb_root:=../..
else
override tbb_root:=$(full_tbb_root)
endif
export tbb_root
endif
endif # !BUILDING_PHASE
.DELETE_ON_ERROR: # Make will delete target if error occurred when building it.
# MAKEOVERRIDES contains the command line variable definitions. Reseting it to
# empty allows propogating all exported overridden variables to nested makes.
# NOTEs:
# 1. All variable set in command line are propagated to nested makes.
# 2. All variables declared with the "export" keyword are propagated to
# nested makes.
# 3. "override" allows changing variables set in command line. But it doesn't
# propagate new values to nested makes. For propagation, the "export" keyword
# should be used.
# 4. gmake v3.80 doesn't support exporting of target-specific variables using
# the "export" keyword
MAKEOVERRIDES =
-165
View File
@@ -1,165 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifeq ($(tbb_strict),1)
ifeq ($(WARNING_AS_ERROR_KEY),)
$(error WARNING_AS_ERROR_KEY is empty)
endif
# Do not remove line below!
WARNING_KEY += $(WARNING_AS_ERROR_KEY)
endif
ifneq (,$(findstring s,$(MAKEFLAGS)))
override largs+=-q
endif
ifneq (,$(repeat))
override largs+=-r $(repeat)
endif
ifneq (,$(largs)$(run_prefix))
override run_cmd:=$(run_cmd) $(TEST_LAUNCHER)
TEST_LAUNCHER=
ifeq (,$(strip $(run_cmd)))
$(warning Test launcher is not defined for the platform, ignoring launcher arguments)
endif
endif
ifndef TEST_EXT
TEST_EXT = exe
endif
INCLUDES += $(INCLUDE_KEY)$(tbb_root)/src $(INCLUDE_KEY)$(tbb_root)/src/rml/include $(INCLUDE_KEY)$(tbb_root)/include
CPLUS_FLAGS += $(WARNING_KEY) $(CXXFLAGS)
ifeq ($(tbb_cpf),1)
CPLUS_FLAGS += $(DEFINE_KEY)__TBB_CPF_BUILD=1
endif
LINK_FLAGS += $(LDFLAGS)
LIB_LINK_FLAGS += $(LDFLAGS)
LIB_LINK_CMD ?= $(CPLUS) $(PIC_KEY)
ifeq ($(origin LIB_OUTPUT_KEY), undefined)
LIB_OUTPUT_KEY = $(OUTPUT_KEY)
endif
ifeq ($(origin LIB_LINK_LIBS), undefined)
LIB_LINK_LIBS = $(LIBDL) $(LIBS)
endif
CONLY ?= $(CPLUS)
# The most generic rules
#$(1) - is the target pattern
define make-cxx-obj
$1: %.cpp
$$(CPLUS) $$(OUTPUTOBJ_KEY)$$@ $$(COMPILE_ONLY) $$(CPLUS_FLAGS) $$(CXX_ONLY_FLAGS) $$(CXX_WARN_SUPPRESS) $$(INCLUDES) $$<
endef
TEST_AFFIXES_OBJS=$(addsuffix .$(OBJ),$(addprefix %_,$(TEST_SUFFIXES)) $(addsuffix _%,$(TEST_PREFIXES)))
# Make will not process the same recipe for each test pattern (since the dependency on the same %.cpp)
# thus the separated recipes should be provided
$(foreach t,%.$(OBJ) $(TEST_AFFIXES_OBJS),$(eval $(call make-cxx-obj,$(t))))
.PRECIOUS: %.$(OBJ) %.$(TEST_EXT) %.res $(TEST_AFFIXES_OBJS)
# Rules for generating a test DLL
%_dll.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(CPLUS_FLAGS) $(PIC_KEY) $(DEFINE_KEY)_USRDLL $(INCLUDES) $<
#$(1) - is the binary name
#$(2) - is the input obj files and libraries
define make-test-binary
$(CPLUS) $(OUTPUT_KEY)$(strip $1) $(CPLUS_FLAGS) $(2) $(LIBS) $(LINK_FLAGS)
endef
# LINK_FILES the list of options to link test specific files (libraries and object files)
LINK_FILES+=$(TEST_LIBS)
# Rule for generating executable test
%.$(TEST_EXT): %.$(OBJ) $(TEST_LIBS) $(TEST_PREREQUISITE) $(if $(use_proxy),$(PROXY.LIB))
$(call make-test-binary,$@,$< $(LINK_FILES) $(PIE_FLAG))
# Rules for generating a test DLL
%_dll.$(DLL): LINK_FLAGS += $(PIC_KEY) $(DYLIB_KEY)
%_dll.$(DLL): TEST_LIBS := $(subst %_dll.$(DLL),,$(TEST_LIBS))
%_dll.$(DLL): %_dll.$(OBJ)
$(call make-test-binary,$@,$< $(LINK_FILES))
.PRECIOUS: %_dll.$(OBJ) %_dll.$(DLL)
%.$(OBJ): %.c
$(CONLY) $(COMPILE_ONLY) $(OUTPUTOBJ_KEY)$@ $(C_FLAGS) $(INCLUDES) $<
%.$(OBJ): %.asm
$(ASM) $(ASM_FLAGS) $<
%.$(OBJ): %.s
cpp <$< | grep -v '^#' >$*.tmp
$(ASM) $(ASM_FLAGS) -o $@ $*.tmp
# Rule for generating .E file if needed for visual inspection
# Note that ICL treats an argument after PREPROC_ONLY as a file to open,
# so all uses of PREPROC_ONLY should be immediately followed by a file name
%.E: %.cpp
$(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $(PREPROC_ONLY) $< >$@
# TODO Rule for generating .asm file if needed for visual inspection
%.asm: %.cpp
$(CPLUS) /c /FAs /Fa $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
# TODO Rule for generating .s file if needed for visual inspection
%.s: %.cpp
$(CPLUS) -S $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES) $<
# Customizations
$(KNOWN_WARNINGS): %.$(OBJ): %.cpp
$(CPLUS) $(COMPILE_ONLY) $(subst $(WARNING_KEY),,$(CPLUS_FLAGS)) $(CXX_ONLY_FLAGS) $(CXX_WARN_SUPPRESS) $(INCLUDES) $<
tbb_misc.$(OBJ): version_string.ver
tbb_misc.$(OBJ): INCLUDES+=$(INCLUDE_KEY).
tbb_misc.E: tbb_misc.cpp version_string.ver
$(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDE_KEY). $(INCLUDES) $(PREPROC_ONLY) $< >$@
%.res: %.rc version_string.ver $(TBB.MANIFEST)
rc /Fo$@ $(INCLUDES) $(filter /D%,$(CPLUS_FLAGS)) $<
# TODO: add $(LIB_LINK_LIBS) $(LIB_LINK_FLAGS) (in a separate line?) and remove useless $(INCLUDES)
VERSION_FLAGS=$(CPLUS) $(CPLUS_FLAGS) $(CXX_ONLY_FLAGS) $(INCLUDES)
ifneq (,$(TBB.MANIFEST))
$(TBB.MANIFEST):
cmd /C "echo #include ^<stdio.h^> >tbbmanifest.c"
cmd /C "echo int main(){return 0;} >>tbbmanifest.c"
cl /nologo $(C_FLAGS) tbbmanifest.c
version_string.ver: $(TBB.MANIFEST)
$(MAKE_VERSIONS)
cmd /C "echo #define TBB_MANIFEST 1 >> version_string.ver"
# TODO: fix parallel build by writing to a temporary file and rename it when complete
else
# TODO: make version strings directly representative for all the libraries
version_string.ver:
$(MAKE_VERSIONS)
endif
test_% debug_%: test_%.$(TEST_EXT) $(TEST_PREREQUISITE)
$(run_cmd) ./$< $(args)
ifneq (,$(codecov))
profmerge
codecov $(if $(findstring -,$(codecov)),$(codecov),) -demang -comp $(tbb_root)/build/codecov.txt
endif
-181
View File
@@ -1,181 +0,0 @@
// Copyright (c) 2005-2016 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.
//
//
//
//
function doWork() {
var WshShell = WScript.CreateObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var tmpExec;
tmpExec = WshShell.Run("cmd /c echo int main(){return 0;} >detect.c", 0, true);
// The next block deals with GCC (MinGW)
if ( WScript.Arguments.Count() > 1 && WScript.Arguments(1) == "gcc" ) {
if ( WScript.Arguments(0) == "/arch" ) {
// Get predefined macros
tmpExec = WshShell.Run("cmd /C gcc -dM -E detect.c > detect.map", 0, true);
var file = fso.OpenTextFile("detect.map", 1, 0);
var defs = file.readAll();
file.Close();
//detect target architecture
var intel64=/x86_64|amd64/mgi;
var ia32=/i386/mgi;
if ( defs.match(intel64) ) {
WScript.Echo( "intel64" );
} else if ( defs.match(ia32) ) {
WScript.Echo( "ia32" );
} else {
WScript.Echo( "unknown" );
}
} else {
tmpExec = WshShell.Exec("gcc -dumpversion");
var gcc_version = tmpExec.StdOut.ReadLine();
if ( WScript.Arguments(0) == "/runtime" ) {
WScript.Echo( "mingw"+gcc_version );
}
else if ( WScript.Arguments(0) == "/minversion" ) {
// Comparing strings, not numbers; will not work for two-digit versions
if ( gcc_version >= WScript.Arguments(2) ) {
WScript.Echo( "ok" );
} else {
WScript.Echo( "fail" );
}
}
}
return;
}
//Compile binary
tmpExec = WshShell.Exec("cl /MD detect.c /link /MAP");
while ( tmpExec.Status == 0 ) {
WScript.Sleep(100);
}
//compiler banner that includes version and target arch was printed to stderr
var clVersion = tmpExec.StdErr.ReadAll();
if ( WScript.Arguments(0) == "/arch" ) {
//detect target architecture
var intel64=/AMD64|EM64T|x64/mgi;
var ia32=/[80|\s]x86/mgi;
var arm=/ARM/mgi;
if ( clVersion.match(intel64) ) {
WScript.Echo( "intel64" );
} else if ( clVersion.match(ia32) ) {
WScript.Echo( "ia32" );
} else if ( clVersion.match(arm) ) {
WScript.Echo( "armv7" );
} else {
WScript.Echo( "unknown" );
}
return;
}
if ( WScript.Arguments(0) == "/runtime" ) {
//read map-file
var map = fso.OpenTextFile("detect.map", 1, 0);
var mapContext = map.readAll();
map.Close();
//detect runtime
var vc71=/MSVCR71\.DLL/mgi;
var vc80=/MSVCR80\.DLL/mgi;
var vc90=/MSVCR90\.DLL/mgi;
var vc100=/MSVCR100\.DLL/mgi;
var vc110=/MSVCR110\.DLL/mgi;
var vc120=/MSVCR120\.DLL/mgi;
var vc140=/VCRUNTIME140\.DLL/mgi;
var psdk=/MSVCRT\.DLL/mgi;
if ( mapContext.match(vc71) ) {
WScript.Echo( "vc7.1" );
} else if ( mapContext.match(vc80) ) {
WScript.Echo( "vc8" );
} else if ( mapContext.match(vc90) ) {
WScript.Echo( "vc9" );
} else if ( mapContext.match(vc100) ) {
WScript.Echo( "vc10" );
} else if ( mapContext.match(vc110) ) {
WScript.Echo( "vc11" );
} else if ( mapContext.match(vc120) ) {
WScript.Echo( "vc12" );
} else if ( mapContext.match(vc140) ) {
WScript.Echo( "vc14" );
} else {
WScript.Echo( "unknown" );
}
return;
}
if ( WScript.Arguments(0) == "/minversion" ) {
var compiler_version;
if ( WScript.Arguments(1) == "cl" ) {
compiler_version = clVersion.match(/Compiler Version ([0-9.]+)\s/mi)[1];
// compiler_version is in xx.xx.xxxxx.xx format, i.e. a string.
// It will compare well with major.minor versions where major has two digits,
// which is sufficient as the versions of interest start from 13 (for VC7).
} else if ( WScript.Arguments(1) == "icl" ) {
// Get predefined ICL macros
tmpExec = WshShell.Run("cmd /C icl /QdM /E detect.c > detect.map", 0, true);
var file = fso.OpenTextFile("detect.map", 1, 0);
var defs = file.readAll();
file.Close();
// In #define __INTEL_COMPILER XXYY, XX is the major ICL version, YY is minor
compiler_version = defs.match(/__INTEL_COMPILER[ \t]*([0-9]+).*$/mi)[1]/100;
// compiler version is a number; it compares well with another major.minor
// version number, where major has one, two, and perhaps more digits (9.1, 11, etc).
}
if ( compiler_version >= WScript.Arguments(2) ) {
WScript.Echo( "ok" );
} else {
WScript.Echo( "fail" );
}
return;
}
}
function doClean() {
var fso = new ActiveXObject("Scripting.FileSystemObject");
// delete intermediate files
if ( fso.FileExists("detect.c") )
fso.DeleteFile ("detect.c", false);
if ( fso.FileExists("detect.obj") )
fso.DeleteFile ("detect.obj", false);
if ( fso.FileExists("detect.map") )
fso.DeleteFile ("detect.map", false);
if ( fso.FileExists("detect.exe") )
fso.DeleteFile ("detect.exe", false);
if ( fso.FileExists("detect.exe.manifest") )
fso.DeleteFile ("detect.exe.manifest", false);
}
if ( WScript.Arguments.Count() > 0 ) {
try {
doWork();
} catch( error ) {
WScript.Echo( "unknown" );
}
doClean();
} else {
WScript.Echo( "Supported options:\n"
+ "\t/arch [compiler]\n"
+ "\t/runtime [compiler]\n"
+ "\t/minversion compiler version" );
}
-65
View File
@@ -1,65 +0,0 @@
@echo off
REM
REM Copyright (c) 2005-2016 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.
REM You may obtain a copy of the License at
REM
REM http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing, software
REM distributed under the License is distributed on an "AS IS" BASIS,
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
REM See the License for the specific language governing permissions and
REM limitations under the License.
REM
REM
REM
REM
REM
setlocal
for %%D in ("%tbb_root%") do set actual_root=%%~fD
set fslash_root=%actual_root:\=/%
set bin_dir=%CD%
set fslash_bin_dir=%bin_dir:\=/%
set _INCLUDE=INCLUDE& set _LIB=LIB
if not x%UNIXMODE%==x set _INCLUDE=CPATH& set _LIB=LIBRARY_PATH
echo Generating local tbbvars.bat
echo @echo off>tbbvars.bat
echo SET TBBROOT=%actual_root%>>tbbvars.bat
echo SET TBB_ARCH_PLATFORM=%arch%\%runtime%>>tbbvars.bat
echo SET TBB_TARGET_ARCH=%arch%>>tbbvars.bat
echo SET %_INCLUDE%=%%TBBROOT%%\include;%%%_INCLUDE%%%>>tbbvars.bat
echo SET %_LIB%=%bin_dir%;%%%_LIB%%%>>tbbvars.bat
echo SET PATH=%bin_dir%;%%PATH%%>>tbbvars.bat
if not x%UNIXMODE%==x echo SET LD_LIBRARY_PATH=%bin_dir%;%%LD_LIBRARY_PATH%%>>tbbvars.bat
echo Generating local tbbvars.sh
echo #!/bin/sh>tbbvars.sh
echo export TBBROOT="%fslash_root%">>tbbvars.sh
echo export TBB_ARCH_PLATFORM="%arch%\%runtime%">>tbbvars.sh
echo export TBB_TARGET_ARCH="%arch%">>tbbvars.sh
echo export %_INCLUDE%="${TBBROOT}/include;$%_INCLUDE%">>tbbvars.sh
echo export %_LIB%="%fslash_bin_dir%;$%_LIB%">>tbbvars.sh
echo export PATH="%fslash_bin_dir%;$PATH">>tbbvars.sh
if not x%UNIXMODE%==x echo export LD_LIBRARY_PATH="%fslash_bin_dir%;$LD_LIBRARY_PATH">>tbbvars.sh
echo Generating local tbbvars.csh
echo #!/bin/csh>tbbvars.csh
echo setenv TBBROOT "%actual_root%">>tbbvars.csh
echo setenv TBB_ARCH_PLATFORM "%arch%\%runtime%">>tbbvars.csh
echo setenv TBB_TARGET_ARCH "%arch%">>tbbvars.csh
echo setenv %_INCLUDE% "${TBBROOT}\include;$%_INCLUDE%">>tbbvars.csh
echo setenv %_LIB% "%bin_dir%;$%_LIB%">>tbbvars.csh
echo setenv PATH "%bin_dir%;$PATH">>tbbvars.csh
if not x%UNIXMODE%==x echo setenv LD_LIBRARY_PATH "%bin_dir%;$LD_LIBRARY_PATH">>tbbvars.csh
if not x%LIB_STL_ANDROID%==x (
REM Workaround for copying Android* specific stl shared library to work folder
copy /Y "%LIB_STL_ANDROID:/=\%" .
)
endlocal
exit
-71
View File
@@ -1,71 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Script used to generate tbbvars.[c]sh scripts
bin_dir="$PWD" #
cd "$tbb_root" # keep this comments here
tbb_root="$PWD" # to make it unsensible
cd "$bin_dir" # to EOL encoding
cat >./tbbvars.sh <<EOF
#!/bin/bash
export TBBROOT="${tbb_root}" #
tbb_bin="${bin_dir}" #
if [ -z "\$CPATH" ]; then #
export CPATH="\${TBBROOT}/include" #
else #
export CPATH="\${TBBROOT}/include:\$CPATH" #
fi #
if [ -z "\$${2}LIBRARY_PATH" ]; then #
export ${2}LIBRARY_PATH="\${tbb_bin}" #
else #
export ${2}LIBRARY_PATH="\${tbb_bin}:\$${2}LIBRARY_PATH" #
fi #
if [ -z "\$${1}LD_LIBRARY_PATH" ]; then #
export ${1}LD_LIBRARY_PATH="\${tbb_bin}" #
else #
export ${1}LD_LIBRARY_PATH="\${tbb_bin}:\$${1}LD_LIBRARY_PATH" #
fi #
${TBB_CUSTOM_VARS_SH} #
EOF
cat >./tbbvars.csh <<EOF
#!/bin/csh
setenv TBBROOT "${tbb_root}" #
setenv tbb_bin "${bin_dir}" #
if (! \$?CPATH) then #
setenv CPATH "\${TBBROOT}/include" #
else #
setenv CPATH "\${TBBROOT}/include:\$CPATH" #
endif #
if (! \$?${2}LIBRARY_PATH) then #
setenv ${2}LIBRARY_PATH "\${tbb_bin}" #
else #
setenv ${2}LIBRARY_PATH "\${tbb_bin}:\$${2}LIBRARY_PATH" #
endif #
if (! \$?${1}LD_LIBRARY_PATH) then #
setenv ${1}LD_LIBRARY_PATH "\${tbb_bin}" #
else #
setenv ${1}LD_LIBRARY_PATH "\${tbb_bin}:\$${1}LD_LIBRARY_PATH" #
endif #
${TBB_CUSTOM_VARS_CSH} #
EOF
# Workaround for copying Android* specific stl shared library to "."
if [ ! -z "${LIB_STL_ANDROID}" ]; then #
cp ${LIB_STL_ANDROID} . #
fi #
-242
View File
@@ -1,242 +0,0 @@
<HTML>
<BODY>
<H2>Overview</H2>
This directory contains the internal Makefile infrastructure for Intel&reg; Threading Building Blocks (Intel&reg; TBB).
<P>
See below for how to <A HREF="#build">build</A> Intel TBB and how to <A HREF="#port">port</A> Intel TBB
to a new platform, operating system or architecture.
</P>
<H2>Files</H2>
The files here are not intended to be used directly. See below for usage.
<DL>
<DT><A HREF="Makefile.tbb">Makefile.tbb</A>
<DD>Main Makefile to build the Intel TBB library.
Invoked via 'make tbb' from <A HREF="../Makefile">top-level Makefile</A>.
<DT><A HREF="Makefile.tbbmalloc">Makefile.tbbmalloc</A>
<DD>Main Makefile to build the Intel TBB scalable memory allocator library as well as its tests.
Invoked via 'make tbbmalloc' from <A HREF="../Makefile">top-level Makefile</A>.
<DT><A HREF="Makefile.test">Makefile.test</A>
<DD>Main Makefile to build and run the tests for the Intel TBB library.
Invoked via 'make test' from <A HREF="../Makefile">top-level Makefile</A>.
<DT><A HREF="common.inc">common.inc</A>
<DD>Main common included Makefile that includes OS-specific and compiler-specific Makefiles.
<DT>&lt;os&gt;.inc
<DD>OS-specific Makefile for a particular &lt;os&gt;.
<DT>&lt;os&gt;.&lt;compiler&gt;.inc
<DD>Compiler-specific Makefile for a particular &lt;os&gt; / &lt;compiler&gt; combination.
<DT>*.sh
<DD>Infrastructure utilities for Linux* OS, OS X*, and UNIX*-related operating systems.
<DT>*.js, *.bat
<DD>Infrastructure utilities for Windows* OS.
</DL>
<A NAME="build"><H2>To Build</H2></A>
<P>
To port Intel TBB to a new platform, operating system or architecture, see the <A HREF="#port">porting directions</A> below.
</P>
<H3>Software prerequisites:</H3>
<OL>
<LI>C++ compiler for the platform, operating system and architecture of interest.
Either the native compiler for your system, or, optionally, the appropriate Intel&reg; C++ compiler, may be used.
<LI>GNU make utility. On Windows OS, if a UNIX* emulator is used to run GNU make,
it should be able to run Windows OS utilities and commands. On Linux OS, OS X, etc.,
shell commands issued by GNU make should execute in a Bourne or BASH compatible shell.
In the following examples, replace <TT>make</TT> with the correct GNU make command for
your system (for example, <TT>gmake</TT>). GNU make version 3.80 and more recent are supported.
</OL>
<P>
Intel TBB libraries can be built by performing the following steps.
On systems that support only one ABI (e.g., 32-bit), these steps build the libraries for that ABI.
On systems that support both 64-bit and 32-bit libraries, these steps build the 64-bit libraries
(Linux OS, OS X, and related systems) or whichever ABI is selected in the development environment (Windows OS).
</P>
<OL>
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
<LI>If using the Intel&reg; C++ compiler, make sure the appropriate compiler is available in your PATH
(e.g., by sourcing the appropriate iccvars script for the compiler to be used).
<LI>Invoke GNU make using no arguments, for example, <TT>make</TT>.
</OL>
<P>
To build Intel TBB libraries for other than the default ABI (e.g., to build 32-bit libraries on Linux OS, OS X,
or related systems that support both 64-bit and 32-bit libraries), perform the following steps:
</P>
<OL>
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
<LI>If using the Intel&reg; C++ compiler, make sure the appropriate compiler is available in your PATH
(e.g., by sourcing the appropriate iccvars script for the compiler to be used).
<LI>Explicitly specify the architecture when invoking GNU make, e.g. <TT>make arch=ia32</TT>.
</OL>
<P>The default make target will build the release and debug versions of the Intel TBB library.</P>
<P>Other targets are available in the top-level Makefile. You might find the following targets useful:
<UL>
<LI><TT>make test</TT> will build and run Intel TBB <A HREF="../src/test">unit-tests</A>;
<LI><TT>make examples</TT> will build and run Intel TBB <A HREF="../examples/index.html">examples</A>. Available in the open-source version only.
For the commercial version, you can download Intel TBB Samples at the <a href="https://software.intel.com/en-us/product-code-samples?topic=20828">Intel&reg; Software Product Samples and Tutorials</a> website;
<LI><TT>make all</TT> will do all of the above. Available in the open-source version only.
</UL>
See also the list of other targets below.
</P>
<P>
By default, the libraries will be built in sub-directories within the build/ directory.
The sub-directories are named according to the operating system, architecture, compiler and software environment used
(the sub-directory names also distinguish release vs. debug libraries). On Linux OS, the software environment comprises
the GCC, libc and kernel version used. On OS X, the software environment comprises the GCC and OS version used.
On Windows OS, the software environment comprises the Microsoft* Visual Studio* version used.
See below for how to change the default build directory.
</P>
<P>
To perform different build and/or test operations, use the following steps.
</P>
<OL>
<LI>Change to the <A HREF="../index.html">top-level directory</A> of the installed software.
<LI>If using the Intel&reg; C++ compiler, make sure the appropriate compiler is available in your PATH
(e.g., by sourcing the appropriate iccvars script for the compiler to be used).
<LI>Invoke GNU make by using one or more of the following commands.
<DL>
<DT><TT>make</TT>
<DD>Default build. Equivalent to <TT>make tbb tbbmalloc</TT>.
<DT><TT>make all</TT>
<DD>Equivalent to <TT>make tbb tbbmalloc test examples</TT>. Available in the open-source version only.
<DT><TT>cd src;make release</TT>
<DD>Build and test release libraries only.
<DT><TT>cd src;make debug</TT>
<DD>Build and test debug libraries only.
<DT><TT>make tbb</TT>
<DD>Make Intel TBB release and debug libraries.
<DT><TT>make tbbmalloc</TT>
<DD>Make Intel TBB scalable memory allocator libraries.
<DT><TT>make test</TT>
<DD>Compile and run unit-tests
<DT><TT>make examples</TT>
<DD>Build libraries and run all examples, like doing <TT>make debug clean release</TT> from <A HREF="../examples/Makefile">the general example Makefile</A>.
Available in the open-source version only.
<DT><TT>make python</TT>
<DD>Build, install, and test Python* API for Intel TBB. See <A HREF="../python/index.html">details here</A>.
<DT><TT>make compiler=<B>{</B>icl, icc, gcc, clang<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but use specified compilers instead of default, native compilers
<ol>
<li><tt><b> {</b>icl, icc<b>}</b> </tt> - to use Intel&reg; compilers (<tt>icl</tt> on Windows OS, <tt>icc</tt> on Linux OS or OS X). </li>
<li><tt>gcc</tt> - to use g++ (e.g. MinGW on Windows OS)</li>
<li><tt>clang</tt> - to use Clang compiler</li>
</ol>
<DT><TT>make compiler=clang stdlib=libc++ <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but use <TT>libc++</TT> as a standard c++ library for clang.
<DT><TT>make stdver=<B>{</B>c++11, c++14, ...<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but additionally specify the version of the C++ standard or dialect to be used by
the compiler. The specified value of <TT>stdver</TT> will be used as a parameter to the appropriate
compiler option (such as <TT>-std</TT>); the behavior in case of unsupported value is compiler-specific.
<DT><TT>make target_ui=win8ui [target_ui_mode=production] <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but use API that is compliant with Windows Store* applications.
<TT>target_ui_mode=production</TT> is used to produce binaries that are compliant with Windows Store* application container. In later case they won't with Intel TBB unit tests but work only with Windows Store* applications.
<DT><TT>ndk-build target=android <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but build libraries for Android* OS by Android NDK that should be installed. Makefiles were tested with revision 8.
<DT><TT>make arch=<B>{</B>ia32, intel64, ia64<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but build libraries for the selected ABI.
Might be useful for cross-compilation; ensure proper environment is set before running this command.
<DT><TT>make tbb_root=<B>{</B>(Intel TBB directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above; for use when invoking <TT>make</TT> from a directory other than the <A HREF="../index.html">top-level directory</A>.
<DT><TT>make tbb_build_dir=<B>{</B>(build directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but place the built libraries in the specified directory, rather than in the default sub-directory within the build/ directory. This command might have troubles with the build in case the sources installed to the directory with spaces in the path.
<DT><TT>make tbb_build_prefix=<B>{</B>(build sub-directory)<B>}</B> <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but place the built libraries in the specified sub-directory within the build/ directory, rather than using the default sub-directory name.
<DT><TT>make tbb_cpf=1 <B>[</B>(above options or targets)<B>]</B></TT>
<DD>Build and run as above, but build and use libraries with the Community Preview Features enabled, rather than the default libraries.
<DT><TT>make <B>[</B>(above options)<B>]</B> clean</TT>
<DD>Remove any executables or intermediate files produced by the above commands.
Includes build directories, object files, libraries and test executables.
</DL>
</OL>
<A NAME="port"><H2>To Port</H2></A>
<P>
This section provides information on how to port Intel TBB to a new platform, operating system or architecture.
A subset or a superset of these steps may be required for porting to a given platform.
</P>
<H4>To port the Intel TBB source code:</H4>
<OL>
<LI>If porting to a new architecture, create a file that describes the architecture-specific details for that architecture.
<UL>
<LI>Create a &lt;os&gt;_&lt;architecture&gt;.h file in the <A HREF="../include/tbb/machine">include/tbb/machine</A> directory
that describes these details.
<UL>
<LI>The &lt;os&gt;_&lt;architecture&gt;.h is named after the operating system and architecture as recognized by
<A HREF="../include/tbb/tbb_machine.h">include/tbb/tbb_machine.h</A> and the Makefile infrastructure.
<LI>This file defines the implementations of synchronization operations, and also the
scheduler yield function, for the operating system and architecture.
<LI>Several examples of &lt;os&gt;_&lt;architecture&gt;.h files can be found in the
<A HREF="../include/tbb/machine">include/tbb/machine</A> directory.
<UL>
<LI>A minimal implementation defines the 4-byte and 8-byte compare-and-swap operations,
and the scheduler yield function. See <A HREF="../include/tbb/machine/mac_ppc.h">include/tbb/machine/mac_ppc.h</A>
for an example of a minimal implementation.
<LI>More complex implementation examples can also be found in the
<A HREF="../include/tbb/machine">include/tbb/machine</A> directory
that implement all the individual variants of synchronization operations that Intel TBB uses.
Such implementations are more verbose but may achieve better performance on a given architecture.
<LI>In a given implementation, any synchronization operation that is not defined is implemented, by default,
in terms of 4-byte or 8-byte compare-and-swap. More operations can thus be added incrementally to increase
the performance of an implementation.
<LI>In most cases, synchronization operations are implemented as inline assembly code; examples also exist,
(e.g., for Intel&reg; Itanium&reg; processors) that use out-of-line assembly code in *.s or *.asm files
(see the assembly code sub-directories in the <A HREF="../src/tbb">src/tbb</A> directory).
</UL>
</UL>
<LI>Modify <A HREF="../include/tbb/tbb_machine.h">include/tbb/tbb_machine.h</A>, if needed, to invoke the appropriate
&lt;os&gt;_&lt;architecture&gt;.h file in the <A HREF="../include/tbb/machine">include/tbb/machine</A> directory.
</UL>
<LI>Add an implementation of DetectNumberOfWorkers() in <A HREF="../src/tbb/tbb_misc.h">src/tbb/tbb_misc.h</A>,
that returns the number of cores found on the system in case it is not supported by the current implementation.
This is used to determine the default number of threads for the Intel TBB task scheduler.
<LI>Either properly define FillDynamicLinks for use in
<A HREF="../src/tbb/cache_aligned_allocator.cpp">src/tbb/cache_aligned_allocator.cpp</A>,
or hardcode the allocator to be used.
<LI>Additional types might be required in the union defined in
<A HREF="../include/tbb/aligned_space.h">include/tbb/aligned_space.h</A>
to ensure proper alignment on your platform.
<LI>Changes may be required in <A HREF="../include/tbb/tick_count.h">include/tbb/tick_count.h</A>
for systems that do not provide gettimeofday.
</OL>
<H4>To port the Makefile infrastructure:</H4>
Modify the appropriate files in the Makefile infrastructure to add a new platform, operating system or architecture as needed.
See the Makefile infrastructure files for examples.
<OL>
<LI>The <A HREF="../Makefile">top-level Makefile</A> includes <A HREF="common.inc">common.inc</A> to determine the operating system.
<UL>
<LI>To add a new operating system, add the appropriate test to <A HREF="common.inc">common.inc</A>, and create the needed &lt;os&gt;.inc and &lt;os&gt;.&lt;compiler&gt;.inc files (see below).
</UL>
<LI>The &lt;os&gt;.inc file makes OS-specific settings for a particular operating systems.
<UL>
<LI>For example, <A HREF="linux.inc">linux.inc</A> makes settings specific to Linux operating systems.
<LI>This file performs OS-dependent tests to determine the specific platform and/or architecture, and sets other platform-dependent values.
<LI>Add a new &lt;os&gt;.inc file for each new operating system added.
</UL>
<LI>The &lt;os&gt;.&lt;compiler&gt;.inc file makes compiler-specific settings for a particular
&lt;os&gt; / &lt;compiler&gt; combination.
<UL>
<LI>For example, <A HREF="linux.gcc.inc">linux.gcc.inc</A> makes specific settings for using GCC on Linux OS, and <A HREF="linux.icc.inc">linux.icc.inc</A> makes specific settings for using the Intel&reg; C++ compiler on Linux OS.
<LI>This file sets particular compiler, assembler and linker options required when using a particular &lt;os&gt; / &lt;compiler&gt; combination.
<LI>Add a new &lt;os&gt;.&lt;compiler&gt;.inc file for each new &lt;os&gt; / &lt;compiler&gt; combination added.
</UL>
</OL>
<HR>
<A HREF="../index.html">Up to parent directory</A>
<P></P>
Copyright &copy; 2005-2016 Intel Corporation. All Rights Reserved.
<P></P>
Intel, the Intel logo and Itanium are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.
<p></p>
* Other names and brands may be claimed as the property of others.
</BODY>
</HTML>
-23
View File
@@ -1,23 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
include $(tbb_root)/build/macos.clang.inc
CPLUS_FLAGS += -miphoneos-version-min=8.0
LINK_FLAGS += -miphoneos-version-min=8.0
LIB_LINK_FLAGS += -miphoneos-version-min=8.0
-36
View File
@@ -1,36 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifneq ($(arch),$(filter $(arch),ia32 intel64 armv7 armv7s arm64))
$(error $(arch) is unknown architecture. Known arhitechtures are ia32 intel64 armv7 armv7s arm64)
endif
# If target is ios but arch is ia32/intel64 then build for 32/64 simulator!
ifeq (,$(SDKROOT))
ifeq ($(arch),$(filter $(arch),ia32 intel64))
export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneSimulator.*' 2>/dev/null)
else
export SDKROOT:=$(shell xcodebuild -sdk -version | grep -o -E '/.*SDKs/iPhoneOS.*' 2>/dev/null)
endif
endif
ifeq (,$(SDKROOT))
$(error iOS* SDK not found)
endif
ios_version:=$(shell echo $(SDKROOT) | sed -e "s/.*[a-z,A-Z]\(.*\).sdk/\1/")
runtime:=cc$(clang_version)_ios$(ios_version)
-115
View File
@@ -1,115 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wextra -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor -Wno-dangling-else
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
CPLUS = clang++
CONLY = clang
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
LIBS += -lpthread -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
endif
ifneq (,$(stdlib))
CPLUS_FLAGS += -stdlib=$(stdlib)
LIB_LINK_FLAGS += -stdlib=$(stdlib)
endif
ifneq (,$(gcc_version))
# TODO: do not assume that GCC minor and patchlevel versions are always single-digit.
CPLUS_FLAGS += -DTBB_USE_GLIBCXX_VERSION=$(subst .,0,$(gcc_version))
endif
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ifeq (intel64,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m32 -march=pentium4
LIB_LINK_FLAGS += -m32
endif
ifeq (ppc64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ppc32,$(arch))
CPLUS_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
ifeq (bg,$(arch))
CPLUS = bgclang++
CONLY = bgclang
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-155
View File
@@ -1,155 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
CPLUS = g++
CONLY = gcc
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
LIBS += -lpthread -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
# gcc 4.2 and higher support OpenMP
ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[2-9]|[5-9])"))
OPENMP_FLAG = -fopenmp
endif
# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable them
ifneq (,$(shell gcc -dumpversion | egrep "^(4\.[8-9]|[5-9])"))
RTM_KEY = -mrtm
endif
# gcc 4.0 and later have -Wextra that is used by some our customers.
ifneq (,$(shell gcc -dumpversion | egrep "^([4-9])"))
TEST_WARNING_KEY += -Wextra
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 gcc -dumpversion | egrep "^([5-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 gcc -dumpversion | egrep "^([6-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
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
endif
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ifeq (ia64,$(arch))
# Position-independent code (PIC) is a must on IA-64 architecture, even for regular (not shared) executables
CPLUS_FLAGS += $(PIC_KEY)
endif
ifeq (intel64,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m64 $(RTM_KEY)
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m32 -march=pentium4 $(RTM_KEY)
LIB_LINK_FLAGS += -m32
endif
ifeq (ppc64,$(arch))
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ppc32,$(arch))
CPLUS_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
ifeq (bg,$(arch))
CPLUS = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-g++ 2>/dev/null)))
CONLY = $(firstword $(notdir $(shell which powerpc{64,32,}-bg{z..a}-linux-gcc 2>/dev/null)))
endif
# for some gcc versions on Solaris, -m64 may imply V9, but perhaps not everywhere (TODO: verify)
ifeq (sparc,$(arch))
CPLUS_FLAGS += -mcpu=v9 -m64
LIB_LINK_FLAGS += -mcpu=v9 -m64
endif
# automatically generate "IT" instructions when compiling for Thumb ISA
ifeq (armv7,$(arch))
CPLUS_FLAGS += -Wa,-mimplicit-it=thumb
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
ifeq (ia64,$(arch))
ASM_FLAGS += -xexplicit
TBB_ASM.OBJ += atomic_support.o lock_byte.o log2.o pause.o ia64_misc.o
MALLOC_ASM.OBJ += atomic_support.o lock_byte.o pause.o log2.o
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-120
View File
@@ -1,120 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -w1
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
NOINTRINSIC_KEY = -fno-builtin
LIBDL = -ldl
ifneq (,$(shell icc -dumpversion | egrep "1[2-9]\."))
SDL_FLAGS = -fstack-protector -Wformat -Wformat-security
endif
CPLUS = icpc
CONLY = icc
ITT_NOTIFY = -DDO_ITT_NOTIFY
ifeq (release,$(cfg))
SDL_FLAGS += -D_FORTIFY_SOURCE=2
CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -g -DUSE_PTHREAD
else
CPLUS_FLAGS = $(ITT_NOTIFY) -O0 -g -DUSE_PTHREAD -DTBB_USE_DEBUG
endif
LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
LIBS += -lpthread -lrt
LINK_FLAGS = -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\."))
OPENMP_FLAG = -qopenmp
else
OPENMP_FLAG = -openmp
endif
# ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus
ifneq (,$(shell icc -dumpversion | egrep "^1[2-9]\."))
CILK_AVAILABLE = yes
endif
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32 -falign-stack=maintain-16-byte
LIB_LINK_FLAGS += -m32
endif
ifeq (ia64,$(arch))
ITT_NOTIFY =
# Position-independent code (PIC) is a must on IA-64 architecture, even for regular (not shared) executables
# strict-ansi does not work with <signal.h> on RHEL 4 AS
CPLUS_FLAGS += $(PIC_KEY) $(if $(findstring cc3.,$(runtime)),-ansi,-strict-ansi)
else
# For ICC 16 and older, in std=c++14 mode -strict-ansi does not work with GNU C++ library headers
# egrep returns 0 or 1, compare it in concatenation
CPLUS_FLAGS += $(if $(findstring c++14_1,$(stdver)_$(shell icc -dumpversion| egrep -c "^1[1-6]\.")),-ansi,-strict-ansi)
endif
ifneq (,$(codecov))
# no tool support for code coverage, need profile data generation
ITT_NOTIFY = -prof-genx
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
ifeq (ia64,$(arch))
ASM_FLAGS += -xexplicit
TBB_ASM.OBJ += atomic_support.o lock_byte.o log2.o pause.o ia64_misc.o
MALLOC_ASM.OBJ += atomic_support.o lock_byte.o pause.o log2.o
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-142
View File
@@ -1,142 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
####### Detections and Commands ###############################################
ifeq (icc,$(compiler))
export COMPILER_VERSION := ICC: $(shell icc -V </dev/null 2>&1 | grep 'Version')
ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION)))
export arch:=ia32
else
ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION)))
export arch:=intel64
else
ifneq (,$(findstring IA-64, $(COMPILER_VERSION)))
export arch:=ia64
endif
endif
endif
ifeq (,$(arch))
$(warning "Unknown Intel compiler")
endif
endif
ifndef arch
uname_m:=$(shell uname -m)
ifeq ($(uname_m),i686)
export arch:=ia32
endif
ifeq ($(uname_m),ia64)
export arch:=ia64
endif
ifeq ($(uname_m),x86_64)
export arch:=intel64
endif
ifeq ($(uname_m),sparc64)
export arch:=sparc
endif
ifeq ($(uname_m),armv7l)
export arch:=armv7
endif
ifndef arch
export arch:=$(uname_m)
endif
endif
ifndef runtime
export gcc_version:=$(shell gcc -dumpversion)
os_version:=$(shell uname -r)
os_kernel_version:=$(shell uname -r | sed -e 's/-.*$$//')
export os_glibc_version_full:=$(shell getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //')
os_glibc_version:=$(shell echo "$(os_glibc_version_full)" | sed -e '2,$$d' -e 's/-.*$$//')
export runtime:=cc$(gcc_version)_libc$(os_glibc_version)_kernel$(os_kernel_version)
endif
native_compiler := gcc
export compiler ?= gcc
debugger ?= gdb
CMD=sh -c
CWD=$(shell pwd)
CP=cp
RM?=rm -f
RD?=rmdir
MD?=mkdir -p
NUL= /dev/null
SLASH=/
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(VERSION_FLAGS) >version_string.ver
MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh
ifdef LD_LIBRARY_PATH
export LD_LIBRARY_PATH := .:$(LD_LIBRARY_PATH)
else
export LD_LIBRARY_PATH := .
endif
####### Build settings ########################################################
OBJ = o
DLL = so
MALLOC_DLL?=$(DLL)
LIBEXT = so
SONAME_SUFFIX =$(shell grep TBB_COMPATIBLE_INTERFACE_VERSION $(tbb_root)/include/tbb/tbb_stddef.h | egrep -o [0-9.]+)
ifeq ($(arch),ia64)
def_prefix = lin64ipf
endif
ifeq ($(arch),sparc s390x)
def_prefix = lin64
endif
ifeq ($(arch),armv7)
def_prefix = lin32
endif
ifeq (,$(def_prefix))
ifeq (64,$(findstring 64,$(arch)))
def_prefix = lin64
else
def_prefix = lin32
endif
endif
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
TBB.DEF = $(TBB.LST:.lst=.def)
TBB.DLL = $(TBB_NO_VERSION.DLL).$(SONAME_SUFFIX)
TBB.LIB = $(TBB.DLL)
TBB_NO_VERSION.DLL=libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
LINK_TBB.LIB = $(TBB_NO_VERSION.DLL)
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)
MALLOC.LIB = $(MALLOC_NO_VERSION.DLL)
LINK_MALLOC.LIB = $(MALLOC_NO_VERSION.DLL)
MALLOCPROXY_NO_VERSION.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(DLL)
MALLOCPROXY.DEF = $(MALLOC_ROOT)/$(def_prefix)-proxy-export.def
MALLOCPROXY.DLL = $(MALLOCPROXY_NO_VERSION.DLL).$(SONAME_SUFFIX)
MALLOCPROXY.LIB = $(MALLOCPROXY_NO_VERSION.DLL)
LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
RML_NO_VERSION.DLL = libirml$(DEBUG_SUFFIX).$(DLL)
RML.DEF = $(RML_SERVER_ROOT)/lin-rml-export.def
RML.DLL = $(RML_NO_VERSION.DLL).1
RML.LIB = $(RML_NO_VERSION.DLL)
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
OPENCL.LIB = -lOpenCL
-93
View File
@@ -1,93 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor -Wextra
WARNING_SUPPRESS = -Wno-parentheses -Wno-non-virtual-dtor
DYLIB_KEY = -shared
EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
CPLUS = pathCC
CONLY = pathcc
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
LIBS += -lstl -lpthread -lrt
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
C_FLAGS = $(CPLUS_FLAGS)
OPENMP_FLAG = -openmp
ifeq ($(cfg), release)
CPLUS_FLAGS = $(ITT_NOTIFY) -g -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
endif
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
ifeq (intel64,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -m32 -march=pentium4
LIB_LINK_FLAGS += -m32
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += --64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += --32
endif
ifeq ($(cfg),debug)
ASM_FLAGS += -g
endif
ASSEMBLY_SOURCE=$(arch)-gas
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-104
View File
@@ -1,104 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
####### Detections and Commands ###############################################
COMPILE_ONLY = -c
PREPROC_ONLY = -E -qsourcetype=c
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -qpic
WARNING_AS_ERROR_KEY = -qhalt=w
WARNING_KEY =
TEST_WARNING_KEY =
WARNING_SUPPRESS =
DYLIB_KEY = -qmkshrobj
EXPORT_KEY = -Wl,--version-script,
LIBDL = -ldl
CPLUS = xlc++_r
CONLY = xlc_r
LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
LIBS = -lpthread -lrt
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = $(ITT_NOTIFY) -O2 -DUSE_PTHREAD
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = -DTBB_USE_DEBUG $(ITT_NOTIFY) -g -O0 -DUSE_PTHREAD
endif
# Adding directly to CPLUS_FLAGS instead of to WARNING_SUPPRESS because otherwise it would not be used in several tests (why not?).
# Suppress warnings like:
# - "1500-029: (W) WARNING: subprogram [...] could not be inlined into [...]."
# - "1501-201: (W) Maximum number of common component diagnostics, 10 has been exceeded."
# see http://www-01.ibm.com/support/docview.wss?uid=swg1LI72843
# it seems that the internal compiler error that would ensue has now been avoided, making the condition harmless
# - "1540-0198 (W) The omitted keyword "private" is assumed for base class "no_copy"."
# - "1540-0822 (W) The name "__FUNCTION__" must not be defined as a macro."
CPLUS_FLAGS += -qsuppress=1500-029:1501-201:1540-0198:1540-0822
ASM=
ASM_FLAGS=
TBB_ASM.OBJ=
ifeq (intel64,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -q64
LIB_LINK_FLAGS += -q64
endif
# TODO: equivalent for -march=pentium4 in CPLUS_FLAGS
ifeq (ia32,$(arch))
ITT_NOTIFY = -DDO_ITT_NOTIFY
CPLUS_FLAGS += -q32 -qarch=pentium4
LIB_LINK_FLAGS += -q32
endif
ifeq (ppc64,$(arch))
CPLUS_FLAGS += -q64
LIB_LINK_FLAGS += -q64
endif
ifeq (ppc32,$(arch))
CPLUS_FLAGS += -q32
LIB_LINK_FLAGS += -q32
endif
ifeq (bg,$(arch))
CPLUS = bgxlC_r
CONLY = bgxlc_r
endif
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
# Suppress innumerable warnings like "1540-1088 (W) The exception specification is being ignored."
# Suppress warnings like "1540-1090 (I) The destructor of "lock" might not be called."
# TODO: aren't these warnings an indication that -qnoeh might not be appropriate?
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -qnortti -qnoeh -qsuppress=1540-1088:1540-1090
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-123
View File
@@ -1,123 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
CPLUS = clang++
CONLY = clang
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wextra -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
WARNING_SUPPRESS = -Wno-non-virtual-dtor -Wno-dangling-else
DYLIB_KEY = -dynamiclib
EXPORT_KEY = -Wl,-exported_symbols_list,
LIBDL = -ldl
LIBS = -lpthread
LINK_FLAGS =
LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY)
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = -g -O2
else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
CPLUS_FLAGS += -DUSE_PTHREAD
# For Clang, we add the option to support RTM intrinsics *iff* xtest is found in <immintrin.h>
ifneq (,$(shell grep xtest `echo "\#include<immintrin.h>" | clang -E -M - 2>&1 | grep immintrin.h` 2>/dev/null))
RTM_KEY = -mrtm
endif
ifneq (,$(stdlib))
CPLUS_FLAGS += -stdlib=$(stdlib)
LIB_LINK_FLAGS += -stdlib=$(stdlib)
endif
ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64 $(RTM_KEY)
LINK_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32 $(RTM_KEY)
LINK_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
ifeq (ppc64,$(arch))
CPLUS_FLAGS += -arch ppc64
LINK_FLAGS += -arch ppc64
LIB_LINK_FLAGS += -arch ppc64
endif
ifeq (ppc32,$(arch))
CPLUS_FLAGS += -arch ppc
LINK_FLAGS += -arch ppc
LIB_LINK_FLAGS += -arch ppc
endif
ifeq ($(arch),$(filter $(arch),armv7 armv7s arm64))
CPLUS_FLAGS += -arch $(arch)
LINK_FLAGS += -arch $(arch)
LIB_LINK_FLAGS += -arch $(arch)
endif
ifdef SDKROOT
CPLUS_FLAGS += -isysroot $(SDKROOT)
LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/
LIB_LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += -arch x86_64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += -arch i386
endif
ifeq ($(cfg), debug)
ASM_FLAGS += -g
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-112
View File
@@ -1,112 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
CPLUS = g++
CONLY = gcc
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -Wall
TEST_WARNING_KEY = -Wextra -Wshadow -Wcast-qual -Woverloaded-virtual -Wnon-virtual-dtor
WARNING_SUPPRESS = -Wno-non-virtual-dtor
DYLIB_KEY = -dynamiclib
EXPORT_KEY = -Wl,-exported_symbols_list,
LIBDL = -ldl
LIBS = -lpthread
LINK_FLAGS =
LIB_LINK_FLAGS = -dynamiclib -install_name @rpath/$(BUILDING_LIBRARY)
C_FLAGS = $(CPLUS_FLAGS)
ifeq ($(cfg), release)
CPLUS_FLAGS = -g -O2
else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
CPLUS_FLAGS += -DUSE_PTHREAD
ifeq (intel64,$(arch))
CPLUS_FLAGS += -m64
LINK_FLAGS += -m64
LIB_LINK_FLAGS += -m64
endif
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32
LINK_FLAGS += -m32
LIB_LINK_FLAGS += -m32
endif
ifeq (ppc64,$(arch))
CPLUS_FLAGS += -arch ppc64
LINK_FLAGS += -arch ppc64
LIB_LINK_FLAGS += -arch ppc64
endif
ifeq (ppc32,$(arch))
CPLUS_FLAGS += -arch ppc
LINK_FLAGS += -arch ppc
LIB_LINK_FLAGS += -arch ppc
endif
ifeq (armv7,$(arch))
CPLUS_FLAGS += -arch armv7
LINK_FLAGS += -arch armv7
LIB_LINK_FLAGS += -arch armv7
endif
ifdef SDKROOT
CPLUS_FLAGS += -isysroot $(SDKROOT)
LIB_LINK_FLAGS += -L$(SDKROOT)/usr/lib/system -L$(SDKROOT)/usr/lib/
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += -arch x86_64
endif
ifeq (ia32,$(arch))
ASM_FLAGS += -arch i386
endif
ifeq ($(cfg), debug)
ASM_FLAGS += -g
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-107
View File
@@ -1,107 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
CPLUS = icpc
CONLY = icc
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -w1
ifneq (,$(shell icc -dumpversion | egrep "1[2-9]\."))
SDL_FLAGS = -fstack-protector -Wformat -Wformat-security
endif
DYLIB_KEY = -dynamiclib
EXPORT_KEY = -Wl,-exported_symbols_list,
LIBDL = -ldl
LIBS = -lpthread
LINK_FLAGS =
LIB_LINK_FLAGS = -dynamiclib -static-intel -install_name @rpath/$(BUILDING_LIBRARY)
C_FLAGS = $(CPLUS_FLAGS)
ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\."))
OPENMP_FLAG = -qopenmp
else
OPENMP_FLAG = -openmp
endif
# ICC 12.0 and higher provide Intel(R) Cilk(TM) Plus
ifneq (,$(shell icc -dumpversion | egrep "^1[2-9]\."))
CILK_AVAILABLE = yes
endif
ifeq ($(cfg), release)
SDL_FLAGS += -D_FORTIFY_SOURCE=2
CPLUS_FLAGS = -g -O2 -fno-omit-frame-pointer
else
CPLUS_FLAGS = -g -O0 -DTBB_USE_DEBUG
endif
CPLUS_FLAGS += -DUSE_PTHREAD
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-genx
endif
# ICC 14.0 and higher support usage of libc++, clang standard library
# Extending minimal deployment version of official binaries to unsupported 10.8
# per customer requests. TODO: make a dedicated variable for this
ifneq (,$(shell icc -dumpversion | egrep "^1[4-9]\."))
ifneq (,$(stdlib))
CPLUS_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=10.8
LIB_LINK_FLAGS += -stdlib=$(stdlib) -mmacosx-version-min=10.8
endif
endif
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASM = as
ifeq (intel64,$(arch))
ASM_FLAGS += -arch x86_64
endif
ifeq (ia32,$(arch))
CPLUS_FLAGS += -m32
LINK_FLAGS += -m32
LIB_LINK_FLAGS += -m32
ASM_FLAGS += -arch i386
endif
ifeq ($(cfg), debug)
ASM_FLAGS += -g
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-107
View File
@@ -1,107 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
####### Detections and Commands ###############################################
ifeq (icc,$(compiler))
export COMPILER_VERSION := ICC: $(shell icc -V </dev/null 2>&1 | grep 'Version')
ifneq (,$(findstring running on IA-32, $(COMPILER_VERSION)))
export arch:=ia32
else
ifneq (,$(findstring running on Intel(R) 64, $(COMPILER_VERSION)))
export arch:=intel64
endif
endif
ifeq (,$(arch))
$(warning "Unknown Intel compiler")
endif
endif
ifndef arch
ifeq ($(shell /usr/sbin/sysctl -n hw.machine),Power Macintosh)
ifeq ($(shell /usr/sbin/sysctl -n hw.optional.64bitops),1)
export arch:=ppc64
else
export arch:=ppc32
endif
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
ifndef runtime
clang_version:=$(shell clang -v 2>&1 >/dev/null | grep version | sed -e "s/.*version \(.*[0-9]\) .*/\1/")
ifndef os_version
os_version:=$(shell /usr/bin/sw_vers -productVersion)
endif
export runtime:=cc$(clang_version)_os$(os_version)
endif
native_compiler := clang
export compiler ?= clang
debugger ?= lldb
export stdlib ?= libc++
CMD=$(SHELL) -c
CWD=$(shell pwd)
RM?=rm -f
RD?=rmdir
MD?=mkdir -p
NUL= /dev/null
SLASH=/
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_macos.sh $(VERSION_FLAGS) >version_string.ver
MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh DY
ifdef DYLD_LIBRARY_PATH
export DYLD_LIBRARY_PATH := .:$(DYLD_LIBRARY_PATH)
else
export DYLD_LIBRARY_PATH := .
endif
####### Build settings ########################################################
OBJ=o
DLL=dylib
MALLOC_DLL?=$(DLL)
LIBEXT=dylib
def_prefix = $(if $(findstring 64,$(arch)),mac64,mac32)
TBB.LST = $(tbb_root)/src/tbb/$(def_prefix)-tbb-export.lst
TBB.DEF = $(TBB.LST:.lst=.def)
TBB.DLL = libtbb$(CPF_SUFFIX)$(DEBUG_SUFFIX).$(DLL)
TBB.LIB = $(TBB.DLL)
LINK_TBB.LIB = $(TBB.LIB)
MALLOC.DEF = $(MALLOC_ROOT)/$(def_prefix)-tbbmalloc-export.def
MALLOC.DLL = libtbbmalloc$(DEBUG_SUFFIX).$(MALLOC_DLL)
MALLOC.LIB = $(MALLOC.DLL)
LINK_MALLOC.LIB = $(MALLOC.LIB)
MALLOCPROXY.DLL = libtbbmalloc_proxy$(DEBUG_SUFFIX).$(MALLOC_DLL)
MALLOCPROXY.LIB = $(MALLOCPROXY.DLL)
LINK_MALLOCPROXY.LIB = $(MALLOCPROXY.LIB)
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
OPENCL.LIB = -framework OpenCL
-79
View File
@@ -1,79 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
COMPILE_ONLY = -c -MMD
PREPROC_ONLY = -E -x c++
INCLUDE_KEY = -I
DEFINE_KEY = -D
OUTPUT_KEY = -o #
OUTPUTOBJ_KEY = -o #
PIC_KEY = -fPIC
WARNING_AS_ERROR_KEY = -Werror
WARNING_KEY = -w1
DYLIB_KEY = -shared -Wl,-soname=$@
EXPORT_KEY = -Wl,--version-script,
NOINTRINSIC_KEY = -fno-builtin
LIBDL = -ldl
SDL_FLAGS = -fstack-protector -Wformat -Wformat-security
CPLUS = icpc
CONLY = icc
ifeq (release,$(cfg))
SDL_FLAGS += -D_FORTIFY_SOURCE=2
CPLUS_FLAGS = -O2 -g -DUSE_PTHREAD
else
CPLUS_FLAGS = -O0 -g -DUSE_PTHREAD -DTBB_USE_DEBUG
endif
ifneq (,$(codecov))
CPLUS_FLAGS += -prof-genx
endif
ifneq (,$(shell icc -dumpversion | egrep "^1[6-9]\."))
OPENMP_FLAG = -qopenmp
else
OPENMP_FLAG = -openmp
endif
LIB_LINK_FLAGS = -shared -static-intel -Wl,-soname=$(BUILDING_LIBRARY) -z relro -z now
LIBS += -lpthread -lrt
C_FLAGS = $(CPLUS_FLAGS)
CILK_AVAILABLE = yes
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
CPLUS_FLAGS += -DHARNESS_INCOMPLETE_SOURCES=1 -D__TBB_MIC_NATIVE -DTBB_USE_EXCEPTIONS=0 -qopt-streaming-stores never
CPLUS += -mmic
CONLY += -mmic
LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
# Tell the icc to not link against libcilk*. Otherwise icc tries to link and emits a warning message.
LIB_LINK_FLAGS += -no-intel-extensions
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS) -fno-rtti -fno-exceptions
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
-43
View File
@@ -1,43 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifeq ($(tbb_os),mic)
$(error MIC supports only cross-compilation. Specify "target=mic" instead.)
endif
ifneq ($(BUILDING_PHASE),1)
# The same build prefix should be used in offload.inc
ifeq (,$(tbb_build_prefix))
tbb_build_prefix=mic_icc$(CPF_SUFFIX)
endif
# For examples
mic_tbb_build_prefix=$(tbb_build_prefix)
endif
MAKE_VERSIONS=sh $(tbb_root)/build/version_info_linux.sh $(VERSION_FLAGS) >version_string.ver
MAKE_TBBVARS=sh $(tbb_root)/build/generate_tbbvars.sh MIC_ MIC_
def_prefix=lin64
TEST_LAUNCHER=
run_cmd ?= bash $(tbb_root)/build/mic.linux.launcher.sh $(largs)
# detects whether examples are being built.
ifeq ($(BUILDING_PHASE),0)
export UI = con
export x64 = 64
endif # examples
-161
View File
@@ -1,161 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Usage:
# mic.linux.launcher.sh [-v] [-q] [-s] [-r <repeats>] [-u] [-l <library>] <executable> <arg1> <arg2> <argN>
# where: -v enables verbose output
# where: -q enables quiet mode
# where: -s runs the test in stress mode (until non-zero exit code or ctrl-c pressed)
# where: -r <repeats> specifies number of times to repeat execution
# where: -u limits stack size
# where: -l <library> specifies the library name to be assigned to LD_PRELOAD
#
# Libs and executable necessary for testing should be present in the current directory before running.
# Note: Do not remove the redirections to '/dev/null' in the script, otherwise the nightly test system will fail.
#
trap 'echo Error at line $LINENO while executing "$BASH_COMMAND"' ERR #
trap 'echo -e "\n*** Interrupted ***" && exit 1' SIGINT SIGQUIT #
# Process the optional arguments if present
while getopts "qvsr:ul:" flag #
do case $flag in #
s ) # Stress testing mode
echo Doing stress testing. Press Ctrl-C to terminate
run_env='stressed() { while $*; do :; done; };' #
run_prefix="stressed $run_prefix" ;; #
r ) # Repeats test n times
run_env="repeated() { for i in \$(seq 1 $OPTARG); do echo \$i of $OPTARG:; \$*; done; };" #
run_prefix="repeated $run_prefix" ;; #
l ) # Additional library
ldd_list+="$OPTARG " #
run_prefix+=" LD_PRELOAD=$OPTARG" ;; #
u ) # Set stack limit
run_prefix="ulimit -s 10240; $run_prefix" ;; #
q ) # Quiet mode, removes 'done' but prepends any other output by test name
SUPPRESS='>/dev/null' #
verbose=1 ;; # TODO: implement a better quiet mode
v ) # Verbose mode
verbose=1 ;; #
esac done #
shift `expr $OPTIND - 1` #
[ $verbose ] || SUPPRESS='>/dev/null' #
#
# Collect the executable name
fexename="$1" #
exename=`basename $1` #
shift #
#
: ${MICDEV:=mic0} #
RSH="sudo ssh $MICDEV" #
RCP="sudo scp" #
currentdir=$PWD #
#
# Prepare the target directory on the device
targetdir="`$RSH mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" #
# Prepare the temporary directory on the host
hostdir="`mktemp -d /tmp/tbbtestXXXXXX 2>/dev/null`" #
#
function copy_files { #
[ $verbose ] && echo Going to copy $* #
eval "cp $* $hostdir/ $SUPPRESS 2>/dev/null || exit \$?" #
eval "$RCP $hostdir/* $MICDEV:$targetdir/ $SUPPRESS 2>/dev/null || exit \$?" #
eval "rm $hostdir/* $SUPPRESS 2>/dev/null || exit \$?" #
} # copy files
#
function clean_all() { #
eval "$RSH rm -fr $targetdir $SUPPRESS" ||: #
eval "rm -fr $hostdir $SUPPRESS" ||: #
} # clean all temporary files
#
function kill_interrupt() { #
echo -e "\n*** Killing remote $exename ***" && $RSH "killall $exename" #
clean_all #
} # kill target process
#
trap 'clean_all' SIGINT SIGQUIT # trap keyboard interrupt (control-c)
#
# Transfer the test executable file and its auxiliary libraries (named as {test}_dll.so) to the target device.
copy_files $fexename `ls ${exename%\.*}*.so 2>/dev/null ||:` #
#
# Collect all dependencies of the test and its auxiliary libraries to transfer them to the target device.
ldd_list+="libtbbmalloc*.so* libirml*.so* `$RSH ldd $targetdir/\* | grep = | cut -d= -f1 2>/dev/null`" #
fnamelist="" #
#
# Find the libraries and add them to the list.
# For example, go through MIC_LD_LIBRARY_PATH and add TBB libraries from the first
# directory that contains tbb files
mic_dir_list=`echo .:$MIC_LD_LIBRARY_PATH | tr : " "` #
[ $verbose ] && echo Searching libraries in $mic_dir_list
for name in $ldd_list; do # adds the first matched name in specified dirs
found="`find -L $mic_dir_list -name $name -a -readable -print -quit 2>/dev/null` "||: #
[ $verbose ] && echo File $name: $found
fnamelist+=$found
done #
#
# Remove extra spaces.
fnamelist=`echo $fnamelist` #
# Transfer collected executable and library files to the target device.
[ -n "$fnamelist" ] && copy_files $fnamelist
#
# Transfer input files used by example codes by scanning the executable argument list.
argfiles= #
args= #
for arg in "$@"; do #
if [ -r $arg ]; then #
argfiles+="$arg " #
args+="$(basename $arg) " #
else #
args+="$arg " #
fi #
done #
[ -n "$argfiles" ] && copy_files $argfiles #
#
# Get the list of transferred files
testfiles="`$RSH find $targetdir/ -type f | tr '\n' ' ' 2>/dev/null`" #
#
[ $verbose ] && echo Running $run_prefix ./$exename $args #
# Run the test on the target device
trap 'kill_interrupt' SIGINT SIGQUIT # trap keyboard interrupt (control-c)
trap - ERR #
run_env+="cd $targetdir; export LD_LIBRARY_PATH=.:\$LD_LIBRARY_PATH;" #
$RSH "$run_env $run_prefix ./$exename $args" #
#
# Delete the test files and get the list of output files
outfiles=`$RSH rm $testfiles 2>/dev/null; find $targetdir/ -type f 2>/dev/null` ||: #
if [ -n "$outfiles" ]; then #
for outfile in $outfiles; do #
filename=$(basename $outfile) #
subdir=$(dirname $outfile) #
subdir="${subdir#$targetdir}" #
[ -n $subdir ] subdir=$subdir/ #
# Create directories on host
[ ! -d "$hostdir/$subdir" ] && mkdir -p "$hostdir/$subdir" #
[ ! -d "$currentdir/$subdir" ] && mkdir -p "$currentdir/$subdir" #
# Copy the output file to the temporary directory on host
eval "$RCP -r '$MICDEV:${outfile#}' '$hostdir/$subdir$filename' $SUPPRESS 2>&1 || exit \$?" #
# Copy the output file from the temporary directory to the current directory
eval "cp '$hostdir/$subdir$filename' '$currentdir/$subdir$filename' $SUPPRESS 2>&1 || exit \$?" #
done #
fi #
#
# Clean up temporary directories
clean_all
#
# Return the exit code of the test.
exit $? #
-118
View File
@@ -1,118 +0,0 @@
# Copyright (c) 2005-2016 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.
#
#
#
#
ifneq (mic,$(offload))
$(error File mic.offload.inc should not be included directly. Use offload=mic instead.)
endif
ifneq (icc,$(compiler))
$(error Only Intel(R) Compiler is supported for MIC offload compilation)
endif
# The same build prefix should be used in mic.linux.inc
mic_tbb_build_prefix=mic_icc$(CPF_SUFFIX)
MIC_OFFLOAD_NATIVE_PATH?=../$(mic_tbb_build_prefix)_$(cfg)
ifdef BUILDING_PHASE
ifeq ($(BUILDING_PHASE),1)
# Tests
export MIC_OFFLOAD_NATIVE_PATH
LINK_TBB_NATIVE.LIB=$(MIC_OFFLOAD_NATIVE_PATH)/$(TBB.LIB)
LINK_TBB.LIB=-qoffload-option,mic,ld,"$(LINK_TBB_NATIVE.LIB)" $(TBB.LIB)
LINK_MALLOC_NATIVE.LIB=$(MIC_OFFLOAD_NATIVE_PATH)/$(MALLOC.DLL)
LINK_MALLOC.LIB=-qoffload-option,mic,ld,"$(LINK_MALLOC_NATIVE.LIB)" $(MALLOC.LIB)
LINK_MALLOCPROXY_NATIVE.LIB=$(MIC_OFFLOAD_NATIVE_PATH)/$(MALLOCPROXY.DLL)
LINK_MALLOCPROXY.LIB=-qoffload-option,mic,ld,"$(LINK_MALLOCPROXY_NATIVE.LIB)" $(MALLOCPROXY.LIB)
# Export extensions for test_launcher
export DLL
export TEST_EXT=offload.exe
OBJ=offload.o
# Do not use -Werror because it is too strict for the early offload compiler.
# Need to set anything because WARNING_AS_ERROR_KEY should not be empty.
# Treat #2426 as a warning. Print errors only.
tbb_strict=0
WARNING_AS_ERROR_KEY = Warning as error
WARNING_KEY = -diag-warning 2426 -w0
CXX_MIC_STUFF = -qoffload-attribute-target=mic -D__TBB_MIC_OFFLOAD=1 -qoffload-option,mic,compiler,"-D__TBB_MIC_OFFLOAD=1 $(CXX_MIC_NATIVE_STUFF)"
CXX_MIC_NATIVE_STUFF = -DHARNESS_INCOMPLETE_SOURCES=1 -D__TBB_MIC_NATIVE -DTBB_USE_EXCEPTIONS=0
CPLUS_FLAGS += $(CXX_MIC_STUFF)
# Some tests require that an executable exports its symbols.
LINK_FLAGS += -qoffload-option,mic,ld,"--export-dynamic"
# libcoi_device.so is needed for COIProcessProxyFlush used in Harness.
LINK_FLAGS += -qoffload-option,mic,ld,"-lcoi_device"
# DSO-linking semantics forces linking libpthread and librt to a test.
LINK_FLAGS += -qoffload-option,mic,ld,"-lpthread -lrt"
.PHONY: FORCE
FORCE:
$(MIC_OFFLOAD_NATIVE_PATH)/%_dll.$(DLL): FORCE
@$(MAKE) --no-print-directory -C "$(MIC_OFFLOAD_NATIVE_PATH)" target=mic offload= -f$(tbb_root)/build/Makefile.$(TESTFILE) $*_dll.$(DLL)
%_dll.$(DLL): $(MIC_OFFLOAD_NATIVE_PATH)/%_dll.$(DLL) FORCE
@$(MAKE) --no-print-directory offload= -f$(tbb_root)/build/Makefile.$(TESTFILE) $*_dll.$(DLL)
.PRECIOUS: $(MIC_OFFLOAD_NATIVE_PATH)/%_dll.$(DLL)
%.$(TEST_EXT): LINK_FILES+=-qoffload-option,mic,ld,"$(addprefix $(MIC_OFFLOAD_NATIVE_PATH)/,$(TEST_LIBS))"
TEST_LAUNCHER=sh $(tbb_root)/build/test_launcher.sh $(largs)
ifdef MIC_LD_LIBRARY_PATH
export MIC_LD_LIBRARY_PATH := $(MIC_OFFLOAD_NATIVE_PATH):$(MIC_LD_LIBRARY_PATH)
else
export MIC_LD_LIBRARY_PATH := $(MIC_OFFLOAD_NATIVE_PATH)
endif
else
# Examples
export UI = con
export x64 = 64
endif
else
# Libraries
LIB_TARGETS = tbb tbbmalloc tbbproxy rml
addsuffixes = $(foreach suff,$(1),$(addsuffix $(suff),$(2)))
.PHONY: $(call addsuffixes, _debug _release _debug_mic _release_mic,$(LIB_TARGETS))
# The dependence on *_debug and *_release targets unifies the offload support
# for top-level Makefile and src/Makefile
$(LIB_TARGETS): %: %_release %_debug
# "override offload=" suppresses the "offload" variable value for nested makes
$(LIB_TARGETS) $(call addsuffixes, _debug _release,$(LIB_TARGETS)): override offload=
# Apply overriding for library builds
export offload
export tbb_build_prefix
# Add the dependency on target libraries
$(call addsuffixes, _debug _release,$(LIB_TARGETS)): %: %_mic
# tbb_build_prefix should be overridden since we want to restart make in "clear" environment
$(call addsuffixes, _debug_mic _release_mic,$(LIB_TARGETS)): override tbb_build_prefix=
$(call addsuffixes, _debug_mic _release_mic,$(LIB_TARGETS)): %_mic:
@$(MAKE) --no-print-directory -C "$(full_tbb_root)/src" $* target=mic tbb_root=..
mic_clean: override tbb_build_prefix=
mic_clean:
@$(MAKE) --no-print-directory -C "$(full_tbb_root)/src" clean offload= target=mic tbb_root=..
clean: mic_clean
endif
-1
View File
@@ -1 +0,0 @@
hwcap_1 = OVERRIDE;
-74
View File
@@ -1,74 +0,0 @@
@echo off
REM
REM Copyright (c) 2005-2016 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.
REM You may obtain a copy of the License at
REM
REM http://www.apache.org/licenses/LICENSE-2.0
REM
REM Unless required by applicable law or agreed to in writing, software
REM distributed under the License is distributed on an "AS IS" BASIS,
REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
REM See the License for the specific language governing permissions and
REM limitations under the License.
REM
REM
REM
REM
REM
set cmd_line=
if DEFINED run_prefix set cmd_line=%run_prefix%
:while
if NOT "%1"=="" (
REM Verbose mode
if "%1"=="-v" (
set verbose=yes
GOTO continue
)
REM Silent mode of 'make' requires additional support for associating
REM of test output with the test name. Verbose mode is the simplest way
if "%1"=="-q" (
set verbose=yes
GOTO continue
)
REM Run in stress mode
if "%1"=="-s" (
echo Doing stress testing. Press Ctrl-C to terminate
set stress=yes
GOTO continue
)
REM Repeat execution specified number of times
if "%1"=="-r" (
set repeat=%2
SHIFT
GOTO continue
)
REM no LD_PRELOAD under Windows
REM but run the test to check "#pragma comment" construction
if "%1"=="-l" (
REM The command line may specify -l with empty dll name,
REM e.g. "test_launcher.bat -l app.exe". If the dll name is
REM empty then %2 contains the application name and the SHIFT
REM operation is not necessary.
if exist "%3" SHIFT
GOTO continue
)
REM no need to setup up stack size under Windows
if "%1"=="-u" GOTO continue
set cmd_line=%cmd_line% %1
:continue
SHIFT
GOTO while
)
set cmd_line=%cmd_line:./=.\%
if DEFINED verbose echo Running %cmd_line%
if DEFINED stress set cmd_line=%cmd_line% ^& IF NOT ERRORLEVEL 1 GOTO stress
:stress
if DEFINED repeat (
for /L %%i in (1,1,%repeat%) do echo %%i of %repeat%: & %cmd_line%
) else (
%cmd_line%
)
-94
View File
@@ -1,94 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Usage:
# test_launcher.sh [-v] [-q] [-s] [-r <repeats>] [-u] [-l <library>] <executable> <arg1> <arg2> <argN>
# where: -v enables verbose output
# where: -q enables quiet mode
# where: -s runs the test in stress mode (until non-zero exit code or ctrl-c pressed)
# where: -r <repeats> specifies number of times to repeat execution
# where: -u limits stack size
# where: -l <library> specifies the library name to be assigned to LD_PRELOAD
while getopts "qvsr:ul:" flag #
do case $flag in #
s ) # Stress testing mode
run_prefix="stressed $run_prefix" ;; #
r ) # Repeats test n times
repeat=$OPTARG #
run_prefix="repeated $run_prefix" ;; #
l ) if [ `uname` = 'Linux' ] ; then #
LD_PRELOAD=$OPTARG #
elif [ `uname` = 'Darwin' ] ; then #
DYLD_INSERT_LIBRARIES=$OPTARG #
else #
echo 'skip' #
exit #
fi ;; #
u ) # Set stack limit
ulimit -s 10240 ;; #
q ) # Quiet mode, removes 'done' but prepends any other output by test name
OUTPUT='2>&1 | sed -e "s/done//;/^[[:space:]]*$/d;s!^!$1: !"' ;; #
v ) # Verbose mode
verbose=1 ;; #
esac done #
shift `expr $OPTIND - 1` #
if [ $MIC_OFFLOAD_NATIVE_PATH ] ; then #
LIB_NAME=${1/%.$TEST_EXT/_dll.$DLL} #
if [ -f "$MIC_OFFLOAD_NATIVE_PATH/$LIB_NAME" ]; then #
[ -z "$MIC_CARD" ] && MIC_CARD=mic0 #
TMPDIR_HOST=`mktemp -d /tmp/tbbtestXXXXXX` #
TMPDIR_MIC=`sudo ssh $MIC_CARD mktemp -d /tmp/tbbtestXXXXXX` #
sudo ssh $MIC_CARD "chmod +x $TMPDIR_MIC" #
# Test specific library may depend on libtbbmalloc*
cp "$MIC_OFFLOAD_NATIVE_PATH/$LIB_NAME" "$MIC_OFFLOAD_NATIVE_PATH"/libtbbmalloc* "$TMPDIR_HOST" >/dev/null 2>/dev/null #
sudo scp "$TMPDIR_HOST"/* $MIC_CARD:"$TMPDIR_MIC" >/dev/null 2>/dev/null #
LD_LIBRARY_PATH=$TMPDIR_MIC:$LD_LIBRARY_PATH #
export LD_LIBRARY_PATH #
fi #
fi #
stressed() { echo Doing stress testing. Press Ctrl-C to terminate #
while :; do $*; done;#
} #
repeated() { #
i=0; while [ "$i" -lt $repeat ]; do i=`expr $i + 1`; echo $i of $repeat:; $*; done #
} #
# DYLD_LIBRARY_PATH can be purged on OS X 10.11, set it again
if [ `uname` = 'Darwin' -a -z "$DYLD_LIBRARY_PATH" ] ; then #
DYLD_LIBRARY_PATH=. #
export DYLD_LIBRARY_PATH #
fi #
# Run the command line passed via parameters
[ $verbose ] && echo Running $run_prefix $* #
if [ -n "$LD_PRELOAD" ] ; then #
export LD_PRELOAD #
elif [ -n "$DYLD_INSERT_LIBRARIES" ] ; then #
export DYLD_INSERT_LIBRARIES #
fi #
exec 4>&1 # extracting exit code of the first command in pipeline needs duplicated stdout
# custom redirection needs eval, otherwise shell cannot parse it
err=`eval '( $run_prefix $* || echo \$? >&3; )' ${OUTPUT} 3>&1 >&4` #
[ -z "$err" ] || echo $1: exited with error $err #
if [ $MIC_OFFLOAD_NATIVE_PATH ] ; then #
sudo ssh $MIC_CARD rm -fr "$TMPDIR_MIC" >/dev/null 2>/dev/null #
rm -fr "$TMPDIR_HOST" >/dev/null 2>/dev/null #
fi #
exit $err #
-34
View File
@@ -1,34 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Script used to generate version info string
echo "#define __TBB_VERSION_STRINGS(N) \\"
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \'
# find OS name in *-release and issue* files by filtering blank lines and lsb-release content out
echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \'
echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \'
echo '#N": BUILD_GCC'"\t\t"`g++ --version </dev/null 2>&1 | grep 'g++'`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
echo '#N": BUILD_LIBC'"\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \'
echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | grep 'version'`'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
echo ""
echo "#define __TBB_DATETIME \""`date -u`"\""
-33
View File
@@ -1,33 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Script used to generate version info string
echo "#define __TBB_VERSION_STRINGS(N) \\"
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \'
# find OS name in *-release and issue* files by filtering blank lines and lsb-release content out
echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \'
echo '#N": BUILD_TARGET_CXX'"\t"`$TARGET_CXX --version | head -n1`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
[ -z "$ndk_version" ] || echo '#N": BUILD_NDK'"\t\t$ndk_version"'" ENDL \'
echo '#N": BUILD_LD'"\t\t"`${tbb_tool_prefix}ld -v 2>&1 | grep 'ld'`'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
echo ""
echo "#define __TBB_DATETIME \""`date -u`"\""
-34
View File
@@ -1,34 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Script used to generate version info string
echo "#define __TBB_VERSION_STRINGS(N) \\"
echo '#N": BUILD_HOST'"\t\t"`hostname -s`" ("`uname -m`")"'" ENDL \'
# find OS name in *-release and issue* files by filtering blank lines and lsb-release content out
echo '#N": BUILD_OS'"\t\t"`lsb_release -sd 2>/dev/null | grep -ih '[a-z] ' - /etc/*release /etc/issue 2>/dev/null | head -1 | sed -e 's/["\\\\]//g'`'" ENDL \'
echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \'
echo '#N": BUILD_GCC'"\t\t"`g++ --version </dev/null 2>&1 | grep 'g++'`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
echo '#N": BUILD_LIBC'"\t"`getconf GNU_LIBC_VERSION | grep glibc | sed -e 's/^glibc //'`'" ENDL \'
echo '#N": BUILD_LD'"\t\t"`ld -v 2>&1 | grep 'version'`'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
echo ""
echo "#define __TBB_DATETIME \""`date -u`"\""
-32
View File
@@ -1,32 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Script used to generate version info string
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 </dev/null 2>&1 | grep 'version '`'" ENDL \'
echo '#N": BUILD_XCODE'"\t"`xcodebuild -version </dev/null 2>&1 | grep 'Xcode'`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
echo ""
echo "#define __TBB_DATETIME \""`date -u`"\""
-31
View File
@@ -1,31 +0,0 @@
#!/bin/sh
#
# Copyright (c) 2005-2016 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.
#
#
#
#
# Script used to generate version info string
echo "#define __TBB_VERSION_STRINGS(N) \\"
echo '#N": BUILD_HOST'"\t"`hostname`" ("`arch`")"'" ENDL \'
echo '#N": BUILD_OS'"\t\t"`uname`'" ENDL \'
echo '#N": BUILD_KERNEL'"\t"`uname -srv`'" ENDL \'
echo '#N": BUILD_SUNCC'"\t"`CC -V </dev/null 2>&1 | grep 'C++'`'" ENDL \'
[ -z "$COMPILER_VERSION" ] || echo '#N": BUILD_COMPILER'"\t"$COMPILER_VERSION'" ENDL \'
echo '#N": BUILD_TARGET'"\t$arch on $runtime"'" ENDL \'
echo '#N": BUILD_COMMAND'"\t"$*'" ENDL \'
echo ""
echo "#define __TBB_DATETIME \""`date -u`"\""
-95
View File
@@ -1,95 +0,0 @@
// Copyright (c) 2005-2016 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.
//
//
//
//
var WshShell = WScript.CreateObject("WScript.Shell");
var tmpExec;
WScript.Echo("#define __TBB_VERSION_STRINGS(N) \\");
//Getting BUILD_HOST
WScript.echo( "#N \": BUILD_HOST\\t\\t" +
WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%") +
"\" ENDL \\" );
//Getting BUILD_OS
tmpExec = WshShell.Exec("cmd /c ver");
while ( tmpExec.Status == 0 ) {
WScript.Sleep(100);
}
tmpExec.StdOut.ReadLine();
WScript.echo( "#N \": BUILD_OS\\t\\t" +
tmpExec.StdOut.ReadLine() +
"\" ENDL \\" );
if ( WScript.Arguments(0).toLowerCase().match("gcc") ) {
tmpExec = WshShell.Exec(WScript.Arguments(0) + " --version");
WScript.echo( "#N \": BUILD_GCC\\t\\t" +
tmpExec.StdOut.ReadLine() +
"\" ENDL \\" );
} else if ( WScript.Arguments(0).toLowerCase().match("clang") ) {
tmpExec = WshShell.Exec(WScript.Arguments(0) + " --version");
WScript.echo( "#N \": BUILD_CLANG\\t" +
tmpExec.StdOut.ReadLine() +
"\" ENDL \\" );
} else { // MS / Intel compilers
//Getting BUILD_CL
tmpExec = WshShell.Exec("cmd /c echo #define 0 0>empty.cpp");
tmpExec = WshShell.Exec("cl -c empty.cpp ");
while ( tmpExec.Status == 0 ) {
WScript.Sleep(100);
}
var clVersion = tmpExec.StdErr.ReadLine();
WScript.echo( "#N \": BUILD_CL\\t\\t" +
clVersion +
"\" ENDL \\" );
//Getting BUILD_COMPILER
if ( WScript.Arguments(0).toLowerCase().match("icl") ) {
tmpExec = WshShell.Exec("icl -c empty.cpp ");
while ( tmpExec.Status == 0 ) {
WScript.Sleep(100);
}
WScript.echo( "#N \": BUILD_COMPILER\\t" +
tmpExec.StdErr.ReadLine() +
"\" ENDL \\" );
} else {
WScript.echo( "#N \": BUILD_COMPILER\\t\\t" +
clVersion +
"\" ENDL \\" );
}
tmpExec = WshShell.Exec("cmd /c del /F /Q empty.obj empty.cpp");
}
//Getting BUILD_TARGET
WScript.echo( "#N \": BUILD_TARGET\\t" +
WScript.Arguments(1) +
"\" ENDL \\" );
//Getting BUILD_COMMAND
WScript.echo( "#N \": BUILD_COMMAND\\t" + WScript.Arguments(2) + "\" ENDL" );
//Getting __TBB_DATETIME and __TBB_VERSION_YMD
var date = new Date();
WScript.echo( "#define __TBB_DATETIME \"" + date.toUTCString() + "\"" );
WScript.echo( "#define __TBB_VERSION_YMD " + date.getUTCFullYear() + ", " +
(date.getUTCMonth() > 8 ? (date.getUTCMonth()+1):("0"+(date.getUTCMonth()+1))) +
(date.getUTCDate() > 9 ? date.getUTCDate():("0"+date.getUTCDate())) );
-30
View File
@@ -1,30 +0,0 @@
<HTML>
<BODY>
<H2>Overview</H2>
This directory contains the Visual Studio* 2012 solution to build Intel&reg; Threading Building Blocks.
<H2>Files</H2>
<DL>
<DT><A HREF="makefile.sln">makefile.sln</A>
<DD>Solution file.</DD>
<DT><A HREF="tbb.vcxproj">tbb.vcxproj</A>
<DD>Library project file.</DD>
<DT><A HREF="tbbmalloc.vcxproj">tbbmalloc.vcxproj</A>
<DD>Scalable allocator library project file.</DD>
<DT><A HREF="tbbmalloc_proxy.vcxproj">tbbmalloc_proxy.vcxproj</A>
<DD>Standard allocator replacement project file. </DD>
</DL>
<HR>
<A HREF="../index.html">Up to parent directory</A>
<P></P>
Copyright &copy; 2016 Intel Corporation. All Rights Reserved.
<P></P>
Intel is a registered trademark or trademark of Intel Corporation
or its subsidiaries in the United States and other countries.
<p></p>
* Other names and brands may be claimed as the property of others.
</BODY>
</HTML>
-78
View File
@@ -1,78 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8898CE0B-0BFB-45AE-AA71-83735ED2510D}"
ProjectSection(SolutionItems) = preProject
index.html = index.html
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tbb", "tbb.vcxproj", "{F62787DD-1327-448B-9818-030062BCFAA5}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tbbmalloc", "tbbmalloc.vcxproj", "{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tbbmalloc_proxy", "tbbmalloc_proxy.vcxproj", "{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Debug-MT|Win32 = Debug-MT|Win32
Debug-MT|x64 = Debug-MT|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
Release-MT|Win32 = Release-MT|Win32
Release-MT|x64 = Release-MT|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|Win32.ActiveCfg = Debug|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|Win32.Build.0 = Debug|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|x64.ActiveCfg = Debug|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug|x64.Build.0 = Debug|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug-MT|Win32.ActiveCfg = Debug-MT|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug-MT|Win32.Build.0 = Debug-MT|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug-MT|x64.ActiveCfg = Debug-MT|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Debug-MT|x64.Build.0 = Debug-MT|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|Win32.ActiveCfg = Release|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|Win32.Build.0 = Release|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|x64.ActiveCfg = Release|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Release|x64.Build.0 = Release|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Release-MT|Win32.ActiveCfg = Release-MT|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Release-MT|Win32.Build.0 = Release-MT|Win32
{F62787DD-1327-448B-9818-030062BCFAA5}.Release-MT|x64.ActiveCfg = Release-MT|x64
{F62787DD-1327-448B-9818-030062BCFAA5}.Release-MT|x64.Build.0 = Release-MT|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|Win32.ActiveCfg = Debug|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|Win32.Build.0 = Debug|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|x64.ActiveCfg = Debug|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug|x64.Build.0 = Debug|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug-MT|Win32.ActiveCfg = Debug-MT|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug-MT|Win32.Build.0 = Debug-MT|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug-MT|x64.ActiveCfg = Debug-MT|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Debug-MT|x64.Build.0 = Debug-MT|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|Win32.ActiveCfg = Release|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|Win32.Build.0 = Release|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|x64.ActiveCfg = Release|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release|x64.Build.0 = Release|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release-MT|Win32.ActiveCfg = Release-MT|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release-MT|Win32.Build.0 = Release-MT|Win32
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release-MT|x64.ActiveCfg = Release-MT|x64
{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}.Release-MT|x64.Build.0 = Release-MT|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug|Win32.ActiveCfg = Debug|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug|Win32.Build.0 = Debug|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug|x64.ActiveCfg = Debug|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug|x64.Build.0 = Debug|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug-MT|Win32.ActiveCfg = Debug-MT|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug-MT|Win32.Build.0 = Debug-MT|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug-MT|x64.ActiveCfg = Debug-MT|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Debug-MT|x64.Build.0 = Debug-MT|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release|Win32.ActiveCfg = Release|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release|Win32.Build.0 = Release|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release|x64.ActiveCfg = Release|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release|x64.Build.0 = Release|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release-MT|Win32.ActiveCfg = Release-MT|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release-MT|Win32.Build.0 = Release-MT|Win32
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release-MT|x64.ActiveCfg = Release-MT|x64
{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}.Release-MT|x64.Build.0 = Release-MT|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
-696
View File
@@ -1,696 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-MT|Win32">
<Configuration>Debug-MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug-MT|x64">
<Configuration>Debug-MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-MT|Win32">
<Configuration>Release-MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-MT|x64">
<Configuration>Release-MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F62787DD-1327-448B-9818-030062BCFAA5}</ProjectGuid>
<RootNamespace>tbb</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(ProjectName)_debug</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbb.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbb.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
<ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<MASM Include="..\..\src\tbb\ia32-masm\atomic_support.asm">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">/coff /Zi</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/coff /Zi</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">/coff</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/coff</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</MASM>
<CustomBuild Include="..\..\src\tbb\intel64-masm\atomic_support.asm">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\src\tbb\intel64-masm\intel64_misc.asm">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">building intel64_misc.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">building intel64_misc.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">building intel64_misc.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">building intel64_misc.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/intel64_misc.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
</CustomBuild>
<MASM Include="..\..\src\tbb\ia32-masm\itsx.asm">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">/coff /Zi</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/coff /Zi</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">/coff</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/coff</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</MASM>
<CustomBuild Include="..\..\src\tbb\intel64-masm\itsx.asm">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">building itsx.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">building itsx.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">building itsx.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">building itsx.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/itsx.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
</CustomBuild>
<MASM Include="..\..\src\tbb\ia32-masm\lock_byte.asm">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">/coff /Zi</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">/coff /Zi</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/coff /Zi</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/coff /Zi</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">/coff</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">true</ExcludedFromBuild>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/coff</AdditionalOptions>
<UseSafeExceptionHandlers Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</UseSafeExceptionHandlers>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
</MASM>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\src\tbb\win32-tbb-export.def">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cl /nologo /TC /EP ../../src/tbb/win32-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\src\tbb\win64-tbb-export.def">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)tbb.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">generating tbb.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cl /nologo /TC /EP ../../src/tbb/win64-tbb-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBB_BUILD=1 /I../../src /I../../include &gt;"$(IntDir)tbb.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)tbb.def;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\tbb\concurrent_hash_map.cpp" />
<ClCompile Include="..\..\src\tbb\concurrent_queue.cpp" />
<ClCompile Include="..\..\src\tbb\concurrent_vector.cpp" />
<ClCompile Include="..\..\src\tbb\dynamic_link.cpp" />
<ClCompile Include="..\..\src\tbb\itt_notify.cpp" />
<ClCompile Include="..\..\src\tbb\cache_aligned_allocator.cpp" />
<ClCompile Include="..\..\src\tbb\pipeline.cpp" />
<ClCompile Include="..\..\src\tbb\queuing_mutex.cpp" />
<ClCompile Include="..\..\src\tbb\queuing_rw_mutex.cpp" />
<ClCompile Include="..\..\src\tbb\reader_writer_lock.cpp" />
<ClCompile Include="..\..\src\tbb\spin_rw_mutex.cpp" />
<ClCompile Include="..\..\src\tbb\x86_rtm_rw_mutex.cpp" />
<ClCompile Include="..\..\src\tbb\spin_mutex.cpp" />
<ClCompile Include="..\..\src\tbb\critical_section.cpp" />
<ClCompile Include="..\..\src\tbb\mutex.cpp" />
<ClCompile Include="..\..\src\tbb\recursive_mutex.cpp" />
<ClCompile Include="..\..\src\tbb\condition_variable.cpp" />
<ClCompile Include="..\..\src\tbb\tbb_thread.cpp" />
<ClCompile Include="..\..\src\tbb\concurrent_monitor.cpp" />
<ClCompile Include="..\..\src\tbb\semaphore.cpp" />
<ClCompile Include="..\..\src\tbb\private_server.cpp" />
<ClCompile Include="..\..\src\rml\client\rml_tbb.cpp" />
<ClCompile Include="..\..\src\tbb\tbb_misc.cpp" />
<ClCompile Include="..\..\src\tbb\tbb_misc_ex.cpp" />
<ClCompile Include="..\..\src\tbb\task.cpp" />
<ClCompile Include="..\..\src\tbb\task_group_context.cpp" />
<ClCompile Include="..\..\src\tbb\governor.cpp" />
<ClCompile Include="..\..\src\tbb\market.cpp" />
<ClCompile Include="..\..\src\tbb\arena.cpp" />
<ClCompile Include="..\..\src\tbb\scheduler.cpp" />
<ClCompile Include="..\..\src\tbb\observer_proxy.cpp" />
<ClCompile Include="..\..\src\tbb\tbb_statistics.cpp" />
<ClCompile Include="..\..\src\tbb\tbb_main.cpp" />
<ClCompile Include="..\..\src\old\concurrent_vector_v2.cpp" />
<ClCompile Include="..\..\src\old\concurrent_queue_v2.cpp" />
<ClCompile Include="..\..\src\old\spin_rw_mutex_v2.cpp" />
<ClCompile Include="..\..\src\old\task_v2.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\tbb\internal\_concurrent_queue_impl.h" />
<ClInclude Include="..\..\include\tbb\_tbb_windef.h" />
<ClInclude Include="..\..\include\tbb\aligned_space.h" />
<ClInclude Include="..\..\include\tbb\atomic.h" />
<ClInclude Include="..\..\include\tbb\blocked_range.h" />
<ClInclude Include="..\..\include\tbb\blocked_range2d.h" />
<ClInclude Include="..\..\include\tbb\blocked_range3d.h" />
<ClInclude Include="..\..\include\tbb\cache_aligned_allocator.h" />
<ClInclude Include="..\..\include\tbb\combinable.h" />
<ClInclude Include="..\..\include\tbb\concurrent_hash_map.h" />
<ClInclude Include="..\..\src\tbb\concurrent_monitor.h" />
<ClInclude Include="..\..\include\tbb\concurrent_priority_queue.h" />
<ClInclude Include="..\..\include\tbb\concurrent_queue.h" />
<ClInclude Include="..\..\src\old\concurrent_queue_v2.h" />
<ClInclude Include="..\..\include\tbb\concurrent_vector.h" />
<ClInclude Include="..\..\src\old\concurrent_vector_v2.h" />
<ClInclude Include="..\..\include\tbb\critical_section.h" />
<ClInclude Include="..\..\src\tbb\dynamic_link.h" />
<ClInclude Include="..\..\include\tbb\enumerable_thread_specific.h" />
<ClInclude Include="..\..\src\tbb\gate.h" />
<ClInclude Include="..\..\src\test\harness.h" />
<ClInclude Include="..\..\src\test\harness_allocator.h" />
<ClInclude Include="..\..\src\test\harness_assert.h" />
<ClInclude Include="..\..\src\test\harness_bad_expr.h" />
<ClInclude Include="..\..\src\test\harness_barrier.h" />
<ClInclude Include="..\..\src\test\harness_concurrency_tracker.h" />
<ClInclude Include="..\..\src\test\harness_cpu.h" />
<ClInclude Include="..\..\src\test\harness_eh.h" />
<ClInclude Include="..\..\src\test\harness_iterator.h" />
<ClInclude Include="..\..\src\test\harness_m128.h" />
<ClInclude Include="..\..\src\test\harness_memory.h" />
<ClInclude Include="..\..\src\test\harness_report.h" />
<ClInclude Include="..\..\include\tbb\machine\ibm_aix51.h" />
<ClInclude Include="..\..\src\tbb\itt_notify.h" />
<ClInclude Include="..\..\include\tbb\machine\linux_common.h" />
<ClInclude Include="..\..\include\tbb\machine\linux_ia32.h" />
<ClInclude Include="..\..\include\tbb\machine\linux_ia64.h" />
<ClInclude Include="..\..\include\tbb\machine\linux_intel64.h" />
<ClInclude Include="..\..\include\tbb\machine\mac_ppc.h" />
<ClInclude Include="..\..\include\tbb\mutex.h" />
<ClInclude Include="..\..\include\tbb\null_mutex.h" />
<ClInclude Include="..\..\include\tbb\null_rw_mutex.h" />
<ClInclude Include="..\..\include\tbb\parallel_do.h" />
<ClInclude Include="..\..\include\tbb\parallel_for.h" />
<ClInclude Include="..\..\include\tbb\parallel_for_each.h" />
<ClInclude Include="..\..\include\tbb\parallel_invoke.h" />
<ClInclude Include="..\..\include\tbb\parallel_reduce.h" />
<ClInclude Include="..\..\include\tbb\parallel_scan.h" />
<ClInclude Include="..\..\include\tbb\parallel_sort.h" />
<ClInclude Include="..\..\include\tbb\parallel_while.h" />
<ClInclude Include="..\..\include\tbb\partitioner.h" />
<ClInclude Include="..\..\include\tbb\pipeline.h" />
<ClInclude Include="..\..\include\tbb\compat\ppl.h" />
<ClInclude Include="..\..\include\tbb\queuing_mutex.h" />
<ClInclude Include="..\..\include\tbb\queuing_rw_mutex.h" />
<ClInclude Include="..\..\include\tbb\reader_writer_lock.h" />
<ClInclude Include="..\..\include\tbb\recursive_mutex.h" />
<ClInclude Include="..\..\include\tbb\scalable_allocator.h" />
<ClInclude Include="..\..\src\tbb\semaphore.h" />
<ClInclude Include="..\..\include\tbb\spin_mutex.h" />
<ClInclude Include="..\..\include\tbb\spin_rw_mutex.h" />
<ClInclude Include="..\..\src\old\spin_rw_mutex_v2.h" />
<ClInclude Include="..\..\include\tbb\task.h" />
<ClInclude Include="..\..\include\tbb\task_group.h" />
<ClInclude Include="..\..\include\tbb\task_scheduler_init.h" />
<ClInclude Include="..\..\include\tbb\task_scheduler_observer.h" />
<ClInclude Include="..\..\include\tbb\tbb.h" />
<ClInclude Include="..\..\include\tbb\tbb_allocator.h" />
<ClInclude Include="..\..\src\tbb\tbb_assert_impl.h" />
<ClInclude Include="..\..\include\tbb\tbb_config.h" />
<ClInclude Include="..\..\include\tbb\tbb_exception.h" />
<ClInclude Include="..\..\include\tbb\tbb_machine.h" />
<ClInclude Include="..\..\src\tbb\tbb_misc.h" />
<ClInclude Include="..\..\include\tbb\tbb_profiling.h" />
<ClInclude Include="..\..\include\tbb\tbb_stddef.h" />
<ClInclude Include="..\..\include\tbb\tbb_thread.h" />
<ClInclude Include="..\..\src\tbb\tbb_version.h" />
<ClInclude Include="..\..\include\tbb\tbbmalloc_proxy.h" />
<ClInclude Include="..\..\src\test\test_allocator.h" />
<ClInclude Include="..\..\src\test\test_allocator_STL.h" />
<ClInclude Include="..\..\include\tbb\tick_count.h" />
<ClInclude Include="..\..\src\tbb\tls.h" />
<ClInclude Include="..\..\include\tbb\machine\windows_ia32.h" />
<ClInclude Include="..\..\include\tbb\machine\windows_intel64.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\tbb\tbb_resource.rc">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
</ResourceCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
</Project>
-558
View File
@@ -1,558 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-MT|Win32">
<Configuration>Debug-MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug-MT|x64">
<Configuration>Debug-MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-MT|Win32">
<Configuration>Release-MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-MT|x64">
<Configuration>Release-MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B15F131E-328A-4D42-ADC2-9FF4CA6306D8}</ProjectGuid>
<RootNamespace>tbbmalloc</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(ProjectName)_debug</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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.</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DEF:"$(IntDir)tbbmalloc.def" %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\..\src\tbb\intel64-masm\atomic_support.asm">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DUSE_FRAME_POINTER /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">building atomic_support.obj</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ml64 /Fo"$(IntDir)%(FileName).obj" /DEM64T=1 /c /Zi ../../src/tbb/intel64-masm/atomic_support.asm</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)%(FileName).obj;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\src\tbbmalloc\win32-tbbmalloc-export.def">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">cl /nologo /TC /EP ../../src/tbbmalloc/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">cl /nologo /TC /EP ../../src/tbbmalloc/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cl /nologo /TC /EP ../../src/tbbmalloc/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cl /nologo /TC /EP ../../src/tbbmalloc/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">cl /nologo /TC /EP ../../src/tbbmalloc/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">cl /nologo /TC /EP ../../src/tbb/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cl /nologo /TC /EP ../../src/tbbmalloc/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cl /nologo /TC /EP ../../src/tbb/win32-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\src\tbbmalloc\win64-tbbmalloc-export.def">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">cl /nologo /TC /EP ../../src/tbbmalloc/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cl /nologo /TC /EP ../../src/tbbmalloc/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">cl /nologo /TC /EP ../../src/tbbmalloc/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cl /nologo /TC /EP ../../src/tbb/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">generating tbbmalloc.def file</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cl /nologo /TC /EP ../../src/tbbmalloc/win64-tbbmalloc-export.def /DTBB_USE_DEBUG /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 /D__TBBMALLOC_BUILD=1 &gt;"$(IntDir)tbbmalloc.def"
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(IntDir)tbbmalloc.def;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\tbbmalloc\backend.cpp" />
<ClCompile Include="..\..\src\tbbmalloc\large_objects.cpp" />
<ClCompile Include="..\..\src\tbbmalloc\backref.cpp" />
<ClCompile Include="..\..\src\tbbmalloc\tbbmalloc.cpp" />
<ClCompile Include="..\..\src\tbb\itt_notify.cpp" />
<ClCompile Include="..\..\src\tbbmalloc\frontend.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\include\tbb\internal\_concurrent_queue_impl.h" />
<ClInclude Include="..\..\include\tbb\_tbb_windef.h" />
<ClInclude Include="..\..\include\tbb\aligned_space.h" />
<ClInclude Include="..\..\include\tbb\atomic.h" />
<ClInclude Include="..\..\include\tbb\blocked_range.h" />
<ClInclude Include="..\..\include\tbb\blocked_range2d.h" />
<ClInclude Include="..\..\include\tbb\blocked_range3d.h" />
<ClInclude Include="..\..\include\tbb\cache_aligned_allocator.h" />
<ClInclude Include="..\..\include\tbb\combinable.h" />
<ClInclude Include="..\..\include\tbb\concurrent_hash_map.h" />
<ClInclude Include="..\..\include\tbb\concurrent_queue.h" />
<ClInclude Include="..\..\include\tbb\concurrent_vector.h" />
<ClInclude Include="..\..\include\tbb\critical_section.h" />
<ClInclude Include="..\..\src\tbbmalloc\Customize.h" />
<ClInclude Include="..\..\include\tbb\enumerable_thread_specific.h" />
<ClInclude Include="..\..\src\tbbmalloc\LifoList.h" />
<ClInclude Include="..\..\src\tbbmalloc\MapMemory.h" />
<ClInclude Include="..\..\include\tbb\mutex.h" />
<ClInclude Include="..\..\include\tbb\null_mutex.h" />
<ClInclude Include="..\..\include\tbb\null_rw_mutex.h" />
<ClInclude Include="..\..\include\tbb\parallel_do.h" />
<ClInclude Include="..\..\include\tbb\parallel_for.h" />
<ClInclude Include="..\..\include\tbb\parallel_for_each.h" />
<ClInclude Include="..\..\include\tbb\parallel_invoke.h" />
<ClInclude Include="..\..\include\tbb\parallel_reduce.h" />
<ClInclude Include="..\..\include\tbb\parallel_scan.h" />
<ClInclude Include="..\..\include\tbb\parallel_sort.h" />
<ClInclude Include="..\..\include\tbb\parallel_while.h" />
<ClInclude Include="..\..\include\tbb\partitioner.h" />
<ClInclude Include="..\..\include\tbb\pipeline.h" />
<ClInclude Include="..\..\src\tbbmalloc\proxy.h" />
<ClInclude Include="..\..\include\tbb\queuing_mutex.h" />
<ClInclude Include="..\..\include\tbb\queuing_rw_mutex.h" />
<ClInclude Include="..\..\include\tbb\recursive_mutex.h" />
<ClInclude Include="..\..\include\tbb\scalable_allocator.h" />
<ClInclude Include="..\..\include\tbb\spin_mutex.h" />
<ClInclude Include="..\..\include\tbb\spin_rw_mutex.h" />
<ClInclude Include="..\..\src\tbbmalloc\Statistics.h" />
<ClInclude Include="..\..\include\tbb\task.h" />
<ClInclude Include="..\..\include\tbb\task_group.h" />
<ClInclude Include="..\..\include\tbb\task_scheduler_init.h" />
<ClInclude Include="..\..\include\tbb\task_scheduler_observer.h" />
<ClInclude Include="..\..\include\tbb\tbb.h" />
<ClInclude Include="..\..\include\tbb\tbb_allocator.h" />
<ClInclude Include="..\..\include\tbb\tbb_config.h" />
<ClInclude Include="..\..\include\tbb\tbb_exception.h" />
<ClInclude Include="..\..\src\tbbmalloc\tbb_function_replacement.h" />
<ClInclude Include="..\..\include\tbb\tbb_machine.h" />
<ClInclude Include="..\..\include\tbb\tbb_profiling.h" />
<ClInclude Include="..\..\include\tbb\tbb_stddef.h" />
<ClInclude Include="..\..\include\tbb\tbb_thread.h" />
<ClInclude Include="..\..\include\tbb\tbb_version.h" />
<ClInclude Include="..\..\include\tbb\tbbmalloc_proxy.h" />
<ClInclude Include="..\..\include\tbb\tick_count.h" />
<ClInclude Include="..\..\src\tbbmalloc\TypeDefinitions.h" />
<ClInclude Include="..\..\include\tbb\machine\windows_ia32.h" />
<ClInclude Include="..\..\include\tbb\machine\windows_intel64.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\tbbmalloc\tbbmalloc.rc">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="tbb.vcxproj">
<Project>{f62787dd-1327-448b-9818-030062bcfaa5}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
</Project>
-425
View File
@@ -1,425 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug-MT|Win32">
<Configuration>Debug-MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug-MT|x64">
<Configuration>Debug-MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-MT|Win32">
<Configuration>Release-MT</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-MT|x64">
<Configuration>Release-MT</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{02F61511-D5B6-46E6-B4BB-DEAA96E6BCC7}</ProjectGuid>
<RootNamespace>tbbmalloc_proxy</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>NotSet</CharacterSet>
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">false</LinkIncremental>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(SolutionDir)$(Platform)\$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">$(SolutionDir)$(Platform)\$(ProjectName)\$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">false</LinkIncremental>
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
<CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
<CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)_debug</TargetName>
<TargetName Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">$(ProjectName)_debug</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>
</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MinimalRebuild>false</MinimalRebuild>
<ExceptionHandling>
</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<TreatWChar_tAsBuiltInType>true</TreatWChar_tAsBuiltInType>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<ShowIncludes>false</ShowIncludes>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy_debug.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX86</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">
<Midl>
<TargetEnvironment>X64</TargetEnvironment>
</Midl>
<ClCompile>
<AdditionalOptions> /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</AdditionalOptions>
<AdditionalIncludeDirectories>.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level4</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalOptions>/nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO %(AdditionalOptions)</AdditionalOptions>
<OutputFile>$(OutDir)tbbmalloc_proxy.dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<RandomizedBaseAddress>false</RandomizedBaseAddress>
<DataExecutionPrevention>
</DataExecutionPrevention>
<TargetMachine>MachineX64</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\tbbmalloc\tbb_function_replacement.h" />
<ClInclude Include="..\..\include\tbb\tbbmalloc_proxy.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="..\..\src\tbbmalloc\tbbmalloc.rc">
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug-MT|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release-MT|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">/I../../src /I../../include /DDO_ITT_NOTIFY /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE /D_WIN32_WINNT=0x0400 %(AdditionalOptions)</AdditionalOptions>
</ResourceCompile>
<ClCompile Include="..\..\src\tbbmalloc\proxy.cpp" />
<ClCompile Include="..\..\src\tbbmalloc\tbb_function_replacement.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="tbbmalloc.vcxproj">
<Project>{b15f131e-328a-4d42-adc2-9ff4ca6306d8}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
</Project>
-1
View File
@@ -1 +0,0 @@
#define __TBB_VERSION_STRINGS(N) "Empty"
-147
View File
@@ -1,147 +0,0 @@
# Copyright (c) 2005-2016 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 compiler-specific variables.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting compiler flags.
#------------------------------------------------------------------------------
CPLUS = cl /nologo
LINK_FLAGS = /link /nologo
LIB_LINK_FLAGS=/link /nologo /DLL /MAP /DEBUG /fixed:no /INCREMENTAL:NO /DYNAMICBASE /NXCOMPAT
ifneq (,$(stdver))
CXX_STD_FLAGS = /std:$(stdver) /D_TBB_CPP0X
endif
ifeq ($(arch), ia32)
LIB_LINK_FLAGS += /SAFESEH
endif
ifeq ($(runtime), vc_mt)
MS_CRT_KEY = /MT$(if $(findstring debug,$(cfg)),d)
else
MS_CRT_KEY = /MD$(if $(findstring debug,$(cfg)),d)
endif
EH_FLAGS = /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)
ASM_FLAGS =
endif
ifeq ($(cfg), debug)
CPLUS_FLAGS = $(MS_CRT_KEY) /Od /Ob0 /Zi $(EH_FLAGS) /Zc:forScope /Zc:wchar_t /DTBB_USE_DEBUG /D__TBB_LIB_NAME=$(TBB.LIB)
ASM_FLAGS = /DUSE_FRAME_POINTER
endif
ifeq ($(target_ui), win8ui)
CPLUS_FLAGS += /D "_UNICODE" /D "UNICODE" /D "WINAPI_FAMILY=WINAPI_FAMILY_APP"
_WIN32_WINNT=0x0602
ifeq ($(target_ui_mode), production)
LIB_LINK_FLAGS += /APPCONTAINER
endif
else
CPLUS_FLAGS += /DDO_ITT_NOTIFY
endif
CPLUS_FLAGS += /GS
COMPILE_ONLY = /c
PREPROC_ONLY = /TP /EP
INCLUDE_KEY = /I
DEFINE_KEY = /D
OUTPUT_KEY = /Fe
OUTPUTOBJ_KEY = /Fo
WARNING_AS_ERROR_KEY = /WX
ifeq ($(runtime),vc7.1)
WARNING_KEY = /W3
else
WARNING_KEY = /W4
OPENMP_FLAG = /openmp
endif
DYLIB_KEY = /DLL
EXPORT_KEY = /DEF:
NODEFAULTLIB_KEY = /Zl
NOINTRINSIC_KEY = /Oi-
ifeq ($(runtime),vc8)
WARNING_KEY += /Wp64
CPLUS_FLAGS += /D_USE_RTM_VERSION
endif
# Since VS2012, VC++ provides /volatile option to control semantics of volatile variables.
# We want to use strict ISO semantics in the library and tests
ifeq (ok,$(call detect_js,/minversion cl 17))
CPLUS_FLAGS += /volatile:iso
endif
# Since VS2013, VC++ uses the same .pdb file for different sources so we need
# to add /FS (Force Synchronous PDB Writes)
ifeq (ok,$(call detect_js,/minversion cl 18))
CPLUS_FLAGS += /FS
endif
CPLUS_FLAGS += /DUSE_WINTHREAD /D_CRT_SECURE_NO_DEPRECATE \
/D_WIN32_WINNT=$(_WIN32_WINNT)
C_FLAGS = $(subst $(EH_FLAGS),,$(CPLUS_FLAGS))
#------------------------------------------------------------------------------
# End of setting compiler flags.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting assembler data.
#------------------------------------------------------------------------------
ASSEMBLY_SOURCE=$(arch)-masm
ifeq (intel64,$(arch))
ASM=ml64 /nologo
ASM_FLAGS += /DEM64T=1 /c /Zi
TBB_ASM.OBJ = atomic_support.obj intel64_misc.obj itsx.obj
MALLOC_ASM.OBJ = atomic_support.obj
else
ifeq (armv7,$(arch))
ASM=
TBB_ASM.OBJ=
else
ASM=ml /nologo
ASM_FLAGS += /c /coff /Zi /safeseh
TBB_ASM.OBJ = atomic_support.obj lock_byte.obj itsx.obj
endif
endif
#------------------------------------------------------------------------------
# End of setting assembler data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# Setting tbbmalloc data.
#------------------------------------------------------------------------------
M_CPLUS_FLAGS = $(CPLUS_FLAGS)
#------------------------------------------------------------------------------
# End of setting tbbmalloc data.
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# End of define compiler-specific variables.
#------------------------------------------------------------------------------
Loaded 100 of 2983 files, more files were not shown because too many files have changed in this diff. Show more