[1/2] mk: fix unsupported flag error on armhf architercture
diff mbox series

Message ID 1573468461-25972-1-git-send-email-phil.yang@arm.com
State Rejected, archived
Delegated to: Thomas Monjalon
Headers show
Series
  • [1/2] mk: fix unsupported flag error on armhf architercture
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-compilation success Compile Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

Phil Yang (Arm Technology China) Nov. 11, 2019, 10:34 a.m. UTC
The older version (e.g. version 7.4.0 ) of GNU C compiler for the armhf
architecture doesn't support the flag '-Wno-address-of-packed-member',
so remove this flag for aarch32.

Fixes: a385972c3675 ("mk: disable warning for packed member pointer")
Cc: stable@dpdk.org

Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Tested-by: Joyce Kong <joyce.kong@arm.com>

---
 mk/toolchain/gcc/rte.vars.mk | 2 ++
 1 file changed, 2 insertions(+)

Comments

Bruce Richardson Nov. 11, 2019, 10:47 a.m. UTC | #1
On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> The older version (e.g. version 7.4.0 ) of GNU C compiler for the armhf
> architecture doesn't support the flag '-Wno-address-of-packed-member',
> so remove this flag for aarch32.
> 
> Fixes: a385972c3675 ("mk: disable warning for packed member pointer")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Phil Yang <phil.yang@arm.com>
> Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> Tested-by: Joyce Kong <joyce.kong@arm.com>
> 
> ---
>  mk/toolchain/gcc/rte.vars.mk | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
> index 9fc7041..ec0cbbf 100644
> --- a/mk/toolchain/gcc/rte.vars.mk
> +++ b/mk/toolchain/gcc/rte.vars.mk
> @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-truncation
>  endif
>  
>  # disable packed member unalign warnings
> +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
>  WERROR_FLAGS += -Wno-address-of-packed-member
> +endif
>  
You don't need to do this, as gcc will not complain about this unknown flag
unless you have other issues in your code.[1] I think it's better to keep the
code clean in this case, otherwise we'll have the code littered with
conditionals for various flags.

/Bruce

[1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
"When an unrecognized warning option is requested (e.g.,
-Wunknown-warning), GCC emits a diagnostic stating that the option is not
recognized. However, if the -Wno- form is used, the behavior is slightly
different: no diagnostic is produced for -Wno-unknown-warning unless other
diagnostics are being produced. This allows the use of new -Wno- options
with old compilers, but if something goes wrong, the compiler warns that an
unrecognized option is present."
Phil Yang (Arm Technology China) Nov. 12, 2019, 5:25 a.m. UTC | #2
> -----Original Message-----
> From: Bruce Richardson <bruce.richardson@intel.com>
> Sent: Monday, November 11, 2019 6:47 PM
> To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> Cc: dev@dpdk.org; thomas@monjalon.net; david.marchand@redhat.com;
> jerinj@marvell.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on armhf
> architercture
> 
> On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > The older version (e.g. version 7.4.0 ) of GNU C compiler for the armhf
> > architecture doesn't support the flag '-Wno-address-of-packed-member',
> > so remove this flag for aarch32.
> >
> > Fixes: a385972c3675 ("mk: disable warning for packed member pointer")
> > Cc: stable@dpdk.org
> >
> > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > Tested-by: Joyce Kong <joyce.kong@arm.com>
> >
> > ---
> >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
> > index 9fc7041..ec0cbbf 100644
> > --- a/mk/toolchain/gcc/rte.vars.mk
> > +++ b/mk/toolchain/gcc/rte.vars.mk
> > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-truncation
> >  endif
> >
> >  # disable packed member unalign warnings
> > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> >  WERROR_FLAGS += -Wno-address-of-packed-member
> > +endif
> >
> You don't need to do this, as gcc will not complain about this unknown flag
> unless you have other issues in your code.[1] I think it's better to keep the
> code clean in this case, otherwise we'll have the code littered with
> conditionals for various flags.
> 
> /Bruce
> 
> [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> "When an unrecognized warning option is requested (e.g.,
> -Wunknown-warning), GCC emits a diagnostic stating that the option is not
> recognized. However, if the -Wno- form is used, the behavior is slightly
> different: no diagnostic is produced for -Wno-unknown-warning unless other
> diagnostics are being produced. This allows the use of new -Wno- options
> with old compilers, but if something goes wrong, the compiler warns that an
> unrecognized option is present."

Thanks, Bruce. 

There are thousands of warnings with alignment when compiling for ARMv7 (ARMv7 supports unaligned memory access).
Without this new flag, the build system works fine for ARMv7.  So I add this conditional for ARMv7 only.
I agree with you we should clean up the code, but it needs a lot of effort to achieve that. 
This patch is going to make the ARMv7 target build successfully during this period.

