Setting Up Your Workspace
There are building instructions in the workspace itself: http://hg.openjdk.java.net/mlvm/mlvm/file/tip/README.txt
Make a directory which will contain both sets of repositories (patches and full sources), and pull everything there.
The sources repository based at http://hg.openjdk.java.net/hsx/hotspot-comp (This is as of 9/2011; earlier they were based at jdk7/jdk7 and then at bsd-port/bsd-port.)
Then create symbolic links to the patch directories from the corresponding
.hg directories of the full sources. There is a shell script which will do this automatically, or you can do it by hand.
Since patches are guarded, you need a non-empty guards file in order to apply patches. Select the desired guards in each source repository that has a patch queue. There is a shell script which will distribute the hg command to each patch queue, or you can do it by hand:
The shell script
current-release.sh simply digs out the most recent release hash from the source repository; it will be something like
For convenience, everything after the
fclone operations is packaged up in a makefile, which you can invoke on a variety of targets:
Things to watch out for in the makefile:
forcetargets are hyper-conservative, assuming the patches are worthless unless the base revision matches exactly.
checktarget is likely to fail unless the base revision has been forced, but if it passes you can expect the patches to apply cleanly.
buildtarget is probably oversimplified.
Once patches are applied, build as usual. Build instructions are posted with the OpenJDK Build Group.
TO DO: What are other good references to build advice?
For the most basic JVM enhancements, you may only need to build a Hotspot JVM and apply incremental testing, rather than build a whole JDK/JRE. See the patch document files, or this wiki, for information about incremental testing procedures for specific patch sets.