<pre style='margin:0'>
Haren S (harens) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a5de90cf98f345a5f83d514e0a52783d5ddc5493">https://github.com/macports/macports-ports/commit/a5de90cf98f345a5f83d514e0a52783d5ddc5493</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new a5de90cf98f onetbb: restore support for older systems and 32-bit archs
</span>a5de90cf98f is described below

<span style='display:block; white-space:pre;color:#808000;'>commit a5de90cf98f345a5f83d514e0a52783d5ddc5493
</span>Author: Sergey Fedorov <vital.had@gmail.com>
AuthorDate: Wed Feb 8 18:21:24 2023 +0700

<span style='display:block; white-space:pre;color:#404040;'>    onetbb: restore support for older systems and 32-bit archs
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Signed-off-by: Sergey Fedorov <vital.had@gmail.com>
</span>---
 devel/onetbb/Portfile                              |  28 +-
 devel/onetbb/files/patch-onetbb-older-malloc.diff  |  57 ---
 .../onetbb/files/patch-onetbb-older-platforms.diff | 449 +++++++++++++++++++++
 3 files changed, 473 insertions(+), 61 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/onetbb/Portfile b/devel/onetbb/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 900fdee8df5..5b4c85c707e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/onetbb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/onetbb/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,7 +26,8 @@ checksums           rmd160  2f9fae5f442066bf8e7eb5067104d71d6e1ce15d \
</span>                     sha256  eee380323bb7ce864355ed9431f85c43955faaae9e9bce35c62b372d7ffd9f8b \
                     size    2575336
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-onetbb-older-malloc.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args      -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-onetbb-older-platforms.diff
</span> 
 compiler.blacklist-append   {clang < 700}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,18 +35,37 @@ depends_lib-append  port:hwloc
</span> 
 compiler.cxx_standard  2011
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# see https://github.com/oneapi-src/oneTBB/issues/819
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-supported_archs     arm64 x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Temporary fix for a linking failure. To be dropped upon the next gcc12 update.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Related info: https://github.com/iains/darwin-toolchains-start-here/discussions/41
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    macports-gcc-12
</span> 
 # OneTBB's build uses CMAKE_OSX_ARCHITECTURES to add -arch flags which may lead
 # to missed symbols from exported symbol list on universal build like:
 # Undefined symbols for architecture i386:
 #  "tbb::detail::r1::wait_bounded_queue_monitor(tbb::detail::r1::concurrent_monitor*, unsigned long, long, tbb::detail::d1::delegate_base&)", referenced from:
 #     -exported_symbol[s_list] command line option
