README-builds.html
changeset 7775 c75bf08f7e0c
parent 7652 803a0c91a1a2
child 7876 c2a288bdcca1
equal deleted inserted replaced
7774:279c38a42ae5 7775:c75bf08f7e0c
    22         <!-- ------------------------------------------------------ --> 
    22         <!-- ------------------------------------------------------ --> 
    23         <hr>
    23         <hr>
    24         <h2><a name="introduction">Introduction</a></h2>
    24         <h2><a name="introduction">Introduction</a></h2>
    25         <blockquote>
    25         <blockquote>
    26             <p>
    26             <p>
    27             This README file contains build instructions for the 
    27                 This README file contains build instructions for the
    28             <a href="http://openjdk.java.net"  target="_blank">OpenJDK</a>.
    28                 <a href="http://openjdk.java.net"  target="_blank">OpenJDK</a>.
    29             Building the source code for the 
    29                 Building the source code for the
    30             OpenJDK
    30                 OpenJDK
    31             requires
    31                 requires
    32             a certain degree of technical expertise.
    32                 a certain degree of technical expertise.
    33         </blockquote>
    33         </blockquote>
    34         <!-- ------------------------------------------------------ -->
    34         <!-- ------------------------------------------------------ -->
    35         <hr>
    35         <hr>
    36         <h2><a name="contents">Contents</a></h2>
    36         <h2><a name="contents">Contents</a></h2>
    37         <blockquote>
    37         <blockquote>
    38             <ul>
    38             <ul>
    39                 <li><a href="#introduction">Introduction</a></li>
    39                 <li><a href="#introduction">Introduction</a></li>
       
    40                 <li><a href="#hg">Use of Mercurial</a>
       
    41                     <ul>
       
    42                         <li><a href="#get_source">Getting the Source</a></li>
       
    43                     </ul>
       
    44                 </li>
    40                 <li><a href="#MBE">Minimum Build Environments</a></li>
    45                 <li><a href="#MBE">Minimum Build Environments</a></li>
    41                 <li><a href="#SDBE">Specific Developer Build Environments</a>
    46                 <li><a href="#SDBE">Specific Developer Build Environments</a>
    42                     <ul>
    47                     <ul>
    43                         <li><a href="#fedora">Fedora Linux</a> </li>
    48                         <li><a href="#fedora">Fedora Linux</a> </li>
    44                         <li><a href="#centos">CentOS Linux</a> </li>
    49                         <li><a href="#centos">CentOS Linux</a> </li>
    45 		        <li><a href="#debian">Debian GNU/Linux</a></li>
    50                         <li><a href="#debian">Debian GNU/Linux</a></li>
    46 			<li><a href="#ubuntu">Ubuntu Linux</a> </li>
    51                         <li><a href="#ubuntu">Ubuntu Linux</a> </li>
    47 		        <li><a href="#opensuse">OpenSUSE</a></li>
    52                         <li><a href="#opensuse">OpenSUSE</a></li>
    48 		        <li><a href="#mandriva">Mandriva</a></li>
    53                         <li><a href="#mandriva">Mandriva</a></li>
    49 		        <li><a href="#opensolaris">OpenSolaris</a></li>
    54                         <li><a href="#opensolaris">OpenSolaris</a></li>
    50                     </ul>
    55                     </ul>
    51 		</li>
    56                 </li>
    52                 <li><a href="#directories">Source Directory Structure</a> </li>
    57                 <li><a href="#directories">Source Directory Structure</a> </li>
    53                 <li><a href="#building">Build Information</a>
    58                 <li><a href="#building">Build Information</a>
    54                     <ul>
    59                     <ul>
    55                         <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
    60                         <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
    56                         <li><a href="#linux">Basic Linux System Setup</a> </li>
    61                         <li><a href="#linux">Basic Linux System Setup</a> </li>
    57                         <li><a href="#solaris">Basic Solaris System Setup</a> </li>
    62                         <li><a href="#solaris">Basic Solaris System Setup</a> </li>
    58                         <li><a href="#windows">Basic Windows System Setup</a> </li>
    63                         <li><a href="#windows">Basic Windows System Setup</a> </li>
    59                         <li><a href="#dependencies">Build Dependencies</a> </li>
    64                         <li><a href="#dependencies">Build Dependencies</a>
    60                         <ul>
    65                             <ul>
    61                             <li><a href="#bootjdk">Bootstrap JDK</a> </li>
    66                                 <li><a href="#bootjdk">Bootstrap JDK</a> </li>
    62                             <li><a href="#binaryplugs">Binary Plugs</a> </li>
    67                                 <li><a href="#importjdk">Optional Import JDK</a> </li>
    63                             <li><a href="#importjdk">Optional Import JDK</a> </li>
    68                                 <li><a href="#ant">Ant</a> </li>
    64                             <li><a href="#ant">Ant</a> </li>
    69                                 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
    65                             <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
    70                                 <li><a href="#compilers">Compilers</a>
    66                             <li><a href="#compilers">Compilers</a> 
    71                                     <ul>
    67                                 <ul>
    72                                         <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li>
    68                                     <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>
    69                                     <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li>
    74                                         <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li>
    70                                     <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li>
    75                                         <li><a href="#gcc">Linux gcc/binutils</a> </li>
    71                                     <li><a href="#gcc">Linux gcc/binutils</a> </li>
    76                                         <li><a href="#studio">Sun Studio</a> </li>
    72                                     <li><a href="#studio">Sun Studio</a> </li>
    77                                     </ul>
    73                                 </ul>
    78                                 </li>
    74                             </li>
    79                                 <li><a href="#zip">Zip and Unzip</a> </li>
    75                             <li><a href="#zip">Zip and Unzip</a> </li>
    80                                 <li><a href="#freetype">FreeType2 Fonts</a> </li>
    76                             <li><a href="#freetype">FreeType2 Fonts</a> </li>
    81                                 <li>Linux and Solaris:
    77                             <li>Linux and Solaris:
    82                                     <ul>
    78                                 <ul>
    83                                         <li><a href="#cups">CUPS Include files</a> </li>
    79                                     <li><a href="#cups">CUPS Include files</a> </li>
    84                                         <li><a href="#xrender">XRender Include files</a></li>
    80                                     <li><a href="#xrender">XRender Include files</a></li>
    85                                     </ul>
    81                                 </ul>
    86                                 </li>
    82                             </li>
    87                                 <li>Linux only:
    83                             <li>Linux only:
    88                                     <ul>
    84                                 <ul>
    89                                         <li><a href="#alsa">ALSA files</a> </li>
    85                                     <li><a href="#alsa">ALSA files</a> </li>
    90                                     </ul>
    86                                 </ul>
    91                                 </li>
    87                             </li>
    92                                 <li>Windows only:
    88                             <li>Windows only:
    93                                     <ul>
    89                                 <ul>
    94                                         <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
    90                                     <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
    95                                         <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
    91                                     <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
    96                                     </ul>
    92                                 </ul>
    97                                 </li>
    93                             </li>
    98                             </ul>
    94                         </ul>
    99                         </li>
    95                     </ul>
   100                     </ul>
    96                 </li>
   101                 </li>
    97                 <li><a href="#creating">Creating the Build</a> </li>
   102                 <li><a href="#creating">Creating the Build</a> </li>
    98                 <li><a href="#testing">Testing the Build</a> </li>
   103                 <li><a href="#testing">Testing the Build</a> </li>
    99                 <li><a href="#variables">Environment/Make Variables</a></li>
   104                 <li><a href="#variables">Environment/Make Variables</a></li>
   100                 <li><a href="#troubleshooting">Troubleshooting</a></li>
   105                 <li><a href="#troubleshooting">Troubleshooting</a></li>
   101             </ul>
   106             </ul>
   102         </blockquote>
   107         </blockquote>
       
   108 
       
   109         <!-- ------------------------------------------------------ -->
       
   110         <hr>
       
   111         <h2><a name="hg">Use of Mercurial</a></h2>
       
   112         <blockquote>
       
   113             The OpenJDK sources are maintained with the revision control system
       
   114             <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
       
   115             If you are new to Mercurial, please see the
       
   116             <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>.
       
   118             The first few chapters of the book provide an excellent overview of
       
   119             Mercurial, what it is and how it works.
       
   120             <br>
       
   121             For using Mercurial with the OpenJDK refer to the
       
   122             <a href=""http://openjdk.java.net/guide/repositories.html#installConfig">
       
   123                Developer Guide: Installing and Configuring Mercurial</a>
       
   124             section for more information.
       
   125             The Forest Extension is not part of the Mercurial install,
       
   126             and is optional,
       
   127             but can be obtained with the following commands:
       
   128             <blockquote>
       
   129                 <tt>
       
   130                     hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/ <i>YourHgForest</i>
       
   131                 </tt>
       
   132             </blockquote>
       
   133             Once you have the file <tt>forest.py</tt>, you need to add these
       
   134             lines to your <tt>${HOME}/.hgrc</tt> file:
       
   135             <blockquote>
       
   136                 <tt>
       
   137                     [extensions]
       
   138                     <br>forest = <i>YourHgForest</i>/forest.py
       
   139                 </tt>
       
   140             </blockquote>
       
   141 
       
   142             <!-- ------------------------------------------------------ -->
       
   143             <h3><a name="get_source">Getting the Source</a></h3>
       
   144             <blockquote>
       
   145                 To get the entire set of OpenJDK Mercurial repositories
       
   146                 using the Forest Extension:
       
   147                 <blockquote>
       
   148                     <tt>
       
   149                         hg fclone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
       
   150                     </tt>
       
   151                 </blockquote>
       
   152                 To get the entire set of OpenJDK Mercurial repositories
       
   153                 without using the Forest Extension:
       
   154                 <blockquote>
       
   155                     <tt>
       
   156                         hg clone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
       
   157                         <br>cd <i>YourOpenJDK</i>
       
   158                         <br>sh ./get_source.sh
       
   159                     </tt>
       
   160                 </blockquote>
       
   161                 Once you have all the repositories, the
       
   162                 script <tt>make/scripts/hgforest.sh</tt>
       
   163                 can be used to repeat the same <tt>hg</tt>
       
   164                 command on every repository in the forest, e.g.
       
   165                 <blockquote>
       
   166                     <tt>
       
   167                         cd <i>YourOpenJDK</i>
       
   168                         <br>sh ./make/scripts/hgforest.sh pull -u
       
   169                     </tt>
       
   170                 </blockquote>
       
   171                 You may find this script <tt>make/scripts/hgforest.sh</tt> faster
       
   172                 than the <tt>hg</tt> forest commands provided by the
       
   173                 Forest Extension.
       
   174             </blockquote>
       
   175 
       
   176         </blockquote>
       
   177 
   103         <!-- ------------------------------------------------------ -->
   178         <!-- ------------------------------------------------------ -->
   104         <hr>
   179         <hr>
   105         <h2><a name="MBE">Minimum Build Environments</a></h2>
   180         <h2><a name="MBE">Minimum Build Environments</a></h2>
   106         <blockquote>
   181         <blockquote>
   107             This file often describes specific requirements for what we call the
   182             This file often describes specific requirements for what we call the
   114             least common denominator platforms.
   189             least common denominator platforms.
   115             It is understood that most developers will NOT be using these 
   190             It is understood that most developers will NOT be using these 
   116             specific platforms, and in fact creating these specific platforms
   191             specific platforms, and in fact creating these specific platforms
   117             may be difficult due to the age of some of this software.
   192             may be difficult due to the age of some of this software.
   118             <p>
   193             <p>
   119             The minimum OS and C/C++ compiler versions needed for building the
   194                 The minimum OS and C/C++ compiler versions needed for building the
   120             OpenJDK:
   195                 OpenJDK:
   121             <p>
   196             <p>
   122             <table border="1">
   197             <table border="1">
   123                 <thead>
   198                 <thead>
   124                     <tr>
   199                     <tr>
   125                         <th>Base OS and Architecture</th>
   200                         <th>Base OS and Architecture</th>
   144                     <tr>
   219                     <tr>
   145                         <td>Solaris SPARC (32-bit)</td>
   220                         <td>Solaris SPARC (32-bit)</td>
   146                         <td>Solaris 10u2 + patches 
   221                         <td>Solaris 10u2 + patches 
   147                             <br>
   222                             <br>
   148                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   223                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   149                             SunSolve</a> for patch downloads.
   224                                 SunSolve</a> for patch downloads.
   150                         </td>
   225                         </td>
   151                         <td>Sun Studio 12 Update 1 + patches</td>
   226                         <td>Sun Studio 12 Update 1 + patches</td>
   152                         <td>JDK 6u14 FCS </td>
   227                         <td>JDK 6u14 FCS </td>
   153                     </tr>
   228                     </tr>
   154                     <tr>
   229                     <tr>
   155                         <td>Solaris SPARCV9 (64-bit)</td>
   230                         <td>Solaris SPARCV9 (64-bit)</td>
   156                         <td>Solaris 10u2 + patches
   231                         <td>Solaris 10u2 + patches
   157                             <br>
   232                             <br>
   158                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   233                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   159                             SunSolve</a> for patch downloads.
   234                                 SunSolve</a> for patch downloads.
   160                         </td>
   235                         </td>
   161                         <td>Sun Studio 12 Update 1 + patches</td>
   236                         <td>Sun Studio 12 Update 1 + patches</td>
   162                         <td>JDK 6u14 FCS </td>
   237                         <td>JDK 6u14 FCS </td>
   163                     </tr>
   238                     </tr>
   164                     <tr>
   239                     <tr>
   165                         <td>Solaris X86 (32-bit)</td>
   240                         <td>Solaris X86 (32-bit)</td>
   166                         <td>Solaris 10u2 + patches
   241                         <td>Solaris 10u2 + patches
   167                             <br>
   242                             <br>
   168                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   243                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   169                             SunSolve</a> for patch downloads.
   244                                 SunSolve</a> for patch downloads.
   170                         </td>
   245                         </td>
   171                         <td>Sun Studio 12 Update 1 + patches</td>
   246                         <td>Sun Studio 12 Update 1 + patches</td>
   172                         <td>JDK 6u14 FCS </td>
   247                         <td>JDK 6u14 FCS </td>
   173                     </tr>
   248                     </tr>
   174                     <tr>
   249                     <tr>
   175                         <td>Solaris X64 (64-bit)</td>
   250                         <td>Solaris X64 (64-bit)</td>
   176                         <td>Solaris 10u2 + patches
   251                         <td>Solaris 10u2 + patches
   177                             <br>
   252                             <br>
   178                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   253                             See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   179                             SunSolve</a> for patch downloads.
   254                                 SunSolve</a> for patch downloads.
   180                         </td>
   255                         </td>
   181                         <td>Sun Studio 12 Update 1 + patches</td>
   256                         <td>Sun Studio 12 Update 1 + patches</td>
   182                         <td>JDK 6u14 FCS </td>
   257                         <td>JDK 6u14 FCS </td>
   183                     </tr>
   258                     </tr>
   184                     <tr>
   259                     <tr>
   193                         <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   268                         <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   194                         <td>JDK 6u14 FCS </td>
   269                         <td>JDK 6u14 FCS </td>
   195                     </tr>
   270                     </tr>
   196                 </tbody>
   271                 </tbody>
   197             </table>
   272             </table>
   198 	    <p>
   273             <p>
   199 	    These same sources do indeed build on many more systems than the
   274 	    These same sources do indeed build on many more systems than the
   200 	    above older generation systems, again the above is just a minimum.
   275 	    above older generation systems, again the above is just a minimum.
   201 	    <p>
   276             <p>
   202 	    Compilation problems with newer or different C/C++ compilers is a
   277 	    Compilation problems with newer or different C/C++ compilers is a
   203 	    common problem.
   278 	    common problem.
   204 	    Similarly, compilation problems related to changes to the
   279 	    Similarly, compilation problems related to changes to the
   205 	    <tt>/usr/include</tt> or system header files is also a
   280                 <tt>/usr/include</tt> or system header files is also a
   206 	    common problem with newer or unreleased OS versions.
   281 	    common problem with newer or unreleased OS versions.
   207 	    Please report these types of problems as bugs so that they
   282 	    Please report these types of problems as bugs so that they
   208 	    can be dealt with accordingly.
   283 	    can be dealt with accordingly.
   209         </blockquote>
   284         </blockquote>
   210         <!-- ------------------------------------------------------ -->
   285         <!-- ------------------------------------------------------ -->
   215             we will try to provide what information we have available to us.
   290             we will try to provide what information we have available to us.
   216         </blockquote>
   291         </blockquote>
   217         <!-- ------------------------------------------------------ -->
   292         <!-- ------------------------------------------------------ -->
   218         <h3><a name="fedora">Fedora</a></h3>
   293         <h3><a name="fedora">Fedora</a></h3>
   219         <blockquote>
   294         <blockquote>
   220 	  <h4>Fedora 9</h4>
   295             <h4>Fedora 9</h4>
   221 	  <p>
   296             <p>
   222 	    <blockquote>
   297             <blockquote>
   223               After installing <a href="http://fedoraproject.org">Fedora</a> 9 
   298                 After installing <a href="http://fedoraproject.org">Fedora</a> 9
   224 	      you need to install several build dependencies. The simplest
   299 	      you need to install several build dependencies. The simplest
   225 	      way to do it is to execute the following commands as user 
   300 	      way to do it is to execute the following commands as user 
   226 	      <tt>root</tt>:
   301                 <tt>root</tt>:
   227 	      <p/>
   302                 <p/>
   228 	      <code>yum-builddep java-openjdk</code>
   303                 <code>yum-builddep java-openjdk</code>
   229 	      <p/>
   304                 <p/>
   230 	      <code>yum install gcc gcc-c++</code>
   305                 <code>yum install gcc gcc-c++</code>
   231 	      <p/>
   306                 <p/>
   232 	      In addition, it's necessary to set a few environment variables for the build:
   307 	      In addition, it's necessary to set a few environment variables for the build:
   233 
   308 
   234 	      <p/>
   309                 <p/>
   235 	      <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   310                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   236             </blockquote>
   311             </blockquote>
   237 	  <h4>Fedora 10</h4>
   312             <h4>Fedora 10</h4>
   238 	  <p>
   313             <p>
   239 	    <blockquote>
   314             <blockquote>
   240               After installing <a href="http://fedoraproject.org">Fedora</a> 10 
   315                 After installing <a href="http://fedoraproject.org">Fedora</a> 10
   241 	      you need to install several build dependencies. The simplest
   316 	      you need to install several build dependencies. The simplest
   242 	      way to do it is to execute the following commands as user 
   317 	      way to do it is to execute the following commands as user 
   243 	      <tt>root</tt>:
   318                 <tt>root</tt>:
   244 	      <p/>
   319                 <p/>
   245 	      <code>yum-builddep java-1.6.0-openjdk</code>
   320                 <code>yum-builddep java-1.6.0-openjdk</code>
   246 	      <p/>
   321                 <p/>
   247 	      <code>yum install gcc gcc-c++</code>
   322                 <code>yum install gcc gcc-c++</code>
   248 	      <p/>
   323                 <p/>
   249 	      In addition, it's necessary to set a few environment variables for the build:
   324 	      In addition, it's necessary to set a few environment variables for the build:
   250 
   325 
   251 	      <p/>
   326                 <p/>
   252 	      <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   327                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   253             </blockquote>
   328             </blockquote>
   254 	  <h4>Fedora 11</h4>
   329             <h4>Fedora 11</h4>
   255 	  <p>
   330             <p>
   256 	    <blockquote>
   331             <blockquote>
   257               After installing <a href="http://fedoraproject.org">Fedora</a> 11 
   332                 After installing <a href="http://fedoraproject.org">Fedora</a> 11
   258 	      you need to install several build dependencies. The simplest
   333 	      you need to install several build dependencies. The simplest
   259 	      way to do it is to execute the following commands as user 
   334 	      way to do it is to execute the following commands as user 
   260 	      <tt>root</tt>:
   335                 <tt>root</tt>:
   261 	      <p/>
   336                 <p/>
   262 	      <code>yum-builddep java-1.6.0-openjdk</code>
   337                 <code>yum-builddep java-1.6.0-openjdk</code>
   263 	      <p/>
   338                 <p/>
   264 	      <code>yum install gcc gcc-c++</code>
   339                 <code>yum install gcc gcc-c++</code>
   265 	      <p/>
   340                 <p/>
   266 	      In addition, it's necessary to set a few environment variables for the build:
   341 	      In addition, it's necessary to set a few environment variables for the build:
   267 
   342 
   268 	      <p/>
   343                 <p/>
   269 	      <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   344                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code>
   270              </blockquote>
   345             </blockquote>
   271         </blockquote>
   346         </blockquote>
   272         <!-- ------------------------------------------------------ -->
   347         <!-- ------------------------------------------------------ -->
   273         <h3><a name="centos">CentOS 5.2</a></h3>
   348         <h3><a name="centos">CentOS 5.2</a></h3>
   274         <blockquote>
   349         <blockquote>
   275             After installing
   350             After installing
   283                     <li>Java Development</li>
   358                     <li>Java Development</li>
   284                     <li>X Software Development</li>
   359                     <li>X Software Development</li>
   285                 </ul>
   360                 </ul>
   286             </blockquote>
   361             </blockquote>
   287             <p>
   362             <p>
   288             Plus the following packages:
   363                 Plus the following packages:
   289             <blockquote>
   364             <blockquote>
   290                 <ul>
   365                 <ul>
   291                     <li>cups devel: Cups Development Package</li>
   366                     <li>cups devel: Cups Development Package</li>
   292                     <li>alsa devel: Alsa Development Package</li>
   367                     <li>alsa devel: Alsa Development Package</li>
   293                     <li>ant: Ant Package</li>
   368                     <li>ant: Ant Package</li>
   294                     <li>Xi devel: libXi.so Development Package</li>
   369                     <li>Xi devel: libXi.so Development Package</li>
   295                 </ul>
   370                 </ul>
   296             </blockquote>
   371             </blockquote>
   297             <p>
   372             <p>
   298             The freetype 2.3 packages don't seem to be available,
   373                 The freetype 2.3 packages don't seem to be available,
   299             but the freetype 2.3 sources can be downloaded, built,
   374                 but the freetype 2.3 sources can be downloaded, built,
   300             and installed easily enough from
   375                 and installed easily enough from
   301             <a href="http://downloads.sourceforge.net/freetype">
   376                 <a href="http://downloads.sourceforge.net/freetype">
   302             the freetype site</a>.
   377                     the freetype site</a>.
   303             Build and install with something like:
   378                 Build and install with something like:
   304             <blockquote>
   379             <blockquote>
   305                 <tt>./configure && make && sudo -u root make install</tt>
   380                 <tt>./configure && make && sudo -u root make install</tt>
   306             </blockquote>
   381             </blockquote>
   307             <p>
   382             <p>
   308             Mercurial packages could not be found easily, but a Google
   383                 Mercurial packages could not be found easily, but a Google
   309             search should find ones, and they usually include Python if
   384                 search should find ones, and they usually include Python if
   310             it's needed.
   385                 it's needed.
   311         </blockquote>
   386         </blockquote>
   312         <!-- ------------------------------------------------------ -->
   387         <!-- ------------------------------------------------------ -->
   313         <h3><a name="debian">Debian</a></h3>
   388         <h3><a name="debian">Debian</a></h3>
   314         <blockquote>
   389         <blockquote>
   315             <h4>Debian 5.0 (Lenny)</h4>
   390             <h4>Debian 5.0 (Lenny)</h4>
   316             <p>
   391             <p>
   317 	      <blockquote>
   392             <blockquote>
   318 		After installing <a href="http://debian.org">Debian</a> 5 
   393 		After installing <a href="http://debian.org">Debian</a> 5 
   319 		you need to install several build dependencies. 
   394 		you need to install several build dependencies. 
   320 		The simplest way to install the build dependencies is to 
   395 		The simplest way to install the build dependencies is to 
   321 		execute the following commands as user <tt>root</tt>:
   396 		execute the following commands as user <tt>root</tt>:
   322 		<p/>
   397                 <p/>
   323 		<code>aptitude build-dep openjdk-6</code>
   398                 <code>aptitude build-dep openjdk-6</code>
   324 		<p/>
   399                 <p/>
   325 		<code>aptitude install openjdk-6-jdk libmotif-dev</code>
   400                 <code>aptitude install openjdk-6-jdk libmotif-dev</code>
   326 		<p/>
   401                 <p/>
   327 		In addition, it's necessary to set a few environment variables for the build:
   402 		In addition, it's necessary to set a few environment variables for the build:
   328 		<p/>
   403                 <p/>
   329 		<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   404                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   330 	      </blockquote>
   405             </blockquote>
   331         </blockquote>
   406         </blockquote>
   332         <!-- ====================================================== -->
   407         <!-- ====================================================== -->
   333 	<h3><a name="ubuntu">Ubuntu</a></h3>
   408         <h3><a name="ubuntu">Ubuntu</a></h3>
   334         <blockquote>
   409         <blockquote>
   335             <h4>Ubuntu 8.04</h4>
   410             <h4>Ubuntu 8.04</h4>
   336             <p>
   411             <p>
   337 	      <blockquote>
   412             <blockquote>
   338 		After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 
   413 		After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 
   339 		you need to install several build dependencies. 
   414 		you need to install several build dependencies. 
   340 		<p/>
   415                 <p/>
   341 		First, you need to enable the universe repository in the 
   416 		First, you need to enable the universe repository in the 
   342 		Software Sources application and reload the repository 
   417 		Software Sources application and reload the repository 
   343 		information. The Software Sources application is available 
   418 		information. The Software Sources application is available 
   344 		under the System/Administration menu. 
   419 		under the System/Administration menu. 
   345 		<p/>
   420                 <p/>
   346 		The simplest way to install the build dependencies is to 
   421 		The simplest way to install the build dependencies is to 
   347 		execute the following commands:
   422 		execute the following commands:
   348 		<p/>
   423                 <p/>
   349 		<code>sudo aptitude build-dep openjdk-6</code>
   424                 <code>sudo aptitude build-dep openjdk-6</code>
   350 		<p/>
   425                 <p/>
   351 		<code>sudo aptitude install openjdk-6-jdk</code>
   426                 <code>sudo aptitude install openjdk-6-jdk</code>
   352 		<p/>
   427                 <p/>
   353 		In addition, it's necessary to set a few environment variables for the build:
   428 		In addition, it's necessary to set a few environment variables for the build:
   354 		<p/>
   429                 <p/>
   355 		<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   430                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   356               </blockquote>
   431             </blockquote>
   357            <h4>Ubuntu 8.10</h4>
   432             <h4>Ubuntu 8.10</h4>
   358             <p>
   433             <p>
   359 	      <blockquote>
   434             <blockquote>
   360 		After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 
   435 		After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 
   361 		you need to install several build dependencies. The simplest
   436 		you need to install several build dependencies. The simplest
   362 		way to do it is to execute the following commands:
   437 		way to do it is to execute the following commands:
   363 		<p/>
   438                 <p/>
   364 		<code>sudo aptitude build-dep openjdk-6</code>
   439                 <code>sudo aptitude build-dep openjdk-6</code>
   365 		<p/>
   440                 <p/>
   366 		<code>sudo aptitude install openjdk-6-jdk</code>
   441                 <code>sudo aptitude install openjdk-6-jdk</code>
   367 		<p/>
   442                 <p/>
   368 		In addition, it's necessary to set a few environment variables for the build:
   443 		In addition, it's necessary to set a few environment variables for the build:
   369 		<p/>
   444                 <p/>
   370 		<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   445                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   371              </blockquote>
   446             </blockquote>
   372            <h4>Ubuntu 9.04</h4>
   447             <h4>Ubuntu 9.04</h4>
   373             <p>
   448             <p>
   374 	      <blockquote>
   449             <blockquote>
   375 		After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 
   450 		After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 
   376 		you need to install several build dependencies. The simplest
   451 		you need to install several build dependencies. The simplest
   377 		way to do it is to execute the following commands:
   452 		way to do it is to execute the following commands:
   378 		<p/>
   453                 <p/>
   379 		<code>sudo aptitude build-dep openjdk-6</code>
   454                 <code>sudo aptitude build-dep openjdk-6</code>
   380 		<p/>
   455                 <p/>
   381 		<code>sudo aptitude install openjdk-6-jdk</code>
   456                 <code>sudo aptitude install openjdk-6-jdk</code>
   382 		<p/>
   457                 <p/>
   383 		In addition, it's necessary to set a few environment variables for the build:
   458 		In addition, it's necessary to set a few environment variables for the build:
   384 		<p/>
   459                 <p/>
   385 		<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   460                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code>
   386              </blockquote>
   461             </blockquote>
   387         </blockquote>
   462         </blockquote>
   388         <!-- ====================================================== -->
   463         <!-- ====================================================== -->
   389         <h3><a name="opensuse">OpenSUSE</a></h3>
   464         <h3><a name="opensuse">OpenSUSE</a></h3>
   390         <blockquote>
   465         <blockquote>
   391             <h4>OpenSUSE 11.1</h4>
   466             <h4>OpenSUSE 11.1</h4>
   392             <p>
   467             <p>
   393 	      <blockquote>
   468             <blockquote>
   394 		After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
   469 		After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 
   395 		you need to install several build dependencies. 
   470 		you need to install several build dependencies. 
   396 		The simplest way to install the build dependencies is to 
   471 		The simplest way to install the build dependencies is to 
   397 		execute the following commands:
   472 		execute the following commands:
   398 		<p/>
   473                 <p/>
   399 		<code>sudo zypper source-install -d java-1_6_0-openjdk</code>
   474                 <code>sudo zypper source-install -d java-1_6_0-openjdk</code>
   400 		<p/>
   475                 <p/>
   401 		<code>sudo zypper install make</code>
   476                 <code>sudo zypper install make</code>
   402 		<p/>
   477                 <p/>
   403 		In addition, it is necessary to set a few environment variables for the build:
   478 		In addition, it is necessary to set a few environment variables for the build:
   404 		<p/>
   479                 <p/>
   405 		<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
   480                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
   406 		<p/>
   481                 <p/>
   407 		Finally, you need to unset the <code>JAVA_HOME</code> environment variable:
   482 		Finally, you need to unset the <code>JAVA_HOME</code> environment variable:
   408 		<p/>
   483                 <p/>
   409 		<code>export -n JAVA_HOME</code>
   484                 <code>export -n JAVA_HOME</code>
   410 	      </blockquote>
   485             </blockquote>
   411 	</blockquote>
   486         </blockquote>
   412         <!-- ====================================================== -->
   487         <!-- ====================================================== -->
   413         <h3><a name="mandriva">Mandriva</a></h3>
   488         <h3><a name="mandriva">Mandriva</a></h3>
   414         <blockquote>
   489         <blockquote>
   415             <h4>Mandriva Linux One 2009 Spring</h4>
   490             <h4>Mandriva Linux One 2009 Spring</h4>
   416             <p>
   491             <p>
   417 	      <blockquote>
   492             <blockquote>
   418 		After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 
   493 		After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 
   419 		you need to install several build dependencies. 
   494 		you need to install several build dependencies. 
   420 		The simplest way to install the build dependencies is to 
   495 		The simplest way to install the build dependencies is to 
   421 		execute the following commands as user <tt>root</tt>:
   496 		execute the following commands as user <tt>root</tt>:
   422 		<p/>
   497                 <p/>
   423 		<code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code>
   498                 <code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code>
   424                 <p/>
   499                 <p/>
   425 		In addition, it is necessary to set a few environment variables for the build:
   500 		In addition, it is necessary to set a few environment variables for the build:
   426 		<p/>
   501                 <p/>
   427 		<code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
   502                 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code>
   428 	      </blockquote>
   503             </blockquote>
   429         </blockquote>
   504         </blockquote>
   430         <!-- ====================================================== -->
   505         <!-- ====================================================== -->
   431         <h3><a name="opensolaris">OpenSolaris</a></h3>
   506         <h3><a name="opensolaris">OpenSolaris</a></h3>
   432         <blockquote>
   507         <blockquote>
   433             <h4>OpenSolaris 2009.06</h4>
   508             <h4>OpenSolaris 2009.06</h4>
   434             <p>
   509             <p>
   435 	      <blockquote>
   510             <blockquote>
   436 		After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
   511 		After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 
   437 		you need to install several build dependencies. 
   512 		you need to install several build dependencies. 
   438 		The simplest way to install the build dependencies is to 
   513 		The simplest way to install the build dependencies is to 
   439 		execute the following commands:
   514 		execute the following commands:
   440 		<p/>
   515                 <p/>
   441 		<code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
   516                 <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code>
   442                 <p/>
   517                 <p/>
   443 		In addition, it is necessary to set a few environment variables for the build:
   518 		In addition, it is necessary to set a few environment variables for the build:
   444 		<p/>
   519                 <p/>
   445 		<code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code>
   520                 <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code>
   446 		<p/>
   521                 <p/>
   447 		Finally, you need to make sure that the build process can find the Sun Studio compilers:
   522 		Finally, you need to make sure that the build process can find the Sun Studio compilers:
   448 		<p/>
   523                 <p/>
   449 		<code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code>
   524                 <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code>
   450 	      </blockquote>
   525             </blockquote>
   451         </blockquote>
   526         </blockquote>
   452         <!-- ------------------------------------------------------ -->  
   527         <!-- ------------------------------------------------------ -->  
   453         <hr>
   528         <hr>
   454         <h2><a name="directories">Source Directory Structure</a></h2>
   529         <h2><a name="directories">Source Directory Structure</a></h2>
   455         <blockquote>
   530         <blockquote>
   456             <p>
   531             <p>
   457             The source code for the OpenJDK is delivered in a set of
   532                 The source code for the OpenJDK is delivered in a set of
   458             directories:
   533                 directories:
   459             <tt>hotspot</tt>, 
   534                 <tt>hotspot</tt>,
   460             <tt>langtools</tt>, 
   535                 <tt>langtools</tt>,
   461             <tt>corba</tt>, 
   536                 <tt>corba</tt>,
   462             <tt>jaxws</tt>, 
   537                 <tt>jaxws</tt>,
   463             <tt>jaxp</tt>, 
   538                 <tt>jaxp</tt>,
   464             and
   539                 and
   465             <tt>jdk</tt>.
   540                 <tt>jdk</tt>.
   466             The <tt>hotspot</tt> directory contains the source code and make
   541                 The <tt>hotspot</tt> directory contains the source code and make
   467             files for building the OpenJDK Hotspot Virtual Machine. 
   542                 files for building the OpenJDK Hotspot Virtual Machine.
   468             The <tt>langtools</tt> directory contains the source code and make
   543                 The <tt>langtools</tt> directory contains the source code and make
   469             files for building the OpenJDK javac and language tools.
   544                 files for building the OpenJDK javac and language tools.
   470             The <tt>corba</tt> directory contains the source code and make
   545                 The <tt>corba</tt> directory contains the source code and make
   471             files for building the OpenJDK Corba files.
   546                 files for building the OpenJDK Corba files.
   472             The <tt>jaxws</tt> directory contains the source code and make
   547                 The <tt>jaxws</tt> directory contains the source code and make
   473             files for building the OpenJDK JAXWS files.
   548                 files for building the OpenJDK JAXWS files.
   474             The <tt>jaxp</tt> directory contains the source code and make
   549                 The <tt>jaxp</tt> directory contains the source code and make
   475             files for building the OpenJDK JAXP files.
   550                 files for building the OpenJDK JAXP files.
   476             The <tt>jdk</tt> directory contains the source code and make files for
   551                 The <tt>jdk</tt> directory contains the source code and make files for
   477             building the OpenJDK runtime libraries and misc files.
   552                 building the OpenJDK runtime libraries and misc files.
   478             The top level <tt>Makefile</tt>
   553                 The top level <tt>Makefile</tt>
   479             is used to build the entire OpenJDK.
   554                 is used to build the entire OpenJDK.
   480         </blockquote>
   555         </blockquote>
   481         <!-- ------------------------------------------------------ -->
   556         <!-- ------------------------------------------------------ -->
   482         <hr>
   557         <hr>
   483         <h2><a name="building">Build Information</a></h2>
   558         <h2><a name="building">Build Information</a></h2>
   484         <blockquote>
   559         <blockquote>
   493             When the normal defaults fail or components cannot be found,
   568             When the normal defaults fail or components cannot be found,
   494             the various
   569             the various
   495             <tt>ALT_*</tt> variables (alternates)
   570             <tt>ALT_*</tt> variables (alternates)
   496             can be used to help the makefiles locate components.
   571             can be used to help the makefiles locate components.
   497             <p>
   572             <p>
   498             Refer to the bash/sh/ksh setup file
   573                 Refer to the bash/sh/ksh setup file
   499             <tt>jdk/make/jdk_generic_profile.sh</tt>
   574                 <tt>jdk/make/jdk_generic_profile.sh</tt>
   500             if you need help in setting up your environment variables.
   575                 if you need help in setting up your environment variables.
   501             A build could be as simple as:
   576                 A build could be as simple as:
   502             <blockquote>
   577             <blockquote>
   503                 <pre><tt>
   578                 <pre><tt>
   504                 bash
   579                 bash
   505                 . jdk/make/jdk_generic_profile.sh
   580                 . jdk/make/jdk_generic_profile.sh
   506                 <i>gmake</i> sanity &amp;&amp; <i>gmake</i>
   581                 <i>gmake</i> sanity &amp;&amp; <i>gmake</i>
   507                 </tt></pre>
   582                 </tt></pre>
   508             </blockquote>
   583             </blockquote>
   509             <p>
   584             <p>
   510             Of course ksh or sh would work too.
   585                 Of course ksh or sh would work too.
   511             But some customization will probably be necessary.
   586                 But some customization will probably be necessary.
   512             The <tt>sanity</tt> rule will make some basic checks on build
   587                 The <tt>sanity</tt> rule will make some basic checks on build
   513             dependencies and generate appropriate warning messages
   588                 dependencies and generate appropriate warning messages
   514             regarding missing, out of date, or newer than expected components
   589                 regarding missing, out of date, or newer than expected components
   515             found on your system.
   590                 found on your system.
   516         </blockquote>
   591         </blockquote>
   517         <!-- ------------------------------------------------------ -->
   592         <!-- ------------------------------------------------------ -->
   518         <hr>
   593         <hr>
   519         <h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
   594         <h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
   520         <blockquote>
   595         <blockquote>
   557                     like <tt>C:/</tt> or <tt>C:\</tt>.
   632                     like <tt>C:/</tt> or <tt>C:\</tt>.
   558                     Use a 3.80 version, or find a newer
   633                     Use a 3.80 version, or find a newer
   559                     version that has this problem fixed.
   634                     version that has this problem fixed.
   560                     The older 3.80 version of make.exe can be downloaded with this
   635                     The older 3.80 version of make.exe can be downloaded with this
   561                     <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
   636                     <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
   562                     link</a>.
   637                         link</a>.
   563                     Use of this older 3.80 make.exe may require that you install the
   638                     Use of this older 3.80 make.exe may require that you install the
   564                     libintl2.dll library or libintl2 cygwin package which is
   639                     libintl2.dll library or libintl2 cygwin package which is
   565                     no longer installed by default by the cygwin installer.
   640                     no longer installed by default by the cygwin installer.
   566                     <br>
   641                     <br>
   567                     Also see the
   642                     Also see the
   568                     <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
   643                     <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
   569                     mozilla developer center</a>
   644                         mozilla developer center</a>
   570                     on this topic.
   645                     on this topic.
   571                     <br>
   646                     <br>
   572                     It's hoped that when make 3.82 starts shipping in a future cygwin
   647                     It's hoped that when make 3.82 starts shipping in a future cygwin
   573                     release that this MS-DOS path issue will be fixed.
   648                     release that this MS-DOS path issue will be fixed.
   574                     In addition to the above 3.80 make.exe you can download 
   649                     In addition to the above 3.80 make.exe you can download 
   575                     this
   650                     this
   576                     <a href="http://www.cmake.org/files/cygwin/make.exe">
   651                     <a href="http://www.cmake.org/files/cygwin/make.exe">
   577                     www.cmake.org make.exe</a> which will not have a libintl2.dll
   652                         www.cmake.org make.exe</a> which will not have a libintl2.dll
   578                     dependency.
   653                     dependency.
   579                 </li>
   654                 </li>
   580             </ul>
   655             </ul>
   581             <p>
   656             <p>
   582             Information on GNU make, and access to ftp download sites, are
   657                 Information on GNU make, and access to ftp download sites, are
   583             available on the
   658                 available on the
   584             <a href="http://www.gnu.org/software/make/make.html" target="_blank">
   659                 <a href="http://www.gnu.org/software/make/make.html" target="_blank">
   585                 GNU make web site
   660                     GNU make web site
   586             </a>.
   661                 </a>.
   587             The latest source to GNU make is available at
   662                 The latest source to GNU make is available at
   588             <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
   663                 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
   589             ftp.gnu.org/pub/gnu/make/</a>.
   664                     ftp.gnu.org/pub/gnu/make/</a>.
   590         </blockquote>
   665         </blockquote>
   591         <!-- ------------------------------------------------------ -->
   666         <!-- ------------------------------------------------------ -->
   592         <hr>
   667         <hr>
   593         <h3><a name="linux">Basic Linux System Setup</a></h3>
   668         <h3><a name="linux">Basic Linux System Setup</a></h3>
   594         <blockquote>
   669         <blockquote>
   595             <strong>i586 only:</strong>
   670             <strong>i586 only:</strong>
   596             The minimum recommended hardware for building the Linux version
   671             The minimum recommended hardware for building the Linux version
   597             is a Pentium class processor or better, at least 256 MB of RAM, and
   672             is a Pentium class processor or better, at least 256 MB of RAM, and
   598             approximately 1.5 GB of free disk space.
   673             approximately 1.5 GB of free disk space.
   599             <p> 
   674             <p> 
   600             <strong>X64 only:</strong>
   675                 <strong>X64 only:</strong>
   601             The minimum recommended hardware for building the Linux
   676                 The minimum recommended hardware for building the Linux
   602             version is an AMD Opteron class processor, at least 512 MB of RAM, and
   677                 version is an AMD Opteron class processor, at least 512 MB of RAM, and
   603             approximately 4 GB of free disk space.
   678                 approximately 4 GB of free disk space.
   604             <p> 
   679             <p> 
   605             The build will use the tools contained in 
   680                 The build will use the tools contained in
   606             <tt>/bin</tt> and 
   681                 <tt>/bin</tt> and
   607             <tt>/usr/bin</tt>
   682                 <tt>/usr/bin</tt>
   608             of a standard installation of the Linux operating environment. 
   683                 of a standard installation of the Linux operating environment.
   609             You should ensure that these directories are in your 
   684                 You should ensure that these directories are in your
   610             <tt>PATH</tt>.
   685                 <tt>PATH</tt>.
   611             <p>
   686             <p>
   612             Note that some Linux systems have a habit of pre-populating
   687                 Note that some Linux systems have a habit of pre-populating
   613             your environment variables for you, for example <tt>JAVA_HOME</tt>
   688                 your environment variables for you, for example <tt>JAVA_HOME</tt>
   614             might get pre-defined for you to refer to the JDK installed on
   689                 might get pre-defined for you to refer to the JDK installed on
   615             your Linux system. 
   690                 your Linux system.
   616             You will need to unset <tt>JAVA_HOME</tt>.
   691                 You will need to unset <tt>JAVA_HOME</tt>.
   617             It's a good idea to run <tt>env</tt> and verify the
   692                 It's a good idea to run <tt>env</tt> and verify the
   618             environment variables you are getting from the default system
   693                 environment variables you are getting from the default system
   619             settings make sense for building the 
   694                 settings make sense for building the
   620             OpenJDK.
   695                 OpenJDK.
   621         </blockquote>
   696         </blockquote>
   622         <!-- ------------------------------------------------------ -->
   697         <!-- ------------------------------------------------------ -->
   623         <h4><a name="linux_checklist">Basic Linux Check List</a></h4>
   698         <h4><a name="linux_checklist">Basic Linux Check List</a></h4>
   624         <blockquote>
   699         <blockquote>
   625             <ol>
   700             <ol>
   627                     Install the
   702                     Install the
   628                     <a href="#bootjdk">Bootstrap JDK</a>, set
   703                     <a href="#bootjdk">Bootstrap JDK</a>, set
   629                     <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   704                     <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   630                 </li>
   705                 </li>
   631                 <li>
   706                 <li>
   632                     Install the
       
   633                     <a href="#binaryplugs">Binary Plugs</a>, set
       
   634                     <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
       
   635                 </li>
       
   636                 <li>
       
   637                     <a href="#importjdk">Optional Import JDK</a>, set
   707                     <a href="#importjdk">Optional Import JDK</a>, set
   638                     <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   708                     <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   639                 </li>
   709                 </li>
   640                 <li>
   710                 <li>
   641                     Install or upgrade the <a href="#freetype">FreeType development
   711                     Install or upgrade the <a href="#freetype">FreeType development
   642                     package</a>.
   712                         package</a>.
   643                 </li>
   713                 </li>
   644                 <li>
   714                 <li>
   645                     Install
   715                     Install
   646                     <a href="#ant">Ant</a>, 
   716                     <a href="#ant">Ant</a>, 
   647                     make sure it is in your PATH.
   717                     make sure it is in your PATH.
   658             the Solaris x86 version, a Pentium class processor or better and at
   728             the Solaris x86 version, a Pentium class processor or better and at
   659             least 512 MB of RAM are recommended. 
   729             least 512 MB of RAM are recommended. 
   660             Approximately 1.4 GB of free disk
   730             Approximately 1.4 GB of free disk
   661             space is needed for a 32-bit build.
   731             space is needed for a 32-bit build.
   662             <p>
   732             <p>
   663             If you are building the 64-bit version, you should
   733                 If you are building the 64-bit version, you should
   664             run the command "isainfo -v" to verify that you have a
   734                 run the command "isainfo -v" to verify that you have a
   665             64-bit installation, it should say <tt>sparcv9</tt> or
   735                 64-bit installation, it should say <tt>sparcv9</tt> or
   666             <tt>amd64</tt>.
   736                 <tt>amd64</tt>.
   667             An additional 7 GB of free disk space is needed
   737                 An additional 7 GB of free disk space is needed
   668             for a 64-bit build.
   738                 for a 64-bit build.
   669             <p> 
   739             <p> 
   670             The build uses the tools contained in <tt>/usr/ccs/bin</tt>
   740                 The build uses the tools contained in <tt>/usr/ccs/bin</tt>
   671             and <tt>/usr/bin</tt> of a standard developer or full installation of
   741                 and <tt>/usr/bin</tt> of a standard developer or full installation of
   672             the Solaris operating environment.
   742                 the Solaris operating environment.
   673             <p> 
   743             <p> 
   674             Solaris patches specific to the JDK can be downloaded from the 
   744                 Solaris patches specific to the JDK can be downloaded from the
   675             <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank">
   745                 <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank">
   676             SunSolve JDK Solaris patches download page</a>.
   746                     SunSolve JDK Solaris patches download page</a>.
   677             You should ensure that the latest patch cluster for
   747                 You should ensure that the latest patch cluster for
   678             your version of the Solaris operating environment has also
   748                 your version of the Solaris operating environment has also
   679             been installed.
   749                 been installed.
   680         </blockquote>
   750         </blockquote>
   681         <!-- ------------------------------------------------------ -->
   751         <!-- ------------------------------------------------------ -->
   682         <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
   752         <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
   683         <blockquote>
   753         <blockquote>
   684             <ol>
   754             <ol>
   685                 <li>
   755                 <li>
   686                     Install the
   756                     Install the
   687                     <a href="#bootjdk">Bootstrap JDK</a>, set
   757                     <a href="#bootjdk">Bootstrap JDK</a>, set
   688                     <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   758                     <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   689                 </li>
       
   690                 <li>
       
   691                     Install the
       
   692                     <a href="#binaryplugs">Binary Plugs</a>, set
       
   693                     <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
       
   694                 </li>
   759                 </li>
   695                 <li>
   760                 <li>
   696                     <a href="#importjdk">Optional Import JDK</a>, set
   761                     <a href="#importjdk">Optional Import JDK</a>, set
   697                     <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   762                     <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   698                 </li>
   763                 </li>
   729                 file system NTFS. 
   794                 file system NTFS. 
   730                 Build machines formatted to FAT32 will not work 
   795                 Build machines formatted to FAT32 will not work 
   731                 because FAT32 doesn't support case-sensitivity in file names.
   796                 because FAT32 doesn't support case-sensitivity in file names.
   732             </strong>
   797             </strong>
   733             <p> 
   798             <p> 
   734             <strong>X64 only:</strong>
   799                 <strong>X64 only:</strong>
   735             The minimum recommended hardware for building
   800                 The minimum recommended hardware for building
   736             the Windows X64 version is an AMD Opteron class processor, at least 1
   801                 the Windows X64 version is an AMD Opteron class processor, at least 1
   737             GB of RAM, and approximately 10 GB of free disk space.
   802                 GB of RAM, and approximately 10 GB of free disk space.
   738         </blockquote>
   803         </blockquote>
   739         <!-- ------------------------------------------------------ -->
   804         <!-- ------------------------------------------------------ -->
   740         <h4><a name="paths">Windows Paths</a></h4>
   805         <h4><a name="paths">Windows Paths</a></h4>
   741         <blockquote>
   806         <blockquote>
   742             <strong>Windows:</strong>
   807             <strong>Windows:</strong>
   751             You can use <tt>cygpath</tt> utility to map pathnames with spaces
   816             You can use <tt>cygpath</tt> utility to map pathnames with spaces
   752             or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
   817             or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
   753             (called 'mixed'), e.g.
   818             (called 'mixed'), e.g.
   754             <tt>cygpath -s -m "<i>path</i>"</tt>.
   819             <tt>cygpath -s -m "<i>path</i>"</tt>.
   755             <p>
   820             <p>
   756             The makefiles will try to translate any pathnames supplied
   821                 The makefiles will try to translate any pathnames supplied
   757             to it into the <tt>C:/</tt> style automatically.
   822                 to it into the <tt>C:/</tt> style automatically.
   758             <p>
   823             <p>
   759             Note that use of CYGWIN creates a unique problem with regards to
   824                 Note that use of CYGWIN creates a unique problem with regards to
   760             setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
   825                 setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
   761             the <tt>PATH</tt> variable contains directories
   826                 the <tt>PATH</tt> variable contains directories
   762             separated with the ";" character (Solaris and Linux uses ":").
   827                 separated with the ";" character (Solaris and Linux uses ":").
   763             With CYGWIN, it uses ":", but that means that paths like "C:/path"
   828                 With CYGWIN, it uses ":", but that means that paths like "C:/path"
   764             cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
   829                 cannot be placed in the CYGWIN version  of <tt>PATH</tt> and
   765             instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
   830                 instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
   766             which CYGWIN understands, but only CYGWIN understands.
   831                 which CYGWIN understands, but only CYGWIN understands.
   767             So be careful with paths on Windows.
   832                 So be careful with paths on Windows.
   768         </blockquote>
   833         </blockquote>
   769         <!-- ------------------------------------------------------ -->
   834         <!-- ------------------------------------------------------ -->
   770         <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
   835         <h4><a name="windows_checklist">Basic Windows Check List</a></h4>
   771         <blockquote>
   836         <blockquote>
   772             <ol>
   837             <ol>
   776                 </li>
   841                 </li>
   777                 <li>
   842                 <li>
   778                     Install the 
   843                     Install the 
   779                     <a href="#bootjdk">Bootstrap JDK</a>, set
   844                     <a href="#bootjdk">Bootstrap JDK</a>, set
   780                     <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   845                     <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
   781                 </li>
       
   782                 <li>
       
   783                     Install the
       
   784                     <a href="#binaryplugs">Binary Plugs</a>, set
       
   785                     <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>..
       
   786                 </li>
   846                 </li>
   787                 <li>
   847                 <li>
   788                     <a href="#importjdk">Optional Import JDK</a>, set
   848                     <a href="#importjdk">Optional Import JDK</a>, set
   789                     <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   849                     <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>.
   790                 </li>
   850                 </li>
   826             <blockquote>
   886             <blockquote>
   827                 All OpenJDK builds require access to the previously released 
   887                 All OpenJDK builds require access to the previously released 
   828                 JDK 6, this is often called a bootstrap JDK.
   888                 JDK 6, this is often called a bootstrap JDK.
   829                 The JDK 6 binaries can be downloaded from Sun's 
   889                 The JDK 6 binaries can be downloaded from Sun's 
   830                 <a href="http://java.sun.com/javase/downloads/index.jsp"
   890                 <a href="http://java.sun.com/javase/downloads/index.jsp"
   831 		target="_blank">JDK 6 download site</a>.
   891                    target="_blank">JDK 6 download site</a>.
   832                 For build performance reasons
   892                 For build performance reasons
   833                 is very important that this bootstrap JDK be made available on the
   893                 is very important that this bootstrap JDK be made available on the
   834                 local disk of the machine doing the build.
   894                 local disk of the machine doing the build.
   835                 You should always set 
   895                 You should always set 
   836                 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
   896                 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
   839                 that contains a <tt>bin, lib, and include</tt>
   899                 that contains a <tt>bin, lib, and include</tt>
   840                 It's also a good idea to also place its <tt>bin</tt> directory
   900                 It's also a good idea to also place its <tt>bin</tt> directory
   841                 in the <tt>PATH</tt> environment variable, although it's
   901                 in the <tt>PATH</tt> environment variable, although it's
   842                 not required.
   902                 not required.
   843                 <p>
   903                 <p>
   844                 <strong>Solaris:</strong>
   904                     <strong>Solaris:</strong>
   845                 Some pre-installed JDK images may be available to you in the
   905                     Some pre-installed JDK images may be available to you in the
   846                 directory <tt>/usr/jdk/instances</tt>.
   906                     directory <tt>/usr/jdk/instances</tt>.
   847                 If you don't set
   907                     If you don't set
   848                 <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
   908                     <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
   849                 the makefiles will look in that location for a JDK it can use.
   909                     the makefiles will look in that location for a JDK it can use.
   850             </blockquote>
       
   851             <!-- ------------------------------------------------------ -->
       
   852             <h4><a name="binaryplugs">Binary Plugs</a></h4>
       
   853             <blockquote>
       
   854                 Not all of the source code that makes up the JDK is available
       
   855                 under an open-source license.
       
   856                 This is a temporary situation and these binary plugs will be
       
   857                 replaced with fully open source replacements as soon as possible.
       
   858                 So currently, in order to build a complete OpenJDK image,
       
   859                 you must first download and install the appropriate
       
   860                 binary plug bundles for the OpenJDK, go to the
       
   861                 <a href="http://openjdk.java.net" target="_blank">OpenJDK</a> site and select
       
   862                 the 
       
   863                 "<b>Bundles(7)</b>"
       
   864                 link and download the binaryplugs for
       
   865                 your particular platform.
       
   866                 The file downloaded is a jar file that must be extracted by running
       
   867                 the jar file with:
       
   868                 <blockquote>
       
   869                     <pre>
       
   870             <tt><b>java -jar jdk-7-ea-plug-b<i>nn</i>-<i>os</i>-<i>arch</i>-<i>dd</i>_<i>month</i>_<i>year</i>.jar</b></tt>
       
   871                     </pre>
       
   872                 </blockquote>
       
   873                 A prompt will be issued for acceptance of these binary plug files.
       
   874                 During the OpenJDK build process these "binary plugs"
       
   875                 for the encumbered components will be copied into your
       
   876                 resulting OpenJDK binary build image.
       
   877                 These binary plug files are only for the purpose of
       
   878                 building an OpenJDK binary.
       
   879                 Make sure you set
       
   880                 <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
       
   881                 to the root of this installation.
       
   882             </blockquote>
   910             </blockquote>
   883             <!-- ------------------------------------------------------ -->
   911             <!-- ------------------------------------------------------ -->
   884             <h4><a name="importjdk">Optional Import JDK</a></h4>
   912             <h4><a name="importjdk">Optional Import JDK</a></h4>
   885             <blockquote>
   913             <blockquote>
   886                 The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>
   914                 The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>
   894             <h4><a name="ant">Ant</a></h4>
   922             <h4><a name="ant">Ant</a></h4>
   895             <blockquote>
   923             <blockquote>
   896                 All OpenJDK builds require access to least Ant 1.6.5.
   924                 All OpenJDK builds require access to least Ant 1.6.5.
   897                 The Ant tool is available from the 
   925                 The Ant tool is available from the 
   898                 <a href="http://ant.apache.org" target="_blank">
   926                 <a href="http://ant.apache.org" target="_blank">
   899                 Ant download site</a>.
   927                     Ant download site</a>.
   900                 You should always make sure <tt>ant</tt> is in your PATH, and
   928                 You should always make sure <tt>ant</tt> is in your PATH, and
   901                 on Windows you may also need to set 
   929                 on Windows you may also need to set 
   902                 <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
   930                 <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
   903                 to point to the location of
   931                 to point to the location of
   904                 the Ant installation, this is the directory pathname
   932                 the Ant installation, this is the directory pathname
   906             </blockquote>
   934             </blockquote>
   907             <!-- ------------------------------------------------------ -->
   935             <!-- ------------------------------------------------------ -->
   908             <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
   936             <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
   909             <blockquote>
   937             <blockquote>
   910                 See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
   938                 See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank">
   911                 http://en.wikipedia.org/wiki/Certificate_Authority</a>
   939                     http://en.wikipedia.org/wiki/Certificate_Authority</a>
   912                 for a better understanding of the Certificate Authority (CA).
   940                 for a better understanding of the Certificate Authority (CA).
   913                 A certificates file named "cacerts"
   941                 A certificates file named "cacerts"
   914                 represents a system-wide keystore with CA certificates. 
   942                 represents a system-wide keystore with CA certificates. 
   915                 In JDK and JRE
   943                 In JDK and JRE
   916                 binary bundles, the "cacerts" file contains root CA certificates from
   944                 binary bundles, the "cacerts" file contains root CA certificates from
   940                 </blockquote>
   968                 </blockquote>
   941                 <strong><a name="studio">Solaris: Sun Studio</a></strong>
   969                 <strong><a name="studio">Solaris: Sun Studio</a></strong>
   942                 <blockquote>
   970                 <blockquote>
   943                     At a minimum, the
   971                     At a minimum, the
   944                     <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
   972                     <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank">
   945                     Sun Studio 12 Update 1 Compilers</a>
   973                         Sun Studio 12 Update 1 Compilers</a>
   946                     (containing version 5.10 of the C and C++ compilers) is required,
   974                     (containing version 5.10 of the C and C++ compilers) is required,
   947 		    including specific patches.
   975 		    including specific patches.
   948 		    <p>
   976                     <p>
   949 		    The Solaris SPARC patch list is:
   977 		    The Solaris SPARC patch list is:
   950 		    <ul>
   978                     <ul>
   951 		    <li>
   979                         <li>
   952                     118683-05: SunOS 5.10: Patch for profiling libraries and assembler
   980                             118683-05: SunOS 5.10: Patch for profiling libraries and assembler
   953                     </li>
   981                         </li>
   954                     <li>
   982                         <li>
   955                     119963-21: SunOS 5.10: Shared library patch for C++
   983                             119963-21: SunOS 5.10: Shared library patch for C++
   956                     </li>
   984                         </li>
   957                     <li>
   985                         <li>
   958                     120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
   986                             120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch
   959                     </li>
   987                         </li>
   960                     <li>
   988                         <li>
   961                     128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
   989                             128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler
   962                     </li>
   990                         </li>
   963                     <li>
   991                         <li>
   964                     141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
   992                             141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
   965                     </li>
   993                         </li>
   966                     <li>
   994                         <li>
   967                     141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
   995                             141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler
   968                     </li>
   996                         </li>
   969                     <li>
   997                         <li>
   970                     142371-01: Sun Studio 12.1 Update 1: Patch for dbx
   998                             142371-01: Sun Studio 12.1 Update 1: Patch for dbx
   971                     </li>
   999                         </li>
   972                     <li>
  1000                         <li>
   973                     143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
  1001                             143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling
   974                     </li>
  1002                         </li>
   975                     <li>
  1003                         <li>
   976                     143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
  1004                             143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95
   977                     </li>
  1005                         </li>
   978                     <li>
  1006                         <li>
   979                     142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
  1007                             142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools
   980                     </li>
  1008                         </li>
   981                     </ul>
  1009                     </ul>
   982                     <p>
  1010                     <p>
   983                     The Solaris X86 patch list is:
  1011                         The Solaris X86 patch list is:
   984                     <ul>
  1012                     <ul>
   985                     <li>
  1013                         <li>
   986                     119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
  1014                             119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler
   987                     </li>
  1015                         </li>
   988                     <li>
  1016                         <li>
   989                     119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
  1017                             119964-21: SunOS 5.10_x86: Shared library patch for C++_x86
   990                     </li>
  1018                         </li>
   991                     <li>
  1019                         <li>
   992                     120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
  1020                             120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch
   993                     </li>
  1021                         </li>
   994                     <li>
  1022                         <li>
   995                     141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
  1023                             141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend
   996                     </li>
  1024                         </li>
   997                     <li>
  1025                         <li>
   998                     128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
  1026                             128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler
   999                     </li>
  1027                         </li>
  1000                     <li>
  1028                         <li>
  1001                     142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
  1029                             142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler
  1002                     </li>
  1030                         </li>
  1003                     <li>
  1031                         <li>
  1004                     142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
  1032                             142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools
  1005                     </li>
  1033                         </li>
  1006                     </ul>
  1034                     </ul>
  1007                     <p> 
  1035                     <p> 
  1008                     Set 
  1036                         Set
  1009                     <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
  1037                         <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
  1010                     to point to the location of
  1038                         to point to the location of
  1011                     the compiler binaries, and place this location in the <tt>PATH</tt>.
  1039                         the compiler binaries, and place this location in the <tt>PATH</tt>.
  1012                     <p>
  1040                     <p>
  1013                     The Oracle Solaris Studio Express compilers at:
  1041                         The Oracle Solaris Studio Express compilers at:
  1014                     <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank">
  1042                         <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank">
  1015                     Oracle Solaris Studio Express Download site</a>
  1043                             Oracle Solaris Studio Express Download site</a>
  1016                     are also an option, although these compilers have not
  1044                         are also an option, although these compilers have not
  1017                     been extensively used yet.
  1045                         been extensively used yet.
  1018                 </blockquote>
  1046                 </blockquote>
  1019                 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
  1047                 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
  1020                 <blockquote>
  1048                 <blockquote>
  1021 <p>
  1049                     <p>
  1022 <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
  1050                         <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
  1023 use the newest VS2010 Microsoft compilers. These build instructions are updated
  1051                         use the newest VS2010 Microsoft compilers. These build instructions are updated
  1024 to show where we are going. We have a QA process to go through before
  1052                         to show where we are going. We have a QA process to go through before
  1025 official builds actually use VS2010. So for now, official builds are
  1053                         official builds actually use VS2010. So for now, official builds are
  1026 still using VS2003. No other compilers are known to build the entire JDK,
  1054                         still using VS2003. No other compilers are known to build the entire JDK,
  1027 including non-open portions.
  1055                         including non-open portions.
  1028 So for now you should be able to build with either VS2003 or VS2010.
  1056                         So for now you should be able to build with either VS2003 or VS2010.
  1029 We do not guarantee that VS2008 will work, although there is sufficient
  1057                         We do not guarantee that VS2008 will work, although there is sufficient
  1030 makefile support to make at least basic JDK builds plausible.
  1058                         makefile support to make at least basic JDK builds plausible.
  1031 Visual Studio 2010 Express compilers are now able to build all the
  1059                         Visual Studio 2010 Express compilers are now able to build all the
  1032 open source repositories, but this is 32 bit only. To build 64 bit
  1060                         open source repositories, but this is 32 bit only. To build 64 bit
  1033 Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
  1061                         Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
  1034 <p>
  1062                     <p>
  1035                     The 32-bit OpenJDK Windows build
  1063                         The 32-bit OpenJDK Windows build
  1036                     requires 
  1064                         requires
  1037                     Microsoft Visual Studio C++ 2010 (VS2010) Professional
  1065                         Microsoft Visual Studio C++ 2010 (VS2010) Professional
  1038                     Edition or Express compiler.
  1066                         Edition or Express compiler.
  1039                     The compiler and other tools are expected to reside
  1067                         The compiler and other tools are expected to reside
  1040                     in the location defined by the variable 
  1068                         in the location defined by the variable
  1041                     <tt>VS100COMNTOOLS</tt> which
  1069                         <tt>VS100COMNTOOLS</tt> which
  1042                     is set by the Microsoft Visual Studio installer.
  1070                         is set by the Microsoft Visual Studio installer.
  1043                     <p> 
  1071                     <p> 
  1044                     Once the compiler is installed, 
  1072                         Once the compiler is installed,
  1045                     it is recommended that you run <tt>VCVARS32.BAT</tt> 
  1073                         it is recommended that you run <tt>VCVARS32.BAT</tt>
  1046                     to set the compiler environment variables
  1074                         to set the compiler environment variables
  1047                     <tt>INCLUDE</tt>,
  1075                         <tt>INCLUDE</tt>,
  1048                     <tt>LIB</tt>, and
  1076                         <tt>LIB</tt>, and
  1049                     <tt>PATH</tt> 
  1077                         <tt>PATH</tt>
  1050                     prior to building the 
  1078                         prior to building the
  1051                     OpenJDK.
  1079                         OpenJDK.
  1052                     The above environment variables <b>MUST</b> be set.
  1080                         The above environment variables <b>MUST</b> be set.
  1053                     This compiler also contains the Windows SDK v 7.0a,
  1081                         This compiler also contains the Windows SDK v 7.0a,
  1054                     which is an update to the Windows 7 SDK.
  1082                         which is an update to the Windows 7 SDK.
  1055                     <p>
  1083                     <p>
  1056                     <b>WARNING:</b> Make sure you check out the
  1084                         <b>WARNING:</b> Make sure you check out the
  1057                     <a href="#cygwin">CYGWIN link.exe WARNING</a>.
  1085                         <a href="#cygwin">CYGWIN link.exe WARNING</a>.
  1058                     The path <tt>/usr/bin</tt> must be after the path to the
  1086                         The path <tt>/usr/bin</tt> must be after the path to the
  1059                     Visual Studio product.
  1087                         Visual Studio product.
  1060                 </blockquote>
  1088                 </blockquote>
  1061                 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
  1089                 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
  1062                 <blockquote>
  1090                 <blockquote>
  1063                     For <b>X64</b>, builds, when using the VS2010 Professional
  1091                     For <b>X64</b>, builds, when using the VS2010 Professional
  1064                     compiler, the 64 bit build set up is much the same as 32 bit
  1092                     compiler, the 64 bit build set up is much the same as 32 bit
  1067                     Previously 64 bit builds had used the 64 bit compiler in
  1095                     Previously 64 bit builds had used the 64 bit compiler in
  1068                     an unbundled Windows SDK but this is no longer necessary if
  1096                     an unbundled Windows SDK but this is no longer necessary if
  1069                     you have VS2010 Professional.
  1097                     you have VS2010 Professional.
  1070                 </blockquote>
  1098                 </blockquote>
  1071                 <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong>
  1099                 <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong>
  1072                    For a free alternative for 64 bit builds, use the 7.1 SDK.
  1100                 For a free alternative for 64 bit builds, use the 7.1 SDK.
  1073                    Microsoft say that to set up your paths for this run
  1101                 Microsoft say that to set up your paths for this run
  1074 <pre>
  1102                 <pre>
  1075     c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64.
  1103     c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64.
  1076 </pre>
  1104                 </pre>
  1077                    What was tested is just directly setting up LIB, INCLUDE,
  1105                 What was tested is just directly setting up LIB, INCLUDE,
  1078                    PATH and based on the installation directories using the
  1106                 PATH and based on the installation directories using the
  1079                    DOS short name appropriate for the system, (you will
  1107                 DOS short name appropriate for the system, (you will
  1080                    need to set them for yours, not just blindly copy this) eg :
  1108                 need to set them for yours, not just blindly copy this) eg :
  1081 <pre>
  1109                 <pre>
  1082     set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0
  1110     set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0
  1083     set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1
  1111     set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1
  1084     set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH%
  1112     set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH%
  1085     set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
  1113     set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include
  1086     set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
  1114     set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64
  1087 </pre>
  1115                 </pre>
  1088             </blockquote>
  1116             </blockquote>
  1089             <!-- ------------------------------------------------------ --> 
  1117             <!-- ------------------------------------------------------ --> 
  1090             <h4><a name="zip">Zip and Unzip</a></h4>
  1118             <h4><a name="zip">Zip and Unzip</a></h4>
  1091             <blockquote>
  1119             <blockquote>
  1092                 Version 2.2 (November 3rd 1997) or newer of the zip utility 
  1120                 Version 2.2 (November 3rd 1997) or newer of the zip utility 
  1108                 The Solaris header files can be obtained by installing 
  1136                 The Solaris header files can be obtained by installing 
  1109                 the package <strong>SFWcups</strong> from the Solaris Software
  1137                 the package <strong>SFWcups</strong> from the Solaris Software
  1110                 Companion CD/DVD, these often will be installed into 
  1138                 Companion CD/DVD, these often will be installed into 
  1111                 <tt>/opt/sfw/cups</tt>.
  1139                 <tt>/opt/sfw/cups</tt>.
  1112                 <p>
  1140                 <p>
  1113                 <strong>Linux:</strong>
  1141                     <strong>Linux:</strong>
  1114                 CUPS header files are required for building the 
  1142                     CUPS header files are required for building the
  1115                 OpenJDK on Linux.
  1143                     OpenJDK on Linux.
  1116                 The Linux header files are usually available from a "cups"
  1144                     The Linux header files are usually available from a "cups"
  1117                 development package, it's recommended that you try and use
  1145                     development package, it's recommended that you try and use
  1118                 the package provided by the particular version of Linux that
  1146                     the package provided by the particular version of Linux that
  1119                 you are using.
  1147                     you are using.
  1120                 <p>
  1148                 <p>
  1121                 The CUPS header files can always be downloaded from 
  1149                     The CUPS header files can always be downloaded from
  1122                 <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
  1150                     <a href="http://www.cups.org" target="_blank">www.cups.org</a>.
  1123                 The variable 
  1151                     The variable
  1124                 <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
  1152                     <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
  1125                 can be used to override the default location of the
  1153                     can be used to override the default location of the
  1126                 CUPS Header files.
  1154                     CUPS Header files.
  1127             </blockquote>
  1155             </blockquote>
  1128             <!-- ------------------------------------------------------ -->
  1156             <!-- ------------------------------------------------------ -->
  1129             <h4><a name="xrender">XRender Extension Headers (Solaris &amp; Linux)</a></h4>
  1157             <h4><a name="xrender">XRender Extension Headers (Solaris &amp; Linux)</a></h4>
  1130             <blockquote>
  1158             <blockquote>
  1131                 <p>
  1159                 <p>
  1132                 <strong>Solaris:</strong>
  1160                     <strong>Solaris:</strong>
  1133                 XRender header files are required for building the 
  1161                     XRender header files are required for building the
  1134                 OpenJDK on Solaris.
  1162                     OpenJDK on Solaris.
  1135                 The XRender header file is included with the other X11 header files
  1163                     The XRender header file is included with the other X11 header files
  1136                 in the package <strong>SFWxwinc</strong> on new enough versions of
  1164                     in the package <strong>SFWxwinc</strong> on new enough versions of
  1137                 Solaris and will be installed in
  1165                     Solaris and will be installed in
  1138 	        <tt>/usr/X11/include/X11/extensions/Xrender.h</tt>
  1166                     <tt>/usr/X11/include/X11/extensions/Xrender.h</tt>
  1139                 </p><p>
  1167                 </p><p>
  1140                 <strong>Linux:</strong>
  1168                     <strong>Linux:</strong>
  1141                 XRender header files are required for building the 
  1169                     XRender header files are required for building the
  1142                 OpenJDK on Linux.
  1170                     OpenJDK on Linux.
  1143                 The Linux header files are usually available from a "Xrender"
  1171                     The Linux header files are usually available from a "Xrender"
  1144                 development package, it's recommended that you try and use
  1172                     development package, it's recommended that you try and use
  1145                 the package provided by the particular distribution of Linux that
  1173                     the package provided by the particular distribution of Linux that
  1146                 you are using.
  1174                     you are using.
  1147 	        </p>
  1175                 </p>
  1148             </blockquote>
  1176             </blockquote>
  1149             <!-- ------------------------------------------------------ -->
  1177             <!-- ------------------------------------------------------ -->
  1150             <h4><a name="freetype">FreeType 2</a></h4>
  1178             <h4><a name="freetype">FreeType 2</a></h4>
  1151             <blockquote>
  1179             <blockquote>
  1152                 Version 2.3 or newer of FreeType is required for building the OpenJDK.
  1180                 Version 2.3 or newer of FreeType is required for building the OpenJDK.
  1153                 On Unix systems required files can be available as part of your
  1181                 On Unix systems required files can be available as part of your
  1154                 distribution (while you still may need to upgrade them).
  1182                 distribution (while you still may need to upgrade them).
  1155                 Note that you need development version of package that 
  1183                 Note that you need development version of package that 
  1156                 includes both FreeType library and header files.
  1184                 includes both FreeType library and header files.
  1157                 <p>
  1185                 <p>
  1158                 You can always download latest FreeType version from the
  1186                     You can always download latest FreeType version from the
  1159                 <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
  1187                     <a href="http://www.freetype.org" target="_blank">FreeType website</a>.
  1160                 <p>
  1188                 <p>
  1161                 Makefiles will try to pick FreeType from /usr/lib and /usr/include.
  1189                     Makefiles will try to pick FreeType from /usr/lib and /usr/include.
  1162                 In case it is installed elsewhere you will need to set environment
  1190                     In case it is installed elsewhere you will need to set environment
  1163                 variables 
  1191                     variables
  1164                 <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
  1192                     <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
  1165                 and 
  1193                     and
  1166                 <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
  1194                     <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
  1167                 to refer to place where library and header files are installed.
  1195                     to refer to place where library and header files are installed.
  1168                 <p>
  1196                 <p>
  1169                 Building the freetype 2 libraries from scratch is also possible,
  1197                     Building the freetype 2 libraries from scratch is also possible,
  1170                 however on Windows refer to the
  1198                     however on Windows refer to the
  1171                 <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL">
  1199                     <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL">
  1172                 Windows FreeType DLL build instructions</a>.
  1200                         Windows FreeType DLL build instructions</a>.
  1173                 <p>
  1201                 <p>
  1174                 Note that by default FreeType is built with byte code hinting
  1202                     Note that by default FreeType is built with byte code hinting
  1175                 support disabled due to licensing restrictions.
  1203                     support disabled due to licensing restrictions.
  1176                 In this case, text appearance and metrics are expected to
  1204                     In this case, text appearance and metrics are expected to
  1177                 differ from Sun's official JDK build.
  1205                     differ from Sun's official JDK build.
  1178                 See
  1206                     See
  1179                 <a href="http://freetype.sourceforge.net/freetype2/index.html">
  1207                     <a href="http://freetype.sourceforge.net/freetype2/index.html">
  1180                     the SourceForge FreeType2 Home Page
  1208                         the SourceForge FreeType2 Home Page
  1181                 </a>
  1209                     </a>
  1182                 for more information.
  1210                     for more information.
  1183             </blockquote>    
  1211             </blockquote>    
  1184             <!-- ------------------------------------------------------ -->
  1212             <!-- ------------------------------------------------------ -->
  1185             <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
  1213             <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
  1186             <blockquote>
  1214             <blockquote>
  1187                 <strong>Linux only:</strong>
  1215                 <strong>Linux only:</strong>
  1193                 the package provided by the particular version of Linux that
  1221                 the package provided by the particular version of Linux that
  1194                 you are using.
  1222                 you are using.
  1195                 The makefiles will check this emit a sanity error if it is
  1223                 The makefiles will check this emit a sanity error if it is
  1196                 missing or the wrong version.
  1224                 missing or the wrong version.
  1197                 <p>
  1225                 <p>
  1198                 In particular, older Linux systems will likely not have the
  1226                     In particular, older Linux systems will likely not have the
  1199                 right version of ALSA installed, for example
  1227                     right version of ALSA installed, for example
  1200                 Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently 
  1228                     Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently
  1201                 recent ALSA distribution.
  1229                     recent ALSA distribution.
  1202                 On rpm-based systems, you can see if ALSA is installed by 
  1230                     On rpm-based systems, you can see if ALSA is installed by
  1203                 running this command:
  1231                     running this command:
  1204                 <pre>
  1232                 <pre>
  1205                     <tt>rpm -qa | grep alsa</tt>
  1233                     <tt>rpm -qa | grep alsa</tt>
  1206                 </pre>
  1234                 </pre>
  1207                 Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed.
  1235                 Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed.
  1208                 <p> 
  1236                 <p> 
  1209                 If your distribution does not come with ALSA, and you can't
  1237                     If your distribution does not come with ALSA, and you can't
  1210                 find ALSA packages built for your particular system,
  1238                     find ALSA packages built for your particular system,
  1211                 you can try to install the pre-built ALSA rpm packages from
  1239                     you can try to install the pre-built ALSA rpm packages from
  1212                 <a href="http://www.freshrpms.net/" target="_blank">
  1240                     <a href="http://www.freshrpms.net/" target="_blank">
  1213                 <tt>www.freshrpms.net</tt></a>. 
  1241                         <tt>www.freshrpms.net</tt></a>.
  1214                 Note that installing a newer ALSA could
  1242                     Note that installing a newer ALSA could
  1215                 break sound output if an older version of ALSA was previously
  1243                     break sound output if an older version of ALSA was previously
  1216                 installed on the system, but it will enable JDK compilation.
  1244                     installed on the system, but it will enable JDK compilation.
  1217                 <blockquote>
  1245                 <blockquote>
  1218                     Installation: execute as root<br>
  1246                     Installation: execute as root<br>
  1219                     [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br>
  1247                     [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br>
  1220                     [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br>
  1248                     [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br>
  1221                     Uninstallation:<br>
  1249                     Uninstallation:<br>
  1226                     by verifying that the dynamic library (<tt>libasound.so</tt>) is
  1254                     by verifying that the dynamic library (<tt>libasound.so</tt>) is
  1227                     correctly installed in <tt>/usr/lib</tt>.
  1255                     correctly installed in <tt>/usr/lib</tt>.
  1228                 </blockquote>
  1256                 </blockquote>
  1229                 As a last resort you can go to the
  1257                 As a last resort you can go to the
  1230                 <a href="http://www.alsa-project.org" target="_blank">
  1258                 <a href="http://www.alsa-project.org" target="_blank">
  1231                 Advanced Linux Sound Architecture Site</a> and build it from
  1259                     Advanced Linux Sound Architecture Site</a> and build it from
  1232                 source.
  1260                 source.
  1233                 <blockquote>
  1261                 <blockquote>
  1234                     Download driver and library
  1262                     Download driver and library
  1235                     source tarballs from 
  1263                     source tarballs from 
  1236                     <a href="http://www.alsa-project.org" target="_blank">ALSA's homepage</a>. 
  1264                     <a href="http://www.alsa-project.org" target="_blank">ALSA's homepage</a>. 
  1254                 </blockquote>
  1282                 </blockquote>
  1255                 Note that this is a minimum install that enables
  1283                 Note that this is a minimum install that enables
  1256                 building the JDK platform. To actually use ALSA sound drivers, more
  1284                 building the JDK platform. To actually use ALSA sound drivers, more
  1257                 steps are necessary as outlined in the documentation on ALSA's homepage.
  1285                 steps are necessary as outlined in the documentation on ALSA's homepage.
  1258                 <p>
  1286                 <p>
  1259                 ALSA can be uninstalled by executing <tt>make uninstall</tt> first in
  1287                     ALSA can be uninstalled by executing <tt>make uninstall</tt> first in
  1260                 the <tt>alsa-lib-0.9.1</tt> directory and then in 
  1288                     the <tt>alsa-lib-0.9.1</tt> directory and then in
  1261                 <tt>alsa-driver-0.9.1</tt>.
  1289                     <tt>alsa-driver-0.9.1</tt>.
  1262             </blockquote>
  1290             </blockquote>
  1263             There are no ALT* variables to change the assumed locations of ALSA,
  1291             There are no ALT* variables to change the assumed locations of ALSA,
  1264             the makefiles will expect to find the ALSA include files and library at:
  1292             the makefiles will expect to find the ALSA include files and library at:
  1265             <tt>/usr/include/alsa</tt> and <tt>/usr/lib/libasound.so</tt>.
  1293             <tt>/usr/include/alsa</tt> and <tt>/usr/lib/libasound.so</tt>.
  1266         </blockquote>
  1294         </blockquote>
  1271             <blockquote> 
  1299             <blockquote> 
  1272                 The OpenJDK requires access to a set of unix command tools
  1300                 The OpenJDK requires access to a set of unix command tools
  1273                 on Windows which can be supplied by 
  1301                 on Windows which can be supplied by 
  1274                 <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. 
  1302                 <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. 
  1275                 <p>
  1303                 <p>
  1276                 The OpenJDK build requires CYGWIN version 1.5.12 or newer. 
  1304                     The OpenJDK build requires CYGWIN version 1.5.12 or newer.
  1277                 Information about CYGWIN can
  1305                     Information about CYGWIN can
  1278                 be obtained from the CYGWIN website at 
  1306                     be obtained from the CYGWIN website at
  1279                 <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>. 
  1307                     <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>.
  1280                 <p>
  1308                 <p>
  1281                 By default CYGWIN doesn't install all the tools required for building
  1309                     By default CYGWIN doesn't install all the tools required for building
  1282                 the OpenJDK.
  1310                     the OpenJDK.
  1283                 Along with the default installation, you need to install
  1311                     Along with the default installation, you need to install
  1284                 the following tools.
  1312                     the following tools.
  1285                 <blockquote>
  1313                 <blockquote>
  1286                     <table border="1">
  1314                     <table border="1">
  1287                         <thead>
  1315                         <thead>
  1288                             <tr>
  1316                             <tr>
  1289                                 <td>Binary Name</td>
  1317                                 <td>Binary Name</td>
  1296                             <tr>
  1324                             <tr>
  1297                                 <td>ar.exe</td>
  1325                                 <td>ar.exe</td>
  1298                                 <td>Devel</td>
  1326                                 <td>Devel</td>
  1299                                 <td>binutils</td>
  1327                                 <td>binutils</td>
  1300                                 <td>The GNU assembler, linker and binary
  1328                                 <td>The GNU assembler, linker and binary
  1301                                 utilities</td>
  1329                                     utilities</td>
  1302                             </tr>
  1330                             </tr>
  1303                             <tr>
  1331                             <tr>
  1304                                 <td>make.exe</td>
  1332                                 <td>make.exe</td>
  1305                                 <td>Devel</td>
  1333                                 <td>Devel</td>
  1306                                 <td>make</td>
  1334                                 <td>make</td>
  1307                                 <td>The GNU version of the 'make' utility built for CYGWIN.<br>
  1335                                 <td>The GNU version of the 'make' utility built for CYGWIN.<br>
  1308                                 <b>NOTE</b>: See <a href="#gmake">the GNU make section</a></td>
  1336                                     <b>NOTE</b>: See <a href="#gmake">the GNU make section</a></td>
  1309                             </tr>
  1337                             </tr>
  1310                             <tr>
  1338                             <tr>
  1311                                 <td>m4.exe</td>
  1339                                 <td>m4.exe</td>
  1312                                 <td>Interpreters</td>
  1340                                 <td>Interpreters</td>
  1313                                 <td>m4</td>
  1341                                 <td>m4</td>
  1314                                 <td>GNU implementation of the traditional Unix macro
  1342                                 <td>GNU implementation of the traditional Unix macro
  1315                                 processor</td>
  1343                                     processor</td>
  1316                             </tr>
  1344                             </tr>
  1317                             <tr>
  1345                             <tr>
  1318                                 <td>cpio.exe</td>
  1346                                 <td>cpio.exe</td>
  1319                                 <td>Utils</td>
  1347                                 <td>Utils</td>
  1320                                 <td>cpio</td>
  1348                                 <td>cpio</td>
  1352                             </tr>
  1380                             </tr>
  1353                         </tbody>
  1381                         </tbody>
  1354                     </table>
  1382                     </table>
  1355                 </blockquote>
  1383                 </blockquote>
  1356                 <p>
  1384                 <p>
  1357                 Note that the CYGWIN software can conflict with other non-CYGWIN
  1385                     Note that the CYGWIN software can conflict with other non-CYGWIN
  1358                 software on your Windows system.
  1386                     software on your Windows system.
  1359                 CYGWIN provides a
  1387                     CYGWIN provides a
  1360                 <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
  1388                     <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for
  1361                 known issues and problems, of particular interest is the
  1389                     known issues and problems, of particular interest is the
  1362                 section on
  1390                     section on
  1363                 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  1391                     <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  1364                 BLODA (applications that interfere with CYGWIN)</a>.
  1392                         BLODA (applications that interfere with CYGWIN)</a>.
  1365                 <p>
  1393                 <p>
  1366                 <b>WARNING:</b>
  1394                     <b>WARNING:</b>
  1367                 Be very careful with <b><tt>link.exe</tt></b>, it will conflict
  1395                     Be very careful with <b><tt>link.exe</tt></b>, it will conflict
  1368                 with the Visual Studio version. You need the Visual Studio
  1396                     with the Visual Studio version. You need the Visual Studio
  1369                 version of <tt>link.exe</tt>, not the CYGWIN one.
  1397                     version of <tt>link.exe</tt>, not the CYGWIN one.
  1370                 So it's important that the Visual Studio paths in PATH preceed
  1398                     So it's important that the Visual Studio paths in PATH preceed
  1371                 the CYGWIN path <tt>/usr/bin</tt>.
  1399                     the CYGWIN path <tt>/usr/bin</tt>.
  1372             </blockquote>
  1400             </blockquote>
  1373             <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
  1401             <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong>
  1374             <blockquote>
  1402             <blockquote>
  1375                 Microsoft DirectX 9.0 SDK (Summer 2004)
  1403                 Microsoft DirectX 9.0 SDK (Summer 2004)
  1376                 headers are required for building
  1404                 headers are required for building
  1377                 OpenJDK.
  1405                 OpenJDK.
  1378                 This SDK can be downloaded from 
  1406                 This SDK can be downloaded from 
  1379                 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en" target="_blank">
  1407                 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&amp;displaylang=en" target="_blank">
  1380                 Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
  1408                     Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
  1381                 If the link above becomes obsolete, the SDK can be found from 
  1409                 If the link above becomes obsolete, the SDK can be found from 
  1382                 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
  1410                 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a>
  1383                 (search with "DirectX 9.0 SDK Update Summer 2004"). 
  1411                 (search with "DirectX 9.0 SDK Update Summer 2004"). 
  1384                 The location of this SDK can be set with 
  1412                 The location of this SDK can be set with 
  1385                 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
  1413                 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
  1429                         </tt>
  1457                         </tt>
  1430                     </blockquote>
  1458                     </blockquote>
  1431                 </li>
  1459                 </li>
  1432             </ol>
  1460             </ol>
  1433             <p>
  1461             <p>
  1434             <strong>Solaris:</strong>
  1462                 <strong>Solaris:</strong>
  1435             Note that ARCH_DATA_MODEL is really only needed on Solaris to
  1463                 Note that ARCH_DATA_MODEL is really only needed on Solaris to
  1436             indicate you want to built the 64-bit version.
  1464                 indicate you want to built the 64-bit version.
  1437             And before the Solaris 64-bit binaries can be used, they
  1465                 And before the Solaris 64-bit binaries can be used, they
  1438             must be merged with the binaries from a separate 32-bit build. 
  1466                 must be merged with the binaries from a separate 32-bit build.
  1439             The merged binaries may then be used in either 32-bit or 64-bit mode, with
  1467                 The merged binaries may then be used in either 32-bit or 64-bit mode, with
  1440             the selection occurring at runtime 
  1468                 the selection occurring at runtime
  1441             with the <tt>-d32</tt> or <tt>-d64</tt> options. 
  1469                 with the <tt>-d32</tt> or <tt>-d64</tt> options.
  1442         </blockquote>
  1470         </blockquote>
  1443         <!-- ------------------------------------------------------ -->
  1471         <!-- ------------------------------------------------------ -->
  1444         <hr>
  1472         <hr>
  1445         <h2><a name="testing">Testing the Build</a></h2>
  1473         <h2><a name="testing">Testing the Build</a></h2>
  1446         <blockquote>
  1474         <blockquote>
  1448             binaries and associated files in the <tt>j2sdk-image</tt> 
  1476             binaries and associated files in the <tt>j2sdk-image</tt> 
  1449             directory in the output directory. 
  1477             directory in the output directory. 
  1450             The default output directory is
  1478             The default output directory is
  1451             <tt>build/<i>platform</i></tt>,
  1479             <tt>build/<i>platform</i></tt>,
  1452             where <tt><i>platform</i></tt> is one of
  1480             where <tt><i>platform</i></tt> is one of
  1453             <tt><ul>
  1481             <blockquote>
  1454                     <li>solaris-sparc</li>
  1482                 <ul>
  1455                     <li>solaris-sparcv9</li>
  1483                     <li><tt>solaris-sparc</tt></li>
  1456                     <li>solaris-i586</li>
  1484                     <li><tt>solaris-sparcv9</tt></li>
  1457                     <li>solaris-amd64</li>
  1485                     <li><tt>solaris-i586</tt></li>
  1458                     <li>linux-i586</li>
  1486                     <li><tt>solaris-amd64</tt></li>
  1459                     <li>linux-amd64</li>
  1487                     <li><tt>linux-i586</tt></li>
  1460                     <li>windows-i586</li>
  1488                     <li><tt>linux-amd64</tt></li>
  1461                     <li>windows-amd64</li>
  1489                     <li><tt>windows-i586</tt></li>
  1462             </ul></tt>
  1490                     <li><tt>windows-amd64</tt></li>
       
  1491                 </ul>
       
  1492             </blockquote>
  1463             In particular, the 
  1493             In particular, the 
  1464             <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
  1494             <tt>build/<i>platform</i>/j2sdk-image/bin</tt>
  1465             directory should contain executables for the 
  1495             directory should contain executables for the 
  1466             OpenJDK tools and utilities.
  1496             OpenJDK tools and utilities.
  1467             <p>
  1497             <p>
  1468             You can test that the build completed properly by using the build
  1498                 You can test that the build completed properly by using the build
  1469             to run the various demos that you will find in the 
  1499                 to run the various demos that you will find in the
  1470             <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
  1500                 <tt>build/<i>platform</i>/j2sdk-image/demo</tt>
  1471             directory.
  1501                 directory.
  1472             <p>
  1502             <p>
  1473             The provided regression tests can be run with the <tt>jtreg</tt>
  1503                 The provided regression tests can be run with the <tt>jtreg</tt>
  1474             utility from 
  1504                 utility from
  1475             <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>.
  1505                 <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>.
  1476         </blockquote>
  1506         </blockquote>
  1477         <!-- ------------------------------------------------------ -->
  1507         <!-- ------------------------------------------------------ -->
  1478         <hr>
  1508         <hr>
  1479         <h2><a name="variables">Environment/Make Variables</a></h2>
  1509         <h2><a name="variables">Environment/Make Variables</a></h2>
  1480         <p>
  1510         <p>
  1481         Some of the
  1511             Some of the
  1482         environment or make variables (just called <b>variables</b> in this
  1512             environment or make variables (just called <b>variables</b> in this
  1483         document) that can impact the build are:
  1513             document) that can impact the build are:
  1484         <blockquote>
  1514         <blockquote>
  1485             <dl>
  1515             <dl>
  1486                 <dt><a name="path"><tt>PATH</tt></a> </dt>
  1516                 <dt><a name="path"><tt>PATH</tt></a> </dt>
  1487                 <dd>Typically you want to set the <tt>PATH</tt> to include:
  1517                 <dd>Typically you want to set the <tt>PATH</tt> to include:
  1488                     <ul>
  1518                     <ul>
  1489                         <li>The location of the GNU make binary</li>
  1519                         <li>The location of the GNU make binary</li>
  1490                         <li>The location of the Bootstrap JDK <tt>java</tt> 
  1520                         <li>The location of the Bootstrap JDK <tt>java</tt> 
  1491                         (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
  1521                             (see <a href="#bootjdk">Bootstrap JDK</a>)</li>
  1492                         <li>The location of the C/C++ compilers 
  1522                         <li>The location of the C/C++ compilers 
  1493                         (see <a href="#compilers"><tt>compilers</tt></a>)</li>
  1523                             (see <a href="#compilers"><tt>compilers</tt></a>)</li>
  1494                         <li>The location or locations for the Unix command utilities
  1524                         <li>The location or locations for the Unix command utilities
  1495                         (e.g. <tt>/usr/bin</tt>)</li>
  1525                             (e.g. <tt>/usr/bin</tt>)</li>
  1496                     </ul>
  1526                     </ul>
  1497                 </dd>
  1527                 </dd>
  1498                 <dt><tt>MILESTONE</tt> </dt>
  1528                 <dt><tt>MILESTONE</tt> </dt>
  1499                 <dd>
  1529                 <dd>
  1500                     The milestone name for the build (<i>e.g.</i>"beta"). 
  1530                     The milestone name for the build (<i>e.g.</i>"beta"). 
  1520                 <dd>
  1550                 <dd>
  1521                     The location of the bootstrap JDK installation. 
  1551                     The location of the bootstrap JDK installation. 
  1522                     See <a href="#bootjdk">Bootstrap JDK</a> for more information.
  1552                     See <a href="#bootjdk">Bootstrap JDK</a> for more information.
  1523                     You should always install your own local Bootstrap JDK and
  1553                     You should always install your own local Bootstrap JDK and
  1524                     always set <tt>ALT_BOOTDIR</tt> explicitly.
  1554                     always set <tt>ALT_BOOTDIR</tt> explicitly.
  1525                 </dd>
       
  1526                 <dt><a name="ALT_BINARY_PLUGS_PATH"><tt>ALT_BINARY_PLUGS_PATH</tt></a></dt>
       
  1527                 <dd>
       
  1528                     The location of the binary plugs installation.
       
  1529                     See <a href="#binaryplugs">Binary Plugs</a> for more information.
       
  1530                     You should always have a local copy of a
       
  1531                     recent Binary Plugs install image
       
  1532                     and set this variable to that location.
       
  1533                 </dd>
  1555                 </dd>
  1534                 <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
  1556                 <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt>
  1535                 <dd>
  1557                 <dd>
  1536                     The location of a previously built JDK installation. 
  1558                     The location of a previously built JDK installation. 
  1537                     See <a href="#importjdk">Optional Import JDK</a> for more information.
  1559                     See <a href="#importjdk">Optional Import JDK</a> for more information.
  1625                     and
  1647                     and
  1626                     <tt>windows-amd64</tt>.
  1648                     <tt>windows-amd64</tt>.
  1627                     Where each of these directories contain the import JDK image
  1649                     Where each of these directories contain the import JDK image
  1628                     for that platform.
  1650                     for that platform.
  1629                 </dd>
  1651                 </dd>
  1630                 <dt><a name="ALT_BUILD_BINARY_PLUGS_PATH"><tt>ALT_BUILD_BINARY_PLUGS_PATH</tt></a></dt>
       
  1631                 <dd>
       
  1632                     These are useful in managing builds on multiple platforms.
       
  1633                     The default network location for all of the binary plug images
       
  1634                     for all platforms. 
       
  1635                     If <tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
       
  1636                     is not set, this directory will be used and should contain 
       
  1637                     the following directories:
       
  1638                     <tt>solaris-sparc</tt>,
       
  1639                     <tt>solaris-i586</tt>,
       
  1640                     <tt>solaris-sparcv9</tt>,
       
  1641                     <tt>solaris-amd64</tt>,
       
  1642                     <tt>linux-i586</tt>,
       
  1643                     <tt>linux-amd64</tt>,
       
  1644                     <tt>windows-i586</tt>,
       
  1645                     and
       
  1646                     <tt>windows-amd64</tt>.
       
  1647                     Where each of these directories contain the binary plugs image
       
  1648                     for that platform.
       
  1649                 </dd>
       
  1650                 <dt><strong>Windows specific:</strong></dt>
  1652                 <dt><strong>Windows specific:</strong></dt>
  1651                 <dd>
  1653                 <dd>
  1652                     <dl>
  1654                     <dl>
  1653                         <dt><a name="ALT_MSDEVTOOLS_PATH"><tt>ALT_MSDEVTOOLS_PATH</tt></a> </dt>
  1655                         <dt><a name="ALT_WINDOWSSDKDIR"><tt>ALT_WINDOWSSDKDIR</tt></a> </dt>
  1654                         <dd>
  1656                         <dd>
  1655                             The location of the 
  1657                             The location of the 
  1656                             Microsoft Visual Studio
  1658                             Microsoft Windows SDK where some tools will be
  1657                             tools 'bin' directory.
  1659 			    located.
  1658                             The default is usually derived from
  1660 			    The default is whatever WINDOWSSDKDIR is set to
  1659                             <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
  1661 			    (or WindowsSdkDir) or the path
       
  1662 			    <pre>
       
  1663                             c:\Program Files\Microsoft SDKs\Windows\v6.1a
       
  1664 			    </pre>
  1660                         </dd>
  1665                         </dd>
  1661                         <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
  1666                         <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
  1662                         <dd>
  1667                         <dd>
  1663                             The location of the 
  1668                             The location of the 
  1664                             <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  1669                             <a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
  1692             troubleshooting a build failure is to recheck that you have satisfied
  1697             troubleshooting a build failure is to recheck that you have satisfied
  1693             all the pre-build requirements for your platform.
  1698             all the pre-build requirements for your platform.
  1694             Look for the check list of the platform you are building on in the
  1699             Look for the check list of the platform you are building on in the
  1695             <a href="#contents">Table of Contents</a>.
  1700             <a href="#contents">Table of Contents</a>.
  1696             <p>
  1701             <p>
  1697             You can validate your build environment by using the <tt>sanity</tt>
  1702                 You can validate your build environment by using the <tt>sanity</tt>
  1698             target.
  1703                 target.
  1699             Any errors listed
  1704                 Any errors listed
  1700             will stop the build from starting, and any warnings may result in
  1705                 will stop the build from starting, and any warnings may result in
  1701             a flawed product build.
  1706                 a flawed product build.
  1702             We strongly encourage you to evaluate every
  1707                 We strongly encourage you to evaluate every
  1703             sanity check warning and fix it if required, before you proceed
  1708                 sanity check warning and fix it if required, before you proceed
  1704             further with your build.
  1709                 further with your build.
  1705             <p>
  1710             <p>
  1706             Some of the more common problems with builds are briefly described
  1711                 Some of the more common problems with builds are briefly described
  1707             below, with suggestions for remedies.
  1712                 below, with suggestions for remedies.
  1708             <ul>
  1713             <ul>
  1709                 <li>
  1714                 <li>
  1710                     <b>Slow Builds:</b>
  1715                     <b>Slow Builds:</b>
  1711                     <blockquote>
  1716                     <blockquote>
  1712                         If your build machine seems to be overloaded from too many
  1717                         If your build machine seems to be overloaded from too many
  1713                         simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
  1718                         simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
  1714                         variable to <tt>1</tt> (if you're using a multiple CPU
  1719                         variable to <tt>1</tt> (if you're using a multiple CPU
  1715                         machine, setting it to more than the the number of CPUs is probably
  1720                         machine, setting it to more than the the number of CPUs is probably
  1716                         not a good idea).
  1721                         not a good idea).
  1717                         <p>
  1722                         <p>
  1718                         Creating the javadocs can be very slow, if you are running
  1723                             Creating the javadocs can be very slow, if you are running
  1719                         javadoc, consider skipping that step.
  1724                             javadoc, consider skipping that step.
  1720                         <p>
  1725                         <p>
  1721                         Faster hardware and more RAM always helps too.
  1726                             Faster hardware and more RAM always helps too.
  1722                         The VM build tends to be CPU intensive (many C++ compiles),
  1727                             The VM build tends to be CPU intensive (many C++ compiles),
  1723                         and the rest of the JDK will often be disk intensive.
  1728                             and the rest of the JDK will often be disk intensive.
  1724                         <p>
  1729                         <p>
  1725                         Faster compiles are possible using a tool called
  1730                             Faster compiles are possible using a tool called
  1726                         <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
  1731                             <a href="http://ccache.samba.org/" target="_blank">ccache</a>.
  1727                     </blockquote>
  1732                     </blockquote>
  1728                 </li>
  1733                 </li>
  1729                 <li>
  1734                 <li>
  1730                     <b>File time issues:</b>
  1735                     <b>File time issues:</b>
  1731                     <blockquote>
  1736                     <blockquote>
  1732                         If you see warnings that refer to file time stamps, e.g.
  1737                         If you see warnings that refer to file time stamps, e.g.
  1733                         <blockquote>
  1738                         <blockquote>
  1734                             <i>Warning message:</i><tt> File `xxx' has modification time in
  1739                             <i>Warning message:</i><tt> File `xxx' has modification time in
  1735                             the future.</tt>
  1740                                 the future.</tt>
  1736                             <br>
  1741                             <br>
  1737                             <i>Warning message:</i> <tt> Clock skew detected. Your build may
  1742                             <i>Warning message:</i> <tt> Clock skew detected. Your build may
  1738                             be incomplete.</tt> 
  1743                                 be incomplete.</tt>
  1739                         </blockquote>
  1744                         </blockquote>
  1740                         These warnings can occur when the clock on the build machine is out of
  1745                         These warnings can occur when the clock on the build machine is out of
  1741                         sync with the timestamps on the source files. Other errors, apparently
  1746                         sync with the timestamps on the source files. Other errors, apparently
  1742                         unrelated but in fact caused by the clock skew, can occur along with
  1747                         unrelated but in fact caused by the clock skew, can occur along with
  1743                         the clock skew warnings. These secondary errors may tend to obscure the
  1748                         the clock skew warnings. These secondary errors may tend to obscure the
  1745                         For example, an out-of-sync clock has been known to cause an old
  1750                         For example, an out-of-sync clock has been known to cause an old
  1746                         version of javac to be used to compile some files, resulting in errors
  1751                         version of javac to be used to compile some files, resulting in errors
  1747                         when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
  1752                         when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
  1748                         in the 1.4 source code.
  1753                         in the 1.4 source code.
  1749                         <p>
  1754                         <p>
  1750                         If you see these warnings, reset the clock on the build
  1755                             If you see these warnings, reset the clock on the build
  1751                         machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
  1756                             machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
  1752                         containing the build output, and restart the build from the beginning.
  1757                             containing the build output, and restart the build from the beginning.
  1753                     </blockquote>
  1758                     </blockquote>
  1754                 </li>
  1759                 </li>
  1755                 <li>
  1760                 <li>
  1756                     <b>Error message: <tt>Trouble writing out table to disk</tt></b>
  1761                     <b>Error message: <tt>Trouble writing out table to disk</tt></b>
  1757                     <blockquote>
  1762                     <blockquote>
  1774                 <li>
  1779                 <li>
  1775                     <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
  1780                     <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
  1776                     <blockquote>
  1781                     <blockquote>
  1777                         This is probably an issue with SELinux (See
  1782                         This is probably an issue with SELinux (See
  1778                         <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
  1783                         <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank">
  1779                         http://en.wikipedia.org/wiki/SELinux</a>).
  1784                             http://en.wikipedia.org/wiki/SELinux</a>).
  1780                         Parts of the VM is built without the <tt>-fPIC</tt> for
  1785                         Parts of the VM is built without the <tt>-fPIC</tt> for
  1781                         performance reasons.
  1786                         performance reasons.
  1782                         <p>
  1787                         <p>
  1783                         To completely disable SELinux:
  1788                             To completely disable SELinux:
  1784                         <tt>
  1789                         <ol>
  1785                             <ol>
  1790                             <li><tt>$ su root</tt></li>
  1786                                 <li>$ su root</li>
  1791                             <li><tt># system-config-securitylevel</tt></li>
  1787                                 <li># system-config-securitylevel</li>
  1792                             <li><tt>In the window that appears, select the SELinux tab</tt></li>
  1788                                 <li>In the window that appears, select the SELinux tab</li>
  1793                             <li><tt>Disable SELinux</tt></li>
  1789                                 <li>Disable SELinux</li>
  1794                         </ol>
  1790                             </ol>
       
  1791                         </tt>
       
  1792                         <p>
  1795                         <p>
  1793                         Alternatively, instead of completely disabling it you could
  1796                             Alternatively, instead of completely disabling it you could
  1794                         disable just this one check.
  1797                             disable just this one check.
  1795                         <tt>
  1798                         <ol>
  1796                             <ol>
  1799                             <li>Select System->Administration->SELinux Management</li>
  1797                                 <li>Select System->Administration->SELinux Management</li>
  1800                             <li>In the SELinux Management Tool which appears,
  1798                                 <li>In the SELinux Management Tool which appears, 
       
  1799                                 select "Boolean" from the menu on the left</li>
  1801                                 select "Boolean" from the menu on the left</li>
  1800                                 <li>Expand the "Memory Protection" group</li>
  1802                             <li>Expand the "Memory Protection" group</li>
  1801                                 <li>Check the first item, labeled
  1803                             <li>Check the first item, labeled
  1802                                 "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
  1804                                 "Allow all unconfined executables to use libraries requiring text relocation ..."</li>
  1803                             </ol>
  1805                         </ol>
  1804                         </tt>
       
  1805                     </blockquote>
  1806                     </blockquote>
  1806                 </li>
  1807                 </li>
  1807                 <li>
  1808                 <li>
  1808                     <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b>
  1809                     <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b>
  1809                     <blockquote>
  1810                     <blockquote>
  1810                         The CYGWIN software can conflict with other non-CYGWIN
  1811                         The CYGWIN software can conflict with other non-CYGWIN
  1811                         software. See the CYGWIN FAQ section on
  1812                         software. See the CYGWIN FAQ section on
  1812                         <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  1813                         <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank">
  1813                         BLODA (applications that interfere with CYGWIN)</a>.
  1814                             BLODA (applications that interfere with CYGWIN)</a>.
  1814                     </blockquote>
  1815                     </blockquote>
  1815                 </li>
  1816                 </li>
  1816                 <li>
  1817                 <li>
  1817                     <b>Windows Error Message: <tt>*** multiple target patterns.  Stop.</tt></b>
  1818                     <b>Windows Error Message: <tt>*** multiple target patterns.  Stop.</tt></b>
  1818                     <blockquote>
  1819                     <blockquote>