README-builds.html
changeset 8950 0b2dcb077180
parent 8720 7f6088f46813
child 10208 9bc94e291a10
equal deleted inserted replaced
8949:a07c7c410e02 8950:0b2dcb077180
    52                         <li><a href="#opensuse">OpenSUSE</a></li>
    52                         <li><a href="#opensuse">OpenSUSE</a></li>
    53                         <li><a href="#mandriva">Mandriva</a></li>
    53                         <li><a href="#mandriva">Mandriva</a></li>
    54                         <li><a href="#opensolaris">OpenSolaris</a></li>
    54                         <li><a href="#opensolaris">OpenSolaris</a></li>
    55                     </ul>
    55                     </ul>
    56                 </li>
    56                 </li>
    57                 <li><a href="#directories">Source Directory Structure</a> </li>
    57                 <li><a href="#directories">Source Directory Structure</a> 
       
    58                     <ul>
       
    59                         <li><a href="#drops">Managing the Source Drops</a></li>
       
    60                     </ul>
       
    61                 </li>
    58                 <li><a href="#building">Build Information</a>
    62                 <li><a href="#building">Build Information</a>
    59                     <ul>
    63                     <ul>
    60                         <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
    64                         <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
    61                         <li><a href="#linux">Basic Linux System Setup</a> </li>
    65                         <li><a href="#linux">Basic Linux System Setup</a> </li>
    62                         <li><a href="#solaris">Basic Solaris System Setup</a> </li>
    66                         <li><a href="#solaris">Basic Solaris System Setup</a> </li>
    63                         <li><a href="#windows">Basic Windows System Setup</a> </li>
    67                         <li><a href="#windows">Basic Windows System Setup</a> </li>
    64                         <li><a href="#dependencies">Build Dependencies</a>
    68                         <li><a href="#dependencies">Build Dependencies</a>
    65                             <ul>
    69                             <ul>
    66                                 <li><a href="#bootjdk">Bootstrap JDK</a> </li>
    70                                 <li><a href="#bootjdk">Bootstrap JDK</a> </li>
    67                                 <li><a href="#importjdk">Optional Import JDK</a> </li>
    71                                 <li><a href="#importjdk">Optional Import JDK</a> </li>
    68                                 <li><a href="#ant">Ant</a> </li>
    72                                 <li><a href="#ant">Ant 1.7.1</a> </li>
    69                                 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
    73                                 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
    70                                 <li><a href="#compilers">Compilers</a>
    74                                 <li><a href="#compilers">Compilers</a>
    71                                     <ul>
    75                                     <ul>
    72                                         <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li>
    76                                         <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li>
    73                                         <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li>
    77                                         <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li>
   112         <blockquote>
   116         <blockquote>
   113             The OpenJDK sources are maintained with the revision control system
   117             The OpenJDK sources are maintained with the revision control system
   114             <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
   118             <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
   115             If you are new to Mercurial, please see the
   119             If you are new to Mercurial, please see the
   116             <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a>
   120             <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a>
   117             or refer to the <a href=""http://hgbook.red-bean.com/">Mercurial Book</a>.
   121             or refer to the <a href="http://hgbook.red-bean.com/">Mercurial Book</a>.
   118             The first few chapters of the book provide an excellent overview of
   122             The first few chapters of the book provide an excellent overview of
   119             Mercurial, what it is and how it works.
   123             Mercurial, what it is and how it works.
   120             <br>
   124             <br>
   121             For using Mercurial with the OpenJDK refer to the
   125             For using Mercurial with the OpenJDK refer to the
   122             <a href=""http://openjdk.java.net/guide/repositories.html#installConfig">
   126             <a href="http://openjdk.java.net/guide/repositories.html#installConfig">
   123                Developer Guide: Installing and Configuring Mercurial</a>
   127                 Developer Guide: Installing and Configuring Mercurial</a>
   124             section for more information.
   128             section for more information.
   125             The Forest Extension is not part of the Mercurial install,
   129             The Forest Extension is not part of the Mercurial install,
   126             and is optional,
   130             and is optional,
   127             but can be obtained with the following commands:
   131             but can be obtained with the following commands:
   128             <blockquote>
   132             <blockquote>
   144             <blockquote>
   148             <blockquote>
   145                 To get the entire set of OpenJDK Mercurial repositories
   149                 To get the entire set of OpenJDK Mercurial repositories
   146                 using the Forest Extension:
   150                 using the Forest Extension:
   147                 <blockquote>
   151                 <blockquote>
   148                     <tt>
   152                     <tt>
   149                         hg fclone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
   153                         hg fclone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
   150                     </tt>
   154                     </tt>
   151                 </blockquote>
   155                 </blockquote>
   152                 To get the entire set of OpenJDK Mercurial repositories
   156                 To get the entire set of OpenJDK Mercurial repositories
   153                 without using the Forest Extension:
   157                 without using the Forest Extension:
   154                 <blockquote>
   158                 <blockquote>
   155                     <tt>
   159                     <tt>
   156                         hg clone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
   160                         hg clone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
   157                         <br>cd <i>YourOpenJDK</i>
   161                         <br>cd <i>YourOpenJDK</i>
   158                         <br>sh ./get_source.sh
   162                         <br>sh ./get_source.sh
   159                     </tt>
   163                     </tt>
   160                 </blockquote>
   164                 </blockquote>
   161                 Once you have all the repositories, the
   165                 Once you have all the repositories, the
   205                 </thead>
   209                 </thead>
   206                 <tbody>
   210                 <tbody>
   207                     <tr>
   211                     <tr>
   208                         <td>Linux X86 (32-bit)</td>
   212                         <td>Linux X86 (32-bit)</td>
   209                         <td>Fedora 9</td>
   213                         <td>Fedora 9</td>
   210                         <td>gcc 4 </td>
   214                         <td>gcc 4.3 </td>
   211                         <td>JDK 6u14 FCS </td>
   215                         <td>JDK 6u18</td>
   212                     </tr>
   216                     </tr>
   213                     <tr>
   217                     <tr>
   214                         <td>Linux X64 (64-bit)</td>
   218                         <td>Linux X64 (64-bit)</td>
   215                         <td>Fedora 9</td>
   219                         <td>Fedora 9</td>
   216                         <td>gcc 4 </td>
   220                         <td>gcc 4.3 </td>
   217                         <td>JDK 6u14 FCS </td>
   221                         <td>JDK 6u18</td>
   218                     </tr>
   222                     </tr>
   219                     <tr>
   223                     <tr>
   220                         <td>Solaris SPARC (32-bit)</td>
   224                         <td>Solaris SPARC (32-bit)</td>
   221                         <td>Solaris 10u2 + patches 
   225                         <td>Solaris 10 Update 6</td>
   222                             <br>
       
   223                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
       
   224                                 SunSolve</a> for patch downloads.
       
   225                         </td>
       
   226                         <td>Sun Studio 12 Update 1 + patches</td>
   226                         <td>Sun Studio 12 Update 1 + patches</td>
   227                         <td>JDK 6u14 FCS </td>
   227                         <td>JDK 6u18</td>
   228                     </tr>
   228                     </tr>
   229                     <tr>
   229                     <tr>
   230                         <td>Solaris SPARCV9 (64-bit)</td>
   230                         <td>Solaris SPARCV9 (64-bit)</td>
   231                         <td>Solaris 10u2 + patches
   231                         <td>Solaris 10 Update 6</td>
   232                             <br>
       
   233                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
       
   234                                 SunSolve</a> for patch downloads.
       
   235                         </td>
       
   236                         <td>Sun Studio 12 Update 1 + patches</td>
   232                         <td>Sun Studio 12 Update 1 + patches</td>
   237                         <td>JDK 6u14 FCS </td>
   233                         <td>JDK 6u18</td>
   238                     </tr>
   234                     </tr>
   239                     <tr>
   235                     <tr>
   240                         <td>Solaris X86 (32-bit)</td>
   236                         <td>Solaris X86 (32-bit)</td>
   241                         <td>Solaris 10u2 + patches
   237                         <td>Solaris 10 Update 6</td>
   242                             <br>
       
   243                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
       
   244                                 SunSolve</a> for patch downloads.
       
   245                         </td>
       
   246                         <td>Sun Studio 12 Update 1 + patches</td>
   238                         <td>Sun Studio 12 Update 1 + patches</td>
   247                         <td>JDK 6u14 FCS </td>
   239                         <td>JDK 6u18</td>
   248                     </tr>
   240                     </tr>
   249                     <tr>
   241                     <tr>
   250                         <td>Solaris X64 (64-bit)</td>
   242                         <td>Solaris X64 (64-bit)</td>
   251                         <td>Solaris 10u2 + patches
   243                         <td>Solaris 10 Update 6</td>
   252                             <br>
       
   253                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
       
   254                                 SunSolve</a> for patch downloads.
       
   255                         </td>
       
   256                         <td>Sun Studio 12 Update 1 + patches</td>
   244                         <td>Sun Studio 12 Update 1 + patches</td>
   257                         <td>JDK 6u14 FCS </td>
   245                         <td>JDK 6u18</td>
   258                     </tr>
   246                     </tr>
   259                     <tr>
   247                     <tr>
   260                         <td>Windows X86 (32-bit)</td>
   248                         <td>Windows X86 (32-bit)</td>
   261                         <td>Windows XP</td>
   249                         <td>Windows XP</td>
   262                         <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   250                         <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   263                         <td>JDK 6u14 FCS </td>
   251                         <td>JDK 6u18</td>
   264                     </tr>
   252                     </tr>
   265                     <tr>
   253                     <tr>
   266                         <td>Windows X64 (64-bit)</td>
   254                         <td>Windows X64 (64-bit)</td>
   267                         <td>Windows Server 2003 - Enterprise x64 Edition</td>
   255                         <td>Windows Server 2003 - Enterprise x64 Edition</td>
   268                         <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   256                         <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   269                         <td>JDK 6u14 FCS </td>
   257                         <td>JDK 6u18</td>
   270                     </tr>
   258                     </tr>
   271                 </tbody>
   259                 </tbody>
   272             </table>
   260             </table>
   273             <p>
   261             <p>
   274 	    These same sources do indeed build on many more systems than the
   262 	    These same sources do indeed build on many more systems than the
   298                 After installing <a href="http://fedoraproject.org">Fedora</a> 9
   286                 After installing <a href="http://fedoraproject.org">Fedora</a> 9
   299 	      you need to install several build dependencies. The simplest
   287 	      you need to install several build dependencies. The simplest
   300 	      way to do it is to execute the following commands as user 
   288 	      way to do it is to execute the following commands as user 
   301                 <tt>root</tt>:
   289                 <tt>root</tt>:
   302                 <p/>
   290                 <p/>
   303                 <code>yum-builddep java-openjdk</code>
   291                 <code>yum-builddep java-1.6.0-openjdk</code>
   304                 <p/>
   292                 <p/>
   305                 <code>yum install gcc gcc-c++</code>
   293                 <code>yum install gcc gcc-c++</code>
   306                 <p/>
   294                 <p/>
   307 	      In addition, it's necessary to set a few environment variables for the build:
   295 	      In addition, it's necessary to set a few environment variables for the build:
   308 
   296 
   343                 <p/>
   331                 <p/>
   344                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   332                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   345             </blockquote>
   333             </blockquote>
   346         </blockquote>
   334         </blockquote>
   347         <!-- ------------------------------------------------------ -->
   335         <!-- ------------------------------------------------------ -->
   348         <h3><a name="centos">CentOS 5.2</a></h3>
   336         <h3><a name="centos">CentOS 5.5</a></h3>
   349         <blockquote>
   337         <blockquote>
   350             After installing
   338             After installing
   351             <a href="http://www.centos.org/">CentOS 5.2</a>
   339             <a href="http://www.centos.org/">CentOS 5.5</a>
   352             you need to make sure you have
   340             you need to make sure you have
   353             the following Development bundles installed:
   341             the following Development bundles installed:
   354             <blockquote>
   342             <blockquote>
   355                 <ul>
   343                 <ul>
   356                     <li>Development Libraries</li>
   344                     <li>Development Libraries</li>
   357                     <li>Development Tools</li>
   345                     <li>Development Tools</li>
   358                     <li>Java Development</li>
   346                     <li>Java Development</li>
   359                     <li>X Software Development</li>
   347                     <li>X Software Development (Including XFree86-devel)</li>
   360                 </ul>
   348                 </ul>
   361             </blockquote>
   349             </blockquote>
   362             <p>
   350             <p>
   363                 Plus the following packages:
   351                 Plus the following packages:
   364             <blockquote>
   352             <blockquote>
   550                 files for building the OpenJDK JAXP files.
   538                 files for building the OpenJDK JAXP files.
   551                 The <tt>jdk</tt> directory contains the source code and make files for
   539                 The <tt>jdk</tt> directory contains the source code and make files for
   552                 building the OpenJDK runtime libraries and misc files.
   540                 building the OpenJDK runtime libraries and misc files.
   553                 The top level <tt>Makefile</tt>
   541                 The top level <tt>Makefile</tt>
   554                 is used to build the entire OpenJDK.
   542                 is used to build the entire OpenJDK.
       
   543 
       
   544             <h3><a name="drops">Managing the Source Drops</a></h3>
       
   545             <blockquote>
       
   546                 <p>
       
   547                     The repositories <tt>jaxp</tt> and <tt>jaxws</tt> actually
       
   548                     do not contain the sources for JAXP or JAX-WS.
       
   549                     These products have their own open source procedures at their
       
   550                     <a href="http://jaxp.java.net/">JAXP</a> and
       
   551                     <a href="http://jax-ws.java.net/">JAX-WS</a> home pages.
       
   552                     The OpenJDK project does need access to these sources to build
       
   553                     a complete JDK image because JAXP and JAX-WS are part of the JDK.
       
   554                     The current process for delivery of the JAXP and JAX-WS sources
       
   555                     involves so called "source drop bundles" downloaded from a public
       
   556                     website.
       
   557                     There are many reasons for this current mechanism, and it is
       
   558                     understood that this is not ideal for the open source community.
       
   559                     It is possible this process could change in the future.
       
   560                     <br>
       
   561                     <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk7/">
       
   562                         Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and
       
   563                     JAX-WS sources.
       
   564                 </p>
       
   565 
       
   566                 <h4><a name="dropcreation">Creation of New Source Drop Bundles</a></h4>
       
   567                 <blockquote>
       
   568                     <ol>
       
   569                         <li>
       
   570                             The JAXP or JAX-WS team prepares a new zip bundle,
       
   571                             places a copy in a public download area on java.net,
       
   572                             sends us a link and a list of CRs (Change Request Numbers).
       
   573                             The older download bundles should not be deleted.
       
   574                             It is the responsibility of the JAXP and JAX-WS team to
       
   575                             place the proper GPL legal notices on the sources
       
   576                             and do any filtering or java re-packaging for the
       
   577                             OpenJDK instances of these classes.
       
   578                         </li>
       
   579                         <li>
       
   580                             The OpenJDK team copies this new bundle into shared
       
   581                             area (e.g. <tt>/java/devtools/share/jdk7-drops</tt>).
       
   582                             Older bundles are never deleted so we retain the history.
       
   583                         </li>
       
   584                         <li>
       
   585                             The OpenJDK team edits the ant property file
       
   586                             <tt>jaxp/jaxp.properties</tt> or
       
   587                             <tt>jaxws/jaxws.properties</tt> to update the
       
   588                             base URL, the zip bundle name, and the MD5 checksum
       
   589                             of the zip bundle
       
   590                             (on Solaris: <tt>sum -c md5 <i>bundlename</i></tt>)
       
   591                         </li>
       
   592                         <li>
       
   593                             OpenJDK team reviews and commits those changes with the
       
   594                             given CRs.
       
   595                         </li>
       
   596                     </ol>
       
   597                 </blockquote>
       
   598 
       
   599                 <h4><a name="dropusage">Using Source Drop Bundles</a></h4>
       
   600                 <blockquote>
       
   601                     <p>
       
   602                         The ant scripts that build <tt>jaxp</tt> and <tt>jaxws</tt>
       
   603                         will attempt to locate these zip bundles from the directory
       
   604                         in the environment variable
       
   605                         <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt>.
       
   606                         The checksums protect from getting the wrong, corrupted, or
       
   607                         improperly modified sources.
       
   608                         Once the sources are made available, the population will not
       
   609                         happen again unless a <tt>make clobber</tt> is requested
       
   610                         or the <tt>jaxp/drop/</tt> or <tt>jaxws/drop/</tt>
       
   611                         directory is explicitly deleted.
       
   612                         <br>
       
   613                         <b>NOTE:</b> The default Makefile and ant script behavior
       
   614                         is to NOT download these bundles from the public http site.
       
   615                         In general, doing downloads
       
   616                         during the build process is not advised, it creates too much
       
   617                         unpredictability in the build process.
       
   618                         However, you can use <tt>make ALLOW_DOWNLOADS=true</tt> to
       
   619                         tell the ant script that the download of the zip bundle is
       
   620                         acceptable.
       
   621                     </p>
       
   622                     <p>
       
   623                         The recommended procedure for keeping a cache of these
       
   624                         source bundles would be to download them once, place them
       
   625                         in a directory outside the repositories, and then set
       
   626                         <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> to refer
       
   627                         to that directory.
       
   628                         These drop bundles do change occasionally, so the newer
       
   629                         bundles may need to be added to this area from time to time.
       
   630                     </p>
       
   631                 </blockquote>
       
   632             </blockquote>
   555         </blockquote>
   633         </blockquote>
   556         <!-- ------------------------------------------------------ -->
   634         <!-- ------------------------------------------------------ -->
   557         <hr>
   635         <hr>
   558         <h2><a name="building">Build Information</a></h2>
   636         <h2><a name="building">Build Information</a></h2>
   559         <blockquote>
   637         <blockquote>
   560             Building the OpenJDK
   638             Building the OpenJDK
   561             is done with a <tt><i>gmake</i></tt>
   639             is done with a <a href="#gmake">GNU <tt>make</tt></a> command line
   562             command line and various
   640             and various
   563             environment or make variable settings that direct the make rules
   641             environment or make variable settings that direct the makefile rules
   564             to where various components have been installed.
   642             to where various components have been installed.
   565             Where possible the makefiles will attempt to located the various
   643             Where possible the makefiles will attempt to located the various
   566             components in the default locations or any component specific 
   644             components in the default locations or any component specific 
   567             variable settings.
   645             variable settings.
   568             When the normal defaults fail or components cannot be found,
   646             When the normal defaults fail or components cannot be found,
   576                 A build could be as simple as:
   654                 A build could be as simple as:
   577             <blockquote>
   655             <blockquote>
   578                 <pre><tt>
   656                 <pre><tt>
   579                 bash
   657                 bash
   580                 . jdk/make/jdk_generic_profile.sh
   658                 . jdk/make/jdk_generic_profile.sh
   581                 <i>gmake</i> sanity &amp;&amp; <i>gmake</i>
   659                 <a href="#gmake"><tt>make</tt></a> sanity &amp;&amp; <a href="#gmake"><tt>make</tt></a>
   582                 </tt></pre>
   660                 </tt></pre>
   583             </blockquote>
   661             </blockquote>
   584             <p>
   662             <p>
   585                 Of course ksh or sh would work too.
   663                 Of course ksh or sh would work too.
   586                 But some customization will probably be necessary.
   664                 But some customization will probably be necessary.
   597             GNU version of the utility command <tt>make</tt>
   675             GNU version of the utility command <tt>make</tt>
   598             (<tt><i>gmake</i></tt>).
   676             (<tt><i>gmake</i></tt>).
   599             A few notes about using GNU make:
   677             A few notes about using GNU make:
   600             <ul>
   678             <ul>
   601                 <li>
   679                 <li>
   602                     In general, you need GNU make version 3.81 or newer.
   680                     You need GNU make version 3.81 or newer.
   603                 </li>
   681                 </li>
   604                 <li>
   682                 <li>
   605                     Place the location of the GNU make binary in the <tt>PATH</tt>. 
   683                     Place the location of the GNU make binary in the <tt>PATH</tt>. 
   606                 </li>
   684                 </li>
   607                 <li>
   685                 <li>
   608                     <strong>Linux:</strong>
   686                     <strong>Linux:</strong>
   609                     The <tt>/usr/bin/make</tt> command should work fine for you.
   687                     The <tt>/usr/bin/make</tt> should be 3.81 or newer
       
   688                     and should work fine for you.
       
   689                     If this version is not 3.81 or newer,
       
   690                     see the <a href="#buildgmake">"Building GNU make"</a> section.
   610                 </li>
   691                 </li>
   611                 <li>
   692                 <li>
   612                     <strong>Solaris:</strong>
   693                     <strong>Solaris:</strong>
   613                     Do NOT use <tt>/usr/bin/make</tt> on Solaris.
   694                     Do NOT use <tt>/usr/bin/make</tt> on Solaris.
   614                     If your Solaris system has the software
   695                     If your Solaris system has the software
   615                     from the Solaris Companion CD installed, 
   696                     from the Solaris Companion CD installed, 
   616                     you should use <tt>gmake</tt>
   697                     you should try and use <tt>gmake</tt>
   617                     which will be located in either the <tt>/opt/sfw/bin</tt> or 
   698                     which will be located in either the <tt>/opt/sfw/bin</tt> or 
   618                     <tt>/usr/sfw/bin</tt> directory.
   699                     <tt>/usr/sfw/bin</tt> directory.
   619                     In more recent versions of Solaris GNU make can be found
   700                     In more recent versions of Solaris GNU make might be found
   620                     at <tt>/usr/bin/gmake</tt>. 
   701                     at <tt>/usr/bin/gmake</tt>.<br>
       
   702                     <b>NOTE:</b> It is very likely that this <tt>gmake</tt>
       
   703                     could be 3.80, you need 3.81, in which case,
       
   704                     see the <a href="#buildgmake">"Building GNU make"</a> section.
   621                 </li>
   705                 </li>
   622                 <li>
   706                 <li>
   623                     <strong>Windows:</strong>
   707                     <strong>Windows:</strong>
   624                     Make sure you start your build inside a bash/sh/ksh shell
   708                     Make sure you start your build inside a bash/sh/ksh shell
   625                     and are using a <tt>make.exe</tt> utility built for that
   709                     and are using a <tt>make.exe</tt> utility built for that
   626                     environment (a cygwin <tt>make.exe</tt> is not the same
   710                     environment (a cygwin <tt>make.exe</tt> is not the same
   627                     as a <tt>make.exe</tt> built for something like
   711                     as a <tt>make.exe</tt> built for something like
   628                     <a href="http://www.mkssoftware.com/">MKS</a>). 
   712                     <a href="http://www.mkssoftware.com/">MKS</a>). 
   629                     <br>
   713                     <br>
   630                     <b>WARNING:</b> Watch out for make version 3.81, it may
   714                     <b>WARNING:</b> Watch out on some make 3.81 versions, it may
   631                     not work due to a lack of support for MS-DOS drive letter paths
   715                     not work due to a lack of support for MS-DOS drive letter paths
   632                     like <tt>C:/</tt> or <tt>C:\</tt>.
   716                     like <tt>C:/</tt> or <tt>C:\</tt>.
   633                     Use a 3.80 version, or find a newer
       
   634                     version that has this problem fixed.
       
   635                     The older 3.80 version of make.exe can be downloaded with this
       
   636                     <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
       
   637                         link</a>.
       
   638                     Use of this older 3.80 make.exe may require that you install the
       
   639                     libintl2.dll library or libintl2 cygwin package which is
       
   640                     no longer installed by default by the cygwin installer.
       
   641                     <br>
   717                     <br>
   642                     Also see the
   718                     You may be able to use the information at the
   643                     <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
   719                     <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
   644                         mozilla developer center</a>
   720                         mozilla developer center</a>
   645                     on this topic.
   721                     on this topic.
   646                     <br>
   722                     <br>
   647                     It's hoped that when make 3.82 starts shipping in a future cygwin
   723                     It's hoped that when make 3.82 starts shipping in a future cygwin
   648                     release that this MS-DOS path issue will be fixed.
   724                     release that this MS-DOS path issue will be fixed.
   649                     In addition to the above 3.80 make.exe you can download 
   725                     <br>
   650                     this
   726                     It may be possible to download the version at
   651                     <a href="http://www.cmake.org/files/cygwin/make.exe">
   727                     <a href="http://www.cmake.org/files/cygwin/make.exe">
   652                         www.cmake.org make.exe</a> which will not have a libintl2.dll
   728                         www.cmake.org make.exe</a>.
   653                     dependency.
   729                     <br>
       
   730                     It might be necessary for you to build your own GNU make 3.81,
       
   731                     see the <a href="#buildgmake">"Building GNU make"</a> section
       
   732                     in that case.
   654                 </li>
   733                 </li>
   655             </ul>
   734             </ul>
   656             <p>
   735             <p>
   657                 Information on GNU make, and access to ftp download sites, are
   736                 Information on GNU make, and access to ftp download sites, are
   658                 available on the
   737                 available on the
   660                     GNU make web site
   739                     GNU make web site
   661                 </a>.
   740                 </a>.
   662                 The latest source to GNU make is available at
   741                 The latest source to GNU make is available at
   663                 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
   742                 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
   664                     ftp.gnu.org/pub/gnu/make/</a>.
   743                     ftp.gnu.org/pub/gnu/make/</a>.
       
   744             </p>
       
   745             <!-- ------------------------------------------------------ -->
       
   746             <h4><a name="buildgmake">Building GNU make</a></h4>
       
   747             <blockquote>
       
   748                 First step is to get the GNU make 3.81 source from
       
   749                 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
       
   750                     ftp.gnu.org/pub/gnu/make/</a>.
       
   751                 Building is a little different depending on the OS and unix toolset
       
   752                 on Windows:
       
   753                 <ul>
       
   754                     <li>
       
   755                         <strong>Linux:</strong>
       
   756                         <tt>./configure && make</tt>
       
   757                     </li>
       
   758                     <li>
       
   759                         <strong>Solaris:</strong>
       
   760                         <tt>./configure && gmake CC=gcc</tt>
       
   761                     </li>
       
   762                     <li>
       
   763                         <strong>Windows for CYGWIN:</strong>
       
   764                         <tt>./configure && make</tt>
       
   765                     </li>
       
   766                     <li>
       
   767                         <strong>Windows for MKS: (CYGWIN is recommended)</strong>
       
   768                         <tt>./configure && make -f Makefile.win32</tt>
       
   769                     </li>
       
   770                 </ul>
       
   771             </blockquote>
   665         </blockquote>
   772         </blockquote>
   666         <!-- ------------------------------------------------------ -->
   773         <!-- ------------------------------------------------------ -->
   667         <hr>
   774         <hr>
   668         <h3><a name="linux">Basic Linux System Setup</a></h3>
   775         <h3><a name="linux">Basic Linux System Setup</a></h3>
   669         <blockquote>
   776         <blockquote>
   711                     Install or upgrade the <a href="#freetype">FreeType development
   818                     Install or upgrade the <a href="#freetype">FreeType development
   712                         package</a>.
   819                         package</a>.
   713                 </li>
   820                 </li>
   714                 <li>
   821                 <li>
   715                     Install
   822                     Install
   716                     <a href="#ant">Ant</a>, 
   823                     <a href="#ant">Ant 1.7.1 or newer</a>,
   717                     make sure it is in your PATH.
   824                     make sure it is in your PATH.
   718                 </li>
   825                 </li>
   719             </ol>
   826             </ol>
   720         </blockquote>
   827         </blockquote>
   721         <!-- ------------------------------------------------------ -->
   828         <!-- ------------------------------------------------------ -->
   774                 <li>
   881                 <li>
   775                     Install the <a href="#xrender">XRender Include files</a>.
   882                     Install the <a href="#xrender">XRender Include files</a>.
   776                 </li>
   883                 </li>
   777                 <li>
   884                 <li>
   778                     Install
   885                     Install
   779                     <a href="#ant">Ant</a>, 
   886                     <a href="#ant">Ant 1.7.1 or newer</a>,
   780                     make sure it is in your PATH.
   887                     make sure it is in your PATH.
   781                 </li>
   888                 </li>
   782             </ol>
   889             </ol>
   783         </blockquote>
   890         </blockquote>
   784         <!-- ------------------------------------------------------ -->
   891         <!-- ------------------------------------------------------ -->
   860                     Install 
   967                     Install 
   861                     <a href="#dxsdk">Microsoft DirectX SDK</a>.
   968                     <a href="#dxsdk">Microsoft DirectX SDK</a>.
   862                 </li>
   969                 </li>
   863                 <li>
   970                 <li>
   864                     Install
   971                     Install
   865                     <a href="#ant">Ant</a>, 
   972                     <a href="#ant">Ant 1.7.1 or newer</a>,
   866                     make sure it is in your PATH and set
   973                     make sure it is in your PATH and set
   867                     <tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
   974                     <tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
   868                 </li>
   975                 </li>
   869             </ol>
   976             </ol>
   870         </blockquote>
   977         </blockquote>
   921             <!-- ------------------------------------------------------ -->
  1028             <!-- ------------------------------------------------------ -->
   922             <h4><a name="ant">Ant</a></h4>
  1029             <h4><a name="ant">Ant</a></h4>
   923             <blockquote>
  1030             <blockquote>
   924                 All OpenJDK builds require access to least Ant 1.7.1.
  1031                 All OpenJDK builds require access to least Ant 1.7.1.
   925                 The Ant tool is available from the 
  1032                 The Ant tool is available from the 
   926                 <a href="http://ant.apache.org" target="_blank">
  1033                 <a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip" target="_blank">
   927                     Ant download site</a>.
  1034                     Ant 1.7.1 archive download site</a>.
   928                 You should always make sure <tt>ant</tt> is in your PATH, and
  1035                 You should always make sure <tt>ant</tt> is in your PATH, and
   929                 on Windows you may also need to set 
  1036                 on Windows you may also need to set 
   930                 <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
  1037                 <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
   931                 to point to the location of
  1038                 to point to the location of
   932                 the Ant installation, this is the directory pathname
  1039                 the Ant installation, this is the directory pathname
   933                 that contains a <tt>bin and lib</tt>.
  1040                 that contains a <tt>bin and lib</tt>.
       
  1041                 <br>
       
  1042                 <b>WARNING:</b> Ant versions used from IDE tools like NetBeans
       
  1043                 or installed via system packages may not operate the same
       
  1044                 as the one obtained from the Ant download bundles.
       
  1045                 These system and IDE installers sometimes choose to change
       
  1046                 the ant installation enough to cause differences.
   934             </blockquote>
  1047             </blockquote>
   935             <!-- ------------------------------------------------------ -->
  1048             <!-- ------------------------------------------------------ -->
   936             <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
  1049             <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
   937             <blockquote>
  1050             <blockquote>
   938                 See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
  1051                 See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
   960             <!-- ------------------------------------------------------ -->
  1073             <!-- ------------------------------------------------------ -->
   961             <h4><a name="compilers">Compilers</a></h4>
  1074             <h4><a name="compilers">Compilers</a></h4>
   962             <blockquote>
  1075             <blockquote>
   963                 <strong><a name="gcc">Linux gcc/binutils</a></strong>
  1076                 <strong><a name="gcc">Linux gcc/binutils</a></strong>
   964                 <blockquote>
  1077                 <blockquote>
   965                     The GNU gcc compiler version should be 4 or newer.
  1078                     The GNU gcc compiler version should be 4.3 or newer.
   966                     The compiler used should be the default compiler installed
  1079                     The compiler used should be the default compiler installed
   967                     in <tt>/usr/bin</tt>.
  1080                     in <tt>/usr/bin</tt>.
   968                 </blockquote>
  1081                 </blockquote>
   969                 <strong><a name="studio">Solaris: Sun Studio</a></strong>
  1082                 <strong><a name="studio">Solaris: Sun Studio</a></strong>
   970                 <blockquote>
  1083                 <blockquote>
  1045                         been extensively used yet.
  1158                         been extensively used yet.
  1046                 </blockquote>
  1159                 </blockquote>
  1047                 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
  1160                 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
  1048                 <blockquote>
  1161                 <blockquote>
  1049                     <p>
  1162                     <p>
  1050                         <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
  1163                         <b>BEGIN WARNING</b>: JDK 7 has transitioned to
  1051                         use the newest VS2010 Microsoft compilers. These build instructions are updated
  1164                         use the newest VS2010 Microsoft compilers.
  1052                         to show where we are going. We have a QA process to go through before
  1165                         No other compilers are known to build the entire JDK,
  1053                         official builds actually use VS2010. So for now, official builds are
       
  1054                         still using VS2003. No other compilers are known to build the entire JDK,
       
  1055                         including non-open portions.
  1166                         including non-open portions.
  1056                         So for now you should be able to build with either VS2003 or VS2010.
       
  1057                         We do not guarantee that VS2008 will work, although there is sufficient
       
  1058                         makefile support to make at least basic JDK builds plausible.
       
  1059                         Visual Studio 2010 Express compilers are now able to build all the
  1167                         Visual Studio 2010 Express compilers are now able to build all the
  1060                         open source repositories, but this is 32 bit only. To build 64 bit
  1168                         open source repositories, but this is 32 bit only. To build 64 bit
  1061                         Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
  1169                         Windows binaries use the the 7.1 Windows SDK.
       
  1170                         <b>END WARNING.</b>
  1062                     <p>
  1171                     <p>
  1063                         The 32-bit OpenJDK Windows build
  1172                         The 32-bit OpenJDK Windows build requires
  1064                         requires
       
  1065                         Microsoft Visual Studio C++ 2010 (VS2010) Professional
  1173                         Microsoft Visual Studio C++ 2010 (VS2010) Professional
  1066                         Edition or Express compiler.
  1174                         Edition or Express compiler.
  1067                         The compiler and other tools are expected to reside
  1175                         The compiler and other tools are expected to reside
  1068                         in the location defined by the variable
  1176                         in the location defined by the variable
  1069                         <tt>VS100COMNTOOLS</tt> which
  1177                         <tt>VS100COMNTOOLS</tt> which
  1086                         The path <tt>/usr/bin</tt> must be after the path to the
  1194                         The path <tt>/usr/bin</tt> must be after the path to the
  1087                         Visual Studio product.
  1195                         Visual Studio product.
  1088                 </blockquote>
  1196                 </blockquote>
  1089                 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
  1197                 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
  1090                 <blockquote>
  1198                 <blockquote>
  1091                     For <b>X64</b>, builds, when using the VS2010 Professional
  1199                     For <b>X64</b>, the set up is much the same as 32 bit
  1092                     compiler, the 64 bit build set up is much the same as 32 bit
       
  1093                     except that you run <tt>amd64\VCVARS64.BAT</tt>
  1200                     except that you run <tt>amd64\VCVARS64.BAT</tt>
  1094                     to set the compiler environment variables.
  1201                     to set the compiler environment variables.
  1095                     Previously 64 bit builds had used the 64 bit compiler in
  1202                     Previously 64 bit builds had to use the 64 bit compiler in
  1096                     an unbundled Windows SDK but this is no longer necessary if
  1203                     an unbundled Windows SDK but this is no longer necessary if
  1097                     you have VS2010 Professional.
  1204                     you have VS2010 Professional.
  1098                 </blockquote>
  1205                 </blockquote>
  1099                 <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong>
  1206                 <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong>
  1100                 For a free alternative for 64 bit builds, use the 7.1 SDK.
  1207                 For a free alternative for 64 bit builds, use the 7.1 SDK.
  1612                     on Solaris
  1719                     on Solaris
  1613                     <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 
  1720                     <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 
  1614                     and on Windows with CYGWIN
  1721                     and on Windows with CYGWIN
  1615                     <tt>/usr/bin</tt>.
  1722                     <tt>/usr/bin</tt>.
  1616                 </dd>
  1723                 </dd>
       
  1724                 <dt><tt><a name="ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> </dt>
       
  1725                 <dd>
       
  1726                     The location of any source drop bundles
       
  1727                     (see <a href="#drops">Managing the Source Drops</a>).
       
  1728                     The default will be
       
  1729                     <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk7-drops</tt>.
       
  1730                 </dd>
  1617                 <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
  1731                 <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
  1618                 <dd>
  1732                 <dd>
  1619                     <strong>Solaris only:</strong>
  1733                     <strong>Solaris only:</strong>
  1620                     An override for specifying where the Unix CCS
  1734                     An override for specifying where the Unix CCS
  1621                     command set are located.
  1735                     command set are located.
  1647                     and
  1761                     and
  1648                     <tt>windows-amd64</tt>.
  1762                     <tt>windows-amd64</tt>.
  1649                     Where each of these directories contain the import JDK image
  1763                     Where each of these directories contain the import JDK image
  1650                     for that platform.
  1764                     for that platform.
  1651                 </dd>
  1765                 </dd>
       
  1766                 <dt><a name="ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a></dt>
       
  1767                 <dd>
       
  1768 		    The top-level directory of the libraries and include files for the platform's 
       
  1769 		    graphical programming environment. The default location is platform specific. 
       
  1770 		    For example, on Linux it defaults to <tt>/usr/X11R6/</tt>.
       
  1771 		</dd>
  1652                 <dt><strong>Windows specific:</strong></dt>
  1772                 <dt><strong>Windows specific:</strong></dt>
  1653                 <dd>
  1773                 <dd>
  1654                     <dl>
  1774                     <dl>
  1655                         <dt><a name="ALT_WINDOWSSDKDIR"><tt>ALT_WINDOWSSDKDIR</tt></a> </dt>
  1775                         <dt><a name="ALT_WINDOWSSDKDIR"><tt>ALT_WINDOWSSDKDIR</tt></a> </dt>
  1656                         <dd>
  1776                         <dd>
  1657                             The location of the 
  1777                             The location of the 
  1658                             Microsoft Windows SDK where some tools will be
  1778                             Microsoft Windows SDK where some tools will be
  1659 			    located.
  1779 			    located.
  1660 			    The default is whatever WINDOWSSDKDIR is set to
  1780 			    The default is whatever WINDOWSSDKDIR is set to
  1661 			    (or WindowsSdkDir) or the path
  1781 			    (or WindowsSdkDir) or the path
  1662 			    <pre>
  1782                             <br>
  1663                             c:\Program Files\Microsoft SDKs\Windows\v6.1a
  1783                             <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt>
  1664 			    </pre>
       
  1665                         </dd>
  1784                         </dd>
  1666                         <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
  1785                         <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
  1667                         <dd>
  1786                         <dd>
  1668                             The location of the 
  1787                             The location of the 
  1669                             <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  1788                             <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  1676                             The location of the 
  1795                             The location of the 
  1677                             <a href="#msvcrNN"><tt>MSVCR100.DLL</tt></a>. 
  1796                             <a href="#msvcrNN"><tt>MSVCR100.DLL</tt></a>. 
  1678                         </dd>
  1797                         </dd>
  1679                     </dl>
  1798                     </dl>
  1680                 </dd>
  1799                 </dd>
       
  1800                 <dt><strong>Cross-Compilation Support:</strong></dt>
       
  1801                 <dd>
       
  1802                     <dl>
       
  1803                         <dt><a name="CROSS_COMPILE_ARCH"><tt>CROSS_COMPILE_ARCH</tt></a> </dt>
       
  1804                         <dd>
       
  1805                             Set to the target architecture of a cross-compilation build. If set, this
       
  1806                             variable is used to signify that we are cross-compiling. The expectation
       
  1807                             is that <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> is set
       
  1808                             to point to the cross-compiler and that any cross-compilation specific flags
       
  1809                             are passed using <a href="#EXTRA_CFLAGS"><tt>EXTRA_CFLAGS</tt></a>.
       
  1810 			    The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should 
       
  1811 			    also be set to point to the graphical header files (e.g. X11) provided with 
       
  1812 			    the cross-compiler.
       
  1813                             When cross-compiling we skip execution of any demos etc that may be built, and
       
  1814                             also skip binary-file verification.
       
  1815                         </dd>
       
  1816                         <dt><tt><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></tt> </dt>
       
  1817                         <dd>
       
  1818 			   Used to pass cross-compilation options to the cross-compiler.
       
  1819                            These are added to the <tt>CFLAGS</tt> and <tt>CXXFLAGS</tt> variables. 
       
  1820 			</dd>
       
  1821                         <dt><tt><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></tt> </dt>
       
  1822                         <dd>
       
  1823                             Used primarily for cross-compilation builds (and always set in that case)
       
  1824                             this variable indicates that tools from the boot JDK should be used during
       
  1825                             the build process, not the tools (<tt>javac</tt>, <tt>javah</tt>, <tt>jar</tt>)
       
  1826                             just built (which can't execute on the build host).
       
  1827                         </dd>
       
  1828                         <dt><tt><a name="HOST_CC">HOST_CC</a></tt> </dt>
       
  1829                         <dd>
       
  1830                             The location of the C compiler to generate programs to run on the build host.
       
  1831                             Some parts of the build generate programs that are then compiled and executed
       
  1832                             to produce other parts of the build. Normally the primary C compiler is used
       
  1833                             to do this, but when cross-compiling that would be the cross-compiler and the
       
  1834                             resulting program could not be executed. 
       
  1835                             On Linux this defaults to <tt>/usr/bin/gcc</tt>; on other platforms it must be
       
  1836                             set explicitly.
       
  1837                         </dd>
       
  1838                     </dl>
       
  1839                 <dt><strong>Specialized Build Options:</strong></dt>
       
  1840                 <dd>
       
  1841                   Some build variables exist to support specialized build environments and/or specialized
       
  1842                   build products. Their use is only supported in those contexts:
       
  1843                     <dl>
       
  1844                         <dt><tt><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></tt> </dt>
       
  1845                         <dd>
       
  1846                             Indicates this build will only contain the Hotspot client VM. In addition to
       
  1847                             controlling the Hotspot build target, it ensures that we don't try to copy
       
  1848                             any server VM files/directories, and defines a default <tt>jvm.cfg</tt> file
       
  1849                             suitable for a client-only environment. Using this in a 64-bit build will
       
  1850                             generate a sanity warning as 64-bit client builds are not directly supported.
       
  1851                         </dd>
       
  1852                         <dt><tt><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</tt> </dt>
       
  1853                         <dd>
       
  1854                             Used when the build environment has no graphical capabilities at all. This
       
  1855 			    excludes building anything that requires graphical libraries to be available.
       
  1856                         </dd>
       
  1857                         <dt><tt><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</tt> </dt>
       
  1858                         <dd>
       
  1859 			    Used to indicate this is a build of the Oracle Java SE Embedded product. 
       
  1860 			    This will enable the directives included in the SE-Embedded specific build 
       
  1861 			    files.
       
  1862                         </dd>
       
  1863                         <dt><tt><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></tt> </dt>
       
  1864                         <dd>
       
  1865 			    If set to false, disables the use of mmap by the zip utility. Otherwise,
       
  1866 	                    mmap will be used.
       
  1867                         </dd>
       
  1868                         <dt><tt><a name="COMPRESS_JARS"></a>COMPRESS_JARS</tt> </dt>
       
  1869                         <dd>
       
  1870 			  If set to true, causes certain jar files that would otherwise be built without
       
  1871 			  compression, to use compression.
       
  1872                         </dd>
       
  1873                     </dl>
       
  1874                 </dd>
  1681             </dl>
  1875             </dl>
       
  1876         </blockquote>
       
  1877         <!-- ------------------------------------------------------ -->
       
  1878         <hr>
       
  1879         <h2><a name="hints">Hints and Tips</a></h2>
       
  1880         <blockquote>
       
  1881             You don't have to use all these hints and tips, and in fact people do actually
       
  1882             build with systems that contradict these, but they might prove to be
       
  1883             helpful to some.
       
  1884             <ul>
       
  1885                 <li>
       
  1886                     If <tt>make sanity</tt> does not work, find out why, fix that
       
  1887                     before going any further. Or at least understand what the
       
  1888                     complaints are from it.
       
  1889                 </li>
       
  1890                 <li>
       
  1891                     JDK: Keep in mind that you are building a JDK, but you need
       
  1892                     a JDK (BOOTDIR JDK) to build this JDK.
       
  1893                 </li>
       
  1894                 <li>
       
  1895                     Ant: The ant utility is a java application and besides having
       
  1896                     ant available to you, it's important that ant finds the right
       
  1897                     java to run with. Make sure you can type <tt>ant -version</tt>
       
  1898                     and get clean results with no error messages.
       
  1899                 </li>
       
  1900                 <li>
       
  1901                     Linux: Try and favor the system packages over building your own
       
  1902                     or getting packages from other areas.
       
  1903                     Most Linux builds should be possible with the system's
       
  1904                     available packages.
       
  1905                 </li>
       
  1906                 <li>
       
  1907                     Solaris: Typically you will need to get compilers on your systems
       
  1908                     and occasionally GNU make 3.81 if a gmake binary is not available.
       
  1909                     The gmake binary might not be 3.81, be careful.
       
  1910                 </li>
       
  1911                 <li>
       
  1912                     Windows VS2010:
       
  1913                     <ul>
       
  1914                         <li>
       
  1915                             Only the C++ part of VS2010 is needed.
       
  1916                             Try to let the installation go to the default install directory.
       
  1917                             Always reboot your system after installing VS2010.
       
  1918                             The system environment variable VS100COMNTOOLS should be
       
  1919                             set in your environment.
       
  1920                         </li>
       
  1921                         <li>
       
  1922                             Make sure that TMP and TEMP are also set in the environment
       
  1923                             and refer to Windows paths that exist, like <tt>C:\temp</tt>,
       
  1924                             not <tt>/tmp</tt>, not <tt>/cygdrive/c/temp</tt>, and not <tt>C:/temp</tt>.
       
  1925                             <tt>C:\temp</tt> is just an example, it is assumed that this area is
       
  1926                             private to the user, so by default after installs you should
       
  1927                             see a unique user path in these variables.
       
  1928                         </li>
       
  1929                         <li>
       
  1930                             You need to use vsvars32.bat or vsvars64.bat to get the
       
  1931                             PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR
       
  1932                             variables set in your shell environment.
       
  1933                             These bat files are not easy to use from a shell environment.
       
  1934                             However, there is a script placed in the root jdk7 repository called
       
  1935                             vsvars.sh that can help, it should only be done once in a shell
       
  1936                             that will be doing the build, e.g.<br>
       
  1937                             <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br>
       
  1938                                 eval `cat settings`</tt><br>
       
  1939                             Or just <tt>eval `sh ./make/scripts/vsvars.sh -v10`</tt>.
       
  1940                         </li>
       
  1941                     </ul>
       
  1942                 </li>
       
  1943                 <li>
       
  1944                     Windows: PATH order is critical, see the
       
  1945                     <a href="#paths">paths</a> section for more information.
       
  1946                 </li>
       
  1947                 <li>
       
  1948                     Windows 64bit builds: Use ARCH_DATA_MODEL=64.
       
  1949                 </li>
       
  1950             </ul>
  1682         </blockquote>
  1951         </blockquote>
  1683         <!-- ------------------------------------------------------ -->
  1952         <!-- ------------------------------------------------------ -->
  1684         <hr>
  1953         <hr>
  1685         <h2><a name="troubleshooting">Troubleshooting</a></h2>
  1954         <h2><a name="troubleshooting">Troubleshooting</a></h2>
  1686         <blockquote>
  1955         <blockquote>
  1704                 further with your build.
  1973                 further with your build.
  1705             <p>
  1974             <p>
  1706                 Some of the more common problems with builds are briefly described
  1975                 Some of the more common problems with builds are briefly described
  1707                 below, with suggestions for remedies.
  1976                 below, with suggestions for remedies.
  1708             <ul>
  1977             <ul>
       
  1978                 <li>
       
  1979                     <b>Corrupted Bundles on Windows:</b>
       
  1980                     <blockquote>
       
  1981                         Some virus scanning software has been known to corrupt the
       
  1982                         downloading of zip bundles.
       
  1983                         It may be necessary to disable the 'on access' or 'real time'
       
  1984                         virus scanning features to prevent this corruption.
       
  1985                         This type of "real time" virus scanning can also slow down the
       
  1986                         build process significantly.
       
  1987                         Temporarily disabling the feature, or excluding the build
       
  1988                         output directory may be necessary to get correct and faster builds.
       
  1989                     </blockquote>
       
  1990                 </li>
  1709                 <li>
  1991                 <li>
  1710                     <b>Slow Builds:</b>
  1992                     <b>Slow Builds:</b>
  1711                     <blockquote>
  1993                     <blockquote>
  1712                         If your build machine seems to be overloaded from too many
  1994                         If your build machine seems to be overloaded from too many
  1713                         simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
  1995                         simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
  1799                                 "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
  2081                                 "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
  1800                         </ol>
  2082                         </ol>
  1801                     </blockquote>
  2083                     </blockquote>
  1802                 </li>
  2084                 </li>
  1803                 <li>
  2085                 <li>
  1804                     <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b>
  2086                     <b>Windows Error Messages:</b><br>
       
  2087                     <tt>*** fatal error - couldn't allocate heap, ... </tt><br>
       
  2088                     <tt>rm fails with "Directory not empty"</tt><br>
       
  2089                     <tt>unzip fails with "cannot create ... Permission denied"</tt><br>
       
  2090                     <tt>unzip fails with "cannot create ... Error 50"</tt><br>
  1805                     <blockquote>
  2091                     <blockquote>
  1806                         The CYGWIN software can conflict with other non-CYGWIN
  2092                         The CYGWIN software can conflict with other non-CYGWIN
  1807                         software. See the CYGWIN FAQ section on
  2093                         software. See the CYGWIN FAQ section on
  1808                         <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  2094                         <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  1809                             BLODA (applications that interfere with CYGWIN)</a>.
  2095                             BLODA (applications that interfere with CYGWIN)</a>.
  1810                     </blockquote>
  2096                     </blockquote>
  1811                 </li>
  2097                 </li>
  1812                 <li>
  2098                 <li>
  1813                     <b>Windows Error Message: <tt>*** multiple target patterns.  Stop.</tt></b>
  2099                     <b>Windows Error Message: <tt>spawn failed</tt></b>
  1814                     <blockquote>
  2100                     <blockquote>
  1815                         The CYGWIN make version 3.81 may not like the Windows <tt>C:/</tt>
  2101                         Try rebooting the system, or there could be some kind of
  1816                         style paths, it may not like the ':' character in the path
  2102                         issue with the disk or disk partition being used.
  1817                         when used in a makefile target definition.
  2103                         Sometimes it comes with a "Permission Denied" message.
  1818                         See the <a href="#gmake"><tt><i>gmake</i></tt></a> section.
       
  1819                     </blockquote>
  2104                     </blockquote>
  1820                 </li>
  2105                 </li>
  1821             </ul>
  2106             </ul>
  1822         </blockquote>
  2107         </blockquote>
  1823         <hr>
  2108         <hr>