Review Request: Build-infra update

Kelly O'Hair kelly.ohair at
Tue May 22 21:08:58 UTC 2012

Not sure where we are on these changes. I have made sure that they don't regress the old builds
and am ready to integrate, but I'm concerned on Alan's modularity comment, and also who should
I be adding to the "Reviewed-by" list.

Also, I'm thinking I should separate the changes in the jdk repo to isolate the changes to the old
build system, the sources, and the build-infra changes.  Let me know if that make sense.


On May 22, 2012, at 8:17 AM, Erik Joelsson wrote:

> New webrevs published (those ending in .1):
> <>
> All issues below have been addressed. There are also some other improvements that we felt should get in now.
> /Erik
> On 2012-05-16 23:21, Fredrik Öhrström wrote:
>> In
>> Indententation looks odd where solaris optimizations settings for CC
>> are calculated.
>> Could someone enlighten this configure script with a comment about libCrun?
>> In
>> trap "rm -rf '$RCDIR'" EXIT
>> The $RCDIR is not replaced with the contents of the variable RCDIR
>> since it is surrounded by single quotes.
>> I assume the single quotes were added to deal with paths with spaces
>> in them on windows.
>> Perhaps there is some clever way to solve this.
>> Somewhat broken comment in JavaCompilation.gmk:
>>  178     # When this macro is run in the same makefile as the java
>> compilation, dependencies are transfered
>>  179     # in make variables. When the macro is run in a different
>> makefile than the java compilation, the
>>  180     # needs to be found in the filesystem.
>> In the root makefile, could you explain what CONF does and what the
>> source tip code does?
>> In the corba makefile, it seems like we forgot to use $(MKDIR) for
>> mkdir and several other commands.
>> In CompileJavaClasses.gmk:
>>  88 # Jonas 2012-04-25: It's only used to generate...i.e a build tool
>> Then it should still be excluded from the jdk build, even on Macosx,
>> should it not?
>>  128 ifeq ($(JONAS),TODO_DONE)
>>  277 # List of java classes that should be javah compiled, but is not
>> auto-detected
>> Is this because we have not had time to add GenerateNativeHeader for this class?
>> In NativeCompilation.gmk:
>> 91 #   as this is firt time I see it
>> Is the source so messed up that we need BUILD_LIBMLIB_IMAGE_V_FILES
>> Unfortunately, I can guess that the answer is yes. However everyone should now
>> that each time an explicit source file name is added to a makefile, a
>> kitten dies!
>> Can we rename newobjs into objs? The names newobjs and newclasses were only
>> used while we converted the makefiles.
>> In CopyFiles.gmk:
>> # TODO: Platform dir needs to be "win32" on windows /erikj
>> Fixed isn't it?
>> In GenerateClasses.gmk:
>>  33 # Depend on files in classes for now to avoid bad dependency
>> handling caused by
>>  34 # copy always updating timestamps in classes.
>> Drop the comment, and drop NEWCLASSES_DIR, just do
>> in the macro call.
>> In GenerateJavaSources.gmk:
>> Use $(CHMOD) instead of chmod etc etc
>> In GensrcMisc.gmk:
>> Why is realpath needed here?
>>  172                 SRC:=$(realpath $(dir $(GENSRC_SOL_SRC)
>> In GensrcCharacterData.gmk:
>> replace echo with $(ECHO)
>> In Images.gmk:
>> You can remove the comments from line 35 to 44.
>> Though the incantation: I.e. -do-not-use- :: rules!!!!!
>> Repeat after me: -do-not-use- :: rules!!!!!
>> Should be recited 100 times by anyone who wants to
>> edit the new makefiles. :-)
>> Are makefiles/com/Makefile and makefiles/javax/Makefile
>> empty? Can they be removed?
>> Awesome work!
>> //Fredrik
>> 2012/5/16 Erik Joelsson<erik.joelsson at>:
>>> The build-infra project has been quite productive and would like to push an
>>> update to the new build in jdk8.
>>> All webrevs can be found here:
>>> <>
>>> What's new in this push?
>>> * Makefile conversion is basically done (a few minor exceptions but all code
>>> is compiled by new makefiles now).
>>> * Solaris ia32 is now as binary compatible with the old build as linux is.
>>> * Build speed is significantly improved since only new makefiles are used.
>>> (Rough examples for full open build: Linux 7min, Solaris ia32 7min, Windows
>>> 22min)
>>> * Windows still builds and is runnable.
>>> * Several bugfixes.
>>> Why push now, it's not all done yet?
>>> The main driver for this push is the jigsaw project that needs to consume
>>> the full conversion of the makefiles in order to work on the jigsaw build.
>>> We also think that people trying out the new build will enjoy the speed
>>> improvement. Of course we also welcome more feedback on the new build
>>> system.
>>> /Erik

More information about the build-dev mailing list