You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: CMakeLists.txt
+23-1
Original file line number
Diff line number
Diff line change
@@ -112,17 +112,32 @@ if (NOT DEFINED BUILD_SHARED_LIBS)
112
112
endif()
113
113
114
114
if (NOTBUILD_SHARED_LIBS)
115
-
set(CMAKE_POSITION_INDEPENDENT_CODEON)
115
+
if(NOTDEFINEDCMAKE_POSITION_INDEPENDENT_CODE)
116
+
set(CMAKE_POSITION_INDEPENDENT_CODEON)
117
+
endif()
116
118
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.")
117
119
endif()
118
120
121
+
# Prevent searching HWLOC by pkg-config on macOS
122
+
if (APPLE)
123
+
set(TBB_DISABLE_HWLOC_AUTOMATIC_SEARCH ON)
124
+
endif()
125
+
119
126
if (NOTCMAKE_BUILD_TYPEANDNOTCMAKE_CONFIGURATION_TYPES)
- Hybrid CPU support is now a fully supported feature.
28
+
25
29
## :rotating_light: Known Limitations
26
-
- 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.
30
+
- 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.
27
31
- 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.
28
32
- 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.
29
33
- 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.
30
-
- 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.
34
+
- 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.
31
35
- 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.
32
36
- 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.
33
37
- oneTBB does not support fork(), to work-around the issue, consider using task_scheduler_handle to join oneTBB worker threads before using fork().
34
38
- 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).
35
39
36
40
## :hammer: Fixed Issues
37
-
- Memory allocator crash when allocating ~1TB on 64-bit systems (GitHub*[#838](https://github.com/oneapi-src/oneTBB/issues/838)).
38
-
- Fixed thread distribution over NUMA nodes on Windows* OS systems.
39
-
- For oneapi::tbb::suspend, it is guaranteed that the user-specified callable object is executed by the calling thread.
41
+
- Improved robustness of thread creation algorithm on Linux* OS.
42
+
- Enabled full support of Thread Sanitizer on macOS*
43
+
- Fixed the issue with destructor calls for uninitialized objects in oneapi::tbb::parallel_for_each algorithm (GitHub*#691)
44
+
- Fixed the issue with tbb::concurrent_lru_cache when items history capacity is zero (GitHub*#265)
45
+
- Fixed compilation issues on modern GCC* versions
40
46
41
47
## :octocat: Open-source Contributions Integrated
42
-
- Fix for full LTO* build, library and tests, on UNIX* OS systems. Contributed by Vladislav Shchapov (https://github.com/oneapi-src/oneTBB/pull/798).
48
+
- Fixed the issue reported by the Address Sanitizer. Contributed by Rui Ueyama (https://github.com/oneapi-src/oneTBB/pull/959).
49
+
- Fixed the input_type alias exposed by flow_graph::join_node. Contributed by Deepan (https://github.com/oneapi-src/oneTBB/pull/868).
- Non-Intel(R) processors compatible with the processors listed above
35
35
36
36
37
37
## Software
38
38
39
39
### Supported Operating Systems
40
-
- Systems with Microsoft* Windows* operating systems
40
+
- Systems with Microsoft* Windows* operating systems:
41
41
- Microsoft* Windows* 10
42
-
- Microsoft* Windows*Server 2016
42
+
- Microsoft* Windows*11
43
43
- Microsoft* Windows* Server 2019
44
-
- Systems with Linux* operating systems
45
-
- Clear Linux*
46
-
- Amazon* Linux 2
47
-
- CentOS* 8
48
-
- Debian* 10
49
-
- Fedora* 34
50
-
- Red Hat* Enterprise Linux* 7, 8
44
+
- Microsoft* Windows* Server 2022
45
+
- Systems with Linux* operating systems:
46
+
- Oracle Linux* 8
47
+
- Amazon* Linux* 2
48
+
- Debian* 9, 10, 11
49
+
- Fedora* 36, 37
50
+
- Rocky* Linux* 9
51
+
- Red Hat* Enterprise Linux* 8, 9
51
52
- SuSE* Linux* Enterprise Server 15
52
-
- Ubuntu*18.04 LTS, 20.04, 21.04
53
-
- Systems with macOS* operating systems
54
-
- macOS*10.15, 11.x
55
-
- Systems with Android* operating systems
53
+
- Ubuntu* 20.04, 22.04
54
+
- Systems with macOS* operating systems:
55
+
- macOS*12.x, 13.x
56
+
- Systems with Android* operating systems:
56
57
- Android* 9
57
58
58
59
### Community-Supported Platforms
@@ -64,9 +65,22 @@ This document provides details about hardware, operating system, and software pr
64
65
### Supported Compilers
65
66
- Intel* oneAPI DPC++/C++ Compiler
66
67
- Intel* C++ Compiler 19.0 and 19.1 version
67
-
- Microsoft* Visual C++ 14.1 (Microsoft* Visual Studio* 2017, Windows* OS only)
68
68
- Microsoft* Visual C++ 14.2 (Microsoft* Visual Studio* 2019, Windows* OS only)
69
-
- For each supported Linux* operating system, the standard gcc version provided with that operating system is supported
70
-
- GNU Compilers (gcc) 4.8.5 - 11.1.1
71
-
- GNU C Library (glibc) version 2.17 - 2.33
72
-
- Clang* 6.0.0 - 12.0.0
69
+
- Microsoft* Visual C++ 14.3 (Microsoft* Visual Studio* 2022, Windows* OS only)
70
+
- For each supported Linux* operating system, the standard gcc version provided with that operating system is supported:
71
+
- GNU Compilers (gcc) 4.8.5 - 11.2.1
72
+
- GNU C Library (glibc) version 2.17 - 2.34
73
+
- Clang* 6.0.0 - 13.0.0
74
+
75
+
## Limitations
76
+
There are some cases where we cannot provide support for your platforms. It includes:
77
+
78
+
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.
79
+
2. We do not have the infrastructure to test a platform. Therefore we cannot guarantee that oneTBB works correctly on that platform.
80
+
3. Changes affect more code than just platform-specific macros.
81
+
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.
82
+
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.
83
+
84
+
85
+
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.
``WASM`` stands for WebAssembly, a low-level binary format for executing code in web browsers.
20
+
It is designed to be a portable target for compilers and to be efficient to parse and execute.
21
+
22
+
WebAssembly aims to provide a fast, efficient, and safe way to run code in web browsers without needing plugins or other software. Code written in a variety of programming languages, including C, C++, Rust and others, can be compiled into WebAssembly format for use in web pages. This allows you to write high-performance applications that run directly in the browser.
23
+
24
+
We currently have an [under development branch that provides you with WASM support](https://github.com/oneapi-src/oneTBB/tree/tbb_wasm).
25
+
26
+
By using WASM, you can:
27
+
* Create highly performant and scalable applications that can meet the demands of modern web-based systems.
28
+
* Take advantage of oneTBB features to optimize the performance of your web-based applications.
0 commit comments