diff --git a/doc/building.html b/doc/building.html index 84d2aa3ace2..ef2ad2260ce 100644 --- a/doc/building.html +++ b/doc/building.html @@ -41,18 +41,18 @@

!!!!!!!!!!!!!!! THIS IS A MA

Contents

-
-

--with-x=_path_
+

-
-

The XRender Extension Headers are required for building the OpenJDK on Solaris and Linux. The Linux header files are usually available from a “Xrender” development package, it’s recommended that you try and use the package provided by the particular distribution of Linux that you are using. The Solaris XRender header files is included with the other X11 header files in the package SFWxwinc on new enough versions of Solaris and will be installed in /usr/X11/include/X11/extensions/Xrender.h or /usr/openwin/share/include/X11/extensions/Xrender.h

-
+

The XRender Extension Headers are required for building the OpenJDK on Solaris and Linux. The Linux header files are usually available from a “Xrender” development package, it’s recommended that you try and use the package provided by the particular distribution of Linux that you are using. The Solaris XRender header files is included with the other X11 header files in the package SFWxwinc on new enough versions of Solaris and will be installed in /usr/X11/include/X11/extensions/Xrender.h or /usr/openwin/share/include/X11/extensions/Xrender.h

+

Make

The basic invocation of the make utility looks like:

-
-

make all

-
+
make all

This will start the build to the output directory containing the “configuration” that was created by the configure script. Run make help for more information on the available targets.

There are some of the make targets that are of general interest:

-
-

empty
-build everything but no images

-
-
-

all
-build everything including images

-
-
-

all-conf
-build all configurations

-
-
-

images
-create complete j2sdk and j2re images

-
-
-

install
-install the generated images locally, typically in /usr/local

-
-
-

clean
-remove all files generated by make, but not those generated by configure

-
-
-

dist-clean
-remove all files generated by both and configure (basically killing the configuration)

-
-
-

help
-give some help on using make, including some interesting make targets

-
+

Testing

When the build is completed, you should see the generated binaries and associated files in the j2sdk-image directory in the output directory. In particular, the build/*/images/j2sdk-image/bin directory should contain executables for the OpenJDK tools and utilities for that configuration. The testing tool jtreg will be needed and can be found at: the jtreg site. The provided regression tests in the repositories can be run with the command:

-
-

cd test && make PRODUCT_HOME=`pwd`/../build/*/images/j2sdk-image all

-
+
cd test && make PRODUCT_HOME=`pwd`/../build/*/images/j2sdk-image all

Appendix A: Hints and Tips

FAQ

@@ -446,7 +372,7 @@

FAQ

Q: Do you require a specific version of autoconf for regenerating generated-configure.sh?
A: Yes, version 2.69 is required and should be easy enough to aquire on all supported operating systems. The reason for this is to avoid large spurious changes in generated-configure.sh.

Q: How do you regenerate generated-configure.sh after making changes to the input files?
-A: Regnerating generated-configure.sh should always be done using the script common/autoconf/autogen.sh to ensure that the correct files get updated. This script should also be run after mercurial tries to merge generated-configure.sh as a merge of the generated file is not guaranteed to be correct.

+A: Regnerating generated-configure.sh should always be done using the script common/autoconf/autogen.sh to ensure that the correct files get updated. This script should also be run after git tries to merge generated-configure.sh as a merge of the generated file is not guaranteed to be correct.

Q: What are the files in common/makefiles/support/* for? They look like gibberish.
A: They are a somewhat ugly hack to compensate for command line length limitations on certain platforms (Windows, Solaris). Due to a combination of limitations in make and the shell, command lines containing too many files will not work properly. These helper files are part of an elaborate hack that will compress the command line in the makefile and then uncompress it safely. We’re not proud of it, but it does fix the problem. If you have any better suggestions, we’re all ears! :-)

Q: I want to see the output of the commands that make runs, like in the old build. How do I do that?
@@ -511,17 +437,15 @@

Solving build problems

Faster compiles are possible using a tool called ccache.

  • File time issues:
    If you see warnings that refer to file time stamps, e.g.

    -
    -

    Warning message: File 'xxx' has modification time in the future.
    -Warning message: Clock skew detected. Your build may be incomplete.

    -
    +

    These warnings can occur when the clock on the build machine is out of sync with the timestamps on the source files. Other errors, apparently unrelated but in fact caused by the clock skew, can occur along with the clock skew warnings. These secondary errors may tend to obscure the fact that the true root cause of the problem is an out-of-sync clock.

    If you see these warnings, reset the clock on the build machine, run “gmake clobber” or delete the directory containing the build output, and restart the build from the beginning.

  • Error message: Trouble writing out table to disk
    Increase the amount of swap space on your build machine. This could be caused by overloading the system and it may be necessary to use:

    -
    -

    make JOBS=1

    -
    +
    make JOBS=1

    to reduce the load on the system.

  • Error Message: libstdc++ not found:
    This is caused by a missing libstdc++.a library. This is installed as part of a specific package (e.g. libstdc++.so.devel.386). By default some 64-bit Linux versions (e.g. Fedora) only install the 64-bit version of the libstdc++ package. Various parts of the JDK build require a static link of the C++ runtime libraries to allow for maximum portability of the built images.

  • @@ -546,7 +470,7 @@

    Solving build problems

    rm fails with "Directory not empty"
    unzip fails with "cannot create ... Permission denied"
    unzip fails with "cannot create ... Error 50"

    -

    The CYGWIN software can conflict with other non-CYGWIN software. See the CYGWIN FAQ section on BLODA (applications that interfere with CYGWIN).

    +

    The CYGWIN software can conflict with other non-CYGWIN software. See the CYGWIN FAQ section on BLODA (applications that interfere with CYGWIN).

  • Windows Error Message: spawn failed
    Try rebooting the system, or there could be some kind of issue with the disk or disk partition being used. Sometimes it comes with a “Permission Denied” message.

  • @@ -554,7 +478,7 @@

    Solving build problems

    Appendix B: GNU make

    The Makefiles in the OpenJDK are only valid when used with the GNU version of the utility command make (usually called gmake on Solaris). A few notes about using GNU make: