[dpdk-dev] [PATCH 07/11] pmdinfogen: fix build warnings

Mcnamara, John john.mcnamara at intel.com
Thu Jul 7 23:25:27 CEST 2016



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Neil Horman
> Sent: Thursday, July 7, 2016 6:55 PM
> To: Thomas Monjalon <thomas.monjalon at 6wind.com>
> Cc: dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH 07/11] pmdinfogen: fix build warnings
> 
> On Thu, Jul 07, 2016 at 05:36:26PM +0200, Thomas Monjalon wrote:
> > When compiled with a standard clang, pmdinfogen can raise a warning:
> >     buildtools/pmdinfogen/pmdinfogen.c:365:1: warning:
> >     control reaches end of non-void function
> >
> > Actually there can be more warnings with stricter compilers.
> > In order to catch them early and fix most of them, the DPDK standard
> > flags WERROR_FLAGS are used.
> >
> > The warnings fixed are:
> >     no previous prototype for ...
> >     no return statement in function returning non-void
> >     variable ‘secstrings’ set but not used
> >     ‘sec_name’ defined but not used
> >     ‘get_symbol_index’ defined but not used
> >     pointer of type ‘void *’ used in arithmetic
> >
> > Fixes: 98b0fdb0ffc6 ("pmdinfogen: add buildtools and pmdinfogen
> > utility")
> >
> > Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
> > ---
> I'm not opposed to any of these changes, but I'm really starting to wonder
> how well used/maintained clang is as a toolchain target.  I assert that
> because, with my admittedly broken dependency rule, a native clang build
> for me errors out in any number of places:
> 
> /home/nhorman/git/dpdk/lib/librte_eal/linuxapp/eal/eal_pci.c:392:37:
> error:
> equality comparison with extraneous parentheses [-Werror,-Wparentheses-
> equality]  if (((&pci_device_list)->tqh_first == ((void*)0))) {
>       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~
> /home/nhorman/git/dpdk/lib/librte_eal/linuxapp/eal/eal_pci.c:392:37: note:
> remove extraneous parentheses around the comparison to silence this
> warning  if (((&pci_device_list)->tqh_first == ((void*)0))) {


It is due to the clang/ccache "issue" that is tripping up everyone. Exporting CCACHE_CPP2=yes should fix it. There was a thread about this earlier in the week.

John.




More information about the dev mailing list