From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dmarchan@redhat.com>
Received: from mail-vs1-f65.google.com (mail-vs1-f65.google.com
 [209.85.217.65]) by dpdk.org (Postfix) with ESMTP id ABD5A5F32
 for <dev@dpdk.org>; Thu,  2 May 2019 16:48:15 +0200 (CEST)
Received: by mail-vs1-f65.google.com with SMTP id o10so1509367vsp.12
 for <dev@dpdk.org>; Thu, 02 May 2019 07:48:15 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=ctN4eX4N8YGqEPL8BO1sMXdkKaNgXkoxZejpNRzcASQ=;
 b=ZWTKWSdp+oD1aomd1Btz4jqhtoMIwnrTiieftiHmPsj03sDSQ0e7anSOWHh0kYP8ok
 +Q5Cqb6xJLIutqpQAmT0J0+/e9FomvwgRQuCCm6YC48K6qU/dEycQjQa0ChQ7lXmuPIy
 c709/8yqltaijTO/0331r3VczocRhAw2GatMWIpydblhnqnbwxq27oS9vLWtEJxPsye6
 QquRIes598HIUac8a7H6MluG8i4X+eyJnT4zdgyECs7754TvsmWYfeudmMdS5HGNpeOK
 as52xXcqyPQS+PuaghnXaFIogi0GSUBUpCJj8ZeiVxD27K6tBAY3KcCQgRaARZ6+kk2r
 3STg==
X-Gm-Message-State: APjAAAX+1ewHl0bbQ5X4uPaT07Dbd8us9P0tLidmePy40056i4a1w2GW
 voZbtFCCvgrwT5VzKRbJqBivaI4Qc/wesOu4AC9/EQ==
X-Google-Smtp-Source: APXvYqwto4tRheNM0wOFw6jmi9gEbzv96M3j8jWEM8S5RrP9WTaUyrqpwbGp/fGDJi6d4mKJxspyMcExI/kHuZuvcn0=
X-Received: by 2002:a67:a446:: with SMTP id p6mr2374805vsh.198.1556808494998; 
 Thu, 02 May 2019 07:48:14 -0700 (PDT)
MIME-Version: 1.0
References: <20190502093334.7546-1-reshma.pattan@intel.com>
 <20190502141316.25907-1-reshma.pattan@intel.com>
 <CAJFAV8xoYMUWDCEqKHAggPixF4XAQQ8Xwca7wNMnT-xVAw433A@mail.gmail.com>
 <20190502144159.GA316@bricha3-MOBL.ger.corp.intel.com>
In-Reply-To: <20190502144159.GA316@bricha3-MOBL.ger.corp.intel.com>
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 2 May 2019 16:48:03 +0200
Message-ID: <CAJFAV8xA5nhfC_Zt_USKhE1sXRFbytmDR2rVt+vzDy+k5Wi+wQ@mail.gmail.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Reshma Pattan <reshma.pattan@intel.com>, dev <dev@dpdk.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Subject: Re: [dpdk-dev] [PATCH v2] mk: report address of packed member as
	warning
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Thu, 02 May 2019 14:48:15 -0000

On Thu, May 2, 2019 at 4:42 PM Bruce Richardson <bruce.richardson@intel.com=
>
wrote:

