diff -r 71c04702a3d5 -r 72e3ae9a25eb doc/building.html --- a/doc/building.html Tue Sep 12 19:03:39 2017 +0200 +++ b/doc/building.html Tue Sep 12 19:03:56 2017 +0200 @@ -6,7 +6,7 @@ Building OpenJDK - + @@ -22,9 +22,6 @@
  • Introduction
  • Getting the Source Code
  • Build Hardware Requirements

    Failure to follow this procedure might result in hard-to-debug build problems.

  • -

    Using get_source.sh

    -

    The simplest way to get the entire forest is probably to clone the top-level repository and then run the get_source.sh script, like this:

    -
    hg clone http://hg.openjdk.java.net/jdk9/jdk9
    -cd jdk9
    -bash get_source.sh
    -

    The first time this is run, it will clone all the sub-repositories. Any subsequent execution of the script will update all sub-repositories to the latest revision.

    -

    Using hgforest.sh

    -

    The hgforest.sh script is more expressive than get_source.sh. It takes any number of arguments, and runs hg with those arguments on each sub-repository in the forest. The get_source.sh script is basically a simple wrapper that runs either hgforest.sh clone or hgforest.sh pull -u.

    - -

    Using the Trees Extension

    -

    The trees extension is a Mercurial add-on that helps you deal with the forest. More information is available on the Code Tools trees page.

    -

    Installing the Extension

    -

    Install the extension by cloning http://hg.openjdk.java.net/code-tools/trees and updating your .hgrc file. Here's one way to do this:

    -
    cd ~
    -mkdir hg-ext
    -cd hg-ext
    -hg clone http://hg.openjdk.java.net/code-tools/trees
    -cat << EOT >> ~/.hgrc
    -[extensions]
    -trees=~/hg-ext/trees/trees.py
    -EOT
    -

    Initializing the Tree

    -

    The trees extension needs to know the structure of the forest. If you have already cloned the entire forest using another method, you can initialize the forest like this:

    -
    hg tconf --set --walk --depth
    -

    Or you can clone the entire forest at once, if you substitute clone with tclone when cloning the top-level repository, e.g. like this:

    -
    hg tclone http://hg.openjdk.java.net/jdk9/jdk9
    -

    In this case, the forest will be properly initialized from the start.

    -

    Other Operations

    -

    The trees extensions supplement many common operations with a trees version by prefixing a t to the normal Mercurial command, e.g. tcommit, tstatus or tmerge. For instance, to update the entire forest:

    -
    hg tpull -u

    Build Hardware Requirements

    OpenJDK is a massive project, and require machines ranging from decent to powerful to be able to build in a reasonable amount of time, or to be able to complete a build at all.

    We strongly recommend usage of an SSD disk for the build, since disk speed is one of the limiting factors for build performance.

    @@ -327,8 +284,7 @@

    gcc

    -

    The minimum accepted version of gcc is 4.3. Older versions will not be accepted by configure.

    -

    However, gcc 4.3 is quite old and OpenJDK is not regularly tested on this version, so it is recommended to use a more modern gcc.

    +

    The minimum accepted version of gcc is 4.7. Older versions will generate a warning by configure and are unlikely to work.

    OpenJDK 9 includes patches that should allow gcc 6 to compile, but this should be considered experimental.

    In general, any version between these two should be usable.

    clang