summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYogesh Tyagi <yogesh.tyagi@intel.com>2024-09-25 15:22:24 +0530
committerArmin Kuster <akuster808@gmail.com>2024-10-06 07:10:32 -0400
commitc56ca0cd69eaff250a8bb421dec6c1d3d962855e (patch)
tree94fba49c94be6832de08082156f230fd8185e555
parentbd6854fc05bc47f18cf82e2a66bcbd12f5f81d0a (diff)
downloadmeta-openembedded-c56ca0cd69eaff250a8bb421dec6c1d3d962855e.tar.gz
tbb-native: Fix build with gcc-13
* 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 <yogesh.tyagi@intel.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
-rw-r--r--meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warnings-1192.patch57
-rw-r--r--meta-oe/recipes-support/tbb/tbb_2021.11.0.bb1
2 files changed, 58 insertions, 0 deletions
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 @@
1From e131071769ee3df51b56b053ba6bfa06ae9eff25 Mon Sep 17 00:00:00 2001
2From: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
3Date: Mon, 11 Sep 2023 10:35:07 -0500
4Subject: [PATCH] Fix/suppress new GCC 12/13 warnings (#1192)
5
6Upstream-Status: Backport [https://github.com/oneapi-src/oneTBB/commit/e131071769ee3df51b56b053ba6bfa06ae9eff25]
7Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
8---
9 .../oneapi/tbb/detail/_concurrent_unordered_base.h | 2 +-
10 src/tbb/concurrent_monitor.h | 12 +++++++++++-
11 2 files changed, 12 insertions(+), 2 deletions(-)
12
13diff --git a/include/oneapi/tbb/detail/_concurrent_unordered_base.h b/include/oneapi/tbb/detail/_concurrent_unordered_base.h
14index ade91c33..40829208 100644
15--- a/include/oneapi/tbb/detail/_concurrent_unordered_base.h
16+++ b/include/oneapi/tbb/detail/_concurrent_unordered_base.h
17@@ -921,7 +921,7 @@ private:
18 node_allocator_traits::deallocate(dummy_node_allocator, node, 1);
19 } else {
20 // GCC 11.1 issues a warning here that incorrect destructor might be called for dummy_nodes
21- #if (__TBB_GCC_VERSION >= 110100 && __TBB_GCC_VERSION < 130000 ) && !__clang__ && !__INTEL_COMPILER
22+ #if (__TBB_GCC_VERSION >= 110100 && __TBB_GCC_VERSION < 140000 ) && !__clang__ && !__INTEL_COMPILER
23 volatile
24 #endif
25 value_node_ptr val_node = static_cast<value_node_ptr>(node);
26diff --git a/src/tbb/concurrent_monitor.h b/src/tbb/concurrent_monitor.h
27index 3d20ef5b..3e5c4beb 100644
28--- a/src/tbb/concurrent_monitor.h
29+++ b/src/tbb/concurrent_monitor.h
30@@ -1,5 +1,5 @@
31 /*
32- Copyright (c) 2005-2021 Intel Corporation
33+ Copyright (c) 2005-2023 Intel Corporation
34
35 Licensed under the Apache License, Version 2.0 (the "License");
36 you may not use this file except in compliance with the License.
37@@ -290,7 +290,17 @@ public:
38 n = my_waitset.front();
39 if (n != end) {
40 my_waitset.remove(*n);
41+
42+// 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
43+// a base_node pointer. (This cannot happen, because only wait_node pointers are added to my_waitset.)
44+#if (__TBB_GCC_VERSION >= 120100 && __TBB_GCC_VERSION < 140000 ) && !__clang__ && !__INTEL_COMPILER
45+#pragma GCC diagnostic push
46+#pragma GCC diagnostic ignored "-Wstringop-overflow"
47+#endif
48 to_wait_node(n)->my_is_in_list.store(false, std::memory_order_relaxed);
49+#if (__TBB_GCC_VERSION >= 120100 && __TBB_GCC_VERSION < 140000 ) && !__clang__ && !__INTEL_COMPILER
50+#pragma GCC diagnostic pop
51+#endif
52 }
53 }
54
55--
562.43.0
57
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"
16SRCREV = "8b829acc65569019edb896c5150d427f288e8aba" 16SRCREV = "8b829acc65569019edb896c5150d427f288e8aba"
17SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \ 17SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
18 file://0001-hwloc_detection.cmake-remove-cross-compiation-check.patch \ 18 file://0001-hwloc_detection.cmake-remove-cross-compiation-check.patch \
19 file://0001-Fix-suppress-new-GCC-12-13-warnings-1192.patch \
19" 20"
20S = "${WORKDIR}/git" 21S = "${WORKDIR}/git"
21 22