[dpdk-dev] [PATCH] ixgbe: fix build with gcc 5

Panu Matilainen pmatilai at redhat.com
Thu Feb 19 13:37:08 CET 2015


On 02/19/2015 02:02 PM, Ananyev, Konstantin wrote:
> Hi Panu,
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Panu Matilainen
>> Sent: Thursday, February 19, 2015 10:25 AM
>> To: dev at dpdk.org
>> Subject: [dpdk-dev] [PATCH] ixgbe: fix build with gcc 5
>>
>> Add extra parenthesis to remove ambiguity on what we want to compare,
>> otherwise gcc 5 issues a "logical not is only applied to the left hand
>> side of comparison" warning which with -Werror fails the build.
>>
>> Signed-off-by: Panu Matilainen <pmatilai at redhat.com>
>> ---
>>   lib/librte_pmd_ixgbe/ixgbe/ixgbe_common.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_common.c b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_common.c
>> index 37e5bae..93a6a00 100644
>> --- a/lib/librte_pmd_ixgbe/ixgbe/ixgbe_common.c
>> +++ b/lib/librte_pmd_ixgbe/ixgbe/ixgbe_common.c
>> @@ -2898,8 +2898,8 @@ STATIC s32 ixgbe_fc_autoneg_fiber(struct ixgbe_hw *hw)
>>   	 */
>>
>>   	linkstat = IXGBE_READ_REG(hw, IXGBE_PCS1GLSTA);
>> -	if ((!!(linkstat & IXGBE_PCS1GLSTA_AN_COMPLETE) == 0) ||
>> -	    (!!(linkstat & IXGBE_PCS1GLSTA_AN_TIMED_OUT) == 1)) {
>> +	if (((!!(linkstat & IXGBE_PCS1GLSTA_AN_COMPLETE)) == 0) ||
>> +	    ((!!(linkstat & IXGBE_PCS1GLSTA_AN_TIMED_OUT)) == 1)) {
>>   		ERROR_REPORT1(IXGBE_ERROR_POLLING,
>>   			     "Auto-Negotiation did not complete or timed out");
>>   		goto out;
>
> Unfortunately we are not supposed to change files under ixgbe subfirectory (except ixgbe_osdep.*).

Oh, sorry about that, I didn't realize there were untouchable files in 
the repo. Its not a very common setup :)

> Usually we deal with it just by:
> If GCC_VERSION...
> CFLAGS_ixgbe_common.o += -Wno...
>
> You can have a look at lib/librte_pmd_ixgbe/Makefile, there are plenty of such things.

Yup, noticed that but assumed the warning disablers were mainly for 
things that are not trivial to fix.

This one can be worked around just as easily with 
-Wlogical-not-parentheses, but since this flag is new to gcc 5 it can't 
really be added until gcc 5 is recognized as a supported version by the 
makefiles:
http://dpdk.org/dev/patchwork/patch/3452/

I'll send an updated version using warning disabler once other gcc-5 
support goes in.

	- Panu -




More information about the dev mailing list