> 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
> >      =E2=80=98alloc_seg_walk=E2=80=99:
> >      ...lib/librte_eal/linux/eal/eal_memalloc.c:768:12: error: taking
> >      address
> >      of packed member of =E2=80=98struct rte_mem_config=E2=80=99 may re=
sult in an
> >      unaligned
> >      pointer value [-Werror=3Daddress-of-packed-member]
> >        768 |  cur_msl =3D &mcfg->memsegs[msl_idx];
> >            |            ^~~~~~~~~~~~~~~~~~~~~~~
> >      Snippet of build after fix
> >      ..lib/librte_eal/linux/eal/eal_memory.c: In function
> >      =E2=80=98remap_segment=E2=80=99:
> >      ..lib/librte_eal/linux/eal/eal_memory.c:685:9: warning: taking
> >      address
> >      of packed member of =E2=80=98struct rte_mem_config=E2=80=99 may re=
sult in an
> >      unaligned
> >      pointer value [-Waddress-of-packed-member]
> >        685 |   msl =3D &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 +=3D -Wimplicit-fallthrough=3D2
> >       WERROR_FLAGS +=3D -Wno-format-truncation
> >       endif
> >      +#Report "taking address of packed member may result
> >      +#in an unaligned pointer value" issues as warnings.
> >      +WERROR_FLAGS +=3D -Wno-error=3Daddress-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 thos=
e
> >    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 +=3D
> >    -Wno-address-of-packed-member
> >    It should be something like (untested):
> >    @@ -87,5 +87,10 @@ WERROR_FLAGS +=3D -Wimplicit-fallthrough=3D2
> >     WERROR_FLAGS +=3D -Wno-format-truncation
> >     endif
> >
> >    +# disable packed member unalign warnings
> >    +ifeq ($(shell test $(GCC_VERSION) -ge 90 && echo 1), 1)
> >    +WERROR_FLAGS +=3D -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 recognis=
e,
> 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]
>

WERROR_FLAGS +=3D -Wno-error=3Daddress-of-packed-member triggers an error.

[dmarchan@dmarchan dpdk]$ make EXTRA_CFLAGS=3D"-g -O0" O=3Dmaster
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
=3D=3D Build lib
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
=3D=3D Build lib/librte_kvargs
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
  CC rte_kvargs.o
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
make[3]: *** [rte_kvargs.o] Error 1
make[2]: *** [librte_kvargs] Error 2
make[1]: *** [lib] Error 2
make: *** [all] Error 2


WERROR_FLAGS +=3D -Wno-address-of-packed-member is ignored.

Marvellous :-)
Sorry for the noise, let's go with your initial patch.

--=20
David Marchand

From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 43268A0AC5
	for <public@inbox.dpdk.org>; Thu,  2 May 2019 16:48:17 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 4CD656C9B;
	Thu,  2 May 2019 16:48:16 +0200 (CEST)
Received: from mail-vs1-f65.google.com (mail-vs1-f65.google.com
 [209.85.217.65]) by dpdk.org (Postfix) with ESMTP id ABD5A5F32
 for <dev@dpdk.org>; Thu,  2 May 2019 16:48:15 +0200 (CEST)
Received: by mail-vs1-f65.google.com with SMTP id o10so1509367vsp.12
 for <dev@dpdk.org>; Thu, 02 May 2019 07:48:15 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=ctN4eX4N8YGqEPL8BO1sMXdkKaNgXkoxZejpNRzcASQ=;
 b=ZWTKWSdp+oD1aomd1Btz4jqhtoMIwnrTiieftiHmPsj03sDSQ0e7anSOWHh0kYP8ok
 +Q5Cqb6xJLIutqpQAmT0J0+/e9FomvwgRQuCCm6YC48K6qU/dEycQjQa0ChQ7lXmuPIy
 c709/8yqltaijTO/0331r3VczocRhAw2GatMWIpydblhnqnbwxq27oS9vLWtEJxPsye6
 QquRIes598HIUac8a7H6MluG8i4X+eyJnT4zdgyECs7754TvsmWYfeudmMdS5HGNpeOK
 as52xXcqyPQS+PuaghnXaFIogi0GSUBUpCJj8ZeiVxD27K6tBAY3KcCQgRaARZ6+kk2r
 3STg==
X-Gm-Message-State: APjAAAX+1ewHl0bbQ5X4uPaT07Dbd8us9P0tLidmePy40056i4a1w2GW
 voZbtFCCvgrwT5VzKRbJqBivaI4Qc/wesOu4AC9/EQ==
X-Google-Smtp-Source: APXvYqwto4tRheNM0wOFw6jmi9gEbzv96M3j8jWEM8S5RrP9WTaUyrqpwbGp/fGDJi6d4mKJxspyMcExI/kHuZuvcn0=
X-Received: by 2002:a67:a446:: with SMTP id p6mr2374805vsh.198.1556808494998; 
 Thu, 02 May 2019 07:48:14 -0700 (PDT)
MIME-Version: 1.0
References: <20190502093334.7546-1-reshma.pattan@intel.com>
 <20190502141316.25907-1-reshma.pattan@intel.com>
 <CAJFAV8xoYMUWDCEqKHAggPixF4XAQQ8Xwca7wNMnT-xVAw433A@mail.gmail.com>
 <20190502144159.GA316@bricha3-MOBL.ger.corp.intel.com>
In-Reply-To: <20190502144159.GA316@bricha3-MOBL.ger.corp.intel.com>
From: David Marchand <david.marchand@redhat.com>
Date: Thu, 2 May 2019 16:48:03 +0200
Message-ID:
 <CAJFAV8xA5nhfC_Zt_USKhE1sXRFbytmDR2rVt+vzDy+k5Wi+wQ@mail.gmail.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: Reshma Pattan <reshma.pattan@intel.com>, dev <dev@dpdk.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Subject: Re: [dpdk-dev] [PATCH v2] mk: report address of packed member as
	warning
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190502144803.w2kKHNuaCCfJ3mMSQxPL1AqM9_9UOTn535R8VqOsiO0@z>

On Thu, May 2, 2019 at 4:42 PM Bruce Richardson <bruce.richardson@intel.com=
>
wrote:

> 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
> >      =E2=80=98alloc_seg_walk=E2=80=99:
> >      ...lib/librte_eal/linux/eal/eal_memalloc.c:768:12: error: taking
> >      address
> >      of packed member of =E2=80=98struct rte_mem_config=E2=80=99 may re=
sult in an
> >      unaligned
> >      pointer value [-Werror=3Daddress-of-packed-member]
> >        768 |  cur_msl =3D &mcfg->memsegs[msl_idx];
> >            |            ^~~~~~~~~~~~~~~~~~~~~~~
> >      Snippet of build after fix
> >      ..lib/librte_eal/linux/eal/eal_memory.c: In function
> >      =E2=80=98remap_segment=E2=80=99:
> >      ..lib/librte_eal/linux/eal/eal_memory.c:685:9: warning: taking
> >      address
> >      of packed member of =E2=80=98struct rte_mem_config=E2=80=99 may re=
sult in an
> >      unaligned
> >      pointer value [-Waddress-of-packed-member]
> >        685 |   msl =3D &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 +=3D -Wimplicit-fallthrough=3D2
> >       WERROR_FLAGS +=3D -Wno-format-truncation
> >       endif
> >      +#Report "taking address of packed member may result
> >      +#in an unaligned pointer value" issues as warnings.
> >      +WERROR_FLAGS +=3D -Wno-error=3Daddress-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 thos=
e
> >    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 +=3D
> >    -Wno-address-of-packed-member
> >    It should be something like (untested):
> >    @@ -87,5 +87,10 @@ WERROR_FLAGS +=3D -Wimplicit-fallthrough=3D2
> >     WERROR_FLAGS +=3D -Wno-format-truncation
> >     endif
> >
> >    +# disable packed member unalign warnings
> >    +ifeq ($(shell test $(GCC_VERSION) -ge 90 && echo 1), 1)
> >    +WERROR_FLAGS +=3D -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 recognis=
e,
> 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]
>

WERROR_FLAGS +=3D -Wno-error=3Daddress-of-packed-member triggers an error.

[dmarchan@dmarchan dpdk]$ make EXTRA_CFLAGS=3D"-g -O0" O=3Dmaster
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
=3D=3D Build lib
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
=3D=3D Build lib/librte_kvargs
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
  CC rte_kvargs.o
cc1: error: -Werror=3Daddress-of-packed-member: no option
-Waddress-of-packed-member
make[3]: *** [rte_kvargs.o] Error 1
make[2]: *** [librte_kvargs] Error 2
make[1]: *** [lib] Error 2
make: *** [all] Error 2


WERROR_FLAGS +=3D -Wno-address-of-packed-member is ignored.

Marvellous :-)
Sorry for the noise, let's go with your initial patch.

--=20
David Marchand