* Fixes following stringop-overflow warning with gcc-13:
In file included from /usr/include/c++/13/atomic:41,
from
/poky/build/tmp/work/x86_64-linux/tbb-native/2021.11.0/git/src/tbb/../../include/oneapi/tbb/detail/_utils.h:22,
from
/poky/build/tmp/work/x86_64-linux/tbb-native/2021.11.0/git/src/tbb/task_dispatcher.h:20,
from
/poky/build/tmp/work/x86_64-linux/tbb-native/2021.11.0/git/src/tbb/arena.cpp:17:
In member function ‘void std::__atomic_base<_IntTp>::store(__int_type,
std::memory_order) [with _ITp = bool]’,
inlined from ‘void std::atomic<bool>::store(bool, std::memory_order)’ at
/usr/include/c++/13/atomic:104:20,
inlined from ‘void
tbb::detail::r1::concurrent_monitor_base<Context>::notify_one_relaxed() [with
Context = long unsigned int]’ at
/poky/build/tmp/work/x86_64-linux/tbb-native/2021.11.0/git/src/tbb/concurrent_monitor.h:293:53:
/usr/include/c++/13/bits/atomic_base.h:481:25: error: ‘void
__atomic_store_1(volatile void*, unsigned char, int)’ writing 1 byte into a
region of size 0 overflows the destination [-Werror=stringop-overflow=]
481 | __atomic_store_n(&_M_i, __i, int(__m));
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.
cc1plus: all warnings being treated as errors
(cherry picked from commit e131071769ee3df51b56b053ba6bfa06ae9eff25)
Signed-off-by: Yogesh Tyagi <[email protected]>
---
...suppress-new-GCC-12-13-warnings-1192.patch | 57 +++++++++++++++++++
meta-oe/recipes-support/tbb/tbb_2021.11.0.bb | 1 +
2 files changed, 58 insertions(+)
create mode 100644
meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warnings-1192.patch
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 <[email protected]>
+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 <[email protected]>
+---
+ .../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<value_node_ptr>(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"
--
2.43.0
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#204944):
https://lists.openembedded.org/g/openembedded-core/message/204944
Mute This Topic: https://lists.openembedded.org/mt/108644671/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-