Thanks,
Phil
Thomas Monjalon Nov. 12, 2019, 6:03 a.m. UTC | #3
12/11/2019 06:25, Phil Yang (Arm Technology China):
> From: Bruce Richardson <bruce.richardson@intel.com>
> > On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > > The older version (e.g. version 7.4.0 ) of GNU C compiler for the armhf
> > > architecture doesn't support the flag '-Wno-address-of-packed-member',
> > > so remove this flag for aarch32.
> > >
> > > Fixes: a385972c3675 ("mk: disable warning for packed member pointer")
> > > Cc: stable@dpdk.org
> > >
> > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > > Tested-by: Joyce Kong <joyce.kong@arm.com>
> > >
> > > ---
> > >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> > >  1 file changed, 2 insertions(+)
> > >
> > > diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
> > > index 9fc7041..ec0cbbf 100644
> > > --- a/mk/toolchain/gcc/rte.vars.mk
> > > +++ b/mk/toolchain/gcc/rte.vars.mk
> > > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-truncation
> > >  endif
> > >
> > >  # disable packed member unalign warnings
> > > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> > >  WERROR_FLAGS += -Wno-address-of-packed-member
> > > +endif
> > >
> > You don't need to do this, as gcc will not complain about this unknown flag
> > unless you have other issues in your code.[1] I think it's better to keep the
> > code clean in this case, otherwise we'll have the code littered with
> > conditionals for various flags.
> > 
> > /Bruce
> > 
> > [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> > "When an unrecognized warning option is requested (e.g.,
> > -Wunknown-warning), GCC emits a diagnostic stating that the option is not
> > recognized. However, if the -Wno- form is used, the behavior is slightly
> > different: no diagnostic is produced for -Wno-unknown-warning unless other
> > diagnostics are being produced. This allows the use of new -Wno- options
> > with old compilers, but if something goes wrong, the compiler warns that an
> > unrecognized option is present."
> 
> Thanks, Bruce. 
> 
> There are thousands of warnings with alignment when compiling for ARMv7 (ARMv7 supports unaligned memory access).
> Without this new flag, the build system works fine for ARMv7.  So I add this conditional for ARMv7 only.
> I agree with you we should clean up the code, but it needs a lot of effort to achieve that. 
> This patch is going to make the ARMv7 target build successfully during this period.

I would go the opposite direction.
I think we should remove all warnings disablement like "-Wno-something",
and clean the code.

If you want to allow building ARMv7, you can just allow warnings as not errors.
So we will still see something is wrong but it won't prevent from building.
Phil Yang (Arm Technology China) Nov. 12, 2019, 6:40 a.m. UTC | #4
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Tuesday, November 12, 2019 2:03 PM
> To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> Cc: Bruce Richardson <bruce.richardson@intel.com>; dev@dpdk.org;
> david.marchand@redhat.com; jerinj@marvell.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on armhf
> architercture
> 
> 12/11/2019 06:25, Phil Yang (Arm Technology China):
> > From: Bruce Richardson <bruce.richardson@intel.com>
> > > On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > > > The older version (e.g. version 7.4.0 ) of GNU C compiler for the armhf
> > > > architecture doesn't support the flag '-Wno-address-of-packed-
> member',
> > > > so remove this flag for aarch32.
> > > >
> > > > Fixes: a385972c3675 ("mk: disable warning for packed member pointer")
> > > > Cc: stable@dpdk.org
> > > >
> > > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > > > Tested-by: Joyce Kong <joyce.kong@arm.com>
> > > >
> > > > ---
> > > >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> > > >  1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/mk/toolchain/gcc/rte.vars.mk
> b/mk/toolchain/gcc/rte.vars.mk
> > > > index 9fc7041..ec0cbbf 100644
> > > > --- a/mk/toolchain/gcc/rte.vars.mk
> > > > +++ b/mk/toolchain/gcc/rte.vars.mk
> > > > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-truncation
> > > >  endif
> > > >
> > > >  # disable packed member unalign warnings
> > > > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> > > >  WERROR_FLAGS += -Wno-address-of-packed-member
> > > > +endif
> > > >
> > > You don't need to do this, as gcc will not complain about this unknown
> flag
> > > unless you have other issues in your code.[1] I think it's better to keep
> the
> > > code clean in this case, otherwise we'll have the code littered with
> > > conditionals for various flags.
> > >
> > > /Bruce
> > >
> > > [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> > > "When an unrecognized warning option is requested (e.g.,
> > > -Wunknown-warning), GCC emits a diagnostic stating that the option is
> not
> > > recognized. However, if the -Wno- form is used, the behavior is slightly
> > > different: no diagnostic is produced for -Wno-unknown-warning unless
> other
> > > diagnostics are being produced. This allows the use of new -Wno- options
> > > with old compilers, but if something goes wrong, the compiler warns that
> an
> > > unrecognized option is present."
> >
> > Thanks, Bruce.
> >
> > There are thousands of warnings with alignment when compiling for
> ARMv7 (ARMv7 supports unaligned memory access).
> > Without this new flag, the build system works fine for ARMv7.  So I add this
> conditional for ARMv7 only.
> > I agree with you we should clean up the code, but it needs a lot of effort to
> achieve that.
> > This patch is going to make the ARMv7 target build successfully during this
> period.
> 
> I would go the opposite direction.
> I think we should remove all warnings disablement like "-Wno-something",
> and clean the code.

Thanks, Thomas.

I think it is a compiler issue rather than a code defect in this case, as It cannot recognize the '-Waddress-of-packed-member' flag. 
"arm-linux-gnueabihf-gcc: error: unrecognized command line option '-Waddress-of-packed-member'"

> 
> If you want to allow building ARMv7, you can just allow warnings as not
> errors.
> So we will still see something is wrong but it won't prevent from building.

Yes. We did this already, all the alignment issues are emitted as warnings on ARMv7. 
Please see these two commits:
79fa5c2a9992 ("mk: ignore alignment errors for ARMv7")
6433c19105e8 ("mk: generalize strict alignment warning handling")

> 
>
Thomas Monjalon Nov. 26, 2019, 5:01 p.m. UTC | #5
12/11/2019 07:40, Phil Yang (Arm Technology China):
> > -----Original Message-----
> > From: Thomas Monjalon <thomas@monjalon.net>
> > Sent: Tuesday, November 12, 2019 2:03 PM
> > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > Cc: Bruce Richardson <bruce.richardson@intel.com>; dev@dpdk.org;
> > david.marchand@redhat.com; jerinj@marvell.com; Honnappa Nagarahalli
> > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on armhf
> > architercture
> > 
> > 12/11/2019 06:25, Phil Yang (Arm Technology China):
> > > From: Bruce Richardson <bruce.richardson@intel.com>
> > > > On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > > > > The older version (e.g. version 7.4.0 ) of GNU C compiler for the armhf
> > > > > architecture doesn't support the flag '-Wno-address-of-packed-
> > member',
> > > > > so remove this flag for aarch32.
> > > > >
> > > > > Fixes: a385972c3675 ("mk: disable warning for packed member pointer")
> > > > > Cc: stable@dpdk.org
> > > > >
> > > > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > > > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > > > > Tested-by: Joyce Kong <joyce.kong@arm.com>
> > > > >
> > > > > ---
> > > > >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> > > > >  1 file changed, 2 insertions(+)
> > > > >
> > > > > diff --git a/mk/toolchain/gcc/rte.vars.mk
> > b/mk/toolchain/gcc/rte.vars.mk
> > > > > index 9fc7041..ec0cbbf 100644
> > > > > --- a/mk/toolchain/gcc/rte.vars.mk
> > > > > +++ b/mk/toolchain/gcc/rte.vars.mk
> > > > > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-truncation
> > > > >  endif
> > > > >
> > > > >  # disable packed member unalign warnings
> > > > > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> > > > >  WERROR_FLAGS += -Wno-address-of-packed-member
> > > > > +endif
> > > > >
> > > > You don't need to do this, as gcc will not complain about this unknown
> > flag
> > > > unless you have other issues in your code.[1] I think it's better to keep
> > the
> > > > code clean in this case, otherwise we'll have the code littered with
> > > > conditionals for various flags.
> > > >
> > > > /Bruce
> > > >
> > > > [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> > > > "When an unrecognized warning option is requested (e.g.,
> > > > -Wunknown-warning), GCC emits a diagnostic stating that the option is
> > not
> > > > recognized. However, if the -Wno- form is used, the behavior is slightly
> > > > different: no diagnostic is produced for -Wno-unknown-warning unless
> > other
> > > > diagnostics are being produced. This allows the use of new -Wno- options
> > > > with old compilers, but if something goes wrong, the compiler warns that
> > an
> > > > unrecognized option is present."
> > >
> > > Thanks, Bruce.
> > >
> > > There are thousands of warnings with alignment when compiling for
> > ARMv7 (ARMv7 supports unaligned memory access).
> > > Without this new flag, the build system works fine for ARMv7.  So I add this
> > conditional for ARMv7 only.
> > > I agree with you we should clean up the code, but it needs a lot of effort to
> > achieve that.
> > > This patch is going to make the ARMv7 target build successfully during this
> > period.
> > 
> > I would go the opposite direction.
> > I think we should remove all warnings disablement like "-Wno-something",
> > and clean the code.
> 
> Thanks, Thomas.
> 
> I think it is a compiler issue rather than a code defect in this case, as It cannot recognize the '-Waddress-of-packed-member' flag. 
> "arm-linux-gnueabihf-gcc: error: unrecognized command line option '-Waddress-of-packed-member'"
> 
> > 
> > If you want to allow building ARMv7, you can just allow warnings as not
> > errors.
> > So we will still see something is wrong but it won't prevent from building.
> 
> Yes. We did this already, all the alignment issues are emitted as warnings on ARMv7. 
> Please see these two commits:
> 79fa5c2a9992 ("mk: ignore alignment errors for ARMv7")
> 6433c19105e8 ("mk: generalize strict alignment warning handling")

I don't know what to do with this patch.
I think it is not how it should work,
but you say your compiler has a real bug.

Can you confirm which compiler is it?
Does it prevent to compile even with -Wno-error ?