<span style='display:block; white-space:pre;background:#ffe0e0;'>-cmake.set_osx_architectures no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.arch} ne "powerpc"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # In Rosetta this setting breaks the build; restrict it to non-PPC:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    cmake.set_osx_architectures no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 configure.args-append  -DTBB_TEST=OFF
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+platform powerpc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Rather than disabling -Werror altogether, just disable these:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -Wno-parentheses \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -Wno-unused-function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# ___atomic_fetch_add_8, ___atomic_load_8, ___atomic_fetch_sub_8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Drop once this is merged: https://github.com/oneapi-src/oneTBB/pull/987
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[string match *gcc* ${configure.compiler}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.ldflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -latomic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> variant tests description {Enable tests} {
     configure.args-delete   -DTBB_TEST=OFF
     test.run                yes
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/onetbb/files/patch-onetbb-older-malloc.diff b/devel/onetbb/files/patch-onetbb-older-malloc.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index a2b0ef07a0f..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/onetbb/files/patch-onetbb-older-malloc.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,57 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git src/tbbmalloc_proxy/proxy_overload_osx.h src/tbbmalloc_proxy/proxy_overload_osx.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 69582983..632d25e2 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/tbbmalloc_proxy/proxy_overload_osx.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/tbbmalloc_proxy/proxy_overload_osx.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -81,6 +81,7 @@ static boolean_t zone_locked(malloc_zone_t *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static boolean_t impl_zone_enable_discharge_checking(malloc_zone_t *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -88,6 +89,8 @@ static boolean_t impl_zone_enable_discharge_checking(malloc_zone_t *)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void impl_zone_disable_discharge_checking(malloc_zone_t *) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void impl_zone_discharge(malloc_zone_t *, void *) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void impl_zone_destroy(struct _malloc_zone_t *) {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* note: impl_malloc_usable_size() is called for each free() call, so it must be fast */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -111,11 +114,13 @@ static void impl_free_definite_size(struct _malloc_zone_t*, void *ptr, size_t si
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     __TBB_malloc_free_definite_size(ptr, size);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Empty out caches in the face of memory pressure. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static size_t impl_pressure_relief(struct _malloc_zone_t *, size_t  /* goal */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     return 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static malloc_zone_t *system_zone = nullptr;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -135,9 +140,11 @@ struct DoMallocReplacement {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         introspect.force_unlock = &zone_force_unlock;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         introspect.statistics = zone_statistics;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         introspect.zone_locked = &zone_locked;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         introspect.enable_discharge_checking = &impl_zone_enable_discharge_checking;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         introspect.disable_discharge_checking = &impl_zone_disable_discharge_checking;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         introspect.discharge = &impl_zone_discharge;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         zone.size = &impl_malloc_usable_size;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         zone.malloc = &impl_malloc;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -151,7 +158,9 @@ struct DoMallocReplacement {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         zone.version = 8;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         zone.memalign = impl_memalign;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         zone.free_definite_size = &impl_free_definite_size;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         zone.pressure_relief = &impl_pressure_relief;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         // make sure that default purgeable zone is initialized
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-         malloc_default_purgeable_zone();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/onetbb/files/patch-onetbb-older-platforms.diff b/devel/onetbb/files/patch-onetbb-older-platforms.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..fea8fe7be0c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/onetbb/files/patch-onetbb-older-platforms.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,449 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/oneapi-src/oneTBB/pull/840
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 91b43909e83e02945df77f37b95b042d8f03a1c9 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: barracuda156 <vital.had@gmail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Tue, 15 Nov 2022 18:06:45 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Restore support for 32-bit platforms, add fix-ups for PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/cmake/compilers/AppleClang.cmake b/cmake/compilers/AppleClang.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5ebbdbd1..f27e1382 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/cmake/compilers/AppleClang.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/cmake/compilers/AppleClang.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (c) 2020-2022 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (c) 2020-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Licensed under the Apache License, Version 2.0 (the "License");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # you may not use this file except in compliance with the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,7 +37,7 @@ if (CMAKE_OSX_ARCHITECTURES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(_tbb_target_architectures "${CMAKE_SYSTEM_PROCESSOR}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if ("${_tbb_target_architectures}" MATCHES "(x86_64|amd64|AMD64)") # OSX systems are 64-bit only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ("${_tbb_target_architectures}" MATCHES "(i.86|x86|x86_64|amd64|AMD64)") # Clang is not supported on PowerPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},12.0>>:-mwaitpkg>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unset(_tbb_target_architectures)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4555d77b..0e7a0287 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/cmake/compilers/GNU.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/cmake/compilers/GNU.cmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,7 +36,13 @@ if (NOT CMAKE_GENERATOR MATCHES "Ninja" AND NOT CMAKE_CXX_DEPENDS_USE_COMPILER)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (CMAKE_SYSTEM_PROCESSOR MATCHES "(AMD64|amd64|i.86|x86)")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Like with Apple Clang case, use CMAKE_OSX_ARCHITECTURES if it is defined. Defaulting to CMAKE_SYSTEM_PROCESSOR breaks build on Rosetta.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if (CMAKE_OSX_ARCHITECTURES)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_tbb_target_architectures "${CMAKE_OSX_ARCHITECTURES}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    set(_tbb_target_architectures "${CMAKE_SYSTEM_PROCESSOR}")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ("${_tbb_target_architectures}" MATCHES "(AMD64|amd64|i.86|x86)")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} -mrtm $<$<AND:$<NOT:$<CXX_COMPILER_ID:Intel>>,$<NOT:$<VERSION_LESS:${CMAKE_CXX_COMPILER_VERSION},11.0>>>:-mwaitpkg>)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/include/oneapi/tbb/task_group.h b/include/oneapi/tbb/task_group.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2bbacd55..dc671acb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/include/oneapi/tbb/task_group.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/include/oneapi/tbb/task_group.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Copyright (c) 2005-2022 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Copyright (c) 2005-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Licensed under the Apache License, Version 2.0 (the "License");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     you may not use this file except in compliance with the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -187,6 +187,23 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     task_group_context_version my_version;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if defined __APPLE__ && defined __ppc__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /** bool is 32 bits on Darwin ppc32 (but not on ppc64): https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107590
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/LowLevelABI/100-32-bit_PowerPC_Function_Calling_Conventions/32bitPowerPC.html. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    //! The context traits.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    struct context_traits {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool fp_settings        : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool concurrent_wait    : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool bound              : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool reserved1          : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool reserved2          : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool reserved3          : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool reserved4          : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        bool reserved5          : 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    } my_traits;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    static_assert(sizeof(context_traits) == 4, "Traits shall fit into 4 bytes.");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #else // Everything else besides Darwin ppc32:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     //! The context traits.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     struct context_traits {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         bool fp_settings        : 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -200,6 +217,7 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } my_traits;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static_assert(sizeof(context_traits) == 1, "Traits shall fit into one byte.");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     static constexpr std::uint8_t may_have_children = 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     //! The context internal state (currently only may_have_children).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -417,7 +435,11 @@ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     friend class task_group_base;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }; // class task_group_context
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static_assert(sizeof(task_group_context) == 128, "Wrong size of task_group_context");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined __APPLE__ && defined __ppc__ // case of Darwin ppc32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    static_assert(sizeof(task_group_context) == 136, "Wrong size of task_group_context");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    static_assert(sizeof(task_group_context) == 128, "Wrong size of task_group_context");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ enum task_group_status {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     not_complete,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tbb/def/mac32-tbb.def b/src/tbb/def/mac32-tbb.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000..b3b1288a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tbb/def/mac32-tbb.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,159 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (c) 2005-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Licensed under the Apache License, Version 2.0 (the "License");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# you may not use this file except in compliance with the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# You may obtain a copy of the License at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     http://www.apache.org/licenses/LICENSE-2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Unless required by applicable law or agreed to in writing, software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# distributed under the License is distributed on an "AS IS" BASIS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# See the License for the specific language governing permissions and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# limitations under the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# TODO: check the legacy comment below, currently use extra leading underscore everywhere.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Sometimes macOS* requires leading underscore (e. g. in export list file), but sometimes not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# (e. g. when searching symbol in a dynamic library via dlsym()). Symbols in this file SHOULD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# be listed WITHOUT one leading underscore. __TBB_SYMBOL macro should add underscore when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# necessary, depending on the intended usage.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Assertions (assert.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117assertion_failureEPKciS3_S3_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# ITT (profiling.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r112itt_task_endENS0_2d115itt_domain_enumE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r114itt_region_endENS0_2d115itt_domain_enumEPvy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r114itt_task_beginENS0_2d115itt_domain_enumEPvyS4_yNS0_2d021string_resource_indexE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115call_itt_notifyEiPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115create_itt_syncEPvPKcS4_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r116itt_region_beginENS0_2d115itt_domain_enumEPvyS4_yNS0_2d021string_resource_indexE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r116itt_relation_addENS0_2d115itt_domain_enumEPvyNS0_2d012itt_relationES4_y
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117itt_set_sync_nameEPvPKc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r119itt_make_task_groupENS0_2d115itt_domain_enumEPvyS4_yNS0_2d021string_resource_indexE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r120itt_metadata_str_addENS0_2d115itt_domain_enumEPvyNS0_2d021string_resource_indexEPKc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r120itt_metadata_ptr_addENS0_2d115itt_domain_enumEPvyNS0_2d021string_resource_indexES4_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Allocators (allocator.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115allocate_memoryEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117deallocate_memoryEPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r122cache_aligned_allocateEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r124cache_aligned_deallocateEPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115cache_line_sizeEv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117is_tbbmalloc_usedEv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Small object pool (small_object_pool.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r18allocateERPNS0_2d117small_object_poolEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r18allocateERPNS0_2d117small_object_poolEmRKNS2_14execution_dataE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r110deallocateERNS0_2d117small_object_poolEPvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r110deallocateERNS0_2d117small_object_poolEPvmRKNS2_14execution_dataE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Error handling (exception.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115throw_exceptionENS0_2d012exception_idE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTIN3tbb6detail2r114bad_last_allocE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTVN3tbb6detail2r114bad_last_allocE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTIN3tbb6detail2r112missing_waitE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTVN3tbb6detail2r112missing_waitE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTIN3tbb6detail2r110user_abortE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTVN3tbb6detail2r110user_abortE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTIN3tbb6detail2r111unsafe_waitE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZTVN3tbb6detail2r111unsafe_waitE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# RTM Mutex (rtm_mutex.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17acquireERNS0_2d19rtm_mutexERNS3_11scoped_lockEb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17releaseERNS0_2d19rtm_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r111try_acquireERNS0_2d19rtm_mutexERNS3_11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# RTM RW Mutex (rtm_rw_mutex.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r114acquire_readerERNS0_2d112rtm_rw_mutexERNS3_11scoped_lockEb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r114acquire_writerERNS0_2d112rtm_rw_mutexERNS3_11scoped_lockEb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r118try_acquire_readerERNS0_2d112rtm_rw_mutexERNS3_11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r118try_acquire_writerERNS0_2d112rtm_rw_mutexERNS3_11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17releaseERNS0_2d112rtm_rw_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17upgradeERNS0_2d112rtm_rw_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r19downgradeERNS0_2d112rtm_rw_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Tasks and partitioners (task.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17suspendEPFvPvPNS1_18suspend_point_typeEES2_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r16resumeEPNS1_18suspend_point_typeE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r121current_suspend_pointEv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r114notify_waitersEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Task dispatcher (task_dispatcher.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r114execution_slotEPKNS0_2d114execution_dataE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r14waitERNS0_2d112wait_contextERNS2_18task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r15spawnERNS0_2d14taskERNS2_18task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r15spawnERNS0_2d14taskERNS2_18task_group_contextEt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r116execute_and_waitERNS0_2d14taskERNS2_18task_group_contextERNS2_12wait_contextES6_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r16submitERNS0_2d14taskERNS2_18task_group_contextEPNS1_5arenaEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115current_contextEv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Task group context (task_group_context.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r110initializeERNS0_2d118task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r122cancel_group_executionERNS0_2d118task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r128is_group_execution_cancelledERNS0_2d118task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r15resetERNS0_2d118task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17destroyERNS0_2d118task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r119capture_fp_settingsERNS0_2d118task_group_contextE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Task arena (arena.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115max_concurrencyEPKNS0_2d115task_arena_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r110initializeERNS0_2d115task_arena_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r16attachERNS0_2d115task_arena_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17executeERNS0_2d115task_arena_baseERNS2_13delegate_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r19terminateERNS0_2d115task_arena_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r120isolate_within_arenaERNS0_2d113delegate_baseEl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17enqueueERNS0_2d14taskEPNS2_15task_arena_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17enqueueERNS0_2d14taskERNS2_18task_group_contextEPNS2_15task_arena_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r14waitERNS0_2d115task_arena_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# System topology parsing and threads pinning (governor.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115numa_node_countEv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117fill_numa_indicesEPi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115core_type_countEl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r122fill_core_type_indicesEPil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r131constraints_default_concurrencyERKNS0_2d111constraintsEl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r128constraints_threads_per_coreERKNS0_2d111constraintsEl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r124numa_default_concurrencyEi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Observer (observer_proxy.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17observeERNS0_2d123task_scheduler_observerEb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Queuing RW Mutex (queuing_rw_mutex.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r111try_acquireERNS0_2d116queuing_rw_mutexERNS3_11scoped_lockEb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117upgrade_to_writerERNS0_2d116queuing_rw_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r119downgrade_to_readerERNS0_2d116queuing_rw_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17acquireERNS0_2d116queuing_rw_mutexERNS3_11scoped_lockEb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17releaseERNS0_2d116queuing_rw_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r19constructERNS0_2d116queuing_rw_mutexE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r19is_writerERKNS0_2d116queuing_rw_mutex11scoped_lockE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Global control (global_control.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r16createERNS0_2d114global_controlE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r17destroyERNS0_2d114global_controlE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r127global_control_active_valueEi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r18finalizeERNS0_2d121task_scheduler_handleEl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r13getERNS0_2d121task_scheduler_handleE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Parallel pipeline (parallel_pipeline.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117parallel_pipelineERNS0_2d118task_group_contextEmRKNS2_11filter_nodeE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r116set_end_of_inputERNS0_2d111base_filterE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Concurrent bounded queue (concurrent_bounded_queue.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r126allocate_bounded_queue_repEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r126wait_bounded_queue_monitorEPNS1_18concurrent_monitorEmiRNS0_2d113delegate_baseE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r128abort_bounded_queue_monitorsEPNS1_18concurrent_monitorE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r128deallocate_bounded_queue_repEPhm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r128notify_bounded_queue_monitorEPNS1_18concurrent_monitorEmm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Concurrent monitor (address_waiter.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r115wait_on_addressEPvRNS0_2d113delegate_baseEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r117notify_by_addressEPvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r121notify_by_address_oneEPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3tbb6detail2r121notify_by_address_allEPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Versioning (version.cpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_TBB_runtime_interface_version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_TBB_runtime_version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tbb/tools_api/ittnotify_config.h b/src/tbb/tools_api/ittnotify_config.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0f5d80f6..60cde151 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/tbb/tools_api/ittnotify_config.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tbb/tools_api/ittnotify_config.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,6 +184,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  define ITT_ARCH_RISCV64  10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* ITT_ARCH_RISCV64 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef ITT_ARCH_PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define ITT_ARCH_PPC  11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* ITT_ARCH_PPC */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef ITT_ARCH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  if defined _M_IX86 || defined __i386__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #    define ITT_ARCH ITT_ARCH_IA32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -195,7 +199,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #    define ITT_ARCH ITT_ARCH_ARM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  elif defined __aarch64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #    define ITT_ARCH ITT_ARCH_ARM64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#  elif defined __powerpc64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  elif defined __powerpc__ || defined __ppc__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    define ITT_ARCH ITT_ARCH_PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  elif defined __powerpc64__ || defined __ppc64__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #    define ITT_ARCH ITT_ARCH_PPC64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  elif defined __loongarch__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #    define ITT_ARCH ITT_ARCH_LOONGARCH64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tbb/tools_api/ittnotify_static.c b/src/tbb/tools_api/ittnotify_static.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0b9aa492..23cff36d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/tbb/tools_api/ittnotify_static.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tbb/tools_api/ittnotify_static.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Copyright (c) 2005-2021 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Copyright (c) 2005-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Licensed under the Apache License, Version 2.0 (the "License");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     you may not use this file except in compliance with the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -125,7 +125,7 @@ static const char* ittnotify_lib_name = "libittnotify.dylib";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef LIB_VAR_NAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if ITT_ARCH==ITT_ARCH_IA32 || ITT_ARCH==ITT_ARCH_ARM || ITT_ARCH==ITT_ARCH_PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIB_VAR_NAME INTEL_LIBITTNOTIFY32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define LIB_VAR_NAME INTEL_LIBITTNOTIFY64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tbbmalloc/def/mac32-tbbmalloc.def b/src/tbbmalloc/def/mac32-tbbmalloc.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00000000..4dae67f9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tbbmalloc/def/mac32-tbbmalloc.def
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,45 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (c) 2005-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Licensed under the Apache License, Version 2.0 (the "License");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# you may not use this file except in compliance with the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# You may obtain a copy of the License at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#     http://www.apache.org/licenses/LICENSE-2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Unless required by applicable law or agreed to in writing, software
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# distributed under the License is distributed on an "AS IS" BASIS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# See the License for the specific language governing permissions and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# limitations under the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_calloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_malloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_realloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_posix_memalign
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_aligned_malloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_aligned_realloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_aligned_free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_msize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_allocation_mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_scalable_allocation_command
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++___TBB_malloc_safer_aligned_msize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++___TBB_malloc_safer_aligned_realloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++___TBB_malloc_safer_free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++___TBB_malloc_safer_msize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++___TBB_malloc_safer_realloc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++___TBB_malloc_free_definite_size
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* memory pool stuff */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml11pool_createElPKNS_13MemPoolPolicyE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml14pool_create_v1ElPKNS_13MemPoolPolicyEPPNS_10MemoryPoolE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml10pool_resetEPNS_10MemoryPoolE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml12pool_destroyEPNS_10MemoryPoolE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml11pool_mallocEPNS_10MemoryPoolEm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml9pool_freeEPNS_10MemoryPoolEPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml12pool_reallocEPNS_10MemoryPoolEPvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml20pool_aligned_reallocEPNS_10MemoryPoolEPvmm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml19pool_aligned_mallocEPNS_10MemoryPoolEmm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml13pool_identifyEPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__ZN3rml10pool_msizeEPNS_10MemoryPoolEPv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tbbmalloc_proxy/proxy_overload_osx.h b/src/tbbmalloc_proxy/proxy_overload_osx.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 69582983..942933e2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/tbbmalloc_proxy/proxy_overload_osx.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tbbmalloc_proxy/proxy_overload_osx.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Copyright (c) 2005-2022 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Copyright (c) 2005-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Licensed under the Apache License, Version 2.0 (the "License");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     you may not use this file except in compliance with the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -134,10 +134,14 @@ struct DoMallocReplacement {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         introspect.force_lock = &zone_force_lock;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         introspect.force_unlock = &zone_force_unlock;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         introspect.statistics = zone_statistics;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 && !defined(__POWERPC__) // zone_locked is not defined on macOS < 10.6 and any PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         introspect.zone_locked = &zone_locked;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 // Only available on macOS > 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         introspect.enable_discharge_checking = &impl_zone_enable_discharge_checking;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         introspect.disable_discharge_checking = &impl_zone_disable_discharge_checking;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         introspect.discharge = &impl_zone_discharge;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         zone.size = &impl_malloc_usable_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         zone.malloc = &impl_malloc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -150,8 +154,10 @@ struct DoMallocReplacement {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         zone.introspect = &introspect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         zone.version = 8;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         zone.memalign = impl_memalign;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #if __MAC_OS_X_VERSION_MAX_ALLOWED >= 1060 && !defined(__POWERPC__) // Unavailable on macOS < 10.6 and any PPC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         zone.free_definite_size = &impl_free_definite_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         zone.pressure_relief = &impl_pressure_relief;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // make sure that default purgeable zone is initialized
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         malloc_default_purgeable_zone();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/test/common/doctest.h b/test/common/doctest.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 3b906764..b7116596 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/test/common/doctest.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/test/common/doctest.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Modifications Copyright (c) 2020-2022 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Modifications Copyright (c) 2020-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Modifications Licensed under the Apache License, Version 2.0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -412,6 +412,9 @@ DOCTEST_MSVC_SUPPRESS_WARNING(26812) // Prefer 'enum class' over 'enum'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(DOCTEST_PLATFORM_MAC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__x86_64) || defined(__x86_64__) || defined(__amd64__) || defined(__i386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("int $3\n" : :) // NOLINT (hicpp-no-assembler)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#elif defined(__POWERPC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("li r0, 20\nsc\nnop\nli r0, 37\nli r4, 2\nsc\nnop\n" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  : : : "memory","r0","r3","r4" ) /* NOLINT */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DOCTEST_BREAK_INTO_DEBUGGER() __asm__("brk #0"); // NOLINT (hicpp-no-assembler)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/test/conformance/conformance_allocators.cpp b/test/conformance/conformance_allocators.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 60ec5cae..f0b3c1b4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/test/conformance/conformance_allocators.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/test/conformance/conformance_allocators.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Copyright (c) 2005-2021 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Copyright (c) 2005-2023 Intel Corporation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Licensed under the Apache License, Version 2.0 (the "License");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     you may not use this file except in compliance with the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +31,7 @@ TEST_CASE("Allocator concept") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TestAllocator<oneapi::tbb::cache_aligned_allocator<void>>(Concept);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TestAllocator<oneapi::tbb::tbb_allocator<void>>(Concept);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if !(defined(__APPLE__) && defined(__POWERPC__)) // This test fails to build on Darwin PPC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // max_size case for cache_aligned allocator
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     using Allocator = oneapi::tbb::cache_aligned_allocator<int>;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Allocator allocator;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -38,6 +39,7 @@ TEST_CASE("Allocator concept") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Following assertion catches case where max_size() is so large that computation of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // number of bytes for such an allocation would overflow size_type.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     REQUIRE_MESSAGE((allocator.max_size() * typename std::allocator_traits<Allocator>::size_type(sizeof(int)) >= allocator.max_size()), "max_size larger than reasonable");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // operator==
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TestAllocator<oneapi::tbb::cache_aligned_allocator<void>>(Comparison);
</span></pre><pre style='margin:0'>

</pre>