Review request for 6926663: incremental modules build support

Mandy Chung mandy.chung at oracle.com
Fri Jul 9 16:56:13 UTC 2010


Alan, Kelly,

The webrevs are updated:
   http://cr.openjdk.java.net/~mchung/6926663/jdk-webrev.01/
   http://cr.openjdk.java.net/~mchung/6926663/top-webrev.01/

You have seen most of the changes in the jigsaw-dev discussion.  The 
main changes for the incremental build are as follows:
1. make/common/shared/Defs.gmk
    - added JDK_IMAGE_NAME and JRE_IMAGE_NAME variables (that are also 
used by the top forest repo)
2. make/modules/Makefile has the most significant change to support 
incremental build
3. make/common/Library.gmk, Defs.gmk
    - call TouchModule (defined in Defs-modules.gmk) to record if 
non-class file is updated.
4. ClassAnalyzer
    - moved from make/modules/tools to make/tools/classanalyzer to 
separate from make/modules/Makefile so that the tool is built once (if 
no change is made).
    - take a properties file to specify properties of the output modules 
as well as the names of a few platform well-known modules
5. make/modules/modules.properties
    - specify the properties for jdk modules e.g. name of the boot and 
base module

Kelly,
   Alan is going to do a detailed review of the class analyzer tool when 
he returns from vacation next week.  Can you help review other makefile 
changes?

Thanks
Mandy

Mandy Chung wrote:
> Alan, Kelly,
>
> Webrev:
>    http://cr.openjdk.java.net/~mchung/6926663
>
> It in fact contains 2 fixes:
> 1. integrate the latest jdk modularity fixes from jigsaw repos
>    - add modules target in the top forest makefile [1]
>    - support SKIP_BOOT_CYCLE=false modules build [2]
>    - fix a couple of bugs in the launcher [3]
>    - add JDK_HOST_PATH to support cross-architectural modules build [4]
>    - cleanup on the modules.config and module names in makefiles
>
> 2.  incremental modules build support to ease jdk development
>    - the changes are mainly in make/modules and 
> make/tools/classanalyzer files.
>
>    The modules build includes two main steps:
>    a. run the class analyzer tool to assign classes and resources in 
> the jdk modules and analyzes their dependencies
>    b. modularize the build output and create a module library 
> containing the jdk modules
>
> I created a new tool com.sun.classanalyzer.Modularizer to do the files 
> copying in step 2.  Both ClassAnalyzer and Modularizer will process 
> classes/resources files that are updated since the previous build.  
> The jdk build will update a new file submodules/.modules.update if 
> classes are recompiled, a library is rebuilt, or a file is installed 
> in the jdk.  The modules build will use the timestamp of 
> .modules.update file to determine if it should do an incremental or do 
> a full modules build.
>
> Thanks
> Mandy
>
> [1] 
> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-March/000742.html
> [2] 
> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-March/000613.html
> [3] 
> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-February/000523.html 
>
> [4] 
> http://mail.openjdk.java.net/pipermail/jigsaw-dev/2010-March/000683.html




More information about the build-dev mailing list