# HG changeset patch # User ohair # Date 1218064880 25200 # Node ID 13c9fcc3d068d5f378b453a0ee6dba74738fd876 # Parent 75261da60fff5294b382864e2939d37cdc011f41 6724669: JDK7: Official change to Sun Studio 12 compilers on Solaris Reviewed-by: tbell diff -r 75261da60fff -r 13c9fcc3d068 jdk/make/README-builds.html --- a/jdk/make/README-builds.html Wed Jul 30 19:40:57 2008 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1452 +0,0 @@ - - - -
-- - -- This README file contains build instructions for the - OpenJDK. - Building the source code for the - OpenJDK - requires - a certain degree of technical expertise. -
-- - --
-- Introduction
-- Minimum Build Environments
-- Specific Developer Build Environments
-- Source Directory Structure
-- Build Information -
--
-- GNU Make (gmake)
-- Basic Linux System Setup
-- Basic Solaris System Setup
-- Basic Windows System Setup
-- Build Dependencies
--
-- Bootstrap JDK
-- Binary Plugs
-- Certificate Authority File (cacert)
-- Compilers - -
-- Linux and Solaris: - -
-- Windows only: -
--
-- Unix Command Tools (CYGWIN)
-- DirectX 9.0 SDK
-- Creating the Build
-- Testing the Build
-- Environment/Make Variables
-- Troubleshooting
-
-- - -- This file often describes specific requirements for what we call the - "minimum build environments" (MBE) for the JDK. - Building with the MBE will generate the most compatible - bits that install on, and run correctly on, the most variations - of the same base OS and hardware architecture. - These usually represent what is often called the - least common denominator platforms. - It is understood that most developers will NOT be using these - specific platforms, and in fact creating these specific platforms - may be difficult due to the age of some of this software. -
- -
- The minimum OS and C/C++ compiler versions needed for building the - OpenJDK: -
-
- -- -
-- - - -Base OS and Architecture -OS -Compiler -- -Linux X86 (32bit) -Red Hat Enterprise Linux 4 -gcc 4 -- -Linux X64 (64bit) -Red Hat Enterprise Linux 4 -gcc 4 -- -Solaris SPARC (32bit) -Solaris 10 + patches - -
- See SunSolve for patch downloads. -Sun Studio 11 -- -Solaris SPARCV9 (64bit) -Solaris 10 + patches - -
- See SunSolve for patch downloads. -Sun Studio 11 -- -Solaris X86 (32bit) -Solaris 10 + patches - -
- See SunSolve for patch downloads. -Sun Studio 11 -- -Solaris X64 (64bit) -Solaris 10 + patches - -
- See SunSolve for patch downloads. -Sun Studio 11 -- -Windows X86 (32bit) -Windows XP -Microsoft Visual Studio .NET 2003 Professional -- - -Windows X64 (64bit) -Windows Server 2003 - Enterprise x64 Edition -Microsoft Platform SDK - April 2005 -
-- -- We won't be listing all the possible environments, but - we will try to provide what information we have available to us. -
- TBD -- -
- TBD -- -
-- - -- In addition to needing the Bootstrap JDK and the Binary Plugs, - when building on Ubuntu you will need to - make sure certain packages are installed. - In particular, certain X11 packages, make, m4, gawk, gcc 4, - binutils, cups, freetype - and alsa. - -
Ubuntu 6.06
- -- The following list of packages for Ubuntu 6.06 is a working set that - does appear to work. - -
- Note that it's quite possible that some of these - packages are not required, so anyone discovering that some of the - packages listed below are NOT required, - please let the - OpenJDK - team know. -
- All the packages below can be installed with the - Synaptic Package manager provided with the base Ubuntu 6.06 release. - -
-- --
-- binutils (2.16.1cvs20060117-1ubuntu2.1)
-- cpp (4:4.0.3-1)
-- cpp-4.0 (4.0.3-1ubuntu5)
-- libfreetype6-dev
-- g++ (4:4.0.3-1)
-- g++-4.0 (4.0.3-1ubuntu5)
-- gawk (1:3.1.5-2build1)
-- gcc (4:4.0.3-1)
-- gcc-4.0 (4.0.3-1ubuntu5)
-- libasound2-dev (1.0.10-2ubuntu4)
-- libc6 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4
-- libc6-dev (2.3.6-0ubuntu20.4)
-- libc6-i686 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4
-- libcupsys2-dev (1.2.2-0ubuntu0.6.06)
-- libgcrypt11-dev (1.2.2-1)
-- libgnutls-dev (1.2.9-2ubuntu1.1)
-- libgnutls12 (1.2.9-2ubuntu1) to 1.2.9-2ubuntu1.1
-- libgpg-error-dev (1.1-4)
-- libice-dev (2:1.0.0-0ubuntu2)
-- liblockfile1 (1.06.1)
-- libopencdk8-dev (0.5.7-2)
-- libpopt-dev (1.7-5)
-- libsm-dev (2:1.0.0-0ubuntu2)
-- libstdc++6-4.0-dev (4.0.3-1ubuntu5)
-- libtasn1-2-dev (0.2.17-1ubuntu1)
-- libx11-dev (2:1.0.0-0ubuntu9)
-- libxau-dev (1:1.0.0-0ubuntu4)
-- libxaw-headers (2:1.0.1-0ubuntu3)
-- libxaw7-dev (2:1.0.1-0ubuntu3)
-- libxdmcp-dev (1:1.0.0-0ubuntu2)
-- libxext-dev (2:1.0.0-0ubuntu4)
-- libxi-dev (2:1.0.0-0ubuntu3)
-- libxmu-dev (2:1.0.0-0ubuntu3)
-- libxmu-headers (2:1.0.0-0ubuntu3)
-- libxmuu-dev (2:1.0.0-0ubuntu3)
-- libxp-dev (6.8.2-11ubuntu2)
-- libxpm-dev (1:3.5.4.2-0ubuntu3)
-- libxrandr-dev (1:1.1.0.2-0ubuntu4)
-- libxt-dev (1:1.0.0-0ubuntu3)
-- libxtrap-dev (2:1.0.0-0ubuntu2)
-- libxtst-dev (2:1.0.1-0ubuntu2)
-- libxv-dev (2:1.0.1-0ubuntu3)
-- linux-kernel-headers (2.6.11.2-0ubuntu18)
-- m4 (1.4.4-1)
-- make (3.80+3.81.b4-1)
-- ssl-cert (1.0.13)
-- x-dev (7.0.4-0ubuntu2)
-- x11proto-core-dev (7.0.4-0ubuntu2)
-- x11proto-input-dev (1.3.2-0ubuntu2)
-- x11proto-kb-dev (1.0.2-0ubuntu2)
-- x11proto-randr-dev (1.1.2-0ubuntu2)
-- x11proto-record-dev (1.13.2-0ubuntu2)
-- x11proto-trap-dev (3.4.3-0ubuntu2)
-- x11proto-video-dev (2.2.2-0ubuntu2)
-- x11proto-xext-dev (7.0.2-0ubuntu2)
-- xlibs-dev (7.0.0-0ubuntu45)
-- zlib1g-dev (1:1.2.3-6ubuntu4)
-Ubuntu 7.04
- -- Using the Synaptic Package Manager, download the following - packages (double indented packages are automatically aquired - due to package dependencies): - -
---
-- build-essential
--
-- dpkg-dev
-- g++
-- g++-4.1
-- libc6-dev
-- libstdc++6.4.1-dev
-- linux-libc-dev
-- gawk
-- m4
-- libasound2-dev
-- libcupsys2-dev
--
-- libgcrypt11-dev
-- lgnutls-dev
-- libgpg-error-dev
-- liblzo-dev
-- libopencdk8-dev
-- libpopt-dev
-- libtasn1-3-dev
-- zlib1g-dev
-- sun-java6-jdk
--
-- java-common
-- libltdl3
-- odbcinst1debian1
-- sun-java6-bin
-- sun-java6-jre
-- unixodbc
-- xlibs-dev
--
-- (many)
-- x11proto-print-dev
-- libxaw7-dev
--
-- libxaw-headers
-- libxp-dev
-- libfreetype6-dev
-
-- - -- The source code for the - OpenJDK is - delivered in 3 sibling directories: - hotspot, - langtools, - corba, - jaxws, - jaxp, - jdk - and - The hotspot directory contains the source code and make - files for - building the - OpenJDK - Hotspot Virtual Machine. - The jdk - directory contains the source code and make files for - building the - OpenJDK - runtime libraries, tools and demos. - The top level Makefile is used to build the complete OpenJDK - release including building the hotspot - VM, staging the VM binaries, and building the - OpenJDK - runtime libraries, - tools and demos. -
-- - -- Building the - OpenJDK - is done with a gmake - command line and various - environment or make variable settings that direct the make rules - to where various components have been installed. - Where possible the makefiles will attempt to located the various - components in the default locations or any component specific - variable settings. - When the normal defaults fail or components cannot be found, - the various - ALT_* variables (alternates) - can be used to help the makefiles locate components. -
- Refer to the bash/sh/ksh setup file - jdk/make/jdk_generic_profile.sh - if you need help in setting up your environment variables. - A build could be as simple as: -
--- bash - . jdk/make/jdk_generic_profile.sh - gmake sanity && gmake --- Of course ksh or sh would work too. - But some customization will probably be necessary. - The sanity rule will make some basic checks on build - dependencies and generate appropriate warning messages - regarding missing, out of date, or newer than expected components - found on your system. -
-- - -- The Makefiles in the - OpenJDK - are only valid when used with the - GNU version of the utility command make - (gmake). - A few notes about using GNU make: -
-
-- - In general, you need GNU make version 3.78.1 or newer. -
-- - Place the location of the GNU make binary in the PATH. -
-- - Linux: - The /usr/bin/make command should work fine for you. -
-- - Solaris: - Do NOT use /usr/bin/make on Solaris. - If your Solaris system has the software - from the Solaris Companion CD installed, - you should use gmake - which will be located in either the /opt/sfw/bin or - /usr/sfw/bin directory. -
-- - Windows: - Make sure you start your build inside a bash/sh/ksh shell. -
-
- WARNING: Watch out for make version 3.81, it may - not work due to a lack of support for drive letter paths - like C:/. Use a 3.80 version, or find a newer - version that has this problem fixed. -- Information on GNU make, and access to ftp download sites, are - available on the - - GNU make web site - . - The latest source to GNU make is available at - ftp.gnu.org/pub/gnu/make/. -
-- - - -- i586 only: - The minimum recommended hardware for building the Linux version - is a Pentium class processor or better, at least 256 MB of RAM, and - approximately 1.5 GB of free disk space. -
- X64 only: - The minimum recommended hardware for building the Linux - version is an AMD Opteron class processor, at least 512 MB of RAM, and - approximately 4 GB of free disk space. -
- The build will use the tools contained in - /bin and - /usr/bin - of a standard installation of the Linux operating environment. - You should ensure that these directories are in your - PATH. -
- Note that some Linux systems have a habit of pre-populating - your environment variables for you, for example JAVA_HOME - might get pre-defined for you to refer to the JDK installed on - your Linux system. - You will need to unset JAVA_HOME. - It's a good idea to run env and verify the - environment variables you are getting from the default system - settings make sense for building the - OpenJDK. -
-- - --
-- - Install the - Bootstrap JDK, set - ALT_BOOTDIR. -
-- - Install the - Binary Plugs, set - ALT_BINARY_PLUGS_PATH. -
-- - Install or upgrade the FreeType development - package. -
-
-- - - -- The minimum recommended hardware for building the - Solaris SPARC version is an UltraSPARC with 512 MB of RAM. - For building - the Solaris x86 version, a Pentium class processor or better and at - least 128 MB of RAM are recommended. - Approximately 1.4 GB of free disk - space is needed for a 32-bit build. -
- If you are building the 64bit version, you should - run the command "isainfo -v" to verify that you have a - 64-bit installation. - An additional 7 GB of free disk space is needed - for a 64-bit build. -
- The build uses the tools contained in /usr/ccs/bin - and /usr/bin of a standard developer or full installation of - the Solaris operating environment. -
-- - --
-- - Install the - Bootstrap JDK, set - ALT_BOOTDIR. -
-- - Install the - Binary Plugs, set - ALT_BINARY_PLUGS_PATH. -
-- - Install the - Sun Studio Compilers, set - ALT_COMPILER_PATH. -
-- - Install the - CUPS Include files, set - ALT_CUPS_HEADERS_PATH. -
-
-- - - -- i586 only: - The minimum recommended hardware for building the 32bit or X86 - Windows version is an Pentium class processor or better, at least - 512 MB of RAM, and approximately 600 MB of free disk space. - - NOTE: The Windows 2000 build machines need to use the - file system NTFS. - Build machines formatted to FAT32 will not work - because FAT32 doesn't support case-sensitivity in file names. - -
- X64 only: - The minimum recommended hardware for building - the Windows X64 version is an AMD Opteron class processor, at least 1 - GB of RAM, and approximately 10 GB of free disk space. -
-- - - -- Windows: - Note that GNU make is a historic utility and is based very - heavily on shell scripting, so it does not tolerate the Windows habit - of having spaces in pathnames or the use of the \characters in pathnames. - Luckily on most Windows systems, you can use /instead of \, and - there is always a 'short' pathname without spaces for any path that - contains spaces. - Unfortunately, this short pathname can be somewhat dynamic and the - formula is difficult to explain. - You can use cygpath utility to map pathnames with spaces - or the \character into the C:/ style of pathname - (called 'mixed'), e.g. - cygpath -s -m "path". -
- The makefiles will try to translate any pathnames supplied - to it into the C:/ style automatically. -
- Note that use of CYGWIN creates a unique problem with regards to - setting PATH. Normally on Windows - the PATH variable contains directories - separated with the ";" character (Solaris and Linux uses ":"). - With CYGWIN, it uses ":", but that means that paths like "C:/path" - cannot be placed in the CYGWIN version of PATH and - instead CYGWIN uses something like /cygdrive/c/path - which CYGWIN understands, but only CYGWIN understands. - So be careful with paths on Windows. -
-- - --
-- - Install the - CYGWIN product. -
-- - Install the - Bootstrap JDK, set - ALT_BOOTDIR. -
-- - Install the - Binary Plugs, set - ALT_BINARY_PLUGS_PATH.. -
-- - Install the - Microsoft Visual Studio .NET 2003 Professional or the - Microsoft Platform SDK. -
-- - Setup all environment variables for compilers - (see compilers). -
-- - Install - Microsoft DirectX SDK. -
-
-- - -- Depending on the platform, the - OpenJDK - build process has some basic - dependencies on components not part of the - OpenJDK - sources. - Some of these are specific to a platform, some even specific to - an architecture. - Each dependency will have a set of ALT variables that can be set - to tell the makefiles where to locate the component. - In most cases setting these ALT variables may not be necessary - and the makefiles will find defaults on the system in standard - install locations or through component specific variables. - -
Bootstrap JDK
- --- -- All - OpenJDK - builds require access to the previously released - JDK 6, this is often called a bootstrap JDK. - The JDK 6 binaries can be downloaded from Sun's - JDK 6 download site. - For build performance reasons - is very important that this bootstrap JDK be made available on the - local disk of the machine doing the build. - You should always set - ALT_BOOTDIR - to point to the location of - the bootstrap JDK installation, this is the directory pathname - that contains a bin, lib, and include - It's also a good idea to also place its bin directory - in the PATH environment variable, although it's - not required. -
- Solaris: - Some pre-installed JDK images may be available to you in the - directory /usr/jdk/instances. - If you don't set - ALT_BOOTDIR - the makefiles will look in that location for a JDK it can use. -
Binary Plugs
- --- -- Not all of the source code that makes up the JDK is available - under an open-source license. - In order to build an OpenJDK binary from source code, - you must first download and install the appropriate - binary plug bundles from the OpenJDK Download area. - During the OpenJDK build process these "binary plugs" - for the encumbered components will be copied into your - resulting OpenJDK binary build image. - These binary plug files are only for the purpose of - building an OpenJDK binary. - Download the Binary Plugs by selecting the Downloads - link at - the OpenJDK site, - install the bundle, - and make sure you set - ALT_BINARY_PLUGS_PATH - to the root of this installation. -
Certificate Authority File (cacert)
- --- -- See - www.wikipedia.org/wiki/CAcert - for a better understanding of the Certificate Authority (CA). - A certificates file named "cacerts" - represents a system-wide keystore with CA certificates. - In JDK and JRE - binary bundles, the "cacerts" file contains root CA certificates from - several public CAs (e.g., VeriSign, Thawte, and Baltimore). - The source contain a cacerts file - without CA root certificates. - Formal JDK builders will need to secure - permission from each public CA and include the certificates into their - own custom cacerts file. - Failure to provide a populated cacerts file - will result in verification errors of a certificate chain during runtime. - The variable - ALT_CACERTS_FILE - can be used to override the default location of the - cacerts file that will get placed in your build. - By default an empty cacerts file is provided and that should be - fine for most JDK developers. -
Compilers
- -- - - Linux gcc/binutils - - -- --- - Solaris: Sun Studio - -- The GNU gcc compiler version should be 3.2.2 or newer. - The binutils package should be 2.11.93.0.2-11 or newer. - The compiler used should be the default compiler installed - in /usr/bin. -
-- - - Windows i586: Microsoft Visual Studio .NET 2003 Professional - - -- At a minimum, the - - Sun Studio 11 Compilers - (containing version 5.8 of the C and C++ compilers) is required, - with patches from the - - SunSolve web site. -
- Set - ALT_COMPILER_PATH - to point to the location of - the compiler binaries, and place this location in the PATH. -
- The Sun Studio Express compilers at: - - Sun Studio Express Download site - are also an option, although these compilers have not - been extensively used yet. -
-- - - Windows X64: Microsoft Platform SDK April 2005 - - -- The 32-bit - OpenJDK - Windows build - requires Microsoft Visual Studio .NET 2003 (VS2003) Professional - Edition compiler. - The compiler and other tools are expected to reside - in the location defined by the variable VS71COMNTOOLS which - is set by the Microsoft Visual Studio .NET installer. -
- Once the compiler is installed, - it is recommended that you run VCVARS32.BAT - to set the compiler environment variables - MSVCDIR, - INCLUDE, - LIB, and - PATH - prior to building the - OpenJDK. - The above environment variables MUST be set. -
- The Microsoft Visual Studio .NET 2005 (VS2005) compiler - will not work at this time due to the new runtime dll - and the manifest requirements. -
-- -- On X64, - the Microsoft Platform Software - Development Kit (SDK), April 2005 Edition compiler, is required for - building the - OpenJDK - because it contains the C/C++ compiler. - You will need to minimally install the Core SDK and - the MDAC SDK features of this compiler. -
- Once the Platform SDK is installed, - it is recommended that you run SetEnv.Cmd /X64 - to set the compiler environment variables - MSSDK, - MSTOOLS, - INCLUDE, - LIB, and - PATH - prior to building the - OpenJDK. - The above environment variables MUST be set. -
- Note that this compiler may say it's version is a - Microsoft Visual Studio .NET 2005 (VS2005), but be careful, - it will not match the official VS2005 product. - This Platform SDK compiler is only used on X64 builds. -
Common UNIX Printing System (CUPS) Headers (Solaris & Linux)
- --- -- Solaris: - CUPS header files are required for building the - OpenJDK on Solaris. - The Solaris header files can be obtained by installing - the package SFWcups from the Solaris Software - Companion CD/DVD, these often will be installed into - /opt/sfw/cups. -
- Linux: - CUPS header files are required for building the - OpenJDK on Linux. - The Linux header files are usually available from a "cups" - development package, it's recommended that you try and use - the package provided by the particular version of Linux that - you are using. -
- The CUPS header files can always be downloaded from - www.cups.org. - The variable - ALT_CUPS_HEADERS_PATH - can be used to override the default location of the - CUPS Header files. -
FreeType 2
- --- -- Version 2.3 or newer of FreeType is required for building the OpenJDK. - On Unix systems required files can be available as part of your - distribution (while you still may need to upgrade them). - Note that you need development version of package that - includes both FreeType library and header files. -
-- You can always download latest FreeType version from the - FreeType website. -
-- Makefiles will try to pick FreeType from /usr/lib and /usr/include. - In case it is installed elsewhere you will need to set environment - variables - ALT_FREETYPE_LIB_PATH - and - ALT_FREETYPE_HEADERS_PATH - to refer to place where library and header files are installed. -
-Advanced Linux Sound Architecture (ALSA) (Linux only)
- --- -- Linux only: - Version 0.9.1 or newer of the ALSA files are - required for building the - OpenJDK on Linux. - These Linux files are usually available from an "alsa" - of "libasound" - development package, it's recommended that you try and use - the package provided by the particular version of Linux that - you are using. - The makefiles will check this emit a sanity error if it is - missing or the wrong version. - As a last resort you can go to the - - Advanced Linux Sound Architecture Site. -
Windows Specific Dependencies
- -- - Unix Command Tools (CYGWIN) - -- - --- - - Microsoft DirectX 9.0 SDK header files and libraries - - -- The - OpenJDK - requires access to a set of unix command tools - on Windows which can be supplied by - CYGWIN. -
- The - OpenJDK - build - requires CYGWIN version 1.5.12 or newer. - Information about CYGWIN can - be obtained from the CYGWIN website at - www.cygwin.com. -
- By default CYGWIN doesn't install all the tools required for building - the OpenJDK. - Along with the default installation, you need to install - the following tools. -
--- -
-- - - -Binary Name -Package -Description -- -ar.exe -Devel -binutils: The GNU assembler, linker and binary - utilities -- -make.exe -Devel -make: The GNU version of the 'make' utility -- -m4.exe -Interpreters -m4: GNU implementation of the traditional Unix macro - processor -- -cpio.exe -Utils -cpio: A program to manage archives of files -- - -file.exe -Utils -file: Determines file type using 'magic' numbers --- - - MSVCRT.DLL - - -- Microsoft DirectX 9.0 SDK (Summer 2004) - headers are required for building - OpenJDK. - This SDK can be downloaded from - - Microsoft DirectX 9.0 SDK (Summer 2004). - If the link above becomes obsolete, the SDK can be found from - the Microsoft Download Site - (search with "DirectX 9.0 SDK Update Summer 2004"). - The location of this SDK can be set with - ALT_DXSDK_PATH - but it's normally found via the DirectX environment variable - DXSDK_DIR. -
-- - - MSVCR71.DLL - - -- i586 only: - The - OpenJDK - 32bit build requires - access to MSVCRT.DLL - version 6.00.8337.0 or newer. - If the MSVCRT.DLL is not installed in - the system32 directory set the - ALT_MSVCRT_DLL_PATH - variable to the location. -
- X64 only: - The OpenJDK 64bit build requires access to - MSVCRT.DLL version 7.0.3790.0 or newer, which is - usually supplied by the - Platform SDK. - If it is not available from the Platform SDK, - set the - ALT_MSVCRT_DLL_PATH - variable to the location. -
-- -- i586 only: - The - OpenJDK - build requires access to - MSVCR71.DLL version 7.10.3052.4 or newer which should be - supplied by the - Visual Studio product - If the MSVCR71.DLL is not available from the - Visual Studio product - set the - ALT_MSVCR71_DLL_PATH - variable to the location. -
-- - -- Once a machine is setup to build the - OpenJDK, - the steps to create the - build are fairly simple. - The various ALT settings can either be made into variables - or can be supplied on the - gmake - command. -
-
-
-- Use the sanity rule to double check all the ALT settings: -
-- - gmake - sanity - [ARCH_DATA_MODEL=32 or 64] - [other "ALT_" overrides] - --- Start the build with the command: -
-- - gmake - [ARCH_DATA_MODEL=32 or 64] - [ALT_OUTPUTDIR=output_directory] - [other "ALT_" overrides] - --- Solaris: - Note that ARCH_DATA_MODEL is really only needed on Solaris to - indicate you want to built the 64-bit version. - And before the Solaris 64-bit binaries can be used, they - must be merged with the binaries from a separate 32-bit build. - The merged binaries may then be used in either 32-bit or 64-bit mode, with - the selection occurring at runtime - with the -d32 or -d64 options. -
-- - -- When the build is completed, you should see the generated - binaries and associated files in the j2sdk-image - directory in the output directory. - The default output directory is - build/platform, - where platform is one of -
-
- In particular, the - build/platform/j2sdk-image/bin - directory should contain executables for the - OpenJDK - tools and utilities. -- solaris-sparc
-- solaris-sparcv9
-- solaris-i586
-- solaris-amd64
-- linux-i586
-- linux-amd64
-- windows-i586
-- windows-amd64
-- You can test that the build completed properly by using the build - to run the various demos that you will find in the - build/platform/j2sdk-image/demo - directory. -
- The provided regression tests can be run with the jtreg - utility from - the jtreg site. -
-Some of the -environment or make variables (just called variables in this -document) that can impact the build are: - -
- -- - -- -
-- PATH
-- Typically you want to set the PATH to include: -
- --
-- The location of the GNU make binary
-- The location of the JDK 6 java - (see Bootstrap JDK)
-- The location of the C/C++ compilers - (see compilers)
-- The location or locations for the Unix command utilities - (e.g. /usr/bin)
-- ARCH_DATA_MODEL
-- The ARCH_DATA_MODEL variable - is used to specify whether the build is to generate 32-bit or 64-bit - binaries. - The Solaris build supports either 32-bit or 64-bit builds, but - Windows and Linux will support only one, depending on the specific - OS being used. - Normally, setting this variable is only necessary on Solaris. - Set ARCH_DATA_MODEL to 32 for generating 32-bit binaries, - or to 64 for generating 64-bit binaries. -
- -- ALT_BOOTDIR
-- - The location of the bootstrap JDK installation. - See Bootstrap JDK for more information. - You should always install your own local Bootstrap JDK and - always set ALT_BOOTDIR explicitly. -
- -- ALT_OUTPUTDIR
-- - An override for specifying the (absolute) path of where the - build output is to go. - The default output directory will be build/platform. -
- -- ALT_COMPILER_PATH
-- - The location of the C/C++ compiler. - The default varies depending on the platform. -
- -- ALT_CACERTS_FILE
-- - The location of the cacerts file. - The default will refer to - jdk/src/share/lib/security/cacerts. -
- -- ALT_BINARY_PLUGS_PATH
-- - The location of the binary plugs installation. - See Binary Plugs for more information. - You should always have a local copy of a - recent Binary Plugs install image - and set this variable to that location. -
- -- ALT_CUPS_HEADERS_PATH
-- - The location of the CUPS header files. - See CUPS information for more information. - If this path does not exist the fallback path is - /usr/include. -
- - -- ALT_FREETYPE_LIB_PATH
-- - The location of the FreeType shared library. - See FreeType information for details. -
- -- ALT_FREETYPE_HEADERS_PATH
-- - The location of the FreeType header files. - See FreeType information for details. -
- -- Windows specific:
-- -
- --
-- ALT_MSDEVTOOLS_PATH
-- - The location of the Microsoft Visual Studio .NET 2003 - tools 'bin' directory. - The default is usually derived from - ALT_COMPILER_PATH. -
- -- ALT_DXSDK_PATH
-- - The location of the - Microsoft DirectX 9 SDK. - The default will be to try and use the DirectX environment - variable DXSDK_DIR, - failing that, look in C:/DXSDK. -
- -- ALT_MSVCRT_DLL_PATH
-- - The location of the - MSVCRT.DLL. -
- -- ALT_MSVCR71_DLL_PATH
-- - i586 only: - The location of the - MSVCR71.DLL. -
-
-- -- A build can fail for any number of reasons. - Most failures - are a result of trying to build in an environment in which all the - pre-build requirements have not been met. - The first step in - troubleshooting a build failure is to recheck that you have satisfied - all the pre-build requirements for your platform. - Look for the check list of the platform you are building on in the - Table of Contents. - -
- You can validate your build environment by using the sanity - target. - Any errors listed - will stop the build from starting, and any warnings may result in - a flawed product build. - We strongly encourage you to evaluate every - sanity check warning and fix it if required, before you proceed - further with your build. - -
- Some of the more common problems with builds are briefly described - below, with suggestions for remedies. - -
-
-- - Slow Builds: -
---- If your build machine seems to be overloaded from too many - simultaneous C++ compiles, try setting the HOTSPOT_BUILD_JOBS - variable to 1 (if you're using a multiple CPU - machine, setting it to more than the the number of CPUs is probably - not a good idea). -
- Creating the javadocs can be very slow, if you are running - javadoc, consider skipping that step. -
- Faster hardware and more RAM always helps too. - The VM build tends to be CPU intensive (many C++ compiles), - and the rest of the JDK will often be disk intensive. -
- 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. - For example, an out-of-sync clock has been known to cause an old - version of javac to be used to compile some files, resulting in errors - when the pre-1.4 compiler ran across the new assert keyword - in the 1.4 source code. -
- 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. -
- - 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 64bit Linux versions (e.g. Fedora) - only install the 64bit 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. --- - Error Message: cannot restore segment prot after reloc -
-- This is probably an issue with SELinux (See - http://en.wikipedia.org/wiki/SELinux). - Parts of the VM is built without the -fPIC for - performance reasons. --- To completely disable SELinux: -
- -
-- $ su root
-- # system-config-securitylevel
-- In the window that appears, select the SELinux tab
-- Disable SELinux
-- Alternatively, instead of completely disabling it you could - disable just this one check. -
-
-- Select System->Administration->SELinux Management
-- In the SELinux Management Tool which appears, - select "Boolean" from the menu on the left
-- Expand the "Memory Protection" group
-- Check the first item, labeled - "Allow all unconfined executables to use libraries requiring text relocation ..."
-
- Refer to the OpenJDK Build README - for build instructions. - - - -