[dpdk-dev] test: Disable strict-aliasing warnings

Message ID 1427397455-30368-1-git-send-email-pablo.de.lara.guarch@intel.com (mailing list archive)
State Changes Requested, archived
Headers

Commit Message

De Lara Guarch, Pablo March 26, 2015, 7:17 p.m. UTC
  DPDK does not build on gcc 4.4, as it complains due to
strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,
with no errors in next gcc versions:

CC virtual_pmd.o
CC test_link_bonding_mode4.o
cc1: warnings being treated as errors
/root/dpdk/app/test/test_link_bonding_mode4.c: In function ‘test_mode4_expired’:
/root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error: dereferencing pointer ‘pkt.409’ does break strict-aliasing rules
/root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error: dereferencing pointer ‘pkt.409’ does break strict-aliasing rules
...
cc1: warnings being treated as errors
/root/dpdk/app/test/virtual_pmd.c: In function ‘virtual_ethdev_stats_reset’:
/root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error: dereferencing pointer ‘pkt.338’ does break strict-aliasing rules
/root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error: dereferencing pointer ‘pkt.338’ does break strict-aliasing rules

This patch fixes the compilation by disabling
these warnings.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 app/test/Makefile |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)
  

Comments

Michael Qiu March 27, 2015, 8:41 a.m. UTC | #1
On 3/27/2015 3:18 AM, Pablo de Lara wrote:
> DPDK does not build on gcc 4.4, as it complains due to

Why? Will gcc 4.4 not supported?

Thanks,
Michael
> strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,
> with no errors in next gcc versions:
>
> CC virtual_pmd.o
> CC test_link_bonding_mode4.o
> cc1: warnings being treated as errors
> /root/dpdk/app/test/test_link_bonding_mode4.c: In function ‘test_mode4_expired’:
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error: dereferencing pointer ‘pkt.409’ does break strict-aliasing rules
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error: dereferencing pointer ‘pkt.409’ does break strict-aliasing rules
> ...
> cc1: warnings being treated as errors
> /root/dpdk/app/test/virtual_pmd.c: In function ‘virtual_ethdev_stats_reset’:
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error: dereferencing pointer ‘pkt.338’ does break strict-aliasing rules
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error: dereferencing pointer ‘pkt.338’ does break strict-aliasing rules
>
> This patch fixes the compilation by disabling
> these warnings.
>
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
>  app/test/Makefile |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/app/test/Makefile b/app/test/Makefile
> index 4aca77c..0d62d07 100644
> --- a/app/test/Makefile
> +++ b/app/test/Makefile
> @@ -158,6 +158,11 @@ CFLAGS_test_memcpy_perf.o += -fno-var-tracking-assignments
>  endif
>  endif
>  
> +# Disable warnings of no-strict-aliasing in virtual_pmd
> +# and test_link_bonding_mode4 tests
> +CFLAGS_virtual_pmd.o += -Wno-strict-aliasing
> +CFLAGS_test_link_bonding_mode4.o += -Wno-strict-aliasing
> +
>  # this application needs libraries first
>  DEPDIRS-y += lib
>
  
De Lara Guarch, Pablo March 27, 2015, 8:57 a.m. UTC | #2
> -----Original Message-----
> From: Qiu, Michael
> Sent: Friday, March 27, 2015 8:41 AM
> To: De Lara Guarch, Pablo; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] test: Disable strict-aliasing warnings
> 
> On 3/27/2015 3:18 AM, Pablo de Lara wrote:
> > DPDK does not build on gcc 4.4, as it complains due to
> 
> Why? Will gcc 4.4 not supported?

Afaik, we still support gcc 4.4, since it is part of RHEL 6.5.

