Need Reviewers - corba cygwin build time improvements

Kelly O'Hair Kelly.Ohair at Sun.COM
Mon Aug 31 17:32:21 UTC 2009



Jonathan Gibbons wrote:
> Kelly,
> 
> There are vestigial references to SCCS which could presumably go away.

I will delete them. Good riddance. ;^)

> 
> Somewhat inconsistently, you use BOOT_JAVAC_CMD and BOOT_JAR_CMD, but 
> plain JAVAH_CMD -- is this intentional?

Not sure what was intentional here, but I'd rather leave this
alone. I don't think it needs to use the BOOT javah at all, and
only uses the BOOT javac to build the make/tools.

As far as jar is concerned, I think the only jar ever run is the
BOOT jar, and that may be true in the jdk repository too.

The corba work I have done so far translates to the jdk repository, but
further work in corba makefiles doesn't seem worth it, it will
eventually be converted to ant, because the repository will eventually
be 100% java.  I was just using the corba repository to test my
optimization theories, faster to build than the jdk, but very
similar.

Thanks for the review.

-kto

> 
> -- Jon
> 
> 
> On Aug 29, 2009, at 3:12 PM, Kelly O'Hair wrote:
> 
>>
>> 6875240: Reduce Makefile build time by limiting repeated exec's
>>
>> Webrev is at:
>>   
>> http://cr.openjdk.java.net/~ohair/openjdk7/jdk7-build-cygwin-6875240/webrev/ 
>>
>>
>> Summary of Issue:
>>  JDK builds with CYGWIN, especially on Windows 2003 X64 are experiencing
>>  slow build times, when compared to using the MKS Unix toolset.
>>  Indications are that CYGWIN has a slower fork/exec, and access to
>>  the file system can be up to 2X slower from CYGWIN tools.
>>  It is assumed that this is all due to the emulation layer of CYGWIN.
>>
>> What does this impact:
>>  This does not impact the hotspot or ant-based builds due to their
>>  limited use of CYGWIN utilities and minimal fork/exec's.
>>  So this effort will be directed at the corba and jdk repositories.
>>
>> Phase One was to see if the corba repository build time could be
>> improved. Corba build results are as follows (rough timings):
>>
>>                             Before Changes       After Changes
>>  MKS corba build time:         7mins                 5mins
>>  CYGWIN corba build time:     20mins                10mins
>>
>> Not as good as MKS (http://www.mkssoftware.com/) unix tools,
>> but much better than before.
>>
>> (And yes, the corba makefiles may be replaced with an ant script
>> some day, which should make it build even faster, but this served
>> as an experiment before tackling the larger jdk repository)
>>
>> Summary of the changes:
>>
>>  * Clear out .SUFFIXES. to reduce default rule searches
>>
>>  * Rely on $(CURDIR) defined by GNU make
>>
>>  * Use 'make -C dir' instead of $(CD) $@; $(MAKE)
>>
>>  * 'export' make variables that would normally be re-defined in
>>    sub-makes, this adds more variables to the environment of the
>>    sub-makes but prevents some fork/exec's from happening.
>>
>>  * Removed the TIMING logic and some of the echos in the Makefile
>>    SUBDIRS looping (we could use MAKE="time $(MAKE)" instead).
>>
>>  * Replace use of the find command with the GNU make wildcard function.
>>
>>  * Get rid of unnecessary fork/exec's, merge command lines where 
>> possible.
>>
>> -kto
>>
> 



More information about the build-dev mailing list