• Home
    • View
    • Login
    This page
    • Normal
    • Export PDF
    • Page Information

    Loading...
  1. Dashboard
  2. Undefined Space
  3. Multi-Language VM
  4. Building

Page History

Versions Compared

Old Version 2

changes.mady.by.user Lukas Stadler

Saved on Sep 18, 2008

compared with

New Version 3

changes.mady.by.user John Rose

Saved on Jan 27, 2009

  • Previous Change: Difference between versions 1 and 2
  • Next Change: Difference between versions 3 and 4
  • View Page History

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
titlelink patch repos into source repos
$ bash patches/make/link-patch-dirs.sh sources patches
+ ln -s ../../../patches/hotspot sources/hotspot/.hg/patches
+ ln -s ../../../patches/jdk sources/jdk/.hg/patches
+ ln -s ../../../patches/langtools sources/langtools/.hg/patches
$ ls -il patches/hotspot/series sources/hotspot/.hg/patches/series
(should be identical files)

...

No Format
titleselect patch guards
$ export davinci=$(pwd) guards="buildable testable $(sh patches/make/current-release.sh)"
$ sh patches/make/each-patch-repo.sh hg qselect --reapply $guards \
        '$(sh $davinci/patches/make/current-release.sh)'

The shell script current-release.sh simply digs out the most recent release tag hash from the source repository; it will be something like jdk7-b25.TO DO: Put the gory details in patches/Makefile, with a simple build target 7836be3e92d0.

For convenience, everything after the fclone operations is packaged up in a makefile, which you can invoke on a variety of targets:

No Format
titlemakefile targets

$ (cd patches/make; gnumake setup) # build links and select guards
$ (cd patches/make; gnumake check) # check for exact patch base revisions
$ (cd patches/make; gnumake force) # force exact patch base revisions
$ (cd patches/make; gnumake unforce) # restore workspaces to tip revisions
$ (cd patches/make; gnumake patch) # actually apply the selected patches
$ (cd patches/make; gnumake build) # run make in each repo's make subdirectory
$ (cd patches/make; gnumake all) # default target is setup check patch build
$ (cd patches/make; gnumake all RELAX_CHECKS=1) # suppress the check
$ (cd patches/make; gnumake all FORCE_VERSIONS=1) # do 'force' instead of 'check'

Things to watch out for in the makefile:

  • The check and force targets are hyper-conservative, assuming the patches are worthless unless the base revision matches exactly.
  • The check target is likely to fail unless the base revision has been forced, but if it passes you can expect the patches to apply cleanly.
  • The build target is probably oversimplified.

Building

Once patches are applied, build as usual. Build instructions are posted with the OpenJDK Build Group.

...

Overview
Content Tools
ThemeBuilder

Terms of Use
• License: GPLv2
• Privacy • Trademarks • Contact Us

Powered by a free Atlassian Confluence Open Source Project License granted to https://www.atlassian.com/software/views/opensource-community-additional-license-offer. Evaluate Confluence today.

  • Kolekti ThemeBuilder Powered by Atlassian Confluence 8.5.23
  • Kolekti ThemeBuilder printed.by.atlassian.confluence
  • Report a bug
  • Atlassian News
Atlassian
Kolekti ThemeBuilder EngineAtlassian Confluence
{"serverDuration": 183, "requestCorrelationId": "06f78e9009f1a589"}