README-builds.html

changeset 320
b87875789600
parent 298
a6b015b59fbc
child 323
dada8003df87
     1.1 --- a/README-builds.html	Thu Mar 10 17:10:45 2011 -0800
     1.2 +++ b/README-builds.html	Tue Mar 22 08:15:39 2011 -0700
     1.3 @@ -54,7 +54,11 @@
     1.4                          <li><a href="#opensolaris">OpenSolaris</a></li>
     1.5                      </ul>
     1.6                  </li>
     1.7 -                <li><a href="#directories">Source Directory Structure</a> </li>
     1.8 +                <li><a href="#directories">Source Directory Structure</a> 
     1.9 +                    <ul>
    1.10 +                        <li><a href="#drops">Managing the Source Drops</a></li>
    1.11 +                    </ul>
    1.12 +                </li>
    1.13                  <li><a href="#building">Build Information</a>
    1.14                      <ul>
    1.15                          <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
    1.16 @@ -65,7 +69,7 @@
    1.17                              <ul>
    1.18                                  <li><a href="#bootjdk">Bootstrap JDK</a> </li>
    1.19                                  <li><a href="#importjdk">Optional Import JDK</a> </li>
    1.20 -                                <li><a href="#ant">Ant</a> </li>
    1.21 +                                <li><a href="#ant">Ant 1.7.1</a> </li>
    1.22                                  <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
    1.23                                  <li><a href="#compilers">Compilers</a>
    1.24                                      <ul>
    1.25 @@ -114,13 +118,13 @@
    1.26              <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>.
    1.27              If you are new to Mercurial, please see the
    1.28              <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a>
    1.29 -            or refer to the <a href=""http://hgbook.red-bean.com/">Mercurial Book</a>.
    1.30 +            or refer to the <a href="http://hgbook.red-bean.com/">Mercurial Book</a>.
    1.31              The first few chapters of the book provide an excellent overview of
    1.32              Mercurial, what it is and how it works.
    1.33              <br>
    1.34              For using Mercurial with the OpenJDK refer to the
    1.35 -            <a href=""http://openjdk.java.net/guide/repositories.html#installConfig">
    1.36 -               Developer Guide: Installing and Configuring Mercurial</a>
    1.37 +            <a href="http://openjdk.java.net/guide/repositories.html#installConfig">
    1.38 +                Developer Guide: Installing and Configuring Mercurial</a>
    1.39              section for more information.
    1.40              The Forest Extension is not part of the Mercurial install,
    1.41              and is optional,
    1.42 @@ -146,14 +150,14 @@
    1.43                  using the Forest Extension:
    1.44                  <blockquote>
    1.45                      <tt>
    1.46 -                        hg fclone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
    1.47 +                        hg fclone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
    1.48                      </tt>
    1.49                  </blockquote>
    1.50                  To get the entire set of OpenJDK Mercurial repositories
    1.51                  without using the Forest Extension:
    1.52                  <blockquote>
    1.53                      <tt>
    1.54 -                        hg clone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
    1.55 +                        hg clone http://hg.openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i>
    1.56                          <br>cd <i>YourOpenJDK</i>
    1.57                          <br>sh ./get_source.sh
    1.58                      </tt>
    1.59 @@ -207,66 +211,50 @@
    1.60                      <tr>
    1.61                          <td>Linux X86 (32-bit)</td>
    1.62                          <td>Fedora 9</td>
    1.63 -                        <td>gcc 4 </td>
    1.64 -                        <td>JDK 6u14 FCS </td>
    1.65 +                        <td>gcc 4.3 </td>
    1.66 +                        <td>JDK 6u18</td>
    1.67                      </tr>
    1.68                      <tr>
    1.69                          <td>Linux X64 (64-bit)</td>
    1.70                          <td>Fedora 9</td>
    1.71 -                        <td>gcc 4 </td>
    1.72 -                        <td>JDK 6u14 FCS </td>
    1.73 +                        <td>gcc 4.3 </td>
    1.74 +                        <td>JDK 6u18</td>
    1.75                      </tr>
    1.76                      <tr>
    1.77                          <td>Solaris SPARC (32-bit)</td>
    1.78 -                        <td>Solaris 10u2 + patches 
    1.79 -                            <br>
    1.80 -                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
    1.81 -                                SunSolve</a> for patch downloads.
    1.82 -                        </td>
    1.83 +                        <td>Solaris 10 Update 6</td>
    1.84                          <td>Sun Studio 12 Update 1 + patches</td>
    1.85 -                        <td>JDK 6u14 FCS </td>
    1.86 +                        <td>JDK 6u18</td>
    1.87                      </tr>
    1.88                      <tr>
    1.89                          <td>Solaris SPARCV9 (64-bit)</td>
    1.90 -                        <td>Solaris 10u2 + patches
    1.91 -                            <br>
    1.92 -                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
    1.93 -                                SunSolve</a> for patch downloads.
    1.94 -                        </td>
    1.95 +                        <td>Solaris 10 Update 6</td>
    1.96                          <td>Sun Studio 12 Update 1 + patches</td>
    1.97 -                        <td>JDK 6u14 FCS </td>
    1.98 +                        <td>JDK 6u18</td>
    1.99                      </tr>
   1.100                      <tr>
   1.101                          <td>Solaris X86 (32-bit)</td>
   1.102 -                        <td>Solaris 10u2 + patches
   1.103 -                            <br>
   1.104 -                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   1.105 -                                SunSolve</a> for patch downloads.
   1.106 -                        </td>
   1.107 +                        <td>Solaris 10 Update 6</td>
   1.108                          <td>Sun Studio 12 Update 1 + patches</td>
   1.109 -                        <td>JDK 6u14 FCS </td>
   1.110 +                        <td>JDK 6u18</td>
   1.111                      </tr>
   1.112                      <tr>
   1.113                          <td>Solaris X64 (64-bit)</td>
   1.114 -                        <td>Solaris 10u2 + patches
   1.115 -                            <br>
   1.116 -                            See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE" target="_blank">
   1.117 -                                SunSolve</a> for patch downloads.
   1.118 -                        </td>
   1.119 +                        <td>Solaris 10 Update 6</td>
   1.120                          <td>Sun Studio 12 Update 1 + patches</td>
   1.121 -                        <td>JDK 6u14 FCS </td>
   1.122 +                        <td>JDK 6u18</td>
   1.123                      </tr>
   1.124                      <tr>
   1.125                          <td>Windows X86 (32-bit)</td>
   1.126                          <td>Windows XP</td>
   1.127                          <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   1.128 -                        <td>JDK 6u14 FCS </td>
   1.129 +                        <td>JDK 6u18</td>
   1.130                      </tr>
   1.131                      <tr>
   1.132                          <td>Windows X64 (64-bit)</td>
   1.133                          <td>Windows Server 2003 - Enterprise x64 Edition</td>
   1.134                          <td>Microsoft Visual Studio C++ 2010 Professional Edition</td>
   1.135 -                        <td>JDK 6u14 FCS </td>
   1.136 +                        <td>JDK 6u18</td>
   1.137                      </tr>
   1.138                  </tbody>
   1.139              </table>
   1.140 @@ -300,7 +288,7 @@
   1.141  	      way to do it is to execute the following commands as user 
   1.142                  <tt>root</tt>:
   1.143                  <p/>
   1.144 -                <code>yum-builddep java-openjdk</code>
   1.145 +                <code>yum-builddep java-1.6.0-openjdk</code>
   1.146                  <p/>
   1.147                  <code>yum install gcc gcc-c++</code>
   1.148                  <p/>
   1.149 @@ -345,10 +333,10 @@
   1.150              </blockquote>
   1.151          </blockquote>
   1.152          <!-- ------------------------------------------------------ -->
   1.153 -        <h3><a name="centos">CentOS 5.2</a></h3>
   1.154 +        <h3><a name="centos">CentOS 5.5</a></h3>
   1.155          <blockquote>
   1.156              After installing
   1.157 -            <a href="http://www.centos.org/">CentOS 5.2</a>
   1.158 +            <a href="http://www.centos.org/">CentOS 5.5</a>
   1.159              you need to make sure you have
   1.160              the following Development bundles installed:
   1.161              <blockquote>
   1.162 @@ -356,7 +344,7 @@
   1.163                      <li>Development Libraries</li>
   1.164                      <li>Development Tools</li>
   1.165                      <li>Java Development</li>
   1.166 -                    <li>X Software Development</li>
   1.167 +                    <li>X Software Development (Including XFree86-devel)</li>
   1.168                  </ul>
   1.169              </blockquote>
   1.170              <p>
   1.171 @@ -552,15 +540,105 @@
   1.172                  building the OpenJDK runtime libraries and misc files.
   1.173                  The top level <tt>Makefile</tt>
   1.174                  is used to build the entire OpenJDK.
   1.175 +
   1.176 +            <h3><a name="drops">Managing the Source Drops</a></h3>
   1.177 +            <blockquote>
   1.178 +                <p>
   1.179 +                    The repositories <tt>jaxp</tt> and <tt>jaxws</tt> actually
   1.180 +                    do not contain the sources for JAXP or JAX-WS.
   1.181 +                    These products have their own open source procedures at their
   1.182 +                    <a href="http://jaxp.java.net/">JAXP</a> and
   1.183 +                    <a href="http://jax-ws.java.net/">JAX-WS</a> home pages.
   1.184 +                    The OpenJDK project does need access to these sources to build
   1.185 +                    a complete JDK image because JAXP and JAX-WS are part of the JDK.
   1.186 +                    The current process for delivery of the JAXP and JAX-WS sources
   1.187 +                    involves so called "source drop bundles" downloaded from a public
   1.188 +                    website.
   1.189 +                    There are many reasons for this current mechanism, and it is
   1.190 +                    understood that this is not ideal for the open source community.
   1.191 +                    It is possible this process could change in the future.
   1.192 +                    <br>
   1.193 +                    <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk7/">
   1.194 +                        Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and
   1.195 +                    JAX-WS sources.
   1.196 +                </p>
   1.197 +
   1.198 +                <h4><a name="dropcreation">Creation of New Source Drop Bundles</a></h4>
   1.199 +                <blockquote>
   1.200 +                    <ol>
   1.201 +                        <li>
   1.202 +                            The JAXP or JAX-WS team prepares a new zip bundle,
   1.203 +                            places a copy in a public download area on java.net,
   1.204 +                            sends us a link and a list of CRs (Change Request Numbers).
   1.205 +                            The older download bundles should not be deleted.
   1.206 +                            It is the responsibility of the JAXP and JAX-WS team to
   1.207 +                            place the proper GPL legal notices on the sources
   1.208 +                            and do any filtering or java re-packaging for the
   1.209 +                            OpenJDK instances of these classes.
   1.210 +                        </li>
   1.211 +                        <li>
   1.212 +                            The OpenJDK team copies this new bundle into shared
   1.213 +                            area (e.g. <tt>/java/devtools/share/jdk7-drops</tt>).
   1.214 +                            Older bundles are never deleted so we retain the history.
   1.215 +                        </li>
   1.216 +                        <li>
   1.217 +                            The OpenJDK team edits the ant property file
   1.218 +                            <tt>jaxp/jaxp.properties</tt> or
   1.219 +                            <tt>jaxws/jaxws.properties</tt> to update the
   1.220 +                            base URL, the zip bundle name, and the MD5 checksum
   1.221 +                            of the zip bundle
   1.222 +                            (on Solaris: <tt>sum -c md5 <i>bundlename</i></tt>)
   1.223 +                        </li>
   1.224 +                        <li>
   1.225 +                            OpenJDK team reviews and commits those changes with the
   1.226 +                            given CRs.
   1.227 +                        </li>
   1.228 +                    </ol>
   1.229 +                </blockquote>
   1.230 +
   1.231 +                <h4><a name="dropusage">Using Source Drop Bundles</a></h4>
   1.232 +                <blockquote>
   1.233 +                    <p>
   1.234 +                        The ant scripts that build <tt>jaxp</tt> and <tt>jaxws</tt>
   1.235 +                        will attempt to locate these zip bundles from the directory
   1.236 +                        in the environment variable
   1.237 +                        <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt>.
   1.238 +                        The checksums protect from getting the wrong, corrupted, or
   1.239 +                        improperly modified sources.
   1.240 +                        Once the sources are made available, the population will not
   1.241 +                        happen again unless a <tt>make clobber</tt> is requested
   1.242 +                        or the <tt>jaxp/drop/</tt> or <tt>jaxws/drop/</tt>
   1.243 +                        directory is explicitly deleted.
   1.244 +                        <br>
   1.245 +                        <b>NOTE:</b> The default Makefile and ant script behavior
   1.246 +                        is to NOT download these bundles from the public http site.
   1.247 +                        In general, doing downloads
   1.248 +                        during the build process is not advised, it creates too much
   1.249 +                        unpredictability in the build process.
   1.250 +                        However, you can use <tt>make ALLOW_DOWNLOADS=true</tt> to
   1.251 +                        tell the ant script that the download of the zip bundle is
   1.252 +                        acceptable.
   1.253 +                    </p>
   1.254 +                    <p>
   1.255 +                        The recommended procedure for keeping a cache of these
   1.256 +                        source bundles would be to download them once, place them
   1.257 +                        in a directory outside the repositories, and then set
   1.258 +                        <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> to refer
   1.259 +                        to that directory.
   1.260 +                        These drop bundles do change occasionally, so the newer
   1.261 +                        bundles may need to be added to this area from time to time.
   1.262 +                    </p>
   1.263 +                </blockquote>
   1.264 +            </blockquote>
   1.265          </blockquote>
   1.266          <!-- ------------------------------------------------------ -->
   1.267          <hr>
   1.268          <h2><a name="building">Build Information</a></h2>
   1.269          <blockquote>
   1.270              Building the OpenJDK
   1.271 -            is done with a <tt><i>gmake</i></tt>
   1.272 -            command line and various
   1.273 -            environment or make variable settings that direct the make rules
   1.274 +            is done with a <a href="#gmake">GNU <tt>make</tt></a> command line
   1.275 +            and various
   1.276 +            environment or make variable settings that direct the makefile rules
   1.277              to where various components have been installed.
   1.278              Where possible the makefiles will attempt to located the various
   1.279              components in the default locations or any component specific 
   1.280 @@ -578,7 +656,7 @@
   1.281                  <pre><tt>
   1.282                  bash
   1.283                  . jdk/make/jdk_generic_profile.sh
   1.284 -                <i>gmake</i> sanity &amp;&amp; <i>gmake</i>
   1.285 +                <a href="#gmake"><tt>make</tt></a> sanity &amp;&amp; <a href="#gmake"><tt>make</tt></a>
   1.286                  </tt></pre>
   1.287              </blockquote>
   1.288              <p>
   1.289 @@ -599,25 +677,31 @@
   1.290              A few notes about using GNU make:
   1.291              <ul>
   1.292                  <li>
   1.293 -                    In general, you need GNU make version 3.81 or newer.
   1.294 +                    You need GNU make version 3.81 or newer.
   1.295                  </li>
   1.296                  <li>
   1.297                      Place the location of the GNU make binary in the <tt>PATH</tt>. 
   1.298                  </li>
   1.299                  <li>
   1.300                      <strong>Linux:</strong>
   1.301 -                    The <tt>/usr/bin/make</tt> command should work fine for you.
   1.302 +                    The <tt>/usr/bin/make</tt> should be 3.81 or newer
   1.303 +                    and should work fine for you.
   1.304 +                    If this version is not 3.81 or newer,
   1.305 +                    see the <a href="#buildgmake">"Building GNU make"</a> section.
   1.306                  </li>
   1.307                  <li>
   1.308                      <strong>Solaris:</strong>
   1.309                      Do NOT use <tt>/usr/bin/make</tt> on Solaris.
   1.310                      If your Solaris system has the software
   1.311                      from the Solaris Companion CD installed, 
   1.312 -                    you should use <tt>gmake</tt>
   1.313 +                    you should try and use <tt>gmake</tt>
   1.314                      which will be located in either the <tt>/opt/sfw/bin</tt> or 
   1.315                      <tt>/usr/sfw/bin</tt> directory.
   1.316 -                    In more recent versions of Solaris GNU make can be found
   1.317 -                    at <tt>/usr/bin/gmake</tt>. 
   1.318 +                    In more recent versions of Solaris GNU make might be found
   1.319 +                    at <tt>/usr/bin/gmake</tt>.<br>
   1.320 +                    <b>NOTE:</b> It is very likely that this <tt>gmake</tt>
   1.321 +                    could be 3.80, you need 3.81, in which case,
   1.322 +                    see the <a href="#buildgmake">"Building GNU make"</a> section.
   1.323                  </li>
   1.324                  <li>
   1.325                      <strong>Windows:</strong>
   1.326 @@ -627,30 +711,25 @@
   1.327                      as a <tt>make.exe</tt> built for something like
   1.328                      <a href="http://www.mkssoftware.com/">MKS</a>). 
   1.329                      <br>
   1.330 -                    <b>WARNING:</b> Watch out for make version 3.81, it may
   1.331 +                    <b>WARNING:</b> Watch out on some make 3.81 versions, it may
   1.332                      not work due to a lack of support for MS-DOS drive letter paths
   1.333                      like <tt>C:/</tt> or <tt>C:\</tt>.
   1.334 -                    Use a 3.80 version, or find a newer
   1.335 -                    version that has this problem fixed.
   1.336 -                    The older 3.80 version of make.exe can be downloaded with this
   1.337 -                    <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank">
   1.338 -                        link</a>.
   1.339 -                    Use of this older 3.80 make.exe may require that you install the
   1.340 -                    libintl2.dll library or libintl2 cygwin package which is
   1.341 -                    no longer installed by default by the cygwin installer.
   1.342                      <br>
   1.343 -                    Also see the
   1.344 +                    You may be able to use the information at the
   1.345                      <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank">
   1.346                          mozilla developer center</a>
   1.347                      on this topic.
   1.348                      <br>
   1.349                      It's hoped that when make 3.82 starts shipping in a future cygwin
   1.350                      release that this MS-DOS path issue will be fixed.
   1.351 -                    In addition to the above 3.80 make.exe you can download 
   1.352 -                    this
   1.353 +                    <br>
   1.354 +                    It may be possible to download the version at
   1.355                      <a href="http://www.cmake.org/files/cygwin/make.exe">
   1.356 -                        www.cmake.org make.exe</a> which will not have a libintl2.dll
   1.357 -                    dependency.
   1.358 +                        www.cmake.org make.exe</a>.
   1.359 +                    <br>
   1.360 +                    It might be necessary for you to build your own GNU make 3.81,
   1.361 +                    see the <a href="#buildgmake">"Building GNU make"</a> section
   1.362 +                    in that case.
   1.363                  </li>
   1.364              </ul>
   1.365              <p>
   1.366 @@ -662,6 +741,34 @@
   1.367                  The latest source to GNU make is available at
   1.368                  <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
   1.369                      ftp.gnu.org/pub/gnu/make/</a>.
   1.370 +            </p>
   1.371 +            <!-- ------------------------------------------------------ -->
   1.372 +            <h4><a name="buildgmake">Building GNU make</a></h4>
   1.373 +            <blockquote>
   1.374 +                First step is to get the GNU make 3.81 source from
   1.375 +                <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank">
   1.376 +                    ftp.gnu.org/pub/gnu/make/</a>.
   1.377 +                Building is a little different depending on the OS and unix toolset
   1.378 +                on Windows:
   1.379 +                <ul>
   1.380 +                    <li>
   1.381 +                        <strong>Linux:</strong>
   1.382 +                        <tt>./configure && make</tt>
   1.383 +                    </li>
   1.384 +                    <li>
   1.385 +                        <strong>Solaris:</strong>
   1.386 +                        <tt>./configure && gmake CC=gcc</tt>
   1.387 +                    </li>
   1.388 +                    <li>
   1.389 +                        <strong>Windows for CYGWIN:</strong>
   1.390 +                        <tt>./configure && make</tt>
   1.391 +                    </li>
   1.392 +                    <li>
   1.393 +                        <strong>Windows for MKS: (CYGWIN is recommended)</strong>
   1.394 +                        <tt>./configure && make -f Makefile.win32</tt>
   1.395 +                    </li>
   1.396 +                </ul>
   1.397 +            </blockquote>
   1.398          </blockquote>
   1.399          <!-- ------------------------------------------------------ -->
   1.400          <hr>
   1.401 @@ -713,7 +820,7 @@
   1.402                  </li>
   1.403                  <li>
   1.404                      Install
   1.405 -                    <a href="#ant">Ant</a>, 
   1.406 +                    <a href="#ant">Ant 1.7.1 or newer</a>,
   1.407                      make sure it is in your PATH.
   1.408                  </li>
   1.409              </ol>
   1.410 @@ -776,7 +883,7 @@
   1.411                  </li>
   1.412                  <li>
   1.413                      Install
   1.414 -                    <a href="#ant">Ant</a>, 
   1.415 +                    <a href="#ant">Ant 1.7.1 or newer</a>,
   1.416                      make sure it is in your PATH.
   1.417                  </li>
   1.418              </ol>
   1.419 @@ -862,7 +969,7 @@
   1.420                  </li>
   1.421                  <li>
   1.422                      Install
   1.423 -                    <a href="#ant">Ant</a>, 
   1.424 +                    <a href="#ant">Ant 1.7.1 or newer</a>,
   1.425                      make sure it is in your PATH and set
   1.426                      <tt><a href="#ANT_HOME">ANT_HOME</a></tt>.
   1.427                  </li>
   1.428 @@ -923,14 +1030,20 @@
   1.429              <blockquote>
   1.430                  All OpenJDK builds require access to least Ant 1.7.1.
   1.431                  The Ant tool is available from the 
   1.432 -                <a href="http://ant.apache.org" target="_blank">
   1.433 -                    Ant download site</a>.
   1.434 +                <a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip" target="_blank">
   1.435 +                    Ant 1.7.1 archive download site</a>.
   1.436                  You should always make sure <tt>ant</tt> is in your PATH, and
   1.437                  on Windows you may also need to set 
   1.438                  <tt><a href="#ANT_HOME">ANT_HOME</a></tt>
   1.439                  to point to the location of
   1.440                  the Ant installation, this is the directory pathname
   1.441                  that contains a <tt>bin and lib</tt>.
   1.442 +                <br>
   1.443 +                <b>WARNING:</b> Ant versions used from IDE tools like NetBeans
   1.444 +                or installed via system packages may not operate the same
   1.445 +                as the one obtained from the Ant download bundles.
   1.446 +                These system and IDE installers sometimes choose to change
   1.447 +                the ant installation enough to cause differences.
   1.448              </blockquote>
   1.449              <!-- ------------------------------------------------------ -->
   1.450              <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
   1.451 @@ -962,7 +1075,7 @@
   1.452              <blockquote>
   1.453                  <strong><a name="gcc">Linux gcc/binutils</a></strong>
   1.454                  <blockquote>
   1.455 -                    The GNU gcc compiler version should be 4 or newer.
   1.456 +                    The GNU gcc compiler version should be 4.3 or newer.
   1.457                      The compiler used should be the default compiler installed
   1.458                      in <tt>/usr/bin</tt>.
   1.459                  </blockquote>
   1.460 @@ -1047,21 +1160,16 @@
   1.461                  <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong>
   1.462                  <blockquote>
   1.463                      <p>
   1.464 -                        <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to
   1.465 -                        use the newest VS2010 Microsoft compilers. These build instructions are updated
   1.466 -                        to show where we are going. We have a QA process to go through before
   1.467 -                        official builds actually use VS2010. So for now, official builds are
   1.468 -                        still using VS2003. No other compilers are known to build the entire JDK,
   1.469 +                        <b>BEGIN WARNING</b>: JDK 7 has transitioned to
   1.470 +                        use the newest VS2010 Microsoft compilers.
   1.471 +                        No other compilers are known to build the entire JDK,
   1.472                          including non-open portions.
   1.473 -                        So for now you should be able to build with either VS2003 or VS2010.
   1.474 -                        We do not guarantee that VS2008 will work, although there is sufficient
   1.475 -                        makefile support to make at least basic JDK builds plausible.
   1.476                          Visual Studio 2010 Express compilers are now able to build all the
   1.477                          open source repositories, but this is 32 bit only. To build 64 bit
   1.478 -                        Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b>
   1.479 +                        Windows binaries use the the 7.1 Windows SDK.
   1.480 +                        <b>END WARNING.</b>
   1.481                      <p>
   1.482 -                        The 32-bit OpenJDK Windows build
   1.483 -                        requires
   1.484 +                        The 32-bit OpenJDK Windows build requires
   1.485                          Microsoft Visual Studio C++ 2010 (VS2010) Professional
   1.486                          Edition or Express compiler.
   1.487                          The compiler and other tools are expected to reside
   1.488 @@ -1088,11 +1196,10 @@
   1.489                  </blockquote>
   1.490                  <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong>
   1.491                  <blockquote>
   1.492 -                    For <b>X64</b>, builds, when using the VS2010 Professional
   1.493 -                    compiler, the 64 bit build set up is much the same as 32 bit
   1.494 +                    For <b>X64</b>, the set up is much the same as 32 bit
   1.495                      except that you run <tt>amd64\VCVARS64.BAT</tt>
   1.496                      to set the compiler environment variables.
   1.497 -                    Previously 64 bit builds had used the 64 bit compiler in
   1.498 +                    Previously 64 bit builds had to use the 64 bit compiler in
   1.499                      an unbundled Windows SDK but this is no longer necessary if
   1.500                      you have VS2010 Professional.
   1.501                  </blockquote>
   1.502 @@ -1614,6 +1721,13 @@
   1.503                      and on Windows with CYGWIN
   1.504                      <tt>/usr/bin</tt>.
   1.505                  </dd>
   1.506 +                <dt><tt><a name="ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> </dt>
   1.507 +                <dd>
   1.508 +                    The location of any source drop bundles
   1.509 +                    (see <a href="#drops">Managing the Source Drops</a>).
   1.510 +                    The default will be
   1.511 +                    <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk7-drops</tt>.
   1.512 +                </dd>
   1.513                  <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt>
   1.514                  <dd>
   1.515                      <strong>Solaris only:</strong>
   1.516 @@ -1659,9 +1773,8 @@
   1.517  			    located.
   1.518  			    The default is whatever WINDOWSSDKDIR is set to
   1.519  			    (or WindowsSdkDir) or the path
   1.520 -			    <pre>
   1.521 -                            c:\Program Files\Microsoft SDKs\Windows\v6.1a
   1.522 -			    </pre>
   1.523 +                            <br>
   1.524 +                            <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt>
   1.525                          </dd>
   1.526                          <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
   1.527                          <dd>
   1.528 @@ -1682,6 +1795,81 @@
   1.529          </blockquote>
   1.530          <!-- ------------------------------------------------------ -->
   1.531          <hr>
   1.532 +        <h2><a name="hints">Hints and Tips</a></h2>
   1.533 +        <blockquote>
   1.534 +            You don't have to use all these hints and tips, and in fact people do actually
   1.535 +            build with systems that contradict these, but they might prove to be
   1.536 +            helpful to some.
   1.537 +            <ul>
   1.538 +                <li>
   1.539 +                    If <tt>make sanity</tt> does not work, find out why, fix that
   1.540 +                    before going any further. Or at least understand what the
   1.541 +                    complaints are from it.
   1.542 +                </li>
   1.543 +                <li>
   1.544 +                    JDK: Keep in mind that you are building a JDK, but you need
   1.545 +                    a JDK (BOOTDIR JDK) to build this JDK.
   1.546 +                </li>
   1.547 +                <li>
   1.548 +                    Ant: The ant utility is a java application and besides having
   1.549 +                    ant available to you, it's important that ant finds the right
   1.550 +                    java to run with. Make sure you can type <tt>ant -version</tt>
   1.551 +                    and get clean results with no error messages.
   1.552 +                </li>
   1.553 +                <li>
   1.554 +                    Linux: Try and favor the system packages over building your own
   1.555 +                    or getting packages from other areas.
   1.556 +                    Most Linux builds should be possible with the system's
   1.557 +                    available packages.
   1.558 +                </li>
   1.559 +                <li>
   1.560 +                    Solaris: Typically you will need to get compilers on your systems
   1.561 +                    and occasionally GNU make 3.81 if a gmake binary is not available.
   1.562 +                    The gmake binary might not be 3.81, be careful.
   1.563 +                </li>
   1.564 +                <li>
   1.565 +                    Windows VS2010:
   1.566 +                    <ul>
   1.567 +                        <li>
   1.568 +                            Only the C++ part of VS2010 is needed.
   1.569 +                            Try to let the installation go to the default install directory.
   1.570 +                            Always reboot your system after installing VS2010.
   1.571 +                            The system environment variable VS100COMNTOOLS should be
   1.572 +                            set in your environment.
   1.573 +                        </li>
   1.574 +                        <li>
   1.575 +                            Make sure that TMP and TEMP are also set in the environment
   1.576 +                            and refer to Windows paths that exist, like <tt>C:\temp</tt>,
   1.577 +                            not <tt>/tmp</tt>, not <tt>/cygdrive/c/temp</tt>, and not <tt>C:/temp</tt>.
   1.578 +                            <tt>C:\temp</tt> is just an example, it is assumed that this area is
   1.579 +                            private to the user, so by default after installs you should
   1.580 +                            see a unique user path in these variables.
   1.581 +                        </li>
   1.582 +                        <li>
   1.583 +                            You need to use vsvars32.bat or vsvars64.bat to get the
   1.584 +                            PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR
   1.585 +                            variables set in your shell environment.
   1.586 +                            These bat files are not easy to use from a shell environment.
   1.587 +                            However, there is a script placed in the root jdk7 repository called
   1.588 +                            vsvars.sh that can help, it should only be done once in a shell
   1.589 +                            that will be doing the build, e.g.<br>
   1.590 +                            <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br>
   1.591 +                                eval `cat settings`</tt><br>
   1.592 +                            Or just <tt>eval `sh ./make/scripts/vsvars.sh -v10`</tt>.
   1.593 +                        </li>
   1.594 +                    </ul>
   1.595 +                </li>
   1.596 +                <li>
   1.597 +                    Windows: PATH order is critical, see the
   1.598 +                    <a href="#paths">paths</a> section for more information.
   1.599 +                </li>
   1.600 +                <li>
   1.601 +                    Windows 64bit builds: Use ARCH_DATA_MODEL=64.
   1.602 +                </li>
   1.603 +            </ul>
   1.604 +        </blockquote>
   1.605 +        <!-- ------------------------------------------------------ -->
   1.606 +        <hr>
   1.607          <h2><a name="troubleshooting">Troubleshooting</a></h2>
   1.608          <blockquote>
   1.609              A build can fail for any number of reasons. 
   1.610 @@ -1707,6 +1895,19 @@
   1.611                  below, with suggestions for remedies.
   1.612              <ul>
   1.613                  <li>
   1.614 +                    <b>Corrupted Bundles on Windows:</b>
   1.615 +                    <blockquote>
   1.616 +                        Some virus scanning software has been known to corrupt the
   1.617 +                        downloading of zip bundles.
   1.618 +                        It may be necessary to disable the 'on access' or 'real time'
   1.619 +                        virus scanning features to prevent this corruption.
   1.620 +                        This type of "real time" virus scanning can also slow down the
   1.621 +                        build process significantly.
   1.622 +                        Temporarily disabling the feature, or excluding the build
   1.623 +                        output directory may be necessary to get correct and faster builds.
   1.624 +                    </blockquote>
   1.625 +                </li>
   1.626 +                <li>
   1.627                      <b>Slow Builds:</b>
   1.628                      <blockquote>
   1.629                          If your build machine seems to be overloaded from too many
   1.630 @@ -1801,7 +2002,11 @@
   1.631                      </blockquote>
   1.632                  </li>
   1.633                  <li>
   1.634 -                    <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b>
   1.635 +                    <b>Windows Error Messages:</b><br>
   1.636 +                    <tt>*** fatal error - couldn't allocate heap, ... </tt><br>
   1.637 +                    <tt>rm fails with "Directory not empty"</tt><br>
   1.638 +                    <tt>unzip fails with "cannot create ... Permission denied"</tt><br>
   1.639 +                    <tt>unzip fails with "cannot create ... Error 50"</tt><br>
   1.640                      <blockquote>
   1.641                          The CYGWIN software can conflict with other non-CYGWIN
   1.642                          software. See the CYGWIN FAQ section on
   1.643 @@ -1810,12 +2015,11 @@
   1.644                      </blockquote>
   1.645                  </li>
   1.646                  <li>
   1.647 -                    <b>Windows Error Message: <tt>*** multiple target patterns.  Stop.</tt></b>
   1.648 +                    <b>Windows Error Message: <tt>spawn failed</tt></b>
   1.649                      <blockquote>
   1.650 -                        The CYGWIN make version 3.81 may not like the Windows <tt>C:/</tt>
   1.651 -                        style paths, it may not like the ':' character in the path
   1.652 -                        when used in a makefile target definition.
   1.653 -                        See the <a href="#gmake"><tt><i>gmake</i></tt></a> section.
   1.654 +                        Try rebooting the system, or there could be some kind of
   1.655 +                        issue with the disk or disk partition being used.
   1.656 +                        Sometimes it comes with a "Permission Denied" message.
   1.657                      </blockquote>
   1.658                  </li>
   1.659              </ul>

mercurial