Build portability: enable or disable warnings

Andrew Haley aph at redhat.com
Mon May 16 09:04:51 UTC 2011


On 16/05/11 09:19, David Holmes wrote:
> Fredrik Öhrström said the following on 05/16/11 17:39:
>> 2011-05-13 15:20, Andrew Haley skrev:
>>> A recent patch (of mine, as it happens) broke builds on Debian and
>>> Gentoo.  It was caused by a scanf call:
>>>
>>>          if (sscanf(chars, "%lx-%*lx", &x) == 1)
>>>
>>> which looks pretty innocuous, but it triggers a warning if -Wformat is
>>> turned on:
>>
>>> There are two ways to fix this: either force -Wformat and
>>> -Wformat-security on when building HotSpot or force them off.  Either
>>> would work, but my vote goes to the former.
>>
>> I think it is better to fix the underlying complaint of the compiler.
>> Thus change the sscanf string to "%lx-%*x"
>>
>> The compiler is complaining that you over specify the second scanned
>> parameter that is going to be thrown away anyway.
> 
> This particular issue has already been fixed.
> 
> I assumed Andrew was more generally questioning whether to force Wformat 
> on or off rather than potentially have it vary depending on the compiler 
> version.

Exactly.  The crucial paragraph is:

"I'd like our builds to be portable: that is, we should be able to
build on Fedora and have a reasonable expectation that our builds will
not fail on Debian & co."

Different distros enable different sets of warnings by default.
As it stands at the moment we have to build on a wide variety of
distros to know if OpenJDK will build on a wide variety of distros.

Would a patch to force on a set of warnings be a good idea?  I'll
have a look at the compiler defaults used by Debian and Gentoo to
determine that set.

Andrew.



More information about the build-dev mailing list