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