Any other opinion?
Phil Yang (Arm Technology China) Nov. 27, 2019, 8:09 a.m. UTC | #6
> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Wednesday, November 27, 2019 1:02 AM
> To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> Cc: dev@dpdk.org; Bruce Richardson <bruce.richardson@intel.com>;
> david.marchand@redhat.com; jerinj@marvell.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on armhf
> architercture
> 
> 12/11/2019 07:40, Phil Yang (Arm Technology China):
> > > -----Original Message-----
> > > From: Thomas Monjalon <thomas@monjalon.net>
> > > Sent: Tuesday, November 12, 2019 2:03 PM
> > > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > > Cc: Bruce Richardson <bruce.richardson@intel.com>; dev@dpdk.org;
> > > david.marchand@redhat.com; jerinj@marvell.com; Honnappa
> Nagarahalli
> > > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on
> armhf
> > > architercture
> > >
> > > 12/11/2019 06:25, Phil Yang (Arm Technology China):
> > > > From: Bruce Richardson <bruce.richardson@intel.com>
> > > > > On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > > > > > The older version (e.g. version 7.4.0 ) of GNU C compiler for the
> armhf
> > > > > > architecture doesn't support the flag '-Wno-address-of-packed-
> > > member',
> > > > > > so remove this flag for aarch32.
> > > > > >
> > > > > > Fixes: a385972c3675 ("mk: disable warning for packed member
> pointer")
> > > > > > Cc: stable@dpdk.org
> > > > > >
> > > > > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > > > > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > > > > > Tested-by: Joyce Kong <joyce.kong@arm.com>
> > > > > >
> > > > > > ---
> > > > > >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> > > > > >  1 file changed, 2 insertions(+)
> > > > > >
> > > > > > diff --git a/mk/toolchain/gcc/rte.vars.mk
> > > b/mk/toolchain/gcc/rte.vars.mk
> > > > > > index 9fc7041..ec0cbbf 100644
> > > > > > --- a/mk/toolchain/gcc/rte.vars.mk
> > > > > > +++ b/mk/toolchain/gcc/rte.vars.mk
> > > > > > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-truncation
> > > > > >  endif
> > > > > >
> > > > > >  # disable packed member unalign warnings
> > > > > > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> > > > > >  WERROR_FLAGS += -Wno-address-of-packed-member
> > > > > > +endif
> > > > > >
> > > > > You don't need to do this, as gcc will not complain about this unknown
> > > flag
> > > > > unless you have other issues in your code.[1] I think it's better to
> keep
> > > the
> > > > > code clean in this case, otherwise we'll have the code littered with
> > > > > conditionals for various flags.
> > > > >
> > > > > /Bruce
> > > > >
> > > > > [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> > > > > "When an unrecognized warning option is requested (e.g.,
> > > > > -Wunknown-warning), GCC emits a diagnostic stating that the option
> is
> > > not
> > > > > recognized. However, if the -Wno- form is used, the behavior is
> slightly
> > > > > different: no diagnostic is produced for -Wno-unknown-warning
> unless
> > > other
> > > > > diagnostics are being produced. This allows the use of new -Wno-
> options
> > > > > with old compilers, but if something goes wrong, the compiler warns
> that
> > > an
> > > > > unrecognized option is present."
> > > >
> > > > Thanks, Bruce.
> > > >
> > > > There are thousands of warnings with alignment when compiling for
> > > ARMv7 (ARMv7 supports unaligned memory access).
> > > > Without this new flag, the build system works fine for ARMv7.  So I add
> this
> > > conditional for ARMv7 only.
> > > > I agree with you we should clean up the code, but it needs a lot of
> effort to
> > > achieve that.
> > > > This patch is going to make the ARMv7 target build successfully during
> this
> > > period.
> > >
> > > I would go the opposite direction.
> > > I think we should remove all warnings disablement like "-Wno-
> something",
> > > and clean the code.
> >
> > Thanks, Thomas.
> >
> > I think it is a compiler issue rather than a code defect in this case, as It
> cannot recognize the '-Waddress-of-packed-member' flag.
> > "arm-linux-gnueabihf-gcc: error: unrecognized command line option '-
> Waddress-of-packed-member'"
> >
> > >
> > > If you want to allow building ARMv7, you can just allow warnings as not
> > > errors.
> > > So we will still see something is wrong but it won't prevent from building.
> >
> > Yes. We did this already, all the alignment issues are emitted as warnings
> on ARMv7.
> > Please see these two commits:
> > 79fa5c2a9992 ("mk: ignore alignment errors for ARMv7")
> > 6433c19105e8 ("mk: generalize strict alignment warning handling")
> 
> I don't know what to do with this patch.
> I think it is not how it should work,
> but you say your compiler has a real bug.
Agree with you, however I haven't found a better solution for this issue yet.

> 
> Can you confirm which compiler is it?

Please check the packet information dumped below, it is the latest version in Ubuntu 18.04 LTS.
$ sudo apt show gcc-arm-linux-gnueabihf
Package: gcc-arm-linux-gnueabihf
Version: 4:7.4.0-1ubuntu2.3
Priority: optional
Section: devel
Source: gcc-defaults (1.176ubuntu2.3)
Origin: Ubuntu

> Does it prevent to compile even with -Wno-error ?
Yes, it does. I put one piece of the compiling log bellow. Please take a look.  

$ make -j1 CROSS=arm-linux-gnueabihf- T=arm-armv7a-linuxapp-gcc RTE_DEVEL_BUILD=y
...
/home/phil/aarch32_dpdk/dpdk/lib/librte_eal/linux/eal/eal_vfio.c:1178:7: warning: cast increases required alignment of target type [-Wcast-align]
   p = (struct vfio_mp_param *)mp_rep->param;
       ^
/home/phil/aarch32_dpdk/dpdk/lib/librte_eal/linux/eal/eal_vfio.c: At top level:
cc1: error: unrecognized command line option '-Wno-address-of-packed-member' [-Werror]
...

> 
> Any other opinion?
>
Bruce Richardson Nov. 27, 2019, 9:29 a.m. UTC | #7
On Wed, Nov 27, 2019 at 08:09:22AM +0000, Phil Yang (Arm Technology China) wrote:
> > -----Original Message-----
> > From: Thomas Monjalon <thomas@monjalon.net>
> > Sent: Wednesday, November 27, 2019 1:02 AM
> > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > Cc: dev@dpdk.org; Bruce Richardson <bruce.richardson@intel.com>;
> > david.marchand@redhat.com; jerinj@marvell.com; Honnappa Nagarahalli
> > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on armhf
> > architercture
> > 
> > 12/11/2019 07:40, Phil Yang (Arm Technology China):
> > > > -----Original Message-----
> > > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > Sent: Tuesday, November 12, 2019 2:03 PM
> > > > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > > > Cc: Bruce Richardson <bruce.richardson@intel.com>; dev@dpdk.org;
> > > > david.marchand@redhat.com; jerinj@marvell.com; Honnappa
> > Nagarahalli
> > > > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > > > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > > > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > > > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on
> > armhf
> > > > architercture
> > > >
> > > > 12/11/2019 06:25, Phil Yang (Arm Technology China):
> > > > > From: Bruce Richardson <bruce.richardson@intel.com>
> > > > > > On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > > > > > > The older version (e.g. version 7.4.0 ) of GNU C compiler for the
> > armhf
> > > > > > > architecture doesn't support the flag '-Wno-address-of-packed-
> > > > member',
> > > > > > > so remove this flag for aarch32.
> > > > > > >
> > > > > > > Fixes: a385972c3675 ("mk: disable warning for packed member
> > pointer")
> > > > > > > Cc: stable@dpdk.org
> > > > > > >
> > > > > > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > > > > > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > > > > > > Tested-by: Joyce Kong <joyce.kong@arm.com>
> > > > > > >
> > > > > > > ---
> > > > > > >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> > > > > > >  1 file changed, 2 insertions(+)
> > > > > > >
> > > > > > > diff --git a/mk/toolchain/gcc/rte.vars.mk
> > > > b/mk/toolchain/gcc/rte.vars.mk
> > > > > > > index 9fc7041..ec0cbbf 100644
> > > > > > > --- a/mk/toolchain/gcc/rte.vars.mk
> > > > > > > +++ b/mk/toolchain/gcc/rte.vars.mk
> > > > > > > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-truncation
> > > > > > >  endif
> > > > > > >
> > > > > > >  # disable packed member unalign warnings
> > > > > > > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> > > > > > >  WERROR_FLAGS += -Wno-address-of-packed-member
> > > > > > > +endif
> > > > > > >
> > > > > > You don't need to do this, as gcc will not complain about this unknown
> > > > flag
> > > > > > unless you have other issues in your code.[1] I think it's better to
> > keep
> > > > the
> > > > > > code clean in this case, otherwise we'll have the code littered with
> > > > > > conditionals for various flags.
> > > > > >
> > > > > > /Bruce
> > > > > >
> > > > > > [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> > > > > > "When an unrecognized warning option is requested (e.g.,
> > > > > > -Wunknown-warning), GCC emits a diagnostic stating that the option
> > is
> > > > not
> > > > > > recognized. However, if the -Wno- form is used, the behavior is
> > slightly
> > > > > > different: no diagnostic is produced for -Wno-unknown-warning
> > unless
> > > > other
> > > > > > diagnostics are being produced. This allows the use of new -Wno-
> > options
> > > > > > with old compilers, but if something goes wrong, the compiler warns
> > that
> > > > an
> > > > > > unrecognized option is present."
> > > > >
> > > > > Thanks, Bruce.
> > > > >
> > > > > There are thousands of warnings with alignment when compiling for
> > > > ARMv7 (ARMv7 supports unaligned memory access).
> > > > > Without this new flag, the build system works fine for ARMv7.  So I add
> > this
> > > > conditional for ARMv7 only.
> > > > > I agree with you we should clean up the code, but it needs a lot of
> > effort to
> > > > achieve that.
> > > > > This patch is going to make the ARMv7 target build successfully during
> > this
> > > > period.
> > > >
> > > > I would go the opposite direction.
> > > > I think we should remove all warnings disablement like "-Wno-
> > something",
> > > > and clean the code.
> > >
> > > Thanks, Thomas.
> > >
> > > I think it is a compiler issue rather than a code defect in this case, as It
> > cannot recognize the '-Waddress-of-packed-member' flag.
> > > "arm-linux-gnueabihf-gcc: error: unrecognized command line option '-
> > Waddress-of-packed-member'"
> > >
> > > >
> > > > If you want to allow building ARMv7, you can just allow warnings as not
> > > > errors.
> > > > So we will still see something is wrong but it won't prevent from building.
> > >
> > > Yes. We did this already, all the alignment issues are emitted as warnings
> > on ARMv7.
> > > Please see these two commits:
> > > 79fa5c2a9992 ("mk: ignore alignment errors for ARMv7")
> > > 6433c19105e8 ("mk: generalize strict alignment warning handling")
> > 
> > I don't know what to do with this patch.
> > I think it is not how it should work,
> > but you say your compiler has a real bug.
> Agree with you, however I haven't found a better solution for this issue yet.
> 
> > 
> > Can you confirm which compiler is it?
> 
> Please check the packet information dumped below, it is the latest version in Ubuntu 18.04 LTS.
> $ sudo apt show gcc-arm-linux-gnueabihf
> Package: gcc-arm-linux-gnueabihf
> Version: 4:7.4.0-1ubuntu2.3
> Priority: optional
> Section: devel
> Source: gcc-defaults (1.176ubuntu2.3)
> Origin: Ubuntu
> 
> > Does it prevent to compile even with -Wno-error ?
> Yes, it does. I put one piece of the compiling log bellow. Please take a look.  
> 
> $ make -j1 CROSS=arm-linux-gnueabihf- T=arm-armv7a-linuxapp-gcc RTE_DEVEL_BUILD=y

RTE_DEVEL_BUILD turns on -Werror, while what Thomas is asking about is
using the opposite flag "-Wno-error". Can you do a non-developer build or
put "-Wno-error" in EXTRA_CFLAGS to test this.

/Bruce
Phil Yang (Arm Technology China) Nov. 27, 2019, 10 a.m. UTC | #8
> -----Original Message-----
> From: Bruce Richardson <bruce.richardson@intel.com>
> Sent: Wednesday, November 27, 2019 5:30 PM
> To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> Cc: thomas@monjalon.net; dev@dpdk.org; david.marchand@redhat.com;
> jerinj@marvell.com; Honnappa Nagarahalli
> <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on armhf
> architercture
> 
> On Wed, Nov 27, 2019 at 08:09:22AM +0000, Phil Yang (Arm Technology China)
> wrote:
> > > -----Original Message-----
> > > From: Thomas Monjalon <thomas@monjalon.net>
> > > Sent: Wednesday, November 27, 2019 1:02 AM
> > > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > > Cc: dev@dpdk.org; Bruce Richardson <bruce.richardson@intel.com>;
> > > david.marchand@redhat.com; jerinj@marvell.com; Honnappa
> Nagarahalli
> > > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on
> armhf
> > > architercture
> > >
> > > 12/11/2019 07:40, Phil Yang (Arm Technology China):
> > > > > -----Original Message-----
> > > > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > > Sent: Tuesday, November 12, 2019 2:03 PM
> > > > > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > > > > Cc: Bruce Richardson <bruce.richardson@intel.com>; dev@dpdk.org;
> > > > > david.marchand@redhat.com; jerinj@marvell.com; Honnappa
> > > Nagarahalli
> > > > > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > > > > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > > > > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > > > > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error
> on
> > > armhf
> > > > > architercture
> > > > >
> > > > > 12/11/2019 06:25, Phil Yang (Arm Technology China):
> > > > > > From: Bruce Richardson <bruce.richardson@intel.com>
> > > > > > > On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > > > > > > > The older version (e.g. version 7.4.0 ) of GNU C compiler for the
> > > armhf
> > > > > > > > architecture doesn't support the flag '-Wno-address-of-packed-
> > > > > member',
> > > > > > > > so remove this flag for aarch32.
> > > > > > > >
> > > > > > > > Fixes: a385972c3675 ("mk: disable warning for packed member
> > > pointer")
> > > > > > > > Cc: stable@dpdk.org
> > > > > > > >
> > > > > > > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > > > > > > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > > > > > > > Tested-by: Joyce Kong <joyce.kong@arm.com>
> > > > > > > >
> > > > > > > > ---
> > > > > > > >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> > > > > > > >  1 file changed, 2 insertions(+)
> > > > > > > >
> > > > > > > > diff --git a/mk/toolchain/gcc/rte.vars.mk
> > > > > b/mk/toolchain/gcc/rte.vars.mk
> > > > > > > > index 9fc7041..ec0cbbf 100644
> > > > > > > > --- a/mk/toolchain/gcc/rte.vars.mk
> > > > > > > > +++ b/mk/toolchain/gcc/rte.vars.mk
> > > > > > > > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-
> truncation
> > > > > > > >  endif
> > > > > > > >
> > > > > > > >  # disable packed member unalign warnings
> > > > > > > > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> > > > > > > >  WERROR_FLAGS += -Wno-address-of-packed-member
> > > > > > > > +endif
> > > > > > > >
> > > > > > > You don't need to do this, as gcc will not complain about this
> unknown
> > > > > flag
> > > > > > > unless you have other issues in your code.[1] I think it's better to
> > > keep
> > > > > the
> > > > > > > code clean in this case, otherwise we'll have the code littered with
> > > > > > > conditionals for various flags.
> > > > > > >
> > > > > > > /Bruce
> > > > > > >
> > > > > > > [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> > > > > > > "When an unrecognized warning option is requested (e.g.,
> > > > > > > -Wunknown-warning), GCC emits a diagnostic stating that the
> option
> > > is
> > > > > not
> > > > > > > recognized. However, if the -Wno- form is used, the behavior is
> > > slightly
> > > > > > > different: no diagnostic is produced for -Wno-unknown-warning
> > > unless
> > > > > other
> > > > > > > diagnostics are being produced. This allows the use of new -Wno-
> > > options
> > > > > > > with old compilers, but if something goes wrong, the compiler
> warns
> > > that
> > > > > an
> > > > > > > unrecognized option is present."
> > > > > >
> > > > > > Thanks, Bruce.
> > > > > >
> > > > > > There are thousands of warnings with alignment when compiling for
> > > > > ARMv7 (ARMv7 supports unaligned memory access).
> > > > > > Without this new flag, the build system works fine for ARMv7.  So I
> add
> > > this
> > > > > conditional for ARMv7 only.
> > > > > > I agree with you we should clean up the code, but it needs a lot of
> > > effort to
> > > > > achieve that.
> > > > > > This patch is going to make the ARMv7 target build successfully
> during
> > > this
> > > > > period.
> > > > >
> > > > > I would go the opposite direction.
> > > > > I think we should remove all warnings disablement like "-Wno-
> > > something",
> > > > > and clean the code.
> > > >
> > > > Thanks, Thomas.
> > > >
> > > > I think it is a compiler issue rather than a code defect in this case, as It
> > > cannot recognize the '-Waddress-of-packed-member' flag.
> > > > "arm-linux-gnueabihf-gcc: error: unrecognized command line option '-
> > > Waddress-of-packed-member'"
> > > >
> > > > >
> > > > > If you want to allow building ARMv7, you can just allow warnings as
> not
> > > > > errors.
> > > > > So we will still see something is wrong but it won't prevent from
> building.
> > > >
> > > > Yes. We did this already, all the alignment issues are emitted as
> warnings
> > > on ARMv7.
> > > > Please see these two commits:
> > > > 79fa5c2a9992 ("mk: ignore alignment errors for ARMv7")
> > > > 6433c19105e8 ("mk: generalize strict alignment warning handling")
> > >
> > > I don't know what to do with this patch.
> > > I think it is not how it should work,
> > > but you say your compiler has a real bug.
> > Agree with you, however I haven't found a better solution for this issue yet.
> >
> > >
> > > Can you confirm which compiler is it?
> >
> > Please check the packet information dumped below, it is the latest version
> in Ubuntu 18.04 LTS.
> > $ sudo apt show gcc-arm-linux-gnueabihf
> > Package: gcc-arm-linux-gnueabihf
> > Version: 4:7.4.0-1ubuntu2.3
> > Priority: optional
> > Section: devel
> > Source: gcc-defaults (1.176ubuntu2.3)
> > Origin: Ubuntu
> >
> > > Does it prevent to compile even with -Wno-error ?
> > Yes, it does. I put one piece of the compiling log bellow. Please take a look.
> >
> > $ make -j1 CROSS=arm-linux-gnueabihf- T=arm-armv7a-linuxapp-gcc
> RTE_DEVEL_BUILD=y
> 
> RTE_DEVEL_BUILD turns on -Werror, while what Thomas is asking about is
> using the opposite flag "-Wno-error". Can you do a non-developer build or
> put "-Wno-error" in EXTRA_CFLAGS to test this.

Thanks, Bruce. 
There is no compiling issue for the non-developer build and "-Wno-error" flag build.
Thomas Monjalon Nov. 27, 2019, 10:32 a.m. UTC | #9
27/11/2019 11:00, Phil Yang (Arm Technology China):
> > -----Original Message-----
> > From: Bruce Richardson <bruce.richardson@intel.com>
> > Sent: Wednesday, November 27, 2019 5:30 PM
> > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > Cc: thomas@monjalon.net; dev@dpdk.org; david.marchand@redhat.com;
> > jerinj@marvell.com; Honnappa Nagarahalli
> > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on armhf
> > architercture
> > 
> > On Wed, Nov 27, 2019 at 08:09:22AM +0000, Phil Yang (Arm Technology China)
> > wrote:
> > > > -----Original Message-----
> > > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > Sent: Wednesday, November 27, 2019 1:02 AM
> > > > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > > > Cc: dev@dpdk.org; Bruce Richardson <bruce.richardson@intel.com>;
> > > > david.marchand@redhat.com; jerinj@marvell.com; Honnappa
> > Nagarahalli
> > > > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > > > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > > > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > > > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error on
> > armhf
> > > > architercture
> > > >
> > > > 12/11/2019 07:40, Phil Yang (Arm Technology China):
> > > > > > -----Original Message-----
> > > > > > From: Thomas Monjalon <thomas@monjalon.net>
> > > > > > Sent: Tuesday, November 12, 2019 2:03 PM
> > > > > > To: Phil Yang (Arm Technology China) <Phil.Yang@arm.com>
> > > > > > Cc: Bruce Richardson <bruce.richardson@intel.com>; dev@dpdk.org;
> > > > > > david.marchand@redhat.com; jerinj@marvell.com; Honnappa
> > > > Nagarahalli
> > > > > > <Honnappa.Nagarahalli@arm.com>; Gavin Hu (Arm Technology China)
> > > > > > <Gavin.Hu@arm.com>; Joyce Kong (Arm Technology China)
> > > > > > <Joyce.Kong@arm.com>; nd <nd@arm.com>; stable@dpdk.org
> > > > > > Subject: Re: [dpdk-dev] [PATCH 1/2] mk: fix unsupported flag error
> > on
> > > > armhf
> > > > > > architercture
> > > > > >
> > > > > > 12/11/2019 06:25, Phil Yang (Arm Technology China):
> > > > > > > From: Bruce Richardson <bruce.richardson@intel.com>
> > > > > > > > On Mon, Nov 11, 2019 at 06:34:20PM +0800, Phil Yang wrote:
> > > > > > > > > The older version (e.g. version 7.4.0 ) of GNU C compiler for the
> > > > armhf
> > > > > > > > > architecture doesn't support the flag '-Wno-address-of-packed-
> > > > > > member',
> > > > > > > > > so remove this flag for aarch32.
> > > > > > > > >
> > > > > > > > > Fixes: a385972c3675 ("mk: disable warning for packed member
> > > > pointer")
> > > > > > > > > Cc: stable@dpdk.org
> > > > > > > > >
> > > > > > > > > Signed-off-by: Phil Yang <phil.yang@arm.com>
> > > > > > > > > Reviewed-by: Gavin Hu <gavin.hu@arm.com>
> > > > > > > > > Tested-by: Joyce Kong <joyce.kong@arm.com>
> > > > > > > > >
> > > > > > > > > ---
> > > > > > > > >  mk/toolchain/gcc/rte.vars.mk | 2 ++
> > > > > > > > >  1 file changed, 2 insertions(+)
> > > > > > > > >
> > > > > > > > > diff --git a/mk/toolchain/gcc/rte.vars.mk
> > > > > > b/mk/toolchain/gcc/rte.vars.mk
> > > > > > > > > index 9fc7041..ec0cbbf 100644
> > > > > > > > > --- a/mk/toolchain/gcc/rte.vars.mk
> > > > > > > > > +++ b/mk/toolchain/gcc/rte.vars.mk
> > > > > > > > > @@ -100,7 +100,9 @@ WERROR_FLAGS += -Wno-format-
> > truncation
> > > > > > > > >  endif
> > > > > > > > >
> > > > > > > > >  # disable packed member unalign warnings
> > > > > > > > > +ifneq ($(CONFIG_RTE_ARCH_ARM), y)
> > > > > > > > >  WERROR_FLAGS += -Wno-address-of-packed-member
> > > > > > > > > +endif
> > > > > > > > >
> > > > > > > > You don't need to do this, as gcc will not complain about this
> > unknown
> > > > > > flag
> > > > > > > > unless you have other issues in your code.[1] I think it's better to
> > > > keep
> > > > > > the
> > > > > > > > code clean in this case, otherwise we'll have the code littered with
> > > > > > > > conditionals for various flags.
> > > > > > > >
> > > > > > > > /Bruce
> > > > > > > >
> > > > > > > > [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
> > > > > > > > "When an unrecognized warning option is requested (e.g.,
> > > > > > > > -Wunknown-warning), GCC emits a diagnostic stating that the
> > option
> > > > is
> > > > > > not
> > > > > > > > recognized. However, if the -Wno- form is used, the behavior is
> > > > slightly
> > > > > > > > different: no diagnostic is produced for -Wno-unknown-warning
> > > > unless
> > > > > > other
> > > > > > > > diagnostics are being produced. This allows the use of new -Wno-
> > > > options
> > > > > > > > with old compilers, but if something goes wrong, the compiler
> > warns
> > > > that
> > > > > > an
> > > > > > > > unrecognized option is present."
> > > > > > >
> > > > > > > Thanks, Bruce.
> > > > > > >
> > > > > > > There are thousands of warnings with alignment when compiling for
> > > > > > ARMv7 (ARMv7 supports unaligned memory access).
> > > > > > > Without this new flag, the build system works fine for ARMv7.  So I
> > add
> > > > this
> > > > > > conditional for ARMv7 only.
> > > > > > > I agree with you we should clean up the code, but it needs a lot of
> > > > effort to
> > > > > > achieve that.
> > > > > > > This patch is going to make the ARMv7 target build successfully
> > during
> > > > this
> > > > > > period.
> > > > > >
> > > > > > I would go the opposite direction.
> > > > > > I think we should remove all warnings disablement like "-Wno-
> > > > something",
> > > > > > and clean the code.
> > > > >
> > > > > Thanks, Thomas.
> > > > >
> > > > > I think it is a compiler issue rather than a code defect in this case, as It
> > > > cannot recognize the '-Waddress-of-packed-member' flag.
> > > > > "arm-linux-gnueabihf-gcc: error: unrecognized command line option '-
> > > > Waddress-of-packed-member'"
> > > > >
> > > > > >
> > > > > > If you want to allow building ARMv7, you can just allow warnings as
> > not
> > > > > > errors.
> > > > > > So we will still see something is wrong but it won't prevent from
> > building.
> > > > >
> > > > > Yes. We did this already, all the alignment issues are emitted as
> > warnings
> > > > on ARMv7.
> > > > > Please see these two commits:
> > > > > 79fa5c2a9992 ("mk: ignore alignment errors for ARMv7")
> > > > > 6433c19105e8 ("mk: generalize strict alignment warning handling")
> > > >
> > > > I don't know what to do with this patch.
> > > > I think it is not how it should work,
> > > > but you say your compiler has a real bug.
> > > Agree with you, however I haven't found a better solution for this issue yet.
> > >
> > > >
> > > > Can you confirm which compiler is it?
> > >
> > > Please check the packet information dumped below, it is the latest version
> > in Ubuntu 18.04 LTS.
> > > $ sudo apt show gcc-arm-linux-gnueabihf
> > > Package: gcc-arm-linux-gnueabihf
> > > Version: 4:7.4.0-1ubuntu2.3
> > > Priority: optional
> > > Section: devel
> > > Source: gcc-defaults (1.176ubuntu2.3)
> > > Origin: Ubuntu
> > >
> > > > Does it prevent to compile even with -Wno-error ?
> > > Yes, it does. I put one piece of the compiling log bellow. Please take a look.
> > >
> > > $ make -j1 CROSS=arm-linux-gnueabihf- T=arm-armv7a-linuxapp-gcc
> > RTE_DEVEL_BUILD=y
> > 
> > RTE_DEVEL_BUILD turns on -Werror, while what Thomas is asking about is
> > using the opposite flag "-Wno-error". Can you do a non-developer build or
> > put "-Wno-error" in EXTRA_CFLAGS to test this.
> 
> Thanks, Bruce. 
> There is no compiling issue for the non-developer build and "-Wno-error" flag build.

Cool, so we can classify this patch as "rejected".

Patch
diff mbox series

diff --git a/mk/toolchain/gcc/rte.vars.mk b/mk/toolchain/gcc/rte.vars.mk
index 9fc7041..ec0cbbf 100644
--- a/mk/toolchain/gcc/rte.vars.mk
+++ b/mk/toolchain/gcc/rte.vars.mk
@@ -100,7 +100,9 @@  WERROR_FLAGS += -Wno-format-truncation
 endif
 
 # disable packed member unalign warnings
+ifneq ($(CONFIG_RTE_ARCH_ARM), y)
 WERROR_FLAGS += -Wno-address-of-packed-member
+endif
 
 export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
 export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS