diff --git a/meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warnings-1192.patch b/meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warnings-1192.patch new file mode 100644 index 0000000000..489f011b84 --- /dev/null +++ b/meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warnings-1192.patch @@ -0,0 +1,57 @@ +From e131071769ee3df51b56b053ba6bfa06ae9eff25 Mon Sep 17 00:00:00 2001 +From: Dmitri Mokhov +Date: Mon, 11 Sep 2023 10:35:07 -0500 +Subject: [PATCH] Fix/suppress new GCC 12/13 warnings (#1192) + +Upstream-Status: Backport [https://github.com/oneapi-src/oneTBB/commit/e131071769ee3df51b56b053ba6bfa06ae9eff25] +Signed-off-by: Dmitri Mokhov +--- + .../oneapi/tbb/detail/_concurrent_unordered_base.h | 2 +- + src/tbb/concurrent_monitor.h | 12 +++++++++++- + 2 files changed, 12 insertions(+), 2 deletions(-) + +diff --git a/include/oneapi/tbb/detail/_concurrent_unordered_base.h b/include/oneapi/tbb/detail/_concurrent_unordered_base.h +index ade91c33..40829208 100644 +--- a/include/oneapi/tbb/detail/_concurrent_unordered_base.h ++++ b/include/oneapi/tbb/detail/_concurrent_unordered_base.h +@@ -921,7 +921,7 @@ private: + node_allocator_traits::deallocate(dummy_node_allocator, node, 1); + } else { + // GCC 11.1 issues a warning here that incorrect destructor might be called for dummy_nodes +- #if (__TBB_GCC_VERSION >= 110100 && __TBB_GCC_VERSION < 130000 ) && !__clang__ && !__INTEL_COMPILER ++ #if (__TBB_GCC_VERSION >= 110100 && __TBB_GCC_VERSION < 140000 ) && !__clang__ && !__INTEL_COMPILER + volatile + #endif + value_node_ptr val_node = static_cast(node); +diff --git a/src/tbb/concurrent_monitor.h b/src/tbb/concurrent_monitor.h +index 3d20ef5b..3e5c4beb 100644 +--- a/src/tbb/concurrent_monitor.h ++++ b/src/tbb/concurrent_monitor.h +@@ -1,5 +1,5 @@ + /* +- Copyright (c) 2005-2021 Intel Corporation ++ Copyright (c) 2005-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. +@@ -290,7 +290,17 @@ public: + n = my_waitset.front(); + if (n != end) { + my_waitset.remove(*n); ++ ++// GCC 12.x-13.x issues a warning here that to_wait_node(n)->my_is_in_list might have size 0, since n is ++// a base_node pointer. (This cannot happen, because only wait_node pointers are added to my_waitset.) ++#if (__TBB_GCC_VERSION >= 120100 && __TBB_GCC_VERSION < 140000 ) && !__clang__ && !__INTEL_COMPILER ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wstringop-overflow" ++#endif + to_wait_node(n)->my_is_in_list.store(false, std::memory_order_relaxed); ++#if (__TBB_GCC_VERSION >= 120100 && __TBB_GCC_VERSION < 140000 ) && !__clang__ && !__INTEL_COMPILER ++#pragma GCC diagnostic pop ++#endif + } + } + +-- +2.43.0 + diff --git a/meta-oe/recipes-support/tbb/tbb_2021.11.0.bb b/meta-oe/recipes-support/tbb/tbb_2021.11.0.bb index f834726bd6..318cd87643 100644 --- a/meta-oe/recipes-support/tbb/tbb_2021.11.0.bb +++ b/meta-oe/recipes-support/tbb/tbb_2021.11.0.bb @@ -16,6 +16,7 @@ BRANCH = "onetbb_2021" SRCREV = "8b829acc65569019edb896c5150d427f288e8aba" SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \ file://0001-hwloc_detection.cmake-remove-cross-compiation-check.patch \ + file://0001-Fix-suppress-new-GCC-12-13-warnings-1192.patch \ " S = "${WORKDIR}/git"