Thanks,
Pablo
> 
> Thanks,
> Michael
> > strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,
> > with no errors in next gcc versions:
> >
> > CC virtual_pmd.o
> > CC test_link_bonding_mode4.o
> > cc1: warnings being treated as errors
> > /root/dpdk/app/test/test_link_bonding_mode4.c: In function
> 'test_mode4_expired':
> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error:
> dereferencing pointer 'pkt.409' does break strict-aliasing rules
> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error:
> dereferencing pointer 'pkt.409' does break strict-aliasing rules
> > ...
> > cc1: warnings being treated as errors
> > /root/dpdk/app/test/virtual_pmd.c: In function
> 'virtual_ethdev_stats_reset':
> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error:
> dereferencing pointer 'pkt.338' does break strict-aliasing rules
> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error:
> dereferencing pointer 'pkt.338' does break strict-aliasing rules
> >
> > This patch fixes the compilation by disabling
> > these warnings.
> >
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> > ---
> >  app/test/Makefile |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/app/test/Makefile b/app/test/Makefile
> > index 4aca77c..0d62d07 100644
> > --- a/app/test/Makefile
> > +++ b/app/test/Makefile
> > @@ -158,6 +158,11 @@ CFLAGS_test_memcpy_perf.o += -fno-var-
> tracking-assignments
> >  endif
> >  endif
> >
> > +# Disable warnings of no-strict-aliasing in virtual_pmd
> > +# and test_link_bonding_mode4 tests
> > +CFLAGS_virtual_pmd.o += -Wno-strict-aliasing
> > +CFLAGS_test_link_bonding_mode4.o += -Wno-strict-aliasing
> > +
> >  # this application needs libraries first
> >  DEPDIRS-y += lib
> >
  
Thomas Monjalon March 27, 2015, 9:20 a.m. UTC | #3
2015-03-26 19:17, Pablo de Lara:
> DPDK does not build on gcc 4.4, as it complains due to
> strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,
> with no errors in next gcc versions:

Do you mean it's not possible to fix it in the code?
You are disabling some checks which may be relevant.

> CC virtual_pmd.o
> CC test_link_bonding_mode4.o
> cc1: warnings being treated as errors
> /root/dpdk/app/test/test_link_bonding_mode4.c: In function ‘test_mode4_expired’:
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error: dereferencing pointer ‘pkt.409’ does break strict-aliasing rules
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error: dereferencing pointer ‘pkt.409’ does break strict-aliasing rules
> ...
> cc1: warnings being treated as errors
> /root/dpdk/app/test/virtual_pmd.c: In function ‘virtual_ethdev_stats_reset’:
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error: dereferencing pointer ‘pkt.338’ does break strict-aliasing rules
> /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error: dereferencing pointer ‘pkt.338’ does break strict-aliasing rules
> 
> This patch fixes the compilation by disabling
> these warnings.
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
>  app/test/Makefile |    5 +++++
>  1 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/app/test/Makefile b/app/test/Makefile
> index 4aca77c..0d62d07 100644
> --- a/app/test/Makefile
> +++ b/app/test/Makefile
> @@ -158,6 +158,11 @@ CFLAGS_test_memcpy_perf.o += -fno-var-tracking-assignments
>  endif
>  endif
>  
> +# Disable warnings of no-strict-aliasing in virtual_pmd
> +# and test_link_bonding_mode4 tests
> +CFLAGS_virtual_pmd.o += -Wno-strict-aliasing
> +CFLAGS_test_link_bonding_mode4.o += -Wno-strict-aliasing
> +
>  # this application needs libraries first
>  DEPDIRS-y += lib
>  
>
  
De Lara Guarch, Pablo March 27, 2015, 9:29 a.m. UTC | #4
> -----Original Message-----

> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]

> Sent: Friday, March 27, 2015 9:20 AM

> To: De Lara Guarch, Pablo

> Cc: dev@dpdk.org

> Subject: Re: [dpdk-dev] [PATCH] test: Disable strict-aliasing warnings

> 

> 2015-03-26 19:17, Pablo de Lara:

> > DPDK does not build on gcc 4.4, as it complains due to

> > strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,

> > with no errors in next gcc versions:

> 

> Do you mean it's not possible to fix it in the code?

> You are disabling some checks which may be relevant.


I mean it is possible to fix, but probably not worth it, considering that
newer gcc versions have no issues (and gcc 4.4 is from 2011).
I have seen that there are other libraries that disable these warnings as well,
so I assumed we could do the same here.

Pablo
> 

> > CC virtual_pmd.o

> > CC test_link_bonding_mode4.o

> > cc1: warnings being treated as errors

> > /root/dpdk/app/test/test_link_bonding_mode4.c: In function

> ‘test_mode4_expired’:

> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error:

> dereferencing pointer ‘pkt.409’ does break strict-aliasing rules

> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error:

> dereferencing pointer ‘pkt.409’ does break strict-aliasing rules

> > ...

> > cc1: warnings being treated as errors

> > /root/dpdk/app/test/virtual_pmd.c: In function

> ‘virtual_ethdev_stats_reset’:

> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:645: error:

> dereferencing pointer ‘pkt.338’ does break strict-aliasing rules

> > /root/dpdk/x86_64-native-linuxapp-gcc/include/rte_ring.h:729: error:

> dereferencing pointer ‘pkt.338’ does break strict-aliasing rules

> >

> > This patch fixes the compilation by disabling

> > these warnings.

> >

> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

> > ---

> >  app/test/Makefile |    5 +++++

> >  1 files changed, 5 insertions(+), 0 deletions(-)

> >

> > diff --git a/app/test/Makefile b/app/test/Makefile

> > index 4aca77c..0d62d07 100644

> > --- a/app/test/Makefile

> > +++ b/app/test/Makefile

> > @@ -158,6 +158,11 @@ CFLAGS_test_memcpy_perf.o += -fno-var-

> tracking-assignments

> >  endif

> >  endif

> >

> > +# Disable warnings of no-strict-aliasing in virtual_pmd

> > +# and test_link_bonding_mode4 tests

> > +CFLAGS_virtual_pmd.o += -Wno-strict-aliasing

> > +CFLAGS_test_link_bonding_mode4.o += -Wno-strict-aliasing

> > +

> >  # this application needs libraries first

> >  DEPDIRS-y += lib

> >

> >

>
  
Thomas Monjalon March 27, 2015, 10 a.m. UTC | #5
2015-03-27 09:29, De Lara Guarch, Pablo:
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > 2015-03-26 19:17, Pablo de Lara:
> > > DPDK does not build on gcc 4.4, as it complains due to
> > > strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,
> > > with no errors in next gcc versions:
> > 
> > Do you mean it's not possible to fix it in the code?
> > You are disabling some checks which may be relevant.
> 
> I mean it is possible to fix, but probably not worth it, considering that
> newer gcc versions have no issues (and gcc 4.4 is from 2011).
> I have seen that there are other libraries that disable these warnings as well,
> so I assumed we could do the same here.

It is preferred to avoid doing it.
  
De Lara Guarch, Pablo March 27, 2015, 10:11 a.m. UTC | #6
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> Sent: Friday, March 27, 2015 10:01 AM
> To: De Lara Guarch, Pablo
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] test: Disable strict-aliasing warnings
> 
> 2015-03-27 09:29, De Lara Guarch, Pablo:
> > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > 2015-03-26 19:17, Pablo de Lara:
> > > > DPDK does not build on gcc 4.4, as it complains due to
> > > > strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,
> > > > with no errors in next gcc versions:
> > >
> > > Do you mean it's not possible to fix it in the code?
> > > You are disabling some checks which may be relevant.
> >
> > I mean it is possible to fix, but probably not worth it, considering that
> > newer gcc versions have no issues (and gcc 4.4 is from 2011).
> > I have seen that there are other libraries that disable these warnings as
> well,
> > so I assumed we could do the same here.
> 
> It is preferred to avoid doing it.

Actually, I just realized that I missed checking the gcc version, so I was disabling the warnings in all versions.
I can send a v2 with that check, so we will still take into account those warnings for newer versions,
and just ignore it in gcc 4.4.

Thanks,
Pablo
  
Wodkowski, PawelX March 27, 2015, 10:55 a.m. UTC | #7
Fix strict aliasing rule error seen in gcc 4.4 in virtual pmd and mode 4 link
bonding mode 4 test.

changes v2:
 - fix error in code instead disabling compiler warning.

Pawel Wodkowski (2):
  test: fix strict aliasing rule error in virtual pmd
  test: fix strict aliasing rule error in link bonding mode 4 test

 app/test/test_link_bonding_mode4.c |  5 +++--
 app/test/virtual_pmd.c             | 10 +++++-----
 2 files changed, 8 insertions(+), 7 deletions(-)
  
Stephen Hemminger March 27, 2015, 3:46 p.m. UTC | #8
On Thu, 26 Mar 2015 19:17:35 +0000
Pablo de Lara <pablo.de.lara.guarch@intel.com> wrote:

> +# Disable warnings of no-strict-aliasing in virtual_pmd
> +# and test_link_bonding_mode4 tests
> +CFLAGS_virtual_pmd.o += -Wno-strict-aliasing
> +CFLAGS_test_link_bonding_mode4.o += -Wno-strict-aliasing
> +
>  

There is a way to do it only for a specific (broken)
Gcc version using if's
  
