Need Reviewers - corba cygwin build time improvements

Jonathan Gibbons Jonathan.Gibbons at Sun.COM
Sun Aug 30 00:17:01 UTC 2009


Kelly,

There are vestigial references to SCCS which could presumably go away.

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

-- 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