From: Stephen Hemminger <stephen@networkplumber.org>
To: "Morten Brørup" <mb@smartsharesystems.com>
Cc: dev@dpdk.org, Thomas Monjalon <thomas@monjalon.net>,
Konstantin Ananyev <konstantin.ananyev@huawei.com>,
Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>,
Bruce Richardson <bruce.richardson@intel.com>,
Ali Alnubani <alialnu@nvidia.com>
Subject: Re: [PATCH] stack: fix pile GCC memcpy warnings
Date: Tue, 20 Oct 2026 07:34:30 -0700 [thread overview]
Message-ID: <20261020073430.04ce3bb4@phoenix.local> (raw)
In-Reply-To: <20261020084944.3188987-1-mb@smartsharesystems.com>
On Tue, 20 Oct 2026 08:49:44 +0000
Morten Brørup <mb@smartsharesystems.com> wrote:
> On architectures where rte_memcpy() is defined as memcpy(),
> GCC warns about source/destination overflow when copying more than the
> source/destination size, even for code paths that are not taken in cases
> where the sizes are smaller.
>
> The relevant compiler warnings were disabled for GCC at the two
> occurrences, and comments describing the reason were added.
>
> NB:
> It has not been investigated which GCC versions are affected.
> GCC version 10 and up was chosen because that was what the previous
> versions of x86 rte_memcpy() disabled sligthly similar warnings for.
>
> PS:
> The alternative was to obfuscate the code, but that would make the code
> less readable, and might have unintended effects on architectures and
> compilers not suffering by this issue.
>
> Bugzilla ID: 2061
> Fixes: ee0822a0ef41 ("stack: introduce pile")
>
> The pile was introduce with this DPDK release, so no need to backport.
Rather than playing "what a bug with pragmas" a better solution is to disable
the warning globally if optimization is disabled.
From d79d5a1c4d7b7d43e31b26f5d5e218155f699ac0 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 20 Oct 2026 07:26:42 -0700
Subject: [PATCH] build: disable GCC string op warnings when unoptimized
Without optimization GCC's -Wstringop-overflow and -Wstringop-overread
are flow-insensitive: they check a memcpy() against the object size
even on paths that are dead for the inlined arguments. This breaks
debug builds of app/test with -Werror on lib/stack/rte_stack_pile.h,
and has required local pragma workarounds elsewhere.
Disable both warnings when optimization is 0. They stay enabled for
optimized builds, where the analysis is flow-sensitive.
Bugzilla ID: 2061
Reported-by: Ali Alnubani <alialnu@nvidia.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
config/meson.build | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/config/meson.build b/config/meson.build
index 745097e8aa..ac90b9d4fa 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -378,6 +378,12 @@ if cc.has_argument('-Wno-comma')
no_comma_cflag = '-Wno-comma'
endif
+# GCC's string/memory access warnings are flow-insensitive without
+# optimization and produce false positives on dead paths of inlined code.
+if get_option('optimization') == '0' and cc.get_id() == 'gcc'
+ global_cflags += ['-Wno-stringop-overflow', '-Wno-stringop-overread']
++endif
+
foreach arg: global_cflags
if cc.has_argument(arg)
add_project_arguments(arg, language: 'c')
--
2.53.0
next prev parent reply other threads:[~2026-10-20 14:34 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-20 8:49 [PATCH] stack: fix pile GCC memcpy warnings Morten Brørup
2026-10-20 9:18 ` Bruce Richardson
2026-10-20 9:59 ` Morten Brørup
2026-10-20 10:18 ` Ali Alnubani
2026-10-20 14:23 ` Stephen Hemminger
2026-10-20 15:16 ` Morten Brørup
2026-10-20 15:39 ` Morten Brørup
2026-10-20 14:34 ` Stephen Hemminger [this message]
2026-10-20 15:27 ` Morten Brørup
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261020073430.04ce3bb4@phoenix.local \
--to=stephen@networkplumber.org \
--cc=alialnu@nvidia.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=konstantin.ananyev@huawei.com \
--cc=mb@smartsharesystems.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.