diff options
author | Yogesh Tyagi <yogesh.tyagi@intel.com> | 2024-09-25 15:22:24 +0530 |
---|---|---|
committer | Armin Kuster <akuster808@gmail.com> | 2024-10-06 07:10:32 -0400 |
commit | c56ca0cd69eaff250a8bb421dec6c1d3d962855e (patch) | |
tree | 94fba49c94be6832de08082156f230fd8185e555 | |
parent | bd6854fc05bc47f18cf82e2a66bcbd12f5f81d0a (diff) | |
download | meta-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.patch | 57 | ||||
-rw-r--r-- | meta-oe/recipes-support/tbb/tbb_2021.11.0.bb | 1 |
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 @@ | |||
1 | From e131071769ee3df51b56b053ba6bfa06ae9eff25 Mon Sep 17 00:00:00 2001 | ||
2 | From: Dmitri Mokhov <dmitri.n.mokhov@intel.com> | ||
3 | Date: Mon, 11 Sep 2023 10:35:07 -0500 | ||
4 | Subject: [PATCH] Fix/suppress new GCC 12/13 warnings (#1192) | ||
5 | |||
6 | Upstream-Status: Backport [https://github.com/oneapi-src/oneTBB/commit/e131071769ee3df51b56b053ba6bfa06ae9eff25] | ||
7 | Signed-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 | |||
13 | diff --git a/include/oneapi/tbb/detail/_concurrent_unordered_base.h b/include/oneapi/tbb/detail/_concurrent_unordered_base.h | ||
14 | index 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); | ||
26 | diff --git a/src/tbb/concurrent_monitor.h b/src/tbb/concurrent_monitor.h | ||
27 | index 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 | -- | ||
56 | 2.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" | |||
16 | SRCREV = "8b829acc65569019edb896c5150d427f288e8aba" | 16 | SRCREV = "8b829acc65569019edb896c5150d427f288e8aba" |
17 | SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \ | 17 | SRC_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 | " |
20 | S = "${WORKDIR}/git" | 21 | S = "${WORKDIR}/git" |
21 | 22 | ||