Status on OpenJDK Build Infrastructure Project

Erik Joelsson erik.joelsson at oracle.com
Fri Dec 21 01:50:22 PST 2012



On 2012-12-20 18:16, Phil Race wrote:
> +1 on incremental build performance. My MO is a partial forest and 
> incremental builds
> of one iddy bitty little make directory which is usually a mix of 
> native and java. Takes
> a few seconds. Plus I'm immune to unrelated changes I don't care about.
> Its much more frequently used (20-30x) than top-level builds.
>
There is a workaround for this and I will describe it in separate mail. 
Magnus has described it earlier on this list too.
> But isn't it a build or javac dependency bug that its recompiling 
> unchanged sources ?
It's a complication of the java language that makes it hard to track 
correct dependencies. This has been discussed and described numerous 
times on this list. It's simply not a simple problem. Sjavac is the 
solution to this problem and will at some point solve it properly. In 
addition to this there have been bugs in the new makefiles that caused 
even more recompiles, but that should be fixed by now. One of these was 
javac always touching the header files, triggering full native recompile.

/Erik
>
> -phil.
>
> On 12/20/2012 12:48 AM, Alan Bateman wrote:
>> On 19/12/2012 19:30, Kelly O'Hair wrote:
>>> :
>>>
>>>
>>> We have some remaining internal work for the Oracle JDK, and we are 
>>> extremely close to being done.
>>> As soon as we can demonstrate full and complete builds, in 
>>> comparison to the old builds, we will
>>> proceed to change the default "make" from the top of the forest from 
>>> the old makefiles to the new build-infra
>>> makefiles. So unless some disaster strikes, expect the cutover to 
>>> start several weeks before jdk8 M6
>>> (See http://openjdk.java.net/projects/jdk8/)
>>>
>>> The cutover change will show up in the jdk8/build forest first, then 
>>> hopefully get integrated into the master
>>> jdk8/jdk8 forest within a week. It's unknown how quickly these 
>>> changes will get pulled down into the
>>> other team forests, it depends on who controls those team areas.
>>>
>> Kelly - as you probably know, most people working on the jdk 
>> repository then just do partial builds and then "incremental" builds 
>> after that (incremental builds meaning "make -C foo/bar/" or whatever 
>> to just run the make file for the area that they have changed). It's 
>> not completely reliable of course but it's how many people work as it 
>> gets them runnable bits within a couple of seconds, not minutes. I'm 
>> happy to see partial builds go away but I'm very concerned about the 
>> incremental build performance. With the new build then it typically 
>> re-compiles several thousand classes each time and this can take 
>> several minutes on not-the-latest machines (to be honest, it's a 
>> productivity killer). The solution coming for the new build is sjavac 
>> and that gets us into the right ballpark to be productive again. So 
>> I'd like to understand the plan for sjavac as I didn't see it in your 
>> mail. Will that be enabled soon after the cut-over, should we just 
>> use it anyway?
>>
>> -Alan.
>



More information about the build-infra-dev mailing list