diff mbox series

[scarthgap] tbb-native: Fix build with gcc-13

Message ID 20240925095224.1383106-1-yogesh.tyagi@intel.com
State New
Headers show
Series [scarthgap] tbb-native: Fix build with gcc-13 | expand

Commit Message

Tyagi, Yogesh Sept. 25, 2024, 9:52 a.m. UTC
* 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>
---
 ...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

Comments

Khem Raj Sept. 25, 2024, 3:11 p.m. UTC | #1
do we need this on master as well ?

On Wed, Sep 25, 2024 at 2:52 AM Yogesh Tyagi via
lists.openembedded.org <yogesh.tyagi=intel.com@lists.openembedded.org>
wrote:
>
> * 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>
> ---
>  ...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 <dmitri.n.mokhov@intel.com>
> +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 <dmitri.n.mokhov@intel.com>
> +---
> + .../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 (#112495): https://lists.openembedded.org/g/openembedded-devel/message/112495
> Mute This Topic: https://lists.openembedded.org/mt/108644971/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Tyagi, Yogesh Sept. 25, 2024, 3:13 p.m. UTC | #2
> -----Original Message-----
> From: Khem Raj <raj.khem@gmail.com>
> Sent: Wednesday, September 25, 2024 8:41 PM
> To: Tyagi, Yogesh <yogesh.tyagi@intel.com>
> Cc: openembedded-devel@lists.openembedded.org
> Subject: Re: [oe] [scarthgap][PATCH] tbb-native: Fix build with gcc-13
> 
> do we need this on master as well ?

tbb-native is building fine on master.

> 
> On Wed, Sep 25, 2024 at 2:52 AM Yogesh Tyagi via lists.openembedded.org
> <yogesh.tyagi=intel.com@lists.openembedded.org>
> wrote:
> >
> > * 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>
> > ---
> >  ...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-warnin
> > gs-1192.patch
> >
> > diff --git
> > a/meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warn
> > ings-1192.patch
> > b/meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warn
> > ings-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 <dmitri.n.mokhov@intel.com>
> > +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/e131071769ee3df51b56b053
> > +ba6bfa06ae9eff25]
> > +Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
> > +---
> > + .../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 (#112495):
> > https://lists.openembedded.org/g/openembedded-devel/message/112495
> > Mute This Topic: https://lists.openembedded.org/mt/108644971/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub
> > [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
Khem Raj Sept. 25, 2024, 3:16 p.m. UTC | #3
On Wed, Sep 25, 2024 at 8:13 AM Tyagi, Yogesh <yogesh.tyagi@intel.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Khem Raj <raj.khem@gmail.com>
> > Sent: Wednesday, September 25, 2024 8:41 PM
> > To: Tyagi, Yogesh <yogesh.tyagi@intel.com>
> > Cc: openembedded-devel@lists.openembedded.org
> > Subject: Re: [oe] [scarthgap][PATCH] tbb-native: Fix build with gcc-13
> >
> > do we need this on master as well ?
>
> tbb-native is building fine on master.

Thanks for confirming.

>
> >
> > On Wed, Sep 25, 2024 at 2:52 AM Yogesh Tyagi via lists.openembedded.org
> > <yogesh.tyagi=intel.com@lists.openembedded.org>
> > wrote:
> > >
> > > * 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>
> > > ---
> > >  ...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-warnin
> > > gs-1192.patch
> > >
> > > diff --git
> > > a/meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warn
> > > ings-1192.patch
> > > b/meta-oe/recipes-support/tbb/tbb/0001-Fix-suppress-new-GCC-12-13-warn
> > > ings-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 <dmitri.n.mokhov@intel.com>
> > > +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/e131071769ee3df51b56b053
> > > +ba6bfa06ae9eff25]
> > > +Signed-off-by: Dmitri Mokhov <dmitri.n.mokhov@intel.com>
> > > +---
> > > + .../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 (#112495):
> > > https://lists.openembedded.org/g/openembedded-devel/message/112495
> > > Mute This Topic: https://lists.openembedded.org/mt/108644971/1997914
> > > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub
> > > [raj.khem@gmail.com]
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > >
diff mbox series

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 <dmitri.n.mokhov@intel.com>
+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 <dmitri.n.mokhov@intel.com>
+---
+ .../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"