De Lara Guarch, Pablo March 27, 2015, 3:48 p.m. UTC | #9
> -----Original Message-----
> From: Stephen Hemminger [mailto:stephen@networkplumber.org]
> Sent: Friday, March 27, 2015 3:46 PM
> To: De Lara Guarch, Pablo
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] test: Disable strict-aliasing warnings
> 
> On Thu, 26 Mar 2015 19:17:35 +0000
> Pablo de Lara <pablo.de.lara.guarch@intel.com> wrote:
> 
> > +# Disable warnings of no-strict-aliasing in virtual_pmd
> > +# and test_link_bonding_mode4 tests
> > +CFLAGS_virtual_pmd.o += -Wno-strict-aliasing
> > +CFLAGS_test_link_bonding_mode4.o += -Wno-strict-aliasing
> > +
> >
> 
> There is a way to do it only for a specific (broken)
> Gcc version using if's

I know, I sent another email, saying that I missed an if to check the gcc version.
Anyway, Pawel has sent another patch to fix the issue.
Not sure which fix the community prefers.

Thanks,
Pablo
  
De Lara Guarch, Pablo March 30, 2015, 11:11 a.m. UTC | #10
> -----Original Message-----
> From: De Lara Guarch, Pablo
> Sent: Friday, March 27, 2015 10:11 AM
> To: Thomas Monjalon
> Cc: dev@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] test: Disable strict-aliasing warnings
> 
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
> > Sent: Friday, March 27, 2015 10:01 AM
> > To: De Lara Guarch, Pablo
> > Cc: dev@dpdk.org
> > Subject: Re: [dpdk-dev] [PATCH] test: Disable strict-aliasing warnings
> >
> > 2015-03-27 09:29, De Lara Guarch, Pablo:
> > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > > > 2015-03-26 19:17, Pablo de Lara:
> > > > > DPDK does not build on gcc 4.4, as it complains due to
> > > > > strict-aliasing rules in virtual_pmd and link_bonding_mode4 tests,
> > > > > with no errors in next gcc versions:
> > > >
> > > > Do you mean it's not possible to fix it in the code?
> > > > You are disabling some checks which may be relevant.
> > >
> > > I mean it is possible to fix, but probably not worth it, considering that
> > > newer gcc versions have no issues (and gcc 4.4 is from 2011).
> > > I have seen that there are other libraries that disable these warnings as
> > well,
> > > so I assumed we could do the same here.
> >
> > It is preferred to avoid doing it.
> 
> Actually, I just realized that I missed checking the gcc version, so I was
> disabling the warnings in all versions.
> I can send a v2 with that check, so we will still take into account those
> warnings for newer versions,
> and just ignore it in gcc 4.4.

I just sent a v2 of this patch. Pawel also sent another fix for this issue,
but Stephen had some concerns about it, so I just sent a v2 as an alternative,
so the community can decide between the two options.

> 
> Thanks,
> Pablo
  
Thomas Monjalon March 30, 2015, 8:48 p.m. UTC | #11
2015-03-27 11:55, Pawel Wodkowski:
> Fix strict aliasing rule error seen in gcc 4.4 in virtual pmd and mode 4 link
> bonding mode 4 test.
> 
> changes v2:
>  - fix error in code instead disabling compiler warning.
> 
> Pawel Wodkowski (2):
>   test: fix strict aliasing rule error in virtual pmd
>   test: fix strict aliasing rule error in link bonding mode 4 test
> 
>  app/test/test_link_bonding_mode4.c |  5 +++--
>  app/test/virtual_pmd.c             | 10 +++++-----
>  2 files changed, 8 insertions(+), 7 deletions(-)

Applied, thanks
  

Patch

diff --git a/app/test/Makefile b/app/test/Makefile
index 4aca77c..0d62d07 100644
--- a/app/test/Makefile
+++ b/app/test/Makefile
@@ -158,6 +158,11 @@  CFLAGS_test_memcpy_perf.o += -fno-var-tracking-assignments
 endif
 endif
 
+# Disable warnings of no-strict-aliasing in virtual_pmd
+# and test_link_bonding_mode4 tests
+CFLAGS_virtual_pmd.o += -Wno-strict-aliasing
+CFLAGS_test_link_bonding_mode4.o += -Wno-strict-aliasing
+
 # this application needs libraries first
 DEPDIRS-y += lib