please review 7122061: enable -Werror in various jdk build steps

Joe Darcy joe.darcy at oracle.com
Thu Dec 22 20:46:49 UTC 2011


On 12/22/2011 3:52 AM, Alan Bateman wrote:
> On 22/12/2011 01:51, Stuart Marks wrote:
>>
>> I dug up a bit of background on this. Apparently Sasha ran across 
>> this problem back in July and asked about this on net-dev [1]. 
>> Discussion continued on build-dev [2]. Kurchi later picked up this 
>> work and after some discussion got it integrated [3].
>>
>> I didn't see Sasha's original webrev, but he might have fixed all the 
>> warnings in the java.net package, enabled -Werror in 
>> make/java/net/Makefile, and then was surprised to find that this 
>> build step was (implicitly) compiling files that weren't in the 
>> java.net package. Kurchi's fix [3] apparently fixed warnings in these 
>> other files as well before enabling -Werror.
>>
>> In my proposal to add -Werror, I've ensured that specific runs of 
>> javac to which -Werror will be added actually have no warnings at 
>> all, whether in implicitly or explicitly listed files.
>>
>> I'm also not entirely clear what's meant by "partial" and 
>> "incremental" builds. I've been doing clean builds, but only in the 
>> jdk repo. Is this a "partial" build, as opposed to a full forest or 
>> "control" build? I'm doing one of those now and I'll certainly 
>> correct any issues that arise because of -Werror.
>>
>> Or, is a "partial" build what happens if one descends into a make 
>> subdirectory, e.g. jdk/make/java/net, and calls "make" from there? I 
>> haven't been doing that. Should I?
>>
>> Still trying to figure out what I need to do to move this forward.
> Just on terminology, when I use the term "partial" build then I meant 
> building a subset of the repositories with an import JDK providing the 
> per-built bits from the other repositories. I think this is what most 
> folks working in the jdk repository do, at least in Oracle. 
> Incremental builds are where folks go into specific directories and 
> run the make file so that it re-builds just the changed sources for 
> that area. It's far from perfect, requires local knowledge, at least 
> one amulet, but critical to productivity when working in the jdk 
> repository.
>
> Anyway, I think you've been digging in the right place. Warnings were 
> fixed and builds completed successfully but then later we found cases 
> where areas hadn't been completely cleared of mines. This is not a 
> criticism of Sasha's great work, it's just that they slipped through 
> because classes were compiled implicitly by something earlier in the 
> build. This is just one reason to look forward to the new build.
>
> As to moving this forward. If you are happy that these areas are 
> completely warning free then I think we are happy and you should push 
> the changes.
>

As an aside, I've thought it was a bit of design error that implicit 
compilation was the default.

Since JDK 6 there has been a javac option that can be used to disable 
implicit compilation, -implicit:none.

Perhaps this option could be used in some portion of the JDK build.

-Joe



More information about the build-dev mailing list