DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: Reshma Pattan <reshma.pattan@intel.com>, dev <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v2] mk: report address of packed member as warning
Date: Thu, 2 May 2019 15:41:59 +0100	[thread overview]
Message-ID: <20190502144159.GA316@bricha3-MOBL.ger.corp.intel.com> (raw)
Message-ID: <20190502144159.GrqSx487gZbff51FfpBY1U1BjadbMVlFFqTh4ZCv3WI@z> (raw)
In-Reply-To: <CAJFAV8xoYMUWDCEqKHAggPixF4XAQQ8Xwca7wNMnT-xVAw433A@mail.gmail.com>

On Thu, May 02, 2019 at 04:24:37PM +0200, David Marchand wrote:
>    On Thu, May 2, 2019 at 4:13 PM Reshma Pattan
>    <[1]reshma.pattan@intel.com> wrote:
> 
>      gcc 9 on Fedora 30 gives an error
>      "taking address of packed member may result in an
>      unaligned pointer value" for -Waddress-of-packed-member.
>      Report it as warning instead of error to fix the build.
>      Snippet of build before fix
>      ...lib/librte_eal/linux/eal/eal_memalloc.c: In function
>      ‘alloc_seg_walk’:
>      ...lib/librte_eal/linux/eal/eal_memalloc.c:768:12: error: taking
>      address
>      of packed member of ‘struct rte_mem_config’ may result in an
>      unaligned
>      pointer value [-Werror=address-of-packed-member]
>        768 |  cur_msl = &mcfg->memsegs[msl_idx];
>            |            ^~~~~~~~~~~~~~~~~~~~~~~
>      Snippet of build after fix
>      ..lib/librte_eal/linux/eal/eal_memory.c: In function
>      ‘remap_segment’:
>      ..lib/librte_eal/linux/eal/eal_memory.c:685:9: warning: taking
>      address
>      of packed member of ‘struct rte_mem_config’ may result in an
>      unaligned
>      pointer value [-Waddress-of-packed-member]
>        685 |   msl = &mcfg->memsegs[msl_idx];
>      Signed-off-by: Reshma Pattan <[2]reshma.pattan@intel.com>
>      ---
>       mk/toolchain/gcc/[3]rte.vars.mk | 4 ++++
>       1 file changed, 4 insertions(+)
>      diff --git a/mk/toolchain/gcc/[4]rte.vars.mk
>      b/mk/toolchain/gcc/[5]rte.vars.mk
>      index d8b99faf6..61032bbbc 100644
>      --- a/mk/toolchain/gcc/[6]rte.vars.mk
>      +++ b/mk/toolchain/gcc/[7]rte.vars.mk
>      @@ -87,5 +87,9 @@ WERROR_FLAGS += -Wimplicit-fallthrough=2
>       WERROR_FLAGS += -Wno-format-truncation
>       endif
>      +#Report "taking address of packed member may result
>      +#in an unaligned pointer value" issues as warnings.
>      +WERROR_FLAGS += -Wno-error=address-of-packed-member
>      +
>       export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
>       export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
>      --
>      2.21.0
> 
>    No, you can't do this unconditionally.
>    Looked at clang (in make build system) and meson (globally) and those
>    completely disable the warning.
>    $ git grep address-of-packed-member origin/master --
>    origin/master:config/meson.build:       '-Wno-address-of-packed-member'
>    origin/master:mk/toolchain/clang/rte.vars.mk:WERROR_FLAGS +=
>    -Wno-address-of-packed-member
>    It should be something like (untested):
>    @@ -87,5 +87,10 @@ WERROR_FLAGS += -Wimplicit-fallthrough=2
>     WERROR_FLAGS += -Wno-format-truncation
>     endif
> 
>    +# disable packed member unalign warnings
>    +ifeq ($(shell test $(GCC_VERSION) -ge 90 && echo 1), 1)
>    +WERROR_FLAGS += -Wno-address-of-packed-member
>    +endif
>    +
Actually, you should not need to check the GCC version for this.
GCC always ignores silently any warning disable flags it doesn't recognise,
only printing information about them if there is another error to report.
[This is why meson, when you ask it if the compiler supports "-Wno-foo", will
check the flag and also the -Wfoo flag, as gcc won't report an error with
just the "no" form]

/Bruce

  parent reply	other threads:[~2019-05-02 14:42 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-02  9:33 [dpdk-dev] [PATCH] mk: disable warning with gcc 9 on Fedora 30 Reshma Pattan
2019-05-02  9:33 ` Reshma Pattan
2019-05-02 10:07 ` David Marchand
2019-05-02 10:07   ` David Marchand
2019-05-02 13:26   ` Bruce Richardson
2019-05-02 13:26     ` Bruce Richardson
2019-05-02 13:30     ` David Marchand
2019-05-02 13:30       ` David Marchand
2019-05-02 13:35       ` Pattan, Reshma
2019-05-02 13:35         ` Pattan, Reshma
2019-05-02 14:13 ` [dpdk-dev] [PATCH v2] mk: report address of packed member as warning Reshma Pattan
2019-05-02 14:13   ` Reshma Pattan
2019-05-02 14:24   ` David Marchand
2019-05-02 14:24     ` David Marchand
2019-05-02 14:41     ` Bruce Richardson [this message]
2019-05-02 14:41       ` Bruce Richardson
2019-05-02 14:48       ` David Marchand
2019-05-02 14:48         ` David Marchand
2019-05-02 15:53   ` Burakov, Anatoly
2019-05-02 15:53     ` Burakov, Anatoly
2019-05-02 18:54     ` Stephen Hemminger
2019-05-02 18:54       ` Stephen Hemminger
2019-05-03  7:56       ` Burakov, Anatoly
2019-05-03  7:56         ` Burakov, Anatoly
2019-05-02 15:00 ` [dpdk-dev] [PATCH] mk: disable warning with gcc 9 on Fedora 30 David Marchand
2019-05-02 15:00   ` David Marchand
2019-05-02 15:56   ` Thomas Monjalon
2019-05-02 15:56     ` Thomas Monjalon
2019-05-03 16:01     ` Jerin Jacob Kollanukkaran
2019-05-03 16:01       ` Jerin Jacob Kollanukkaran
2019-05-03 16:25       ` Bruce Richardson
2019-05-03 16:25         ` Bruce Richardson
2019-05-03 16:28         ` Richardson, Bruce
2019-05-03 16:28           ` Richardson, Bruce
2019-05-03 17:24         ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-05-03 17:24           ` Jerin Jacob Kollanukkaran

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=20190502144159.GA316@bricha3-MOBL.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=reshma.pattan@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).