The future of partial builds

Kelly O'Hair kelly.ohair at oracle.com
Wed Sep 12 18:52:57 UTC 2012


On Sep 12, 2012, at 8:54 AM, Jonathan Gibbons wrote:

> On 09/11/2012 10:46 PM, Fredrik Öhrström wrote:
>> However, this begets the question why -Xprefer:source was added in the first place. If I remember correctly,
>> this was over a year ago. It turns out that the default behavior for implicit compilation (which is necessary for sjavac:s multi core support)
>> is to not recompile java source files when the class has a more recent timestamp than the source file.
>> Sounds reasonable, until you realize that javac also takes into account the timestamps in rt.jar inside the jdk.
>> Soooo, if you check out the source code on Monday, then download a newly built jdk on tuesday,
>> and use this as the boot jdk, then the rt. jar timestamps will be newer than the source files you are trying to
>> compile, and this somehow messes up the build!
> 
> When you are compiling JDK, you should not be reading or in any way dependent of the bootdir rt.jar (except insofar as it is needed to execute javac itself.)   The compilation itself should not read bootdir rt.jar. Indeed, you should be able to set -Xbootclasspath to build/PLATFORM-ARCH/classes, which will initially be empty.
> 
> -- Jon

As I recall, I thought it was corba or jaxp or jaxws that needed needed -Xprefer:source because those early compiles
could not just leave out the boot rt.jar???

-kto




More information about the build-dev mailing list