Tue, 05 Mar 2013 11:46:02 -0800
Merge
common/autoconf/generated-configure.sh | file | annotate | diff | comparison | revisions | |
common/autoconf/spec.gmk.in | file | annotate | diff | comparison | revisions |
1.1 --- a/.hgtags Tue Feb 26 09:25:44 2013 -0800 1.2 +++ b/.hgtags Tue Mar 05 11:46:02 2013 -0800 1.3 @@ -199,3 +199,5 @@ 1.4 2a713921952cbd77a1e699626976cb6cdfe3e57e jdk8-b75 1.5 278af9fc67e7eba2884936b49ec07345f423aabb jdk8-b76 1.6 3933eebc659d58c597aa8cb4b3e58f2250ce3e1a jdk8-b77 1.7 +fd1a5574cf68af24bfd52decc37ac6361afb278a jdk8-b78 1.8 +91d35211e74464dca5edf9b66ab01d0d0d8cded7 jdk8-b79
2.1 --- a/README Tue Feb 26 09:25:44 2013 -0800 2.2 +++ b/README Tue Mar 05 11:46:02 2013 -0800 2.3 @@ -1,45 +1,40 @@ 2.4 README: 2.5 This file should be located at the top of the OpenJDK Mercurial root 2.6 - repository. This root repository will include a "make" directory, 2.7 - and a Makefile for building the entire OpenJDK. 2.8 - A full OpenJDK repository set (forest) should also include the following 2.9 - 6 nested repositories: 2.10 + repository. A full OpenJDK repository set (forest) should also include 2.11 + the following 6 nested repositories: 2.12 "jdk", "hotspot", "langtools", "corba", "jaxws" and "jaxp". 2.13 - There are also several source downloads for the jax* repositories that 2.14 - will be needed. 2.15 2.16 - This one root repository can be obtained with something like: 2.17 - 2.18 + The root repository can be obtained with something like: 2.19 hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8 2.20 2.21 - To make sure you have all the nested repositories, you can run the 2.22 - get_source.sh script located in the same respository as this file: 2.23 - 2.24 + You can run the get_source.sh script located in the root repository to get 2.25 + the other needed repositories: 2.26 cd openjdk8 && sh ./get_source.sh 2.27 2.28 People unfamiliar with Mercurial should read the first few chapters of 2.29 the Mercurial book: http://hgbook.red-bean.com/read/ 2.30 2.31 - See http://openjdk.java.net/ for more information about the OpenJDK. 2.32 + See http://openjdk.java.net/ for more information about OpenJDK. 2.33 2.34 Simple Build Instructions: 2.35 2.36 0. Get the necessary system software/packages installed on your system, see 2.37 - http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html 2.38 + http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html 2.39 2.40 - 1. If you don't have a jdk6 installed, download and install a JDK 6 from 2.41 + 1. If you don't have a jdk7u7 or newer jdk, download and install it from 2.42 http://java.sun.com/javase/downloads/index.jsp 2.43 - Set the environment variable ALT_BOOTDIR to the location of JDK 6. 2.44 + Add the /bin directory of this installation to your PATH environment 2.45 + variable. 2.46 2.47 - 2. Check the sanity of doing a build with your current system: 2.48 - make sanity 2.49 - See README-builds.html if you run into problems. 2.50 + 2. Configure the build: 2.51 + bash ./configure 2.52 2.53 - 3. Do a complete build of the OpenJDK: 2.54 + 3. Build the OpenJDK: 2.55 make all 2.56 - The resulting JDK image should be found in build/*/j2sdk-image 2.57 + The resulting JDK image should be found in build/*/images/j2sdk-image 2.58 2.59 where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually 2.60 -is 3.81 or newer. 2.61 +is 3.81 or newer. Note that on Solaris, GNU make is called "gmake". 2.62 2.63 -Complete details are available in README-builds.html. 2.64 +Complete details are available in the file: 2.65 + http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
3.1 --- a/README-builds.html Tue Feb 26 09:25:44 2013 -0800 3.2 +++ b/README-builds.html Tue Mar 05 11:46:02 2013 -0800 3.3 @@ -3,14 +3,15 @@ 3.4 <head> 3.5 <title>OpenJDK Build README</title> 3.6 </head> 3.7 - <body style="background-color:lightcyan"> 3.8 + <body style="background-color:aquamarine"> 3.9 + 3.10 <!-- ====================================================== --> 3.11 <table width="100%"> 3.12 <tr> 3.13 <td align="center"> 3.14 <img alt="OpenJDK" 3.15 src="http://openjdk.java.net/images/openjdk.png" 3.16 - width=256 /> 3.17 + width=256> 3.18 </td> 3.19 </tr> 3.20 <tr> 3.21 @@ -19,109 +20,116 @@ 3.22 </td> 3.23 </tr> 3.24 </table> 3.25 - <!-- ------------------------------------------------------ --> 3.26 + 3.27 + <!-- ====================================================== --> 3.28 <hr> 3.29 <h2><a name="introduction">Introduction</a></h2> 3.30 <blockquote> 3.31 - <p> 3.32 - This README file contains build instructions for the 3.33 - <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. 3.34 - Building the source code for the 3.35 - OpenJDK 3.36 - requires 3.37 - a certain degree of technical expertise. 3.38 + This README file contains build instructions for the 3.39 + <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. 3.40 + Building the source code for the 3.41 + OpenJDK 3.42 + requires 3.43 + a certain degree of technical expertise. 3.44 + 3.45 + <!-- ====================================================== --> 3.46 + <h3>!!!!!!!!!!!!!!! THIS IS A MAJOR RE-WRITE of this document. !!!!!!!!!!!!!</h3> 3.47 + <blockquote> 3.48 + Some Headlines: 3.49 + <ul> 3.50 + <li> 3.51 + The build is now a "<code>configure && make</code>" style build 3.52 + </li> 3.53 + <li> 3.54 + Any GNU make 3.81 or newer should work 3.55 + </li> 3.56 + <li> 3.57 + The build should scale, i.e. more processors should 3.58 + cause the build to be done in less wall-clock time 3.59 + </li> 3.60 + <li> 3.61 + Nested or recursive make invocations have been significantly 3.62 + reduced, as has the total fork/exec or spawning 3.63 + of sub processes during the build 3.64 + </li> 3.65 + <li> 3.66 + Windows MKS usage is no longer supported 3.67 + </li> 3.68 + <li> 3.69 + Windows Visual Studio <code>vsvars*.bat</code> and 3.70 + <code>vcvars*.bat</code> files are run automatically 3.71 + </li> 3.72 + <li> 3.73 + Ant is no longer used when building the OpenJDK 3.74 + </li> 3.75 + <li> 3.76 + Use of ALT_* environment variables for configuring the 3.77 + build is no longer supported 3.78 + </li> 3.79 + </ul> 3.80 + </blockquote> 3.81 </blockquote> 3.82 - <!-- ------------------------------------------------------ --> 3.83 + 3.84 + <!-- ====================================================== --> 3.85 <hr> 3.86 <h2><a name="contents">Contents</a></h2> 3.87 <blockquote> 3.88 <ul> 3.89 <li><a href="#introduction">Introduction</a></li> 3.90 + 3.91 <li><a href="#hg">Use of Mercurial</a> 3.92 <ul> 3.93 <li><a href="#get_source">Getting the Source</a></li> 3.94 + <li><a href="#repositories">Repositories</a></li> 3.95 </ul> 3.96 </li> 3.97 - <li><a href="#MBE">Minimum Build Environments</a></li> 3.98 - <li><a href="#SDBE">Specific Developer Build Environments</a> 3.99 + 3.100 + <li><a href="#building">Building</a> 3.101 <ul> 3.102 - <li><a href="#fedora">Fedora Linux</a> </li> 3.103 - <li><a href="#centos">CentOS Linux</a> </li> 3.104 - <li><a href="#debian">Debian GNU/Linux</a></li> 3.105 - <li><a href="#ubuntu">Ubuntu Linux</a> </li> 3.106 - <li><a href="#opensuse">OpenSUSE</a></li> 3.107 - <li><a href="#mandriva">Mandriva</a></li> 3.108 - <li><a href="#opensolaris">OpenSolaris</a></li> 3.109 + <li><a href="#setup">System Setup</a> 3.110 + <ul> 3.111 + <li><a href="#linux">Linux</a></li> 3.112 + <li><a href="#solaris">Solaris</a></li> 3.113 + <li><a href="#macosx">Mac OS X</a></li> 3.114 + <li><a href="#windows">Windows</a></li> 3.115 + </ul> 3.116 + </li> 3.117 + <li><a href="#configure">Configure</a></li> 3.118 + <li><a href="#make">Make</a></li> 3.119 </ul> 3.120 </li> 3.121 - <li><a href="#directories">Source Directory Structure</a> 3.122 + <li><a href="#testing">Testing</a></li> 3.123 + </ul> 3.124 + <hr> 3.125 + <ul> 3.126 + <li><a href="#hints">Appendix A: Hints and Tips</a> 3.127 <ul> 3.128 - <li><a href="#drops">Managing the Source Drops</a></li> 3.129 + <li><a href="#faq">FAQ</a></li> 3.130 + <li><a href="#performance">Build Performance Tips</a></li> 3.131 + <li><a href="#troubleshooting">Troubleshooting</a></li> 3.132 </ul> 3.133 </li> 3.134 - <li><a href="#building">Build Information</a> 3.135 - <ul> 3.136 - <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li> 3.137 - <li><a href="#linux">Basic Linux System Setup</a> </li> 3.138 - <li><a href="#solaris">Basic Solaris System Setup</a> </li> 3.139 - <li><a href="#windows">Basic Windows System Setup</a> </li> 3.140 - <li><a href="#macosx">Basic Mac OS X System Setup</a></li> 3.141 - <li><a href="#dependencies">Build Dependencies</a> 3.142 - <ul> 3.143 - <li><a href="#bootjdk">Bootstrap JDK</a> </li> 3.144 - <li><a href="#importjdk">Optional Import JDK</a> </li> 3.145 - <li><a href="#ant">Ant 1.7.1</a> </li> 3.146 - <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> 3.147 - <li><a href="#compilers">Compilers</a> 3.148 - <ul> 3.149 - <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> 3.150 - <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li> 3.151 - <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li> 3.152 - <li><a href="#gcc">Linux gcc/binutils</a> </li> 3.153 - <li><a href="#studio">Sun Studio</a> </li> 3.154 - </ul> 3.155 - </li> 3.156 - <li><a href="#zip">Zip and Unzip</a> </li> 3.157 - <li><a href="#freetype">FreeType2 Fonts</a> </li> 3.158 - <li>Linux and Solaris: 3.159 - <ul> 3.160 - <li><a href="#cups">CUPS Include files</a> </li> 3.161 - <li><a href="#xrender">XRender Include files</a></li> 3.162 - </ul> 3.163 - </li> 3.164 - <li>Linux only: 3.165 - <ul> 3.166 - <li><a href="#alsa">ALSA files</a> </li> 3.167 - </ul> 3.168 - </li> 3.169 - <li>Windows only: 3.170 - <ul> 3.171 - <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>) <strong>or</strong></li> 3.172 - <li>Minimalist GNU for Windows (<a href="#msys">MinGW/MSYS</a>)</li> 3.173 - <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li> 3.174 - </ul> 3.175 - </li> 3.176 - </ul> 3.177 - </li> 3.178 - </ul> 3.179 - </li> 3.180 - <li><a href="#creating">Creating the Build</a> </li> 3.181 - <li><a href="#testing">Testing the Build</a> </li> 3.182 - <li><a href="#variables">Environment/Make Variables</a></li> 3.183 - <li><a href="#troubleshooting">Troubleshooting</a></li> 3.184 - <li><a href="#newbuild">The New Build</a></li> 3.185 + <li><a href="#gmake">Appendix B: GNU Make Information</a></li> 3.186 + <li><a href="#buildenvironments">Appendix C: Build Environments</a></li> 3.187 + 3.188 + <!-- Leave out 3.189 + <li><a href="#mapping">Appendix D: Mapping Old Builds to the New Builds</a></li> 3.190 + --> 3.191 + 3.192 </ul> 3.193 </blockquote> 3.194 3.195 - <!-- ------------------------------------------------------ --> 3.196 + <!-- ====================================================== --> 3.197 <hr> 3.198 <h2><a name="hg">Use of Mercurial</a></h2> 3.199 <blockquote> 3.200 The OpenJDK sources are maintained with the revision control system 3.201 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>. 3.202 If you are new to Mercurial, please see the 3.203 - <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a> 3.204 - or refer to the <a href="http://hgbook.red-bean.com/">Mercurial Book</a>. 3.205 + <a href="http://mercurial.selenic.com/wiki/BeginnersGuides"> 3.206 + Beginner Guides</a> 3.207 + or refer to the <a href="http://hgbook.red-bean.com/"> 3.208 + Mercurial Book</a>. 3.209 The first few chapters of the book provide an excellent overview of 3.210 Mercurial, what it is and how it works. 3.211 <br> 3.212 @@ -130,578 +138,1631 @@ 3.213 Developer Guide: Installing and Configuring Mercurial</a> 3.214 section for more information. 3.215 3.216 - <!-- ------------------------------------------------------ --> 3.217 <h3><a name="get_source">Getting the Source</a></h3> 3.218 <blockquote> 3.219 To get the entire set of OpenJDK Mercurial repositories 3.220 - use the script <code>get_source.sh</code> located in the root repository: 3.221 + use the script <code>get_source.sh</code> located in the 3.222 + root repository: 3.223 <blockquote> 3.224 - <tt> 3.225 - hg clone http://hg.openjdk.java.net/jdk8/jdk8 <i>YourOpenJDK</i> 3.226 - <br>cd <i>YourOpenJDK</i> 3.227 - <br>sh ./get_source.sh 3.228 - </tt> 3.229 + <code> 3.230 + hg clone http://hg.openjdk.java.net/jdk8/jdk8 3.231 + <i>YourOpenJDK</i> 3.232 + <br> 3.233 + cd <i>YourOpenJDK</i> 3.234 + <br> 3.235 + bash ./get_source.sh 3.236 + </code> 3.237 </blockquote> 3.238 - Once you have all the repositories, the 3.239 - script <tt>make/scripts/hgforest.sh</tt> 3.240 - can be used to repeat the same <tt>hg</tt> 3.241 - command on every repository in the forest, e.g. 3.242 + Once you have all the repositories, keep in mind that each 3.243 + repository is it's own independent repository. 3.244 + You can also re-run <code>./get_source.sh</code> anytime to 3.245 + pull over all the latest changesets in all the repositories. 3.246 + This set of nested repositories has been given the term 3.247 + "forest" and there are various ways to apply the same 3.248 + <code>hg</code> command to each of the repositories. 3.249 + For example, the script <code>make/scripts/hgforest.sh</code> 3.250 + can be used to repeat the same <code>hg</code> 3.251 + command on every repository, e.g. 3.252 <blockquote> 3.253 - <tt> 3.254 + <code> 3.255 cd <i>YourOpenJDK</i> 3.256 - <br>sh ./make/scripts/hgforest.sh pull -u 3.257 - </tt> 3.258 + <br> 3.259 + bash ./make/scripts/hgforest.sh status 3.260 + </code> 3.261 </blockquote> 3.262 </blockquote> 3.263 3.264 + <h3><a name="repositories">Repositories</a></h3> 3.265 + <blockquote> 3.266 + <p>The set of repositories and what they contain:</p> 3.267 + <table border="1"> 3.268 + <thead> 3.269 + <tr> 3.270 + <th>Repository</th> 3.271 + <th>Contains</th> 3.272 + </tr> 3.273 + </thead> 3.274 + <tbody> 3.275 + <tr> 3.276 + <td> 3.277 + . (root) 3.278 + </td> 3.279 + <td> 3.280 + common configure and makefile logic 3.281 + </td> 3.282 + </tr> 3.283 + <tr> 3.284 + <td> 3.285 + hotspot 3.286 + </td> 3.287 + <td> 3.288 + source code and make files for building 3.289 + the OpenJDK Hotspot Virtual Machine 3.290 + </td> 3.291 + </tr> 3.292 + <tr> 3.293 + <td> 3.294 + langtools 3.295 + </td> 3.296 + <td> 3.297 + source code for the OpenJDK javac and language tools 3.298 + </td> 3.299 + </tr> 3.300 + <tr> 3.301 + <td> 3.302 + jdk 3.303 + </td> 3.304 + <td> 3.305 + source code and make files for building 3.306 + the OpenJDK runtime libraries and misc files 3.307 + </td> 3.308 + </tr> 3.309 + <tr> 3.310 + <td> 3.311 + jaxp 3.312 + </td> 3.313 + <td> 3.314 + source code for the OpenJDK JAXP functionality 3.315 + </td> 3.316 + </tr> 3.317 + <tr> 3.318 + <td> 3.319 + jaxws 3.320 + </td> 3.321 + <td> 3.322 + source code for the OpenJDK JAX-WS functionality 3.323 + </td> 3.324 + </tr> 3.325 + <tr> 3.326 + <td> 3.327 + corba 3.328 + </td> 3.329 + <td> 3.330 + source code for the OpenJDK Corba functionality 3.331 + </td> 3.332 + </tr> 3.333 + </tbody> 3.334 + </table> 3.335 + </blockquote> 3.336 + 3.337 + <h3><a name="guidelines">Repository Source Guidelines</a></h3> 3.338 + <blockquote> 3.339 + There are some very basic guidelines: 3.340 + <ul> 3.341 + <li> 3.342 + Use of whitespace in source files 3.343 + (.java, .c, .h, .cpp, and .hpp files) 3.344 + is restricted. 3.345 + No TABs, no trailing whitespace on lines, and files 3.346 + should not terminate in more than one blank line. 3.347 + </li> 3.348 + <li> 3.349 + Files with execute permissions should not be added 3.350 + to the source repositories. 3.351 + </li> 3.352 + <li> 3.353 + All generated files need to be kept isolated from 3.354 + the files 3.355 + maintained or managed by the source control system. 3.356 + The standard area for generated files is the top level 3.357 + <code>build/</code> directory. 3.358 + </li> 3.359 + <li> 3.360 + The default build process should be to build the product 3.361 + and nothing else, in one form, e.g. a product (optimized), 3.362 + debug (non-optimized, -g plus assert logic), or 3.363 + fastdebug (optimized, -g plus assert logic). 3.364 + </li> 3.365 + <li> 3.366 + The <tt>.hgignore</tt> file in each repository 3.367 + must exist and should 3.368 + include <tt>^build/</tt>, <tt>^dist/</tt> and 3.369 + optionally any 3.370 + <tt>nbproject/private</tt> directories. 3.371 + <strong>It should NEVER</strong> include 3.372 + anything in the 3.373 + <tt>src/</tt> or <tt>test/</tt> 3.374 + or any managed directory area of a repository. 3.375 + </li> 3.376 + <li> 3.377 + Directory names and file names should never contain 3.378 + blanks or 3.379 + non-printing characters. 3.380 + </li> 3.381 + <li> 3.382 + Generated source or binary files should NEVER be added to 3.383 + the repository (that includes <tt>javah</tt> output). 3.384 + There are some exceptions to this rule, in particular 3.385 + with some of the generated configure scripts. 3.386 + </li> 3.387 + <li> 3.388 + Files not needed for typical building 3.389 + or testing of the repository 3.390 + should not be added to the repository. 3.391 + </li> 3.392 + </ul> 3.393 + </blockquote> 3.394 + 3.395 </blockquote> 3.396 3.397 - <!-- ------------------------------------------------------ --> 3.398 + <!-- ====================================================== --> 3.399 <hr> 3.400 - <h2><a name="MBE">Minimum Build Environments</a></h2> 3.401 + <h2><a name="building">Building</a></h2> 3.402 <blockquote> 3.403 - This file often describes specific requirements for what we call the 3.404 - "minimum build environments" (MBE) for this 3.405 - specific release of the JDK, 3.406 - Building with the MBE will generate the most compatible 3.407 - bits that install on, and run correctly on, the most variations 3.408 - of the same base OS and hardware architecture. 3.409 - These usually represent what is often called the 3.410 - least common denominator platforms. 3.411 - It is understood that most developers will NOT be using these 3.412 - specific platforms, and in fact creating these specific platforms 3.413 - may be difficult due to the age of some of this software. 3.414 - <p> 3.415 - The minimum OS and C/C++ compiler versions needed for building the 3.416 - OpenJDK: 3.417 - <p> 3.418 - <table border="1"> 3.419 - <thead> 3.420 - <tr> 3.421 - <th>Base OS and Architecture</th> 3.422 - <th>OS</th> 3.423 - <th>C/C++ Compiler</th> 3.424 - <th>BOOT JDK</th> 3.425 - </tr> 3.426 - </thead> 3.427 - <tbody> 3.428 - <tr> 3.429 - <td>Linux X86 (32-bit)</td> 3.430 - <td>Fedora 9</td> 3.431 - <td>gcc 4.3 </td> 3.432 - <td>JDK 6u18</td> 3.433 - </tr> 3.434 - <tr> 3.435 - <td>Linux X64 (64-bit)</td> 3.436 - <td>Fedora 9</td> 3.437 - <td>gcc 4.3 </td> 3.438 - <td>JDK 6u18</td> 3.439 - </tr> 3.440 - <tr> 3.441 - <td>Solaris SPARC (32-bit)</td> 3.442 - <td>Solaris 10 Update 6</td> 3.443 - <td>Sun Studio 12 Update 1 + patches</td> 3.444 - <td>JDK 6u18</td> 3.445 - </tr> 3.446 - <tr> 3.447 - <td>Solaris SPARCV9 (64-bit)</td> 3.448 - <td>Solaris 10 Update 6</td> 3.449 - <td>Sun Studio 12 Update 1 + patches</td> 3.450 - <td>JDK 6u18</td> 3.451 - </tr> 3.452 - <tr> 3.453 - <td>Solaris X86 (32-bit)</td> 3.454 - <td>Solaris 10 Update 6</td> 3.455 - <td>Sun Studio 12 Update 1 + patches</td> 3.456 - <td>JDK 6u18</td> 3.457 - </tr> 3.458 - <tr> 3.459 - <td>Solaris X64 (64-bit)</td> 3.460 - <td>Solaris 10 Update 6</td> 3.461 - <td>Sun Studio 12 Update 1 + patches</td> 3.462 - <td>JDK 6u18</td> 3.463 - </tr> 3.464 - <tr> 3.465 - <td>Windows X86 (32-bit)</td> 3.466 - <td>Windows XP</td> 3.467 - <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 3.468 - <td>JDK 6u18</td> 3.469 - </tr> 3.470 - <tr> 3.471 - <td>Windows X64 (64-bit)</td> 3.472 - <td>Windows Server 2003 - Enterprise x64 Edition</td> 3.473 - <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 3.474 - <td>JDK 6u18</td> 3.475 - </tr> 3.476 - <tr> 3.477 - <td>Mac OS X X64 (64-bit)</td> 3.478 - <td>Mac OS X 10.7.3 "Lion"</td> 3.479 - <td>XCode 4.1 or later</td> 3.480 - <td>Java for OS X Lion Update 1</td> 3.481 - </tr> 3.482 - </tbody> 3.483 - </table> 3.484 - <p> 3.485 - These same sources do indeed build on many more systems than the 3.486 - above older generation systems, again the above is just a minimum. 3.487 - <p> 3.488 - Compilation problems with newer or different C/C++ compilers is a 3.489 - common problem. 3.490 - Similarly, compilation problems related to changes to the 3.491 - <tt>/usr/include</tt> or system header files is also a 3.492 - common problem with newer or unreleased OS versions. 3.493 - Please report these types of problems as bugs so that they 3.494 - can be dealt with accordingly. 3.495 - </blockquote> 3.496 - <!-- ------------------------------------------------------ --> 3.497 - <hr> 3.498 - <h2><a name="SDBE">Specific Developer Build Environments</a></h2> 3.499 - <blockquote> 3.500 - We won't be listing all the possible environments, but 3.501 - we will try to provide what information we have available to us. 3.502 - </blockquote> 3.503 - <!-- ------------------------------------------------------ --> 3.504 - <h3><a name="fedora">Fedora</a></h3> 3.505 - <blockquote> 3.506 - <h4>Fedora 9</h4> 3.507 - <p> 3.508 + The very first step in building the OpenJDK is making sure the 3.509 + system itself has everything it needs to do OpenJDK builds. 3.510 + Once a system is setup, it generally doesn't need to be done again. 3.511 + <br> 3.512 + Building the OpenJDK is now done with running a 3.513 + <a href="#configure"><code>configure</code></a> 3.514 + script which will try and find and verify you have everything 3.515 + you need, followed by running 3.516 + <a href="#gmake"><code>make</code></a>, e.g. 3.517 <blockquote> 3.518 - After installing <a href="http://fedoraproject.org">Fedora</a> 9 3.519 - you need to install several build dependencies. The simplest 3.520 - way to do it is to execute the following commands as user 3.521 - <tt>root</tt>: 3.522 - <p/> 3.523 - <code>yum-builddep java-1.6.0-openjdk</code> 3.524 - <p/> 3.525 - <code>yum install gcc gcc-c++</code> 3.526 - <p/> 3.527 - In addition, it's necessary to set a few environment variables for the build: 3.528 + <b> 3.529 + <code> 3.530 + bash ./configure<br> 3.531 + make all 3.532 + </code> 3.533 + </b> 3.534 + </blockquote> 3.535 + Where possible the <code>configure</code> script will attempt to located the 3.536 + various components in the default locations or via component 3.537 + specific variable settings. 3.538 + When the normal defaults fail or components cannot be found, 3.539 + additional <code>configure</code> options may be necessary to help <code>configure</code> 3.540 + find the necessary tools for the build, or you may need to 3.541 + re-visit the setup of your system due to missing software 3.542 + packages. 3.543 + <br> 3.544 + <strong>NOTE:</strong> The <code>configure</code> script 3.545 + file does not have 3.546 + execute permissions and will need to be explicitly run with 3.547 + <code>bash</code>, 3.548 + see the <a href="#guidelines">source guidelines</a>. 3.549 3.550 - <p/> 3.551 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> 3.552 + <!-- ====================================================== --> 3.553 + <hr> 3.554 + <h3><a name="setup">System Setup</a></h3> 3.555 + <blockquote> 3.556 + Before even attempting to use a system to build the OpenJDK 3.557 + there are some very basic system setups needed. 3.558 + For all systems: 3.559 + <ul> 3.560 + <li> 3.561 + Be sure the GNU make utility is version 3.81 or newer, 3.562 + e.g. run "<code>make -version</code>" 3.563 + </li> 3.564 + <li> 3.565 + Install a 3.566 + <a name="bootjdk">Bootstrap JDK</a> 3.567 + <br> 3.568 + All OpenJDK builds require access to a previously released 3.569 + JDK, this is often called a bootstrap JDK. 3.570 + Currently, for this JDK release we require 3.571 + JDK 7 Update 7 or newer. 3.572 + The JDK 7 binaries can be downloaded from Oracle's 3.573 + <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" 3.574 + target="_blank">JDK 7 download site</a>. 3.575 + For build performance reasons 3.576 + is very important that this bootstrap JDK be made available 3.577 + on the local disk of the machine doing the build. 3.578 + You should add its <code>bin</code> directory 3.579 + to the <code>PATH</code> environment variable. 3.580 + If <code>configure</code> has any issues finding this JDK, you may 3.581 + need to use the <code>configure</code> option 3.582 + <code>--with-boot-jdk</code>. 3.583 + </li> 3.584 + <li> 3.585 + Insure that GNU make, the Bootstrap JDK, 3.586 + and the compilers are all 3.587 + in your PATH environment variable 3.588 + </li> 3.589 + </ul> 3.590 + And for specific systems: 3.591 + <table border="1"> 3.592 + <thead> 3.593 + <tr> 3.594 + <th>Linux</th> 3.595 + <th>Solaris</th> 3.596 + <th>Windows</th> 3.597 + <th>Mac OS X</th> 3.598 + </tr> 3.599 + </thead> 3.600 + <tbody> 3.601 + <tr> 3.602 + <td> 3.603 + Install all the software development 3.604 + packages needed including 3.605 + <a href="#alsa">alsa</a>, 3.606 + <a href="#freetype">freetype</a>, 3.607 + <a href="#cups">cups</a>, and 3.608 + <a href="#xrender">xrender</a>. 3.609 + <br> 3.610 + See 3.611 + <a href="#SDBE">specific system packages</a>. 3.612 + </td> 3.613 + <td> 3.614 + Install all the software development 3.615 + packages needed including 3.616 + <a href="#studio">Studio Compilers</a>, 3.617 + <a href="#freetype">freetype</a>, 3.618 + <a href="#cups">cups</a>, and 3.619 + <a href="#xrender">xrender</a>. 3.620 + <br> 3.621 + See 3.622 + <a href="#SDBE">specific system packages</a>. 3.623 + </td> 3.624 + <td> 3.625 + <ul> 3.626 + <li> 3.627 + Install one of 3.628 + <a href="#cygwin">CYGWIN</a> or 3.629 + <a href="#msys">MinGW/MSYS</a> 3.630 + </li> 3.631 + <li> 3.632 + Install 3.633 + <a href="#vs2010">Visual Studio 2010</a> 3.634 + </li> 3.635 + <li> 3.636 + Install the 3.637 + <a href="#dxsdk">Microsoft DirectX SDK</a> 3.638 + </li> 3.639 + </ul> 3.640 + </td> 3.641 + <td> 3.642 + Install 3.643 + <a href="https://developer.apple.com/xcode/">XCode 4.5.2</a> 3.644 + and also install the "Command line tools" found under the 3.645 + preferences pane "Downloads" 3.646 + </td> 3.647 + </tr> 3.648 + </tbody> 3.649 + </table> 3.650 + 3.651 + <h4><a name="linux">Linux</a></h4> 3.652 + <blockquote> 3.653 + With Linux, try and favor the system packages over 3.654 + building your own 3.655 + or getting packages from other areas. 3.656 + Most Linux builds should be possible with the system's 3.657 + available packages. 3.658 + <br> 3.659 + Note that some Linux systems have a habit of pre-populating 3.660 + your environment variables for you, for example <code>JAVA_HOME</code> 3.661 + might get pre-defined for you to refer to the JDK installed on 3.662 + your Linux system. 3.663 + You will need to unset <code>JAVA_HOME</code>. 3.664 + It's a good idea to run <code>env</code> and verify the 3.665 + environment variables you are getting from the default system 3.666 + settings make sense for building the OpenJDK. 3.667 + 3.668 + </blockquote> 3.669 + 3.670 + <h4><a name="solaris">Solaris</a></h4> 3.671 + <blockquote> 3.672 + <h5><a name="studio">Studio Compilers</a></h5> 3.673 + <blockquote> 3.674 + At a minimum, the 3.675 + <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> 3.676 + Studio 12 Update 1 Compilers</a> 3.677 + (containing version 5.10 of the C and C++ compilers) is required, 3.678 + including specific patches. 3.679 + <p> 3.680 + The Solaris SPARC patch list is: 3.681 + <ul> 3.682 + <li> 3.683 + 118683-05: SunOS 5.10: Patch for profiling libraries and assembler 3.684 + </li> 3.685 + <li> 3.686 + 119963-21: SunOS 5.10: Shared library patch for C++ 3.687 + </li> 3.688 + <li> 3.689 + 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch 3.690 + </li> 3.691 + <li> 3.692 + 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler 3.693 + </li> 3.694 + <li> 3.695 + 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 3.696 + </li> 3.697 + <li> 3.698 + 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler 3.699 + </li> 3.700 + <li> 3.701 + 142371-01: Sun Studio 12.1 Update 1: Patch for dbx 3.702 + </li> 3.703 + <li> 3.704 + 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling 3.705 + </li> 3.706 + <li> 3.707 + 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 3.708 + </li> 3.709 + <li> 3.710 + 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools 3.711 + </li> 3.712 + </ul> 3.713 + <p> 3.714 + The Solaris X86 patch list is: 3.715 + <ul> 3.716 + <li> 3.717 + 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler 3.718 + </li> 3.719 + <li> 3.720 + 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 3.721 + </li> 3.722 + <li> 3.723 + 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch 3.724 + </li> 3.725 + <li> 3.726 + 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend 3.727 + </li> 3.728 + <li> 3.729 + 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler 3.730 + </li> 3.731 + <li> 3.732 + 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler 3.733 + </li> 3.734 + <li> 3.735 + 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools 3.736 + </li> 3.737 + </ul> 3.738 + <p> 3.739 + Place the <code>bin</code> directory in <code>PATH</code>. 3.740 + <p> 3.741 + The Oracle Solaris Studio Express compilers at: 3.742 + <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-142582.html" target="_blank"> 3.743 + Oracle Solaris Studio Express Download site</a> 3.744 + are also an option, although these compilers have not 3.745 + been extensively used yet. 3.746 + </blockquote> 3.747 + 3.748 + </blockquote> <!-- Solaris --> 3.749 + 3.750 + <h4><a name="windows">Windows</a></h4> 3.751 + <blockquote> 3.752 + 3.753 + <h5><a name="toolkit">Windows Unix Toolkit</a></h5> 3.754 + <blockquote> 3.755 + Building on Windows requires a Unix-like environment, notably a 3.756 + Unix-like shell. 3.757 + There are several such environments available of which 3.758 + <a href="http://www.cygwin.com/">Cygwin</a> and 3.759 + <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are 3.760 + currently supported for 3.761 + the OpenJDK build. One of the differences of these 3.762 + systems from standard Windows tools is the way 3.763 + they handle Windows path names, particularly path names which contain 3.764 + spaces, backslashes as path separators and possibly drive letters. 3.765 + Depending 3.766 + on the use case and the specifics of each environment these path 3.767 + problems can 3.768 + be solved by a combination of quoting whole paths, translating 3.769 + backslashes to 3.770 + forward slashes, escaping backslashes with additional backslashes and 3.771 + translating the path names to their 3.772 + <a href="http://en.wikipedia.org/wiki/8.3_filename"> 3.773 + "8.3" version</a>. 3.774 + 3.775 + <h6><a name="cygwin">CYGWIN</a></h6> 3.776 + <blockquote> 3.777 + CYGWIN is an open source, Linux-like environment which tries to emulate 3.778 + a complete POSIX layer on Windows. It tries to be smart about path names 3.779 + and can usually handle all kinds of paths if they are correctly quoted 3.780 + or escaped although internally it maps drive letters <code><drive>:</code> 3.781 + to a virtual directory <code>/cygdrive/<drive></code>. 3.782 + <p> 3.783 + You can always use the <code>cygpath</code> utility to map pathnames with spaces 3.784 + or the backslash character into the <code>C:/</code> style of pathname 3.785 + (called 'mixed'), e.g. <code>cygpath -s -m "<i>path</i>"</code>. 3.786 + </p> 3.787 + <p> 3.788 + Note that the use of CYGWIN creates a unique problem with regards to 3.789 + setting <a href="#path"><code>PATH</code></a>. Normally on Windows 3.790 + the <code>PATH</code> variable contains directories 3.791 + separated with the ";" character (Solaris and Linux use ":"). 3.792 + With CYGWIN, it uses ":", but that means that paths like "C:/path" 3.793 + cannot be placed in the CYGWIN version of <code>PATH</code> and 3.794 + instead CYGWIN uses something like <code>/cygdrive/c/path</code> 3.795 + which CYGWIN understands, but only CYGWIN understands. 3.796 + </p> 3.797 + <p> 3.798 + The OpenJDK build requires CYGWIN version 1.7.16 or newer. 3.799 + Information about CYGWIN can 3.800 + be obtained from the CYGWIN website at 3.801 + <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>. 3.802 + </p> 3.803 + <p> 3.804 + By default CYGWIN doesn't install all the tools required for building 3.805 + the OpenJDK. 3.806 + Along with the default installation, you need to install 3.807 + the following tools. 3.808 + <blockquote> 3.809 + <table border="1"> 3.810 + <thead> 3.811 + <tr> 3.812 + <td>Binary Name</td> 3.813 + <td>Category</td> 3.814 + <td>Package</td> 3.815 + <td>Description</td> 3.816 + </tr> 3.817 + </thead> 3.818 + <tbody> 3.819 + <tr> 3.820 + <td>ar.exe</td> 3.821 + <td>Devel</td> 3.822 + <td>binutils</td> 3.823 + <td> 3.824 + The GNU assembler, linker and binary utilities 3.825 + </td> 3.826 + </tr> 3.827 + <tr> 3.828 + <td>make.exe</td> 3.829 + <td>Devel</td> 3.830 + <td>make</td> 3.831 + <td> 3.832 + The GNU version of the 'make' utility built for CYGWIN 3.833 + </td> 3.834 + </tr> 3.835 + <tr> 3.836 + <td>m4.exe</td> 3.837 + <td>Interpreters</td> 3.838 + <td>m4</td> 3.839 + <td> 3.840 + GNU implementation of the traditional Unix macro 3.841 + processor 3.842 + </td> 3.843 + </tr> 3.844 + <tr> 3.845 + <td>cpio.exe</td> 3.846 + <td>Utils</td> 3.847 + <td>cpio</td> 3.848 + <td> 3.849 + A program to manage archives of files 3.850 + </td> 3.851 + </tr> 3.852 + <tr> 3.853 + <td>gawk.exe</td> 3.854 + <td>Utils</td> 3.855 + <td>awk</td> 3.856 + <td> 3.857 + Pattern-directed scanning and processing language 3.858 + </td> 3.859 + </tr> 3.860 + <tr> 3.861 + <td>file.exe</td> 3.862 + <td>Utils</td> 3.863 + <td>file</td> 3.864 + <td> 3.865 + Determines file type using 'magic' numbers 3.866 + </td> 3.867 + </tr> 3.868 + <tr> 3.869 + <td>zip.exe</td> 3.870 + <td>Archive</td> 3.871 + <td>zip</td> 3.872 + <td> 3.873 + Package and compress (archive) files 3.874 + </td> 3.875 + </tr> 3.876 + <tr> 3.877 + <td>unzip.exe</td> 3.878 + <td>Archive</td> 3.879 + <td>unzip</td> 3.880 + <td> 3.881 + Extract compressed files in a ZIP archive 3.882 + </td> 3.883 + </tr> 3.884 + <tr> 3.885 + <td>free.exe</td> 3.886 + <td>System</td> 3.887 + <td>procps</td> 3.888 + <td> 3.889 + Display amount of free and used memory in the system 3.890 + </td> 3.891 + </tr> 3.892 + </tbody> 3.893 + </table> 3.894 + </blockquote> 3.895 + Note that the CYGWIN software can conflict with other non-CYGWIN 3.896 + software on your Windows system. 3.897 + CYGWIN provides a 3.898 + <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for 3.899 + known issues and problems, of particular interest is the 3.900 + section on 3.901 + <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 3.902 + BLODA (applications that interfere with CYGWIN)</a>. 3.903 + </blockquote> 3.904 + 3.905 + <h6><a name="msys">MinGW/MSYS</a></h6> 3.906 + <blockquote> 3.907 + MinGW ("Minimalist GNU for Windows") is a collection of free Windows 3.908 + specific header files and import libraries combined with GNU toolsets that 3.909 + allow one to produce native Windows programs that do not rely on any 3.910 + 3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building 3.911 + applications and programs which rely on traditional UNIX tools to 3.912 + be present. Among others this includes tools like <code>bash</code> 3.913 + and <code>make</code>. 3.914 + See <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a> 3.915 + for more information. 3.916 + <p> 3.917 + Like Cygwin, MinGW/MSYS can handle different types of path formats. They 3.918 + are internally converted to paths with forward slashes and drive letters 3.919 + <code><drive>:</code> replaced by a virtual 3.920 + directory <code>/<drive></code>. Additionally, MSYS automatically 3.921 + detects binaries compiled for the MSYS environment and feeds them with the 3.922 + internal, Unix-style path names. If native Windows applications are called 3.923 + from within MSYS programs their path arguments are automatically converted 3.924 + back to Windows style path names with drive letters and backslashes as 3.925 + path separators. This may cause problems for Windows applications which 3.926 + use forward slashes as parameter separator (e.g. <code>cl /nologo /I</code>) 3.927 + because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion"> 3.928 + replace such parameters by drive letters</a>. 3.929 + </p> 3.930 + <p> 3.931 + In addition to the tools which will be installed 3.932 + by default, you have 3.933 + to manually install the 3.934 + <code>msys-zip</code> and 3.935 + <code>msys-unzip</code> packages. 3.936 + This can be easily done with the MinGW command line installer: 3.937 + <blockquote> 3.938 + <code>mingw-get.exe install msys-zip</code> 3.939 + <br> 3.940 + <code>mingw-get.exe install msys-unzip</code> 3.941 + </blockquote> 3.942 + </blockquote> 3.943 + 3.944 + </blockquote> 3.945 + 3.946 + <h5><a name="vs2010">Visual Studio 2010 Compilers</a></h5> 3.947 + <blockquote> 3.948 + <p> 3.949 + The 32-bit and 64-bit OpenJDK Windows build requires 3.950 + Microsoft Visual Studio C++ 2010 (VS2010) Professional 3.951 + Edition or Express compiler. 3.952 + The compiler and other tools are expected to reside 3.953 + in the location defined by the variable 3.954 + <code>VS100COMNTOOLS</code> which 3.955 + is set by the Microsoft Visual Studio installer. 3.956 + </p> 3.957 + <p> 3.958 + Only the C++ part of VS2010 is needed. 3.959 + Try to let the installation go to the default 3.960 + install directory. 3.961 + Always reboot your system after installing VS2010. 3.962 + The system environment variable VS100COMNTOOLS 3.963 + should be 3.964 + set in your environment. 3.965 + </p> 3.966 + <p> 3.967 + Make sure that TMP and TEMP are also set 3.968 + in the environment 3.969 + and refer to Windows paths that exist, 3.970 + like <code>C:\temp</code>, 3.971 + not <code>/tmp</code>, not <code>/cygdrive/c/temp</code>, 3.972 + and not <code>C:/temp</code>. 3.973 + <code>C:\temp</code> is just an example, 3.974 + it is assumed that this area is 3.975 + private to the user, so by default 3.976 + after installs you should 3.977 + see a unique user path in these variables. 3.978 + </p> 3.979 + </blockquote> 3.980 + 3.981 + 3.982 + </blockquote> <!-- Windows --> 3.983 + 3.984 + <h4><a name="macosx">Mac OS X</a></h4> 3.985 + <blockquote> 3.986 + Make sure you get the right XCode version. 3.987 + </blockquote> <!-- Mac OS X --> 3.988 + 3.989 </blockquote> 3.990 - <h4>Fedora 10</h4> 3.991 - <p> 3.992 + 3.993 + <!-- ====================================================== --> 3.994 + <hr> 3.995 + <h3><a name="configure">Configure</a></h3> 3.996 <blockquote> 3.997 - After installing <a href="http://fedoraproject.org">Fedora</a> 10 3.998 - you need to install several build dependencies. The simplest 3.999 - way to do it is to execute the following commands as user 3.1000 - <tt>root</tt>: 3.1001 - <p/> 3.1002 - <code>yum-builddep java-1.6.0-openjdk</code> 3.1003 - <p/> 3.1004 - <code>yum install gcc gcc-c++</code> 3.1005 - <p/> 3.1006 - In addition, it's necessary to set a few environment variables for the build: 3.1007 + The basic invocation of the <code>configure</code> script 3.1008 + looks like: 3.1009 + <blockquote> 3.1010 + <b><code>bash ./configure [<i>options</i>]</code></b> 3.1011 + </blockquote> 3.1012 + This will create an output directory containing the 3.1013 + "configuration" and setup an area for the build result. 3.1014 + This directory typically looks like: 3.1015 + <blockquote> 3.1016 + <b><code>build/linux-x64-normal-server-release</code></b> 3.1017 + </blockquote> 3.1018 + <code>configure</code> will try to figure out what system you are running on 3.1019 + and where all necessary build components are. 3.1020 + If you have all prerequisites for building installed, 3.1021 + it should find everything. 3.1022 + If it fails to detect any component automatically, 3.1023 + it will exit and inform you about the problem. 3.1024 + When this happens, read more below in 3.1025 + <a href="#configureoptions">the <code>configure</code> options</a>. 3.1026 + <p> 3.1027 + Some examples: 3.1028 + </p> 3.1029 + <table border="1"> 3.1030 + <thead> 3.1031 + <tr> 3.1032 + <th>Description</th> 3.1033 + <th>Configure Command Line</th> 3.1034 + </tr> 3.1035 + </thead> 3.1036 + <tbody> 3.1037 + <tr> 3.1038 + <td>Windows 32bit build with freetype specified</td> 3.1039 + <td> 3.1040 + <code>bash ./configure --with-freetype=/cygdrive/c/freetype-i586 --with-target-bits=32</code> 3.1041 + </td> 3.1042 + </tr> 3.1043 + <tr> 3.1044 + <td>Debug 64bit Build</td> 3.1045 + <td> 3.1046 + <code>bash ./configure --enable-debug --with-target-bits=64</code> 3.1047 + </td> 3.1048 + </tr> 3.1049 + </tbody> 3.1050 + </table> 3.1051 3.1052 - <p/> 3.1053 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> 3.1054 + <!-- ====================================================== --> 3.1055 + <h4><a name="configureoptions">Configure Options</a></h4> 3.1056 + <blockquote> 3.1057 + Complete details on all the OpenJDK <code>configure</code> options can 3.1058 + be seen with: 3.1059 + <blockquote> 3.1060 + <b><code>bash ./configure --help=short</code></b> 3.1061 + </blockquote> 3.1062 + Use <code>-help</code> to see all the <code>configure</code> options 3.1063 + available. 3.1064 + 3.1065 + You can generate any number of different configurations, 3.1066 + e.g. debug, release, 32, 64, etc. 3.1067 + 3.1068 + Some of the more commonly used <code>configure</code> options are: 3.1069 + 3.1070 + <table border="1"> 3.1071 + <thead> 3.1072 + <tr> 3.1073 + <th width="300">OpenJDK Configure Option</th> 3.1074 + <th>Description</th> 3.1075 + </tr> 3.1076 + </thead> 3.1077 + <tbody> 3.1078 + <tr> 3.1079 + <td><b><code>--enable-debug</code></b></td> 3.1080 + <td> 3.1081 + set the debug level to fastdebug (this is a shorthand for 3.1082 + <code>--with-debug-level=fastdebug</code>) 3.1083 + </td> 3.1084 + </tr> 3.1085 + <tr> 3.1086 + <td><b><code>--with-alsa=</code></b><i>path</i></td> 3.1087 + <td> 3.1088 + select the location of the 3.1089 + <a name="alsa">Advanced Linux Sound Architecture (ALSA)</a> 3.1090 + <br> 3.1091 + Version 0.9.1 or newer of the ALSA files are 3.1092 + required for building the OpenJDK on Linux. 3.1093 + These Linux files are usually available from an "alsa" 3.1094 + of "libasound" 3.1095 + development package, 3.1096 + and it's highly recommended that you try and use 3.1097 + the package provided by the particular version of Linux that 3.1098 + you are using. 3.1099 + </td> 3.1100 + </tr> 3.1101 + <tr> 3.1102 + <td><b><code>--with-boot-jdk=</code></b><i>path</i></td> 3.1103 + <td> 3.1104 + select the <a href="#bootjdk">Bootstrap JDK</a> 3.1105 + </td> 3.1106 + </tr> 3.1107 + <tr> 3.1108 + <td><b><code>--with-boot-jdk-jvmargs=</code></b>"<i>args</i>"</td> 3.1109 + <td> 3.1110 + provide the JVM options to be used to run the 3.1111 + <a href="#bootjdk">Bootstrap JDK</a> 3.1112 + </td> 3.1113 + </tr> 3.1114 + <tr> 3.1115 + <td><b><code>--with-cacerts=</code></b><i>path</i></td> 3.1116 + <td> 3.1117 + select the path to the cacerts file. 3.1118 + <br> 3.1119 + See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank"> 3.1120 + http://en.wikipedia.org/wiki/Certificate_Authority</a> 3.1121 + for a better understanding of the Certificate Authority (CA). 3.1122 + A certificates file named "cacerts" 3.1123 + represents a system-wide keystore with CA certificates. 3.1124 + In JDK and JRE 3.1125 + binary bundles, the "cacerts" file contains root CA certificates from 3.1126 + several public CAs (e.g., VeriSign, Thawte, and Baltimore). 3.1127 + The source contain a cacerts file 3.1128 + without CA root certificates. 3.1129 + Formal JDK builders will need to secure 3.1130 + permission from each public CA and include the certificates into their 3.1131 + own custom cacerts file. 3.1132 + Failure to provide a populated cacerts file 3.1133 + will result in verification errors of a certificate chain during runtime. 3.1134 + By default an empty cacerts file is provided and that should be 3.1135 + fine for most JDK developers. 3.1136 + </td> 3.1137 + </tr> 3.1138 + <tr> 3.1139 + <td><b><code>--with-cups=</code></b><i>path</i></td> 3.1140 + <td> 3.1141 + select the CUPS install location 3.1142 + <br> 3.1143 + The 3.1144 + <a name="cups">Common UNIX Printing System (CUPS) Headers</a> 3.1145 + are required for building the 3.1146 + OpenJDK on Solaris and Linux. 3.1147 + The Solaris header files can be obtained by installing 3.1148 + the package <strong>SFWcups</strong> from the Solaris Software 3.1149 + Companion CD/DVD, these often will be installed into the 3.1150 + directory <code>/opt/sfw/cups</code>. 3.1151 + <br> 3.1152 + The CUPS header files can always be downloaded from 3.1153 + <a href="http://www.cups.org" target="_blank">www.cups.org</a>. 3.1154 + </td> 3.1155 + </tr> 3.1156 + <tr> 3.1157 + <td><b><code>--with-cups-include=</code></b><i>path</i></td> 3.1158 + <td> 3.1159 + select the CUPS include directory location 3.1160 + </td> 3.1161 + </tr> 3.1162 + <tr> 3.1163 + <td><b><code>--with-debug-level=</code></b><i>level</i></td> 3.1164 + <td> 3.1165 + select the debug information level of release, 3.1166 + fastdebug, or slowdebug 3.1167 + </td> 3.1168 + </tr> 3.1169 + <tr> 3.1170 + <td><b><code>--with-dev-kit=</code></b><i>path</i></td> 3.1171 + <td> 3.1172 + select location of the compiler install or 3.1173 + developer install location 3.1174 + </td> 3.1175 + </tr> 3.1176 + <tr> 3.1177 + <td><b><code>--with-dxsdk=</code></b><i>path</i></td> 3.1178 + <td> 3.1179 + select location of the Windows Direct X SDK install 3.1180 + <br> 3.1181 + The <a name="dxsdk">Microsoft DirectX 9.0 SDK</a> 3.1182 + header files and libraries 3.1183 + from the Summer 2004 edition 3.1184 + are required for building OpenJDK. 3.1185 + This SDK can be downloaded from 3.1186 + <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> 3.1187 + Microsoft DirectX 9.0 SDK (Summer 2004)</a>. 3.1188 + If the link above becomes obsolete, the SDK can be found from 3.1189 + <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> 3.1190 + (search with "DirectX 9.0 SDK Update Summer 2004"). 3.1191 + Installation usually will set the environment variable 3.1192 + <code>DXSDK_DIR</code> to it's install location. 3.1193 + </td> 3.1194 + </tr> 3.1195 + <tr> 3.1196 + <td><b><code>--with-freetype=</code></b><i>path</i></td> 3.1197 + <td> 3.1198 + select the freetype files to use. 3.1199 + <br> 3.1200 + Expecting the 3.1201 + <a name="freetype">freetype</a> libraries under 3.1202 + <code>lib/</code> and the 3.1203 + headers under <code>include/</code>. 3.1204 + <br> 3.1205 + Version 2.3 or newer of FreeType is required. 3.1206 + On Unix systems required files can be available as part of your 3.1207 + distribution (while you still may need to upgrade them). 3.1208 + Note that you need development version of package that 3.1209 + includes both the FreeType library and header files. 3.1210 + <br> 3.1211 + You can always download latest FreeType version from the 3.1212 + <a href="http://www.freetype.org" target="_blank">FreeType website</a>. 3.1213 + <br> 3.1214 + Building the freetype 2 libraries from scratch is also possible, 3.1215 + however on Windows refer to the 3.1216 + <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> 3.1217 + Windows FreeType DLL build instructions</a>. 3.1218 + <br> 3.1219 + Note that by default FreeType is built with byte code hinting 3.1220 + support disabled due to licensing restrictions. 3.1221 + In this case, text appearance and metrics are expected to 3.1222 + differ from Sun's official JDK build. 3.1223 + See 3.1224 + <a href="http://freetype.sourceforge.net/freetype2/index.html"> 3.1225 + the SourceForge FreeType2 Home Page 3.1226 + </a> 3.1227 + for more information. 3.1228 + </td> 3.1229 + </tr> 3.1230 + <tr> 3.1231 + <td><b><code>--with-import-hotspot=</code></b><i>path</i></td> 3.1232 + <td> 3.1233 + select the location to find hotspot 3.1234 + binaries from a previous build to avoid building 3.1235 + hotspot 3.1236 + </td> 3.1237 + </tr> 3.1238 + <tr> 3.1239 + <td><b><code>--with-target-bits=</code></b><i>arg</i></td> 3.1240 + <td> 3.1241 + select 32 or 64 bit build 3.1242 + </td> 3.1243 + </tr> 3.1244 + <tr> 3.1245 + <td><b><code>--with-jvm-variants=</code></b><i>variants</i></td> 3.1246 + <td> 3.1247 + select the JVM variants to build from, comma 3.1248 + separated list that can include: 3.1249 + server, client, kernel, zero and zeroshark 3.1250 + </td> 3.1251 + </tr> 3.1252 + <tr> 3.1253 + <td><b><code>--with-memory-size=</code></b><i>size</i></td> 3.1254 + <td> 3.1255 + select the RAM size that GNU make will think 3.1256 + this system has 3.1257 + </td> 3.1258 + </tr> 3.1259 + <tr> 3.1260 + <td><a name="msvcrNN"><b><code>--with-msvcr-dll=</code></b><i>path</i></a></td> 3.1261 + <td> 3.1262 + select the <code>msvcr100.dll</code> 3.1263 + file to include in the 3.1264 + Windows builds (C/C++ runtime library for 3.1265 + Visual Studio). 3.1266 + <br> 3.1267 + This is usually picked up automatically 3.1268 + from the redist 3.1269 + directories of Visual Studio 2010. 3.1270 + </td> 3.1271 + </tr> 3.1272 + <tr> 3.1273 + <td><b><code>--with-num-cores=</code></b><i>cores</i></td> 3.1274 + <td> 3.1275 + select the number of cores to use (processor 3.1276 + count or CPU count) 3.1277 + </td> 3.1278 + </tr> 3.1279 + <tr> 3.1280 + <td><b><code>--with-x=</code></b><i>path</i></td> 3.1281 + <td> 3.1282 + select the location of the X11 and xrender files. 3.1283 + <br> 3.1284 + The 3.1285 + <a name="xrender">XRender Extension Headers</a> 3.1286 + are required for building the 3.1287 + OpenJDK on Solaris and Linux. 3.1288 + <br> 3.1289 + The Linux header files are usually available from a "Xrender" 3.1290 + development package, it's recommended that you try and use 3.1291 + the package provided by the particular distribution of Linux that 3.1292 + you are using. 3.1293 + <br> 3.1294 + The Solaris XRender header files is 3.1295 + included with the other X11 header files 3.1296 + in the package <strong>SFWxwinc</strong> 3.1297 + on new enough versions of 3.1298 + Solaris and will be installed in 3.1299 + <code>/usr/X11/include/X11/extensions/Xrender.h</code> or 3.1300 + <code>/usr/openwin/share/include/X11/extensions/Xrender.h</code> 3.1301 + </td> 3.1302 + </tr> 3.1303 + </tbody> 3.1304 + </table> 3.1305 + </blockquote> 3.1306 + 3.1307 </blockquote> 3.1308 - <h4>Fedora 11</h4> 3.1309 - <p> 3.1310 + 3.1311 + <!-- ====================================================== --> 3.1312 + <hr> 3.1313 + <h3><a name="make">Make</a></h3> 3.1314 <blockquote> 3.1315 - After installing <a href="http://fedoraproject.org">Fedora</a> 11 3.1316 - you need to install several build dependencies. The simplest 3.1317 - way to do it is to execute the following commands as user 3.1318 - <tt>root</tt>: 3.1319 - <p/> 3.1320 - <code>yum-builddep java-1.6.0-openjdk</code> 3.1321 - <p/> 3.1322 - <code>yum install gcc gcc-c++</code> 3.1323 - <p/> 3.1324 - In addition, it's necessary to set a few environment variables for the build: 3.1325 - 3.1326 - <p/> 3.1327 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> 3.1328 + The basic invocation of the <code>make</code> utility 3.1329 + looks like: 3.1330 + <blockquote> 3.1331 + <b><code>make all</code></b> 3.1332 + </blockquote> 3.1333 + This will start the build to the output directory containing the 3.1334 + "configuration" that was created by the <code>configure</code> 3.1335 + script. Run <code>make help</code> for more information on 3.1336 + the available targets. 3.1337 + <br> 3.1338 + There are some of the make targets that 3.1339 + are of general interest: 3.1340 + <table border="1"> 3.1341 + <thead> 3.1342 + <tr> 3.1343 + <th>Make Target</th> 3.1344 + <th>Description</th> 3.1345 + </tr> 3.1346 + </thead> 3.1347 + <tbody> 3.1348 + <tr> 3.1349 + <td><i>empty</i></td> 3.1350 + <td>build everything but no images</td> 3.1351 + </tr> 3.1352 + <tr> 3.1353 + <td><b><code>all</code></b></td> 3.1354 + <td>build everything including images</td> 3.1355 + </tr> 3.1356 + <tr> 3.1357 + <td><b><code>all-conf</code></b></td> 3.1358 + <td>build all configurations</td> 3.1359 + </tr> 3.1360 + <tr> 3.1361 + <td><b><code>images</code></b></td> 3.1362 + <td>create complete j2sdk and j2re images</td> 3.1363 + </tr> 3.1364 + <tr> 3.1365 + <td><b><code>install</code></b></td> 3.1366 + <td>install the generated images locally, 3.1367 + typically in <code>/usr/local</code></td> 3.1368 + </tr> 3.1369 + <tr> 3.1370 + <td><b><code>clean</code></b></td> 3.1371 + <td>remove all files generated by make, 3.1372 + but not those generated by <code>configure</code></td> 3.1373 + </tr> 3.1374 + <tr> 3.1375 + <td><b><code>dist-clean</code></b></td> 3.1376 + <td>remove all files generated by both 3.1377 + and <code>configure</code> (basically killing the configuration)</td> 3.1378 + </tr> 3.1379 + <tr> 3.1380 + <td><b><code>help</code></b></td> 3.1381 + <td>give some help on using <code>make</code>, 3.1382 + including some interesting make targets</td> 3.1383 + </tr> 3.1384 + </tbody> 3.1385 + </table> 3.1386 </blockquote> 3.1387 </blockquote> 3.1388 - <!-- ------------------------------------------------------ --> 3.1389 - <h3><a name="centos">CentOS 5.5</a></h3> 3.1390 + 3.1391 + <!-- ====================================================== --> 3.1392 + <hr> 3.1393 + <h2><a name="testing">Testing</a></h2> 3.1394 <blockquote> 3.1395 - After installing 3.1396 - <a href="http://www.centos.org/">CentOS 5.5</a> 3.1397 - you need to make sure you have 3.1398 - the following Development bundles installed: 3.1399 + When the build is completed, you should see the generated 3.1400 + binaries and associated files in the <code>j2sdk-image</code> 3.1401 + directory in the output directory. 3.1402 + In particular, the 3.1403 + <code>build/<i>*</i>/images/j2sdk-image/bin</code> 3.1404 + directory should contain executables for the 3.1405 + OpenJDK tools and utilities for that configuration. 3.1406 + The testing tool <code>jtreg</code> will be needed 3.1407 + and can be found at: 3.1408 + <a href="http://openjdk.java.net/jtreg/" target="_blank"> 3.1409 + the jtreg site</a>. 3.1410 + The provided regression tests in the repositories 3.1411 + can be run with the command: 3.1412 <blockquote> 3.1413 - <ul> 3.1414 - <li>Development Libraries</li> 3.1415 - <li>Development Tools</li> 3.1416 - <li>Java Development</li> 3.1417 - <li>X Software Development (Including XFree86-devel)</li> 3.1418 - </ul> 3.1419 - </blockquote> 3.1420 - <p> 3.1421 - Plus the following packages: 3.1422 - <blockquote> 3.1423 - <ul> 3.1424 - <li>cups devel: Cups Development Package</li> 3.1425 - <li>alsa devel: Alsa Development Package</li> 3.1426 - <li>ant: Ant Package</li> 3.1427 - <li>Xi devel: libXi.so Development Package</li> 3.1428 - </ul> 3.1429 - </blockquote> 3.1430 - <p> 3.1431 - The freetype 2.3 packages don't seem to be available, 3.1432 - but the freetype 2.3 sources can be downloaded, built, 3.1433 - and installed easily enough from 3.1434 - <a href="http://downloads.sourceforge.net/freetype"> 3.1435 - the freetype site</a>. 3.1436 - Build and install with something like: 3.1437 - <blockquote> 3.1438 - <tt>./configure && make && sudo -u root make install</tt> 3.1439 - </blockquote> 3.1440 - <p> 3.1441 - Mercurial packages could not be found easily, but a Google 3.1442 - search should find ones, and they usually include Python if 3.1443 - it's needed. 3.1444 - </blockquote> 3.1445 - <!-- ------------------------------------------------------ --> 3.1446 - <h3><a name="debian">Debian</a></h3> 3.1447 - <blockquote> 3.1448 - <h4>Debian 5.0 (Lenny)</h4> 3.1449 - <p> 3.1450 - <blockquote> 3.1451 - After installing <a href="http://debian.org">Debian</a> 5 3.1452 - you need to install several build dependencies. 3.1453 - The simplest way to install the build dependencies is to 3.1454 - execute the following commands as user <tt>root</tt>: 3.1455 - <p/> 3.1456 - <code>aptitude build-dep openjdk-6</code> 3.1457 - <p/> 3.1458 - <code>aptitude install openjdk-6-jdk libmotif-dev</code> 3.1459 - <p/> 3.1460 - In addition, it's necessary to set a few environment variables for the build: 3.1461 - <p/> 3.1462 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 3.1463 + <code><b>cd test && make PRODUCT_HOME=`pwd`/../build/*/images/j2sdk-image all</b></code> 3.1464 </blockquote> 3.1465 </blockquote> 3.1466 + 3.1467 <!-- ====================================================== --> 3.1468 - <h3><a name="ubuntu">Ubuntu</a></h3> 3.1469 + <!-- ====================================================== --> 3.1470 + <!-- ====================================================== --> 3.1471 + <!-- ====================================================== --> 3.1472 + <!-- ====================================================== --> 3.1473 + <!-- ====================================================== --> 3.1474 + <!-- ====================================================== --> 3.1475 + <!-- ====================================================== --> 3.1476 + <!-- ====================================================== --> 3.1477 + 3.1478 + <!-- ====================================================== --> 3.1479 + <hr> 3.1480 + <h2><a name="hints">Appendix A: Hints and Tips</a></h2> 3.1481 <blockquote> 3.1482 - <h4>Ubuntu 8.04</h4> 3.1483 - <p> 3.1484 + 3.1485 + <h3><a name="faq">FAQ</a></h3> 3.1486 <blockquote> 3.1487 - After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 3.1488 - you need to install several build dependencies. 3.1489 - <p/> 3.1490 - First, you need to enable the universe repository in the 3.1491 - Software Sources application and reload the repository 3.1492 - information. The Software Sources application is available 3.1493 - under the System/Administration menu. 3.1494 - <p/> 3.1495 - The simplest way to install the build dependencies is to 3.1496 - execute the following commands: 3.1497 - <p/> 3.1498 - <code>sudo aptitude build-dep openjdk-6</code> 3.1499 - <p/> 3.1500 - <code>sudo aptitude install openjdk-6-jdk</code> 3.1501 - <p/> 3.1502 - In addition, it's necessary to set a few environment variables for the build: 3.1503 - <p/> 3.1504 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 3.1505 - </blockquote> 3.1506 - <h4>Ubuntu 8.10</h4> 3.1507 - <p> 3.1508 - <blockquote> 3.1509 - After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 3.1510 - you need to install several build dependencies. The simplest 3.1511 - way to do it is to execute the following commands: 3.1512 - <p/> 3.1513 - <code>sudo aptitude build-dep openjdk-6</code> 3.1514 - <p/> 3.1515 - <code>sudo aptitude install openjdk-6-jdk</code> 3.1516 - <p/> 3.1517 - In addition, it's necessary to set a few environment variables for the build: 3.1518 - <p/> 3.1519 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 3.1520 - </blockquote> 3.1521 - <h4>Ubuntu 9.04</h4> 3.1522 - <p> 3.1523 - <blockquote> 3.1524 - After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 3.1525 - you need to install several build dependencies. The simplest 3.1526 - way to do it is to execute the following commands: 3.1527 - <p/> 3.1528 - <code>sudo aptitude build-dep openjdk-6</code> 3.1529 - <p/> 3.1530 - <code>sudo aptitude install openjdk-6-jdk</code> 3.1531 - <p/> 3.1532 - In addition, it's necessary to set a few environment variables for the build: 3.1533 - <p/> 3.1534 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 3.1535 - </blockquote> 3.1536 - </blockquote> 3.1537 - <!-- ====================================================== --> 3.1538 - <h3><a name="opensuse">OpenSUSE</a></h3> 3.1539 - <blockquote> 3.1540 - <h4>OpenSUSE 11.1</h4> 3.1541 - <p> 3.1542 - <blockquote> 3.1543 - After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 3.1544 - you need to install several build dependencies. 3.1545 - The simplest way to install the build dependencies is to 3.1546 - execute the following commands: 3.1547 - <p/> 3.1548 - <code>sudo zypper source-install -d java-1_6_0-openjdk</code> 3.1549 - <p/> 3.1550 - <code>sudo zypper install make</code> 3.1551 - <p/> 3.1552 - In addition, it is necessary to set a few environment variables for the build: 3.1553 - <p/> 3.1554 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> 3.1555 - <p/> 3.1556 - Finally, you need to unset the <code>JAVA_HOME</code> environment variable: 3.1557 - <p/> 3.1558 - <code>export -n JAVA_HOME</code> 3.1559 - </blockquote> 3.1560 - </blockquote> 3.1561 - <!-- ====================================================== --> 3.1562 - <h3><a name="mandriva">Mandriva</a></h3> 3.1563 - <blockquote> 3.1564 - <h4>Mandriva Linux One 2009 Spring</h4> 3.1565 - <p> 3.1566 - <blockquote> 3.1567 - After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 3.1568 - you need to install several build dependencies. 3.1569 - The simplest way to install the build dependencies is to 3.1570 - execute the following commands as user <tt>root</tt>: 3.1571 - <p/> 3.1572 - <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> 3.1573 - <p/> 3.1574 - In addition, it is necessary to set a few environment variables for the build: 3.1575 - <p/> 3.1576 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> 3.1577 - </blockquote> 3.1578 - </blockquote> 3.1579 - <!-- ====================================================== --> 3.1580 - <h3><a name="opensolaris">OpenSolaris</a></h3> 3.1581 - <blockquote> 3.1582 - <h4>OpenSolaris 2009.06</h4> 3.1583 - <p> 3.1584 - <blockquote> 3.1585 - After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 3.1586 - you need to install several build dependencies. 3.1587 - The simplest way to install the build dependencies is to 3.1588 - execute the following commands: 3.1589 - <p/> 3.1590 - <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code> 3.1591 - <p/> 3.1592 - In addition, it is necessary to set a few environment variables for the build: 3.1593 - <p/> 3.1594 - <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code> 3.1595 - <p/> 3.1596 - Finally, you need to make sure that the build process can find the Sun Studio compilers: 3.1597 - <p/> 3.1598 - <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code> 3.1599 - </blockquote> 3.1600 - </blockquote> 3.1601 - <!-- ------------------------------------------------------ --> 3.1602 - <hr> 3.1603 - <h2><a name="directories">Source Directory Structure</a></h2> 3.1604 - <blockquote> 3.1605 - <p> 3.1606 - The source code for the OpenJDK is delivered in a set of 3.1607 - directories: 3.1608 - <tt>hotspot</tt>, 3.1609 - <tt>langtools</tt>, 3.1610 - <tt>corba</tt>, 3.1611 - <tt>jaxws</tt>, 3.1612 - <tt>jaxp</tt>, 3.1613 - and 3.1614 - <tt>jdk</tt>. 3.1615 - The <tt>hotspot</tt> directory contains the source code and make 3.1616 - files for building the OpenJDK Hotspot Virtual Machine. 3.1617 - The <tt>langtools</tt> directory contains the source code and make 3.1618 - files for building the OpenJDK javac and language tools. 3.1619 - The <tt>corba</tt> directory contains the source code and make 3.1620 - files for building the OpenJDK Corba files. 3.1621 - The <tt>jaxws</tt> directory contains the source code and make 3.1622 - files for building the OpenJDK JAXWS files. 3.1623 - The <tt>jaxp</tt> directory contains the source code and make 3.1624 - files for building the OpenJDK JAXP files. 3.1625 - The <tt>jdk</tt> directory contains the source code and make files for 3.1626 - building the OpenJDK runtime libraries and misc files. 3.1627 - The top level <tt>Makefile</tt> 3.1628 - is used to build the entire OpenJDK. 3.1629 3.1630 - <h3><a name="drops">Managing the Source Drops</a></h3> 3.1631 - <blockquote> 3.1632 <p> 3.1633 - The repositories <tt>jaxp</tt> and <tt>jaxws</tt> actually 3.1634 - do not contain the sources for JAXP or JAX-WS. 3.1635 - These products have their own open source procedures at their 3.1636 - <a href="http://jaxp.java.net/">JAXP</a> and 3.1637 - <a href="http://jax-ws.java.net/">JAX-WS</a> home pages. 3.1638 - The OpenJDK project does need access to these sources to build 3.1639 - a complete JDK image because JAXP and JAX-WS are part of the JDK. 3.1640 - The current process for delivery of the JAXP and JAX-WS sources 3.1641 - involves so called "source drop bundles" downloaded from a public 3.1642 - website. 3.1643 - There are many reasons for this current mechanism, and it is 3.1644 - understood that this is not ideal for the open source community. 3.1645 - It is possible this process could change in the future. 3.1646 + <b>Q:</b> The <code>configure</code> file looks horrible! 3.1647 + How are you going to edit it? 3.1648 <br> 3.1649 - <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk8/"> 3.1650 - Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and 3.1651 - JAX-WS sources. 3.1652 + <b>A:</b> The <code>configure</code> file is generated (think 3.1653 + "compiled") by the autoconf tools. The source code is 3.1654 + in <code>configure.ac</code> various .m4 files in common/autoconf, 3.1655 + which are 3.1656 + much more readable. 3.1657 </p> 3.1658 3.1659 - <h4><a name="dropcreation">Creation of New Source Drop Bundles</a></h4> 3.1660 + <p> 3.1661 + <b>Q:</b> 3.1662 + Why is the <code>configure</code> file checked in, 3.1663 + if it is generated? 3.1664 + <br> 3.1665 + <b>A:</b> 3.1666 + If it was not generated, every user would need to have the autoconf 3.1667 + tools installed, and re-generate the <code>configure</code> file 3.1668 + as the first step. 3.1669 + Our goal is to minimize the work needed to be done by the user 3.1670 + to start building OpenJDK, and to minimize 3.1671 + the number of external dependencies required. 3.1672 + </p> 3.1673 + 3.1674 + <p> 3.1675 + <b>Q:</b> 3.1676 + Do you require a specific version of autoconf for regenerating 3.1677 + <code>configure</code>? 3.1678 + <br> 3.1679 + <b>A:</b> 3.1680 + Currently, no, but this will likely be the case when things have 3.1681 + settled down a bit more. (The reason for this is to avoid 3.1682 + large spurious changes in <code>configure</code> 3.1683 + in commits that made small changes to <code>configure.ac</code>). 3.1684 + </p> 3.1685 + 3.1686 + <p> 3.1687 + <b>Q:</b> 3.1688 + What are the files in <code>common/makefiles/support/*</code> for? 3.1689 + They look like gibberish. 3.1690 + <br> 3.1691 + <b>A:</b> 3.1692 + They are a somewhat ugly hack to compensate for command line length 3.1693 + limitations on certain platforms (Windows, Solaris). 3.1694 + Due to a combination of limitations in make and the shell, 3.1695 + command lines containing too many files will not work properly. 3.1696 + These 3.1697 + helper files are part of an elaborate hack that will compress the 3.1698 + command line in the makefile and then uncompress it safely. 3.1699 + We're 3.1700 + not proud of it, but it does fix the problem. 3.1701 + If you have any better suggestions, we're all ears! :-) 3.1702 + </p> 3.1703 + 3.1704 + <p> 3.1705 + <b>Q:</b> 3.1706 + I want to see the output of the commands that make runs, 3.1707 + like in the old build. How do I do that? 3.1708 + <br> 3.1709 + <b>A:</b> 3.1710 + You specify the <code>LOG</code> variable to make. There are 3.1711 + several log levels: 3.1712 + </p> 3.1713 <blockquote> 3.1714 - <ol> 3.1715 + <ul> 3.1716 <li> 3.1717 - The JAXP or JAX-WS team prepares a new zip bundle, 3.1718 - places a copy in a public download area on java.net, 3.1719 - sends us a link and a list of CRs (Change Request Numbers). 3.1720 - The older download bundles should not be deleted. 3.1721 - It is the responsibility of the JAXP and JAX-WS team to 3.1722 - place the proper GPL legal notices on the sources 3.1723 - and do any filtering or java re-packaging for the 3.1724 - OpenJDK instances of these classes. 3.1725 + <b><code>warn</code></b> — Default and very quiet. 3.1726 </li> 3.1727 <li> 3.1728 - The OpenJDK team copies this new bundle into shared 3.1729 - area (e.g. <tt>/java/devtools/share/jdk8-drops</tt>). 3.1730 - Older bundles are never deleted so we retain the history. 3.1731 + <b><code>info</code></b> — Shows more progress information 3.1732 + than warn. 3.1733 </li> 3.1734 <li> 3.1735 - The OpenJDK team edits the ant property file 3.1736 - <tt>jaxp/jaxp.properties</tt> or 3.1737 - <tt>jaxws/jaxws.properties</tt> to update the 3.1738 - base URL, the zip bundle name, and the MD5 checksum 3.1739 - of the zip bundle 3.1740 - (on Solaris: <tt>sum -c md5 <i>bundlename</i></tt>) 3.1741 + <b><code>debug</code></b> — Echos all command lines and 3.1742 + prints all macro calls for compilation definitions. 3.1743 </li> 3.1744 <li> 3.1745 - OpenJDK team reviews and commits those changes with the 3.1746 - given CRs. 3.1747 + <b><code>trace</code></b> — Echos all $(shell) command 3.1748 + lines as well. 3.1749 </li> 3.1750 - </ol> 3.1751 + </ul> 3.1752 </blockquote> 3.1753 3.1754 - <h4><a name="dropusage">Using Source Drop Bundles</a></h4> 3.1755 + <p> 3.1756 + <b>Q:</b> 3.1757 + When do I have to re-run <code>configure</code>? 3.1758 + <br> 3.1759 + <b>A:</b> 3.1760 + Normally you will run <code>configure</code> only once for creating a 3.1761 + configuration. 3.1762 + You need to re-run configuration only if you want to change any 3.1763 + configuration options, 3.1764 + or if you pull down changes to the <code>configure</code> script. 3.1765 + </p> 3.1766 + 3.1767 + <p> 3.1768 + <b>Q:</b> 3.1769 + I have added a new source file. Do I need to modify the makefiles? 3.1770 + <br> 3.1771 + <b>A:</b> 3.1772 + Normally, no. If you want to create e.g. a new native 3.1773 + library, 3.1774 + you will need to modify the makefiles. But for normal file 3.1775 + additions or removals, no changes are needed. There are certan 3.1776 + exceptions for some native libraries where the source files are spread 3.1777 + over many directories which also contain courses for other 3.1778 + libraries. In these cases it was simply easier to create include lists 3.1779 + rather thane excludes. 3.1780 + </p> 3.1781 + 3.1782 + <p> 3.1783 + <b>Q:</b> 3.1784 + When I run <code>configure --help</code>, I see many strange options, 3.1785 + like <code>--dvidir</code>. What is this? 3.1786 + <br> 3.1787 + <b>A:</b> 3.1788 + Configure provides a slew of options by default, to all projects 3.1789 + that use autoconf. Most of them are not used in OpenJDK, 3.1790 + so you can safely ignore them. To list only OpenJDK specific features, 3.1791 + use <code>configure --help=short</code> instead. 3.1792 + </p> 3.1793 + 3.1794 + <p> 3.1795 + <b>Q:</b> 3.1796 + <code>configure</code> provides OpenJDK-specific features such as 3.1797 + <code>--enable-jigsaw</code> or <code>--with-builddeps-server</code> 3.1798 + that are not described in this document. What about those? 3.1799 + <br> 3.1800 + <b>A:</b> 3.1801 + Try them out if you like! But be aware that most of these are 3.1802 + experimental features. 3.1803 + Many of them don't do anything at all at the moment; the option 3.1804 + is just a placeholder. Other depends on 3.1805 + pieces of code or infrastructure that is currently 3.1806 + not ready for prime time. 3.1807 + </p> 3.1808 + 3.1809 + <p> 3.1810 + <b>Q:</b> 3.1811 + How will you make sure you don't break anything? 3.1812 + <br> 3.1813 + <b>A:</b> 3.1814 + We have a script that compares the result of the new build system 3.1815 + with the result of the old. For most part, we aim for (and achieve) 3.1816 + byte-by-byte identical output. There are however technical issues 3.1817 + with e.g. native binaries, which might differ in a byte-by-byte 3.1818 + comparison, even 3.1819 + when building twice with the old build system. 3.1820 + For these, we compare relevant aspects 3.1821 + (e.g. the symbol table and file size). 3.1822 + Note that we still don't have 100% 3.1823 + equivalence, but we're close. 3.1824 + </p> 3.1825 + 3.1826 + <p> 3.1827 + <b>Q:</b> 3.1828 + I noticed this thing X in the build that looks very broken by design. 3.1829 + Why don't you fix it? 3.1830 + <br> 3.1831 + <b>A:</b> 3.1832 + Our goal is to produce a build output that is as close as 3.1833 + technically possible to the old build output. 3.1834 + If things were weird in the old build, 3.1835 + they will be weird in the new build. 3.1836 + Often, things were weird before due to obscurity, 3.1837 + but in the new build system the weird stuff comes up to the surface. 3.1838 + The plan is to attack these things at a later stage, 3.1839 + after the new build system is established. 3.1840 + </p> 3.1841 + 3.1842 + <p> 3.1843 + <b>Q:</b> 3.1844 + The code in the new build system is not that well-structured. 3.1845 + Will you fix this? 3.1846 + <br> 3.1847 + <b>A:</b> 3.1848 + Yes! The new build system has grown bit by bit as we converted 3.1849 + the old system. When all of the old build system is converted, 3.1850 + we can take a step back and clean up the structure of the new build 3.1851 + system. Some of this we plan to do before replacing the old build 3.1852 + system and some will need to wait until after. 3.1853 + </p> 3.1854 + 3.1855 + <p> 3.1856 + <b>Q:</b> What is @GenerateNativeHeaders? 3.1857 + <br> 3.1858 + <b>A:</b> 3.1859 + To speed up compilation, we added a flag to javac which makes it 3.1860 + do the job of javah as well, as a by-product; that is, generating 3.1861 + native .h header files. These files are only generated 3.1862 + if a class contains native methods. However, sometimes 3.1863 + a class contains no native method, 3.1864 + but still contains constants that native code needs to use. 3.1865 + The new GenerateNativeHeaders annotation tells javac to 3.1866 + force generation of a 3.1867 + header file in these cases. (We don't want to generate 3.1868 + native headers for all classes that contains constants 3.1869 + but no native methods, since 3.1870 + that would slow down the compilation process needlessly.) 3.1871 + </p> 3.1872 + 3.1873 + <p> 3.1874 + <b>Q:</b> 3.1875 + Is anything able to use the results of the new build's default make target? 3.1876 + <br> 3.1877 + <b>A:</b> 3.1878 + Yes, this is the minimal (or roughly minimal) 3.1879 + set of compiled output needed for a developer to actually 3.1880 + execute the newly built JDK. The idea is that in an incremental 3.1881 + development fashion, when doing a normal make, 3.1882 + you should only spend time recompiling what's changed 3.1883 + (making it purely incremental) and only do the work that's 3.1884 + needed to actually run and test your code. 3.1885 + The packaging stuff that is part of the <code>images</code> 3.1886 + target is not needed for a normal developer who wants to 3.1887 + test his new code. Even if it's quite fast, it's still unnecessary. 3.1888 + We're targeting sub-second incremental rebuilds! ;-) 3.1889 + (Or, well, at least single-digit seconds...) 3.1890 + </p> 3.1891 + 3.1892 + <p> 3.1893 + <b>Q:</b> 3.1894 + I usually set a specific environment variable when building, 3.1895 + but I can't find the equivalent in the new build. 3.1896 + What should I do? 3.1897 + <br> 3.1898 + <b>A:</b> 3.1899 + It might very well be that we have missed to add support for 3.1900 + an option that was actually used from outside the build system. 3.1901 + Email us and we will 3.1902 + add support for it! 3.1903 + </p> 3.1904 + 3.1905 + </blockquote> 3.1906 + 3.1907 + <h3><a name="performance">Build Performance Tips</a></h3> 3.1908 + <blockquote> 3.1909 + 3.1910 + <p>Building OpenJDK requires a lot of horsepower. 3.1911 + Some of the build tools can be adjusted to utilize more or less 3.1912 + of resources such as 3.1913 + parallel threads and memory. 3.1914 + The <code>configure</code> script analyzes your system and selects reasonable 3.1915 + values for such options based on your hardware. 3.1916 + If you encounter resource problems, such as out of memory conditions, 3.1917 + you can modify the detected values with:</p> 3.1918 + 3.1919 + <ul> 3.1920 + <li> 3.1921 + <b><code>--with-num-cores</code></b> 3.1922 + — 3.1923 + number of cores in the build system, 3.1924 + e.g. <code>--with-num-cores=8</code> 3.1925 + </li> 3.1926 + <li> 3.1927 + <b><code>--with-memory-size</code></b> 3.1928 + — memory (in MB) available in the build system, 3.1929 + e.g. <code>--with-memory-size=1024</code> 3.1930 + </li> 3.1931 + </ul> 3.1932 + 3.1933 + <p>It might also be necessary to specify the JVM arguments passed 3.1934 + to the Bootstrap JDK, using e.g. 3.1935 + <code>--with-boot-jdk-jvmargs="-Xmx8G -enableassertions"</code>. 3.1936 + Doing this will override the default JVM arguments 3.1937 + passed to the Bootstrap JDK.</p> 3.1938 + 3.1939 + 3.1940 + <p>One of the top goals of the new build system is to improve the 3.1941 + build performance and decrease the time needed to build. This will 3.1942 + soon also apply to the java compilation when the Smart Javac wrapper 3.1943 + is making its way into jdk8. It can be tried in the build-infra 3.1944 + repository already. You are likely to find that the new build system 3.1945 + is faster than the old one even without this feature.</p> 3.1946 + 3.1947 + <p>At the end of a successful execution of <code>configure</code>, 3.1948 + you will get a performance summary, 3.1949 + indicating how well the build will perform. Here you will 3.1950 + also get performance hints. 3.1951 + If you want to build fast, pay attention to those!</p> 3.1952 + 3.1953 + <h4>Building with ccache</h4> 3.1954 + 3.1955 + <p>A simple way to radically speed up compilation of native code 3.1956 + (typically hotspot and native libraries in JDK) is to install 3.1957 + ccache. This will cache and reuse prior compilation results, if the 3.1958 + source code is unchanged. However, ccache versions prior to 3.1.4 3.1959 + does not work correctly with the precompiled headers used in 3.1960 + OpenJDK. So if your platform supports ccache at 3.1.4 or later, we 3.1961 + highly recommend installing it. This is currently only supported on 3.1962 + linux.</p> 3.1963 + 3.1964 + <h4>Building on local disk</h4> 3.1965 + 3.1966 + <p>If you are using network shares, e.g. via NFS, for your source code, 3.1967 + make sure the build directory is situated on local disk. 3.1968 + The performance 3.1969 + penalty is extremely high for building on a network share, 3.1970 + close to unusable.</p> 3.1971 + 3.1972 + <h4>Building only one JVM</h4> 3.1973 + 3.1974 + <p>The old build builds multiple JVMs on 32-bit systems (client and 3.1975 + server; and on Windows kernel as well). In the new build we have 3.1976 + changed this default to only build server when it's available. This 3.1977 + improves build times for those not interested in multiple JVMs. To 3.1978 + mimic the old behavior on platforms that support it, 3.1979 + use <code>--with-jvm-variants=client,server</code>.</p> 3.1980 + 3.1981 + <h4>Selecting the number of cores to build on</h4> 3.1982 + 3.1983 + <p>By default, <code>configure</code> will analyze your machine and run the make 3.1984 + process in parallel with as many threads as you have cores. This 3.1985 + behavior can be overridden, either "permanently" (on a <code>configure</code> 3.1986 + basis) using <code>--with-num-cores=N</code> or for a single build 3.1987 + only (on a make basis), using <code>make JOBS=N</code>.</p> 3.1988 + 3.1989 + <p>If you want to make a slower build just this time, to save some CPU 3.1990 + power for other processes, you can run 3.1991 + e.g. <code>make JOBS=2</code>. This will force the makefiles 3.1992 + to only run 2 parallel processes, or even <code>make JOBS=1</code> 3.1993 + which will disable parallelism.</p> 3.1994 + 3.1995 + <p>If you want to have it the other way round, namely having slow 3.1996 + builds default and override with fast if you're 3.1997 + impatient, you should call <code>configure</code> with 3.1998 + <code>--with-num-cores=2</code>, making 2 the default. 3.1999 + If you want to run with more 3.2000 + cores, run <code>make JOBS=8</code></p> 3.2001 + 3.2002 + </blockquote> 3.2003 + 3.2004 + <h3><a name="troubleshooting">Troubleshooting</a></h3> 3.2005 + <blockquote> 3.2006 + 3.2007 + <h4>Solving build problems</h4> 3.2008 + 3.2009 <blockquote> 3.2010 - <p> 3.2011 - The ant scripts that build <tt>jaxp</tt> and <tt>jaxws</tt> 3.2012 - will attempt to locate these zip bundles from the directory 3.2013 - in the environment variable 3.2014 - <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt>. 3.2015 - The checksums protect from getting the wrong, corrupted, or 3.2016 - improperly modified sources. 3.2017 - Once the sources are made available, the population will not 3.2018 - happen again unless a <tt>make clobber</tt> is requested 3.2019 - or the <tt>jaxp/drop/</tt> or <tt>jaxws/drop/</tt> 3.2020 - directory is explicitly deleted. 3.2021 - <br> 3.2022 - <b>NOTE:</b> The default Makefile and ant script behavior 3.2023 - is to NOT download these bundles from the public http site. 3.2024 - In general, doing downloads 3.2025 - during the build process is not advised, it creates too much 3.2026 - unpredictability in the build process. 3.2027 - However, you can use <tt>make ALLOW_DOWNLOADS=true</tt> to 3.2028 - tell the ant script that the download of the zip bundle is 3.2029 - acceptable. 3.2030 - </p> 3.2031 - <p> 3.2032 - The recommended procedure for keeping a cache of these 3.2033 - source bundles would be to download them once, place them 3.2034 - in a directory outside the repositories, and then set 3.2035 - <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> to refer 3.2036 - to that directory. 3.2037 - These drop bundles do change occasionally, so the newer 3.2038 - bundles may need to be added to this area from time to time. 3.2039 - </p> 3.2040 + If the build fails (and it's not due to a compilation error in 3.2041 + a source file you've changed), the first thing you should do 3.2042 + is to re-run the build with more verbosity. 3.2043 + Do this by adding <code>LOG=debug</code> to your make command line. 3.2044 + <br> 3.2045 + The build log (with both stdout and stderr intermingled, 3.2046 + basically the same as you see on your console) can be found as 3.2047 + <code>build.log</code> in your build directory. 3.2048 + <br> 3.2049 + You can ask for help on build problems with the new build system 3.2050 + on either the 3.2051 + <a href="http://mail.openjdk.java.net/mailman/listinfo/build-dev"> 3.2052 + build-dev</a> 3.2053 + or the 3.2054 + <a href="http://mail.openjdk.java.net/mailman/listinfo/build-infra-dev"> 3.2055 + build-infra-dev</a> 3.2056 + mailing lists. Please include the relevant parts 3.2057 + of the build log. 3.2058 + <br> 3.2059 + A build can fail for any number of reasons. 3.2060 + Most failures 3.2061 + are a result of trying to build in an environment in which all the 3.2062 + pre-build requirements have not been met. 3.2063 + The first step in 3.2064 + troubleshooting a build failure is to recheck that you have satisfied 3.2065 + all the pre-build requirements for your platform. 3.2066 + Scanning the <code>configure</code> log is a good first step, making 3.2067 + sure that what it found makes sense for your system. 3.2068 + Look for strange error messages or any difficulties that 3.2069 + <code>configure</code> had in finding things. 3.2070 + <br> 3.2071 + Some of the more common problems with builds are briefly 3.2072 + described 3.2073 + below, with suggestions for remedies. 3.2074 + <ul> 3.2075 + <li> 3.2076 + <b>Corrupted Bundles on Windows:</b> 3.2077 + <blockquote> 3.2078 + Some virus scanning software has been known to 3.2079 + corrupt the 3.2080 + downloading of zip bundles. 3.2081 + It may be necessary to disable the 'on access' or 3.2082 + 'real time' 3.2083 + virus scanning features to prevent this corruption. 3.2084 + This type of "real time" virus scanning can also 3.2085 + slow down the 3.2086 + build process significantly. 3.2087 + Temporarily disabling the feature, or excluding the build 3.2088 + output directory may be necessary to get correct and 3.2089 + faster builds. 3.2090 + </blockquote> 3.2091 + </li> 3.2092 + <li> 3.2093 + <b>Slow Builds:</b> 3.2094 + <blockquote> 3.2095 + If your build machine seems to be overloaded from too many 3.2096 + simultaneous C++ compiles, try setting the 3.2097 + <code>JOBS=1</code> on the <code>make</code> command line. 3.2098 + Then try increasing the count slowly to an acceptable 3.2099 + level for your system. Also: 3.2100 + <blockquote> 3.2101 + Creating the javadocs can be very slow, 3.2102 + if you are running 3.2103 + javadoc, consider skipping that step. 3.2104 + <br> 3.2105 + Faster CPUs, more RAM, and a faster DISK usually helps. 3.2106 + The VM build tends to be CPU intensive 3.2107 + (many C++ compiles), 3.2108 + and the rest of the JDK will often be disk intensive. 3.2109 + <br> 3.2110 + Faster compiles are possible using a tool called 3.2111 + <a href="http://ccache.samba.org/" target="_blank">ccache</a>. 3.2112 + </blockquote> 3.2113 + </blockquote> 3.2114 + </li> 3.2115 + <li> 3.2116 + <b>File time issues:</b> 3.2117 + <blockquote> 3.2118 + If you see warnings that refer to file time stamps, e.g. 3.2119 + <blockquote> 3.2120 + <i>Warning message:</i><code> 3.2121 + File `xxx' has modification time in 3.2122 + the future.</code> 3.2123 + <br> 3.2124 + <i>Warning message:</i> <code> Clock skew detected. 3.2125 + Your build may 3.2126 + be incomplete.</code> 3.2127 + </blockquote> 3.2128 + These warnings can occur when the clock on the build 3.2129 + machine is out of 3.2130 + sync with the timestamps on the source files. 3.2131 + Other errors, apparently 3.2132 + unrelated but in fact caused by the clock skew, 3.2133 + can occur along with 3.2134 + the clock skew warnings. 3.2135 + These secondary errors may tend to obscure the 3.2136 + fact that the true root cause of the problem 3.2137 + is an out-of-sync clock. 3.2138 + <p> 3.2139 + If you see these warnings, reset the clock on the 3.2140 + build 3.2141 + machine, run "<code><i>gmake</i> clobber</code>" 3.2142 + or delete the directory 3.2143 + containing the build output, and restart the 3.2144 + build from the beginning. 3.2145 + </blockquote> 3.2146 + </li> 3.2147 + <li> 3.2148 + <b>Error message: 3.2149 + <code>Trouble writing out table to disk</code></b> 3.2150 + <blockquote> 3.2151 + Increase the amount of swap space on your build machine. 3.2152 + This could be caused by overloading the system and 3.2153 + it may be necessary to use: 3.2154 + <blockquote> 3.2155 + <code>make JOBS=1</code> 3.2156 + </blockquote> 3.2157 + to reduce the load on the system. 3.2158 + </blockquote> 3.2159 + </li> 3.2160 + <li> 3.2161 + <b>Error Message: 3.2162 + <code>libstdc++ not found:</code></b> 3.2163 + <blockquote> 3.2164 + This is caused by a missing libstdc++.a library. 3.2165 + This is installed as part of a specific package 3.2166 + (e.g. libstdc++.so.devel.386). 3.2167 + By default some 64-bit Linux versions (e.g. Fedora) 3.2168 + only install the 64-bit version of the libstdc++ package. 3.2169 + Various parts of the JDK build require a static 3.2170 + link of the C++ runtime libraries to allow for maximum 3.2171 + portability of the built images. 3.2172 + </blockquote> 3.2173 + </li> 3.2174 + <li> 3.2175 + <b>Linux Error Message: 3.2176 + <code>cannot restore segment prot after reloc</code></b> 3.2177 + <blockquote> 3.2178 + This is probably an issue with SELinux (See 3.2179 + <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> 3.2180 + http://en.wikipedia.org/wiki/SELinux</a>). 3.2181 + Parts of the VM is built without the <code>-fPIC</code> for 3.2182 + performance reasons. 3.2183 + <p> 3.2184 + To completely disable SELinux: 3.2185 + <ol> 3.2186 + <li><code>$ su root</code></li> 3.2187 + <li><code># system-config-securitylevel</code></li> 3.2188 + <li><code>In the window that appears, select the SELinux tab</code></li> 3.2189 + <li><code>Disable SELinux</code></li> 3.2190 + </ol> 3.2191 + <p> 3.2192 + Alternatively, instead of completely disabling it you could 3.2193 + disable just this one check. 3.2194 + <ol> 3.2195 + <li>Select System->Administration->SELinux Management</li> 3.2196 + <li>In the SELinux Management Tool which appears, 3.2197 + select "Boolean" from the menu on the left</li> 3.2198 + <li>Expand the "Memory Protection" group</li> 3.2199 + <li>Check the first item, labeled 3.2200 + "Allow all unconfined executables to use 3.2201 + libraries requiring text relocation ..."</li> 3.2202 + </ol> 3.2203 + </blockquote> 3.2204 + </li> 3.2205 + <li> 3.2206 + <b>Windows Error Messages:</b> 3.2207 + <br> 3.2208 + <code>*** fatal error - couldn't allocate heap, ... </code> 3.2209 + <br> 3.2210 + <code>rm fails with "Directory not empty"</code> 3.2211 + <br> 3.2212 + <code>unzip fails with "cannot create ... Permission denied"</code> 3.2213 + <br> 3.2214 + <code>unzip fails with "cannot create ... Error 50"</code> 3.2215 + <br> 3.2216 + <blockquote> 3.2217 + The CYGWIN software can conflict with other non-CYGWIN 3.2218 + software. See the CYGWIN FAQ section on 3.2219 + <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 3.2220 + BLODA (applications that interfere with CYGWIN)</a>. 3.2221 + </blockquote> 3.2222 + </li> 3.2223 + <li> 3.2224 + <b>Windows Error Message: <code>spawn failed</code></b> 3.2225 + <blockquote> 3.2226 + Try rebooting the system, or there could be some kind of 3.2227 + issue with the disk or disk partition being used. 3.2228 + Sometimes it comes with a "Permission Denied" message. 3.2229 + </blockquote> 3.2230 + </li> 3.2231 + </ul> 3.2232 </blockquote> 3.2233 - </blockquote> 3.2234 - </blockquote> 3.2235 - <!-- ------------------------------------------------------ --> 3.2236 + 3.2237 + </blockquote> <!-- Troubleshooting --> 3.2238 + 3.2239 + </blockquote> <!-- Appendix A --> 3.2240 + 3.2241 + <!-- ====================================================== --> 3.2242 <hr> 3.2243 - <h2><a name="building">Build Information</a></h2> 3.2244 + <h2><a name="gmake">Appendix B: GNU make</a></h2> 3.2245 <blockquote> 3.2246 - Building the OpenJDK 3.2247 - is done with a <a href="#gmake">GNU <tt>make</tt></a> command line 3.2248 - and various 3.2249 - environment or make variable settings that direct the makefile rules 3.2250 - to where various components have been installed. 3.2251 - Where possible the makefiles will attempt to located the various 3.2252 - components in the default locations or any component specific 3.2253 - variable settings. 3.2254 - When the normal defaults fail or components cannot be found, 3.2255 - the various 3.2256 - <tt>ALT_*</tt> variables (alternates) 3.2257 - can be used to help the makefiles locate components. 3.2258 - <p> 3.2259 - Refer to the bash/sh/ksh setup file 3.2260 - <tt>jdk/make/jdk_generic_profile.sh</tt> 3.2261 - if you need help in setting up your environment variables. 3.2262 - A build could be as simple as: 3.2263 - <blockquote> 3.2264 - <pre><tt> 3.2265 - bash 3.2266 - . jdk/make/jdk_generic_profile.sh 3.2267 - <a href="#gmake"><tt>make</tt></a> sanity && <a href="#gmake"><tt>make</tt></a> 3.2268 - </tt></pre> 3.2269 - </blockquote> 3.2270 - <p> 3.2271 - Of course ksh or sh would work too. 3.2272 - But some customization will probably be necessary. 3.2273 - The <tt>sanity</tt> rule will make some basic checks on build 3.2274 - dependencies and generate appropriate warning messages 3.2275 - regarding missing, out of date, or newer than expected components 3.2276 - found on your system. 3.2277 - </blockquote> 3.2278 - <!-- ------------------------------------------------------ --> 3.2279 - <hr> 3.2280 - <h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3> 3.2281 - <blockquote> 3.2282 + 3.2283 The Makefiles in the OpenJDK are only valid when used with the 3.2284 - GNU version of the utility command <tt>make</tt> 3.2285 - (<tt><i>gmake</i></tt>). 3.2286 + GNU version of the utility command <code>make</code> 3.2287 + (usually called <code>gmake</code> on Solaris). 3.2288 A few notes about using GNU make: 3.2289 <ul> 3.2290 <li> 3.2291 You need GNU make version 3.81 or newer. 3.2292 + If the GNU make utility on your systems is not 3.2293 + 3.81 or newer, 3.2294 + see <a href="#buildgmake">"Building GNU make"</a>. 3.2295 </li> 3.2296 <li> 3.2297 - Place the location of the GNU make binary in the <tt>PATH</tt>. 3.2298 - </li> 3.2299 - <li> 3.2300 - <strong>Linux:</strong> 3.2301 - The <tt>/usr/bin/make</tt> should be 3.81 or newer 3.2302 - and should work fine for you. 3.2303 - If this version is not 3.81 or newer, 3.2304 - see the <a href="#buildgmake">"Building GNU make"</a> section. 3.2305 + Place the location of the GNU make binary in the 3.2306 + <code>PATH</code>. 3.2307 </li> 3.2308 <li> 3.2309 <strong>Solaris:</strong> 3.2310 - Do NOT use <tt>/usr/bin/make</tt> on Solaris. 3.2311 + Do NOT use <code>/usr/bin/make</code> on Solaris. 3.2312 If your Solaris system has the software 3.2313 - from the Solaris Companion CD installed, 3.2314 - you should try and use <tt>gmake</tt> 3.2315 - which will be located in either the <tt>/opt/sfw/bin</tt> or 3.2316 - <tt>/usr/sfw/bin</tt> directory. 3.2317 - In more recent versions of Solaris GNU make might be found 3.2318 - at <tt>/usr/bin/gmake</tt>.<br> 3.2319 - <b>NOTE:</b> It is very likely that this <tt>gmake</tt> 3.2320 - could be 3.80, you need 3.81, in which case, 3.2321 - see the <a href="#buildgmake">"Building GNU make"</a> section. 3.2322 + from the Solaris Developer Companion CD installed, 3.2323 + you should try and use <code>gmake</code> 3.2324 + which will be located in either the 3.2325 + <code>/usr/bin</code>, <code>/opt/sfw/bin</code> or 3.2326 + <code>/usr/sfw/bin</code> directory. 3.2327 </li> 3.2328 <li> 3.2329 <strong>Windows:</strong> 3.2330 - Make sure you start your build inside a bash/sh/ksh shell and are 3.2331 - using a <tt>make.exe</tt> utility built for that environment.<br/> 3.2332 - <strong>MKS</strong> builds need a native Windows version of GNU make 3.2333 - (see <a href="#buildgmake">Building GNU make</a>).<br/> 3.2334 - <strong>Cygwin</strong> builds need 3.2335 - a make version which was specially compiled for the Cygwin environment 3.2336 - (see <a href="#buildgmake">Building GNU make</a>). <strong>WARNING:</strong> 3.2337 - the OpenJDK build with the make utility provided by Cygwin will <strong>not</strong> 3.2338 - work because it does not support drive letters in paths. Make sure that 3.2339 - your version of make will be found before the Cygwins default make by 3.2340 - setting an appropriate <tt>PATH</tt> environment variable or by removing 3.2341 - Cygwin's make after you built your own make version.<br/> 3.2342 - <strong>MinGW/MSYS</strong> builds can use the default make which 3.2343 - comes with the environment. 3.2344 + Make sure you start your build inside a bash shell. 3.2345 + </li> 3.2346 + <li> 3.2347 + <strong>Mac OS X:</strong> 3.2348 + The XCode "command line tools" must be installed on your Mac. 3.2349 </li> 3.2350 </ul> 3.2351 <p> 3.2352 @@ -714,1539 +1775,728 @@ 3.2353 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> 3.2354 ftp.gnu.org/pub/gnu/make/</a>. 3.2355 </p> 3.2356 - <!-- ------------------------------------------------------ --> 3.2357 - <h4><a name="buildgmake">Building GNU make</a></h4> 3.2358 + 3.2359 + <h3><a name="buildgmake">Building GNU make</a></h3> 3.2360 <blockquote> 3.2361 - First step is to get the GNU make 3.81 (or newer) source from 3.2362 + First step is to get the GNU make 3.81 or newer source from 3.2363 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> 3.2364 ftp.gnu.org/pub/gnu/make/</a>. 3.2365 - Building is a little different depending on the OS and unix toolset 3.2366 - on Windows: 3.2367 - <ul> 3.2368 - <li> 3.2369 - <strong>Linux:</strong> 3.2370 - <tt>./configure && make</tt> 3.2371 - </li> 3.2372 - <li> 3.2373 - <strong>Solaris:</strong> 3.2374 - <tt>./configure && gmake CC=gcc</tt> 3.2375 - </li> 3.2376 - <li> 3.2377 - <strong>Windows for CYGWIN:</strong><br/> 3.2378 - <tt>./configure</tt><br/> 3.2379 - Add the line <tt>#define HAVE_CYGWIN_SHELL 1</tt> to the end of <tt>config.h</tt><br/> 3.2380 - <tt>make</tt><br/> 3.2381 - <br/> 3.2382 - This should produce <tt>make.exe</tt> in the current directory. 3.2383 - </li> 3.2384 - <li> 3.2385 - <strong>Windows for MKS:</strong><br/> 3.2386 - Edit <tt>config.h.W32</tt> and uncomment the line <tt>#define HAVE_MKS_SHELL 1</tt><br/> 3.2387 - Set the environment for your native compiler (e.g. by calling:<br/> 3.2388 - <tt>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /xp /x64)</tt> 3.2389 - <tt>nmake -f NMakefile.win32</tt> 3.2390 - <br/> 3.2391 - This should produce <tt>WinDebug/make.exe</tt> and <tt>WinRel/make.exe</tt> 3.2392 - <br/> 3.2393 - If you get the error: <tt>NMAKE : fatal error U1045: spawn failed : Permission denied</tt> 3.2394 - you have to set the <tt>Read & execute</tt> permission for the file <tt>subproc.bat</tt>. 3.2395 - </li> 3.2396 - </ul> 3.2397 - </blockquote> 3.2398 - </blockquote> 3.2399 - <!-- ------------------------------------------------------ --> 3.2400 - <hr> 3.2401 - <h3><a name="linux">Basic Linux System Setup</a></h3> 3.2402 - <blockquote> 3.2403 - <strong>i586 only:</strong> 3.2404 - The minimum recommended hardware for building the Linux version 3.2405 - is a Pentium class processor or better, at least 256 MB of RAM, and 3.2406 - approximately 1.5 GB of free disk space. 3.2407 - <p> 3.2408 - <strong>X64 only:</strong> 3.2409 - The minimum recommended hardware for building the Linux 3.2410 - version is an AMD Opteron class processor, at least 512 MB of RAM, and 3.2411 - approximately 4 GB of free disk space. 3.2412 - <p> 3.2413 - The build will use the tools contained in 3.2414 - <tt>/bin</tt> and 3.2415 - <tt>/usr/bin</tt> 3.2416 - of a standard installation of the Linux operating environment. 3.2417 - You should ensure that these directories are in your 3.2418 - <tt>PATH</tt>. 3.2419 - <p> 3.2420 - Note that some Linux systems have a habit of pre-populating 3.2421 - your environment variables for you, for example <tt>JAVA_HOME</tt> 3.2422 - might get pre-defined for you to refer to the JDK installed on 3.2423 - your Linux system. 3.2424 - You will need to unset <tt>JAVA_HOME</tt>. 3.2425 - It's a good idea to run <tt>env</tt> and verify the 3.2426 - environment variables you are getting from the default system 3.2427 - settings make sense for building the 3.2428 - OpenJDK. 3.2429 - </blockquote> 3.2430 - <!-- ------------------------------------------------------ --> 3.2431 - <h4><a name="linux_checklist">Basic Linux Check List</a></h4> 3.2432 - <blockquote> 3.2433 - <ol> 3.2434 - <li> 3.2435 - Install the 3.2436 - <a href="#bootjdk">Bootstrap JDK</a>, set 3.2437 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. 3.2438 - </li> 3.2439 - <li> 3.2440 - <a href="#importjdk">Optional Import JDK</a>, set 3.2441 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 3.2442 - </li> 3.2443 - <li> 3.2444 - Install or upgrade the <a href="#freetype">FreeType development 3.2445 - package</a>. 3.2446 - </li> 3.2447 - <li> 3.2448 - Install 3.2449 - <a href="#ant">Ant 1.7.1 or newer</a>, 3.2450 - make sure it is in your PATH. 3.2451 - </li> 3.2452 - </ol> 3.2453 - </blockquote> 3.2454 - <!-- ------------------------------------------------------ --> 3.2455 - <hr> 3.2456 - <h3><a name="solaris">Basic Solaris System Setup</a></h3> 3.2457 - <blockquote> 3.2458 - The minimum recommended hardware for building the 3.2459 - Solaris SPARC version is an UltraSPARC with 512 MB of RAM. 3.2460 - For building 3.2461 - the Solaris x86 version, a Pentium class processor or better and at 3.2462 - least 512 MB of RAM are recommended. 3.2463 - Approximately 1.4 GB of free disk 3.2464 - space is needed for a 32-bit build. 3.2465 - <p> 3.2466 - If you are building the 64-bit version, you should 3.2467 - run the command "isainfo -v" to verify that you have a 3.2468 - 64-bit installation, it should say <tt>sparcv9</tt> or 3.2469 - <tt>amd64</tt>. 3.2470 - An additional 7 GB of free disk space is needed 3.2471 - for a 64-bit build. 3.2472 - <p> 3.2473 - The build uses the tools contained in <tt>/usr/ccs/bin</tt> 3.2474 - and <tt>/usr/bin</tt> of a standard developer or full installation of 3.2475 - the Solaris operating environment. 3.2476 - <p> 3.2477 - Solaris patches specific to the JDK can be downloaded from the 3.2478 - <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank"> 3.2479 - SunSolve JDK Solaris patches download page</a>. 3.2480 - You should ensure that the latest patch cluster for 3.2481 - your version of the Solaris operating environment has also 3.2482 - been installed. 3.2483 - </blockquote> 3.2484 - <!-- ------------------------------------------------------ --> 3.2485 - <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4> 3.2486 - <blockquote> 3.2487 - <ol> 3.2488 - <li> 3.2489 - Install the 3.2490 - <a href="#bootjdk">Bootstrap JDK</a>, set 3.2491 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. 3.2492 - </li> 3.2493 - <li> 3.2494 - <a href="#importjdk">Optional Import JDK</a>, set 3.2495 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 3.2496 - </li> 3.2497 - <li> 3.2498 - Install the 3.2499 - <a href="#studio">Sun Studio Compilers</a>, set 3.2500 - <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>. 3.2501 - </li> 3.2502 - <li> 3.2503 - Install the 3.2504 - <a href="#cups">CUPS Include files</a>, set 3.2505 - <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>. 3.2506 - </li> 3.2507 - <li> 3.2508 - Install the <a href="#xrender">XRender Include files</a>. 3.2509 - </li> 3.2510 - <li> 3.2511 - Install 3.2512 - <a href="#ant">Ant 1.7.1 or newer</a>, 3.2513 - make sure it is in your PATH. 3.2514 - </li> 3.2515 - </ol> 3.2516 - </blockquote> 3.2517 - <!-- ------------------------------------------------------ --> 3.2518 - <hr> 3.2519 - <h3><a name="windows">Basic Windows System Setup</a></h3> 3.2520 - <blockquote> 3.2521 - <strong>i586 only:</strong> 3.2522 - The minimum recommended hardware for building the 32-bit or X86 3.2523 - Windows version is an Pentium class processor or better, at least 3.2524 - 512 MB of RAM, and approximately 600 MB of free disk space. 3.2525 - <strong> 3.2526 - NOTE: The Windows build machines need to use the 3.2527 - file system NTFS. 3.2528 - Build machines formatted to FAT32 will not work 3.2529 - because FAT32 doesn't support case-sensitivity in file names. 3.2530 - </strong> 3.2531 - <p> 3.2532 - <strong>X64 only:</strong> 3.2533 - The minimum recommended hardware for building 3.2534 - the Windows X64 version is an AMD Opteron class processor, at least 1 3.2535 - GB of RAM, and approximately 10 GB of free disk space. 3.2536 - </blockquote> 3.2537 - <!-- ------------------------------------------------------ --> 3.2538 - <h4><a name="paths">Windows Paths</a></h4> 3.2539 - <blockquote> 3.2540 - <strong>Windows:</strong> 3.2541 - Note that GNU make, the shell and other Unix-tools required during the build 3.2542 - do not tolerate the Windows habit 3.2543 - of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames. 3.2544 - Luckily on most Windows systems, you can use <tt>/</tt>instead of <tt>\</tt>, and 3.2545 - there is always a short <a href="http://en.wikipedia.org/wiki/8.3_filename"> 3.2546 - "8.3" pathname</a> without spaces for any path that contains spaces. 3.2547 - Unfortunately, this short pathname is somewhat dynamic (i.e. dependant on the 3.2548 - other files and directories inside a given directory) and can not be 3.2549 - algorithmicly calculated by only looking at a specific path name. 3.2550 - <p> 3.2551 - The makefiles will try to translate any pathnames supplied 3.2552 - to it into the <tt>C:/</tt> style automatically. 3.2553 - </p> 3.2554 - <p> 3.2555 - Special care has to be taken if native Windows applications 3.2556 - like <tt>nmake</tt> or <tt>cl</tt> are called with file arguments processed 3.2557 - by Unix-tools like <tt>make</tt> or <tt>sh</tt>! 3.2558 - </p> 3.2559 - </blockquote> 3.2560 - <!-- ------------------------------------------------------ --> 3.2561 - <h4><a name="paths">Windows build environments</a></h4> 3.2562 - <blockquote> 3.2563 - Building on Windows requires a Unix-like environment, notably a Unix-like shell. 3.2564 - There are several such environments available of which 3.2565 - <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a>, 3.2566 - <a href="http://www.cygwin.com/">Cygwin</a> and 3.2567 - <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are currently supported for 3.2568 - the OpenJDK build. One of the differences of these three systems is the way 3.2569 - they handle Windows path names, particularly path names which contain 3.2570 - spaces, backslashes as path separators and possibly drive letters. Depending 3.2571 - on the use case and the specifics of each environment these path problems can 3.2572 - be solved by a combination of quoting whole paths, translating backslashes to 3.2573 - forward slashes, escaping backslashes with additional backslashes and 3.2574 - translating the path names to their <a href="http://en.wikipedia.org/wiki/8.3_filename"> 3.2575 - "8.3" version</a>. 3.2576 - <p> 3.2577 - As of this writing (MKS ver. 9.4, Cygwin ver. 1.7.9, MinGW/MSYS 1.0.17), 3.2578 - MKS builds are known to be the fastest Windows builds while MingGW/MSYS 3.2579 - builds are slightly slower (about 10%) than MKS builds and Cygwin builds 3.2580 - require nearly twice the time (about 180%) of MKS builds (e.g. on a 3.2581 - DualCore i7 notebook with 8GB of RAM, HDD and 64-bit Windows 7 operating system 3.2582 - the complete OpenJDK 8 product build takes about 49min with MKS, 54min with 3.2583 - MinGW/MSYS and 88min with Cygwin). 3.2584 - </p> 3.2585 - <p> 3.2586 - Mixing tools from the different Unix emulation environments is not a good 3.2587 - idea and will probably not work! 3.2588 - </p> 3.2589 - <p> 3.2590 - <strong>MKS:</strong> is a commercial product which includes 3.2591 - all the Unix utilities which are required to build the OpenJDK except GNU 3.2592 - make. In pre-OpenJDK times it was the only supported build environment on 3.2593 - Windows. The MKS tools support Windows paths with drive letters and 3.2594 - forward slashes as path separator. Paths in environment variables like (for 3.2595 - example) <tt>PATH</tt> are separated by semicolon '<tt>;</tt>'. 3.2596 - </p> 3.2597 - <p> 3.2598 - Recent versions of MKS provide the <tt>dosname</tt> utility to convert paths 3.2599 - with spaces to short (8.3) path names,e .g. 3.2600 - <tt>dosname -s "<i>path</i>"</tt>. 3.2601 - </p> 3.2602 - <p> 3.2603 - If you are using the MKS environment, you need a native Windows version 3.2604 - of Gnu make <a href="#buildgmake">which you can easily build yourself</a>. 3.2605 - </p> 3.2606 - <p> 3.2607 - <strong>Cygwin:</strong> 3.2608 - is an open source, Linux-like environment which tries to emulate 3.2609 - a complete POSIX layer on Windows. It tries to be smart about path names 3.2610 - and can usually handle all kinds of paths if they are correctly quoted 3.2611 - or escaped although internally it maps drive letters <tt><drive>:</tt> 3.2612 - to a virtual directory <tt>/cygdrive/<drive></tt>. 3.2613 - </p> 3.2614 - <p> 3.2615 - You can always use the <tt>cygpath</tt> utility to map pathnames with spaces 3.2616 - or the backslash character into the <tt>C:/</tt> style of pathname 3.2617 - (called 'mixed'), e.g. <tt>cygpath -s -m "<i>path</i>"</tt>. 3.2618 - </p> 3.2619 - <p> 3.2620 - Note that the use of CYGWIN creates a unique problem with regards to 3.2621 - setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows 3.2622 - the <tt>PATH</tt> variable contains directories 3.2623 - separated with the ";" character (Solaris and Linux use ":"). 3.2624 - With CYGWIN, it uses ":", but that means that paths like "C:/path" 3.2625 - cannot be placed in the CYGWIN version of <tt>PATH</tt> and 3.2626 - instead CYGWIN uses something like <tt>/cygdrive/c/path</tt> 3.2627 - which CYGWIN understands, but only CYGWIN understands. 3.2628 - </p> 3.2629 - <p> 3.2630 - If you are using the Cygwin environment, you need to 3.2631 - <a href="#buildgmake">compile your own version</a> 3.2632 - of GNU make because the default Cygwin make can not handle drive letters in paths. 3.2633 - </p> 3.2634 - <p> 3.2635 - <strong>MinGW/MSYS:</strong> 3.2636 - MinGW ("Minimalist GNU for Windows") is a collection of free Windows 3.2637 - specific header files and import libraries combined with GNU toolsets that 3.2638 - allow one to produce native Windows programs that do not rely on any 3.2639 - 3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building 3.2640 - applications and programs which rely on traditional UNIX tools to 3.2641 - be present. Among others this includes tools like <tt>bash</tt> and <tt>make</tt>. 3.2642 - </p> 3.2643 - <p> 3.2644 - Like Cygwin, MinGW/MSYS can handle different types of path formats. They 3.2645 - are internally converted to paths with forward slashes and drive letters 3.2646 - <tt><drive>:</tt> replaced by a virtual 3.2647 - directory <tt>/<drive></tt>. Additionally, MSYS automatically 3.2648 - detects binaries compiled for the MSYS environment and feeds them with the 3.2649 - internal, Unix-style path names. If native Windows applications are called 3.2650 - from within MSYS programs their path arguments are automatically converted 3.2651 - back to Windows style path names with drive letters and backslashes as 3.2652 - path separators. This may cause problems for Windows applications which 3.2653 - use forward slashes as parameter separator (e.g. <tt>cl /nologo /I</tt>) 3.2654 - because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion"> 3.2655 - replace such parameters by drive letters</a>. 3.2656 - </p> 3.2657 - <p> 3.2658 - If you are using the MinGW/MSYS system you can use the default make 3.2659 - version supplied by the environment. 3.2660 - </p> 3.2661 - </blockquote> 3.2662 - <!-- ------------------------------------------------------ --> 3.2663 - <h4><a name="windows_checklist">Basic Windows Check List</a></h4> 3.2664 - <blockquote> 3.2665 - <ol> 3.2666 - <li> 3.2667 - Install one of the 3.2668 - <a href="#cygwin">CYGWIN</a>, <a href="#msys">MinGW/MSYS</a> or 3.2669 - <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a> environments. 3.2670 - </li> 3.2671 - <li> 3.2672 - Install the 3.2673 - <a href="#bootjdk">Bootstrap JDK</a>, set 3.2674 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. 3.2675 - </li> 3.2676 - <li> 3.2677 - <a href="#importjdk">Optional Import JDK</a>, set 3.2678 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 3.2679 - </li> 3.2680 - <li> 3.2681 - Install the 3.2682 - <a href="#msvc32">Microsoft Visual Studio Compilers</a>). 3.2683 - </li> 3.2684 - <li> 3.2685 - Setup all environment variables for compilers 3.2686 - (see <a href="#msvc32">compilers</a>). 3.2687 - </li> 3.2688 - <li> 3.2689 - Install 3.2690 - <a href="#dxsdk">Microsoft DirectX SDK</a>. 3.2691 - </li> 3.2692 - <li> 3.2693 - Install 3.2694 - <a href="#ant">Ant 1.7.1 or newer</a>, 3.2695 - make sure it is in your PATH and set 3.2696 - <tt><a href="#ANT_HOME">ANT_HOME</a></tt>. 3.2697 - </li> 3.2698 - </ol> 3.2699 - </blockquote> 3.2700 - <!-- ------------------------------------------------------ --> 3.2701 - <hr> 3.2702 - <h3><a name="macosx">Basic Mac OS X System Setup</a></h3> 3.2703 - <blockquote> 3.2704 - <strong>X64 only:</strong> 3.2705 - The minimum recommended hardware for building 3.2706 - the Mac OS X version is any 64-bit capable Intel processor, at least 2 3.2707 - GB of RAM, and approximately 3 GB of free disk space. You should also 3.2708 - have OS X Lion 10.7.3 installed. 3.2709 - </blockquote> 3.2710 - <!-- ------------------------------------------------------ --> 3.2711 - 3.2712 - <h4><a name="macosx_checklist">Basic Mac OS X Check List</a></h4> 3.2713 - <blockquote> 3.2714 - <ol> 3.2715 - <li> 3.2716 - Install <a href="https://developer.apple.com/xcode/">XCode 4.1</a> or newer. 3.2717 - If you install XCode 4.3 or newer, make sure you also install 3.2718 - "Command line tools" found under the preferences pane "Downloads". 3.2719 - </li> 3.2720 - <li> 3.2721 - Install <a href="http://support.apple.com/kb/dl1421" target="_blank">"Java for OS X Lion Update 1"</a>, 3.2722 - set <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a> to <code>`/usr/libexec/java_home -v 1.6`</code></tt> 3.2723 - </li> 3.2724 - <li> 3.2725 - <a href="#importjdk">Optional Import JDK</a>, set 3.2726 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 3.2727 - </li> 3.2728 - </ol> 3.2729 - </blockquote> 3.2730 - <!-- ------------------------------------------------------ --> 3.2731 - <hr> 3.2732 - <h3><a name="dependencies">Build Dependencies</a></h3> 3.2733 - <blockquote> 3.2734 - Depending on the platform, the OpenJDK build process has some basic 3.2735 - dependencies on components not part of the OpenJDK sources. 3.2736 - Some of these are specific to a platform, some even specific to 3.2737 - an architecture. 3.2738 - Each dependency will have a set of ALT variables that can be set 3.2739 - to tell the makefiles where to locate the component. 3.2740 - In most cases setting these ALT variables may not be necessary 3.2741 - and the makefiles will find defaults on the system in standard 3.2742 - install locations or through component specific variables. 3.2743 - <!-- ------------------------------------------------------ --> 3.2744 - <h4><a name="bootjdk">Bootstrap JDK</a></h4> 3.2745 - <blockquote> 3.2746 - All OpenJDK builds require access to the previously released 3.2747 - JDK 6, this is often called a bootstrap JDK. 3.2748 - The JDK 6 binaries can be downloaded from Sun's 3.2749 - <a href="http://java.sun.com/javase/downloads/index.jsp" 3.2750 - target="_blank">JDK 6 download site</a>. 3.2751 - For build performance reasons 3.2752 - is very important that this bootstrap JDK be made available on the 3.2753 - local disk of the machine doing the build. 3.2754 - You should always set 3.2755 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt> 3.2756 - to point to the location of 3.2757 - the bootstrap JDK installation, this is the directory pathname 3.2758 - that contains a <tt>bin, lib, and include</tt> 3.2759 - It's also a good idea to also place its <tt>bin</tt> directory 3.2760 - in the <tt>PATH</tt> environment variable, although it's 3.2761 - not required. 3.2762 - <p> 3.2763 - <strong>Solaris:</strong> 3.2764 - Some pre-installed JDK images may be available to you in the 3.2765 - directory <tt>/usr/jdk/instances</tt>. 3.2766 - If you don't set 3.2767 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt> 3.2768 - the makefiles will look in that location for a JDK it can use. 3.2769 - </blockquote> 3.2770 - <!-- ------------------------------------------------------ --> 3.2771 - <h4><a name="importjdk">Optional Import JDK</a></h4> 3.2772 - <blockquote> 3.2773 - The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt> 3.2774 - setting is only needed if you are not building the entire 3.2775 - JDK. For example, if you have built the entire JDK once, and 3.2776 - wanted to avoid repeatedly building the Hotspot VM, you could 3.2777 - set this to the location of the previous JDK install image 3.2778 - and the build will copy the needed files from this import area. 3.2779 - </blockquote> 3.2780 - <!-- ------------------------------------------------------ --> 3.2781 - <h4><a name="ant">Ant</a></h4> 3.2782 - <blockquote> 3.2783 - All OpenJDK builds require access to least Ant 1.7.1. 3.2784 - The Ant tool is available from the 3.2785 - <a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip" target="_blank"> 3.2786 - Ant 1.7.1 archive download site</a>. 3.2787 - You should always make sure <tt>ant</tt> is in your PATH, and 3.2788 - on Windows you may also need to set 3.2789 - <tt><a href="#ANT_HOME">ANT_HOME</a></tt> 3.2790 - to point to the location of 3.2791 - the Ant installation, this is the directory pathname 3.2792 - that contains a <tt>bin and lib</tt>. 3.2793 - <br> 3.2794 - <b>WARNING:</b> Ant versions used from IDE tools like NetBeans 3.2795 - or installed via system packages may not operate the same 3.2796 - as the one obtained from the Ant download bundles. 3.2797 - These system and IDE installers sometimes choose to change 3.2798 - the ant installation enough to cause differences. 3.2799 - </blockquote> 3.2800 - <!-- ------------------------------------------------------ --> 3.2801 - <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4> 3.2802 - <blockquote> 3.2803 - See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank"> 3.2804 - http://en.wikipedia.org/wiki/Certificate_Authority</a> 3.2805 - for a better understanding of the Certificate Authority (CA). 3.2806 - A certificates file named "cacerts" 3.2807 - represents a system-wide keystore with CA certificates. 3.2808 - In JDK and JRE 3.2809 - binary bundles, the "cacerts" file contains root CA certificates from 3.2810 - several public CAs (e.g., VeriSign, Thawte, and Baltimore). 3.2811 - The source contain a cacerts file 3.2812 - without CA root certificates. 3.2813 - Formal JDK builders will need to secure 3.2814 - permission from each public CA and include the certificates into their 3.2815 - own custom cacerts file. 3.2816 - Failure to provide a populated cacerts file 3.2817 - will result in verification errors of a certificate chain during runtime. 3.2818 - The variable 3.2819 - <tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt> 3.2820 - can be used to override the default location of the 3.2821 - cacerts file that will get placed in your build. 3.2822 - By default an empty cacerts file is provided and that should be 3.2823 - fine for most JDK developers. 3.2824 - </blockquote> 3.2825 - <!-- ------------------------------------------------------ --> 3.2826 - <h4><a name="compilers">Compilers</a></h4> 3.2827 - <blockquote> 3.2828 - <strong><a name="gcc">Linux gcc/binutils</a></strong> 3.2829 + Building is a little different depending on the OS but is 3.2830 + basically done with: 3.2831 <blockquote> 3.2832 - The GNU gcc compiler version should be 4.3 or newer. 3.2833 - The compiler used should be the default compiler installed 3.2834 - in <tt>/usr/bin</tt>. 3.2835 - </blockquote> 3.2836 - <strong><a name="studio">Solaris: Sun Studio</a></strong> 3.2837 - <blockquote> 3.2838 - At a minimum, the 3.2839 - <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> 3.2840 - Sun Studio 12 Update 1 Compilers</a> 3.2841 - (containing version 5.10 of the C and C++ compilers) is required, 3.2842 - including specific patches. 3.2843 - <p> 3.2844 - The Solaris SPARC patch list is: 3.2845 - <ul> 3.2846 - <li> 3.2847 - 118683-05: SunOS 5.10: Patch for profiling libraries and assembler 3.2848 - </li> 3.2849 - <li> 3.2850 - 119963-21: SunOS 5.10: Shared library patch for C++ 3.2851 - </li> 3.2852 - <li> 3.2853 - 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch 3.2854 - </li> 3.2855 - <li> 3.2856 - 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler 3.2857 - </li> 3.2858 - <li> 3.2859 - 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 3.2860 - </li> 3.2861 - <li> 3.2862 - 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler 3.2863 - </li> 3.2864 - <li> 3.2865 - 142371-01: Sun Studio 12.1 Update 1: Patch for dbx 3.2866 - </li> 3.2867 - <li> 3.2868 - 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling 3.2869 - </li> 3.2870 - <li> 3.2871 - 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 3.2872 - </li> 3.2873 - <li> 3.2874 - 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools 3.2875 - </li> 3.2876 - </ul> 3.2877 - <p> 3.2878 - The Solaris X86 patch list is: 3.2879 - <ul> 3.2880 - <li> 3.2881 - 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler 3.2882 - </li> 3.2883 - <li> 3.2884 - 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 3.2885 - </li> 3.2886 - <li> 3.2887 - 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch 3.2888 - </li> 3.2889 - <li> 3.2890 - 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend 3.2891 - </li> 3.2892 - <li> 3.2893 - 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler 3.2894 - </li> 3.2895 - <li> 3.2896 - 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler 3.2897 - </li> 3.2898 - <li> 3.2899 - 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools 3.2900 - </li> 3.2901 - </ul> 3.2902 - <p> 3.2903 - Set 3.2904 - <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> 3.2905 - to point to the location of 3.2906 - the compiler binaries, and place this location in the <tt>PATH</tt>. 3.2907 - <p> 3.2908 - The Oracle Solaris Studio Express compilers at: 3.2909 - <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank"> 3.2910 - Oracle Solaris Studio Express Download site</a> 3.2911 - are also an option, although these compilers have not 3.2912 - been extensively used yet. 3.2913 - </blockquote> 3.2914 - <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> 3.2915 - <blockquote> 3.2916 - <p> 3.2917 - <b>BEGIN WARNING</b>: JDK 7 has transitioned to 3.2918 - use the newest VS2010 Microsoft compilers. 3.2919 - No other compilers are known to build the entire JDK, 3.2920 - including non-open portions. 3.2921 - Visual Studio 2010 Express compilers are now able to build all the 3.2922 - open source repositories, but this is 32 bit only. To build 64 bit 3.2923 - Windows binaries use the the 7.1 Windows SDK. 3.2924 - <b>END WARNING.</b> 3.2925 - <p> 3.2926 - The 32-bit OpenJDK Windows build requires 3.2927 - Microsoft Visual Studio C++ 2010 (VS2010) Professional 3.2928 - Edition or Express compiler. 3.2929 - The compiler and other tools are expected to reside 3.2930 - in the location defined by the variable 3.2931 - <tt>VS100COMNTOOLS</tt> which 3.2932 - is set by the Microsoft Visual Studio installer. 3.2933 - <p> 3.2934 - Once the compiler is installed, 3.2935 - it is recommended that you run <tt>VCVARS32.BAT</tt> 3.2936 - to set the compiler environment variables 3.2937 - <tt>INCLUDE</tt>, 3.2938 - <tt>LIB</tt>, and 3.2939 - <tt>PATH</tt> 3.2940 - prior to building the 3.2941 - OpenJDK. 3.2942 - The above environment variables <b>MUST</b> be set. 3.2943 - This compiler also contains the Windows SDK v 7.0a, 3.2944 - which is an update to the Windows 7 SDK. 3.2945 - <p> 3.2946 - <b>WARNING:</b> Make sure you check out the 3.2947 - <a href="#cygwin">CYGWIN link.exe WARNING</a>. 3.2948 - The path <tt>/usr/bin</tt> must be after the path to the 3.2949 - Visual Studio product. 3.2950 - </blockquote> 3.2951 - <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> 3.2952 - <blockquote> 3.2953 - For <b>X64</b>, the set up is much the same as 32 bit 3.2954 - except that you run <tt>amd64\VCVARS64.BAT</tt> 3.2955 - to set the compiler environment variables. 3.2956 - Previously 64 bit builds had to use the 64 bit compiler in 3.2957 - an unbundled Windows SDK but this is no longer necessary if 3.2958 - you have VS2010 Professional. 3.2959 - </blockquote> 3.2960 - <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong> 3.2961 - For a free alternative for 64 bit builds, use the 7.1 SDK. 3.2962 - Microsoft say that to set up your paths for this run 3.2963 - <pre> 3.2964 - c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64. 3.2965 - </pre> 3.2966 - What was tested is just directly setting up LIB, INCLUDE, 3.2967 - PATH and based on the installation directories using the 3.2968 - DOS short name appropriate for the system, (you will 3.2969 - need to set them for yours, not just blindly copy this) eg : 3.2970 - <pre> 3.2971 - set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0 3.2972 - set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1 3.2973 - set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH% 3.2974 - set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include 3.2975 - set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64 3.2976 - </pre> 3.2977 - <strong><a name="llvmgcc">OS X Lion 10.7.3: LLVM GCC</a></strong> 3.2978 - <blockquote> 3.2979 - LLVM GCC is bundled with XCode. The version should be at least 4.2.1. 3.2980 + <code>bash ./configure</code> 3.2981 + <br> 3.2982 + <code>make</code> 3.2983 </blockquote> 3.2984 </blockquote> 3.2985 - <!-- ------------------------------------------------------ --> 3.2986 - <h4><a name="zip">Zip and Unzip</a></h4> 3.2987 + 3.2988 + </blockquote> <!-- Appendix B --> 3.2989 + 3.2990 + <!-- ====================================================== --> 3.2991 + <hr> 3.2992 + <h2><a name="buildenvironments">Appendix C: Build Environments</a></h2> 3.2993 + <blockquote> 3.2994 + 3.2995 + <h3><a name="MBE">Minimum Build Environments</a></h3> 3.2996 <blockquote> 3.2997 - Version 2.2 (November 3rd 1997) or newer of the zip utility 3.2998 - and version 5.12 or newer of the unzip utility is needed 3.2999 - to build the JDK. 3.3000 - With Solaris, Linux, and Windows CYGWIN, the zip and unzip 3.3001 - utilities installed on the system should be fine. 3.3002 - Information and the source code for 3.3003 - ZIP.EXE and UNZIP.EXE is available on the 3.3004 - <a href="http://www.info-zip.org" 3.3005 - target="_blank">info-zip web site</a>. 3.3006 + This file often describes specific requirements for what we 3.3007 + call the 3.3008 + "minimum build environments" (MBE) for this 3.3009 + specific release of the JDK. 3.3010 + What is listed below is what the Oracle Release 3.3011 + Engineering Team will use to build the Oracle JDK product. 3.3012 + Building with the MBE will hopefully generate the most compatible 3.3013 + bits that install on, and run correctly on, the most variations 3.3014 + of the same base OS and hardware architecture. 3.3015 + In some cases, these represent what is often called the 3.3016 + least common denominator, but each Operating System has different 3.3017 + aspects to it. 3.3018 + <p> 3.3019 + In all cases, the Bootstrap JDK version minimum is critical, 3.3020 + we cannot guarantee builds will work with older Bootstrap JDK's. 3.3021 + Also in all cases, more RAM and more processors is better, 3.3022 + the minimums listed below are simply recommendations. 3.3023 + <p> 3.3024 + With Solaris and Mac OS X, the version listed below is the 3.3025 + oldest release we can guarantee builds and works, and the 3.3026 + specific version of the compilers used could be critical. 3.3027 + <p> 3.3028 + With Windows the critical aspect is the Visual Studio compiler 3.3029 + used, which due to it's runtime, generally dictates what Windows 3.3030 + systems can do the builds and where the resulting bits can 3.3031 + be used.<br> 3.3032 + <b>NOTE: We expect a change here off these older Windows OS releases 3.3033 + and to a 'less older' one, probably Windows 2008R2 X64.</b> 3.3034 + <p> 3.3035 + With Linux, it was just a matter of picking a 3.3036 + stable distribution that is a good representative for Linux 3.3037 + in general.<br> 3.3038 + <b>NOTE: We expect a change here from Fedora 9 to something else, 3.3039 + but it has not been completely determined yet, possibly 3.3040 + Ubuntu 12.04 X64, unbiased community feedback would be welcome on 3.3041 + what a good choice would be here.</b> 3.3042 + <p> 3.3043 + It is understood that most developers will NOT be using these 3.3044 + specific versions, and in fact creating these specific versions 3.3045 + may be difficult due to the age of some of this software. 3.3046 + It is expected that developers are more often using the more 3.3047 + recent releases and distributions of these operating systems. 3.3048 + <p> 3.3049 + Compilation problems with newer or different C/C++ compilers is a 3.3050 + common problem. 3.3051 + Similarly, compilation problems related to changes to the 3.3052 + <code>/usr/include</code> or system header files is also a 3.3053 + common problem with older, newer, or unreleased OS versions. 3.3054 + Please report these types of problems as bugs so that they 3.3055 + can be dealt with accordingly. 3.3056 + </p> 3.3057 + <table border="1"> 3.3058 + <thead> 3.3059 + <tr> 3.3060 + <th>Base OS and Architecture</th> 3.3061 + <th>OS</th> 3.3062 + <th>C/C++ Compiler</th> 3.3063 + <th>Bootstrap JDK</th> 3.3064 + <th>Processors</th> 3.3065 + <th>RAM Minimum</th> 3.3066 + <th>DISK Needs</th> 3.3067 + </tr> 3.3068 + </thead> 3.3069 + <tbody> 3.3070 + <tr> 3.3071 + <td>Linux X86 (32-bit) and X64 (64-bit)</td> 3.3072 + <td>Fedora 9</td> 3.3073 + <td>gcc 4.3 </td> 3.3074 + <td>JDK 7u7</td> 3.3075 + <td>2 or more</td> 3.3076 + <td>1 GB</td> 3.3077 + <td>6 GB</td> 3.3078 + </tr> 3.3079 + <tr> 3.3080 + <td>Solaris SPARC (32-bit) and SPARCV9 (64-bit)</td> 3.3081 + <td>Solaris 10 Update 6</td> 3.3082 + <td>Studio 12 Update 1 + patches</td> 3.3083 + <td>JDK 7u7</td> 3.3084 + <td>4 or more</td> 3.3085 + <td>4 GB</td> 3.3086 + <td>8 GB</td> 3.3087 + </tr> 3.3088 + <tr> 3.3089 + <td>Solaris X86 (32-bit) and X64 (64-bit)</td> 3.3090 + <td>Solaris 10 Update 6</td> 3.3091 + <td>Studio 12 Update 1 + patches</td> 3.3092 + <td>JDK 7u7</td> 3.3093 + <td>4 or more</td> 3.3094 + <td>4 GB</td> 3.3095 + <td>8 GB</td> 3.3096 + </tr> 3.3097 + <tr> 3.3098 + <td>Windows X86 (32-bit)</td> 3.3099 + <td>Windows XP</td> 3.3100 + <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 3.3101 + <td>JDK 7u7</td> 3.3102 + <td>2 or more</td> 3.3103 + <td>2 GB</td> 3.3104 + <td>6 GB</td> 3.3105 + </tr> 3.3106 + <tr> 3.3107 + <td>Windows X64 (64-bit)</td> 3.3108 + <td>Windows Server 2003 - Enterprise x64 Edition</td> 3.3109 + <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 3.3110 + <td>JDK 7u7</td> 3.3111 + <td>2 or more</td> 3.3112 + <td>2 GB</td> 3.3113 + <td>6 GB</td> 3.3114 + </tr> 3.3115 + <tr> 3.3116 + <td>Mac OS X X64 (64-bit)</td> 3.3117 + <td>Mac OS X 10.7 "Lion"</td> 3.3118 + <td>XCode 4.5.2 or newer</td> 3.3119 + <td>JDK 7u7</td> 3.3120 + <td>2 or more</td> 3.3121 + <td>4 GB</td> 3.3122 + <td>6 GB</td> 3.3123 + </tr> 3.3124 + </tbody> 3.3125 + </table> 3.3126 </blockquote> 3.3127 - <!-- ------------------------------------------------------ --> 3.3128 - <h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris & Linux)</a></h4> 3.3129 + 3.3130 + <!-- ====================================================== --> 3.3131 + <hr> 3.3132 + <h3><a name="SDBE">Specific Developer Build Environments</a></h3> 3.3133 <blockquote> 3.3134 - <strong>Solaris:</strong> 3.3135 - CUPS header files are required for building the 3.3136 - OpenJDK on Solaris. 3.3137 - The Solaris header files can be obtained by installing 3.3138 - the package <strong>SFWcups</strong> from the Solaris Software 3.3139 - Companion CD/DVD, these often will be installed into 3.3140 - <tt>/opt/sfw/cups</tt>. 3.3141 + We won't be listing all the possible environments, but 3.3142 + we will try to provide what information we have available to us. 3.3143 <p> 3.3144 - <strong>Linux:</strong> 3.3145 - CUPS header files are required for building the 3.3146 - OpenJDK on Linux. 3.3147 - The Linux header files are usually available from a "cups" 3.3148 - development package, it's recommended that you try and use 3.3149 - the package provided by the particular version of Linux that 3.3150 - you are using. 3.3151 - <p> 3.3152 - The CUPS header files can always be downloaded from 3.3153 - <a href="http://www.cups.org" target="_blank">www.cups.org</a>. 3.3154 - The variable 3.3155 - <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt> 3.3156 - can be used to override the default location of the 3.3157 - CUPS Header files. 3.3158 + <strong>NOTE: The community can help out by updating 3.3159 + this part of the document. 3.3160 + </strong> 3.3161 + 3.3162 + <h4><a name="fedora">Fedora</a></h4> 3.3163 + <blockquote> 3.3164 + After installing the latest 3.3165 + <a href="http://fedoraproject.org">Fedora</a> 3.3166 + you need to install several build dependencies. 3.3167 + The simplest way to do it is to execute the 3.3168 + following commands as user <code>root</code>: 3.3169 + <blockquote> 3.3170 + <code>yum-builddep java-1.7.0-openjdk</code> 3.3171 + <br> 3.3172 + <code>yum install gcc gcc-c++</code> 3.3173 + </blockquote> 3.3174 + <p> 3.3175 + In addition, it's necessary to set a few environment 3.3176 + variables for the build: 3.3177 + <blockquote> 3.3178 + <code>export LANG=C</code> 3.3179 + <br> 3.3180 + <code>export PATH="/usr/lib/jvm/java-openjdk/bin:${PATH}"</code> 3.3181 + </blockquote> 3.3182 + </blockquote> 3.3183 + 3.3184 + 3.3185 + <h4><a name="centos">CentOS 5.5</a></h4> 3.3186 + <blockquote> 3.3187 + After installing 3.3188 + <a href="http://www.centos.org/">CentOS 5.5</a> 3.3189 + you need to make sure you have 3.3190 + the following Development bundles installed: 3.3191 + <blockquote> 3.3192 + <ul> 3.3193 + <li>Development Libraries</li> 3.3194 + <li>Development Tools</li> 3.3195 + <li>Java Development</li> 3.3196 + <li>X Software Development (Including XFree86-devel)</li> 3.3197 + </ul> 3.3198 + </blockquote> 3.3199 + <p> 3.3200 + Plus the following packages: 3.3201 + <blockquote> 3.3202 + <ul> 3.3203 + <li>cups devel: Cups Development Package</li> 3.3204 + <li>alsa devel: Alsa Development Package</li> 3.3205 + <li>Xi devel: libXi.so Development Package</li> 3.3206 + </ul> 3.3207 + </blockquote> 3.3208 + <p> 3.3209 + The freetype 2.3 packages don't seem to be available, 3.3210 + but the freetype 2.3 sources can be downloaded, built, 3.3211 + and installed easily enough from 3.3212 + <a href="http://downloads.sourceforge.net/freetype"> 3.3213 + the freetype site</a>. 3.3214 + Build and install with something like: 3.3215 + <blockquote> 3.3216 + <code>bash ./configure</code> 3.3217 + <br> 3.3218 + <code>make</code> 3.3219 + <br> 3.3220 + <code>sudo -u root make install</code> 3.3221 + </blockquote> 3.3222 + <p> 3.3223 + Mercurial packages could not be found easily, but a Google 3.3224 + search should find ones, and they usually include Python if 3.3225 + it's needed. 3.3226 + </blockquote> 3.3227 + 3.3228 + <h4><a name="debian">Debian 5.0 (Lenny)</a></h4> 3.3229 + <blockquote> 3.3230 + After installing <a href="http://debian.org">Debian</a> 5 3.3231 + you need to install several build dependencies. 3.3232 + The simplest way to install the build dependencies is to 3.3233 + execute the following commands as user <code>root</code>: 3.3234 + <blockquote> 3.3235 + <code>aptitude build-dep openjdk-7</code> 3.3236 + <br> 3.3237 + <code>aptitude install openjdk-7-jdk libmotif-dev</code> 3.3238 + </blockquote> 3.3239 + <p> 3.3240 + In addition, it's necessary to set a few environment 3.3241 + variables for the build: 3.3242 + <blockquote> 3.3243 + <code>export LANG=C</code> 3.3244 + <br> 3.3245 + <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code> 3.3246 + </blockquote> 3.3247 + </blockquote> 3.3248 + 3.3249 + <h4><a name="ubuntu">Ubuntu 12.04</a></h4> 3.3250 + <blockquote> 3.3251 + After installing <a href="http://ubuntu.org">Ubuntu</a> 12.04 3.3252 + you need to install several build dependencies. The simplest 3.3253 + way to do it is to execute the following commands: 3.3254 + <blockquote> 3.3255 + <code>sudo aptitude build-dep openjdk-7</code> 3.3256 + <br> 3.3257 + <code>sudo aptitude install openjdk-7-jdk</code> 3.3258 + </blockquote> 3.3259 + <p> 3.3260 + In addition, it's necessary to set a few environment 3.3261 + variables for the build: 3.3262 + <blockquote> 3.3263 + <code>export LANG=C</code> 3.3264 + <br> 3.3265 + <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code> 3.3266 + </blockquote> 3.3267 + </blockquote> 3.3268 + 3.3269 + <h4><a name="opensuse">OpenSUSE 11.1</a></h4> 3.3270 + <blockquote> 3.3271 + After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 3.3272 + you need to install several build dependencies. 3.3273 + The simplest way to install the build dependencies is to 3.3274 + execute the following commands: 3.3275 + <blockquote> 3.3276 + <code>sudo zypper source-install -d java-1_7_0-openjdk</code> 3.3277 + <br> 3.3278 + <code>sudo zypper install make</code> 3.3279 + </blockquote> 3.3280 + <p> 3.3281 + In addition, it is necessary to set a few environment 3.3282 + variables for the build: 3.3283 + <blockquote> 3.3284 + <code>export LANG=C</code> 3.3285 + <br> 3.3286 + <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:$[PATH}"</code> 3.3287 + </blockquote> 3.3288 + <p> 3.3289 + Finally, you need to unset the <code>JAVA_HOME</code> 3.3290 + environment variable: 3.3291 + <blockquote> 3.3292 + <code>export -n JAVA_HOME</code> 3.3293 + </blockquote> 3.3294 + </blockquote> 3.3295 + 3.3296 + <h4><a name="mandriva">Mandriva Linux One 2009 Spring</a></h4> 3.3297 + <blockquote> 3.3298 + After installing <a href="http://mandriva.org">Mandriva</a> 3.3299 + Linux One 2009 Spring 3.3300 + you need to install several build dependencies. 3.3301 + The simplest way to install the build dependencies is to 3.3302 + execute the following commands as user <code>root</code>: 3.3303 + <blockquote> 3.3304 + <code>urpmi java-1.7.0-openjdk-devel make gcc gcc-c++ 3.3305 + freetype-devel zip unzip libcups2-devel libxrender1-devel 3.3306 + libalsa2-devel libstc++-static-devel libxtst6-devel 3.3307 + libxi-devel</code> 3.3308 + </blockquote> 3.3309 + <p> 3.3310 + In addition, it is necessary to set a few environment 3.3311 + variables for the build: 3.3312 + <blockquote> 3.3313 + <code>export LANG=C</code> 3.3314 + <br> 3.3315 + <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:${PATH}"</code> 3.3316 + </blockquote> 3.3317 + </blockquote> 3.3318 + 3.3319 + <h4><a name="opensolaris">OpenSolaris 2009.06</a></h4> 3.3320 + <blockquote> 3.3321 + After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 3.3322 + you need to install several build dependencies. 3.3323 + The simplest way to install the build dependencies is to 3.3324 + execute the following commands: 3.3325 + <blockquote> 3.3326 + <code>pfexec pkg install SUNWgmake SUNWj7dev 3.3327 + sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl 3.3328 + SUNWxorg-headers SUNWaudh SUNWfreetype2</code> 3.3329 + </blockquote> 3.3330 + <p> 3.3331 + In addition, it is necessary to set a few environment 3.3332 + variables for the build: 3.3333 + <blockquote> 3.3334 + <code>export LANG=C</code> 3.3335 + <br> 3.3336 + <code>export PATH="/opt/SunStudioExpress/bin:${PATH}"</code> 3.3337 + </blockquote> 3.3338 + </blockquote> 3.3339 + 3.3340 </blockquote> 3.3341 - <!-- ------------------------------------------------------ --> 3.3342 - <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4> 3.3343 - <blockquote> 3.3344 - <p> 3.3345 - <strong>Solaris:</strong> 3.3346 - XRender header files are required for building the 3.3347 - OpenJDK on Solaris. 3.3348 - The XRender header file is included with the other X11 header files 3.3349 - in the package <strong>SFWxwinc</strong> on new enough versions of 3.3350 - Solaris and will be installed in 3.3351 - <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> or 3.3352 - <tt>/usr/openwin/share/include/X11/extensions/Xrender.h</tt> 3.3353 - </p><p> 3.3354 - <strong>Linux:</strong> 3.3355 - XRender header files are required for building the 3.3356 - OpenJDK on Linux. 3.3357 - The Linux header files are usually available from a "Xrender" 3.3358 - development package, it's recommended that you try and use 3.3359 - the package provided by the particular distribution of Linux that 3.3360 - you are using. 3.3361 - </p> 3.3362 - </blockquote> 3.3363 - <!-- ------------------------------------------------------ --> 3.3364 - <h4><a name="freetype">FreeType 2</a></h4> 3.3365 - <blockquote> 3.3366 - Version 2.3 or newer of FreeType is required for building the OpenJDK. 3.3367 - On Unix systems required files can be available as part of your 3.3368 - distribution (while you still may need to upgrade them). 3.3369 - Note that you need development version of package that 3.3370 - includes both FreeType library and header files. 3.3371 - <p> 3.3372 - You can always download latest FreeType version from the 3.3373 - <a href="http://www.freetype.org" target="_blank">FreeType website</a>. 3.3374 - <p> 3.3375 - Makefiles will try to pick FreeType from /usr/lib and /usr/include. 3.3376 - In case it is installed elsewhere you will need to set environment 3.3377 - variables 3.3378 - <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt> 3.3379 - and 3.3380 - <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt> 3.3381 - to refer to place where library and header files are installed. 3.3382 - <p> 3.3383 - Building the freetype 2 libraries from scratch is also possible, 3.3384 - however on Windows refer to the 3.3385 - <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> 3.3386 - Windows FreeType DLL build instructions</a>. 3.3387 - <p> 3.3388 - Note that by default FreeType is built with byte code hinting 3.3389 - support disabled due to licensing restrictions. 3.3390 - In this case, text appearance and metrics are expected to 3.3391 - differ from Sun's official JDK build. 3.3392 - See 3.3393 - <a href="http://freetype.sourceforge.net/freetype2/index.html"> 3.3394 - the SourceForge FreeType2 Home Page 3.3395 - </a> 3.3396 - for more information. 3.3397 - </blockquote> 3.3398 - <!-- ------------------------------------------------------ --> 3.3399 - <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4> 3.3400 - <blockquote> 3.3401 - <strong>Linux only:</strong> 3.3402 - Version 0.9.1 or newer of the ALSA files are 3.3403 - required for building the OpenJDK on Linux. 3.3404 - These Linux files are usually available from an "alsa" 3.3405 - of "libasound" 3.3406 - development package, it's highly recommended that you try and use 3.3407 - the package provided by the particular version of Linux that 3.3408 - you are using. 3.3409 - The makefiles will check this emit a sanity error if it is 3.3410 - missing or the wrong version. 3.3411 - <p> 3.3412 - In particular, older Linux systems will likely not have the 3.3413 - right version of ALSA installed, for example 3.3414 - Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently 3.3415 - recent ALSA distribution. 3.3416 - On rpm-based systems, you can see if ALSA is installed by 3.3417 - running this command: 3.3418 - <pre> 3.3419 - <tt>rpm -qa | grep alsa</tt> 3.3420 - </pre> 3.3421 - Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed. 3.3422 - <p> 3.3423 - If your distribution does not come with ALSA, and you can't 3.3424 - find ALSA packages built for your particular system, 3.3425 - you can try to install the pre-built ALSA rpm packages from 3.3426 - <a href="http://www.freshrpms.net/" target="_blank"> 3.3427 - <tt>www.freshrpms.net</tt></a>. 3.3428 - Note that installing a newer ALSA could 3.3429 - break sound output if an older version of ALSA was previously 3.3430 - installed on the system, but it will enable JDK compilation. 3.3431 - <blockquote> 3.3432 - Installation: execute as root<br> 3.3433 - [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br> 3.3434 - [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br> 3.3435 - Uninstallation:<br> 3.3436 - [i586]: <code>rpm -ev alsa-lib-devel-0.9.1-rh61</code><br> 3.3437 - [x64]:<code>rpm -ev alsa-lib-devel-0.9.8-amd64</code><br> 3.3438 - Make sure that you do not link to the static library 3.3439 - (<tt>libasound.a</tt>), 3.3440 - by verifying that the dynamic library (<tt>libasound.so</tt>) is 3.3441 - correctly installed in <tt>/usr/lib</tt>. 3.3442 - </blockquote> 3.3443 - As a last resort you can go to the 3.3444 - <a href="http://www.alsa-project.org" target="_blank"> 3.3445 - Advanced Linux Sound Architecture Site</a> and build it from 3.3446 - source. 3.3447 - <blockquote> 3.3448 - Download driver and library 3.3449 - source tarballs from 3.3450 - <a href="http://www.alsa-project.org" target="_blank">ALSA's homepage</a>. 3.3451 - As root, execute the following 3.3452 - commands (you may need to adapt the version number): 3.3453 - <pre> 3.3454 - <tt> 3.3455 - $ tar xjf alsa-driver-0.9.1.tar.bz2 3.3456 - $ cd alsa-driver-0.9.1 3.3457 - $ ./configure 3.3458 - $ make install 3.3459 - $ cd .. 3.3460 - $ tar xjf alsa-lib-0.9.1.tar.bz2 3.3461 - $ cd alsa-lib-0.9.1 3.3462 - $ ./configure 3.3463 - $ make install 3.3464 - </tt> 3.3465 - </pre> 3.3466 - Should one of the above steps fail, refer to the documentation on 3.3467 - ALSA's home page. 3.3468 - </blockquote> 3.3469 - Note that this is a minimum install that enables 3.3470 - building the JDK platform. To actually use ALSA sound drivers, more 3.3471 - steps are necessary as outlined in the documentation on ALSA's homepage. 3.3472 - <p> 3.3473 - ALSA can be uninstalled by executing <tt>make uninstall</tt> first in 3.3474 - the <tt>alsa-lib-0.9.1</tt> directory and then in 3.3475 - <tt>alsa-driver-0.9.1</tt>. 3.3476 - </blockquote> 3.3477 - There are no ALT* variables to change the assumed locations of ALSA, 3.3478 - the makefiles will expect to find the ALSA include files and library at: 3.3479 - <tt>/usr/include/alsa</tt> and <tt>/usr/lib/libasound.so</tt>. 3.3480 - </blockquote> 3.3481 - <!-- ------------------------------------------------------ --> 3.3482 - <h4>Windows Specific Dependencies</h4> 3.3483 - <blockquote> 3.3484 - <strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong> 3.3485 - <blockquote> 3.3486 - The OpenJDK requires access to a set of unix command tools 3.3487 - on Windows which can be supplied by 3.3488 - <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. 3.3489 - <p> 3.3490 - The OpenJDK build requires CYGWIN version 1.5.12 or newer. 3.3491 - Information about CYGWIN can 3.3492 - be obtained from the CYGWIN website at 3.3493 - <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>. 3.3494 - <p> 3.3495 - By default CYGWIN doesn't install all the tools required for building 3.3496 - the OpenJDK. 3.3497 - Along with the default installation, you need to install 3.3498 - the following tools. 3.3499 - <blockquote> 3.3500 - <table border="1"> 3.3501 - <thead> 3.3502 - <tr> 3.3503 - <td>Binary Name</td> 3.3504 - <td>Category</td> 3.3505 - <td>Package</td> 3.3506 - <td>Description</td> 3.3507 - </tr> 3.3508 - </thead> 3.3509 - <tbody> 3.3510 - <tr> 3.3511 - <td>ar.exe</td> 3.3512 - <td>Devel</td> 3.3513 - <td>binutils</td> 3.3514 - <td>The GNU assembler, linker and binary 3.3515 - utilities</td> 3.3516 - </tr> 3.3517 - <tr> 3.3518 - <td>make.exe</td> 3.3519 - <td>Devel</td> 3.3520 - <td>make</td> 3.3521 - <td>The GNU version of the 'make' utility built for CYGWIN.<br> 3.3522 - <b>NOTE</b>: the Cygwin make can not be used to build the 3.3523 - OpenJDK. You only need it to build your own version of make 3.3524 - (see <a href="#gmake">the GNU make section</a>)</td> 3.3525 - </tr> 3.3526 - <tr> 3.3527 - <td>m4.exe</td> 3.3528 - <td>Interpreters</td> 3.3529 - <td>m4</td> 3.3530 - <td>GNU implementation of the traditional Unix macro 3.3531 - processor</td> 3.3532 - </tr> 3.3533 - <tr> 3.3534 - <td>cpio.exe</td> 3.3535 - <td>Utils</td> 3.3536 - <td>cpio</td> 3.3537 - <td>A program to manage archives of files</td> 3.3538 - </tr> 3.3539 - <tr> 3.3540 - <td>gawk.exe</td> 3.3541 - <td>Utils</td> 3.3542 - <td>awk</td> 3.3543 - <td>Pattern-directed scanning and processing language</td> 3.3544 - </tr> 3.3545 - <tr> 3.3546 - <td>file.exe</td> 3.3547 - <td>Utils</td> 3.3548 - <td>file</td> 3.3549 - <td>Determines file type using 'magic' numbers</td> 3.3550 - </tr> 3.3551 - <tr> 3.3552 - <td>zip.exe</td> 3.3553 - <td>Archive</td> 3.3554 - <td>zip</td> 3.3555 - <td>Package and compress (archive) files</td> 3.3556 - </tr> 3.3557 - <tr> 3.3558 - <td>unzip.exe</td> 3.3559 - <td>Archive</td> 3.3560 - <td>unzip</td> 3.3561 - <td>Extract compressed files in a ZIP archive</td> 3.3562 - </tr> 3.3563 - <tr> 3.3564 - <td>free.exe</td> 3.3565 - <td>System</td> 3.3566 - <td>procps</td> 3.3567 - <td>Display amount of free and used memory in the system</td> 3.3568 - </tr> 3.3569 - </tbody> 3.3570 - </table> 3.3571 - </blockquote> 3.3572 - <p> 3.3573 - Note that the CYGWIN software can conflict with other non-CYGWIN 3.3574 - software on your Windows system. 3.3575 - CYGWIN provides a 3.3576 - <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for 3.3577 - known issues and problems, of particular interest is the 3.3578 - section on 3.3579 - <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 3.3580 - BLODA (applications that interfere with CYGWIN)</a>. 3.3581 - <p> 3.3582 - <b>WARNING:</b> 3.3583 - Be very careful with <b><tt>link.exe</tt></b>, it will conflict 3.3584 - with the Visual Studio version. You need the Visual Studio 3.3585 - version of <tt>link.exe</tt>, not the CYGWIN one. 3.3586 - So it's important that the Visual Studio paths in PATH preceed 3.3587 - the CYGWIN path <tt>/usr/bin</tt>. 3.3588 - </blockquote> 3.3589 - <strong> Minimalist GNU for Windows (<a name="msys">MinGW/MSYS</a>)</strong> 3.3590 - <blockquote> 3.3591 - Alternatively, the set of unix command tools for the OpenJDK build on 3.3592 - Windows can be supplied by 3.3593 - <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>. 3.3594 - <p> 3.3595 - In addition to the tools which will be installed by default, you have 3.3596 - to manually install the <tt>msys-zip</tt> and <tt>msys-unzip</tt> packages. 3.3597 - This can be easily done with the MinGW command line installer:<br/> 3.3598 - <tt><br/> 3.3599 - mingw-get.exe install msys-zip<br/> 3.3600 - mingw-get.exe install msys-unzip<br/> 3.3601 - </tt> 3.3602 - </p> 3.3603 - </blockquote> 3.3604 - <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong> 3.3605 - <blockquote> 3.3606 - Microsoft DirectX 9.0 SDK (Summer 2004) 3.3607 - headers are required for building 3.3608 - OpenJDK. 3.3609 - This SDK can be downloaded from 3.3610 - <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> 3.3611 - Microsoft DirectX 9.0 SDK (Summer 2004)</a>. 3.3612 - If the link above becomes obsolete, the SDK can be found from 3.3613 - <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> 3.3614 - (search with "DirectX 9.0 SDK Update Summer 2004"). 3.3615 - The location of this SDK can be set with 3.3616 - <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> 3.3617 - but it's normally found via the DirectX environment variable 3.3618 - <tt>DXSDK_DIR</tt>. 3.3619 - </blockquote> 3.3620 - <strong><a name="msvcrNN"><tt>MSVCR100.DLL</tt></a></strong> 3.3621 - <blockquote> 3.3622 - The OpenJDK build requires access to a redistributable 3.3623 - <tt>MSVCR100.DLL</tt>. 3.3624 - This is usually picked up automatically from the redist 3.3625 - directories of Visual Studio 2010. 3.3626 - If this cannot be found set the 3.3627 - <a href="#ALT_MSVCRNN_DLL_PATH"><tt>ALT_MSVCRNN_DLL_PATH</tt></a> 3.3628 - variable to the location of this file. 3.3629 - <p> 3.3630 - </blockquote> 3.3631 - </blockquote> 3.3632 - <!-- ------------------------------------------------------ --> 3.3633 + 3.3634 + </blockquote> <!-- Appendix C --> 3.3635 + 3.3636 + <!-- ====================================================== --> 3.3637 + 3.3638 + <!-- Leave out Appendix D -- 3.3639 + 3.3640 +<hr> 3.3641 +<h2><a name="mapping">Appendix D: Mapping Old to New</a></h2> 3.3642 +<blockquote> 3.3643 + <p>This table will help you convert some idioms of the old build 3.3644 + system to the new build system.</p> 3.3645 + <table summary="Cheat sheet for converting from old to new build system"> 3.3646 + <tr valign="top"> 3.3647 + <th>In the old build system, you used to...</th> 3.3648 + <th>In the new build system, you should ...</th> 3.3649 + </tr> 3.3650 + <tr valign="top"> 3.3651 + <td>run <code>make sanity</code></td> 3.3652 + <td>run <code>bash ./configure</code></td> 3.3653 + </tr> 3.3654 + <tr valign="top"> 3.3655 + <td>set <code>ALT_OUTPUTDIR=build/my-special-output</code></td> 3.3656 + <td>before building the first time: 3.3657 + <br> 3.3658 + <code>cd build/my-special-output</code> 3.3659 + <br> 3.3660 + <code>bash ../../configure</code> 3.3661 + <br> 3.3662 + to build: 3.3663 + <br> 3.3664 + <code>cd build/my-special-output</code> 3.3665 + <br> 3.3666 + <code>make</code> 3.3667 + </td> 3.3668 + </tr> 3.3669 + <tr valign="top"> 3.3670 + <td>set <code>ALT_BOOTDIR=/opt/java/jdk7</code></td> 3.3671 + <td>run <code>configure --with-boot-jdk=/opt/java/jdk7</code></td> 3.3672 + </tr> 3.3673 + <tr valign="top"> 3.3674 + <td>run <code>make ARCH_DATA_MODEL=32</code></td> 3.3675 + <td>run <code>configure --with-target-bits=32</code></td> 3.3676 + </tr> 3.3677 + <tr valign="top"> 3.3678 + <td>set <code>BUILD_CLIENT_ONLY=true</code></td> 3.3679 + <td>run <code>configure --with-jvm-variants=client</code></td> 3.3680 + </tr> 3.3681 + <tr valign="top"> 3.3682 + <td>set <code>ALT_FREETYPE_LIB_PATH=/opt/freetype/lib</code> 3.3683 + and <code>ALT_FREETYPE_HEADERS_PATH=/opt/freetype/include</code></td> 3.3684 + <td>run <code>configure --with-freetype=/opt/freetype</code></td> 3.3685 + </tr> 3.3686 + <tr valign="top"> 3.3687 + <td>set <code>ALT_CUPS_HEADERS_PATH=/opt/cups/include</code></td> 3.3688 + <td>run <code>configure --with-cups=/opt/cups</code></td> 3.3689 + </tr> 3.3690 + <tr valign="top"> 3.3691 + <td>set <code>ALT_OPENWIN_HOME=/opt/X11R6</code></td> 3.3692 + <td>run <code>configure --with-x=/opt/X11R6</code></td> 3.3693 + </tr> 3.3694 + <tr valign="top"> 3.3695 + <td>set <code>ALT_MSVCRNN_DLL_PATH=c:/vc_redist</code></td> 3.3696 + <td>run <code>configure --with-msvcr100dll=/cygdrive/c/vc_redist</code></td> 3.3697 + </tr> 3.3698 + <tr valign="top"> 3.3699 + <td>set <code>ALT_COMPILER_PATH=/opt/my-gcc/bin/gcc</code></td> 3.3700 + <td>run <code>CC=/opt/my-gcc/bin/gcc configure</code> 3.3701 + or <code>CXX=/opt/my-gcc/bin/g++ configure</code> 3.3702 + </td> 3.3703 + </tr> 3.3704 + <tr valign="top"> 3.3705 + <td>set <code>BUILD_HEADLESS_ONLY=true</code></td> 3.3706 + <td>run <code>configure --disable-headful</code></td> 3.3707 + </tr> 3.3708 + <tr valign="top"> 3.3709 + <td>set <code>ALT_DEVTOOLS_PATH=/opt/mytools</code></td> 3.3710 + <td>just run <code>configure</code>, 3.3711 + your tools should be detected automatically. 3.3712 + If you have an unusual configuration, 3.3713 + add the tools directory to your <code>PATH</code>. 3.3714 + </td> 3.3715 + </tr> 3.3716 + <tr valign="top"> 3.3717 + <td>set <code>ALT_DROPS_DIR=/home/user/dropdir</code></td> 3.3718 + <td>source drops are not used anymore</td> 3.3719 + </tr> 3.3720 + <tr valign="top"> 3.3721 + <td>set <code>USE_ONLY_BOOTDIR_TOOLS=true</code></td> 3.3722 + <td>not needed, <code>configure</code> should always do the Right Thing automatically</td> 3.3723 + </tr> 3.3724 + <tr valign="top"> 3.3725 + <td>set <code>ALT_JDK_IMPORT_PATH=/opt/java/import-jdk</code> 3.3726 + or <code>ALT_BUILD_JDK_IMPORT_PATH=/opt/java/import-jdk</code> 3.3727 + </td> 3.3728 + <td>Importing JDKs is no longer possible, 3.3729 + but hotspot can be imported using 3.3730 + <code>--with-import-hotspot</code>. 3.3731 + Documentation on how to achieve a 3.3732 + similar solution will come soon! 3.3733 + </td> 3.3734 + </tr> 3.3735 + <tr valign="top"> 3.3736 + <td>set <code>EXTRA_CFLAGS=-Xfoo</code></td> 3.3737 + <td>run <code>CFLAGS=-Xfoo configure</code></td> 3.3738 + </tr> 3.3739 + <tr valign="top"> 3.3740 + <td>set <code>CROSS_COMPILE_ARCH=i586</code></td> 3.3741 + <td>see <a href="#sec7.3"> section 7.3, Cross-compilation</a></td> 3.3742 + </tr> 3.3743 + <tr valign="top"> 3.3744 + <td>set <code>SKIP_BOOT_CYCLE=false</code></td> 3.3745 + <td>Run <code>make bootcycle-images</code>.</td> 3.3746 + </tr> 3.3747 + </table> 3.3748 + 3.3749 + <h3><a name="variables">Environment/Make Variables</a></h3> 3.3750 + <p> 3.3751 + Some of the 3.3752 + environment or make variables (just called <b>variables</b> in this 3.3753 + document) that can impact the build are: 3.3754 + <blockquote> 3.3755 + <dl> 3.3756 + <dt><a name="path"><code>PATH</code></a> </dt> 3.3757 + <dd>Typically you want to set the <code>PATH</code> to include: 3.3758 + <ul> 3.3759 + <li>The location of the GNU make binary</li> 3.3760 + <li>The location of the Bootstrap JDK <code>java</code> 3.3761 + (see <a href="#bootjdk">Bootstrap JDK</a>)</li> 3.3762 + <li>The location of the C/C++ compilers 3.3763 + (see <a href="#compilers"><code>compilers</code></a>)</li> 3.3764 + <li>The location or locations for the Unix command utilities 3.3765 + (e.g. <code>/usr/bin</code>)</li> 3.3766 + </ul> 3.3767 + </dd> 3.3768 + <dt><code>MILESTONE</code> </dt> 3.3769 + <dd> 3.3770 + The milestone name for the build (<i>e.g.</i>"beta"). 3.3771 + The default value is "internal". 3.3772 + </dd> 3.3773 + <dt><code>BUILD_NUMBER</code> </dt> 3.3774 + <dd> 3.3775 + The build number for the build (<i>e.g.</i> "b27"). 3.3776 + The default value is "b00". 3.3777 + </dd> 3.3778 + <dt><a name="arch_data_model"><code>ARCH_DATA_MODEL</code></a></dt> 3.3779 + <dd>The <code>ARCH_DATA_MODEL</code> variable 3.3780 + is used to specify whether the build is to generate 32-bit or 64-bit 3.3781 + binaries. 3.3782 + The Solaris build supports either 32-bit or 64-bit builds, but 3.3783 + Windows and Linux will support only one, depending on the specific 3.3784 + OS being used. 3.3785 + Normally, setting this variable is only necessary on Solaris. 3.3786 + Set <code>ARCH_DATA_MODEL</code> to <code>32</code> for generating 32-bit binaries, 3.3787 + or to <code>64</code> for generating 64-bit binaries. 3.3788 + </dd> 3.3789 + <dt><a name="ALT_BOOTDIR"><code>ALT_BOOTDIR</code></a></dt> 3.3790 + <dd> 3.3791 + The location of the bootstrap JDK installation. 3.3792 + See <a href="#bootjdk">Bootstrap JDK</a> for more information. 3.3793 + You should always install your own local Bootstrap JDK and 3.3794 + always set <code>ALT_BOOTDIR</code> explicitly. 3.3795 + </dd> 3.3796 + <dt><a name="ALT_OUTPUTDIR"><code>ALT_OUTPUTDIR</code></a> </dt> 3.3797 + <dd> 3.3798 + An override for specifying the (absolute) path of where the 3.3799 + build output is to go. 3.3800 + The default output directory will be build/<i>platform</i>. 3.3801 + </dd> 3.3802 + <dt><a name="ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> </dt> 3.3803 + <dd> 3.3804 + The location of the C/C++ compiler. 3.3805 + The default varies depending on the platform. 3.3806 + </dd> 3.3807 + <dt><code><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></code></dt> 3.3808 + <dd> 3.3809 + The location of the <a href="#cacerts">cacerts</a> file. 3.3810 + The default will refer to 3.3811 + <code>jdk/src/share/lib/security/cacerts</code>. 3.3812 + </dd> 3.3813 + <dt><a name="ALT_CUPS_HEADERS_PATH"><code>ALT_CUPS_HEADERS_PATH</code></a> </dt> 3.3814 + <dd> 3.3815 + The location of the CUPS header files. 3.3816 + See <a href="#cups">CUPS information</a> for more information. 3.3817 + If this path does not exist the fallback path is 3.3818 + <code>/usr/include</code>. 3.3819 + </dd> 3.3820 + <dt><a name="ALT_FREETYPE_LIB_PATH"><code>ALT_FREETYPE_LIB_PATH</code></a></dt> 3.3821 + <dd> 3.3822 + The location of the FreeType shared library. 3.3823 + See <a href="#freetype">FreeType information</a> for details. 3.3824 + </dd> 3.3825 + <dt><a name="ALT_FREETYPE_HEADERS_PATH"><code>ALT_FREETYPE_HEADERS_PATH</code></a></dt> 3.3826 + <dd> 3.3827 + The location of the FreeType header files. 3.3828 + See <a href="#freetype">FreeType information</a> for details. 3.3829 + </dd> 3.3830 + <dt><a name="ALT_JDK_DEVTOOLS_PATH"><code>ALT_JDK_DEVTOOLS_PATH</code></a></dt> 3.3831 + <dd> 3.3832 + The default root location of the devtools. 3.3833 + The default value is 3.3834 + <code>$(ALT_SLASH_JAVA)/devtools</code>. 3.3835 + </dd> 3.3836 + <dt><code><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></code> </dt> 3.3837 + <dd> 3.3838 + The location of tools like the 3.3839 + <a href="#zip"><code>zip</code> and <code>unzip</code></a> 3.3840 + binaries, but might also contain the GNU make utility 3.3841 + (<code><i>gmake</i></code>). 3.3842 + So this area is a bit of a grab bag, especially on Windows. 3.3843 + The default value depends on the platform and 3.3844 + Unix Commands being used. 3.3845 + On Linux the default will be 3.3846 + <code>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</code>, 3.3847 + on Solaris 3.3848 + <code>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</code>, 3.3849 + and on Windows with CYGWIN 3.3850 + <code>/usr/bin</code>. 3.3851 + </dd> 3.3852 + <dt><a name="ALT_UNIXCCS_PATH"><code>ALT_UNIXCCS_PATH</code></a></dt> 3.3853 + <dd> 3.3854 + <strong>Solaris only:</strong> 3.3855 + An override for specifying where the Unix CCS 3.3856 + command set are located. 3.3857 + The default location is <code>/usr/ccs/bin</code> 3.3858 + </dd> 3.3859 + <dt><a name="ALT_SLASH_JAVA"><code>ALT_SLASH_JAVA</code></a></dt> 3.3860 + <dd> 3.3861 + The default root location for many of the ALT path locations 3.3862 + of the following ALT variables. 3.3863 + The default value is 3.3864 + <code>"/java"</code> on Solaris and Linux, 3.3865 + <code>"J:"</code> on Windows. 3.3866 + </dd> 3.3867 + 3.3868 + <dt><a name="ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a></dt> 3.3869 + <dd> 3.3870 + The top-level directory of the libraries and include files 3.3871 + for the platform's 3.3872 + graphical programming environment. 3.3873 + The default location is platform specific. 3.3874 + For example, on Linux it defaults to <code>/usr/X11R6/</code>. 3.3875 + </dd> 3.3876 + <dt><strong>Windows specific:</strong></dt> 3.3877 + <dd> 3.3878 + <dl> 3.3879 + <dt><a name="ALT_WINDOWSSDKDIR"><code>ALT_WINDOWSSDKDIR</code></a> </dt> 3.3880 + <dd> 3.3881 + The location of the 3.3882 + Microsoft Windows SDK where some tools will be 3.3883 + located. 3.3884 + The default is whatever WINDOWSSDKDIR is set to 3.3885 + (or WindowsSdkDir) or the path 3.3886 + <br> 3.3887 + <code>c:\Program Files\Microsoft SDKs\Windows\v7.0a</code> 3.3888 + </dd> 3.3889 + <dt><code><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></code> </dt> 3.3890 + <dd> 3.3891 + The location of the 3.3892 + <a href="#dxsdk">Microsoft DirectX 9 SDK</a>. 3.3893 + The default will be to try and use the DirectX environment 3.3894 + variable <code>DXSDK_DIR</code>, 3.3895 + failing that, look in <code>C:/DXSDK</code>. 3.3896 + </dd> 3.3897 + <dt><code><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></code> </dt> 3.3898 + <dd> 3.3899 + The location of the 3.3900 + <a href="#msvcrNN"><code>MSVCR100.DLL</code></a>. 3.3901 + </dd> 3.3902 + </dl> 3.3903 + </dd> 3.3904 + <dt><strong>Cross-Compilation Support:</strong></dt> 3.3905 + <dd> 3.3906 + <dl> 3.3907 + <dt><a name="CROSS_COMPILE_ARCH"><code>CROSS_COMPILE_ARCH</code></a> </dt> 3.3908 + <dd> 3.3909 + Set to the target architecture of a 3.3910 + cross-compilation build. If set, this 3.3911 + variable is used to signify that we are 3.3912 + cross-compiling. The expectation 3.3913 + is that 3.3914 + <a href="#ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> 3.3915 + is set 3.3916 + to point to the cross-compiler and that any 3.3917 + cross-compilation specific flags 3.3918 + are passed using 3.3919 + <a href="#EXTRA_CFLAGS"><code>EXTRA_CFLAGS</code></a>. 3.3920 + The <a href="#ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a> 3.3921 + variable should 3.3922 + also be set to point to the graphical header files 3.3923 + (e.g. X11) provided with 3.3924 + the cross-compiler. 3.3925 + When cross-compiling we skip execution of any demos 3.3926 + etc that may be built, and 3.3927 + also skip binary-file verification. 3.3928 + </dd> 3.3929 + <dt><code><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></code> </dt> 3.3930 + <dd> 3.3931 + Used to pass cross-compilation options to the 3.3932 + cross-compiler. 3.3933 + These are added to the <code>CFLAGS</code> 3.3934 + and <code>CXXFLAGS</code> variables. 3.3935 + </dd> 3.3936 + <dt><code><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></code> </dt> 3.3937 + <dd> 3.3938 + Used primarily for cross-compilation builds 3.3939 + (and always set in that case) 3.3940 + this variable indicates that tools from the 3.3941 + boot JDK should be used during 3.3942 + the build process, not the tools 3.3943 + (<code>javac</code>, <code>javah</code>, <code>jar</code>) 3.3944 + just built (which can't execute on the build host). 3.3945 + </dd> 3.3946 + <dt><code><a name="HOST_CC">HOST_CC</a></code> </dt> 3.3947 + <dd> 3.3948 + The location of the C compiler to generate programs 3.3949 + to run on the build host. 3.3950 + Some parts of the build generate programs that are 3.3951 + then compiled and executed 3.3952 + to produce other parts of the build. Normally the 3.3953 + primary C compiler is used 3.3954 + to do this, but when cross-compiling that would be 3.3955 + the cross-compiler and the 3.3956 + resulting program could not be executed. 3.3957 + On Linux this defaults to <code>/usr/bin/gcc</code>; 3.3958 + on other platforms it must be 3.3959 + set explicitly. 3.3960 + </dd> 3.3961 + </dl> 3.3962 + <dt><strong>Specialized Build Options:</strong></dt> 3.3963 + <dd> 3.3964 + Some build variables exist to support specialized build 3.3965 + environments and/or specialized 3.3966 + build products. Their use is only supported in those contexts: 3.3967 + <dl> 3.3968 + <dt><code><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></code> </dt> 3.3969 + <dd> 3.3970 + Indicates this build will only contain the 3.3971 + Hotspot client VM. In addition to 3.3972 + controlling the Hotspot build target, 3.3973 + it ensures that we don't try to copy 3.3974 + any server VM files/directories, 3.3975 + and defines a default <code>jvm.cfg</code> file 3.3976 + suitable for a client-only environment. 3.3977 + Using this in a 64-bit build will 3.3978 + generate a sanity warning as 64-bit client 3.3979 + builds are not directly supported. 3.3980 + </dd> 3.3981 + <dt><code><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</code> </dt> 3.3982 + <dd> 3.3983 + Used when the build environment has no graphical 3.3984 + capabilities at all. This 3.3985 + excludes building anything that requires graphical 3.3986 + libraries to be available. 3.3987 + </dd> 3.3988 + <dt><code><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</code> </dt> 3.3989 + <dd> 3.3990 + Used to indicate this is a build of the Oracle 3.3991 + Java SE Embedded product. 3.3992 + This will enable the directives included in the 3.3993 + SE-Embedded specific build 3.3994 + files. 3.3995 + </dd> 3.3996 + <dt><code><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></code> </dt> 3.3997 + <dd> 3.3998 + If set to false, disables the use of mmap by the 3.3999 + zip utility. Otherwise, 3.4000 + mmap will be used. 3.4001 + </dd> 3.4002 + <dt><code><a name="COMPRESS_JARS"></a>COMPRESS_JARS</code> </dt> 3.4003 + <dd> 3.4004 + If set to true, causes certain jar files that 3.4005 + would otherwise be built without 3.4006 + compression, to use compression. 3.4007 + </dd> 3.4008 + </dl> 3.4009 + </dd> 3.4010 + </dl> 3.4011 + </blockquote> 3.4012 + 3.4013 +</blockquote> <!-- Appendix D --> 3.4014 + 3.4015 + <!-- ====================================================== --> 3.4016 <hr> 3.4017 - <h2><a name="creating">Creating the Build</a></h2> 3.4018 - <blockquote> 3.4019 - Once a machine is setup to build the OpenJDK, 3.4020 - the steps to create the build are fairly simple. 3.4021 - The various ALT settings can either be made into variables 3.4022 - or can be supplied on the 3.4023 - <a href="#gmake"><tt><i>gmake</i></tt></a> 3.4024 - command. 3.4025 - <ol> 3.4026 - <li>Use the sanity rule to double check all the ALT settings: 3.4027 - <blockquote> 3.4028 - <tt> 3.4029 - <i>gmake</i> 3.4030 - sanity 3.4031 - [ARCH_DATA_MODEL=<i>32 or 64</i>] 3.4032 - [other "ALT_" overrides] 3.4033 - </tt> 3.4034 - </blockquote> 3.4035 - </li> 3.4036 - <li>Start the build with the command: 3.4037 - <blockquote> 3.4038 - <tt> 3.4039 - <i>gmake</i> 3.4040 - [ARCH_DATA_MODEL=<i>32 or 64</i>] 3.4041 - [ALT_OUTPUTDIR=<i>output_directory</i>] 3.4042 - [other "ALT_" overrides] 3.4043 - </tt> 3.4044 - </blockquote> 3.4045 - </li> 3.4046 - </ol> 3.4047 - <p> 3.4048 - <strong>Solaris:</strong> 3.4049 - Note that ARCH_DATA_MODEL is really only needed on Solaris to 3.4050 - indicate you want to built the 64-bit version. 3.4051 - And before the Solaris 64-bit binaries can be used, they 3.4052 - must be merged with the binaries from a separate 32-bit build. 3.4053 - The merged binaries may then be used in either 32-bit or 64-bit mode, with 3.4054 - the selection occurring at runtime 3.4055 - with the <tt>-d32</tt> or <tt>-d64</tt> options. 3.4056 - </blockquote> 3.4057 - <!-- ------------------------------------------------------ --> 3.4058 + <p>End of OpenJDK README-builds.html document.<br>Please come again! 3.4059 <hr> 3.4060 - <h2><a name="testing">Testing the Build</a></h2> 3.4061 - <blockquote> 3.4062 - When the build is completed, you should see the generated 3.4063 - binaries and associated files in the <tt>j2sdk-image</tt> 3.4064 - directory in the output directory. 3.4065 - The default output directory is 3.4066 - <tt>build/<i>platform</i></tt>, 3.4067 - where <tt><i>platform</i></tt> is one of 3.4068 - <blockquote> 3.4069 - <ul> 3.4070 - <li><tt>solaris-sparc</tt></li> 3.4071 - <li><tt>solaris-sparcv9</tt></li> 3.4072 - <li><tt>solaris-i586</tt></li> 3.4073 - <li><tt>solaris-amd64</tt></li> 3.4074 - <li><tt>linux-i586</tt></li> 3.4075 - <li><tt>linux-amd64</tt></li> 3.4076 - <li><tt>windows-i586</tt></li> 3.4077 - <li><tt>windows-amd64</tt></li> 3.4078 - </ul> 3.4079 - </blockquote> 3.4080 - In particular, the 3.4081 - <tt>build/<i>platform</i>/j2sdk-image/bin</tt> 3.4082 - directory should contain executables for the 3.4083 - OpenJDK tools and utilities. 3.4084 - <p> 3.4085 - You can test that the build completed properly by using the build 3.4086 - to run the various demos that you will find in the 3.4087 - <tt>build/<i>platform</i>/j2sdk-image/demo</tt> 3.4088 - directory. 3.4089 - <p> 3.4090 - The provided regression tests can be run with the <tt>jtreg</tt> 3.4091 - utility from 3.4092 - <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>. 3.4093 - </blockquote> 3.4094 - <!-- ------------------------------------------------------ --> 3.4095 - <hr> 3.4096 - <h2><a name="variables">Environment/Make Variables</a></h2> 3.4097 - <p> 3.4098 - Some of the 3.4099 - environment or make variables (just called <b>variables</b> in this 3.4100 - document) that can impact the build are: 3.4101 - <blockquote> 3.4102 - <dl> 3.4103 - <dt><a name="path"><tt>PATH</tt></a> </dt> 3.4104 - <dd>Typically you want to set the <tt>PATH</tt> to include: 3.4105 - <ul> 3.4106 - <li>The location of the GNU make binary</li> 3.4107 - <li>The location of the Bootstrap JDK <tt>java</tt> 3.4108 - (see <a href="#bootjdk">Bootstrap JDK</a>)</li> 3.4109 - <li>The location of the C/C++ compilers 3.4110 - (see <a href="#compilers"><tt>compilers</tt></a>)</li> 3.4111 - <li>The location or locations for the Unix command utilities 3.4112 - (e.g. <tt>/usr/bin</tt>)</li> 3.4113 - </ul> 3.4114 - </dd> 3.4115 - <dt><tt>MILESTONE</tt> </dt> 3.4116 - <dd> 3.4117 - The milestone name for the build (<i>e.g.</i>"beta"). 3.4118 - The default value is "internal". 3.4119 - </dd> 3.4120 - <dt><tt>BUILD_NUMBER</tt> </dt> 3.4121 - <dd> 3.4122 - The build number for the build (<i>e.g.</i> "b27"). 3.4123 - The default value is "b00". 3.4124 - </dd> 3.4125 - <dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt> 3.4126 - <dd>The <tt>ARCH_DATA_MODEL</tt> variable 3.4127 - is used to specify whether the build is to generate 32-bit or 64-bit 3.4128 - binaries. 3.4129 - The Solaris build supports either 32-bit or 64-bit builds, but 3.4130 - Windows and Linux will support only one, depending on the specific 3.4131 - OS being used. 3.4132 - Normally, setting this variable is only necessary on Solaris. 3.4133 - Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries, 3.4134 - or to <tt>64</tt> for generating 64-bit binaries. 3.4135 - </dd> 3.4136 - <dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt> 3.4137 - <dd> 3.4138 - The location of the bootstrap JDK installation. 3.4139 - See <a href="#bootjdk">Bootstrap JDK</a> for more information. 3.4140 - You should always install your own local Bootstrap JDK and 3.4141 - always set <tt>ALT_BOOTDIR</tt> explicitly. 3.4142 - </dd> 3.4143 - <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt> 3.4144 - <dd> 3.4145 - The location of a previously built JDK installation. 3.4146 - See <a href="#importjdk">Optional Import JDK</a> for more information. 3.4147 - </dd> 3.4148 - <dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt> 3.4149 - <dd> 3.4150 - An override for specifying the (absolute) path of where the 3.4151 - build output is to go. 3.4152 - The default output directory will be build/<i>platform</i>. 3.4153 - </dd> 3.4154 - <dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt> 3.4155 - <dd> 3.4156 - The location of the C/C++ compiler. 3.4157 - The default varies depending on the platform. 3.4158 - </dd> 3.4159 - <dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt> 3.4160 - <dd> 3.4161 - The location of the <a href="#cacerts">cacerts</a> file. 3.4162 - The default will refer to 3.4163 - <tt>jdk/src/share/lib/security/cacerts</tt>. 3.4164 - </dd> 3.4165 - <dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt> 3.4166 - <dd> 3.4167 - The location of the CUPS header files. 3.4168 - See <a href="#cups">CUPS information</a> for more information. 3.4169 - If this path does not exist the fallback path is 3.4170 - <tt>/usr/include</tt>. 3.4171 - </dd> 3.4172 - <dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt> 3.4173 - <dd> 3.4174 - The location of the FreeType shared library. 3.4175 - See <a href="#freetype">FreeType information</a> for details. 3.4176 - </dd> 3.4177 - <dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt> 3.4178 - <dd> 3.4179 - The location of the FreeType header files. 3.4180 - See <a href="#freetype">FreeType information</a> for details. 3.4181 - </dd> 3.4182 - <dt><a name="ALT_JDK_DEVTOOLS_PATH"><tt>ALT_JDK_DEVTOOLS_PATH</tt></a></dt> 3.4183 - <dd> 3.4184 - The default root location of the devtools. 3.4185 - The default value is 3.4186 - <tt>$(ALT_SLASH_JAVA)/devtools</tt>. 3.4187 - </dd> 3.4188 - <dt><tt><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></tt> </dt> 3.4189 - <dd> 3.4190 - The location of tools like the 3.4191 - <a href="#zip"><tt>zip</tt> and <tt>unzip</tt></a> 3.4192 - binaries, but might also contain the GNU make utility 3.4193 - (<tt><i>gmake</i></tt>). 3.4194 - So this area is a bit of a grab bag, especially on Windows. 3.4195 - The default value depends on the platform and 3.4196 - Unix Commands being used. 3.4197 - On Linux the default will be 3.4198 - <tt>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</tt>, 3.4199 - on Solaris 3.4200 - <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 3.4201 - and on Windows with CYGWIN 3.4202 - <tt>/usr/bin</tt>. 3.4203 - </dd> 3.4204 - <dt><tt><a name="ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> </dt> 3.4205 - <dd> 3.4206 - The location of any source drop bundles 3.4207 - (see <a href="#drops">Managing the Source Drops</a>). 3.4208 - The default will be 3.4209 - <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk8-drops</tt>. 3.4210 - </dd> 3.4211 - <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt> 3.4212 - <dd> 3.4213 - <strong>Solaris only:</strong> 3.4214 - An override for specifying where the Unix CCS 3.4215 - command set are located. 3.4216 - The default location is <tt>/usr/ccs/bin</tt> 3.4217 - </dd> 3.4218 - <dt><a name="ALT_SLASH_JAVA"><tt>ALT_SLASH_JAVA</tt></a></dt> 3.4219 - <dd> 3.4220 - The default root location for many of the ALT path locations 3.4221 - of the following ALT variables. 3.4222 - The default value is 3.4223 - <tt>"/java"</tt> on Solaris and Linux, 3.4224 - <tt>"J:"</tt> on Windows. 3.4225 - </dd> 3.4226 - <dt><a name="ALT_BUILD_JDK_IMPORT_PATH"><tt>ALT_BUILD_JDK_IMPORT_PATH</tt></a></dt> 3.4227 - <dd> 3.4228 - These are useful in managing builds on multiple platforms. 3.4229 - The default network location for all of the import JDK images 3.4230 - for all platforms. 3.4231 - If <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt> 3.4232 - is not set, this directory will be used and should contain 3.4233 - the following directories: 3.4234 - <tt>solaris-sparc</tt>, 3.4235 - <tt>solaris-i586</tt>, 3.4236 - <tt>solaris-sparcv9</tt>, 3.4237 - <tt>solaris-amd64</tt>, 3.4238 - <tt>linux-i586</tt>, 3.4239 - <tt>linux-amd64</tt>, 3.4240 - <tt>windows-i586</tt>, 3.4241 - and 3.4242 - <tt>windows-amd64</tt>. 3.4243 - Where each of these directories contain the import JDK image 3.4244 - for that platform. 3.4245 - </dd> 3.4246 - <dt><a name="ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a></dt> 3.4247 - <dd> 3.4248 - The top-level directory of the libraries and include files for the platform's 3.4249 - graphical programming environment. The default location is platform specific. 3.4250 - For example, on Linux it defaults to <tt>/usr/X11R6/</tt>. 3.4251 - </dd> 3.4252 - <dt><strong>Windows specific:</strong></dt> 3.4253 - <dd> 3.4254 - <dl> 3.4255 - <dt><a name="ALT_WINDOWSSDKDIR"><tt>ALT_WINDOWSSDKDIR</tt></a> </dt> 3.4256 - <dd> 3.4257 - The location of the 3.4258 - Microsoft Windows SDK where some tools will be 3.4259 - located. 3.4260 - The default is whatever WINDOWSSDKDIR is set to 3.4261 - (or WindowsSdkDir) or the path 3.4262 - <br> 3.4263 - <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt> 3.4264 - </dd> 3.4265 - <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt> 3.4266 - <dd> 3.4267 - The location of the 3.4268 - <a href="#dxsdk">Microsoft DirectX 9 SDK</a>. 3.4269 - The default will be to try and use the DirectX environment 3.4270 - variable <tt>DXSDK_DIR</tt>, 3.4271 - failing that, look in <tt>C:/DXSDK</tt>. 3.4272 - </dd> 3.4273 - <dt><tt><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></tt> </dt> 3.4274 - <dd> 3.4275 - The location of the 3.4276 - <a href="#msvcrNN"><tt>MSVCR100.DLL</tt></a>. 3.4277 - </dd> 3.4278 - </dl> 3.4279 - </dd> 3.4280 - <dt><strong>Cross-Compilation Support:</strong></dt> 3.4281 - <dd> 3.4282 - <dl> 3.4283 - <dt><a name="CROSS_COMPILE_ARCH"><tt>CROSS_COMPILE_ARCH</tt></a> </dt> 3.4284 - <dd> 3.4285 - Set to the target architecture of a cross-compilation build. If set, this 3.4286 - variable is used to signify that we are cross-compiling. The expectation 3.4287 - is that <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> is set 3.4288 - to point to the cross-compiler and that any cross-compilation specific flags 3.4289 - are passed using <a href="#EXTRA_CFLAGS"><tt>EXTRA_CFLAGS</tt></a>. 3.4290 - The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should 3.4291 - also be set to point to the graphical header files (e.g. X11) provided with 3.4292 - the cross-compiler. 3.4293 - When cross-compiling we skip execution of any demos etc that may be built, and 3.4294 - also skip binary-file verification. 3.4295 - </dd> 3.4296 - <dt><tt><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></tt> </dt> 3.4297 - <dd> 3.4298 - Used to pass cross-compilation options to the cross-compiler. 3.4299 - These are added to the <tt>CFLAGS</tt> and <tt>CXXFLAGS</tt> variables. 3.4300 - </dd> 3.4301 - <dt><tt><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></tt> </dt> 3.4302 - <dd> 3.4303 - Used primarily for cross-compilation builds (and always set in that case) 3.4304 - this variable indicates that tools from the boot JDK should be used during 3.4305 - the build process, not the tools (<tt>javac</tt>, <tt>javah</tt>, <tt>jar</tt>) 3.4306 - just built (which can't execute on the build host). 3.4307 - </dd> 3.4308 - <dt><tt><a name="HOST_CC">HOST_CC</a></tt> </dt> 3.4309 - <dd> 3.4310 - The location of the C compiler to generate programs to run on the build host. 3.4311 - Some parts of the build generate programs that are then compiled and executed 3.4312 - to produce other parts of the build. Normally the primary C compiler is used 3.4313 - to do this, but when cross-compiling that would be the cross-compiler and the 3.4314 - resulting program could not be executed. 3.4315 - On Linux this defaults to <tt>/usr/bin/gcc</tt>; on other platforms it must be 3.4316 - set explicitly. 3.4317 - </dd> 3.4318 - </dl> 3.4319 - <dt><strong>Specialized Build Options:</strong></dt> 3.4320 - <dd> 3.4321 - Some build variables exist to support specialized build environments and/or specialized 3.4322 - build products. Their use is only supported in those contexts: 3.4323 - <dl> 3.4324 - <dt><tt><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></tt> </dt> 3.4325 - <dd> 3.4326 - Indicates this build will only contain the Hotspot client VM. In addition to 3.4327 - controlling the Hotspot build target, it ensures that we don't try to copy 3.4328 - any server VM files/directories, and defines a default <tt>jvm.cfg</tt> file 3.4329 - suitable for a client-only environment. Using this in a 64-bit build will 3.4330 - generate a sanity warning as 64-bit client builds are not directly supported. 3.4331 - </dd> 3.4332 - <dt><tt><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</tt> </dt> 3.4333 - <dd> 3.4334 - Used when the build environment has no graphical capabilities at all. This 3.4335 - excludes building anything that requires graphical libraries to be available. 3.4336 - </dd> 3.4337 - <dt><tt><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</tt> </dt> 3.4338 - <dd> 3.4339 - Used to indicate this is a build of the Oracle Java SE Embedded product. 3.4340 - This will enable the directives included in the SE-Embedded specific build 3.4341 - files. 3.4342 - </dd> 3.4343 - <dt><tt><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></tt> </dt> 3.4344 - <dd> 3.4345 - If set to false, disables the use of mmap by the zip utility. Otherwise, 3.4346 - mmap will be used. 3.4347 - </dd> 3.4348 - <dt><tt><a name="COMPRESS_JARS"></a>COMPRESS_JARS</tt> </dt> 3.4349 - <dd> 3.4350 - If set to true, causes certain jar files that would otherwise be built without 3.4351 - compression, to use compression. 3.4352 - </dd> 3.4353 - </dl> 3.4354 - </dd> 3.4355 - </dl> 3.4356 - </blockquote> 3.4357 - <!-- ------------------------------------------------------ --> 3.4358 - <hr> 3.4359 - <h2><a name="hints">Hints and Tips</a></h2> 3.4360 - <blockquote> 3.4361 - You don't have to use all these hints and tips, and in fact people do actually 3.4362 - build with systems that contradict these, but they might prove to be 3.4363 - helpful to some. 3.4364 - <ul> 3.4365 - <li> 3.4366 - If <tt>make sanity</tt> does not work, find out why, fix that 3.4367 - before going any further. Or at least understand what the 3.4368 - complaints are from it. 3.4369 - </li> 3.4370 - <li> 3.4371 - JDK: Keep in mind that you are building a JDK, but you need 3.4372 - a JDK (BOOTDIR JDK) to build this JDK. 3.4373 - </li> 3.4374 - <li> 3.4375 - Ant: The ant utility is a java application and besides having 3.4376 - ant available to you, it's important that ant finds the right 3.4377 - java to run with. Make sure you can type <tt>ant -version</tt> 3.4378 - and get clean results with no error messages. 3.4379 - </li> 3.4380 - <li> 3.4381 - Linux: Try and favor the system packages over building your own 3.4382 - or getting packages from other areas. 3.4383 - Most Linux builds should be possible with the system's 3.4384 - available packages. 3.4385 - </li> 3.4386 - <li> 3.4387 - Solaris: Typically you will need to get compilers on your systems 3.4388 - and occasionally GNU make 3.81 if a gmake binary is not available. 3.4389 - The gmake binary might not be 3.81, be careful. 3.4390 - </li> 3.4391 - <li> 3.4392 - Windows VS2010: 3.4393 - <ul> 3.4394 - <li> 3.4395 - Only the C++ part of VS2010 is needed. 3.4396 - Try to let the installation go to the default install directory. 3.4397 - Always reboot your system after installing VS2010. 3.4398 - The system environment variable VS100COMNTOOLS should be 3.4399 - set in your environment. 3.4400 - </li> 3.4401 - <li> 3.4402 - Make sure that TMP and TEMP are also set in the environment 3.4403 - and refer to Windows paths that exist, like <tt>C:\temp</tt>, 3.4404 - not <tt>/tmp</tt>, not <tt>/cygdrive/c/temp</tt>, and not <tt>C:/temp</tt>. 3.4405 - <tt>C:\temp</tt> is just an example, it is assumed that this area is 3.4406 - private to the user, so by default after installs you should 3.4407 - see a unique user path in these variables. 3.4408 - </li> 3.4409 - <li> 3.4410 - You need to use vsvars32.bat or vsvars64.bat to get the 3.4411 - PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR 3.4412 - variables set in your shell environment. 3.4413 - These bat files are not easy to use from a shell environment. 3.4414 - However, there is a script placed in the root jdk8 repository called 3.4415 - vsvars.sh that can help, it should only be done once in a shell 3.4416 - that will be doing the build, e.g.<br> 3.4417 - <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br> 3.4418 - eval `cat settings`</tt><br> 3.4419 - Or just <tt>eval `sh ./make/scripts/vsvars.sh -v10`</tt>. 3.4420 - </li> 3.4421 - </ul> 3.4422 - </li> 3.4423 - <li> 3.4424 - Windows: PATH order is critical, see the 3.4425 - <a href="#paths">paths</a> section for more information. 3.4426 - </li> 3.4427 - <li> 3.4428 - Windows 64bit builds: Use ARCH_DATA_MODEL=64. 3.4429 - </li> 3.4430 - </ul> 3.4431 - </blockquote> 3.4432 - <!-- ------------------------------------------------------ --> 3.4433 - <hr> 3.4434 - <h2><a name="troubleshooting">Troubleshooting</a></h2> 3.4435 - <blockquote> 3.4436 - A build can fail for any number of reasons. 3.4437 - Most failures 3.4438 - are a result of trying to build in an environment in which all the 3.4439 - pre-build requirements have not been met. 3.4440 - The first step in 3.4441 - troubleshooting a build failure is to recheck that you have satisfied 3.4442 - all the pre-build requirements for your platform. 3.4443 - Look for the check list of the platform you are building on in the 3.4444 - <a href="#contents">Table of Contents</a>. 3.4445 - <p> 3.4446 - You can validate your build environment by using the <tt>sanity</tt> 3.4447 - target. 3.4448 - Any errors listed 3.4449 - will stop the build from starting, and any warnings may result in 3.4450 - a flawed product build. 3.4451 - We strongly encourage you to evaluate every 3.4452 - sanity check warning and fix it if required, before you proceed 3.4453 - further with your build. 3.4454 - <p> 3.4455 - Some of the more common problems with builds are briefly described 3.4456 - below, with suggestions for remedies. 3.4457 - <ul> 3.4458 - <li> 3.4459 - <b>Corrupted Bundles on Windows:</b> 3.4460 - <blockquote> 3.4461 - Some virus scanning software has been known to corrupt the 3.4462 - downloading of zip bundles. 3.4463 - It may be necessary to disable the 'on access' or 'real time' 3.4464 - virus scanning features to prevent this corruption. 3.4465 - This type of "real time" virus scanning can also slow down the 3.4466 - build process significantly. 3.4467 - Temporarily disabling the feature, or excluding the build 3.4468 - output directory may be necessary to get correct and faster builds. 3.4469 - </blockquote> 3.4470 - </li> 3.4471 - <li> 3.4472 - <b>Slow Builds:</b> 3.4473 - <blockquote> 3.4474 - If your build machine seems to be overloaded from too many 3.4475 - simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt> 3.4476 - variable to <tt>1</tt> (if you're using a multiple CPU 3.4477 - machine, setting it to more than the the number of CPUs is probably 3.4478 - not a good idea). 3.4479 - <p> 3.4480 - Creating the javadocs can be very slow, if you are running 3.4481 - javadoc, consider skipping that step. 3.4482 - <p> 3.4483 - Faster hardware and more RAM always helps too. 3.4484 - The VM build tends to be CPU intensive (many C++ compiles), 3.4485 - and the rest of the JDK will often be disk intensive. 3.4486 - <p> 3.4487 - Faster compiles are possible using a tool called 3.4488 - <a href="http://ccache.samba.org/" target="_blank">ccache</a>. 3.4489 - </blockquote> 3.4490 - </li> 3.4491 - <li> 3.4492 - <b>File time issues:</b> 3.4493 - <blockquote> 3.4494 - If you see warnings that refer to file time stamps, e.g. 3.4495 - <blockquote> 3.4496 - <i>Warning message:</i><tt> File `xxx' has modification time in 3.4497 - the future.</tt> 3.4498 - <br> 3.4499 - <i>Warning message:</i> <tt> Clock skew detected. Your build may 3.4500 - be incomplete.</tt> 3.4501 - </blockquote> 3.4502 - These warnings can occur when the clock on the build machine is out of 3.4503 - sync with the timestamps on the source files. Other errors, apparently 3.4504 - unrelated but in fact caused by the clock skew, can occur along with 3.4505 - the clock skew warnings. These secondary errors may tend to obscure the 3.4506 - fact that the true root cause of the problem is an out-of-sync clock. 3.4507 - For example, an out-of-sync clock has been known to cause an old 3.4508 - version of javac to be used to compile some files, resulting in errors 3.4509 - when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword 3.4510 - in the 1.4 source code. 3.4511 - <p> 3.4512 - If you see these warnings, reset the clock on the build 3.4513 - machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory 3.4514 - containing the build output, and restart the build from the beginning. 3.4515 - </blockquote> 3.4516 - </li> 3.4517 - <li> 3.4518 - <b>Error message: <tt>Trouble writing out table to disk</tt></b> 3.4519 - <blockquote> 3.4520 - Increase the amount of swap space on your build machine. 3.4521 - </blockquote> 3.4522 - </li> 3.4523 - <li> 3.4524 - <b>Error Message: <tt>libstdc++ not found:</tt></b> 3.4525 - <blockquote> 3.4526 - This is caused by a missing libstdc++.a library. 3.4527 - This is installed as part of a specific package 3.4528 - (e.g. libstdc++.so.devel.386). 3.4529 - By default some 64-bit Linux versions (e.g. Fedora) 3.4530 - only install the 64-bit version of the libstdc++ package. 3.4531 - Various parts of the JDK build require a static 3.4532 - link of the C++ runtime libraries to allow for maximum 3.4533 - portability of the built images. 3.4534 - </blockquote> 3.4535 - </li> 3.4536 - <li> 3.4537 - <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b> 3.4538 - <blockquote> 3.4539 - This is probably an issue with SELinux (See 3.4540 - <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> 3.4541 - http://en.wikipedia.org/wiki/SELinux</a>). 3.4542 - Parts of the VM is built without the <tt>-fPIC</tt> for 3.4543 - performance reasons. 3.4544 - <p> 3.4545 - To completely disable SELinux: 3.4546 - <ol> 3.4547 - <li><tt>$ su root</tt></li> 3.4548 - <li><tt># system-config-securitylevel</tt></li> 3.4549 - <li><tt>In the window that appears, select the SELinux tab</tt></li> 3.4550 - <li><tt>Disable SELinux</tt></li> 3.4551 - </ol> 3.4552 - <p> 3.4553 - Alternatively, instead of completely disabling it you could 3.4554 - disable just this one check. 3.4555 - <ol> 3.4556 - <li>Select System->Administration->SELinux Management</li> 3.4557 - <li>In the SELinux Management Tool which appears, 3.4558 - select "Boolean" from the menu on the left</li> 3.4559 - <li>Expand the "Memory Protection" group</li> 3.4560 - <li>Check the first item, labeled 3.4561 - "Allow all unconfined executables to use libraries requiring text relocation ..."</li> 3.4562 - </ol> 3.4563 - </blockquote> 3.4564 - </li> 3.4565 - <li> 3.4566 - <b>Windows Error Messages:</b><br> 3.4567 - <tt>*** fatal error - couldn't allocate heap, ... </tt><br> 3.4568 - <tt>rm fails with "Directory not empty"</tt><br> 3.4569 - <tt>unzip fails with "cannot create ... Permission denied"</tt><br> 3.4570 - <tt>unzip fails with "cannot create ... Error 50"</tt><br> 3.4571 - <blockquote> 3.4572 - The CYGWIN software can conflict with other non-CYGWIN 3.4573 - software. See the CYGWIN FAQ section on 3.4574 - <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 3.4575 - BLODA (applications that interfere with CYGWIN)</a>. 3.4576 - </blockquote> 3.4577 - </li> 3.4578 - <li> 3.4579 - <b>Windows Error Message: <tt>spawn failed</tt></b> 3.4580 - <blockquote> 3.4581 - Try rebooting the system, or there could be some kind of 3.4582 - issue with the disk or disk partition being used. 3.4583 - Sometimes it comes with a "Permission Denied" message. 3.4584 - </blockquote> 3.4585 - </li> 3.4586 - </ul> 3.4587 - </blockquote> 3.4588 - <!-- ------------------------------------------------------ --> 3.4589 - <hr> 3.4590 - <h2><a name="newbuild">The New Build</a></h2> 3.4591 - <blockquote> 3.4592 - The <a href="http://openjdk.java.net/projects/build-infra/"> 3.4593 - Build Infrastructure project</a> is working on a new 3.4594 - build. For information on how to try it out, please see the 3.4595 - <a href="http://openjdk.java.net/projects/build-infra/guide.html"> 3.4596 - Build Infra User Guide</a> 3.4597 - </blockquote> 3.4598 - <hr> 3.4599 + 3.4600 </body> 3.4601 </html>
4.1 --- a/common/autoconf/generated-configure.sh Tue Feb 26 09:25:44 2013 -0800 4.2 +++ b/common/autoconf/generated-configure.sh Tue Mar 05 11:46:02 2013 -0800 4.3 @@ -1,6 +1,6 @@ 4.4 #! /bin/sh 4.5 # Guess values for system-dependent variables and create Makefiles. 4.6 -# Generated by GNU Autoconf 2.68 for OpenJDK jdk8. 4.7 +# Generated by GNU Autoconf 2.67 for OpenJDK jdk8. 4.8 # 4.9 # Report bugs to <build-dev@openjdk.java.net>. 4.10 # 4.11 @@ -91,7 +91,6 @@ 4.12 IFS=" "" $as_nl" 4.13 4.14 # Find who we are. Look in the path if we contain no directory separator. 4.15 -as_myself= 4.16 case $0 in #(( 4.17 *[\\/]* ) as_myself=$0 ;; 4.18 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 4.19 @@ -217,18 +216,11 @@ 4.20 # We cannot yet assume a decent shell, so we have to provide a 4.21 # neutralization value for shells without unset; and this also 4.22 # works around shells that cannot unset nonexistent variables. 4.23 - # Preserve -v and -x to the replacement shell. 4.24 BASH_ENV=/dev/null 4.25 ENV=/dev/null 4.26 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV 4.27 export CONFIG_SHELL 4.28 - case $- in # (((( 4.29 - *v*x* | *x*v* ) as_opts=-vx ;; 4.30 - *v* ) as_opts=-v ;; 4.31 - *x* ) as_opts=-x ;; 4.32 - * ) as_opts= ;; 4.33 - esac 4.34 - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} 4.35 + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} 4.36 fi 4.37 4.38 if test x$as_have_required = xno; then : 4.39 @@ -649,7 +641,7 @@ 4.40 CXXFLAGS_JDKLIB 4.41 CFLAGS_JDKEXE 4.42 CFLAGS_JDKLIB 4.43 -MACOSX_REQUIRED_VERSION 4.44 +MACOSX_VERSION_MIN 4.45 PACKAGE_PATH 4.46 LEGACY_EXTRA_LDFLAGS 4.47 LEGACY_EXTRA_CXXFLAGS 4.48 @@ -1443,7 +1435,7 @@ 4.49 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 4.50 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && 4.51 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 4.52 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" 4.53 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} 4.54 ;; 4.55 4.56 esac 4.57 @@ -1868,7 +1860,7 @@ 4.58 if $ac_init_version; then 4.59 cat <<\_ACEOF 4.60 OpenJDK configure jdk8 4.61 -generated by GNU Autoconf 2.68 4.62 +generated by GNU Autoconf 2.67 4.63 4.64 Copyright (C) 2010 Free Software Foundation, Inc. 4.65 This configure script is free software; the Free Software Foundation 4.66 @@ -1914,7 +1906,7 @@ 4.67 4.68 ac_retval=1 4.69 fi 4.70 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.71 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.72 as_fn_set_status $ac_retval 4.73 4.74 } # ac_fn_c_try_compile 4.75 @@ -1952,7 +1944,7 @@ 4.76 4.77 ac_retval=1 4.78 fi 4.79 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.80 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.81 as_fn_set_status $ac_retval 4.82 4.83 } # ac_fn_cxx_try_compile 4.84 @@ -1990,7 +1982,7 @@ 4.85 4.86 ac_retval=1 4.87 fi 4.88 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.89 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.90 as_fn_set_status $ac_retval 4.91 4.92 } # ac_fn_objc_try_compile 4.93 @@ -2027,7 +2019,7 @@ 4.94 4.95 ac_retval=1 4.96 fi 4.97 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.98 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.99 as_fn_set_status $ac_retval 4.100 4.101 } # ac_fn_c_try_cpp 4.102 @@ -2064,7 +2056,7 @@ 4.103 4.104 ac_retval=1 4.105 fi 4.106 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.107 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.108 as_fn_set_status $ac_retval 4.109 4.110 } # ac_fn_cxx_try_cpp 4.111 @@ -2077,10 +2069,10 @@ 4.112 ac_fn_cxx_check_header_mongrel () 4.113 { 4.114 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 4.115 - if eval \${$3+:} false; then : 4.116 + if eval "test \"\${$3+set}\"" = set; then : 4.117 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 4.118 $as_echo_n "checking for $2... " >&6; } 4.119 -if eval \${$3+:} false; then : 4.120 +if eval "test \"\${$3+set}\"" = set; then : 4.121 $as_echo_n "(cached) " >&6 4.122 fi 4.123 eval ac_res=\$$3 4.124 @@ -2147,7 +2139,7 @@ 4.125 esac 4.126 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 4.127 $as_echo_n "checking for $2... " >&6; } 4.128 -if eval \${$3+:} false; then : 4.129 +if eval "test \"\${$3+set}\"" = set; then : 4.130 $as_echo_n "(cached) " >&6 4.131 else 4.132 eval "$3=\$ac_header_compiler" 4.133 @@ -2156,7 +2148,7 @@ 4.134 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 4.135 $as_echo "$ac_res" >&6; } 4.136 fi 4.137 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.138 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.139 4.140 } # ac_fn_cxx_check_header_mongrel 4.141 4.142 @@ -2197,7 +2189,7 @@ 4.143 ac_retval=$ac_status 4.144 fi 4.145 rm -rf conftest.dSYM conftest_ipa8_conftest.oo 4.146 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.147 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.148 as_fn_set_status $ac_retval 4.149 4.150 } # ac_fn_cxx_try_run 4.151 @@ -2211,7 +2203,7 @@ 4.152 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 4.153 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 4.154 $as_echo_n "checking for $2... " >&6; } 4.155 -if eval \${$3+:} false; then : 4.156 +if eval "test \"\${$3+set}\"" = set; then : 4.157 $as_echo_n "(cached) " >&6 4.158 else 4.159 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.160 @@ -2229,7 +2221,7 @@ 4.161 eval ac_res=\$$3 4.162 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 4.163 $as_echo "$ac_res" >&6; } 4.164 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.165 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.166 4.167 } # ac_fn_cxx_check_header_compile 4.168 4.169 @@ -2406,7 +2398,7 @@ 4.170 rm -f conftest.val 4.171 4.172 fi 4.173 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.174 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.175 as_fn_set_status $ac_retval 4.176 4.177 } # ac_fn_cxx_compute_int 4.178 @@ -2452,7 +2444,7 @@ 4.179 # interfere with the next link command; also delete a directory that is 4.180 # left behind by Apple's compiler. We do this before executing the actions. 4.181 rm -rf conftest.dSYM conftest_ipa8_conftest.oo 4.182 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.183 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.184 as_fn_set_status $ac_retval 4.185 4.186 } # ac_fn_cxx_try_link 4.187 @@ -2465,7 +2457,7 @@ 4.188 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 4.189 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 4.190 $as_echo_n "checking for $2... " >&6; } 4.191 -if eval \${$3+:} false; then : 4.192 +if eval "test \"\${$3+set}\"" = set; then : 4.193 $as_echo_n "(cached) " >&6 4.194 else 4.195 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.196 @@ -2520,7 +2512,7 @@ 4.197 eval ac_res=\$$3 4.198 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 4.199 $as_echo "$ac_res" >&6; } 4.200 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.201 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.202 4.203 } # ac_fn_cxx_check_func 4.204 4.205 @@ -2533,7 +2525,7 @@ 4.206 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 4.207 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 4.208 $as_echo_n "checking for $2... " >&6; } 4.209 -if eval \${$3+:} false; then : 4.210 +if eval "test \"\${$3+set}\"" = set; then : 4.211 $as_echo_n "(cached) " >&6 4.212 else 4.213 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.214 @@ -2551,7 +2543,7 @@ 4.215 eval ac_res=\$$3 4.216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 4.217 $as_echo "$ac_res" >&6; } 4.218 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 4.219 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 4.220 4.221 } # ac_fn_c_check_header_compile 4.222 cat >config.log <<_ACEOF 4.223 @@ -2559,7 +2551,7 @@ 4.224 running configure, to aid debugging if configure makes a mistake. 4.225 4.226 It was created by OpenJDK $as_me jdk8, which was 4.227 -generated by GNU Autoconf 2.68. Invocation command line was 4.228 +generated by GNU Autoconf 2.67. Invocation command line was 4.229 4.230 $ $0 $@ 4.231 4.232 @@ -2817,7 +2809,7 @@ 4.233 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.234 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.235 as_fn_error $? "failed to load site script $ac_site_file 4.236 -See \`config.log' for more details" "$LINENO" 5; } 4.237 +See \`config.log' for more details" "$LINENO" 5 ; } 4.238 fi 4.239 done 4.240 4.241 @@ -3771,7 +3763,7 @@ 4.242 set dummy $ac_prog; ac_word=$2 4.243 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.244 $as_echo_n "checking for $ac_word... " >&6; } 4.245 -if ${ac_cv_path_BASENAME+:} false; then : 4.246 +if test "${ac_cv_path_BASENAME+set}" = set; then : 4.247 $as_echo_n "(cached) " >&6 4.248 else 4.249 case $BASENAME in 4.250 @@ -3830,7 +3822,7 @@ 4.251 set dummy $ac_prog; ac_word=$2 4.252 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.253 $as_echo_n "checking for $ac_word... " >&6; } 4.254 -if ${ac_cv_path_BASH+:} false; then : 4.255 +if test "${ac_cv_path_BASH+set}" = set; then : 4.256 $as_echo_n "(cached) " >&6 4.257 else 4.258 case $BASH in 4.259 @@ -3889,7 +3881,7 @@ 4.260 set dummy $ac_prog; ac_word=$2 4.261 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.262 $as_echo_n "checking for $ac_word... " >&6; } 4.263 -if ${ac_cv_path_CAT+:} false; then : 4.264 +if test "${ac_cv_path_CAT+set}" = set; then : 4.265 $as_echo_n "(cached) " >&6 4.266 else 4.267 case $CAT in 4.268 @@ -3948,7 +3940,7 @@ 4.269 set dummy $ac_prog; ac_word=$2 4.270 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.271 $as_echo_n "checking for $ac_word... " >&6; } 4.272 -if ${ac_cv_path_CHMOD+:} false; then : 4.273 +if test "${ac_cv_path_CHMOD+set}" = set; then : 4.274 $as_echo_n "(cached) " >&6 4.275 else 4.276 case $CHMOD in 4.277 @@ -4007,7 +3999,7 @@ 4.278 set dummy $ac_prog; ac_word=$2 4.279 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.280 $as_echo_n "checking for $ac_word... " >&6; } 4.281 -if ${ac_cv_path_CMP+:} false; then : 4.282 +if test "${ac_cv_path_CMP+set}" = set; then : 4.283 $as_echo_n "(cached) " >&6 4.284 else 4.285 case $CMP in 4.286 @@ -4066,7 +4058,7 @@ 4.287 set dummy $ac_prog; ac_word=$2 4.288 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.289 $as_echo_n "checking for $ac_word... " >&6; } 4.290 -if ${ac_cv_path_COMM+:} false; then : 4.291 +if test "${ac_cv_path_COMM+set}" = set; then : 4.292 $as_echo_n "(cached) " >&6 4.293 else 4.294 case $COMM in 4.295 @@ -4125,7 +4117,7 @@ 4.296 set dummy $ac_prog; ac_word=$2 4.297 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.298 $as_echo_n "checking for $ac_word... " >&6; } 4.299 -if ${ac_cv_path_CP+:} false; then : 4.300 +if test "${ac_cv_path_CP+set}" = set; then : 4.301 $as_echo_n "(cached) " >&6 4.302 else 4.303 case $CP in 4.304 @@ -4184,7 +4176,7 @@ 4.305 set dummy $ac_prog; ac_word=$2 4.306 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.307 $as_echo_n "checking for $ac_word... " >&6; } 4.308 -if ${ac_cv_path_CPIO+:} false; then : 4.309 +if test "${ac_cv_path_CPIO+set}" = set; then : 4.310 $as_echo_n "(cached) " >&6 4.311 else 4.312 case $CPIO in 4.313 @@ -4243,7 +4235,7 @@ 4.314 set dummy $ac_prog; ac_word=$2 4.315 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.316 $as_echo_n "checking for $ac_word... " >&6; } 4.317 -if ${ac_cv_path_CUT+:} false; then : 4.318 +if test "${ac_cv_path_CUT+set}" = set; then : 4.319 $as_echo_n "(cached) " >&6 4.320 else 4.321 case $CUT in 4.322 @@ -4302,7 +4294,7 @@ 4.323 set dummy $ac_prog; ac_word=$2 4.324 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.325 $as_echo_n "checking for $ac_word... " >&6; } 4.326 -if ${ac_cv_path_DATE+:} false; then : 4.327 +if test "${ac_cv_path_DATE+set}" = set; then : 4.328 $as_echo_n "(cached) " >&6 4.329 else 4.330 case $DATE in 4.331 @@ -4361,7 +4353,7 @@ 4.332 set dummy $ac_prog; ac_word=$2 4.333 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.334 $as_echo_n "checking for $ac_word... " >&6; } 4.335 -if ${ac_cv_path_DIFF+:} false; then : 4.336 +if test "${ac_cv_path_DIFF+set}" = set; then : 4.337 $as_echo_n "(cached) " >&6 4.338 else 4.339 case $DIFF in 4.340 @@ -4420,7 +4412,7 @@ 4.341 set dummy $ac_prog; ac_word=$2 4.342 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.343 $as_echo_n "checking for $ac_word... " >&6; } 4.344 -if ${ac_cv_path_DIRNAME+:} false; then : 4.345 +if test "${ac_cv_path_DIRNAME+set}" = set; then : 4.346 $as_echo_n "(cached) " >&6 4.347 else 4.348 case $DIRNAME in 4.349 @@ -4479,7 +4471,7 @@ 4.350 set dummy $ac_prog; ac_word=$2 4.351 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.352 $as_echo_n "checking for $ac_word... " >&6; } 4.353 -if ${ac_cv_path_ECHO+:} false; then : 4.354 +if test "${ac_cv_path_ECHO+set}" = set; then : 4.355 $as_echo_n "(cached) " >&6 4.356 else 4.357 case $ECHO in 4.358 @@ -4538,7 +4530,7 @@ 4.359 set dummy $ac_prog; ac_word=$2 4.360 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.361 $as_echo_n "checking for $ac_word... " >&6; } 4.362 -if ${ac_cv_path_EXPR+:} false; then : 4.363 +if test "${ac_cv_path_EXPR+set}" = set; then : 4.364 $as_echo_n "(cached) " >&6 4.365 else 4.366 case $EXPR in 4.367 @@ -4597,7 +4589,7 @@ 4.368 set dummy $ac_prog; ac_word=$2 4.369 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.370 $as_echo_n "checking for $ac_word... " >&6; } 4.371 -if ${ac_cv_path_FILE+:} false; then : 4.372 +if test "${ac_cv_path_FILE+set}" = set; then : 4.373 $as_echo_n "(cached) " >&6 4.374 else 4.375 case $FILE in 4.376 @@ -4656,7 +4648,7 @@ 4.377 set dummy $ac_prog; ac_word=$2 4.378 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.379 $as_echo_n "checking for $ac_word... " >&6; } 4.380 -if ${ac_cv_path_FIND+:} false; then : 4.381 +if test "${ac_cv_path_FIND+set}" = set; then : 4.382 $as_echo_n "(cached) " >&6 4.383 else 4.384 case $FIND in 4.385 @@ -4715,7 +4707,7 @@ 4.386 set dummy $ac_prog; ac_word=$2 4.387 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.388 $as_echo_n "checking for $ac_word... " >&6; } 4.389 -if ${ac_cv_path_HEAD+:} false; then : 4.390 +if test "${ac_cv_path_HEAD+set}" = set; then : 4.391 $as_echo_n "(cached) " >&6 4.392 else 4.393 case $HEAD in 4.394 @@ -4774,7 +4766,7 @@ 4.395 set dummy $ac_prog; ac_word=$2 4.396 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.397 $as_echo_n "checking for $ac_word... " >&6; } 4.398 -if ${ac_cv_path_LN+:} false; then : 4.399 +if test "${ac_cv_path_LN+set}" = set; then : 4.400 $as_echo_n "(cached) " >&6 4.401 else 4.402 case $LN in 4.403 @@ -4833,7 +4825,7 @@ 4.404 set dummy $ac_prog; ac_word=$2 4.405 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.406 $as_echo_n "checking for $ac_word... " >&6; } 4.407 -if ${ac_cv_path_LS+:} false; then : 4.408 +if test "${ac_cv_path_LS+set}" = set; then : 4.409 $as_echo_n "(cached) " >&6 4.410 else 4.411 case $LS in 4.412 @@ -4892,7 +4884,7 @@ 4.413 set dummy $ac_prog; ac_word=$2 4.414 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.415 $as_echo_n "checking for $ac_word... " >&6; } 4.416 -if ${ac_cv_path_MKDIR+:} false; then : 4.417 +if test "${ac_cv_path_MKDIR+set}" = set; then : 4.418 $as_echo_n "(cached) " >&6 4.419 else 4.420 case $MKDIR in 4.421 @@ -4951,7 +4943,7 @@ 4.422 set dummy $ac_prog; ac_word=$2 4.423 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.424 $as_echo_n "checking for $ac_word... " >&6; } 4.425 -if ${ac_cv_path_MKTEMP+:} false; then : 4.426 +if test "${ac_cv_path_MKTEMP+set}" = set; then : 4.427 $as_echo_n "(cached) " >&6 4.428 else 4.429 case $MKTEMP in 4.430 @@ -5010,7 +5002,7 @@ 4.431 set dummy $ac_prog; ac_word=$2 4.432 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.433 $as_echo_n "checking for $ac_word... " >&6; } 4.434 -if ${ac_cv_path_MV+:} false; then : 4.435 +if test "${ac_cv_path_MV+set}" = set; then : 4.436 $as_echo_n "(cached) " >&6 4.437 else 4.438 case $MV in 4.439 @@ -5069,7 +5061,7 @@ 4.440 set dummy $ac_prog; ac_word=$2 4.441 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.442 $as_echo_n "checking for $ac_word... " >&6; } 4.443 -if ${ac_cv_path_PRINTF+:} false; then : 4.444 +if test "${ac_cv_path_PRINTF+set}" = set; then : 4.445 $as_echo_n "(cached) " >&6 4.446 else 4.447 case $PRINTF in 4.448 @@ -5128,7 +5120,7 @@ 4.449 set dummy $ac_prog; ac_word=$2 4.450 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.451 $as_echo_n "checking for $ac_word... " >&6; } 4.452 -if ${ac_cv_path_THEPWDCMD+:} false; then : 4.453 +if test "${ac_cv_path_THEPWDCMD+set}" = set; then : 4.454 $as_echo_n "(cached) " >&6 4.455 else 4.456 case $THEPWDCMD in 4.457 @@ -5187,7 +5179,7 @@ 4.458 set dummy $ac_prog; ac_word=$2 4.459 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.460 $as_echo_n "checking for $ac_word... " >&6; } 4.461 -if ${ac_cv_path_RM+:} false; then : 4.462 +if test "${ac_cv_path_RM+set}" = set; then : 4.463 $as_echo_n "(cached) " >&6 4.464 else 4.465 case $RM in 4.466 @@ -5246,7 +5238,7 @@ 4.467 set dummy $ac_prog; ac_word=$2 4.468 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.469 $as_echo_n "checking for $ac_word... " >&6; } 4.470 -if ${ac_cv_path_SH+:} false; then : 4.471 +if test "${ac_cv_path_SH+set}" = set; then : 4.472 $as_echo_n "(cached) " >&6 4.473 else 4.474 case $SH in 4.475 @@ -5305,7 +5297,7 @@ 4.476 set dummy $ac_prog; ac_word=$2 4.477 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.478 $as_echo_n "checking for $ac_word... " >&6; } 4.479 -if ${ac_cv_path_SORT+:} false; then : 4.480 +if test "${ac_cv_path_SORT+set}" = set; then : 4.481 $as_echo_n "(cached) " >&6 4.482 else 4.483 case $SORT in 4.484 @@ -5364,7 +5356,7 @@ 4.485 set dummy $ac_prog; ac_word=$2 4.486 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.487 $as_echo_n "checking for $ac_word... " >&6; } 4.488 -if ${ac_cv_path_TAIL+:} false; then : 4.489 +if test "${ac_cv_path_TAIL+set}" = set; then : 4.490 $as_echo_n "(cached) " >&6 4.491 else 4.492 case $TAIL in 4.493 @@ -5423,7 +5415,7 @@ 4.494 set dummy $ac_prog; ac_word=$2 4.495 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.496 $as_echo_n "checking for $ac_word... " >&6; } 4.497 -if ${ac_cv_path_TAR+:} false; then : 4.498 +if test "${ac_cv_path_TAR+set}" = set; then : 4.499 $as_echo_n "(cached) " >&6 4.500 else 4.501 case $TAR in 4.502 @@ -5482,7 +5474,7 @@ 4.503 set dummy $ac_prog; ac_word=$2 4.504 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.505 $as_echo_n "checking for $ac_word... " >&6; } 4.506 -if ${ac_cv_path_TEE+:} false; then : 4.507 +if test "${ac_cv_path_TEE+set}" = set; then : 4.508 $as_echo_n "(cached) " >&6 4.509 else 4.510 case $TEE in 4.511 @@ -5541,7 +5533,7 @@ 4.512 set dummy $ac_prog; ac_word=$2 4.513 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.514 $as_echo_n "checking for $ac_word... " >&6; } 4.515 -if ${ac_cv_path_TOUCH+:} false; then : 4.516 +if test "${ac_cv_path_TOUCH+set}" = set; then : 4.517 $as_echo_n "(cached) " >&6 4.518 else 4.519 case $TOUCH in 4.520 @@ -5600,7 +5592,7 @@ 4.521 set dummy $ac_prog; ac_word=$2 4.522 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.523 $as_echo_n "checking for $ac_word... " >&6; } 4.524 -if ${ac_cv_path_TR+:} false; then : 4.525 +if test "${ac_cv_path_TR+set}" = set; then : 4.526 $as_echo_n "(cached) " >&6 4.527 else 4.528 case $TR in 4.529 @@ -5659,7 +5651,7 @@ 4.530 set dummy $ac_prog; ac_word=$2 4.531 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.532 $as_echo_n "checking for $ac_word... " >&6; } 4.533 -if ${ac_cv_path_UNAME+:} false; then : 4.534 +if test "${ac_cv_path_UNAME+set}" = set; then : 4.535 $as_echo_n "(cached) " >&6 4.536 else 4.537 case $UNAME in 4.538 @@ -5718,7 +5710,7 @@ 4.539 set dummy $ac_prog; ac_word=$2 4.540 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.541 $as_echo_n "checking for $ac_word... " >&6; } 4.542 -if ${ac_cv_path_UNIQ+:} false; then : 4.543 +if test "${ac_cv_path_UNIQ+set}" = set; then : 4.544 $as_echo_n "(cached) " >&6 4.545 else 4.546 case $UNIQ in 4.547 @@ -5777,7 +5769,7 @@ 4.548 set dummy $ac_prog; ac_word=$2 4.549 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.550 $as_echo_n "checking for $ac_word... " >&6; } 4.551 -if ${ac_cv_path_WC+:} false; then : 4.552 +if test "${ac_cv_path_WC+set}" = set; then : 4.553 $as_echo_n "(cached) " >&6 4.554 else 4.555 case $WC in 4.556 @@ -5836,7 +5828,7 @@ 4.557 set dummy $ac_prog; ac_word=$2 4.558 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.559 $as_echo_n "checking for $ac_word... " >&6; } 4.560 -if ${ac_cv_path_WHICH+:} false; then : 4.561 +if test "${ac_cv_path_WHICH+set}" = set; then : 4.562 $as_echo_n "(cached) " >&6 4.563 else 4.564 case $WHICH in 4.565 @@ -5895,7 +5887,7 @@ 4.566 set dummy $ac_prog; ac_word=$2 4.567 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.568 $as_echo_n "checking for $ac_word... " >&6; } 4.569 -if ${ac_cv_path_XARGS+:} false; then : 4.570 +if test "${ac_cv_path_XARGS+set}" = set; then : 4.571 $as_echo_n "(cached) " >&6 4.572 else 4.573 case $XARGS in 4.574 @@ -5955,7 +5947,7 @@ 4.575 set dummy $ac_prog; ac_word=$2 4.576 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.577 $as_echo_n "checking for $ac_word... " >&6; } 4.578 -if ${ac_cv_prog_AWK+:} false; then : 4.579 +if test "${ac_cv_prog_AWK+set}" = set; then : 4.580 $as_echo_n "(cached) " >&6 4.581 else 4.582 if test -n "$AWK"; then 4.583 @@ -6005,7 +5997,7 @@ 4.584 4.585 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 4.586 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } 4.587 -if ${ac_cv_path_GREP+:} false; then : 4.588 +if test "${ac_cv_path_GREP+set}" = set; then : 4.589 $as_echo_n "(cached) " >&6 4.590 else 4.591 if test -z "$GREP"; then 4.592 @@ -6080,7 +6072,7 @@ 4.593 4.594 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 4.595 $as_echo_n "checking for egrep... " >&6; } 4.596 -if ${ac_cv_path_EGREP+:} false; then : 4.597 +if test "${ac_cv_path_EGREP+set}" = set; then : 4.598 $as_echo_n "(cached) " >&6 4.599 else 4.600 if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 4.601 @@ -6159,7 +6151,7 @@ 4.602 4.603 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 4.604 $as_echo_n "checking for fgrep... " >&6; } 4.605 -if ${ac_cv_path_FGREP+:} false; then : 4.606 +if test "${ac_cv_path_FGREP+set}" = set; then : 4.607 $as_echo_n "(cached) " >&6 4.608 else 4.609 if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 4.610 @@ -6238,7 +6230,7 @@ 4.611 4.612 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 4.613 $as_echo_n "checking for a sed that does not truncate output... " >&6; } 4.614 -if ${ac_cv_path_SED+:} false; then : 4.615 +if test "${ac_cv_path_SED+set}" = set; then : 4.616 $as_echo_n "(cached) " >&6 4.617 else 4.618 ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ 4.619 @@ -6324,7 +6316,7 @@ 4.620 set dummy $ac_prog; ac_word=$2 4.621 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.622 $as_echo_n "checking for $ac_word... " >&6; } 4.623 -if ${ac_cv_path_NAWK+:} false; then : 4.624 +if test "${ac_cv_path_NAWK+set}" = set; then : 4.625 $as_echo_n "(cached) " >&6 4.626 else 4.627 case $NAWK in 4.628 @@ -6384,7 +6376,7 @@ 4.629 set dummy cygpath; ac_word=$2 4.630 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.631 $as_echo_n "checking for $ac_word... " >&6; } 4.632 -if ${ac_cv_path_CYGPATH+:} false; then : 4.633 +if test "${ac_cv_path_CYGPATH+set}" = set; then : 4.634 $as_echo_n "(cached) " >&6 4.635 else 4.636 case $CYGPATH in 4.637 @@ -6424,7 +6416,7 @@ 4.638 set dummy readlink; ac_word=$2 4.639 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.640 $as_echo_n "checking for $ac_word... " >&6; } 4.641 -if ${ac_cv_path_READLINK+:} false; then : 4.642 +if test "${ac_cv_path_READLINK+set}" = set; then : 4.643 $as_echo_n "(cached) " >&6 4.644 else 4.645 case $READLINK in 4.646 @@ -6464,7 +6456,7 @@ 4.647 set dummy df; ac_word=$2 4.648 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.649 $as_echo_n "checking for $ac_word... " >&6; } 4.650 -if ${ac_cv_path_DF+:} false; then : 4.651 +if test "${ac_cv_path_DF+set}" = set; then : 4.652 $as_echo_n "(cached) " >&6 4.653 else 4.654 case $DF in 4.655 @@ -6504,7 +6496,7 @@ 4.656 set dummy SetFile; ac_word=$2 4.657 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.658 $as_echo_n "checking for $ac_word... " >&6; } 4.659 -if ${ac_cv_path_SETFILE+:} false; then : 4.660 +if test "${ac_cv_path_SETFILE+set}" = set; then : 4.661 $as_echo_n "(cached) " >&6 4.662 else 4.663 case $SETFILE in 4.664 @@ -6550,7 +6542,7 @@ 4.665 4.666 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 4.667 $as_echo_n "checking build system type... " >&6; } 4.668 -if ${ac_cv_build+:} false; then : 4.669 +if test "${ac_cv_build+set}" = set; then : 4.670 $as_echo_n "(cached) " >&6 4.671 else 4.672 ac_build_alias=$build_alias 4.673 @@ -6566,7 +6558,7 @@ 4.674 $as_echo "$ac_cv_build" >&6; } 4.675 case $ac_cv_build in 4.676 *-*-*) ;; 4.677 -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; 4.678 +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 4.679 esac 4.680 build=$ac_cv_build 4.681 ac_save_IFS=$IFS; IFS='-' 4.682 @@ -6584,7 +6576,7 @@ 4.683 4.684 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 4.685 $as_echo_n "checking host system type... " >&6; } 4.686 -if ${ac_cv_host+:} false; then : 4.687 +if test "${ac_cv_host+set}" = set; then : 4.688 $as_echo_n "(cached) " >&6 4.689 else 4.690 if test "x$host_alias" = x; then 4.691 @@ -6599,7 +6591,7 @@ 4.692 $as_echo "$ac_cv_host" >&6; } 4.693 case $ac_cv_host in 4.694 *-*-*) ;; 4.695 -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; 4.696 +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 4.697 esac 4.698 host=$ac_cv_host 4.699 ac_save_IFS=$IFS; IFS='-' 4.700 @@ -6617,7 +6609,7 @@ 4.701 4.702 { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 4.703 $as_echo_n "checking target system type... " >&6; } 4.704 -if ${ac_cv_target+:} false; then : 4.705 +if test "${ac_cv_target+set}" = set; then : 4.706 $as_echo_n "(cached) " >&6 4.707 else 4.708 if test "x$target_alias" = x; then 4.709 @@ -6632,7 +6624,7 @@ 4.710 $as_echo "$ac_cv_target" >&6; } 4.711 case $ac_cv_target in 4.712 *-*-*) ;; 4.713 -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; 4.714 +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; 4.715 esac 4.716 target=$ac_cv_target 4.717 ac_save_IFS=$IFS; IFS='-' 4.718 @@ -8098,7 +8090,7 @@ 4.719 set dummy $ac_prog; ac_word=$2 4.720 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.721 $as_echo_n "checking for $ac_word... " >&6; } 4.722 -if ${ac_cv_prog_PKGHANDLER+:} false; then : 4.723 +if test "${ac_cv_prog_PKGHANDLER+set}" = set; then : 4.724 $as_echo_n "(cached) " >&6 4.725 else 4.726 if test -n "$PKGHANDLER"; then 4.727 @@ -8463,7 +8455,7 @@ 4.728 set dummy $ac_prog; ac_word=$2 4.729 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.730 $as_echo_n "checking for $ac_word... " >&6; } 4.731 -if ${ac_cv_path_CHECK_GMAKE+:} false; then : 4.732 +if test "${ac_cv_path_CHECK_GMAKE+set}" = set; then : 4.733 $as_echo_n "(cached) " >&6 4.734 else 4.735 case $CHECK_GMAKE in 4.736 @@ -8817,7 +8809,7 @@ 4.737 set dummy $ac_prog; ac_word=$2 4.738 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.739 $as_echo_n "checking for $ac_word... " >&6; } 4.740 -if ${ac_cv_path_CHECK_MAKE+:} false; then : 4.741 +if test "${ac_cv_path_CHECK_MAKE+set}" = set; then : 4.742 $as_echo_n "(cached) " >&6 4.743 else 4.744 case $CHECK_MAKE in 4.745 @@ -9176,7 +9168,7 @@ 4.746 set dummy $ac_prog; ac_word=$2 4.747 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.748 $as_echo_n "checking for $ac_word... " >&6; } 4.749 -if ${ac_cv_path_CHECK_TOOLSDIR_GMAKE+:} false; then : 4.750 +if test "${ac_cv_path_CHECK_TOOLSDIR_GMAKE+set}" = set; then : 4.751 $as_echo_n "(cached) " >&6 4.752 else 4.753 case $CHECK_TOOLSDIR_GMAKE in 4.754 @@ -9529,7 +9521,7 @@ 4.755 set dummy $ac_prog; ac_word=$2 4.756 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.757 $as_echo_n "checking for $ac_word... " >&6; } 4.758 -if ${ac_cv_path_CHECK_TOOLSDIR_MAKE+:} false; then : 4.759 +if test "${ac_cv_path_CHECK_TOOLSDIR_MAKE+set}" = set; then : 4.760 $as_echo_n "(cached) " >&6 4.761 else 4.762 case $CHECK_TOOLSDIR_MAKE in 4.763 @@ -9925,7 +9917,7 @@ 4.764 set dummy $ac_prog; ac_word=$2 4.765 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.766 $as_echo_n "checking for $ac_word... " >&6; } 4.767 -if ${ac_cv_path_UNZIP+:} false; then : 4.768 +if test "${ac_cv_path_UNZIP+set}" = set; then : 4.769 $as_echo_n "(cached) " >&6 4.770 else 4.771 case $UNZIP in 4.772 @@ -9984,7 +9976,7 @@ 4.773 set dummy $ac_prog; ac_word=$2 4.774 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.775 $as_echo_n "checking for $ac_word... " >&6; } 4.776 -if ${ac_cv_path_ZIP+:} false; then : 4.777 +if test "${ac_cv_path_ZIP+set}" = set; then : 4.778 $as_echo_n "(cached) " >&6 4.779 else 4.780 case $ZIP in 4.781 @@ -10043,7 +10035,7 @@ 4.782 set dummy ldd; ac_word=$2 4.783 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.784 $as_echo_n "checking for $ac_word... " >&6; } 4.785 -if ${ac_cv_path_LDD+:} false; then : 4.786 +if test "${ac_cv_path_LDD+set}" = set; then : 4.787 $as_echo_n "(cached) " >&6 4.788 else 4.789 case $LDD in 4.790 @@ -10089,7 +10081,7 @@ 4.791 set dummy otool; ac_word=$2 4.792 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.793 $as_echo_n "checking for $ac_word... " >&6; } 4.794 -if ${ac_cv_path_OTOOL+:} false; then : 4.795 +if test "${ac_cv_path_OTOOL+set}" = set; then : 4.796 $as_echo_n "(cached) " >&6 4.797 else 4.798 case $OTOOL in 4.799 @@ -10134,7 +10126,7 @@ 4.800 set dummy $ac_prog; ac_word=$2 4.801 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.802 $as_echo_n "checking for $ac_word... " >&6; } 4.803 -if ${ac_cv_path_READELF+:} false; then : 4.804 +if test "${ac_cv_path_READELF+set}" = set; then : 4.805 $as_echo_n "(cached) " >&6 4.806 else 4.807 case $READELF in 4.808 @@ -10177,7 +10169,7 @@ 4.809 set dummy hg; ac_word=$2 4.810 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.811 $as_echo_n "checking for $ac_word... " >&6; } 4.812 -if ${ac_cv_path_HG+:} false; then : 4.813 +if test "${ac_cv_path_HG+set}" = set; then : 4.814 $as_echo_n "(cached) " >&6 4.815 else 4.816 case $HG in 4.817 @@ -10217,7 +10209,7 @@ 4.818 set dummy stat; ac_word=$2 4.819 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.820 $as_echo_n "checking for $ac_word... " >&6; } 4.821 -if ${ac_cv_path_STAT+:} false; then : 4.822 +if test "${ac_cv_path_STAT+set}" = set; then : 4.823 $as_echo_n "(cached) " >&6 4.824 else 4.825 case $STAT in 4.826 @@ -10257,7 +10249,7 @@ 4.827 set dummy time; ac_word=$2 4.828 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.829 $as_echo_n "checking for $ac_word... " >&6; } 4.830 -if ${ac_cv_path_TIME+:} false; then : 4.831 +if test "${ac_cv_path_TIME+set}" = set; then : 4.832 $as_echo_n "(cached) " >&6 4.833 else 4.834 case $TIME in 4.835 @@ -10302,7 +10294,7 @@ 4.836 set dummy $ac_prog; ac_word=$2 4.837 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.838 $as_echo_n "checking for $ac_word... " >&6; } 4.839 -if ${ac_cv_path_COMM+:} false; then : 4.840 +if test "${ac_cv_path_COMM+set}" = set; then : 4.841 $as_echo_n "(cached) " >&6 4.842 else 4.843 case $COMM in 4.844 @@ -10366,7 +10358,7 @@ 4.845 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 4.846 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.847 $as_echo_n "checking for $ac_word... " >&6; } 4.848 -if ${ac_cv_path_PKG_CONFIG+:} false; then : 4.849 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : 4.850 $as_echo_n "(cached) " >&6 4.851 else 4.852 case $PKG_CONFIG in 4.853 @@ -10409,7 +10401,7 @@ 4.854 set dummy pkg-config; ac_word=$2 4.855 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.856 $as_echo_n "checking for $ac_word... " >&6; } 4.857 -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : 4.858 +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : 4.859 $as_echo_n "(cached) " >&6 4.860 else 4.861 case $ac_pt_PKG_CONFIG in 4.862 @@ -10582,7 +10574,7 @@ 4.863 set dummy $ac_prog; ac_word=$2 4.864 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.865 $as_echo_n "checking for $ac_word... " >&6; } 4.866 -if ${ac_cv_prog_BDEPS_UNZIP+:} false; then : 4.867 +if test "${ac_cv_prog_BDEPS_UNZIP+set}" = set; then : 4.868 $as_echo_n "(cached) " >&6 4.869 else 4.870 if test -n "$BDEPS_UNZIP"; then 4.871 @@ -10628,7 +10620,7 @@ 4.872 set dummy $ac_prog; ac_word=$2 4.873 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.874 $as_echo_n "checking for $ac_word... " >&6; } 4.875 -if ${ac_cv_prog_BDEPS_FTP+:} false; then : 4.876 +if test "${ac_cv_prog_BDEPS_FTP+set}" = set; then : 4.877 $as_echo_n "(cached) " >&6 4.878 else 4.879 if test -n "$BDEPS_FTP"; then 4.880 @@ -11895,7 +11887,7 @@ 4.881 set dummy javac; ac_word=$2 4.882 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.883 $as_echo_n "checking for $ac_word... " >&6; } 4.884 -if ${ac_cv_path_JAVAC_CHECK+:} false; then : 4.885 +if test "${ac_cv_path_JAVAC_CHECK+set}" = set; then : 4.886 $as_echo_n "(cached) " >&6 4.887 else 4.888 case $JAVAC_CHECK in 4.889 @@ -11935,7 +11927,7 @@ 4.890 set dummy java; ac_word=$2 4.891 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.892 $as_echo_n "checking for $ac_word... " >&6; } 4.893 -if ${ac_cv_path_JAVA_CHECK+:} false; then : 4.894 +if test "${ac_cv_path_JAVA_CHECK+set}" = set; then : 4.895 $as_echo_n "(cached) " >&6 4.896 else 4.897 case $JAVA_CHECK in 4.898 @@ -16009,7 +16001,7 @@ 4.899 set dummy link; ac_word=$2 4.900 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.901 $as_echo_n "checking for $ac_word... " >&6; } 4.902 -if ${ac_cv_path_CYGWIN_LINK+:} false; then : 4.903 +if test "${ac_cv_path_CYGWIN_LINK+set}" = set; then : 4.904 $as_echo_n "(cached) " >&6 4.905 else 4.906 case $CYGWIN_LINK in 4.907 @@ -16998,7 +16990,7 @@ 4.908 set dummy $ac_prog; ac_word=$2 4.909 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.910 $as_echo_n "checking for $ac_word... " >&6; } 4.911 -if ${ac_cv_path_BUILD_CC+:} false; then : 4.912 +if test "${ac_cv_path_BUILD_CC+set}" = set; then : 4.913 $as_echo_n "(cached) " >&6 4.914 else 4.915 case $BUILD_CC in 4.916 @@ -17309,7 +17301,7 @@ 4.917 set dummy $ac_prog; ac_word=$2 4.918 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.919 $as_echo_n "checking for $ac_word... " >&6; } 4.920 -if ${ac_cv_path_BUILD_CXX+:} false; then : 4.921 +if test "${ac_cv_path_BUILD_CXX+set}" = set; then : 4.922 $as_echo_n "(cached) " >&6 4.923 else 4.924 case $BUILD_CXX in 4.925 @@ -17618,7 +17610,7 @@ 4.926 set dummy ld; ac_word=$2 4.927 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.928 $as_echo_n "checking for $ac_word... " >&6; } 4.929 -if ${ac_cv_path_BUILD_LD+:} false; then : 4.930 +if test "${ac_cv_path_BUILD_LD+set}" = set; then : 4.931 $as_echo_n "(cached) " >&6 4.932 else 4.933 case $BUILD_LD in 4.934 @@ -18130,7 +18122,7 @@ 4.935 set dummy $ac_prog; ac_word=$2 4.936 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.937 $as_echo_n "checking for $ac_word... " >&6; } 4.938 -if ${ac_cv_path_TOOLS_DIR_CC+:} false; then : 4.939 +if test "${ac_cv_path_TOOLS_DIR_CC+set}" = set; then : 4.940 $as_echo_n "(cached) " >&6 4.941 else 4.942 case $TOOLS_DIR_CC in 4.943 @@ -18182,7 +18174,7 @@ 4.944 set dummy $ac_prog; ac_word=$2 4.945 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.946 $as_echo_n "checking for $ac_word... " >&6; } 4.947 -if ${ac_cv_path_POTENTIAL_CC+:} false; then : 4.948 +if test "${ac_cv_path_POTENTIAL_CC+set}" = set; then : 4.949 $as_echo_n "(cached) " >&6 4.950 else 4.951 case $POTENTIAL_CC in 4.952 @@ -18595,7 +18587,7 @@ 4.953 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 4.954 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.955 $as_echo_n "checking for $ac_word... " >&6; } 4.956 -if ${ac_cv_prog_PROPER_COMPILER_CC+:} false; then : 4.957 +if test "${ac_cv_prog_PROPER_COMPILER_CC+set}" = set; then : 4.958 $as_echo_n "(cached) " >&6 4.959 else 4.960 if test -n "$PROPER_COMPILER_CC"; then 4.961 @@ -18639,7 +18631,7 @@ 4.962 set dummy $ac_prog; ac_word=$2 4.963 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.964 $as_echo_n "checking for $ac_word... " >&6; } 4.965 -if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+:} false; then : 4.966 +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+set}" = set; then : 4.967 $as_echo_n "(cached) " >&6 4.968 else 4.969 if test -n "$ac_ct_PROPER_COMPILER_CC"; then 4.970 @@ -19089,7 +19081,7 @@ 4.971 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 4.972 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.973 $as_echo_n "checking for $ac_word... " >&6; } 4.974 -if ${ac_cv_prog_CC+:} false; then : 4.975 +if test "${ac_cv_prog_CC+set}" = set; then : 4.976 $as_echo_n "(cached) " >&6 4.977 else 4.978 if test -n "$CC"; then 4.979 @@ -19133,7 +19125,7 @@ 4.980 set dummy $ac_prog; ac_word=$2 4.981 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.982 $as_echo_n "checking for $ac_word... " >&6; } 4.983 -if ${ac_cv_prog_ac_ct_CC+:} false; then : 4.984 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : 4.985 $as_echo_n "(cached) " >&6 4.986 else 4.987 if test -n "$ac_ct_CC"; then 4.988 @@ -19186,7 +19178,7 @@ 4.989 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.990 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.991 as_fn_error $? "no acceptable C compiler found in \$PATH 4.992 -See \`config.log' for more details" "$LINENO" 5; } 4.993 +See \`config.log' for more details" "$LINENO" 5 ; } 4.994 4.995 # Provide some information about the compiler. 4.996 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 4.997 @@ -19301,7 +19293,7 @@ 4.998 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.999 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.1000 as_fn_error 77 "C compiler cannot create executables 4.1001 -See \`config.log' for more details" "$LINENO" 5; } 4.1002 +See \`config.log' for more details" "$LINENO" 5 ; } 4.1003 else 4.1004 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 4.1005 $as_echo "yes" >&6; } 4.1006 @@ -19344,7 +19336,7 @@ 4.1007 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.1008 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.1009 as_fn_error $? "cannot compute suffix of executables: cannot compile and link 4.1010 -See \`config.log' for more details" "$LINENO" 5; } 4.1011 +See \`config.log' for more details" "$LINENO" 5 ; } 4.1012 fi 4.1013 rm -f conftest conftest$ac_cv_exeext 4.1014 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 4.1015 @@ -19403,7 +19395,7 @@ 4.1016 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.1017 as_fn_error $? "cannot run C compiled programs. 4.1018 If you meant to cross compile, use \`--host'. 4.1019 -See \`config.log' for more details" "$LINENO" 5; } 4.1020 +See \`config.log' for more details" "$LINENO" 5 ; } 4.1021 fi 4.1022 fi 4.1023 fi 4.1024 @@ -19414,7 +19406,7 @@ 4.1025 ac_clean_files=$ac_clean_files_save 4.1026 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 4.1027 $as_echo_n "checking for suffix of object files... " >&6; } 4.1028 -if ${ac_cv_objext+:} false; then : 4.1029 +if test "${ac_cv_objext+set}" = set; then : 4.1030 $as_echo_n "(cached) " >&6 4.1031 else 4.1032 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.1033 @@ -19455,7 +19447,7 @@ 4.1034 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.1035 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.1036 as_fn_error $? "cannot compute suffix of object files: cannot compile 4.1037 -See \`config.log' for more details" "$LINENO" 5; } 4.1038 +See \`config.log' for more details" "$LINENO" 5 ; } 4.1039 fi 4.1040 rm -f conftest.$ac_cv_objext conftest.$ac_ext 4.1041 fi 4.1042 @@ -19465,7 +19457,7 @@ 4.1043 ac_objext=$OBJEXT 4.1044 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 4.1045 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } 4.1046 -if ${ac_cv_c_compiler_gnu+:} false; then : 4.1047 +if test "${ac_cv_c_compiler_gnu+set}" = set; then : 4.1048 $as_echo_n "(cached) " >&6 4.1049 else 4.1050 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.1051 @@ -19502,7 +19494,7 @@ 4.1052 ac_save_CFLAGS=$CFLAGS 4.1053 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 4.1054 $as_echo_n "checking whether $CC accepts -g... " >&6; } 4.1055 -if ${ac_cv_prog_cc_g+:} false; then : 4.1056 +if test "${ac_cv_prog_cc_g+set}" = set; then : 4.1057 $as_echo_n "(cached) " >&6 4.1058 else 4.1059 ac_save_c_werror_flag=$ac_c_werror_flag 4.1060 @@ -19580,7 +19572,7 @@ 4.1061 fi 4.1062 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 4.1063 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } 4.1064 -if ${ac_cv_prog_cc_c89+:} false; then : 4.1065 +if test "${ac_cv_prog_cc_c89+set}" = set; then : 4.1066 $as_echo_n "(cached) " >&6 4.1067 else 4.1068 ac_cv_prog_cc_c89=no 4.1069 @@ -19699,7 +19691,7 @@ 4.1070 set dummy $ac_prog; ac_word=$2 4.1071 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1072 $as_echo_n "checking for $ac_word... " >&6; } 4.1073 -if ${ac_cv_path_TOOLS_DIR_CXX+:} false; then : 4.1074 +if test "${ac_cv_path_TOOLS_DIR_CXX+set}" = set; then : 4.1075 $as_echo_n "(cached) " >&6 4.1076 else 4.1077 case $TOOLS_DIR_CXX in 4.1078 @@ -19751,7 +19743,7 @@ 4.1079 set dummy $ac_prog; ac_word=$2 4.1080 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1081 $as_echo_n "checking for $ac_word... " >&6; } 4.1082 -if ${ac_cv_path_POTENTIAL_CXX+:} false; then : 4.1083 +if test "${ac_cv_path_POTENTIAL_CXX+set}" = set; then : 4.1084 $as_echo_n "(cached) " >&6 4.1085 else 4.1086 case $POTENTIAL_CXX in 4.1087 @@ -20164,7 +20156,7 @@ 4.1088 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 4.1089 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1090 $as_echo_n "checking for $ac_word... " >&6; } 4.1091 -if ${ac_cv_prog_PROPER_COMPILER_CXX+:} false; then : 4.1092 +if test "${ac_cv_prog_PROPER_COMPILER_CXX+set}" = set; then : 4.1093 $as_echo_n "(cached) " >&6 4.1094 else 4.1095 if test -n "$PROPER_COMPILER_CXX"; then 4.1096 @@ -20208,7 +20200,7 @@ 4.1097 set dummy $ac_prog; ac_word=$2 4.1098 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1099 $as_echo_n "checking for $ac_word... " >&6; } 4.1100 -if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+:} false; then : 4.1101 +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+set}" = set; then : 4.1102 $as_echo_n "(cached) " >&6 4.1103 else 4.1104 if test -n "$ac_ct_PROPER_COMPILER_CXX"; then 4.1105 @@ -20662,7 +20654,7 @@ 4.1106 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 4.1107 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1108 $as_echo_n "checking for $ac_word... " >&6; } 4.1109 -if ${ac_cv_prog_CXX+:} false; then : 4.1110 +if test "${ac_cv_prog_CXX+set}" = set; then : 4.1111 $as_echo_n "(cached) " >&6 4.1112 else 4.1113 if test -n "$CXX"; then 4.1114 @@ -20706,7 +20698,7 @@ 4.1115 set dummy $ac_prog; ac_word=$2 4.1116 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1117 $as_echo_n "checking for $ac_word... " >&6; } 4.1118 -if ${ac_cv_prog_ac_ct_CXX+:} false; then : 4.1119 +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : 4.1120 $as_echo_n "(cached) " >&6 4.1121 else 4.1122 if test -n "$ac_ct_CXX"; then 4.1123 @@ -20784,7 +20776,7 @@ 4.1124 4.1125 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 4.1126 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } 4.1127 -if ${ac_cv_cxx_compiler_gnu+:} false; then : 4.1128 +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : 4.1129 $as_echo_n "(cached) " >&6 4.1130 else 4.1131 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.1132 @@ -20821,7 +20813,7 @@ 4.1133 ac_save_CXXFLAGS=$CXXFLAGS 4.1134 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 4.1135 $as_echo_n "checking whether $CXX accepts -g... " >&6; } 4.1136 -if ${ac_cv_prog_cxx_g+:} false; then : 4.1137 +if test "${ac_cv_prog_cxx_g+set}" = set; then : 4.1138 $as_echo_n "(cached) " >&6 4.1139 else 4.1140 ac_save_cxx_werror_flag=$ac_cxx_werror_flag 4.1141 @@ -20919,7 +20911,7 @@ 4.1142 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 4.1143 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1144 $as_echo_n "checking for $ac_word... " >&6; } 4.1145 -if ${ac_cv_prog_OBJC+:} false; then : 4.1146 +if test "${ac_cv_prog_OBJC+set}" = set; then : 4.1147 $as_echo_n "(cached) " >&6 4.1148 else 4.1149 if test -n "$OBJC"; then 4.1150 @@ -20963,7 +20955,7 @@ 4.1151 set dummy $ac_prog; ac_word=$2 4.1152 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1153 $as_echo_n "checking for $ac_word... " >&6; } 4.1154 -if ${ac_cv_prog_ac_ct_OBJC+:} false; then : 4.1155 +if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then : 4.1156 $as_echo_n "(cached) " >&6 4.1157 else 4.1158 if test -n "$ac_ct_OBJC"; then 4.1159 @@ -21039,7 +21031,7 @@ 4.1160 4.1161 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C compiler" >&5 4.1162 $as_echo_n "checking whether we are using the GNU Objective C compiler... " >&6; } 4.1163 -if ${ac_cv_objc_compiler_gnu+:} false; then : 4.1164 +if test "${ac_cv_objc_compiler_gnu+set}" = set; then : 4.1165 $as_echo_n "(cached) " >&6 4.1166 else 4.1167 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.1168 @@ -21076,7 +21068,7 @@ 4.1169 ac_save_OBJCFLAGS=$OBJCFLAGS 4.1170 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJC accepts -g" >&5 4.1171 $as_echo_n "checking whether $OBJC accepts -g... " >&6; } 4.1172 -if ${ac_cv_prog_objc_g+:} false; then : 4.1173 +if test "${ac_cv_prog_objc_g+set}" = set; then : 4.1174 $as_echo_n "(cached) " >&6 4.1175 else 4.1176 ac_save_objc_werror_flag=$ac_objc_werror_flag 4.1177 @@ -21452,7 +21444,7 @@ 4.1178 set dummy ${ac_tool_prefix}ar; ac_word=$2 4.1179 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1180 $as_echo_n "checking for $ac_word... " >&6; } 4.1181 -if ${ac_cv_prog_AR+:} false; then : 4.1182 +if test "${ac_cv_prog_AR+set}" = set; then : 4.1183 $as_echo_n "(cached) " >&6 4.1184 else 4.1185 if test -n "$AR"; then 4.1186 @@ -21492,7 +21484,7 @@ 4.1187 set dummy ar; ac_word=$2 4.1188 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1189 $as_echo_n "checking for $ac_word... " >&6; } 4.1190 -if ${ac_cv_prog_ac_ct_AR+:} false; then : 4.1191 +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : 4.1192 $as_echo_n "(cached) " >&6 4.1193 else 4.1194 if test -n "$ac_ct_AR"; then 4.1195 @@ -21834,7 +21826,7 @@ 4.1196 set dummy link; ac_word=$2 4.1197 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1198 $as_echo_n "checking for $ac_word... " >&6; } 4.1199 -if ${ac_cv_prog_WINLD+:} false; then : 4.1200 +if test "${ac_cv_prog_WINLD+set}" = set; then : 4.1201 $as_echo_n "(cached) " >&6 4.1202 else 4.1203 if test -n "$WINLD"; then 4.1204 @@ -22173,7 +22165,7 @@ 4.1205 set dummy mt; ac_word=$2 4.1206 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1207 $as_echo_n "checking for $ac_word... " >&6; } 4.1208 -if ${ac_cv_prog_MT+:} false; then : 4.1209 +if test "${ac_cv_prog_MT+set}" = set; then : 4.1210 $as_echo_n "(cached) " >&6 4.1211 else 4.1212 if test -n "$MT"; then 4.1213 @@ -22494,7 +22486,7 @@ 4.1214 set dummy rc; ac_word=$2 4.1215 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1216 $as_echo_n "checking for $ac_word... " >&6; } 4.1217 -if ${ac_cv_prog_RC+:} false; then : 4.1218 +if test "${ac_cv_prog_RC+set}" = set; then : 4.1219 $as_echo_n "(cached) " >&6 4.1220 else 4.1221 if test -n "$RC"; then 4.1222 @@ -22885,7 +22877,7 @@ 4.1223 set dummy lib; ac_word=$2 4.1224 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1225 $as_echo_n "checking for $ac_word... " >&6; } 4.1226 -if ${ac_cv_prog_WINAR+:} false; then : 4.1227 +if test "${ac_cv_prog_WINAR+set}" = set; then : 4.1228 $as_echo_n "(cached) " >&6 4.1229 else 4.1230 if test -n "$WINAR"; then 4.1231 @@ -23191,7 +23183,7 @@ 4.1232 set dummy dumpbin; ac_word=$2 4.1233 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1234 $as_echo_n "checking for $ac_word... " >&6; } 4.1235 -if ${ac_cv_prog_DUMPBIN+:} false; then : 4.1236 +if test "${ac_cv_prog_DUMPBIN+set}" = set; then : 4.1237 $as_echo_n "(cached) " >&6 4.1238 else 4.1239 if test -n "$DUMPBIN"; then 4.1240 @@ -23510,7 +23502,7 @@ 4.1241 CPP= 4.1242 fi 4.1243 if test -z "$CPP"; then 4.1244 - if ${ac_cv_prog_CPP+:} false; then : 4.1245 + if test "${ac_cv_prog_CPP+set}" = set; then : 4.1246 $as_echo_n "(cached) " >&6 4.1247 else 4.1248 # Double quotes because CPP needs to be expanded 4.1249 @@ -23626,7 +23618,7 @@ 4.1250 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.1251 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.1252 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 4.1253 -See \`config.log' for more details" "$LINENO" 5; } 4.1254 +See \`config.log' for more details" "$LINENO" 5 ; } 4.1255 fi 4.1256 4.1257 ac_ext=cpp 4.1258 @@ -23910,7 +23902,7 @@ 4.1259 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 4.1260 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } 4.1261 if test -z "$CXXCPP"; then 4.1262 - if ${ac_cv_prog_CXXCPP+:} false; then : 4.1263 + if test "${ac_cv_prog_CXXCPP+set}" = set; then : 4.1264 $as_echo_n "(cached) " >&6 4.1265 else 4.1266 # Double quotes because CXXCPP needs to be expanded 4.1267 @@ -24026,7 +24018,7 @@ 4.1268 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.1269 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.1270 as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check 4.1271 -See \`config.log' for more details" "$LINENO" 5; } 4.1272 +See \`config.log' for more details" "$LINENO" 5 ; } 4.1273 fi 4.1274 4.1275 ac_ext=cpp 4.1276 @@ -24328,7 +24320,7 @@ 4.1277 set dummy as; ac_word=$2 4.1278 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1279 $as_echo_n "checking for $ac_word... " >&6; } 4.1280 -if ${ac_cv_path_AS+:} false; then : 4.1281 +if test "${ac_cv_path_AS+set}" = set; then : 4.1282 $as_echo_n "(cached) " >&6 4.1283 else 4.1284 case $AS in 4.1285 @@ -24642,7 +24634,7 @@ 4.1286 set dummy $ac_prog; ac_word=$2 4.1287 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1288 $as_echo_n "checking for $ac_word... " >&6; } 4.1289 -if ${ac_cv_path_NM+:} false; then : 4.1290 +if test "${ac_cv_path_NM+set}" = set; then : 4.1291 $as_echo_n "(cached) " >&6 4.1292 else 4.1293 case $NM in 4.1294 @@ -24951,7 +24943,7 @@ 4.1295 set dummy strip; ac_word=$2 4.1296 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1297 $as_echo_n "checking for $ac_word... " >&6; } 4.1298 -if ${ac_cv_path_STRIP+:} false; then : 4.1299 +if test "${ac_cv_path_STRIP+set}" = set; then : 4.1300 $as_echo_n "(cached) " >&6 4.1301 else 4.1302 case $STRIP in 4.1303 @@ -25257,7 +25249,7 @@ 4.1304 set dummy mcs; ac_word=$2 4.1305 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1306 $as_echo_n "checking for $ac_word... " >&6; } 4.1307 -if ${ac_cv_path_MCS+:} false; then : 4.1308 +if test "${ac_cv_path_MCS+set}" = set; then : 4.1309 $as_echo_n "(cached) " >&6 4.1310 else 4.1311 case $MCS in 4.1312 @@ -25565,7 +25557,7 @@ 4.1313 set dummy ${ac_tool_prefix}nm; ac_word=$2 4.1314 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1315 $as_echo_n "checking for $ac_word... " >&6; } 4.1316 -if ${ac_cv_prog_NM+:} false; then : 4.1317 +if test "${ac_cv_prog_NM+set}" = set; then : 4.1318 $as_echo_n "(cached) " >&6 4.1319 else 4.1320 if test -n "$NM"; then 4.1321 @@ -25605,7 +25597,7 @@ 4.1322 set dummy nm; ac_word=$2 4.1323 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1324 $as_echo_n "checking for $ac_word... " >&6; } 4.1325 -if ${ac_cv_prog_ac_ct_NM+:} false; then : 4.1326 +if test "${ac_cv_prog_ac_ct_NM+set}" = set; then : 4.1327 $as_echo_n "(cached) " >&6 4.1328 else 4.1329 if test -n "$ac_ct_NM"; then 4.1330 @@ -25923,7 +25915,7 @@ 4.1331 set dummy ${ac_tool_prefix}strip; ac_word=$2 4.1332 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1333 $as_echo_n "checking for $ac_word... " >&6; } 4.1334 -if ${ac_cv_prog_STRIP+:} false; then : 4.1335 +if test "${ac_cv_prog_STRIP+set}" = set; then : 4.1336 $as_echo_n "(cached) " >&6 4.1337 else 4.1338 if test -n "$STRIP"; then 4.1339 @@ -25963,7 +25955,7 @@ 4.1340 set dummy strip; ac_word=$2 4.1341 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1342 $as_echo_n "checking for $ac_word... " >&6; } 4.1343 -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : 4.1344 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : 4.1345 $as_echo_n "(cached) " >&6 4.1346 else 4.1347 if test -n "$ac_ct_STRIP"; then 4.1348 @@ -26288,7 +26280,7 @@ 4.1349 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 4.1350 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1351 $as_echo_n "checking for $ac_word... " >&6; } 4.1352 -if ${ac_cv_prog_OBJCOPY+:} false; then : 4.1353 +if test "${ac_cv_prog_OBJCOPY+set}" = set; then : 4.1354 $as_echo_n "(cached) " >&6 4.1355 else 4.1356 if test -n "$OBJCOPY"; then 4.1357 @@ -26332,7 +26324,7 @@ 4.1358 set dummy $ac_prog; ac_word=$2 4.1359 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1360 $as_echo_n "checking for $ac_word... " >&6; } 4.1361 -if ${ac_cv_prog_ac_ct_OBJCOPY+:} false; then : 4.1362 +if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then : 4.1363 $as_echo_n "(cached) " >&6 4.1364 else 4.1365 if test -n "$ac_ct_OBJCOPY"; then 4.1366 @@ -26659,7 +26651,7 @@ 4.1367 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 4.1368 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1369 $as_echo_n "checking for $ac_word... " >&6; } 4.1370 -if ${ac_cv_prog_OBJDUMP+:} false; then : 4.1371 +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : 4.1372 $as_echo_n "(cached) " >&6 4.1373 else 4.1374 if test -n "$OBJDUMP"; then 4.1375 @@ -26703,7 +26695,7 @@ 4.1376 set dummy $ac_prog; ac_word=$2 4.1377 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1378 $as_echo_n "checking for $ac_word... " >&6; } 4.1379 -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : 4.1380 +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : 4.1381 $as_echo_n "(cached) " >&6 4.1382 else 4.1383 if test -n "$ac_ct_OBJDUMP"; then 4.1384 @@ -27027,7 +27019,7 @@ 4.1385 set dummy lipo; ac_word=$2 4.1386 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1387 $as_echo_n "checking for $ac_word... " >&6; } 4.1388 -if ${ac_cv_path_LIPO+:} false; then : 4.1389 +if test "${ac_cv_path_LIPO+set}" = set; then : 4.1390 $as_echo_n "(cached) " >&6 4.1391 else 4.1392 case $LIPO in 4.1393 @@ -27342,7 +27334,7 @@ 4.1394 4.1395 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 4.1396 $as_echo_n "checking for ANSI C header files... " >&6; } 4.1397 -if ${ac_cv_header_stdc+:} false; then : 4.1398 +if test "${ac_cv_header_stdc+set}" = set; then : 4.1399 $as_echo_n "(cached) " >&6 4.1400 else 4.1401 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 4.1402 @@ -27518,7 +27510,7 @@ 4.1403 for ac_header in stdio.h 4.1404 do : 4.1405 ac_fn_cxx_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" 4.1406 -if test "x$ac_cv_header_stdio_h" = xyes; then : 4.1407 +if test "x$ac_cv_header_stdio_h" = x""yes; then : 4.1408 cat >>confdefs.h <<_ACEOF 4.1409 #define HAVE_STDIO_H 1 4.1410 _ACEOF 4.1411 @@ -27547,7 +27539,7 @@ 4.1412 # This bug is HP SR number 8606223364. 4.1413 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5 4.1414 $as_echo_n "checking size of int *... " >&6; } 4.1415 -if ${ac_cv_sizeof_int_p+:} false; then : 4.1416 +if test "${ac_cv_sizeof_int_p+set}" = set; then : 4.1417 $as_echo_n "(cached) " >&6 4.1418 else 4.1419 if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int *))" "ac_cv_sizeof_int_p" "$ac_includes_default"; then : 4.1420 @@ -27557,7 +27549,7 @@ 4.1421 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 4.1422 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 4.1423 as_fn_error 77 "cannot compute sizeof (int *) 4.1424 -See \`config.log' for more details" "$LINENO" 5; } 4.1425 +See \`config.log' for more details" "$LINENO" 5 ; } 4.1426 else 4.1427 ac_cv_sizeof_int_p=0 4.1428 fi 4.1429 @@ -27604,7 +27596,7 @@ 4.1430 # 4.1431 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 4.1432 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } 4.1433 -if ${ac_cv_c_bigendian+:} false; then : 4.1434 +if test "${ac_cv_c_bigendian+set}" = set; then : 4.1435 $as_echo_n "(cached) " >&6 4.1436 else 4.1437 ac_cv_c_bigendian=unknown 4.1438 @@ -28258,10 +28250,17 @@ 4.1439 fi 4.1440 if test "x$OPENJDK_TARGET_OS" = xmacosx; then 4.1441 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE" 4.1442 - # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7 4.1443 - MACOSX_REQUIRED_VERSION=1070 4.1444 - 4.1445 - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)" 4.1446 + # Setting these parameters makes it an error to link to macosx APIs that are 4.1447 + # newer than the given OS version and makes the linked binaries compatible even 4.1448 + # if built on a newer version of the OS. 4.1449 + # The expected format is X.Y.Z 4.1450 + MACOSX_VERSION_MIN=10.7.0 4.1451 + 4.1452 + # The macro takes the version with no dots, ex: 1070 4.1453 + # Let the flags variables get resolved in make for easier override on make 4.1454 + # command line. 4.1455 + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 4.1456 + LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 4.1457 fi 4.1458 if test "x$OPENJDK_TARGET_OS" = xbsd; then 4.1459 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" 4.1460 @@ -28608,8 +28607,8 @@ 4.1461 have_x=disabled 4.1462 else 4.1463 case $x_includes,$x_libraries in #( 4.1464 - *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( 4.1465 - *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : 4.1466 + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 4.1467 + *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 4.1468 $as_echo_n "(cached) " >&6 4.1469 else 4.1470 # One or both of the vars are not set, and there is no cached value. 4.1471 @@ -28886,7 +28885,7 @@ 4.1472 else 4.1473 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 4.1474 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } 4.1475 -if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : 4.1476 +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : 4.1477 $as_echo_n "(cached) " >&6 4.1478 else 4.1479 ac_check_lib_save_LIBS=$LIBS 4.1480 @@ -28920,14 +28919,14 @@ 4.1481 fi 4.1482 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 4.1483 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } 4.1484 -if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : 4.1485 +if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : 4.1486 X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" 4.1487 fi 4.1488 4.1489 if test $ac_cv_lib_dnet_dnet_ntoa = no; then 4.1490 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 4.1491 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } 4.1492 -if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : 4.1493 +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : 4.1494 $as_echo_n "(cached) " >&6 4.1495 else 4.1496 ac_check_lib_save_LIBS=$LIBS 4.1497 @@ -28961,7 +28960,7 @@ 4.1498 fi 4.1499 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 4.1500 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } 4.1501 -if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : 4.1502 +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : 4.1503 X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" 4.1504 fi 4.1505 4.1506 @@ -28980,14 +28979,14 @@ 4.1507 # The functions gethostbyname, getservbyname, and inet_addr are 4.1508 # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. 4.1509 ac_fn_cxx_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" 4.1510 -if test "x$ac_cv_func_gethostbyname" = xyes; then : 4.1511 +if test "x$ac_cv_func_gethostbyname" = x""yes; then : 4.1512 4.1513 fi 4.1514 4.1515 if test $ac_cv_func_gethostbyname = no; then 4.1516 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 4.1517 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } 4.1518 -if ${ac_cv_lib_nsl_gethostbyname+:} false; then : 4.1519 +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : 4.1520 $as_echo_n "(cached) " >&6 4.1521 else 4.1522 ac_check_lib_save_LIBS=$LIBS 4.1523 @@ -29021,14 +29020,14 @@ 4.1524 fi 4.1525 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 4.1526 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } 4.1527 -if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : 4.1528 +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : 4.1529 X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" 4.1530 fi 4.1531 4.1532 if test $ac_cv_lib_nsl_gethostbyname = no; then 4.1533 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 4.1534 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; } 4.1535 -if ${ac_cv_lib_bsd_gethostbyname+:} false; then : 4.1536 +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : 4.1537 $as_echo_n "(cached) " >&6 4.1538 else 4.1539 ac_check_lib_save_LIBS=$LIBS 4.1540 @@ -29062,7 +29061,7 @@ 4.1541 fi 4.1542 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 4.1543 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } 4.1544 -if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : 4.1545 +if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : 4.1546 X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" 4.1547 fi 4.1548 4.1549 @@ -29077,14 +29076,14 @@ 4.1550 # must be given before -lnsl if both are needed. We assume that 4.1551 # if connect needs -lnsl, so does gethostbyname. 4.1552 ac_fn_cxx_check_func "$LINENO" "connect" "ac_cv_func_connect" 4.1553 -if test "x$ac_cv_func_connect" = xyes; then : 4.1554 +if test "x$ac_cv_func_connect" = x""yes; then : 4.1555 4.1556 fi 4.1557 4.1558 if test $ac_cv_func_connect = no; then 4.1559 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 4.1560 $as_echo_n "checking for connect in -lsocket... " >&6; } 4.1561 -if ${ac_cv_lib_socket_connect+:} false; then : 4.1562 +if test "${ac_cv_lib_socket_connect+set}" = set; then : 4.1563 $as_echo_n "(cached) " >&6 4.1564 else 4.1565 ac_check_lib_save_LIBS=$LIBS 4.1566 @@ -29118,7 +29117,7 @@ 4.1567 fi 4.1568 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 4.1569 $as_echo "$ac_cv_lib_socket_connect" >&6; } 4.1570 -if test "x$ac_cv_lib_socket_connect" = xyes; then : 4.1571 +if test "x$ac_cv_lib_socket_connect" = x""yes; then : 4.1572 X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" 4.1573 fi 4.1574 4.1575 @@ -29126,14 +29125,14 @@ 4.1576 4.1577 # Guillermo Gomez says -lposix is necessary on A/UX. 4.1578 ac_fn_cxx_check_func "$LINENO" "remove" "ac_cv_func_remove" 4.1579 -if test "x$ac_cv_func_remove" = xyes; then : 4.1580 +if test "x$ac_cv_func_remove" = x""yes; then : 4.1581 4.1582 fi 4.1583 4.1584 if test $ac_cv_func_remove = no; then 4.1585 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 4.1586 $as_echo_n "checking for remove in -lposix... " >&6; } 4.1587 -if ${ac_cv_lib_posix_remove+:} false; then : 4.1588 +if test "${ac_cv_lib_posix_remove+set}" = set; then : 4.1589 $as_echo_n "(cached) " >&6 4.1590 else 4.1591 ac_check_lib_save_LIBS=$LIBS 4.1592 @@ -29167,7 +29166,7 @@ 4.1593 fi 4.1594 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 4.1595 $as_echo "$ac_cv_lib_posix_remove" >&6; } 4.1596 -if test "x$ac_cv_lib_posix_remove" = xyes; then : 4.1597 +if test "x$ac_cv_lib_posix_remove" = x""yes; then : 4.1598 X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" 4.1599 fi 4.1600 4.1601 @@ -29175,14 +29174,14 @@ 4.1602 4.1603 # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. 4.1604 ac_fn_cxx_check_func "$LINENO" "shmat" "ac_cv_func_shmat" 4.1605 -if test "x$ac_cv_func_shmat" = xyes; then : 4.1606 +if test "x$ac_cv_func_shmat" = x""yes; then : 4.1607 4.1608 fi 4.1609 4.1610 if test $ac_cv_func_shmat = no; then 4.1611 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 4.1612 $as_echo_n "checking for shmat in -lipc... " >&6; } 4.1613 -if ${ac_cv_lib_ipc_shmat+:} false; then : 4.1614 +if test "${ac_cv_lib_ipc_shmat+set}" = set; then : 4.1615 $as_echo_n "(cached) " >&6 4.1616 else 4.1617 ac_check_lib_save_LIBS=$LIBS 4.1618 @@ -29216,7 +29215,7 @@ 4.1619 fi 4.1620 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 4.1621 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } 4.1622 -if test "x$ac_cv_lib_ipc_shmat" = xyes; then : 4.1623 +if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : 4.1624 X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" 4.1625 fi 4.1626 4.1627 @@ -29234,7 +29233,7 @@ 4.1628 # John Interrante, Karl Berry 4.1629 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 4.1630 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } 4.1631 -if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : 4.1632 +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : 4.1633 $as_echo_n "(cached) " >&6 4.1634 else 4.1635 ac_check_lib_save_LIBS=$LIBS 4.1636 @@ -29268,7 +29267,7 @@ 4.1637 fi 4.1638 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 4.1639 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } 4.1640 -if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : 4.1641 +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : 4.1642 X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" 4.1643 fi 4.1644 4.1645 @@ -30281,7 +30280,7 @@ 4.1646 LDFLAGS="$FREETYPE2_LIBS" 4.1647 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_Init_FreeType in -lfreetype" >&5 4.1648 $as_echo_n "checking for FT_Init_FreeType in -lfreetype... " >&6; } 4.1649 -if ${ac_cv_lib_freetype_FT_Init_FreeType+:} false; then : 4.1650 +if test "${ac_cv_lib_freetype_FT_Init_FreeType+set}" = set; then : 4.1651 $as_echo_n "(cached) " >&6 4.1652 else 4.1653 ac_check_lib_save_LIBS=$LIBS 4.1654 @@ -30315,7 +30314,7 @@ 4.1655 fi 4.1656 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5 4.1657 $as_echo "$ac_cv_lib_freetype_FT_Init_FreeType" >&6; } 4.1658 -if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = xyes; then : 4.1659 +if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = x""yes; then : 4.1660 FREETYPE2_FOUND=true 4.1661 else 4.1662 as_fn_error $? "Could not find freetype2! $HELP_MSG " "$LINENO" 5 4.1663 @@ -30603,7 +30602,7 @@ 4.1664 for ac_header in alsa/asoundlib.h 4.1665 do : 4.1666 ac_fn_cxx_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default" 4.1667 -if test "x$ac_cv_header_alsa_asoundlib_h" = xyes; then : 4.1668 +if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then : 4.1669 cat >>confdefs.h <<_ACEOF 4.1670 #define HAVE_ALSA_ASOUNDLIB_H 1 4.1671 _ACEOF 4.1672 @@ -30662,7 +30661,7 @@ 4.1673 USE_EXTERNAL_LIBJPEG=true 4.1674 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5 4.1675 $as_echo_n "checking for main in -ljpeg... " >&6; } 4.1676 -if ${ac_cv_lib_jpeg_main+:} false; then : 4.1677 +if test "${ac_cv_lib_jpeg_main+set}" = set; then : 4.1678 $as_echo_n "(cached) " >&6 4.1679 else 4.1680 ac_check_lib_save_LIBS=$LIBS 4.1681 @@ -30690,7 +30689,7 @@ 4.1682 fi 4.1683 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5 4.1684 $as_echo "$ac_cv_lib_jpeg_main" >&6; } 4.1685 -if test "x$ac_cv_lib_jpeg_main" = xyes; then : 4.1686 +if test "x$ac_cv_lib_jpeg_main" = x""yes; then : 4.1687 cat >>confdefs.h <<_ACEOF 4.1688 #define HAVE_LIBJPEG 1 4.1689 _ACEOF 4.1690 @@ -30714,7 +30713,7 @@ 4.1691 USE_EXTERNAL_LIBJPEG=true 4.1692 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5 4.1693 $as_echo_n "checking for main in -lgif... " >&6; } 4.1694 -if ${ac_cv_lib_gif_main+:} false; then : 4.1695 +if test "${ac_cv_lib_gif_main+set}" = set; then : 4.1696 $as_echo_n "(cached) " >&6 4.1697 else 4.1698 ac_check_lib_save_LIBS=$LIBS 4.1699 @@ -30742,7 +30741,7 @@ 4.1700 fi 4.1701 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5 4.1702 $as_echo "$ac_cv_lib_gif_main" >&6; } 4.1703 -if test "x$ac_cv_lib_gif_main" = xyes; then : 4.1704 +if test "x$ac_cv_lib_gif_main" = x""yes; then : 4.1705 cat >>confdefs.h <<_ACEOF 4.1706 #define HAVE_LIBGIF 1 4.1707 _ACEOF 4.1708 @@ -30772,7 +30771,7 @@ 4.1709 4.1710 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5 4.1711 $as_echo_n "checking for compress in -lz... " >&6; } 4.1712 -if ${ac_cv_lib_z_compress+:} false; then : 4.1713 +if test "${ac_cv_lib_z_compress+set}" = set; then : 4.1714 $as_echo_n "(cached) " >&6 4.1715 else 4.1716 ac_check_lib_save_LIBS=$LIBS 4.1717 @@ -30806,7 +30805,7 @@ 4.1718 fi 4.1719 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5 4.1720 $as_echo "$ac_cv_lib_z_compress" >&6; } 4.1721 -if test "x$ac_cv_lib_z_compress" = xyes; then : 4.1722 +if test "x$ac_cv_lib_z_compress" = x""yes; then : 4.1723 ZLIB_FOUND=yes 4.1724 else 4.1725 ZLIB_FOUND=no 4.1726 @@ -30899,7 +30898,7 @@ 4.1727 4.1728 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 4.1729 $as_echo_n "checking for cos in -lm... " >&6; } 4.1730 -if ${ac_cv_lib_m_cos+:} false; then : 4.1731 +if test "${ac_cv_lib_m_cos+set}" = set; then : 4.1732 $as_echo_n "(cached) " >&6 4.1733 else 4.1734 ac_check_lib_save_LIBS=$LIBS 4.1735 @@ -30933,7 +30932,7 @@ 4.1736 fi 4.1737 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 4.1738 $as_echo "$ac_cv_lib_m_cos" >&6; } 4.1739 -if test "x$ac_cv_lib_m_cos" = xyes; then : 4.1740 +if test "x$ac_cv_lib_m_cos" = x""yes; then : 4.1741 cat >>confdefs.h <<_ACEOF 4.1742 #define HAVE_LIBM 1 4.1743 _ACEOF 4.1744 @@ -30957,7 +30956,7 @@ 4.1745 LIBS="" 4.1746 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 4.1747 $as_echo_n "checking for dlopen in -ldl... " >&6; } 4.1748 -if ${ac_cv_lib_dl_dlopen+:} false; then : 4.1749 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : 4.1750 $as_echo_n "(cached) " >&6 4.1751 else 4.1752 ac_check_lib_save_LIBS=$LIBS 4.1753 @@ -30991,7 +30990,7 @@ 4.1754 fi 4.1755 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 4.1756 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } 4.1757 -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : 4.1758 +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : 4.1759 cat >>confdefs.h <<_ACEOF 4.1760 #define HAVE_LIBDL 1 4.1761 _ACEOF 4.1762 @@ -31635,7 +31634,7 @@ 4.1763 set dummy ccache; ac_word=$2 4.1764 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 4.1765 $as_echo_n "checking for $ac_word... " >&6; } 4.1766 -if ${ac_cv_path_CCACHE+:} false; then : 4.1767 +if test "${ac_cv_path_CCACHE+set}" = set; then : 4.1768 $as_echo_n "(cached) " >&6 4.1769 else 4.1770 case $CCACHE in 4.1771 @@ -31896,21 +31895,10 @@ 4.1772 :end' >>confcache 4.1773 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else 4.1774 if test -w "$cache_file"; then 4.1775 - if test "x$cache_file" != "x/dev/null"; then 4.1776 + test "x$cache_file" != "x/dev/null" && 4.1777 { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 4.1778 $as_echo "$as_me: updating cache $cache_file" >&6;} 4.1779 - if test ! -f "$cache_file" || test -h "$cache_file"; then 4.1780 - cat confcache >"$cache_file" 4.1781 - else 4.1782 - case $cache_file in #( 4.1783 - */* | ?:*) 4.1784 - mv -f confcache "$cache_file"$$ && 4.1785 - mv -f "$cache_file"$$ "$cache_file" ;; #( 4.1786 - *) 4.1787 - mv -f confcache "$cache_file" ;; 4.1788 - esac 4.1789 - fi 4.1790 - fi 4.1791 + cat confcache >$cache_file 4.1792 else 4.1793 { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 4.1794 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} 4.1795 @@ -31942,7 +31930,7 @@ 4.1796 4.1797 4.1798 4.1799 -: "${CONFIG_STATUS=./config.status}" 4.1800 +: ${CONFIG_STATUS=./config.status} 4.1801 ac_write_fail=0 4.1802 ac_clean_files_save=$ac_clean_files 4.1803 ac_clean_files="$ac_clean_files $CONFIG_STATUS" 4.1804 @@ -32043,7 +32031,6 @@ 4.1805 IFS=" "" $as_nl" 4.1806 4.1807 # Find who we are. Look in the path if we contain no directory separator. 4.1808 -as_myself= 4.1809 case $0 in #(( 4.1810 *[\\/]* ) as_myself=$0 ;; 4.1811 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 4.1812 @@ -32351,7 +32338,7 @@ 4.1813 # values after options handling. 4.1814 ac_log=" 4.1815 This file was extended by OpenJDK $as_me jdk8, which was 4.1816 -generated by GNU Autoconf 2.68. Invocation command line was 4.1817 +generated by GNU Autoconf 2.67. Invocation command line was 4.1818 4.1819 CONFIG_FILES = $CONFIG_FILES 4.1820 CONFIG_HEADERS = $CONFIG_HEADERS 4.1821 @@ -32414,7 +32401,7 @@ 4.1822 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 4.1823 ac_cs_version="\\ 4.1824 OpenJDK config.status jdk8 4.1825 -configured by $0, generated by GNU Autoconf 2.68, 4.1826 +configured by $0, generated by GNU Autoconf 2.67, 4.1827 with options \\"\$ac_cs_config\\" 4.1828 4.1829 Copyright (C) 2010 Free Software Foundation, Inc. 4.1830 @@ -32543,7 +32530,7 @@ 4.1831 "$OUTPUT_ROOT/spec.sh") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/spec.sh:$AUTOCONF_DIR/spec.sh.in" ;; 4.1832 "$OUTPUT_ROOT/Makefile") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in" ;; 4.1833 4.1834 - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 4.1835 + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 4.1836 esac 4.1837 done 4.1838 4.1839 @@ -32565,10 +32552,9 @@ 4.1840 # after its creation but before its name has been assigned to `$tmp'. 4.1841 $debug || 4.1842 { 4.1843 - tmp= ac_tmp= 4.1844 + tmp= 4.1845 trap 'exit_status=$? 4.1846 - : "${ac_tmp:=$tmp}" 4.1847 - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status 4.1848 + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status 4.1849 ' 0 4.1850 trap 'as_fn_exit 1' 1 2 13 15 4.1851 } 4.1852 @@ -32576,13 +32562,12 @@ 4.1853 4.1854 { 4.1855 tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && 4.1856 - test -d "$tmp" 4.1857 + test -n "$tmp" && test -d "$tmp" 4.1858 } || 4.1859 { 4.1860 tmp=./conf$$-$RANDOM 4.1861 (umask 077 && mkdir "$tmp") 4.1862 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 4.1863 -ac_tmp=$tmp 4.1864 4.1865 # Set up the scripts for CONFIG_FILES section. 4.1866 # No need to generate them if there are no CONFIG_FILES. 4.1867 @@ -32604,7 +32589,7 @@ 4.1868 ac_cs_awk_cr=$ac_cr 4.1869 fi 4.1870 4.1871 -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && 4.1872 +echo 'BEGIN {' >"$tmp/subs1.awk" && 4.1873 _ACEOF 4.1874 4.1875 4.1876 @@ -32632,7 +32617,7 @@ 4.1877 rm -f conf$$subs.sh 4.1878 4.1879 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 4.1880 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && 4.1881 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && 4.1882 _ACEOF 4.1883 sed -n ' 4.1884 h 4.1885 @@ -32680,7 +32665,7 @@ 4.1886 rm -f conf$$subs.awk 4.1887 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 4.1888 _ACAWK 4.1889 -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && 4.1890 +cat >>"\$tmp/subs1.awk" <<_ACAWK && 4.1891 for (key in S) S_is_set[key] = 1 4.1892 FS = "" 4.1893 4.1894 @@ -32712,7 +32697,7 @@ 4.1895 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" 4.1896 else 4.1897 cat 4.1898 -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ 4.1899 +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 4.1900 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 4.1901 _ACEOF 4.1902 4.1903 @@ -32746,7 +32731,7 @@ 4.1904 # No need to generate them if there are no CONFIG_HEADERS. 4.1905 # This happens for instance with `./config.status Makefile'. 4.1906 if test -n "$CONFIG_HEADERS"; then 4.1907 -cat >"$ac_tmp/defines.awk" <<\_ACAWK || 4.1908 +cat >"$tmp/defines.awk" <<\_ACAWK || 4.1909 BEGIN { 4.1910 _ACEOF 4.1911 4.1912 @@ -32758,8 +32743,8 @@ 4.1913 # handling of long lines. 4.1914 ac_delim='%!_!# ' 4.1915 for ac_last_try in false false :; do 4.1916 - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` 4.1917 - if test -z "$ac_tt"; then 4.1918 + ac_t=`sed -n "/$ac_delim/p" confdefs.h` 4.1919 + if test -z "$ac_t"; then 4.1920 break 4.1921 elif $ac_last_try; then 4.1922 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 4.1923 @@ -32860,7 +32845,7 @@ 4.1924 esac 4.1925 case $ac_mode$ac_tag in 4.1926 :[FHL]*:*);; 4.1927 - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; 4.1928 + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 4.1929 :[FH]-) ac_tag=-:-;; 4.1930 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 4.1931 esac 4.1932 @@ -32879,7 +32864,7 @@ 4.1933 for ac_f 4.1934 do 4.1935 case $ac_f in 4.1936 - -) ac_f="$ac_tmp/stdin";; 4.1937 + -) ac_f="$tmp/stdin";; 4.1938 *) # Look for the file first in the build tree, then in the source tree 4.1939 # (if the path is not absolute). The absolute path cannot be DOS-style, 4.1940 # because $ac_f cannot contain `:'. 4.1941 @@ -32888,7 +32873,7 @@ 4.1942 [\\/$]*) false;; 4.1943 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 4.1944 esac || 4.1945 - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; 4.1946 + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 4.1947 esac 4.1948 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 4.1949 as_fn_append ac_file_inputs " '$ac_f'" 4.1950 @@ -32914,8 +32899,8 @@ 4.1951 esac 4.1952 4.1953 case $ac_tag in 4.1954 - *:-:* | *:-) cat >"$ac_tmp/stdin" \ 4.1955 - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 4.1956 + *:-:* | *:-) cat >"$tmp/stdin" \ 4.1957 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 4.1958 esac 4.1959 ;; 4.1960 esac 4.1961 @@ -33040,22 +33025,21 @@ 4.1962 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t 4.1963 $ac_datarootdir_hack 4.1964 " 4.1965 -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ 4.1966 - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 4.1967 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 4.1968 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 4.1969 4.1970 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 4.1971 - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && 4.1972 - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ 4.1973 - "$ac_tmp/out"`; test -z "$ac_out"; } && 4.1974 + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 4.1975 + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 4.1976 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 4.1977 which seems to be undefined. Please make sure it is defined" >&5 4.1978 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 4.1979 which seems to be undefined. Please make sure it is defined" >&2;} 4.1980 4.1981 - rm -f "$ac_tmp/stdin" 4.1982 + rm -f "$tmp/stdin" 4.1983 case $ac_file in 4.1984 - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; 4.1985 - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; 4.1986 + -) cat "$tmp/out" && rm -f "$tmp/out";; 4.1987 + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 4.1988 esac \ 4.1989 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 4.1990 ;; 4.1991 @@ -33066,20 +33050,20 @@ 4.1992 if test x"$ac_file" != x-; then 4.1993 { 4.1994 $as_echo "/* $configure_input */" \ 4.1995 - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" 4.1996 - } >"$ac_tmp/config.h" \ 4.1997 + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 4.1998 + } >"$tmp/config.h" \ 4.1999 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 4.2000 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then 4.2001 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 4.2002 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 4.2003 $as_echo "$as_me: $ac_file is unchanged" >&6;} 4.2004 else 4.2005 rm -f "$ac_file" 4.2006 - mv "$ac_tmp/config.h" "$ac_file" \ 4.2007 + mv "$tmp/config.h" "$ac_file" \ 4.2008 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 4.2009 fi 4.2010 else 4.2011 $as_echo "/* $configure_input */" \ 4.2012 - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ 4.2013 + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 4.2014 || as_fn_error $? "could not create -" "$LINENO" 5 4.2015 fi 4.2016 ;;
5.1 --- a/common/autoconf/spec.gmk.in Tue Feb 26 09:25:44 2013 -0800 5.2 +++ b/common/autoconf/spec.gmk.in Tue Mar 05 11:46:02 2013 -0800 5.3 @@ -286,7 +286,7 @@ 5.4 OPENWIN_HOME:=@OPENWIN_HOME@ 5.5 5.6 # The lowest required version of macosx to enforce compatiblity for 5.7 -MACOSX_REQUIRED_VERSION=@MACOSX_REQUIRED_VERSION@ 5.8 +MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@ 5.9 5.10 # There are two types: CC or CL 5.11 # CC is gcc and others behaving reasonably similar.
6.1 --- a/common/autoconf/toolchain.m4 Tue Feb 26 09:25:44 2013 -0800 6.2 +++ b/common/autoconf/toolchain.m4 Tue Mar 05 11:46:02 2013 -0800 6.3 @@ -876,10 +876,17 @@ 6.4 fi 6.5 if test "x$OPENJDK_TARGET_OS" = xmacosx; then 6.6 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE" 6.7 - # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7 6.8 - MACOSX_REQUIRED_VERSION=1070 6.9 - AC_SUBST(MACOSX_REQUIRED_VERSION) 6.10 - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)" 6.11 + # Setting these parameters makes it an error to link to macosx APIs that are 6.12 + # newer than the given OS version and makes the linked binaries compatible even 6.13 + # if built on a newer version of the OS. 6.14 + # The expected format is X.Y.Z 6.15 + MACOSX_VERSION_MIN=10.7.0 6.16 + AC_SUBST(MACOSX_VERSION_MIN) 6.17 + # The macro takes the version with no dots, ex: 1070 6.18 + # Let the flags variables get resolved in make for easier override on make 6.19 + # command line. 6.20 + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 6.21 + LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 6.22 fi 6.23 if test "x$OPENJDK_TARGET_OS" = xbsd; then 6.24 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"