Thu, 28 Feb 2013 20:29:19 -0800
Merge
1.1 --- a/README Thu Feb 28 10:41:46 2013 -0800 1.2 +++ b/README Thu Feb 28 20:29:19 2013 -0800 1.3 @@ -1,45 +1,40 @@ 1.4 README: 1.5 This file should be located at the top of the OpenJDK Mercurial root 1.6 - repository. This root repository will include a "make" directory, 1.7 - and a Makefile for building the entire OpenJDK. 1.8 - A full OpenJDK repository set (forest) should also include the following 1.9 - 6 nested repositories: 1.10 + repository. A full OpenJDK repository set (forest) should also include 1.11 + the following 6 nested repositories: 1.12 "jdk", "hotspot", "langtools", "corba", "jaxws" and "jaxp". 1.13 - There are also several source downloads for the jax* repositories that 1.14 - will be needed. 1.15 1.16 - This one root repository can be obtained with something like: 1.17 - 1.18 + The root repository can be obtained with something like: 1.19 hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8 1.20 1.21 - To make sure you have all the nested repositories, you can run the 1.22 - get_source.sh script located in the same respository as this file: 1.23 - 1.24 + You can run the get_source.sh script located in the root repository to get 1.25 + the other needed repositories: 1.26 cd openjdk8 && sh ./get_source.sh 1.27 1.28 People unfamiliar with Mercurial should read the first few chapters of 1.29 the Mercurial book: http://hgbook.red-bean.com/read/ 1.30 1.31 - See http://openjdk.java.net/ for more information about the OpenJDK. 1.32 + See http://openjdk.java.net/ for more information about OpenJDK. 1.33 1.34 Simple Build Instructions: 1.35 1.36 0. Get the necessary system software/packages installed on your system, see 1.37 - http://hg.openjdk.java.net/jdk8/build/raw-file/tip/README-builds.html 1.38 + http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html 1.39 1.40 - 1. If you don't have a jdk6 installed, download and install a JDK 6 from 1.41 + 1. If you don't have a jdk7u7 or newer jdk, download and install it from 1.42 http://java.sun.com/javase/downloads/index.jsp 1.43 - Set the environment variable ALT_BOOTDIR to the location of JDK 6. 1.44 + Add the /bin directory of this installation to your PATH environment 1.45 + variable. 1.46 1.47 - 2. Check the sanity of doing a build with your current system: 1.48 - make sanity 1.49 - See README-builds.html if you run into problems. 1.50 + 2. Configure the build: 1.51 + bash ./configure 1.52 1.53 - 3. Do a complete build of the OpenJDK: 1.54 + 3. Build the OpenJDK: 1.55 make all 1.56 - The resulting JDK image should be found in build/*/j2sdk-image 1.57 + The resulting JDK image should be found in build/*/images/j2sdk-image 1.58 1.59 where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually 1.60 -is 3.81 or newer. 1.61 +is 3.81 or newer. Note that on Solaris, GNU make is called "gmake". 1.62 1.63 -Complete details are available in README-builds.html. 1.64 +Complete details are available in the file: 1.65 + http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html
2.1 --- a/README-builds.html Thu Feb 28 10:41:46 2013 -0800 2.2 +++ b/README-builds.html Thu Feb 28 20:29:19 2013 -0800 2.3 @@ -3,14 +3,15 @@ 2.4 <head> 2.5 <title>OpenJDK Build README</title> 2.6 </head> 2.7 - <body style="background-color:lightcyan"> 2.8 + <body style="background-color:aquamarine"> 2.9 + 2.10 <!-- ====================================================== --> 2.11 <table width="100%"> 2.12 <tr> 2.13 <td align="center"> 2.14 <img alt="OpenJDK" 2.15 src="http://openjdk.java.net/images/openjdk.png" 2.16 - width=256 /> 2.17 + width=256> 2.18 </td> 2.19 </tr> 2.20 <tr> 2.21 @@ -19,109 +20,116 @@ 2.22 </td> 2.23 </tr> 2.24 </table> 2.25 - <!-- ------------------------------------------------------ --> 2.26 + 2.27 + <!-- ====================================================== --> 2.28 <hr> 2.29 <h2><a name="introduction">Introduction</a></h2> 2.30 <blockquote> 2.31 - <p> 2.32 - This README file contains build instructions for the 2.33 - <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. 2.34 - Building the source code for the 2.35 - OpenJDK 2.36 - requires 2.37 - a certain degree of technical expertise. 2.38 + This README file contains build instructions for the 2.39 + <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. 2.40 + Building the source code for the 2.41 + OpenJDK 2.42 + requires 2.43 + a certain degree of technical expertise. 2.44 + 2.45 + <!-- ====================================================== --> 2.46 + <h3>!!!!!!!!!!!!!!! THIS IS A MAJOR RE-WRITE of this document. !!!!!!!!!!!!!</h3> 2.47 + <blockquote> 2.48 + Some Headlines: 2.49 + <ul> 2.50 + <li> 2.51 + The build is now a "<code>configure && make</code>" style build 2.52 + </li> 2.53 + <li> 2.54 + Any GNU make 3.81 or newer should work 2.55 + </li> 2.56 + <li> 2.57 + The build should scale, i.e. more processors should 2.58 + cause the build to be done in less wall-clock time 2.59 + </li> 2.60 + <li> 2.61 + Nested or recursive make invocations have been significantly 2.62 + reduced, as has the total fork/exec or spawning 2.63 + of sub processes during the build 2.64 + </li> 2.65 + <li> 2.66 + Windows MKS usage is no longer supported 2.67 + </li> 2.68 + <li> 2.69 + Windows Visual Studio <code>vsvars*.bat</code> and 2.70 + <code>vcvars*.bat</code> files are run automatically 2.71 + </li> 2.72 + <li> 2.73 + Ant is no longer used when building the OpenJDK 2.74 + </li> 2.75 + <li> 2.76 + Use of ALT_* environment variables for configuring the 2.77 + build is no longer supported 2.78 + </li> 2.79 + </ul> 2.80 + </blockquote> 2.81 </blockquote> 2.82 - <!-- ------------------------------------------------------ --> 2.83 + 2.84 + <!-- ====================================================== --> 2.85 <hr> 2.86 <h2><a name="contents">Contents</a></h2> 2.87 <blockquote> 2.88 <ul> 2.89 <li><a href="#introduction">Introduction</a></li> 2.90 + 2.91 <li><a href="#hg">Use of Mercurial</a> 2.92 <ul> 2.93 <li><a href="#get_source">Getting the Source</a></li> 2.94 + <li><a href="#repositories">Repositories</a></li> 2.95 </ul> 2.96 </li> 2.97 - <li><a href="#MBE">Minimum Build Environments</a></li> 2.98 - <li><a href="#SDBE">Specific Developer Build Environments</a> 2.99 + 2.100 + <li><a href="#building">Building</a> 2.101 <ul> 2.102 - <li><a href="#fedora">Fedora Linux</a> </li> 2.103 - <li><a href="#centos">CentOS Linux</a> </li> 2.104 - <li><a href="#debian">Debian GNU/Linux</a></li> 2.105 - <li><a href="#ubuntu">Ubuntu Linux</a> </li> 2.106 - <li><a href="#opensuse">OpenSUSE</a></li> 2.107 - <li><a href="#mandriva">Mandriva</a></li> 2.108 - <li><a href="#opensolaris">OpenSolaris</a></li> 2.109 + <li><a href="#setup">System Setup</a> 2.110 + <ul> 2.111 + <li><a href="#linux">Linux</a></li> 2.112 + <li><a href="#solaris">Solaris</a></li> 2.113 + <li><a href="#macosx">Mac OS X</a></li> 2.114 + <li><a href="#windows">Windows</a></li> 2.115 + </ul> 2.116 + </li> 2.117 + <li><a href="#configure">Configure</a></li> 2.118 + <li><a href="#make">Make</a></li> 2.119 </ul> 2.120 </li> 2.121 - <li><a href="#directories">Source Directory Structure</a> 2.122 + <li><a href="#testing">Testing</a></li> 2.123 + </ul> 2.124 + <hr> 2.125 + <ul> 2.126 + <li><a href="#hints">Appendix A: Hints and Tips</a> 2.127 <ul> 2.128 - <li><a href="#drops">Managing the Source Drops</a></li> 2.129 + <li><a href="#faq">FAQ</a></li> 2.130 + <li><a href="#performance">Build Performance Tips</a></li> 2.131 + <li><a href="#troubleshooting">Troubleshooting</a></li> 2.132 </ul> 2.133 </li> 2.134 - <li><a href="#building">Build Information</a> 2.135 - <ul> 2.136 - <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li> 2.137 - <li><a href="#linux">Basic Linux System Setup</a> </li> 2.138 - <li><a href="#solaris">Basic Solaris System Setup</a> </li> 2.139 - <li><a href="#windows">Basic Windows System Setup</a> </li> 2.140 - <li><a href="#macosx">Basic Mac OS X System Setup</a></li> 2.141 - <li><a href="#dependencies">Build Dependencies</a> 2.142 - <ul> 2.143 - <li><a href="#bootjdk">Bootstrap JDK</a> </li> 2.144 - <li><a href="#importjdk">Optional Import JDK</a> </li> 2.145 - <li><a href="#ant">Ant 1.7.1</a> </li> 2.146 - <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> 2.147 - <li><a href="#compilers">Compilers</a> 2.148 - <ul> 2.149 - <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> 2.150 - <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li> 2.151 - <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li> 2.152 - <li><a href="#gcc">Linux gcc/binutils</a> </li> 2.153 - <li><a href="#studio">Sun Studio</a> </li> 2.154 - </ul> 2.155 - </li> 2.156 - <li><a href="#zip">Zip and Unzip</a> </li> 2.157 - <li><a href="#freetype">FreeType2 Fonts</a> </li> 2.158 - <li>Linux and Solaris: 2.159 - <ul> 2.160 - <li><a href="#cups">CUPS Include files</a> </li> 2.161 - <li><a href="#xrender">XRender Include files</a></li> 2.162 - </ul> 2.163 - </li> 2.164 - <li>Linux only: 2.165 - <ul> 2.166 - <li><a href="#alsa">ALSA files</a> </li> 2.167 - </ul> 2.168 - </li> 2.169 - <li>Windows only: 2.170 - <ul> 2.171 - <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>) <strong>or</strong></li> 2.172 - <li>Minimalist GNU for Windows (<a href="#msys">MinGW/MSYS</a>)</li> 2.173 - <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li> 2.174 - </ul> 2.175 - </li> 2.176 - </ul> 2.177 - </li> 2.178 - </ul> 2.179 - </li> 2.180 - <li><a href="#creating">Creating the Build</a> </li> 2.181 - <li><a href="#testing">Testing the Build</a> </li> 2.182 - <li><a href="#variables">Environment/Make Variables</a></li> 2.183 - <li><a href="#troubleshooting">Troubleshooting</a></li> 2.184 - <li><a href="#newbuild">The New Build</a></li> 2.185 + <li><a href="#gmake">Appendix B: GNU Make Information</a></li> 2.186 + <li><a href="#buildenvironments">Appendix C: Build Environments</a></li> 2.187 + 2.188 + <!-- Leave out 2.189 + <li><a href="#mapping">Appendix D: Mapping Old Builds to the New Builds</a></li> 2.190 + --> 2.191 + 2.192 </ul> 2.193 </blockquote> 2.194 2.195 - <!-- ------------------------------------------------------ --> 2.196 + <!-- ====================================================== --> 2.197 <hr> 2.198 <h2><a name="hg">Use of Mercurial</a></h2> 2.199 <blockquote> 2.200 The OpenJDK sources are maintained with the revision control system 2.201 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>. 2.202 If you are new to Mercurial, please see the 2.203 - <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a> 2.204 - or refer to the <a href="http://hgbook.red-bean.com/">Mercurial Book</a>. 2.205 + <a href="http://mercurial.selenic.com/wiki/BeginnersGuides"> 2.206 + Beginner Guides</a> 2.207 + or refer to the <a href="http://hgbook.red-bean.com/"> 2.208 + Mercurial Book</a>. 2.209 The first few chapters of the book provide an excellent overview of 2.210 Mercurial, what it is and how it works. 2.211 <br> 2.212 @@ -130,578 +138,1631 @@ 2.213 Developer Guide: Installing and Configuring Mercurial</a> 2.214 section for more information. 2.215 2.216 - <!-- ------------------------------------------------------ --> 2.217 <h3><a name="get_source">Getting the Source</a></h3> 2.218 <blockquote> 2.219 To get the entire set of OpenJDK Mercurial repositories 2.220 - use the script <code>get_source.sh</code> located in the root repository: 2.221 + use the script <code>get_source.sh</code> located in the 2.222 + root repository: 2.223 <blockquote> 2.224 - <tt> 2.225 - hg clone http://hg.openjdk.java.net/jdk8/jdk8 <i>YourOpenJDK</i> 2.226 - <br>cd <i>YourOpenJDK</i> 2.227 - <br>sh ./get_source.sh 2.228 - </tt> 2.229 + <code> 2.230 + hg clone http://hg.openjdk.java.net/jdk8/jdk8 2.231 + <i>YourOpenJDK</i> 2.232 + <br> 2.233 + cd <i>YourOpenJDK</i> 2.234 + <br> 2.235 + bash ./get_source.sh 2.236 + </code> 2.237 </blockquote> 2.238 - Once you have all the repositories, the 2.239 - script <tt>make/scripts/hgforest.sh</tt> 2.240 - can be used to repeat the same <tt>hg</tt> 2.241 - command on every repository in the forest, e.g. 2.242 + Once you have all the repositories, keep in mind that each 2.243 + repository is it's own independent repository. 2.244 + You can also re-run <code>./get_source.sh</code> anytime to 2.245 + pull over all the latest changesets in all the repositories. 2.246 + This set of nested repositories has been given the term 2.247 + "forest" and there are various ways to apply the same 2.248 + <code>hg</code> command to each of the repositories. 2.249 + For example, the script <code>make/scripts/hgforest.sh</code> 2.250 + can be used to repeat the same <code>hg</code> 2.251 + command on every repository, e.g. 2.252 <blockquote> 2.253 - <tt> 2.254 + <code> 2.255 cd <i>YourOpenJDK</i> 2.256 - <br>sh ./make/scripts/hgforest.sh pull -u 2.257 - </tt> 2.258 + <br> 2.259 + bash ./make/scripts/hgforest.sh status 2.260 + </code> 2.261 </blockquote> 2.262 </blockquote> 2.263 2.264 + <h3><a name="repositories">Repositories</a></h3> 2.265 + <blockquote> 2.266 + <p>The set of repositories and what they contain:</p> 2.267 + <table border="1"> 2.268 + <thead> 2.269 + <tr> 2.270 + <th>Repository</th> 2.271 + <th>Contains</th> 2.272 + </tr> 2.273 + </thead> 2.274 + <tbody> 2.275 + <tr> 2.276 + <td> 2.277 + . (root) 2.278 + </td> 2.279 + <td> 2.280 + common configure and makefile logic 2.281 + </td> 2.282 + </tr> 2.283 + <tr> 2.284 + <td> 2.285 + hotspot 2.286 + </td> 2.287 + <td> 2.288 + source code and make files for building 2.289 + the OpenJDK Hotspot Virtual Machine 2.290 + </td> 2.291 + </tr> 2.292 + <tr> 2.293 + <td> 2.294 + langtools 2.295 + </td> 2.296 + <td> 2.297 + source code for the OpenJDK javac and language tools 2.298 + </td> 2.299 + </tr> 2.300 + <tr> 2.301 + <td> 2.302 + jdk 2.303 + </td> 2.304 + <td> 2.305 + source code and make files for building 2.306 + the OpenJDK runtime libraries and misc files 2.307 + </td> 2.308 + </tr> 2.309 + <tr> 2.310 + <td> 2.311 + jaxp 2.312 + </td> 2.313 + <td> 2.314 + source code for the OpenJDK JAXP functionality 2.315 + </td> 2.316 + </tr> 2.317 + <tr> 2.318 + <td> 2.319 + jaxws 2.320 + </td> 2.321 + <td> 2.322 + source code for the OpenJDK JAX-WS functionality 2.323 + </td> 2.324 + </tr> 2.325 + <tr> 2.326 + <td> 2.327 + corba 2.328 + </td> 2.329 + <td> 2.330 + source code for the OpenJDK Corba functionality 2.331 + </td> 2.332 + </tr> 2.333 + </tbody> 2.334 + </table> 2.335 + </blockquote> 2.336 + 2.337 + <h3><a name="guidelines">Repository Source Guidelines</a></h3> 2.338 + <blockquote> 2.339 + There are some very basic guidelines: 2.340 + <ul> 2.341 + <li> 2.342 + Use of whitespace in source files 2.343 + (.java, .c, .h, .cpp, and .hpp files) 2.344 + is restricted. 2.345 + No TABs, no trailing whitespace on lines, and files 2.346 + should not terminate in more than one blank line. 2.347 + </li> 2.348 + <li> 2.349 + Files with execute permissions should not be added 2.350 + to the source repositories. 2.351 + </li> 2.352 + <li> 2.353 + All generated files need to be kept isolated from 2.354 + the files 2.355 + maintained or managed by the source control system. 2.356 + The standard area for generated files is the top level 2.357 + <code>build/</code> directory. 2.358 + </li> 2.359 + <li> 2.360 + The default build process should be to build the product 2.361 + and nothing else, in one form, e.g. a product (optimized), 2.362 + debug (non-optimized, -g plus assert logic), or 2.363 + fastdebug (optimized, -g plus assert logic). 2.364 + </li> 2.365 + <li> 2.366 + The <tt>.hgignore</tt> file in each repository 2.367 + must exist and should 2.368 + include <tt>^build/</tt>, <tt>^dist/</tt> and 2.369 + optionally any 2.370 + <tt>nbproject/private</tt> directories. 2.371 + <strong>It should NEVER</strong> include 2.372 + anything in the 2.373 + <tt>src/</tt> or <tt>test/</tt> 2.374 + or any managed directory area of a repository. 2.375 + </li> 2.376 + <li> 2.377 + Directory names and file names should never contain 2.378 + blanks or 2.379 + non-printing characters. 2.380 + </li> 2.381 + <li> 2.382 + Generated source or binary files should NEVER be added to 2.383 + the repository (that includes <tt>javah</tt> output). 2.384 + There are some exceptions to this rule, in particular 2.385 + with some of the generated configure scripts. 2.386 + </li> 2.387 + <li> 2.388 + Files not needed for typical building 2.389 + or testing of the repository 2.390 + should not be added to the repository. 2.391 + </li> 2.392 + </ul> 2.393 + </blockquote> 2.394 + 2.395 </blockquote> 2.396 2.397 - <!-- ------------------------------------------------------ --> 2.398 + <!-- ====================================================== --> 2.399 <hr> 2.400 - <h2><a name="MBE">Minimum Build Environments</a></h2> 2.401 + <h2><a name="building">Building</a></h2> 2.402 <blockquote> 2.403 - This file often describes specific requirements for what we call the 2.404 - "minimum build environments" (MBE) for this 2.405 - specific release of the JDK, 2.406 - Building with the MBE will generate the most compatible 2.407 - bits that install on, and run correctly on, the most variations 2.408 - of the same base OS and hardware architecture. 2.409 - These usually represent what is often called the 2.410 - least common denominator platforms. 2.411 - It is understood that most developers will NOT be using these 2.412 - specific platforms, and in fact creating these specific platforms 2.413 - may be difficult due to the age of some of this software. 2.414 - <p> 2.415 - The minimum OS and C/C++ compiler versions needed for building the 2.416 - OpenJDK: 2.417 - <p> 2.418 - <table border="1"> 2.419 - <thead> 2.420 - <tr> 2.421 - <th>Base OS and Architecture</th> 2.422 - <th>OS</th> 2.423 - <th>C/C++ Compiler</th> 2.424 - <th>BOOT JDK</th> 2.425 - </tr> 2.426 - </thead> 2.427 - <tbody> 2.428 - <tr> 2.429 - <td>Linux X86 (32-bit)</td> 2.430 - <td>Fedora 9</td> 2.431 - <td>gcc 4.3 </td> 2.432 - <td>JDK 6u18</td> 2.433 - </tr> 2.434 - <tr> 2.435 - <td>Linux X64 (64-bit)</td> 2.436 - <td>Fedora 9</td> 2.437 - <td>gcc 4.3 </td> 2.438 - <td>JDK 6u18</td> 2.439 - </tr> 2.440 - <tr> 2.441 - <td>Solaris SPARC (32-bit)</td> 2.442 - <td>Solaris 10 Update 6</td> 2.443 - <td>Sun Studio 12 Update 1 + patches</td> 2.444 - <td>JDK 6u18</td> 2.445 - </tr> 2.446 - <tr> 2.447 - <td>Solaris SPARCV9 (64-bit)</td> 2.448 - <td>Solaris 10 Update 6</td> 2.449 - <td>Sun Studio 12 Update 1 + patches</td> 2.450 - <td>JDK 6u18</td> 2.451 - </tr> 2.452 - <tr> 2.453 - <td>Solaris X86 (32-bit)</td> 2.454 - <td>Solaris 10 Update 6</td> 2.455 - <td>Sun Studio 12 Update 1 + patches</td> 2.456 - <td>JDK 6u18</td> 2.457 - </tr> 2.458 - <tr> 2.459 - <td>Solaris X64 (64-bit)</td> 2.460 - <td>Solaris 10 Update 6</td> 2.461 - <td>Sun Studio 12 Update 1 + patches</td> 2.462 - <td>JDK 6u18</td> 2.463 - </tr> 2.464 - <tr> 2.465 - <td>Windows X86 (32-bit)</td> 2.466 - <td>Windows XP</td> 2.467 - <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 2.468 - <td>JDK 6u18</td> 2.469 - </tr> 2.470 - <tr> 2.471 - <td>Windows X64 (64-bit)</td> 2.472 - <td>Windows Server 2003 - Enterprise x64 Edition</td> 2.473 - <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 2.474 - <td>JDK 6u18</td> 2.475 - </tr> 2.476 - <tr> 2.477 - <td>Mac OS X X64 (64-bit)</td> 2.478 - <td>Mac OS X 10.7.3 "Lion"</td> 2.479 - <td>XCode 4.1 or later</td> 2.480 - <td>Java for OS X Lion Update 1</td> 2.481 - </tr> 2.482 - </tbody> 2.483 - </table> 2.484 - <p> 2.485 - These same sources do indeed build on many more systems than the 2.486 - above older generation systems, again the above is just a minimum. 2.487 - <p> 2.488 - Compilation problems with newer or different C/C++ compilers is a 2.489 - common problem. 2.490 - Similarly, compilation problems related to changes to the 2.491 - <tt>/usr/include</tt> or system header files is also a 2.492 - common problem with newer or unreleased OS versions. 2.493 - Please report these types of problems as bugs so that they 2.494 - can be dealt with accordingly. 2.495 - </blockquote> 2.496 - <!-- ------------------------------------------------------ --> 2.497 - <hr> 2.498 - <h2><a name="SDBE">Specific Developer Build Environments</a></h2> 2.499 - <blockquote> 2.500 - We won't be listing all the possible environments, but 2.501 - we will try to provide what information we have available to us. 2.502 - </blockquote> 2.503 - <!-- ------------------------------------------------------ --> 2.504 - <h3><a name="fedora">Fedora</a></h3> 2.505 - <blockquote> 2.506 - <h4>Fedora 9</h4> 2.507 - <p> 2.508 + The very first step in building the OpenJDK is making sure the 2.509 + system itself has everything it needs to do OpenJDK builds. 2.510 + Once a system is setup, it generally doesn't need to be done again. 2.511 + <br> 2.512 + Building the OpenJDK is now done with running a 2.513 + <a href="#configure"><code>configure</code></a> 2.514 + script which will try and find and verify you have everything 2.515 + you need, followed by running 2.516 + <a href="#gmake"><code>make</code></a>, e.g. 2.517 <blockquote> 2.518 - After installing <a href="http://fedoraproject.org">Fedora</a> 9 2.519 - you need to install several build dependencies. The simplest 2.520 - way to do it is to execute the following commands as user 2.521 - <tt>root</tt>: 2.522 - <p/> 2.523 - <code>yum-builddep java-1.6.0-openjdk</code> 2.524 - <p/> 2.525 - <code>yum install gcc gcc-c++</code> 2.526 - <p/> 2.527 - In addition, it's necessary to set a few environment variables for the build: 2.528 + <b> 2.529 + <code> 2.530 + bash ./configure<br> 2.531 + make all 2.532 + </code> 2.533 + </b> 2.534 + </blockquote> 2.535 + Where possible the <code>configure</code> script will attempt to located the 2.536 + various components in the default locations or via component 2.537 + specific variable settings. 2.538 + When the normal defaults fail or components cannot be found, 2.539 + additional <code>configure</code> options may be necessary to help <code>configure</code> 2.540 + find the necessary tools for the build, or you may need to 2.541 + re-visit the setup of your system due to missing software 2.542 + packages. 2.543 + <br> 2.544 + <strong>NOTE:</strong> The <code>configure</code> script 2.545 + file does not have 2.546 + execute permissions and will need to be explicitly run with 2.547 + <code>bash</code>, 2.548 + see the <a href="#guidelines">source guidelines</a>. 2.549 2.550 - <p/> 2.551 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> 2.552 + <!-- ====================================================== --> 2.553 + <hr> 2.554 + <h3><a name="setup">System Setup</a></h3> 2.555 + <blockquote> 2.556 + Before even attempting to use a system to build the OpenJDK 2.557 + there are some very basic system setups needed. 2.558 + For all systems: 2.559 + <ul> 2.560 + <li> 2.561 + Be sure the GNU make utility is version 3.81 or newer, 2.562 + e.g. run "<code>make -version</code>" 2.563 + </li> 2.564 + <li> 2.565 + Install a 2.566 + <a name="bootjdk">Bootstrap JDK</a> 2.567 + <br> 2.568 + All OpenJDK builds require access to a previously released 2.569 + JDK, this is often called a bootstrap JDK. 2.570 + Currently, for this JDK release we require 2.571 + JDK 7 Update 7 or newer. 2.572 + The JDK 7 binaries can be downloaded from Oracle's 2.573 + <a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" 2.574 + target="_blank">JDK 7 download site</a>. 2.575 + For build performance reasons 2.576 + is very important that this bootstrap JDK be made available 2.577 + on the local disk of the machine doing the build. 2.578 + You should add its <code>bin</code> directory 2.579 + to the <code>PATH</code> environment variable. 2.580 + If <code>configure</code> has any issues finding this JDK, you may 2.581 + need to use the <code>configure</code> option 2.582 + <code>--with-boot-jdk</code>. 2.583 + </li> 2.584 + <li> 2.585 + Insure that GNU make, the Bootstrap JDK, 2.586 + and the compilers are all 2.587 + in your PATH environment variable 2.588 + </li> 2.589 + </ul> 2.590 + And for specific systems: 2.591 + <table border="1"> 2.592 + <thead> 2.593 + <tr> 2.594 + <th>Linux</th> 2.595 + <th>Solaris</th> 2.596 + <th>Windows</th> 2.597 + <th>Mac OS X</th> 2.598 + </tr> 2.599 + </thead> 2.600 + <tbody> 2.601 + <tr> 2.602 + <td> 2.603 + Install all the software development 2.604 + packages needed including 2.605 + <a href="#alsa">alsa</a>, 2.606 + <a href="#freetype">freetype</a>, 2.607 + <a href="#cups">cups</a>, and 2.608 + <a href="#xrender">xrender</a>. 2.609 + <br> 2.610 + See 2.611 + <a href="#SDBE">specific system packages</a>. 2.612 + </td> 2.613 + <td> 2.614 + Install all the software development 2.615 + packages needed including 2.616 + <a href="#studio">Studio Compilers</a>, 2.617 + <a href="#freetype">freetype</a>, 2.618 + <a href="#cups">cups</a>, and 2.619 + <a href="#xrender">xrender</a>. 2.620 + <br> 2.621 + See 2.622 + <a href="#SDBE">specific system packages</a>. 2.623 + </td> 2.624 + <td> 2.625 + <ul> 2.626 + <li> 2.627 + Install one of 2.628 + <a href="#cygwin">CYGWIN</a> or 2.629 + <a href="#msys">MinGW/MSYS</a> 2.630 + </li> 2.631 + <li> 2.632 + Install 2.633 + <a href="#vs2010">Visual Studio 2010</a> 2.634 + </li> 2.635 + <li> 2.636 + Install the 2.637 + <a href="#dxsdk">Microsoft DirectX SDK</a> 2.638 + </li> 2.639 + </ul> 2.640 + </td> 2.641 + <td> 2.642 + Install 2.643 + <a href="https://developer.apple.com/xcode/">XCode 4.5.2</a> 2.644 + and also install the "Command line tools" found under the 2.645 + preferences pane "Downloads" 2.646 + </td> 2.647 + </tr> 2.648 + </tbody> 2.649 + </table> 2.650 + 2.651 + <h4><a name="linux">Linux</a></h4> 2.652 + <blockquote> 2.653 + With Linux, try and favor the system packages over 2.654 + building your own 2.655 + or getting packages from other areas. 2.656 + Most Linux builds should be possible with the system's 2.657 + available packages. 2.658 + <br> 2.659 + Note that some Linux systems have a habit of pre-populating 2.660 + your environment variables for you, for example <code>JAVA_HOME</code> 2.661 + might get pre-defined for you to refer to the JDK installed on 2.662 + your Linux system. 2.663 + You will need to unset <code>JAVA_HOME</code>. 2.664 + It's a good idea to run <code>env</code> and verify the 2.665 + environment variables you are getting from the default system 2.666 + settings make sense for building the OpenJDK. 2.667 + 2.668 + </blockquote> 2.669 + 2.670 + <h4><a name="solaris">Solaris</a></h4> 2.671 + <blockquote> 2.672 + <h5><a name="studio">Studio Compilers</a></h5> 2.673 + <blockquote> 2.674 + At a minimum, the 2.675 + <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> 2.676 + Studio 12 Update 1 Compilers</a> 2.677 + (containing version 5.10 of the C and C++ compilers) is required, 2.678 + including specific patches. 2.679 + <p> 2.680 + The Solaris SPARC patch list is: 2.681 + <ul> 2.682 + <li> 2.683 + 118683-05: SunOS 5.10: Patch for profiling libraries and assembler 2.684 + </li> 2.685 + <li> 2.686 + 119963-21: SunOS 5.10: Shared library patch for C++ 2.687 + </li> 2.688 + <li> 2.689 + 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch 2.690 + </li> 2.691 + <li> 2.692 + 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler 2.693 + </li> 2.694 + <li> 2.695 + 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 2.696 + </li> 2.697 + <li> 2.698 + 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler 2.699 + </li> 2.700 + <li> 2.701 + 142371-01: Sun Studio 12.1 Update 1: Patch for dbx 2.702 + </li> 2.703 + <li> 2.704 + 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling 2.705 + </li> 2.706 + <li> 2.707 + 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 2.708 + </li> 2.709 + <li> 2.710 + 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools 2.711 + </li> 2.712 + </ul> 2.713 + <p> 2.714 + The Solaris X86 patch list is: 2.715 + <ul> 2.716 + <li> 2.717 + 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler 2.718 + </li> 2.719 + <li> 2.720 + 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 2.721 + </li> 2.722 + <li> 2.723 + 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch 2.724 + </li> 2.725 + <li> 2.726 + 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend 2.727 + </li> 2.728 + <li> 2.729 + 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler 2.730 + </li> 2.731 + <li> 2.732 + 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler 2.733 + </li> 2.734 + <li> 2.735 + 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools 2.736 + </li> 2.737 + </ul> 2.738 + <p> 2.739 + Place the <code>bin</code> directory in <code>PATH</code>. 2.740 + <p> 2.741 + The Oracle Solaris Studio Express compilers at: 2.742 + <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index-jsp-142582.html" target="_blank"> 2.743 + Oracle Solaris Studio Express Download site</a> 2.744 + are also an option, although these compilers have not 2.745 + been extensively used yet. 2.746 + </blockquote> 2.747 + 2.748 + </blockquote> <!-- Solaris --> 2.749 + 2.750 + <h4><a name="windows">Windows</a></h4> 2.751 + <blockquote> 2.752 + 2.753 + <h5><a name="toolkit">Windows Unix Toolkit</a></h5> 2.754 + <blockquote> 2.755 + Building on Windows requires a Unix-like environment, notably a 2.756 + Unix-like shell. 2.757 + There are several such environments available of which 2.758 + <a href="http://www.cygwin.com/">Cygwin</a> and 2.759 + <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are 2.760 + currently supported for 2.761 + the OpenJDK build. One of the differences of these 2.762 + systems from standard Windows tools is the way 2.763 + they handle Windows path names, particularly path names which contain 2.764 + spaces, backslashes as path separators and possibly drive letters. 2.765 + Depending 2.766 + on the use case and the specifics of each environment these path 2.767 + problems can 2.768 + be solved by a combination of quoting whole paths, translating 2.769 + backslashes to 2.770 + forward slashes, escaping backslashes with additional backslashes and 2.771 + translating the path names to their 2.772 + <a href="http://en.wikipedia.org/wiki/8.3_filename"> 2.773 + "8.3" version</a>. 2.774 + 2.775 + <h6><a name="cygwin">CYGWIN</a></h6> 2.776 + <blockquote> 2.777 + CYGWIN is an open source, Linux-like environment which tries to emulate 2.778 + a complete POSIX layer on Windows. It tries to be smart about path names 2.779 + and can usually handle all kinds of paths if they are correctly quoted 2.780 + or escaped although internally it maps drive letters <code><drive>:</code> 2.781 + to a virtual directory <code>/cygdrive/<drive></code>. 2.782 + <p> 2.783 + You can always use the <code>cygpath</code> utility to map pathnames with spaces 2.784 + or the backslash character into the <code>C:/</code> style of pathname 2.785 + (called 'mixed'), e.g. <code>cygpath -s -m "<i>path</i>"</code>. 2.786 + </p> 2.787 + <p> 2.788 + Note that the use of CYGWIN creates a unique problem with regards to 2.789 + setting <a href="#path"><code>PATH</code></a>. Normally on Windows 2.790 + the <code>PATH</code> variable contains directories 2.791 + separated with the ";" character (Solaris and Linux use ":"). 2.792 + With CYGWIN, it uses ":", but that means that paths like "C:/path" 2.793 + cannot be placed in the CYGWIN version of <code>PATH</code> and 2.794 + instead CYGWIN uses something like <code>/cygdrive/c/path</code> 2.795 + which CYGWIN understands, but only CYGWIN understands. 2.796 + </p> 2.797 + <p> 2.798 + The OpenJDK build requires CYGWIN version 1.7.16 or newer. 2.799 + Information about CYGWIN can 2.800 + be obtained from the CYGWIN website at 2.801 + <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>. 2.802 + </p> 2.803 + <p> 2.804 + By default CYGWIN doesn't install all the tools required for building 2.805 + the OpenJDK. 2.806 + Along with the default installation, you need to install 2.807 + the following tools. 2.808 + <blockquote> 2.809 + <table border="1"> 2.810 + <thead> 2.811 + <tr> 2.812 + <td>Binary Name</td> 2.813 + <td>Category</td> 2.814 + <td>Package</td> 2.815 + <td>Description</td> 2.816 + </tr> 2.817 + </thead> 2.818 + <tbody> 2.819 + <tr> 2.820 + <td>ar.exe</td> 2.821 + <td>Devel</td> 2.822 + <td>binutils</td> 2.823 + <td> 2.824 + The GNU assembler, linker and binary utilities 2.825 + </td> 2.826 + </tr> 2.827 + <tr> 2.828 + <td>make.exe</td> 2.829 + <td>Devel</td> 2.830 + <td>make</td> 2.831 + <td> 2.832 + The GNU version of the 'make' utility built for CYGWIN 2.833 + </td> 2.834 + </tr> 2.835 + <tr> 2.836 + <td>m4.exe</td> 2.837 + <td>Interpreters</td> 2.838 + <td>m4</td> 2.839 + <td> 2.840 + GNU implementation of the traditional Unix macro 2.841 + processor 2.842 + </td> 2.843 + </tr> 2.844 + <tr> 2.845 + <td>cpio.exe</td> 2.846 + <td>Utils</td> 2.847 + <td>cpio</td> 2.848 + <td> 2.849 + A program to manage archives of files 2.850 + </td> 2.851 + </tr> 2.852 + <tr> 2.853 + <td>gawk.exe</td> 2.854 + <td>Utils</td> 2.855 + <td>awk</td> 2.856 + <td> 2.857 + Pattern-directed scanning and processing language 2.858 + </td> 2.859 + </tr> 2.860 + <tr> 2.861 + <td>file.exe</td> 2.862 + <td>Utils</td> 2.863 + <td>file</td> 2.864 + <td> 2.865 + Determines file type using 'magic' numbers 2.866 + </td> 2.867 + </tr> 2.868 + <tr> 2.869 + <td>zip.exe</td> 2.870 + <td>Archive</td> 2.871 + <td>zip</td> 2.872 + <td> 2.873 + Package and compress (archive) files 2.874 + </td> 2.875 + </tr> 2.876 + <tr> 2.877 + <td>unzip.exe</td> 2.878 + <td>Archive</td> 2.879 + <td>unzip</td> 2.880 + <td> 2.881 + Extract compressed files in a ZIP archive 2.882 + </td> 2.883 + </tr> 2.884 + <tr> 2.885 + <td>free.exe</td> 2.886 + <td>System</td> 2.887 + <td>procps</td> 2.888 + <td> 2.889 + Display amount of free and used memory in the system 2.890 + </td> 2.891 + </tr> 2.892 + </tbody> 2.893 + </table> 2.894 + </blockquote> 2.895 + Note that the CYGWIN software can conflict with other non-CYGWIN 2.896 + software on your Windows system. 2.897 + CYGWIN provides a 2.898 + <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for 2.899 + known issues and problems, of particular interest is the 2.900 + section on 2.901 + <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 2.902 + BLODA (applications that interfere with CYGWIN)</a>. 2.903 + </blockquote> 2.904 + 2.905 + <h6><a name="msys">MinGW/MSYS</a></h6> 2.906 + <blockquote> 2.907 + MinGW ("Minimalist GNU for Windows") is a collection of free Windows 2.908 + specific header files and import libraries combined with GNU toolsets that 2.909 + allow one to produce native Windows programs that do not rely on any 2.910 + 3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building 2.911 + applications and programs which rely on traditional UNIX tools to 2.912 + be present. Among others this includes tools like <code>bash</code> 2.913 + and <code>make</code>. 2.914 + See <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a> 2.915 + for more information. 2.916 + <p> 2.917 + Like Cygwin, MinGW/MSYS can handle different types of path formats. They 2.918 + are internally converted to paths with forward slashes and drive letters 2.919 + <code><drive>:</code> replaced by a virtual 2.920 + directory <code>/<drive></code>. Additionally, MSYS automatically 2.921 + detects binaries compiled for the MSYS environment and feeds them with the 2.922 + internal, Unix-style path names. If native Windows applications are called 2.923 + from within MSYS programs their path arguments are automatically converted 2.924 + back to Windows style path names with drive letters and backslashes as 2.925 + path separators. This may cause problems for Windows applications which 2.926 + use forward slashes as parameter separator (e.g. <code>cl /nologo /I</code>) 2.927 + because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion"> 2.928 + replace such parameters by drive letters</a>. 2.929 + </p> 2.930 + <p> 2.931 + In addition to the tools which will be installed 2.932 + by default, you have 2.933 + to manually install the 2.934 + <code>msys-zip</code> and 2.935 + <code>msys-unzip</code> packages. 2.936 + This can be easily done with the MinGW command line installer: 2.937 + <blockquote> 2.938 + <code>mingw-get.exe install msys-zip</code> 2.939 + <br> 2.940 + <code>mingw-get.exe install msys-unzip</code> 2.941 + </blockquote> 2.942 + </blockquote> 2.943 + 2.944 + </blockquote> 2.945 + 2.946 + <h5><a name="vs2010">Visual Studio 2010 Compilers</a></h5> 2.947 + <blockquote> 2.948 + <p> 2.949 + The 32-bit and 64-bit OpenJDK Windows build requires 2.950 + Microsoft Visual Studio C++ 2010 (VS2010) Professional 2.951 + Edition or Express compiler. 2.952 + The compiler and other tools are expected to reside 2.953 + in the location defined by the variable 2.954 + <code>VS100COMNTOOLS</code> which 2.955 + is set by the Microsoft Visual Studio installer. 2.956 + </p> 2.957 + <p> 2.958 + Only the C++ part of VS2010 is needed. 2.959 + Try to let the installation go to the default 2.960 + install directory. 2.961 + Always reboot your system after installing VS2010. 2.962 + The system environment variable VS100COMNTOOLS 2.963 + should be 2.964 + set in your environment. 2.965 + </p> 2.966 + <p> 2.967 + Make sure that TMP and TEMP are also set 2.968 + in the environment 2.969 + and refer to Windows paths that exist, 2.970 + like <code>C:\temp</code>, 2.971 + not <code>/tmp</code>, not <code>/cygdrive/c/temp</code>, 2.972 + and not <code>C:/temp</code>. 2.973 + <code>C:\temp</code> is just an example, 2.974 + it is assumed that this area is 2.975 + private to the user, so by default 2.976 + after installs you should 2.977 + see a unique user path in these variables. 2.978 + </p> 2.979 + </blockquote> 2.980 + 2.981 + 2.982 + </blockquote> <!-- Windows --> 2.983 + 2.984 + <h4><a name="macosx">Mac OS X</a></h4> 2.985 + <blockquote> 2.986 + Make sure you get the right XCode version. 2.987 + </blockquote> <!-- Mac OS X --> 2.988 + 2.989 </blockquote> 2.990 - <h4>Fedora 10</h4> 2.991 - <p> 2.992 + 2.993 + <!-- ====================================================== --> 2.994 + <hr> 2.995 + <h3><a name="configure">Configure</a></h3> 2.996 <blockquote> 2.997 - After installing <a href="http://fedoraproject.org">Fedora</a> 10 2.998 - you need to install several build dependencies. The simplest 2.999 - way to do it is to execute the following commands as user 2.1000 - <tt>root</tt>: 2.1001 - <p/> 2.1002 - <code>yum-builddep java-1.6.0-openjdk</code> 2.1003 - <p/> 2.1004 - <code>yum install gcc gcc-c++</code> 2.1005 - <p/> 2.1006 - In addition, it's necessary to set a few environment variables for the build: 2.1007 + The basic invocation of the <code>configure</code> script 2.1008 + looks like: 2.1009 + <blockquote> 2.1010 + <b><code>bash ./configure [<i>options</i>]</code></b> 2.1011 + </blockquote> 2.1012 + This will create an output directory containing the 2.1013 + "configuration" and setup an area for the build result. 2.1014 + This directory typically looks like: 2.1015 + <blockquote> 2.1016 + <b><code>build/linux-x64-normal-server-release</code></b> 2.1017 + </blockquote> 2.1018 + <code>configure</code> will try to figure out what system you are running on 2.1019 + and where all necessary build components are. 2.1020 + If you have all prerequisites for building installed, 2.1021 + it should find everything. 2.1022 + If it fails to detect any component automatically, 2.1023 + it will exit and inform you about the problem. 2.1024 + When this happens, read more below in 2.1025 + <a href="#configureoptions">the <code>configure</code> options</a>. 2.1026 + <p> 2.1027 + Some examples: 2.1028 + </p> 2.1029 + <table border="1"> 2.1030 + <thead> 2.1031 + <tr> 2.1032 + <th>Description</th> 2.1033 + <th>Configure Command Line</th> 2.1034 + </tr> 2.1035 + </thead> 2.1036 + <tbody> 2.1037 + <tr> 2.1038 + <td>Windows 32bit build with freetype specified</td> 2.1039 + <td> 2.1040 + <code>bash ./configure --with-freetype=/cygdrive/c/freetype-i586 --with-target-bits=32</code> 2.1041 + </td> 2.1042 + </tr> 2.1043 + <tr> 2.1044 + <td>Debug 64bit Build</td> 2.1045 + <td> 2.1046 + <code>bash ./configure --enable-debug --with-target-bits=64</code> 2.1047 + </td> 2.1048 + </tr> 2.1049 + </tbody> 2.1050 + </table> 2.1051 2.1052 - <p/> 2.1053 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> 2.1054 + <!-- ====================================================== --> 2.1055 + <h4><a name="configureoptions">Configure Options</a></h4> 2.1056 + <blockquote> 2.1057 + Complete details on all the OpenJDK <code>configure</code> options can 2.1058 + be seen with: 2.1059 + <blockquote> 2.1060 + <b><code>bash ./configure --help=short</code></b> 2.1061 + </blockquote> 2.1062 + Use <code>-help</code> to see all the <code>configure</code> options 2.1063 + available. 2.1064 + 2.1065 + You can generate any number of different configurations, 2.1066 + e.g. debug, release, 32, 64, etc. 2.1067 + 2.1068 + Some of the more commonly used <code>configure</code> options are: 2.1069 + 2.1070 + <table border="1"> 2.1071 + <thead> 2.1072 + <tr> 2.1073 + <th width="300">OpenJDK Configure Option</th> 2.1074 + <th>Description</th> 2.1075 + </tr> 2.1076 + </thead> 2.1077 + <tbody> 2.1078 + <tr> 2.1079 + <td><b><code>--enable-debug</code></b></td> 2.1080 + <td> 2.1081 + set the debug level to fastdebug (this is a shorthand for 2.1082 + <code>--with-debug-level=fastdebug</code>) 2.1083 + </td> 2.1084 + </tr> 2.1085 + <tr> 2.1086 + <td><b><code>--with-alsa=</code></b><i>path</i></td> 2.1087 + <td> 2.1088 + select the location of the 2.1089 + <a name="alsa">Advanced Linux Sound Architecture (ALSA)</a> 2.1090 + <br> 2.1091 + Version 0.9.1 or newer of the ALSA files are 2.1092 + required for building the OpenJDK on Linux. 2.1093 + These Linux files are usually available from an "alsa" 2.1094 + of "libasound" 2.1095 + development package, 2.1096 + and it's highly recommended that you try and use 2.1097 + the package provided by the particular version of Linux that 2.1098 + you are using. 2.1099 + </td> 2.1100 + </tr> 2.1101 + <tr> 2.1102 + <td><b><code>--with-boot-jdk=</code></b><i>path</i></td> 2.1103 + <td> 2.1104 + select the <a href="#bootjdk">Bootstrap JDK</a> 2.1105 + </td> 2.1106 + </tr> 2.1107 + <tr> 2.1108 + <td><b><code>--with-boot-jdk-jvmargs=</code></b>"<i>args</i>"</td> 2.1109 + <td> 2.1110 + provide the JVM options to be used to run the 2.1111 + <a href="#bootjdk">Bootstrap JDK</a> 2.1112 + </td> 2.1113 + </tr> 2.1114 + <tr> 2.1115 + <td><b><code>--with-cacerts=</code></b><i>path</i></td> 2.1116 + <td> 2.1117 + select the path to the cacerts file. 2.1118 + <br> 2.1119 + See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank"> 2.1120 + http://en.wikipedia.org/wiki/Certificate_Authority</a> 2.1121 + for a better understanding of the Certificate Authority (CA). 2.1122 + A certificates file named "cacerts" 2.1123 + represents a system-wide keystore with CA certificates. 2.1124 + In JDK and JRE 2.1125 + binary bundles, the "cacerts" file contains root CA certificates from 2.1126 + several public CAs (e.g., VeriSign, Thawte, and Baltimore). 2.1127 + The source contain a cacerts file 2.1128 + without CA root certificates. 2.1129 + Formal JDK builders will need to secure 2.1130 + permission from each public CA and include the certificates into their 2.1131 + own custom cacerts file. 2.1132 + Failure to provide a populated cacerts file 2.1133 + will result in verification errors of a certificate chain during runtime. 2.1134 + By default an empty cacerts file is provided and that should be 2.1135 + fine for most JDK developers. 2.1136 + </td> 2.1137 + </tr> 2.1138 + <tr> 2.1139 + <td><b><code>--with-cups=</code></b><i>path</i></td> 2.1140 + <td> 2.1141 + select the CUPS install location 2.1142 + <br> 2.1143 + The 2.1144 + <a name="cups">Common UNIX Printing System (CUPS) Headers</a> 2.1145 + are required for building the 2.1146 + OpenJDK on Solaris and Linux. 2.1147 + The Solaris header files can be obtained by installing 2.1148 + the package <strong>SFWcups</strong> from the Solaris Software 2.1149 + Companion CD/DVD, these often will be installed into the 2.1150 + directory <code>/opt/sfw/cups</code>. 2.1151 + <br> 2.1152 + The CUPS header files can always be downloaded from 2.1153 + <a href="http://www.cups.org" target="_blank">www.cups.org</a>. 2.1154 + </td> 2.1155 + </tr> 2.1156 + <tr> 2.1157 + <td><b><code>--with-cups-include=</code></b><i>path</i></td> 2.1158 + <td> 2.1159 + select the CUPS include directory location 2.1160 + </td> 2.1161 + </tr> 2.1162 + <tr> 2.1163 + <td><b><code>--with-debug-level=</code></b><i>level</i></td> 2.1164 + <td> 2.1165 + select the debug information level of release, 2.1166 + fastdebug, or slowdebug 2.1167 + </td> 2.1168 + </tr> 2.1169 + <tr> 2.1170 + <td><b><code>--with-dev-kit=</code></b><i>path</i></td> 2.1171 + <td> 2.1172 + select location of the compiler install or 2.1173 + developer install location 2.1174 + </td> 2.1175 + </tr> 2.1176 + <tr> 2.1177 + <td><b><code>--with-dxsdk=</code></b><i>path</i></td> 2.1178 + <td> 2.1179 + select location of the Windows Direct X SDK install 2.1180 + <br> 2.1181 + The <a name="dxsdk">Microsoft DirectX 9.0 SDK</a> 2.1182 + header files and libraries 2.1183 + from the Summer 2004 edition 2.1184 + are required for building OpenJDK. 2.1185 + This SDK can be downloaded from 2.1186 + <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> 2.1187 + Microsoft DirectX 9.0 SDK (Summer 2004)</a>. 2.1188 + If the link above becomes obsolete, the SDK can be found from 2.1189 + <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> 2.1190 + (search with "DirectX 9.0 SDK Update Summer 2004"). 2.1191 + Installation usually will set the environment variable 2.1192 + <code>DXSDK_DIR</code> to it's install location. 2.1193 + </td> 2.1194 + </tr> 2.1195 + <tr> 2.1196 + <td><b><code>--with-freetype=</code></b><i>path</i></td> 2.1197 + <td> 2.1198 + select the freetype files to use. 2.1199 + <br> 2.1200 + Expecting the 2.1201 + <a name="freetype">freetype</a> libraries under 2.1202 + <code>lib/</code> and the 2.1203 + headers under <code>include/</code>. 2.1204 + <br> 2.1205 + Version 2.3 or newer of FreeType is required. 2.1206 + On Unix systems required files can be available as part of your 2.1207 + distribution (while you still may need to upgrade them). 2.1208 + Note that you need development version of package that 2.1209 + includes both the FreeType library and header files. 2.1210 + <br> 2.1211 + You can always download latest FreeType version from the 2.1212 + <a href="http://www.freetype.org" target="_blank">FreeType website</a>. 2.1213 + <br> 2.1214 + Building the freetype 2 libraries from scratch is also possible, 2.1215 + however on Windows refer to the 2.1216 + <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> 2.1217 + Windows FreeType DLL build instructions</a>. 2.1218 + <br> 2.1219 + Note that by default FreeType is built with byte code hinting 2.1220 + support disabled due to licensing restrictions. 2.1221 + In this case, text appearance and metrics are expected to 2.1222 + differ from Sun's official JDK build. 2.1223 + See 2.1224 + <a href="http://freetype.sourceforge.net/freetype2/index.html"> 2.1225 + the SourceForge FreeType2 Home Page 2.1226 + </a> 2.1227 + for more information. 2.1228 + </td> 2.1229 + </tr> 2.1230 + <tr> 2.1231 + <td><b><code>--with-import-hotspot=</code></b><i>path</i></td> 2.1232 + <td> 2.1233 + select the location to find hotspot 2.1234 + binaries from a previous build to avoid building 2.1235 + hotspot 2.1236 + </td> 2.1237 + </tr> 2.1238 + <tr> 2.1239 + <td><b><code>--with-target-bits=</code></b><i>arg</i></td> 2.1240 + <td> 2.1241 + select 32 or 64 bit build 2.1242 + </td> 2.1243 + </tr> 2.1244 + <tr> 2.1245 + <td><b><code>--with-jvm-variants=</code></b><i>variants</i></td> 2.1246 + <td> 2.1247 + select the JVM variants to build from, comma 2.1248 + separated list that can include: 2.1249 + server, client, kernel, zero and zeroshark 2.1250 + </td> 2.1251 + </tr> 2.1252 + <tr> 2.1253 + <td><b><code>--with-memory-size=</code></b><i>size</i></td> 2.1254 + <td> 2.1255 + select the RAM size that GNU make will think 2.1256 + this system has 2.1257 + </td> 2.1258 + </tr> 2.1259 + <tr> 2.1260 + <td><a name="msvcrNN"><b><code>--with-msvcr-dll=</code></b><i>path</i></a></td> 2.1261 + <td> 2.1262 + select the <code>msvcr100.dll</code> 2.1263 + file to include in the 2.1264 + Windows builds (C/C++ runtime library for 2.1265 + Visual Studio). 2.1266 + <br> 2.1267 + This is usually picked up automatically 2.1268 + from the redist 2.1269 + directories of Visual Studio 2010. 2.1270 + </td> 2.1271 + </tr> 2.1272 + <tr> 2.1273 + <td><b><code>--with-num-cores=</code></b><i>cores</i></td> 2.1274 + <td> 2.1275 + select the number of cores to use (processor 2.1276 + count or CPU count) 2.1277 + </td> 2.1278 + </tr> 2.1279 + <tr> 2.1280 + <td><b><code>--with-x=</code></b><i>path</i></td> 2.1281 + <td> 2.1282 + select the location of the X11 and xrender files. 2.1283 + <br> 2.1284 + The 2.1285 + <a name="xrender">XRender Extension Headers</a> 2.1286 + are required for building the 2.1287 + OpenJDK on Solaris and Linux. 2.1288 + <br> 2.1289 + The Linux header files are usually available from a "Xrender" 2.1290 + development package, it's recommended that you try and use 2.1291 + the package provided by the particular distribution of Linux that 2.1292 + you are using. 2.1293 + <br> 2.1294 + The Solaris XRender header files is 2.1295 + included with the other X11 header files 2.1296 + in the package <strong>SFWxwinc</strong> 2.1297 + on new enough versions of 2.1298 + Solaris and will be installed in 2.1299 + <code>/usr/X11/include/X11/extensions/Xrender.h</code> or 2.1300 + <code>/usr/openwin/share/include/X11/extensions/Xrender.h</code> 2.1301 + </td> 2.1302 + </tr> 2.1303 + </tbody> 2.1304 + </table> 2.1305 + </blockquote> 2.1306 + 2.1307 </blockquote> 2.1308 - <h4>Fedora 11</h4> 2.1309 - <p> 2.1310 + 2.1311 + <!-- ====================================================== --> 2.1312 + <hr> 2.1313 + <h3><a name="make">Make</a></h3> 2.1314 <blockquote> 2.1315 - After installing <a href="http://fedoraproject.org">Fedora</a> 11 2.1316 - you need to install several build dependencies. The simplest 2.1317 - way to do it is to execute the following commands as user 2.1318 - <tt>root</tt>: 2.1319 - <p/> 2.1320 - <code>yum-builddep java-1.6.0-openjdk</code> 2.1321 - <p/> 2.1322 - <code>yum install gcc gcc-c++</code> 2.1323 - <p/> 2.1324 - In addition, it's necessary to set a few environment variables for the build: 2.1325 - 2.1326 - <p/> 2.1327 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> 2.1328 + The basic invocation of the <code>make</code> utility 2.1329 + looks like: 2.1330 + <blockquote> 2.1331 + <b><code>make all</code></b> 2.1332 + </blockquote> 2.1333 + This will start the build to the output directory containing the 2.1334 + "configuration" that was created by the <code>configure</code> 2.1335 + script. Run <code>make help</code> for more information on 2.1336 + the available targets. 2.1337 + <br> 2.1338 + There are some of the make targets that 2.1339 + are of general interest: 2.1340 + <table border="1"> 2.1341 + <thead> 2.1342 + <tr> 2.1343 + <th>Make Target</th> 2.1344 + <th>Description</th> 2.1345 + </tr> 2.1346 + </thead> 2.1347 + <tbody> 2.1348 + <tr> 2.1349 + <td><i>empty</i></td> 2.1350 + <td>build everything but no images</td> 2.1351 + </tr> 2.1352 + <tr> 2.1353 + <td><b><code>all</code></b></td> 2.1354 + <td>build everything including images</td> 2.1355 + </tr> 2.1356 + <tr> 2.1357 + <td><b><code>all-conf</code></b></td> 2.1358 + <td>build all configurations</td> 2.1359 + </tr> 2.1360 + <tr> 2.1361 + <td><b><code>images</code></b></td> 2.1362 + <td>create complete j2sdk and j2re images</td> 2.1363 + </tr> 2.1364 + <tr> 2.1365 + <td><b><code>install</code></b></td> 2.1366 + <td>install the generated images locally, 2.1367 + typically in <code>/usr/local</code></td> 2.1368 + </tr> 2.1369 + <tr> 2.1370 + <td><b><code>clean</code></b></td> 2.1371 + <td>remove all files generated by make, 2.1372 + but not those generated by <code>configure</code></td> 2.1373 + </tr> 2.1374 + <tr> 2.1375 + <td><b><code>dist-clean</code></b></td> 2.1376 + <td>remove all files generated by both 2.1377 + and <code>configure</code> (basically killing the configuration)</td> 2.1378 + </tr> 2.1379 + <tr> 2.1380 + <td><b><code>help</code></b></td> 2.1381 + <td>give some help on using <code>make</code>, 2.1382 + including some interesting make targets</td> 2.1383 + </tr> 2.1384 + </tbody> 2.1385 + </table> 2.1386 </blockquote> 2.1387 </blockquote> 2.1388 - <!-- ------------------------------------------------------ --> 2.1389 - <h3><a name="centos">CentOS 5.5</a></h3> 2.1390 + 2.1391 + <!-- ====================================================== --> 2.1392 + <hr> 2.1393 + <h2><a name="testing">Testing</a></h2> 2.1394 <blockquote> 2.1395 - After installing 2.1396 - <a href="http://www.centos.org/">CentOS 5.5</a> 2.1397 - you need to make sure you have 2.1398 - the following Development bundles installed: 2.1399 + When the build is completed, you should see the generated 2.1400 + binaries and associated files in the <code>j2sdk-image</code> 2.1401 + directory in the output directory. 2.1402 + In particular, the 2.1403 + <code>build/<i>*</i>/images/j2sdk-image/bin</code> 2.1404 + directory should contain executables for the 2.1405 + OpenJDK tools and utilities for that configuration. 2.1406 + The testing tool <code>jtreg</code> will be needed 2.1407 + and can be found at: 2.1408 + <a href="http://openjdk.java.net/jtreg/" target="_blank"> 2.1409 + the jtreg site</a>. 2.1410 + The provided regression tests in the repositories 2.1411 + can be run with the command: 2.1412 <blockquote> 2.1413 - <ul> 2.1414 - <li>Development Libraries</li> 2.1415 - <li>Development Tools</li> 2.1416 - <li>Java Development</li> 2.1417 - <li>X Software Development (Including XFree86-devel)</li> 2.1418 - </ul> 2.1419 - </blockquote> 2.1420 - <p> 2.1421 - Plus the following packages: 2.1422 - <blockquote> 2.1423 - <ul> 2.1424 - <li>cups devel: Cups Development Package</li> 2.1425 - <li>alsa devel: Alsa Development Package</li> 2.1426 - <li>ant: Ant Package</li> 2.1427 - <li>Xi devel: libXi.so Development Package</li> 2.1428 - </ul> 2.1429 - </blockquote> 2.1430 - <p> 2.1431 - The freetype 2.3 packages don't seem to be available, 2.1432 - but the freetype 2.3 sources can be downloaded, built, 2.1433 - and installed easily enough from 2.1434 - <a href="http://downloads.sourceforge.net/freetype"> 2.1435 - the freetype site</a>. 2.1436 - Build and install with something like: 2.1437 - <blockquote> 2.1438 - <tt>./configure && make && sudo -u root make install</tt> 2.1439 - </blockquote> 2.1440 - <p> 2.1441 - Mercurial packages could not be found easily, but a Google 2.1442 - search should find ones, and they usually include Python if 2.1443 - it's needed. 2.1444 - </blockquote> 2.1445 - <!-- ------------------------------------------------------ --> 2.1446 - <h3><a name="debian">Debian</a></h3> 2.1447 - <blockquote> 2.1448 - <h4>Debian 5.0 (Lenny)</h4> 2.1449 - <p> 2.1450 - <blockquote> 2.1451 - After installing <a href="http://debian.org">Debian</a> 5 2.1452 - you need to install several build dependencies. 2.1453 - The simplest way to install the build dependencies is to 2.1454 - execute the following commands as user <tt>root</tt>: 2.1455 - <p/> 2.1456 - <code>aptitude build-dep openjdk-6</code> 2.1457 - <p/> 2.1458 - <code>aptitude install openjdk-6-jdk libmotif-dev</code> 2.1459 - <p/> 2.1460 - In addition, it's necessary to set a few environment variables for the build: 2.1461 - <p/> 2.1462 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 2.1463 + <code><b>cd test && make PRODUCT_HOME=`pwd`/../build/*/images/j2sdk-image all</b></code> 2.1464 </blockquote> 2.1465 </blockquote> 2.1466 + 2.1467 <!-- ====================================================== --> 2.1468 - <h3><a name="ubuntu">Ubuntu</a></h3> 2.1469 + <!-- ====================================================== --> 2.1470 + <!-- ====================================================== --> 2.1471 + <!-- ====================================================== --> 2.1472 + <!-- ====================================================== --> 2.1473 + <!-- ====================================================== --> 2.1474 + <!-- ====================================================== --> 2.1475 + <!-- ====================================================== --> 2.1476 + <!-- ====================================================== --> 2.1477 + 2.1478 + <!-- ====================================================== --> 2.1479 + <hr> 2.1480 + <h2><a name="hints">Appendix A: Hints and Tips</a></h2> 2.1481 <blockquote> 2.1482 - <h4>Ubuntu 8.04</h4> 2.1483 - <p> 2.1484 + 2.1485 + <h3><a name="faq">FAQ</a></h3> 2.1486 <blockquote> 2.1487 - After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 2.1488 - you need to install several build dependencies. 2.1489 - <p/> 2.1490 - First, you need to enable the universe repository in the 2.1491 - Software Sources application and reload the repository 2.1492 - information. The Software Sources application is available 2.1493 - under the System/Administration menu. 2.1494 - <p/> 2.1495 - The simplest way to install the build dependencies is to 2.1496 - execute the following commands: 2.1497 - <p/> 2.1498 - <code>sudo aptitude build-dep openjdk-6</code> 2.1499 - <p/> 2.1500 - <code>sudo aptitude install openjdk-6-jdk</code> 2.1501 - <p/> 2.1502 - In addition, it's necessary to set a few environment variables for the build: 2.1503 - <p/> 2.1504 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 2.1505 - </blockquote> 2.1506 - <h4>Ubuntu 8.10</h4> 2.1507 - <p> 2.1508 - <blockquote> 2.1509 - After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 2.1510 - you need to install several build dependencies. The simplest 2.1511 - way to do it is to execute the following commands: 2.1512 - <p/> 2.1513 - <code>sudo aptitude build-dep openjdk-6</code> 2.1514 - <p/> 2.1515 - <code>sudo aptitude install openjdk-6-jdk</code> 2.1516 - <p/> 2.1517 - In addition, it's necessary to set a few environment variables for the build: 2.1518 - <p/> 2.1519 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 2.1520 - </blockquote> 2.1521 - <h4>Ubuntu 9.04</h4> 2.1522 - <p> 2.1523 - <blockquote> 2.1524 - After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 2.1525 - you need to install several build dependencies. The simplest 2.1526 - way to do it is to execute the following commands: 2.1527 - <p/> 2.1528 - <code>sudo aptitude build-dep openjdk-6</code> 2.1529 - <p/> 2.1530 - <code>sudo aptitude install openjdk-6-jdk</code> 2.1531 - <p/> 2.1532 - In addition, it's necessary to set a few environment variables for the build: 2.1533 - <p/> 2.1534 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> 2.1535 - </blockquote> 2.1536 - </blockquote> 2.1537 - <!-- ====================================================== --> 2.1538 - <h3><a name="opensuse">OpenSUSE</a></h3> 2.1539 - <blockquote> 2.1540 - <h4>OpenSUSE 11.1</h4> 2.1541 - <p> 2.1542 - <blockquote> 2.1543 - After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 2.1544 - you need to install several build dependencies. 2.1545 - The simplest way to install the build dependencies is to 2.1546 - execute the following commands: 2.1547 - <p/> 2.1548 - <code>sudo zypper source-install -d java-1_6_0-openjdk</code> 2.1549 - <p/> 2.1550 - <code>sudo zypper install make</code> 2.1551 - <p/> 2.1552 - In addition, it is necessary to set a few environment variables for the build: 2.1553 - <p/> 2.1554 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> 2.1555 - <p/> 2.1556 - Finally, you need to unset the <code>JAVA_HOME</code> environment variable: 2.1557 - <p/> 2.1558 - <code>export -n JAVA_HOME</code> 2.1559 - </blockquote> 2.1560 - </blockquote> 2.1561 - <!-- ====================================================== --> 2.1562 - <h3><a name="mandriva">Mandriva</a></h3> 2.1563 - <blockquote> 2.1564 - <h4>Mandriva Linux One 2009 Spring</h4> 2.1565 - <p> 2.1566 - <blockquote> 2.1567 - After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring 2.1568 - you need to install several build dependencies. 2.1569 - The simplest way to install the build dependencies is to 2.1570 - execute the following commands as user <tt>root</tt>: 2.1571 - <p/> 2.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> 2.1573 - <p/> 2.1574 - In addition, it is necessary to set a few environment variables for the build: 2.1575 - <p/> 2.1576 - <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> 2.1577 - </blockquote> 2.1578 - </blockquote> 2.1579 - <!-- ====================================================== --> 2.1580 - <h3><a name="opensolaris">OpenSolaris</a></h3> 2.1581 - <blockquote> 2.1582 - <h4>OpenSolaris 2009.06</h4> 2.1583 - <p> 2.1584 - <blockquote> 2.1585 - After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 2.1586 - you need to install several build dependencies. 2.1587 - The simplest way to install the build dependencies is to 2.1588 - execute the following commands: 2.1589 - <p/> 2.1590 - <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code> 2.1591 - <p/> 2.1592 - In addition, it is necessary to set a few environment variables for the build: 2.1593 - <p/> 2.1594 - <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code> 2.1595 - <p/> 2.1596 - Finally, you need to make sure that the build process can find the Sun Studio compilers: 2.1597 - <p/> 2.1598 - <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code> 2.1599 - </blockquote> 2.1600 - </blockquote> 2.1601 - <!-- ------------------------------------------------------ --> 2.1602 - <hr> 2.1603 - <h2><a name="directories">Source Directory Structure</a></h2> 2.1604 - <blockquote> 2.1605 - <p> 2.1606 - The source code for the OpenJDK is delivered in a set of 2.1607 - directories: 2.1608 - <tt>hotspot</tt>, 2.1609 - <tt>langtools</tt>, 2.1610 - <tt>corba</tt>, 2.1611 - <tt>jaxws</tt>, 2.1612 - <tt>jaxp</tt>, 2.1613 - and 2.1614 - <tt>jdk</tt>. 2.1615 - The <tt>hotspot</tt> directory contains the source code and make 2.1616 - files for building the OpenJDK Hotspot Virtual Machine. 2.1617 - The <tt>langtools</tt> directory contains the source code and make 2.1618 - files for building the OpenJDK javac and language tools. 2.1619 - The <tt>corba</tt> directory contains the source code and make 2.1620 - files for building the OpenJDK Corba files. 2.1621 - The <tt>jaxws</tt> directory contains the source code and make 2.1622 - files for building the OpenJDK JAXWS files. 2.1623 - The <tt>jaxp</tt> directory contains the source code and make 2.1624 - files for building the OpenJDK JAXP files. 2.1625 - The <tt>jdk</tt> directory contains the source code and make files for 2.1626 - building the OpenJDK runtime libraries and misc files. 2.1627 - The top level <tt>Makefile</tt> 2.1628 - is used to build the entire OpenJDK. 2.1629 2.1630 - <h3><a name="drops">Managing the Source Drops</a></h3> 2.1631 - <blockquote> 2.1632 <p> 2.1633 - The repositories <tt>jaxp</tt> and <tt>jaxws</tt> actually 2.1634 - do not contain the sources for JAXP or JAX-WS. 2.1635 - These products have their own open source procedures at their 2.1636 - <a href="http://jaxp.java.net/">JAXP</a> and 2.1637 - <a href="http://jax-ws.java.net/">JAX-WS</a> home pages. 2.1638 - The OpenJDK project does need access to these sources to build 2.1639 - a complete JDK image because JAXP and JAX-WS are part of the JDK. 2.1640 - The current process for delivery of the JAXP and JAX-WS sources 2.1641 - involves so called "source drop bundles" downloaded from a public 2.1642 - website. 2.1643 - There are many reasons for this current mechanism, and it is 2.1644 - understood that this is not ideal for the open source community. 2.1645 - It is possible this process could change in the future. 2.1646 + <b>Q:</b> The <code>configure</code> file looks horrible! 2.1647 + How are you going to edit it? 2.1648 <br> 2.1649 - <b>NOTE:</b> The <a href="http://download.java.net/openjdk/jdk8/"> 2.1650 - Complete OpenJDK Source Bundles</a> <u>will</u> contain the JAXP and 2.1651 - JAX-WS sources. 2.1652 + <b>A:</b> The <code>configure</code> file is generated (think 2.1653 + "compiled") by the autoconf tools. The source code is 2.1654 + in <code>configure.ac</code> various .m4 files in common/autoconf, 2.1655 + which are 2.1656 + much more readable. 2.1657 </p> 2.1658 2.1659 - <h4><a name="dropcreation">Creation of New Source Drop Bundles</a></h4> 2.1660 + <p> 2.1661 + <b>Q:</b> 2.1662 + Why is the <code>configure</code> file checked in, 2.1663 + if it is generated? 2.1664 + <br> 2.1665 + <b>A:</b> 2.1666 + If it was not generated, every user would need to have the autoconf 2.1667 + tools installed, and re-generate the <code>configure</code> file 2.1668 + as the first step. 2.1669 + Our goal is to minimize the work needed to be done by the user 2.1670 + to start building OpenJDK, and to minimize 2.1671 + the number of external dependencies required. 2.1672 + </p> 2.1673 + 2.1674 + <p> 2.1675 + <b>Q:</b> 2.1676 + Do you require a specific version of autoconf for regenerating 2.1677 + <code>configure</code>? 2.1678 + <br> 2.1679 + <b>A:</b> 2.1680 + Currently, no, but this will likely be the case when things have 2.1681 + settled down a bit more. (The reason for this is to avoid 2.1682 + large spurious changes in <code>configure</code> 2.1683 + in commits that made small changes to <code>configure.ac</code>). 2.1684 + </p> 2.1685 + 2.1686 + <p> 2.1687 + <b>Q:</b> 2.1688 + What are the files in <code>common/makefiles/support/*</code> for? 2.1689 + They look like gibberish. 2.1690 + <br> 2.1691 + <b>A:</b> 2.1692 + They are a somewhat ugly hack to compensate for command line length 2.1693 + limitations on certain platforms (Windows, Solaris). 2.1694 + Due to a combination of limitations in make and the shell, 2.1695 + command lines containing too many files will not work properly. 2.1696 + These 2.1697 + helper files are part of an elaborate hack that will compress the 2.1698 + command line in the makefile and then uncompress it safely. 2.1699 + We're 2.1700 + not proud of it, but it does fix the problem. 2.1701 + If you have any better suggestions, we're all ears! :-) 2.1702 + </p> 2.1703 + 2.1704 + <p> 2.1705 + <b>Q:</b> 2.1706 + I want to see the output of the commands that make runs, 2.1707 + like in the old build. How do I do that? 2.1708 + <br> 2.1709 + <b>A:</b> 2.1710 + You specify the <code>LOG</code> variable to make. There are 2.1711 + several log levels: 2.1712 + </p> 2.1713 <blockquote> 2.1714 - <ol> 2.1715 + <ul> 2.1716 <li> 2.1717 - The JAXP or JAX-WS team prepares a new zip bundle, 2.1718 - places a copy in a public download area on java.net, 2.1719 - sends us a link and a list of CRs (Change Request Numbers). 2.1720 - The older download bundles should not be deleted. 2.1721 - It is the responsibility of the JAXP and JAX-WS team to 2.1722 - place the proper GPL legal notices on the sources 2.1723 - and do any filtering or java re-packaging for the 2.1724 - OpenJDK instances of these classes. 2.1725 + <b><code>warn</code></b> — Default and very quiet. 2.1726 </li> 2.1727 <li> 2.1728 - The OpenJDK team copies this new bundle into shared 2.1729 - area (e.g. <tt>/java/devtools/share/jdk8-drops</tt>). 2.1730 - Older bundles are never deleted so we retain the history. 2.1731 + <b><code>info</code></b> — Shows more progress information 2.1732 + than warn. 2.1733 </li> 2.1734 <li> 2.1735 - The OpenJDK team edits the ant property file 2.1736 - <tt>jaxp/jaxp.properties</tt> or 2.1737 - <tt>jaxws/jaxws.properties</tt> to update the 2.1738 - base URL, the zip bundle name, and the MD5 checksum 2.1739 - of the zip bundle 2.1740 - (on Solaris: <tt>sum -c md5 <i>bundlename</i></tt>) 2.1741 + <b><code>debug</code></b> — Echos all command lines and 2.1742 + prints all macro calls for compilation definitions. 2.1743 </li> 2.1744 <li> 2.1745 - OpenJDK team reviews and commits those changes with the 2.1746 - given CRs. 2.1747 + <b><code>trace</code></b> — Echos all $(shell) command 2.1748 + lines as well. 2.1749 </li> 2.1750 - </ol> 2.1751 + </ul> 2.1752 </blockquote> 2.1753 2.1754 - <h4><a name="dropusage">Using Source Drop Bundles</a></h4> 2.1755 + <p> 2.1756 + <b>Q:</b> 2.1757 + When do I have to re-run <code>configure</code>? 2.1758 + <br> 2.1759 + <b>A:</b> 2.1760 + Normally you will run <code>configure</code> only once for creating a 2.1761 + configuration. 2.1762 + You need to re-run configuration only if you want to change any 2.1763 + configuration options, 2.1764 + or if you pull down changes to the <code>configure</code> script. 2.1765 + </p> 2.1766 + 2.1767 + <p> 2.1768 + <b>Q:</b> 2.1769 + I have added a new source file. Do I need to modify the makefiles? 2.1770 + <br> 2.1771 + <b>A:</b> 2.1772 + Normally, no. If you want to create e.g. a new native 2.1773 + library, 2.1774 + you will need to modify the makefiles. But for normal file 2.1775 + additions or removals, no changes are needed. There are certan 2.1776 + exceptions for some native libraries where the source files are spread 2.1777 + over many directories which also contain courses for other 2.1778 + libraries. In these cases it was simply easier to create include lists 2.1779 + rather thane excludes. 2.1780 + </p> 2.1781 + 2.1782 + <p> 2.1783 + <b>Q:</b> 2.1784 + When I run <code>configure --help</code>, I see many strange options, 2.1785 + like <code>--dvidir</code>. What is this? 2.1786 + <br> 2.1787 + <b>A:</b> 2.1788 + Configure provides a slew of options by default, to all projects 2.1789 + that use autoconf. Most of them are not used in OpenJDK, 2.1790 + so you can safely ignore them. To list only OpenJDK specific features, 2.1791 + use <code>configure --help=short</code> instead. 2.1792 + </p> 2.1793 + 2.1794 + <p> 2.1795 + <b>Q:</b> 2.1796 + <code>configure</code> provides OpenJDK-specific features such as 2.1797 + <code>--enable-jigsaw</code> or <code>--with-builddeps-server</code> 2.1798 + that are not described in this document. What about those? 2.1799 + <br> 2.1800 + <b>A:</b> 2.1801 + Try them out if you like! But be aware that most of these are 2.1802 + experimental features. 2.1803 + Many of them don't do anything at all at the moment; the option 2.1804 + is just a placeholder. Other depends on 2.1805 + pieces of code or infrastructure that is currently 2.1806 + not ready for prime time. 2.1807 + </p> 2.1808 + 2.1809 + <p> 2.1810 + <b>Q:</b> 2.1811 + How will you make sure you don't break anything? 2.1812 + <br> 2.1813 + <b>A:</b> 2.1814 + We have a script that compares the result of the new build system 2.1815 + with the result of the old. For most part, we aim for (and achieve) 2.1816 + byte-by-byte identical output. There are however technical issues 2.1817 + with e.g. native binaries, which might differ in a byte-by-byte 2.1818 + comparison, even 2.1819 + when building twice with the old build system. 2.1820 + For these, we compare relevant aspects 2.1821 + (e.g. the symbol table and file size). 2.1822 + Note that we still don't have 100% 2.1823 + equivalence, but we're close. 2.1824 + </p> 2.1825 + 2.1826 + <p> 2.1827 + <b>Q:</b> 2.1828 + I noticed this thing X in the build that looks very broken by design. 2.1829 + Why don't you fix it? 2.1830 + <br> 2.1831 + <b>A:</b> 2.1832 + Our goal is to produce a build output that is as close as 2.1833 + technically possible to the old build output. 2.1834 + If things were weird in the old build, 2.1835 + they will be weird in the new build. 2.1836 + Often, things were weird before due to obscurity, 2.1837 + but in the new build system the weird stuff comes up to the surface. 2.1838 + The plan is to attack these things at a later stage, 2.1839 + after the new build system is established. 2.1840 + </p> 2.1841 + 2.1842 + <p> 2.1843 + <b>Q:</b> 2.1844 + The code in the new build system is not that well-structured. 2.1845 + Will you fix this? 2.1846 + <br> 2.1847 + <b>A:</b> 2.1848 + Yes! The new build system has grown bit by bit as we converted 2.1849 + the old system. When all of the old build system is converted, 2.1850 + we can take a step back and clean up the structure of the new build 2.1851 + system. Some of this we plan to do before replacing the old build 2.1852 + system and some will need to wait until after. 2.1853 + </p> 2.1854 + 2.1855 + <p> 2.1856 + <b>Q:</b> What is @GenerateNativeHeaders? 2.1857 + <br> 2.1858 + <b>A:</b> 2.1859 + To speed up compilation, we added a flag to javac which makes it 2.1860 + do the job of javah as well, as a by-product; that is, generating 2.1861 + native .h header files. These files are only generated 2.1862 + if a class contains native methods. However, sometimes 2.1863 + a class contains no native method, 2.1864 + but still contains constants that native code needs to use. 2.1865 + The new GenerateNativeHeaders annotation tells javac to 2.1866 + force generation of a 2.1867 + header file in these cases. (We don't want to generate 2.1868 + native headers for all classes that contains constants 2.1869 + but no native methods, since 2.1870 + that would slow down the compilation process needlessly.) 2.1871 + </p> 2.1872 + 2.1873 + <p> 2.1874 + <b>Q:</b> 2.1875 + Is anything able to use the results of the new build's default make target? 2.1876 + <br> 2.1877 + <b>A:</b> 2.1878 + Yes, this is the minimal (or roughly minimal) 2.1879 + set of compiled output needed for a developer to actually 2.1880 + execute the newly built JDK. The idea is that in an incremental 2.1881 + development fashion, when doing a normal make, 2.1882 + you should only spend time recompiling what's changed 2.1883 + (making it purely incremental) and only do the work that's 2.1884 + needed to actually run and test your code. 2.1885 + The packaging stuff that is part of the <code>images</code> 2.1886 + target is not needed for a normal developer who wants to 2.1887 + test his new code. Even if it's quite fast, it's still unnecessary. 2.1888 + We're targeting sub-second incremental rebuilds! ;-) 2.1889 + (Or, well, at least single-digit seconds...) 2.1890 + </p> 2.1891 + 2.1892 + <p> 2.1893 + <b>Q:</b> 2.1894 + I usually set a specific environment variable when building, 2.1895 + but I can't find the equivalent in the new build. 2.1896 + What should I do? 2.1897 + <br> 2.1898 + <b>A:</b> 2.1899 + It might very well be that we have missed to add support for 2.1900 + an option that was actually used from outside the build system. 2.1901 + Email us and we will 2.1902 + add support for it! 2.1903 + </p> 2.1904 + 2.1905 + </blockquote> 2.1906 + 2.1907 + <h3><a name="performance">Build Performance Tips</a></h3> 2.1908 + <blockquote> 2.1909 + 2.1910 + <p>Building OpenJDK requires a lot of horsepower. 2.1911 + Some of the build tools can be adjusted to utilize more or less 2.1912 + of resources such as 2.1913 + parallel threads and memory. 2.1914 + The <code>configure</code> script analyzes your system and selects reasonable 2.1915 + values for such options based on your hardware. 2.1916 + If you encounter resource problems, such as out of memory conditions, 2.1917 + you can modify the detected values with:</p> 2.1918 + 2.1919 + <ul> 2.1920 + <li> 2.1921 + <b><code>--with-num-cores</code></b> 2.1922 + — 2.1923 + number of cores in the build system, 2.1924 + e.g. <code>--with-num-cores=8</code> 2.1925 + </li> 2.1926 + <li> 2.1927 + <b><code>--with-memory-size</code></b> 2.1928 + — memory (in MB) available in the build system, 2.1929 + e.g. <code>--with-memory-size=1024</code> 2.1930 + </li> 2.1931 + </ul> 2.1932 + 2.1933 + <p>It might also be necessary to specify the JVM arguments passed 2.1934 + to the Bootstrap JDK, using e.g. 2.1935 + <code>--with-boot-jdk-jvmargs="-Xmx8G -enableassertions"</code>. 2.1936 + Doing this will override the default JVM arguments 2.1937 + passed to the Bootstrap JDK.</p> 2.1938 + 2.1939 + 2.1940 + <p>One of the top goals of the new build system is to improve the 2.1941 + build performance and decrease the time needed to build. This will 2.1942 + soon also apply to the java compilation when the Smart Javac wrapper 2.1943 + is making its way into jdk8. It can be tried in the build-infra 2.1944 + repository already. You are likely to find that the new build system 2.1945 + is faster than the old one even without this feature.</p> 2.1946 + 2.1947 + <p>At the end of a successful execution of <code>configure</code>, 2.1948 + you will get a performance summary, 2.1949 + indicating how well the build will perform. Here you will 2.1950 + also get performance hints. 2.1951 + If you want to build fast, pay attention to those!</p> 2.1952 + 2.1953 + <h4>Building with ccache</h4> 2.1954 + 2.1955 + <p>A simple way to radically speed up compilation of native code 2.1956 + (typically hotspot and native libraries in JDK) is to install 2.1957 + ccache. This will cache and reuse prior compilation results, if the 2.1958 + source code is unchanged. However, ccache versions prior to 3.1.4 2.1959 + does not work correctly with the precompiled headers used in 2.1960 + OpenJDK. So if your platform supports ccache at 3.1.4 or later, we 2.1961 + highly recommend installing it. This is currently only supported on 2.1962 + linux.</p> 2.1963 + 2.1964 + <h4>Building on local disk</h4> 2.1965 + 2.1966 + <p>If you are using network shares, e.g. via NFS, for your source code, 2.1967 + make sure the build directory is situated on local disk. 2.1968 + The performance 2.1969 + penalty is extremely high for building on a network share, 2.1970 + close to unusable.</p> 2.1971 + 2.1972 + <h4>Building only one JVM</h4> 2.1973 + 2.1974 + <p>The old build builds multiple JVMs on 32-bit systems (client and 2.1975 + server; and on Windows kernel as well). In the new build we have 2.1976 + changed this default to only build server when it's available. This 2.1977 + improves build times for those not interested in multiple JVMs. To 2.1978 + mimic the old behavior on platforms that support it, 2.1979 + use <code>--with-jvm-variants=client,server</code>.</p> 2.1980 + 2.1981 + <h4>Selecting the number of cores to build on</h4> 2.1982 + 2.1983 + <p>By default, <code>configure</code> will analyze your machine and run the make 2.1984 + process in parallel with as many threads as you have cores. This 2.1985 + behavior can be overridden, either "permanently" (on a <code>configure</code> 2.1986 + basis) using <code>--with-num-cores=N</code> or for a single build 2.1987 + only (on a make basis), using <code>make JOBS=N</code>.</p> 2.1988 + 2.1989 + <p>If you want to make a slower build just this time, to save some CPU 2.1990 + power for other processes, you can run 2.1991 + e.g. <code>make JOBS=2</code>. This will force the makefiles 2.1992 + to only run 2 parallel processes, or even <code>make JOBS=1</code> 2.1993 + which will disable parallelism.</p> 2.1994 + 2.1995 + <p>If you want to have it the other way round, namely having slow 2.1996 + builds default and override with fast if you're 2.1997 + impatient, you should call <code>configure</code> with 2.1998 + <code>--with-num-cores=2</code>, making 2 the default. 2.1999 + If you want to run with more 2.2000 + cores, run <code>make JOBS=8</code></p> 2.2001 + 2.2002 + </blockquote> 2.2003 + 2.2004 + <h3><a name="troubleshooting">Troubleshooting</a></h3> 2.2005 + <blockquote> 2.2006 + 2.2007 + <h4>Solving build problems</h4> 2.2008 + 2.2009 <blockquote> 2.2010 - <p> 2.2011 - The ant scripts that build <tt>jaxp</tt> and <tt>jaxws</tt> 2.2012 - will attempt to locate these zip bundles from the directory 2.2013 - in the environment variable 2.2014 - <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt>. 2.2015 - The checksums protect from getting the wrong, corrupted, or 2.2016 - improperly modified sources. 2.2017 - Once the sources are made available, the population will not 2.2018 - happen again unless a <tt>make clobber</tt> is requested 2.2019 - or the <tt>jaxp/drop/</tt> or <tt>jaxws/drop/</tt> 2.2020 - directory is explicitly deleted. 2.2021 - <br> 2.2022 - <b>NOTE:</b> The default Makefile and ant script behavior 2.2023 - is to NOT download these bundles from the public http site. 2.2024 - In general, doing downloads 2.2025 - during the build process is not advised, it creates too much 2.2026 - unpredictability in the build process. 2.2027 - However, you can use <tt>make ALLOW_DOWNLOADS=true</tt> to 2.2028 - tell the ant script that the download of the zip bundle is 2.2029 - acceptable. 2.2030 - </p> 2.2031 - <p> 2.2032 - The recommended procedure for keeping a cache of these 2.2033 - source bundles would be to download them once, place them 2.2034 - in a directory outside the repositories, and then set 2.2035 - <tt><a href="#ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> to refer 2.2036 - to that directory. 2.2037 - These drop bundles do change occasionally, so the newer 2.2038 - bundles may need to be added to this area from time to time. 2.2039 - </p> 2.2040 + If the build fails (and it's not due to a compilation error in 2.2041 + a source file you've changed), the first thing you should do 2.2042 + is to re-run the build with more verbosity. 2.2043 + Do this by adding <code>LOG=debug</code> to your make command line. 2.2044 + <br> 2.2045 + The build log (with both stdout and stderr intermingled, 2.2046 + basically the same as you see on your console) can be found as 2.2047 + <code>build.log</code> in your build directory. 2.2048 + <br> 2.2049 + You can ask for help on build problems with the new build system 2.2050 + on either the 2.2051 + <a href="http://mail.openjdk.java.net/mailman/listinfo/build-dev"> 2.2052 + build-dev</a> 2.2053 + or the 2.2054 + <a href="http://mail.openjdk.java.net/mailman/listinfo/build-infra-dev"> 2.2055 + build-infra-dev</a> 2.2056 + mailing lists. Please include the relevant parts 2.2057 + of the build log. 2.2058 + <br> 2.2059 + A build can fail for any number of reasons. 2.2060 + Most failures 2.2061 + are a result of trying to build in an environment in which all the 2.2062 + pre-build requirements have not been met. 2.2063 + The first step in 2.2064 + troubleshooting a build failure is to recheck that you have satisfied 2.2065 + all the pre-build requirements for your platform. 2.2066 + Scanning the <code>configure</code> log is a good first step, making 2.2067 + sure that what it found makes sense for your system. 2.2068 + Look for strange error messages or any difficulties that 2.2069 + <code>configure</code> had in finding things. 2.2070 + <br> 2.2071 + Some of the more common problems with builds are briefly 2.2072 + described 2.2073 + below, with suggestions for remedies. 2.2074 + <ul> 2.2075 + <li> 2.2076 + <b>Corrupted Bundles on Windows:</b> 2.2077 + <blockquote> 2.2078 + Some virus scanning software has been known to 2.2079 + corrupt the 2.2080 + downloading of zip bundles. 2.2081 + It may be necessary to disable the 'on access' or 2.2082 + 'real time' 2.2083 + virus scanning features to prevent this corruption. 2.2084 + This type of "real time" virus scanning can also 2.2085 + slow down the 2.2086 + build process significantly. 2.2087 + Temporarily disabling the feature, or excluding the build 2.2088 + output directory may be necessary to get correct and 2.2089 + faster builds. 2.2090 + </blockquote> 2.2091 + </li> 2.2092 + <li> 2.2093 + <b>Slow Builds:</b> 2.2094 + <blockquote> 2.2095 + If your build machine seems to be overloaded from too many 2.2096 + simultaneous C++ compiles, try setting the 2.2097 + <code>JOBS=1</code> on the <code>make</code> command line. 2.2098 + Then try increasing the count slowly to an acceptable 2.2099 + level for your system. Also: 2.2100 + <blockquote> 2.2101 + Creating the javadocs can be very slow, 2.2102 + if you are running 2.2103 + javadoc, consider skipping that step. 2.2104 + <br> 2.2105 + Faster CPUs, more RAM, and a faster DISK usually helps. 2.2106 + The VM build tends to be CPU intensive 2.2107 + (many C++ compiles), 2.2108 + and the rest of the JDK will often be disk intensive. 2.2109 + <br> 2.2110 + Faster compiles are possible using a tool called 2.2111 + <a href="http://ccache.samba.org/" target="_blank">ccache</a>. 2.2112 + </blockquote> 2.2113 + </blockquote> 2.2114 + </li> 2.2115 + <li> 2.2116 + <b>File time issues:</b> 2.2117 + <blockquote> 2.2118 + If you see warnings that refer to file time stamps, e.g. 2.2119 + <blockquote> 2.2120 + <i>Warning message:</i><code> 2.2121 + File `xxx' has modification time in 2.2122 + the future.</code> 2.2123 + <br> 2.2124 + <i>Warning message:</i> <code> Clock skew detected. 2.2125 + Your build may 2.2126 + be incomplete.</code> 2.2127 + </blockquote> 2.2128 + These warnings can occur when the clock on the build 2.2129 + machine is out of 2.2130 + sync with the timestamps on the source files. 2.2131 + Other errors, apparently 2.2132 + unrelated but in fact caused by the clock skew, 2.2133 + can occur along with 2.2134 + the clock skew warnings. 2.2135 + These secondary errors may tend to obscure the 2.2136 + fact that the true root cause of the problem 2.2137 + is an out-of-sync clock. 2.2138 + <p> 2.2139 + If you see these warnings, reset the clock on the 2.2140 + build 2.2141 + machine, run "<code><i>gmake</i> clobber</code>" 2.2142 + or delete the directory 2.2143 + containing the build output, and restart the 2.2144 + build from the beginning. 2.2145 + </blockquote> 2.2146 + </li> 2.2147 + <li> 2.2148 + <b>Error message: 2.2149 + <code>Trouble writing out table to disk</code></b> 2.2150 + <blockquote> 2.2151 + Increase the amount of swap space on your build machine. 2.2152 + This could be caused by overloading the system and 2.2153 + it may be necessary to use: 2.2154 + <blockquote> 2.2155 + <code>make JOBS=1</code> 2.2156 + </blockquote> 2.2157 + to reduce the load on the system. 2.2158 + </blockquote> 2.2159 + </li> 2.2160 + <li> 2.2161 + <b>Error Message: 2.2162 + <code>libstdc++ not found:</code></b> 2.2163 + <blockquote> 2.2164 + This is caused by a missing libstdc++.a library. 2.2165 + This is installed as part of a specific package 2.2166 + (e.g. libstdc++.so.devel.386). 2.2167 + By default some 64-bit Linux versions (e.g. Fedora) 2.2168 + only install the 64-bit version of the libstdc++ package. 2.2169 + Various parts of the JDK build require a static 2.2170 + link of the C++ runtime libraries to allow for maximum 2.2171 + portability of the built images. 2.2172 + </blockquote> 2.2173 + </li> 2.2174 + <li> 2.2175 + <b>Linux Error Message: 2.2176 + <code>cannot restore segment prot after reloc</code></b> 2.2177 + <blockquote> 2.2178 + This is probably an issue with SELinux (See 2.2179 + <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> 2.2180 + http://en.wikipedia.org/wiki/SELinux</a>). 2.2181 + Parts of the VM is built without the <code>-fPIC</code> for 2.2182 + performance reasons. 2.2183 + <p> 2.2184 + To completely disable SELinux: 2.2185 + <ol> 2.2186 + <li><code>$ su root</code></li> 2.2187 + <li><code># system-config-securitylevel</code></li> 2.2188 + <li><code>In the window that appears, select the SELinux tab</code></li> 2.2189 + <li><code>Disable SELinux</code></li> 2.2190 + </ol> 2.2191 + <p> 2.2192 + Alternatively, instead of completely disabling it you could 2.2193 + disable just this one check. 2.2194 + <ol> 2.2195 + <li>Select System->Administration->SELinux Management</li> 2.2196 + <li>In the SELinux Management Tool which appears, 2.2197 + select "Boolean" from the menu on the left</li> 2.2198 + <li>Expand the "Memory Protection" group</li> 2.2199 + <li>Check the first item, labeled 2.2200 + "Allow all unconfined executables to use 2.2201 + libraries requiring text relocation ..."</li> 2.2202 + </ol> 2.2203 + </blockquote> 2.2204 + </li> 2.2205 + <li> 2.2206 + <b>Windows Error Messages:</b> 2.2207 + <br> 2.2208 + <code>*** fatal error - couldn't allocate heap, ... </code> 2.2209 + <br> 2.2210 + <code>rm fails with "Directory not empty"</code> 2.2211 + <br> 2.2212 + <code>unzip fails with "cannot create ... Permission denied"</code> 2.2213 + <br> 2.2214 + <code>unzip fails with "cannot create ... Error 50"</code> 2.2215 + <br> 2.2216 + <blockquote> 2.2217 + The CYGWIN software can conflict with other non-CYGWIN 2.2218 + software. See the CYGWIN FAQ section on 2.2219 + <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 2.2220 + BLODA (applications that interfere with CYGWIN)</a>. 2.2221 + </blockquote> 2.2222 + </li> 2.2223 + <li> 2.2224 + <b>Windows Error Message: <code>spawn failed</code></b> 2.2225 + <blockquote> 2.2226 + Try rebooting the system, or there could be some kind of 2.2227 + issue with the disk or disk partition being used. 2.2228 + Sometimes it comes with a "Permission Denied" message. 2.2229 + </blockquote> 2.2230 + </li> 2.2231 + </ul> 2.2232 </blockquote> 2.2233 - </blockquote> 2.2234 - </blockquote> 2.2235 - <!-- ------------------------------------------------------ --> 2.2236 + 2.2237 + </blockquote> <!-- Troubleshooting --> 2.2238 + 2.2239 + </blockquote> <!-- Appendix A --> 2.2240 + 2.2241 + <!-- ====================================================== --> 2.2242 <hr> 2.2243 - <h2><a name="building">Build Information</a></h2> 2.2244 + <h2><a name="gmake">Appendix B: GNU make</a></h2> 2.2245 <blockquote> 2.2246 - Building the OpenJDK 2.2247 - is done with a <a href="#gmake">GNU <tt>make</tt></a> command line 2.2248 - and various 2.2249 - environment or make variable settings that direct the makefile rules 2.2250 - to where various components have been installed. 2.2251 - Where possible the makefiles will attempt to located the various 2.2252 - components in the default locations or any component specific 2.2253 - variable settings. 2.2254 - When the normal defaults fail or components cannot be found, 2.2255 - the various 2.2256 - <tt>ALT_*</tt> variables (alternates) 2.2257 - can be used to help the makefiles locate components. 2.2258 - <p> 2.2259 - Refer to the bash/sh/ksh setup file 2.2260 - <tt>jdk/make/jdk_generic_profile.sh</tt> 2.2261 - if you need help in setting up your environment variables. 2.2262 - A build could be as simple as: 2.2263 - <blockquote> 2.2264 - <pre><tt> 2.2265 - bash 2.2266 - . jdk/make/jdk_generic_profile.sh 2.2267 - <a href="#gmake"><tt>make</tt></a> sanity && <a href="#gmake"><tt>make</tt></a> 2.2268 - </tt></pre> 2.2269 - </blockquote> 2.2270 - <p> 2.2271 - Of course ksh or sh would work too. 2.2272 - But some customization will probably be necessary. 2.2273 - The <tt>sanity</tt> rule will make some basic checks on build 2.2274 - dependencies and generate appropriate warning messages 2.2275 - regarding missing, out of date, or newer than expected components 2.2276 - found on your system. 2.2277 - </blockquote> 2.2278 - <!-- ------------------------------------------------------ --> 2.2279 - <hr> 2.2280 - <h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3> 2.2281 - <blockquote> 2.2282 + 2.2283 The Makefiles in the OpenJDK are only valid when used with the 2.2284 - GNU version of the utility command <tt>make</tt> 2.2285 - (<tt><i>gmake</i></tt>). 2.2286 + GNU version of the utility command <code>make</code> 2.2287 + (usually called <code>gmake</code> on Solaris). 2.2288 A few notes about using GNU make: 2.2289 <ul> 2.2290 <li> 2.2291 You need GNU make version 3.81 or newer. 2.2292 + If the GNU make utility on your systems is not 2.2293 + 3.81 or newer, 2.2294 + see <a href="#buildgmake">"Building GNU make"</a>. 2.2295 </li> 2.2296 <li> 2.2297 - Place the location of the GNU make binary in the <tt>PATH</tt>. 2.2298 - </li> 2.2299 - <li> 2.2300 - <strong>Linux:</strong> 2.2301 - The <tt>/usr/bin/make</tt> should be 3.81 or newer 2.2302 - and should work fine for you. 2.2303 - If this version is not 3.81 or newer, 2.2304 - see the <a href="#buildgmake">"Building GNU make"</a> section. 2.2305 + Place the location of the GNU make binary in the 2.2306 + <code>PATH</code>. 2.2307 </li> 2.2308 <li> 2.2309 <strong>Solaris:</strong> 2.2310 - Do NOT use <tt>/usr/bin/make</tt> on Solaris. 2.2311 + Do NOT use <code>/usr/bin/make</code> on Solaris. 2.2312 If your Solaris system has the software 2.2313 - from the Solaris Companion CD installed, 2.2314 - you should try and use <tt>gmake</tt> 2.2315 - which will be located in either the <tt>/opt/sfw/bin</tt> or 2.2316 - <tt>/usr/sfw/bin</tt> directory. 2.2317 - In more recent versions of Solaris GNU make might be found 2.2318 - at <tt>/usr/bin/gmake</tt>.<br> 2.2319 - <b>NOTE:</b> It is very likely that this <tt>gmake</tt> 2.2320 - could be 3.80, you need 3.81, in which case, 2.2321 - see the <a href="#buildgmake">"Building GNU make"</a> section. 2.2322 + from the Solaris Developer Companion CD installed, 2.2323 + you should try and use <code>gmake</code> 2.2324 + which will be located in either the 2.2325 + <code>/usr/bin</code>, <code>/opt/sfw/bin</code> or 2.2326 + <code>/usr/sfw/bin</code> directory. 2.2327 </li> 2.2328 <li> 2.2329 <strong>Windows:</strong> 2.2330 - Make sure you start your build inside a bash/sh/ksh shell and are 2.2331 - using a <tt>make.exe</tt> utility built for that environment.<br/> 2.2332 - <strong>MKS</strong> builds need a native Windows version of GNU make 2.2333 - (see <a href="#buildgmake">Building GNU make</a>).<br/> 2.2334 - <strong>Cygwin</strong> builds need 2.2335 - a make version which was specially compiled for the Cygwin environment 2.2336 - (see <a href="#buildgmake">Building GNU make</a>). <strong>WARNING:</strong> 2.2337 - the OpenJDK build with the make utility provided by Cygwin will <strong>not</strong> 2.2338 - work because it does not support drive letters in paths. Make sure that 2.2339 - your version of make will be found before the Cygwins default make by 2.2340 - setting an appropriate <tt>PATH</tt> environment variable or by removing 2.2341 - Cygwin's make after you built your own make version.<br/> 2.2342 - <strong>MinGW/MSYS</strong> builds can use the default make which 2.2343 - comes with the environment. 2.2344 + Make sure you start your build inside a bash shell. 2.2345 + </li> 2.2346 + <li> 2.2347 + <strong>Mac OS X:</strong> 2.2348 + The XCode "command line tools" must be installed on your Mac. 2.2349 </li> 2.2350 </ul> 2.2351 <p> 2.2352 @@ -714,1539 +1775,728 @@ 2.2353 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> 2.2354 ftp.gnu.org/pub/gnu/make/</a>. 2.2355 </p> 2.2356 - <!-- ------------------------------------------------------ --> 2.2357 - <h4><a name="buildgmake">Building GNU make</a></h4> 2.2358 + 2.2359 + <h3><a name="buildgmake">Building GNU make</a></h3> 2.2360 <blockquote> 2.2361 - First step is to get the GNU make 3.81 (or newer) source from 2.2362 + First step is to get the GNU make 3.81 or newer source from 2.2363 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> 2.2364 ftp.gnu.org/pub/gnu/make/</a>. 2.2365 - Building is a little different depending on the OS and unix toolset 2.2366 - on Windows: 2.2367 - <ul> 2.2368 - <li> 2.2369 - <strong>Linux:</strong> 2.2370 - <tt>./configure && make</tt> 2.2371 - </li> 2.2372 - <li> 2.2373 - <strong>Solaris:</strong> 2.2374 - <tt>./configure && gmake CC=gcc</tt> 2.2375 - </li> 2.2376 - <li> 2.2377 - <strong>Windows for CYGWIN:</strong><br/> 2.2378 - <tt>./configure</tt><br/> 2.2379 - Add the line <tt>#define HAVE_CYGWIN_SHELL 1</tt> to the end of <tt>config.h</tt><br/> 2.2380 - <tt>make</tt><br/> 2.2381 - <br/> 2.2382 - This should produce <tt>make.exe</tt> in the current directory. 2.2383 - </li> 2.2384 - <li> 2.2385 - <strong>Windows for MKS:</strong><br/> 2.2386 - Edit <tt>config.h.W32</tt> and uncomment the line <tt>#define HAVE_MKS_SHELL 1</tt><br/> 2.2387 - Set the environment for your native compiler (e.g. by calling:<br/> 2.2388 - <tt>"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /Release /xp /x64)</tt> 2.2389 - <tt>nmake -f NMakefile.win32</tt> 2.2390 - <br/> 2.2391 - This should produce <tt>WinDebug/make.exe</tt> and <tt>WinRel/make.exe</tt> 2.2392 - <br/> 2.2393 - If you get the error: <tt>NMAKE : fatal error U1045: spawn failed : Permission denied</tt> 2.2394 - you have to set the <tt>Read & execute</tt> permission for the file <tt>subproc.bat</tt>. 2.2395 - </li> 2.2396 - </ul> 2.2397 - </blockquote> 2.2398 - </blockquote> 2.2399 - <!-- ------------------------------------------------------ --> 2.2400 - <hr> 2.2401 - <h3><a name="linux">Basic Linux System Setup</a></h3> 2.2402 - <blockquote> 2.2403 - <strong>i586 only:</strong> 2.2404 - The minimum recommended hardware for building the Linux version 2.2405 - is a Pentium class processor or better, at least 256 MB of RAM, and 2.2406 - approximately 1.5 GB of free disk space. 2.2407 - <p> 2.2408 - <strong>X64 only:</strong> 2.2409 - The minimum recommended hardware for building the Linux 2.2410 - version is an AMD Opteron class processor, at least 512 MB of RAM, and 2.2411 - approximately 4 GB of free disk space. 2.2412 - <p> 2.2413 - The build will use the tools contained in 2.2414 - <tt>/bin</tt> and 2.2415 - <tt>/usr/bin</tt> 2.2416 - of a standard installation of the Linux operating environment. 2.2417 - You should ensure that these directories are in your 2.2418 - <tt>PATH</tt>. 2.2419 - <p> 2.2420 - Note that some Linux systems have a habit of pre-populating 2.2421 - your environment variables for you, for example <tt>JAVA_HOME</tt> 2.2422 - might get pre-defined for you to refer to the JDK installed on 2.2423 - your Linux system. 2.2424 - You will need to unset <tt>JAVA_HOME</tt>. 2.2425 - It's a good idea to run <tt>env</tt> and verify the 2.2426 - environment variables you are getting from the default system 2.2427 - settings make sense for building the 2.2428 - OpenJDK. 2.2429 - </blockquote> 2.2430 - <!-- ------------------------------------------------------ --> 2.2431 - <h4><a name="linux_checklist">Basic Linux Check List</a></h4> 2.2432 - <blockquote> 2.2433 - <ol> 2.2434 - <li> 2.2435 - Install the 2.2436 - <a href="#bootjdk">Bootstrap JDK</a>, set 2.2437 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. 2.2438 - </li> 2.2439 - <li> 2.2440 - <a href="#importjdk">Optional Import JDK</a>, set 2.2441 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 2.2442 - </li> 2.2443 - <li> 2.2444 - Install or upgrade the <a href="#freetype">FreeType development 2.2445 - package</a>. 2.2446 - </li> 2.2447 - <li> 2.2448 - Install 2.2449 - <a href="#ant">Ant 1.7.1 or newer</a>, 2.2450 - make sure it is in your PATH. 2.2451 - </li> 2.2452 - </ol> 2.2453 - </blockquote> 2.2454 - <!-- ------------------------------------------------------ --> 2.2455 - <hr> 2.2456 - <h3><a name="solaris">Basic Solaris System Setup</a></h3> 2.2457 - <blockquote> 2.2458 - The minimum recommended hardware for building the 2.2459 - Solaris SPARC version is an UltraSPARC with 512 MB of RAM. 2.2460 - For building 2.2461 - the Solaris x86 version, a Pentium class processor or better and at 2.2462 - least 512 MB of RAM are recommended. 2.2463 - Approximately 1.4 GB of free disk 2.2464 - space is needed for a 32-bit build. 2.2465 - <p> 2.2466 - If you are building the 64-bit version, you should 2.2467 - run the command "isainfo -v" to verify that you have a 2.2468 - 64-bit installation, it should say <tt>sparcv9</tt> or 2.2469 - <tt>amd64</tt>. 2.2470 - An additional 7 GB of free disk space is needed 2.2471 - for a 64-bit build. 2.2472 - <p> 2.2473 - The build uses the tools contained in <tt>/usr/ccs/bin</tt> 2.2474 - and <tt>/usr/bin</tt> of a standard developer or full installation of 2.2475 - the Solaris operating environment. 2.2476 - <p> 2.2477 - Solaris patches specific to the JDK can be downloaded from the 2.2478 - <a href="http://sunsolve.sun.com/show.do?target=patches/JavaSE" target="_blank"> 2.2479 - SunSolve JDK Solaris patches download page</a>. 2.2480 - You should ensure that the latest patch cluster for 2.2481 - your version of the Solaris operating environment has also 2.2482 - been installed. 2.2483 - </blockquote> 2.2484 - <!-- ------------------------------------------------------ --> 2.2485 - <h4><a name="solaris_checklist">Basic Solaris Check List</a></h4> 2.2486 - <blockquote> 2.2487 - <ol> 2.2488 - <li> 2.2489 - Install the 2.2490 - <a href="#bootjdk">Bootstrap JDK</a>, set 2.2491 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. 2.2492 - </li> 2.2493 - <li> 2.2494 - <a href="#importjdk">Optional Import JDK</a>, set 2.2495 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 2.2496 - </li> 2.2497 - <li> 2.2498 - Install the 2.2499 - <a href="#studio">Sun Studio Compilers</a>, set 2.2500 - <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>. 2.2501 - </li> 2.2502 - <li> 2.2503 - Install the 2.2504 - <a href="#cups">CUPS Include files</a>, set 2.2505 - <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>. 2.2506 - </li> 2.2507 - <li> 2.2508 - Install the <a href="#xrender">XRender Include files</a>. 2.2509 - </li> 2.2510 - <li> 2.2511 - Install 2.2512 - <a href="#ant">Ant 1.7.1 or newer</a>, 2.2513 - make sure it is in your PATH. 2.2514 - </li> 2.2515 - </ol> 2.2516 - </blockquote> 2.2517 - <!-- ------------------------------------------------------ --> 2.2518 - <hr> 2.2519 - <h3><a name="windows">Basic Windows System Setup</a></h3> 2.2520 - <blockquote> 2.2521 - <strong>i586 only:</strong> 2.2522 - The minimum recommended hardware for building the 32-bit or X86 2.2523 - Windows version is an Pentium class processor or better, at least 2.2524 - 512 MB of RAM, and approximately 600 MB of free disk space. 2.2525 - <strong> 2.2526 - NOTE: The Windows build machines need to use the 2.2527 - file system NTFS. 2.2528 - Build machines formatted to FAT32 will not work 2.2529 - because FAT32 doesn't support case-sensitivity in file names. 2.2530 - </strong> 2.2531 - <p> 2.2532 - <strong>X64 only:</strong> 2.2533 - The minimum recommended hardware for building 2.2534 - the Windows X64 version is an AMD Opteron class processor, at least 1 2.2535 - GB of RAM, and approximately 10 GB of free disk space. 2.2536 - </blockquote> 2.2537 - <!-- ------------------------------------------------------ --> 2.2538 - <h4><a name="paths">Windows Paths</a></h4> 2.2539 - <blockquote> 2.2540 - <strong>Windows:</strong> 2.2541 - Note that GNU make, the shell and other Unix-tools required during the build 2.2542 - do not tolerate the Windows habit 2.2543 - of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames. 2.2544 - Luckily on most Windows systems, you can use <tt>/</tt>instead of <tt>\</tt>, and 2.2545 - there is always a short <a href="http://en.wikipedia.org/wiki/8.3_filename"> 2.2546 - "8.3" pathname</a> without spaces for any path that contains spaces. 2.2547 - Unfortunately, this short pathname is somewhat dynamic (i.e. dependant on the 2.2548 - other files and directories inside a given directory) and can not be 2.2549 - algorithmicly calculated by only looking at a specific path name. 2.2550 - <p> 2.2551 - The makefiles will try to translate any pathnames supplied 2.2552 - to it into the <tt>C:/</tt> style automatically. 2.2553 - </p> 2.2554 - <p> 2.2555 - Special care has to be taken if native Windows applications 2.2556 - like <tt>nmake</tt> or <tt>cl</tt> are called with file arguments processed 2.2557 - by Unix-tools like <tt>make</tt> or <tt>sh</tt>! 2.2558 - </p> 2.2559 - </blockquote> 2.2560 - <!-- ------------------------------------------------------ --> 2.2561 - <h4><a name="paths">Windows build environments</a></h4> 2.2562 - <blockquote> 2.2563 - Building on Windows requires a Unix-like environment, notably a Unix-like shell. 2.2564 - There are several such environments available of which 2.2565 - <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a>, 2.2566 - <a href="http://www.cygwin.com/">Cygwin</a> and 2.2567 - <a href="http://www.mingw.org/wiki/MSYS">MinGW/MSYS</a> are currently supported for 2.2568 - the OpenJDK build. One of the differences of these three systems is the way 2.2569 - they handle Windows path names, particularly path names which contain 2.2570 - spaces, backslashes as path separators and possibly drive letters. Depending 2.2571 - on the use case and the specifics of each environment these path problems can 2.2572 - be solved by a combination of quoting whole paths, translating backslashes to 2.2573 - forward slashes, escaping backslashes with additional backslashes and 2.2574 - translating the path names to their <a href="http://en.wikipedia.org/wiki/8.3_filename"> 2.2575 - "8.3" version</a>. 2.2576 - <p> 2.2577 - As of this writing (MKS ver. 9.4, Cygwin ver. 1.7.9, MinGW/MSYS 1.0.17), 2.2578 - MKS builds are known to be the fastest Windows builds while MingGW/MSYS 2.2579 - builds are slightly slower (about 10%) than MKS builds and Cygwin builds 2.2580 - require nearly twice the time (about 180%) of MKS builds (e.g. on a 2.2581 - DualCore i7 notebook with 8GB of RAM, HDD and 64-bit Windows 7 operating system 2.2582 - the complete OpenJDK 8 product build takes about 49min with MKS, 54min with 2.2583 - MinGW/MSYS and 88min with Cygwin). 2.2584 - </p> 2.2585 - <p> 2.2586 - Mixing tools from the different Unix emulation environments is not a good 2.2587 - idea and will probably not work! 2.2588 - </p> 2.2589 - <p> 2.2590 - <strong>MKS:</strong> is a commercial product which includes 2.2591 - all the Unix utilities which are required to build the OpenJDK except GNU 2.2592 - make. In pre-OpenJDK times it was the only supported build environment on 2.2593 - Windows. The MKS tools support Windows paths with drive letters and 2.2594 - forward slashes as path separator. Paths in environment variables like (for 2.2595 - example) <tt>PATH</tt> are separated by semicolon '<tt>;</tt>'. 2.2596 - </p> 2.2597 - <p> 2.2598 - Recent versions of MKS provide the <tt>dosname</tt> utility to convert paths 2.2599 - with spaces to short (8.3) path names,e .g. 2.2600 - <tt>dosname -s "<i>path</i>"</tt>. 2.2601 - </p> 2.2602 - <p> 2.2603 - If you are using the MKS environment, you need a native Windows version 2.2604 - of Gnu make <a href="#buildgmake">which you can easily build yourself</a>. 2.2605 - </p> 2.2606 - <p> 2.2607 - <strong>Cygwin:</strong> 2.2608 - is an open source, Linux-like environment which tries to emulate 2.2609 - a complete POSIX layer on Windows. It tries to be smart about path names 2.2610 - and can usually handle all kinds of paths if they are correctly quoted 2.2611 - or escaped although internally it maps drive letters <tt><drive>:</tt> 2.2612 - to a virtual directory <tt>/cygdrive/<drive></tt>. 2.2613 - </p> 2.2614 - <p> 2.2615 - You can always use the <tt>cygpath</tt> utility to map pathnames with spaces 2.2616 - or the backslash character into the <tt>C:/</tt> style of pathname 2.2617 - (called 'mixed'), e.g. <tt>cygpath -s -m "<i>path</i>"</tt>. 2.2618 - </p> 2.2619 - <p> 2.2620 - Note that the use of CYGWIN creates a unique problem with regards to 2.2621 - setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows 2.2622 - the <tt>PATH</tt> variable contains directories 2.2623 - separated with the ";" character (Solaris and Linux use ":"). 2.2624 - With CYGWIN, it uses ":", but that means that paths like "C:/path" 2.2625 - cannot be placed in the CYGWIN version of <tt>PATH</tt> and 2.2626 - instead CYGWIN uses something like <tt>/cygdrive/c/path</tt> 2.2627 - which CYGWIN understands, but only CYGWIN understands. 2.2628 - </p> 2.2629 - <p> 2.2630 - If you are using the Cygwin environment, you need to 2.2631 - <a href="#buildgmake">compile your own version</a> 2.2632 - of GNU make because the default Cygwin make can not handle drive letters in paths. 2.2633 - </p> 2.2634 - <p> 2.2635 - <strong>MinGW/MSYS:</strong> 2.2636 - MinGW ("Minimalist GNU for Windows") is a collection of free Windows 2.2637 - specific header files and import libraries combined with GNU toolsets that 2.2638 - allow one to produce native Windows programs that do not rely on any 2.2639 - 3rd-party C runtime DLLs. MSYS is a supplement to MinGW which allows building 2.2640 - applications and programs which rely on traditional UNIX tools to 2.2641 - be present. Among others this includes tools like <tt>bash</tt> and <tt>make</tt>. 2.2642 - </p> 2.2643 - <p> 2.2644 - Like Cygwin, MinGW/MSYS can handle different types of path formats. They 2.2645 - are internally converted to paths with forward slashes and drive letters 2.2646 - <tt><drive>:</tt> replaced by a virtual 2.2647 - directory <tt>/<drive></tt>. Additionally, MSYS automatically 2.2648 - detects binaries compiled for the MSYS environment and feeds them with the 2.2649 - internal, Unix-style path names. If native Windows applications are called 2.2650 - from within MSYS programs their path arguments are automatically converted 2.2651 - back to Windows style path names with drive letters and backslashes as 2.2652 - path separators. This may cause problems for Windows applications which 2.2653 - use forward slashes as parameter separator (e.g. <tt>cl /nologo /I</tt>) 2.2654 - because MSYS may wrongly <a href="http://mingw.org/wiki/Posix_path_conversion"> 2.2655 - replace such parameters by drive letters</a>. 2.2656 - </p> 2.2657 - <p> 2.2658 - If you are using the MinGW/MSYS system you can use the default make 2.2659 - version supplied by the environment. 2.2660 - </p> 2.2661 - </blockquote> 2.2662 - <!-- ------------------------------------------------------ --> 2.2663 - <h4><a name="windows_checklist">Basic Windows Check List</a></h4> 2.2664 - <blockquote> 2.2665 - <ol> 2.2666 - <li> 2.2667 - Install one of the 2.2668 - <a href="#cygwin">CYGWIN</a>, <a href="#msys">MinGW/MSYS</a> or 2.2669 - <a href="http://www.mkssoftware.com/products/tk/ds_tkdev.asp">MKS</a> environments. 2.2670 - </li> 2.2671 - <li> 2.2672 - Install the 2.2673 - <a href="#bootjdk">Bootstrap JDK</a>, set 2.2674 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>. 2.2675 - </li> 2.2676 - <li> 2.2677 - <a href="#importjdk">Optional Import JDK</a>, set 2.2678 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 2.2679 - </li> 2.2680 - <li> 2.2681 - Install the 2.2682 - <a href="#msvc32">Microsoft Visual Studio Compilers</a>). 2.2683 - </li> 2.2684 - <li> 2.2685 - Setup all environment variables for compilers 2.2686 - (see <a href="#msvc32">compilers</a>). 2.2687 - </li> 2.2688 - <li> 2.2689 - Install 2.2690 - <a href="#dxsdk">Microsoft DirectX SDK</a>. 2.2691 - </li> 2.2692 - <li> 2.2693 - Install 2.2694 - <a href="#ant">Ant 1.7.1 or newer</a>, 2.2695 - make sure it is in your PATH and set 2.2696 - <tt><a href="#ANT_HOME">ANT_HOME</a></tt>. 2.2697 - </li> 2.2698 - </ol> 2.2699 - </blockquote> 2.2700 - <!-- ------------------------------------------------------ --> 2.2701 - <hr> 2.2702 - <h3><a name="macosx">Basic Mac OS X System Setup</a></h3> 2.2703 - <blockquote> 2.2704 - <strong>X64 only:</strong> 2.2705 - The minimum recommended hardware for building 2.2706 - the Mac OS X version is any 64-bit capable Intel processor, at least 2 2.2707 - GB of RAM, and approximately 3 GB of free disk space. You should also 2.2708 - have OS X Lion 10.7.3 installed. 2.2709 - </blockquote> 2.2710 - <!-- ------------------------------------------------------ --> 2.2711 - 2.2712 - <h4><a name="macosx_checklist">Basic Mac OS X Check List</a></h4> 2.2713 - <blockquote> 2.2714 - <ol> 2.2715 - <li> 2.2716 - Install <a href="https://developer.apple.com/xcode/">XCode 4.1</a> or newer. 2.2717 - If you install XCode 4.3 or newer, make sure you also install 2.2718 - "Command line tools" found under the preferences pane "Downloads". 2.2719 - </li> 2.2720 - <li> 2.2721 - Install <a href="http://support.apple.com/kb/dl1421" target="_blank">"Java for OS X Lion Update 1"</a>, 2.2722 - set <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a> to <code>`/usr/libexec/java_home -v 1.6`</code></tt> 2.2723 - </li> 2.2724 - <li> 2.2725 - <a href="#importjdk">Optional Import JDK</a>, set 2.2726 - <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt>. 2.2727 - </li> 2.2728 - </ol> 2.2729 - </blockquote> 2.2730 - <!-- ------------------------------------------------------ --> 2.2731 - <hr> 2.2732 - <h3><a name="dependencies">Build Dependencies</a></h3> 2.2733 - <blockquote> 2.2734 - Depending on the platform, the OpenJDK build process has some basic 2.2735 - dependencies on components not part of the OpenJDK sources. 2.2736 - Some of these are specific to a platform, some even specific to 2.2737 - an architecture. 2.2738 - Each dependency will have a set of ALT variables that can be set 2.2739 - to tell the makefiles where to locate the component. 2.2740 - In most cases setting these ALT variables may not be necessary 2.2741 - and the makefiles will find defaults on the system in standard 2.2742 - install locations or through component specific variables. 2.2743 - <!-- ------------------------------------------------------ --> 2.2744 - <h4><a name="bootjdk">Bootstrap JDK</a></h4> 2.2745 - <blockquote> 2.2746 - All OpenJDK builds require access to the previously released 2.2747 - JDK 6, this is often called a bootstrap JDK. 2.2748 - The JDK 6 binaries can be downloaded from Sun's 2.2749 - <a href="http://java.sun.com/javase/downloads/index.jsp" 2.2750 - target="_blank">JDK 6 download site</a>. 2.2751 - For build performance reasons 2.2752 - is very important that this bootstrap JDK be made available on the 2.2753 - local disk of the machine doing the build. 2.2754 - You should always set 2.2755 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt> 2.2756 - to point to the location of 2.2757 - the bootstrap JDK installation, this is the directory pathname 2.2758 - that contains a <tt>bin, lib, and include</tt> 2.2759 - It's also a good idea to also place its <tt>bin</tt> directory 2.2760 - in the <tt>PATH</tt> environment variable, although it's 2.2761 - not required. 2.2762 - <p> 2.2763 - <strong>Solaris:</strong> 2.2764 - Some pre-installed JDK images may be available to you in the 2.2765 - directory <tt>/usr/jdk/instances</tt>. 2.2766 - If you don't set 2.2767 - <tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt> 2.2768 - the makefiles will look in that location for a JDK it can use. 2.2769 - </blockquote> 2.2770 - <!-- ------------------------------------------------------ --> 2.2771 - <h4><a name="importjdk">Optional Import JDK</a></h4> 2.2772 - <blockquote> 2.2773 - The <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt> 2.2774 - setting is only needed if you are not building the entire 2.2775 - JDK. For example, if you have built the entire JDK once, and 2.2776 - wanted to avoid repeatedly building the Hotspot VM, you could 2.2777 - set this to the location of the previous JDK install image 2.2778 - and the build will copy the needed files from this import area. 2.2779 - </blockquote> 2.2780 - <!-- ------------------------------------------------------ --> 2.2781 - <h4><a name="ant">Ant</a></h4> 2.2782 - <blockquote> 2.2783 - All OpenJDK builds require access to least Ant 1.7.1. 2.2784 - The Ant tool is available from the 2.2785 - <a href="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.zip" target="_blank"> 2.2786 - Ant 1.7.1 archive download site</a>. 2.2787 - You should always make sure <tt>ant</tt> is in your PATH, and 2.2788 - on Windows you may also need to set 2.2789 - <tt><a href="#ANT_HOME">ANT_HOME</a></tt> 2.2790 - to point to the location of 2.2791 - the Ant installation, this is the directory pathname 2.2792 - that contains a <tt>bin and lib</tt>. 2.2793 - <br> 2.2794 - <b>WARNING:</b> Ant versions used from IDE tools like NetBeans 2.2795 - or installed via system packages may not operate the same 2.2796 - as the one obtained from the Ant download bundles. 2.2797 - These system and IDE installers sometimes choose to change 2.2798 - the ant installation enough to cause differences. 2.2799 - </blockquote> 2.2800 - <!-- ------------------------------------------------------ --> 2.2801 - <h4><a name="cacerts">Certificate Authority File (cacert)</a></h4> 2.2802 - <blockquote> 2.2803 - See <a href="http://en.wikipedia.org/wiki/Certificate_Authority" target="_blank"> 2.2804 - http://en.wikipedia.org/wiki/Certificate_Authority</a> 2.2805 - for a better understanding of the Certificate Authority (CA). 2.2806 - A certificates file named "cacerts" 2.2807 - represents a system-wide keystore with CA certificates. 2.2808 - In JDK and JRE 2.2809 - binary bundles, the "cacerts" file contains root CA certificates from 2.2810 - several public CAs (e.g., VeriSign, Thawte, and Baltimore). 2.2811 - The source contain a cacerts file 2.2812 - without CA root certificates. 2.2813 - Formal JDK builders will need to secure 2.2814 - permission from each public CA and include the certificates into their 2.2815 - own custom cacerts file. 2.2816 - Failure to provide a populated cacerts file 2.2817 - will result in verification errors of a certificate chain during runtime. 2.2818 - The variable 2.2819 - <tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt> 2.2820 - can be used to override the default location of the 2.2821 - cacerts file that will get placed in your build. 2.2822 - By default an empty cacerts file is provided and that should be 2.2823 - fine for most JDK developers. 2.2824 - </blockquote> 2.2825 - <!-- ------------------------------------------------------ --> 2.2826 - <h4><a name="compilers">Compilers</a></h4> 2.2827 - <blockquote> 2.2828 - <strong><a name="gcc">Linux gcc/binutils</a></strong> 2.2829 + Building is a little different depending on the OS but is 2.2830 + basically done with: 2.2831 <blockquote> 2.2832 - The GNU gcc compiler version should be 4.3 or newer. 2.2833 - The compiler used should be the default compiler installed 2.2834 - in <tt>/usr/bin</tt>. 2.2835 - </blockquote> 2.2836 - <strong><a name="studio">Solaris: Sun Studio</a></strong> 2.2837 - <blockquote> 2.2838 - At a minimum, the 2.2839 - <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> 2.2840 - Sun Studio 12 Update 1 Compilers</a> 2.2841 - (containing version 5.10 of the C and C++ compilers) is required, 2.2842 - including specific patches. 2.2843 - <p> 2.2844 - The Solaris SPARC patch list is: 2.2845 - <ul> 2.2846 - <li> 2.2847 - 118683-05: SunOS 5.10: Patch for profiling libraries and assembler 2.2848 - </li> 2.2849 - <li> 2.2850 - 119963-21: SunOS 5.10: Shared library patch for C++ 2.2851 - </li> 2.2852 - <li> 2.2853 - 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch 2.2854 - </li> 2.2855 - <li> 2.2856 - 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler 2.2857 - </li> 2.2858 - <li> 2.2859 - 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 2.2860 - </li> 2.2861 - <li> 2.2862 - 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler 2.2863 - </li> 2.2864 - <li> 2.2865 - 142371-01: Sun Studio 12.1 Update 1: Patch for dbx 2.2866 - </li> 2.2867 - <li> 2.2868 - 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling 2.2869 - </li> 2.2870 - <li> 2.2871 - 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 2.2872 - </li> 2.2873 - <li> 2.2874 - 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools 2.2875 - </li> 2.2876 - </ul> 2.2877 - <p> 2.2878 - The Solaris X86 patch list is: 2.2879 - <ul> 2.2880 - <li> 2.2881 - 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler 2.2882 - </li> 2.2883 - <li> 2.2884 - 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 2.2885 - </li> 2.2886 - <li> 2.2887 - 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch 2.2888 - </li> 2.2889 - <li> 2.2890 - 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend 2.2891 - </li> 2.2892 - <li> 2.2893 - 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler 2.2894 - </li> 2.2895 - <li> 2.2896 - 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler 2.2897 - </li> 2.2898 - <li> 2.2899 - 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools 2.2900 - </li> 2.2901 - </ul> 2.2902 - <p> 2.2903 - Set 2.2904 - <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> 2.2905 - to point to the location of 2.2906 - the compiler binaries, and place this location in the <tt>PATH</tt>. 2.2907 - <p> 2.2908 - The Oracle Solaris Studio Express compilers at: 2.2909 - <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank"> 2.2910 - Oracle Solaris Studio Express Download site</a> 2.2911 - are also an option, although these compilers have not 2.2912 - been extensively used yet. 2.2913 - </blockquote> 2.2914 - <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> 2.2915 - <blockquote> 2.2916 - <p> 2.2917 - <b>BEGIN WARNING</b>: JDK 7 has transitioned to 2.2918 - use the newest VS2010 Microsoft compilers. 2.2919 - No other compilers are known to build the entire JDK, 2.2920 - including non-open portions. 2.2921 - Visual Studio 2010 Express compilers are now able to build all the 2.2922 - open source repositories, but this is 32 bit only. To build 64 bit 2.2923 - Windows binaries use the the 7.1 Windows SDK. 2.2924 - <b>END WARNING.</b> 2.2925 - <p> 2.2926 - The 32-bit OpenJDK Windows build requires 2.2927 - Microsoft Visual Studio C++ 2010 (VS2010) Professional 2.2928 - Edition or Express compiler. 2.2929 - The compiler and other tools are expected to reside 2.2930 - in the location defined by the variable 2.2931 - <tt>VS100COMNTOOLS</tt> which 2.2932 - is set by the Microsoft Visual Studio installer. 2.2933 - <p> 2.2934 - Once the compiler is installed, 2.2935 - it is recommended that you run <tt>VCVARS32.BAT</tt> 2.2936 - to set the compiler environment variables 2.2937 - <tt>INCLUDE</tt>, 2.2938 - <tt>LIB</tt>, and 2.2939 - <tt>PATH</tt> 2.2940 - prior to building the 2.2941 - OpenJDK. 2.2942 - The above environment variables <b>MUST</b> be set. 2.2943 - This compiler also contains the Windows SDK v 7.0a, 2.2944 - which is an update to the Windows 7 SDK. 2.2945 - <p> 2.2946 - <b>WARNING:</b> Make sure you check out the 2.2947 - <a href="#cygwin">CYGWIN link.exe WARNING</a>. 2.2948 - The path <tt>/usr/bin</tt> must be after the path to the 2.2949 - Visual Studio product. 2.2950 - </blockquote> 2.2951 - <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> 2.2952 - <blockquote> 2.2953 - For <b>X64</b>, the set up is much the same as 32 bit 2.2954 - except that you run <tt>amd64\VCVARS64.BAT</tt> 2.2955 - to set the compiler environment variables. 2.2956 - Previously 64 bit builds had to use the 64 bit compiler in 2.2957 - an unbundled Windows SDK but this is no longer necessary if 2.2958 - you have VS2010 Professional. 2.2959 - </blockquote> 2.2960 - <strong><a name="mssdk64">Windows x64: Microsoft Windows 7.1 SDK 64 bit compilers.</a></strong> 2.2961 - For a free alternative for 64 bit builds, use the 7.1 SDK. 2.2962 - Microsoft say that to set up your paths for this run 2.2963 - <pre> 2.2964 - c:\Program Files\Microsoft SDKs\Windows\v7.1\bin\setenv.cmd /x64. 2.2965 - </pre> 2.2966 - What was tested is just directly setting up LIB, INCLUDE, 2.2967 - PATH and based on the installation directories using the 2.2968 - DOS short name appropriate for the system, (you will 2.2969 - need to set them for yours, not just blindly copy this) eg : 2.2970 - <pre> 2.2971 - set VSINSTALLDIR=c:\PROGRA~2\MICROS~1.0 2.2972 - set WindowsSdkDir=c:\PROGRA~1\MICROS~1\Windows\v7.1 2.2973 - set PATH=%VSINSTALLDIR%\vc\bin\amd64;%VSINSTALLDIR%\Common7\IDE;%WindowsSdkDir%\bin;%PATH% 2.2974 - set INCLUDE=%VSINSTALLDIR%\vc\include;%WindowsSdkDir%\include 2.2975 - set LIB=%VSINSTALLDIR%\vc\lib\amd64;%WindowsSdkDir%\lib\x64 2.2976 - </pre> 2.2977 - <strong><a name="llvmgcc">OS X Lion 10.7.3: LLVM GCC</a></strong> 2.2978 - <blockquote> 2.2979 - LLVM GCC is bundled with XCode. The version should be at least 4.2.1. 2.2980 + <code>bash ./configure</code> 2.2981 + <br> 2.2982 + <code>make</code> 2.2983 </blockquote> 2.2984 </blockquote> 2.2985 - <!-- ------------------------------------------------------ --> 2.2986 - <h4><a name="zip">Zip and Unzip</a></h4> 2.2987 + 2.2988 + </blockquote> <!-- Appendix B --> 2.2989 + 2.2990 + <!-- ====================================================== --> 2.2991 + <hr> 2.2992 + <h2><a name="buildenvironments">Appendix C: Build Environments</a></h2> 2.2993 + <blockquote> 2.2994 + 2.2995 + <h3><a name="MBE">Minimum Build Environments</a></h3> 2.2996 <blockquote> 2.2997 - Version 2.2 (November 3rd 1997) or newer of the zip utility 2.2998 - and version 5.12 or newer of the unzip utility is needed 2.2999 - to build the JDK. 2.3000 - With Solaris, Linux, and Windows CYGWIN, the zip and unzip 2.3001 - utilities installed on the system should be fine. 2.3002 - Information and the source code for 2.3003 - ZIP.EXE and UNZIP.EXE is available on the 2.3004 - <a href="http://www.info-zip.org" 2.3005 - target="_blank">info-zip web site</a>. 2.3006 + This file often describes specific requirements for what we 2.3007 + call the 2.3008 + "minimum build environments" (MBE) for this 2.3009 + specific release of the JDK. 2.3010 + What is listed below is what the Oracle Release 2.3011 + Engineering Team will use to build the Oracle JDK product. 2.3012 + Building with the MBE will hopefully generate the most compatible 2.3013 + bits that install on, and run correctly on, the most variations 2.3014 + of the same base OS and hardware architecture. 2.3015 + In some cases, these represent what is often called the 2.3016 + least common denominator, but each Operating System has different 2.3017 + aspects to it. 2.3018 + <p> 2.3019 + In all cases, the Bootstrap JDK version minimum is critical, 2.3020 + we cannot guarantee builds will work with older Bootstrap JDK's. 2.3021 + Also in all cases, more RAM and more processors is better, 2.3022 + the minimums listed below are simply recommendations. 2.3023 + <p> 2.3024 + With Solaris and Mac OS X, the version listed below is the 2.3025 + oldest release we can guarantee builds and works, and the 2.3026 + specific version of the compilers used could be critical. 2.3027 + <p> 2.3028 + With Windows the critical aspect is the Visual Studio compiler 2.3029 + used, which due to it's runtime, generally dictates what Windows 2.3030 + systems can do the builds and where the resulting bits can 2.3031 + be used.<br> 2.3032 + <b>NOTE: We expect a change here off these older Windows OS releases 2.3033 + and to a 'less older' one, probably Windows 2008R2 X64.</b> 2.3034 + <p> 2.3035 + With Linux, it was just a matter of picking a 2.3036 + stable distribution that is a good representative for Linux 2.3037 + in general.<br> 2.3038 + <b>NOTE: We expect a change here from Fedora 9 to something else, 2.3039 + but it has not been completely determined yet, possibly 2.3040 + Ubuntu 12.04 X64, unbiased community feedback would be welcome on 2.3041 + what a good choice would be here.</b> 2.3042 + <p> 2.3043 + It is understood that most developers will NOT be using these 2.3044 + specific versions, and in fact creating these specific versions 2.3045 + may be difficult due to the age of some of this software. 2.3046 + It is expected that developers are more often using the more 2.3047 + recent releases and distributions of these operating systems. 2.3048 + <p> 2.3049 + Compilation problems with newer or different C/C++ compilers is a 2.3050 + common problem. 2.3051 + Similarly, compilation problems related to changes to the 2.3052 + <code>/usr/include</code> or system header files is also a 2.3053 + common problem with older, newer, or unreleased OS versions. 2.3054 + Please report these types of problems as bugs so that they 2.3055 + can be dealt with accordingly. 2.3056 + </p> 2.3057 + <table border="1"> 2.3058 + <thead> 2.3059 + <tr> 2.3060 + <th>Base OS and Architecture</th> 2.3061 + <th>OS</th> 2.3062 + <th>C/C++ Compiler</th> 2.3063 + <th>Bootstrap JDK</th> 2.3064 + <th>Processors</th> 2.3065 + <th>RAM Minimum</th> 2.3066 + <th>DISK Needs</th> 2.3067 + </tr> 2.3068 + </thead> 2.3069 + <tbody> 2.3070 + <tr> 2.3071 + <td>Linux X86 (32-bit) and X64 (64-bit)</td> 2.3072 + <td>Fedora 9</td> 2.3073 + <td>gcc 4.3 </td> 2.3074 + <td>JDK 7u7</td> 2.3075 + <td>2 or more</td> 2.3076 + <td>1 GB</td> 2.3077 + <td>6 GB</td> 2.3078 + </tr> 2.3079 + <tr> 2.3080 + <td>Solaris SPARC (32-bit) and SPARCV9 (64-bit)</td> 2.3081 + <td>Solaris 10 Update 6</td> 2.3082 + <td>Studio 12 Update 1 + patches</td> 2.3083 + <td>JDK 7u7</td> 2.3084 + <td>4 or more</td> 2.3085 + <td>4 GB</td> 2.3086 + <td>8 GB</td> 2.3087 + </tr> 2.3088 + <tr> 2.3089 + <td>Solaris X86 (32-bit) and X64 (64-bit)</td> 2.3090 + <td>Solaris 10 Update 6</td> 2.3091 + <td>Studio 12 Update 1 + patches</td> 2.3092 + <td>JDK 7u7</td> 2.3093 + <td>4 or more</td> 2.3094 + <td>4 GB</td> 2.3095 + <td>8 GB</td> 2.3096 + </tr> 2.3097 + <tr> 2.3098 + <td>Windows X86 (32-bit)</td> 2.3099 + <td>Windows XP</td> 2.3100 + <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 2.3101 + <td>JDK 7u7</td> 2.3102 + <td>2 or more</td> 2.3103 + <td>2 GB</td> 2.3104 + <td>6 GB</td> 2.3105 + </tr> 2.3106 + <tr> 2.3107 + <td>Windows X64 (64-bit)</td> 2.3108 + <td>Windows Server 2003 - Enterprise x64 Edition</td> 2.3109 + <td>Microsoft Visual Studio C++ 2010 Professional Edition</td> 2.3110 + <td>JDK 7u7</td> 2.3111 + <td>2 or more</td> 2.3112 + <td>2 GB</td> 2.3113 + <td>6 GB</td> 2.3114 + </tr> 2.3115 + <tr> 2.3116 + <td>Mac OS X X64 (64-bit)</td> 2.3117 + <td>Mac OS X 10.7 "Lion"</td> 2.3118 + <td>XCode 4.5.2 or newer</td> 2.3119 + <td>JDK 7u7</td> 2.3120 + <td>2 or more</td> 2.3121 + <td>4 GB</td> 2.3122 + <td>6 GB</td> 2.3123 + </tr> 2.3124 + </tbody> 2.3125 + </table> 2.3126 </blockquote> 2.3127 - <!-- ------------------------------------------------------ --> 2.3128 - <h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris & Linux)</a></h4> 2.3129 + 2.3130 + <!-- ====================================================== --> 2.3131 + <hr> 2.3132 + <h3><a name="SDBE">Specific Developer Build Environments</a></h3> 2.3133 <blockquote> 2.3134 - <strong>Solaris:</strong> 2.3135 - CUPS header files are required for building the 2.3136 - OpenJDK on Solaris. 2.3137 - The Solaris header files can be obtained by installing 2.3138 - the package <strong>SFWcups</strong> from the Solaris Software 2.3139 - Companion CD/DVD, these often will be installed into 2.3140 - <tt>/opt/sfw/cups</tt>. 2.3141 + We won't be listing all the possible environments, but 2.3142 + we will try to provide what information we have available to us. 2.3143 <p> 2.3144 - <strong>Linux:</strong> 2.3145 - CUPS header files are required for building the 2.3146 - OpenJDK on Linux. 2.3147 - The Linux header files are usually available from a "cups" 2.3148 - development package, it's recommended that you try and use 2.3149 - the package provided by the particular version of Linux that 2.3150 - you are using. 2.3151 - <p> 2.3152 - The CUPS header files can always be downloaded from 2.3153 - <a href="http://www.cups.org" target="_blank">www.cups.org</a>. 2.3154 - The variable 2.3155 - <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt> 2.3156 - can be used to override the default location of the 2.3157 - CUPS Header files. 2.3158 + <strong>NOTE: The community can help out by updating 2.3159 + this part of the document. 2.3160 + </strong> 2.3161 + 2.3162 + <h4><a name="fedora">Fedora</a></h4> 2.3163 + <blockquote> 2.3164 + After installing the latest 2.3165 + <a href="http://fedoraproject.org">Fedora</a> 2.3166 + you need to install several build dependencies. 2.3167 + The simplest way to do it is to execute the 2.3168 + following commands as user <code>root</code>: 2.3169 + <blockquote> 2.3170 + <code>yum-builddep java-1.7.0-openjdk</code> 2.3171 + <br> 2.3172 + <code>yum install gcc gcc-c++</code> 2.3173 + </blockquote> 2.3174 + <p> 2.3175 + In addition, it's necessary to set a few environment 2.3176 + variables for the build: 2.3177 + <blockquote> 2.3178 + <code>export LANG=C</code> 2.3179 + <br> 2.3180 + <code>export PATH="/usr/lib/jvm/java-openjdk/bin:${PATH}"</code> 2.3181 + </blockquote> 2.3182 + </blockquote> 2.3183 + 2.3184 + 2.3185 + <h4><a name="centos">CentOS 5.5</a></h4> 2.3186 + <blockquote> 2.3187 + After installing 2.3188 + <a href="http://www.centos.org/">CentOS 5.5</a> 2.3189 + you need to make sure you have 2.3190 + the following Development bundles installed: 2.3191 + <blockquote> 2.3192 + <ul> 2.3193 + <li>Development Libraries</li> 2.3194 + <li>Development Tools</li> 2.3195 + <li>Java Development</li> 2.3196 + <li>X Software Development (Including XFree86-devel)</li> 2.3197 + </ul> 2.3198 + </blockquote> 2.3199 + <p> 2.3200 + Plus the following packages: 2.3201 + <blockquote> 2.3202 + <ul> 2.3203 + <li>cups devel: Cups Development Package</li> 2.3204 + <li>alsa devel: Alsa Development Package</li> 2.3205 + <li>Xi devel: libXi.so Development Package</li> 2.3206 + </ul> 2.3207 + </blockquote> 2.3208 + <p> 2.3209 + The freetype 2.3 packages don't seem to be available, 2.3210 + but the freetype 2.3 sources can be downloaded, built, 2.3211 + and installed easily enough from 2.3212 + <a href="http://downloads.sourceforge.net/freetype"> 2.3213 + the freetype site</a>. 2.3214 + Build and install with something like: 2.3215 + <blockquote> 2.3216 + <code>bash ./configure</code> 2.3217 + <br> 2.3218 + <code>make</code> 2.3219 + <br> 2.3220 + <code>sudo -u root make install</code> 2.3221 + </blockquote> 2.3222 + <p> 2.3223 + Mercurial packages could not be found easily, but a Google 2.3224 + search should find ones, and they usually include Python if 2.3225 + it's needed. 2.3226 + </blockquote> 2.3227 + 2.3228 + <h4><a name="debian">Debian 5.0 (Lenny)</a></h4> 2.3229 + <blockquote> 2.3230 + After installing <a href="http://debian.org">Debian</a> 5 2.3231 + you need to install several build dependencies. 2.3232 + The simplest way to install the build dependencies is to 2.3233 + execute the following commands as user <code>root</code>: 2.3234 + <blockquote> 2.3235 + <code>aptitude build-dep openjdk-7</code> 2.3236 + <br> 2.3237 + <code>aptitude install openjdk-7-jdk libmotif-dev</code> 2.3238 + </blockquote> 2.3239 + <p> 2.3240 + In addition, it's necessary to set a few environment 2.3241 + variables for the build: 2.3242 + <blockquote> 2.3243 + <code>export LANG=C</code> 2.3244 + <br> 2.3245 + <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code> 2.3246 + </blockquote> 2.3247 + </blockquote> 2.3248 + 2.3249 + <h4><a name="ubuntu">Ubuntu 12.04</a></h4> 2.3250 + <blockquote> 2.3251 + After installing <a href="http://ubuntu.org">Ubuntu</a> 12.04 2.3252 + you need to install several build dependencies. The simplest 2.3253 + way to do it is to execute the following commands: 2.3254 + <blockquote> 2.3255 + <code>sudo aptitude build-dep openjdk-7</code> 2.3256 + <br> 2.3257 + <code>sudo aptitude install openjdk-7-jdk</code> 2.3258 + </blockquote> 2.3259 + <p> 2.3260 + In addition, it's necessary to set a few environment 2.3261 + variables for the build: 2.3262 + <blockquote> 2.3263 + <code>export LANG=C</code> 2.3264 + <br> 2.3265 + <code>export PATH="/usr/lib/jvm/java-7-openjdk/bin:${PATH}"</code> 2.3266 + </blockquote> 2.3267 + </blockquote> 2.3268 + 2.3269 + <h4><a name="opensuse">OpenSUSE 11.1</a></h4> 2.3270 + <blockquote> 2.3271 + After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 2.3272 + you need to install several build dependencies. 2.3273 + The simplest way to install the build dependencies is to 2.3274 + execute the following commands: 2.3275 + <blockquote> 2.3276 + <code>sudo zypper source-install -d java-1_7_0-openjdk</code> 2.3277 + <br> 2.3278 + <code>sudo zypper install make</code> 2.3279 + </blockquote> 2.3280 + <p> 2.3281 + In addition, it is necessary to set a few environment 2.3282 + variables for the build: 2.3283 + <blockquote> 2.3284 + <code>export LANG=C</code> 2.3285 + <br> 2.3286 + <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:$[PATH}"</code> 2.3287 + </blockquote> 2.3288 + <p> 2.3289 + Finally, you need to unset the <code>JAVA_HOME</code> 2.3290 + environment variable: 2.3291 + <blockquote> 2.3292 + <code>export -n JAVA_HOME</code> 2.3293 + </blockquote> 2.3294 + </blockquote> 2.3295 + 2.3296 + <h4><a name="mandriva">Mandriva Linux One 2009 Spring</a></h4> 2.3297 + <blockquote> 2.3298 + After installing <a href="http://mandriva.org">Mandriva</a> 2.3299 + Linux One 2009 Spring 2.3300 + you need to install several build dependencies. 2.3301 + The simplest way to install the build dependencies is to 2.3302 + execute the following commands as user <code>root</code>: 2.3303 + <blockquote> 2.3304 + <code>urpmi java-1.7.0-openjdk-devel make gcc gcc-c++ 2.3305 + freetype-devel zip unzip libcups2-devel libxrender1-devel 2.3306 + libalsa2-devel libstc++-static-devel libxtst6-devel 2.3307 + libxi-devel</code> 2.3308 + </blockquote> 2.3309 + <p> 2.3310 + In addition, it is necessary to set a few environment 2.3311 + variables for the build: 2.3312 + <blockquote> 2.3313 + <code>export LANG=C</code> 2.3314 + <br> 2.3315 + <code>export PATH="/usr/lib/jvm/java-1.7.0-openjdk/bin:${PATH}"</code> 2.3316 + </blockquote> 2.3317 + </blockquote> 2.3318 + 2.3319 + <h4><a name="opensolaris">OpenSolaris 2009.06</a></h4> 2.3320 + <blockquote> 2.3321 + After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 2.3322 + you need to install several build dependencies. 2.3323 + The simplest way to install the build dependencies is to 2.3324 + execute the following commands: 2.3325 + <blockquote> 2.3326 + <code>pfexec pkg install SUNWgmake SUNWj7dev 2.3327 + sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl 2.3328 + SUNWxorg-headers SUNWaudh SUNWfreetype2</code> 2.3329 + </blockquote> 2.3330 + <p> 2.3331 + In addition, it is necessary to set a few environment 2.3332 + variables for the build: 2.3333 + <blockquote> 2.3334 + <code>export LANG=C</code> 2.3335 + <br> 2.3336 + <code>export PATH="/opt/SunStudioExpress/bin:${PATH}"</code> 2.3337 + </blockquote> 2.3338 + </blockquote> 2.3339 + 2.3340 </blockquote> 2.3341 - <!-- ------------------------------------------------------ --> 2.3342 - <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4> 2.3343 - <blockquote> 2.3344 - <p> 2.3345 - <strong>Solaris:</strong> 2.3346 - XRender header files are required for building the 2.3347 - OpenJDK on Solaris. 2.3348 - The XRender header file is included with the other X11 header files 2.3349 - in the package <strong>SFWxwinc</strong> on new enough versions of 2.3350 - Solaris and will be installed in 2.3351 - <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> or 2.3352 - <tt>/usr/openwin/share/include/X11/extensions/Xrender.h</tt> 2.3353 - </p><p> 2.3354 - <strong>Linux:</strong> 2.3355 - XRender header files are required for building the 2.3356 - OpenJDK on Linux. 2.3357 - The Linux header files are usually available from a "Xrender" 2.3358 - development package, it's recommended that you try and use 2.3359 - the package provided by the particular distribution of Linux that 2.3360 - you are using. 2.3361 - </p> 2.3362 - </blockquote> 2.3363 - <!-- ------------------------------------------------------ --> 2.3364 - <h4><a name="freetype">FreeType 2</a></h4> 2.3365 - <blockquote> 2.3366 - Version 2.3 or newer of FreeType is required for building the OpenJDK. 2.3367 - On Unix systems required files can be available as part of your 2.3368 - distribution (while you still may need to upgrade them). 2.3369 - Note that you need development version of package that 2.3370 - includes both FreeType library and header files. 2.3371 - <p> 2.3372 - You can always download latest FreeType version from the 2.3373 - <a href="http://www.freetype.org" target="_blank">FreeType website</a>. 2.3374 - <p> 2.3375 - Makefiles will try to pick FreeType from /usr/lib and /usr/include. 2.3376 - In case it is installed elsewhere you will need to set environment 2.3377 - variables 2.3378 - <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt> 2.3379 - and 2.3380 - <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt> 2.3381 - to refer to place where library and header files are installed. 2.3382 - <p> 2.3383 - Building the freetype 2 libraries from scratch is also possible, 2.3384 - however on Windows refer to the 2.3385 - <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> 2.3386 - Windows FreeType DLL build instructions</a>. 2.3387 - <p> 2.3388 - Note that by default FreeType is built with byte code hinting 2.3389 - support disabled due to licensing restrictions. 2.3390 - In this case, text appearance and metrics are expected to 2.3391 - differ from Sun's official JDK build. 2.3392 - See 2.3393 - <a href="http://freetype.sourceforge.net/freetype2/index.html"> 2.3394 - the SourceForge FreeType2 Home Page 2.3395 - </a> 2.3396 - for more information. 2.3397 - </blockquote> 2.3398 - <!-- ------------------------------------------------------ --> 2.3399 - <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4> 2.3400 - <blockquote> 2.3401 - <strong>Linux only:</strong> 2.3402 - Version 0.9.1 or newer of the ALSA files are 2.3403 - required for building the OpenJDK on Linux. 2.3404 - These Linux files are usually available from an "alsa" 2.3405 - of "libasound" 2.3406 - development package, it's highly recommended that you try and use 2.3407 - the package provided by the particular version of Linux that 2.3408 - you are using. 2.3409 - The makefiles will check this emit a sanity error if it is 2.3410 - missing or the wrong version. 2.3411 - <p> 2.3412 - In particular, older Linux systems will likely not have the 2.3413 - right version of ALSA installed, for example 2.3414 - Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently 2.3415 - recent ALSA distribution. 2.3416 - On rpm-based systems, you can see if ALSA is installed by 2.3417 - running this command: 2.3418 - <pre> 2.3419 - <tt>rpm -qa | grep alsa</tt> 2.3420 - </pre> 2.3421 - Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed. 2.3422 - <p> 2.3423 - If your distribution does not come with ALSA, and you can't 2.3424 - find ALSA packages built for your particular system, 2.3425 - you can try to install the pre-built ALSA rpm packages from 2.3426 - <a href="http://www.freshrpms.net/" target="_blank"> 2.3427 - <tt>www.freshrpms.net</tt></a>. 2.3428 - Note that installing a newer ALSA could 2.3429 - break sound output if an older version of ALSA was previously 2.3430 - installed on the system, but it will enable JDK compilation. 2.3431 - <blockquote> 2.3432 - Installation: execute as root<br> 2.3433 - [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br> 2.3434 - [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br> 2.3435 - Uninstallation:<br> 2.3436 - [i586]: <code>rpm -ev alsa-lib-devel-0.9.1-rh61</code><br> 2.3437 - [x64]:<code>rpm -ev alsa-lib-devel-0.9.8-amd64</code><br> 2.3438 - Make sure that you do not link to the static library 2.3439 - (<tt>libasound.a</tt>), 2.3440 - by verifying that the dynamic library (<tt>libasound.so</tt>) is 2.3441 - correctly installed in <tt>/usr/lib</tt>. 2.3442 - </blockquote> 2.3443 - As a last resort you can go to the 2.3444 - <a href="http://www.alsa-project.org" target="_blank"> 2.3445 - Advanced Linux Sound Architecture Site</a> and build it from 2.3446 - source. 2.3447 - <blockquote> 2.3448 - Download driver and library 2.3449 - source tarballs from 2.3450 - <a href="http://www.alsa-project.org" target="_blank">ALSA's homepage</a>. 2.3451 - As root, execute the following 2.3452 - commands (you may need to adapt the version number): 2.3453 - <pre> 2.3454 - <tt> 2.3455 - $ tar xjf alsa-driver-0.9.1.tar.bz2 2.3456 - $ cd alsa-driver-0.9.1 2.3457 - $ ./configure 2.3458 - $ make install 2.3459 - $ cd .. 2.3460 - $ tar xjf alsa-lib-0.9.1.tar.bz2 2.3461 - $ cd alsa-lib-0.9.1 2.3462 - $ ./configure 2.3463 - $ make install 2.3464 - </tt> 2.3465 - </pre> 2.3466 - Should one of the above steps fail, refer to the documentation on 2.3467 - ALSA's home page. 2.3468 - </blockquote> 2.3469 - Note that this is a minimum install that enables 2.3470 - building the JDK platform. To actually use ALSA sound drivers, more 2.3471 - steps are necessary as outlined in the documentation on ALSA's homepage. 2.3472 - <p> 2.3473 - ALSA can be uninstalled by executing <tt>make uninstall</tt> first in 2.3474 - the <tt>alsa-lib-0.9.1</tt> directory and then in 2.3475 - <tt>alsa-driver-0.9.1</tt>. 2.3476 - </blockquote> 2.3477 - There are no ALT* variables to change the assumed locations of ALSA, 2.3478 - the makefiles will expect to find the ALSA include files and library at: 2.3479 - <tt>/usr/include/alsa</tt> and <tt>/usr/lib/libasound.so</tt>. 2.3480 - </blockquote> 2.3481 - <!-- ------------------------------------------------------ --> 2.3482 - <h4>Windows Specific Dependencies</h4> 2.3483 - <blockquote> 2.3484 - <strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong> 2.3485 - <blockquote> 2.3486 - The OpenJDK requires access to a set of unix command tools 2.3487 - on Windows which can be supplied by 2.3488 - <a href="http://www.cygwin.com" target="_blank">CYGWIN</a>. 2.3489 - <p> 2.3490 - The OpenJDK build requires CYGWIN version 1.5.12 or newer. 2.3491 - Information about CYGWIN can 2.3492 - be obtained from the CYGWIN website at 2.3493 - <a href="http://www.cygwin.com" target="_blank">www.cygwin.com</a>. 2.3494 - <p> 2.3495 - By default CYGWIN doesn't install all the tools required for building 2.3496 - the OpenJDK. 2.3497 - Along with the default installation, you need to install 2.3498 - the following tools. 2.3499 - <blockquote> 2.3500 - <table border="1"> 2.3501 - <thead> 2.3502 - <tr> 2.3503 - <td>Binary Name</td> 2.3504 - <td>Category</td> 2.3505 - <td>Package</td> 2.3506 - <td>Description</td> 2.3507 - </tr> 2.3508 - </thead> 2.3509 - <tbody> 2.3510 - <tr> 2.3511 - <td>ar.exe</td> 2.3512 - <td>Devel</td> 2.3513 - <td>binutils</td> 2.3514 - <td>The GNU assembler, linker and binary 2.3515 - utilities</td> 2.3516 - </tr> 2.3517 - <tr> 2.3518 - <td>make.exe</td> 2.3519 - <td>Devel</td> 2.3520 - <td>make</td> 2.3521 - <td>The GNU version of the 'make' utility built for CYGWIN.<br> 2.3522 - <b>NOTE</b>: the Cygwin make can not be used to build the 2.3523 - OpenJDK. You only need it to build your own version of make 2.3524 - (see <a href="#gmake">the GNU make section</a>)</td> 2.3525 - </tr> 2.3526 - <tr> 2.3527 - <td>m4.exe</td> 2.3528 - <td>Interpreters</td> 2.3529 - <td>m4</td> 2.3530 - <td>GNU implementation of the traditional Unix macro 2.3531 - processor</td> 2.3532 - </tr> 2.3533 - <tr> 2.3534 - <td>cpio.exe</td> 2.3535 - <td>Utils</td> 2.3536 - <td>cpio</td> 2.3537 - <td>A program to manage archives of files</td> 2.3538 - </tr> 2.3539 - <tr> 2.3540 - <td>gawk.exe</td> 2.3541 - <td>Utils</td> 2.3542 - <td>awk</td> 2.3543 - <td>Pattern-directed scanning and processing language</td> 2.3544 - </tr> 2.3545 - <tr> 2.3546 - <td>file.exe</td> 2.3547 - <td>Utils</td> 2.3548 - <td>file</td> 2.3549 - <td>Determines file type using 'magic' numbers</td> 2.3550 - </tr> 2.3551 - <tr> 2.3552 - <td>zip.exe</td> 2.3553 - <td>Archive</td> 2.3554 - <td>zip</td> 2.3555 - <td>Package and compress (archive) files</td> 2.3556 - </tr> 2.3557 - <tr> 2.3558 - <td>unzip.exe</td> 2.3559 - <td>Archive</td> 2.3560 - <td>unzip</td> 2.3561 - <td>Extract compressed files in a ZIP archive</td> 2.3562 - </tr> 2.3563 - <tr> 2.3564 - <td>free.exe</td> 2.3565 - <td>System</td> 2.3566 - <td>procps</td> 2.3567 - <td>Display amount of free and used memory in the system</td> 2.3568 - </tr> 2.3569 - </tbody> 2.3570 - </table> 2.3571 - </blockquote> 2.3572 - <p> 2.3573 - Note that the CYGWIN software can conflict with other non-CYGWIN 2.3574 - software on your Windows system. 2.3575 - CYGWIN provides a 2.3576 - <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for 2.3577 - known issues and problems, of particular interest is the 2.3578 - section on 2.3579 - <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 2.3580 - BLODA (applications that interfere with CYGWIN)</a>. 2.3581 - <p> 2.3582 - <b>WARNING:</b> 2.3583 - Be very careful with <b><tt>link.exe</tt></b>, it will conflict 2.3584 - with the Visual Studio version. You need the Visual Studio 2.3585 - version of <tt>link.exe</tt>, not the CYGWIN one. 2.3586 - So it's important that the Visual Studio paths in PATH preceed 2.3587 - the CYGWIN path <tt>/usr/bin</tt>. 2.3588 - </blockquote> 2.3589 - <strong> Minimalist GNU for Windows (<a name="msys">MinGW/MSYS</a>)</strong> 2.3590 - <blockquote> 2.3591 - Alternatively, the set of unix command tools for the OpenJDK build on 2.3592 - Windows can be supplied by 2.3593 - <a href="http://www.mingw.org/wiki/MSYS" target="_blank">MinGW/MSYS</a>. 2.3594 - <p> 2.3595 - In addition to the tools which will be installed by default, you have 2.3596 - to manually install the <tt>msys-zip</tt> and <tt>msys-unzip</tt> packages. 2.3597 - This can be easily done with the MinGW command line installer:<br/> 2.3598 - <tt><br/> 2.3599 - mingw-get.exe install msys-zip<br/> 2.3600 - mingw-get.exe install msys-unzip<br/> 2.3601 - </tt> 2.3602 - </p> 2.3603 - </blockquote> 2.3604 - <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong> 2.3605 - <blockquote> 2.3606 - Microsoft DirectX 9.0 SDK (Summer 2004) 2.3607 - headers are required for building 2.3608 - OpenJDK. 2.3609 - This SDK can be downloaded from 2.3610 - <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> 2.3611 - Microsoft DirectX 9.0 SDK (Summer 2004)</a>. 2.3612 - If the link above becomes obsolete, the SDK can be found from 2.3613 - <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> 2.3614 - (search with "DirectX 9.0 SDK Update Summer 2004"). 2.3615 - The location of this SDK can be set with 2.3616 - <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> 2.3617 - but it's normally found via the DirectX environment variable 2.3618 - <tt>DXSDK_DIR</tt>. 2.3619 - </blockquote> 2.3620 - <strong><a name="msvcrNN"><tt>MSVCR100.DLL</tt></a></strong> 2.3621 - <blockquote> 2.3622 - The OpenJDK build requires access to a redistributable 2.3623 - <tt>MSVCR100.DLL</tt>. 2.3624 - This is usually picked up automatically from the redist 2.3625 - directories of Visual Studio 2010. 2.3626 - If this cannot be found set the 2.3627 - <a href="#ALT_MSVCRNN_DLL_PATH"><tt>ALT_MSVCRNN_DLL_PATH</tt></a> 2.3628 - variable to the location of this file. 2.3629 - <p> 2.3630 - </blockquote> 2.3631 - </blockquote> 2.3632 - <!-- ------------------------------------------------------ --> 2.3633 + 2.3634 + </blockquote> <!-- Appendix C --> 2.3635 + 2.3636 + <!-- ====================================================== --> 2.3637 + 2.3638 + <!-- Leave out Appendix D -- 2.3639 + 2.3640 +<hr> 2.3641 +<h2><a name="mapping">Appendix D: Mapping Old to New</a></h2> 2.3642 +<blockquote> 2.3643 + <p>This table will help you convert some idioms of the old build 2.3644 + system to the new build system.</p> 2.3645 + <table summary="Cheat sheet for converting from old to new build system"> 2.3646 + <tr valign="top"> 2.3647 + <th>In the old build system, you used to...</th> 2.3648 + <th>In the new build system, you should ...</th> 2.3649 + </tr> 2.3650 + <tr valign="top"> 2.3651 + <td>run <code>make sanity</code></td> 2.3652 + <td>run <code>bash ./configure</code></td> 2.3653 + </tr> 2.3654 + <tr valign="top"> 2.3655 + <td>set <code>ALT_OUTPUTDIR=build/my-special-output</code></td> 2.3656 + <td>before building the first time: 2.3657 + <br> 2.3658 + <code>cd build/my-special-output</code> 2.3659 + <br> 2.3660 + <code>bash ../../configure</code> 2.3661 + <br> 2.3662 + to build: 2.3663 + <br> 2.3664 + <code>cd build/my-special-output</code> 2.3665 + <br> 2.3666 + <code>make</code> 2.3667 + </td> 2.3668 + </tr> 2.3669 + <tr valign="top"> 2.3670 + <td>set <code>ALT_BOOTDIR=/opt/java/jdk7</code></td> 2.3671 + <td>run <code>configure --with-boot-jdk=/opt/java/jdk7</code></td> 2.3672 + </tr> 2.3673 + <tr valign="top"> 2.3674 + <td>run <code>make ARCH_DATA_MODEL=32</code></td> 2.3675 + <td>run <code>configure --with-target-bits=32</code></td> 2.3676 + </tr> 2.3677 + <tr valign="top"> 2.3678 + <td>set <code>BUILD_CLIENT_ONLY=true</code></td> 2.3679 + <td>run <code>configure --with-jvm-variants=client</code></td> 2.3680 + </tr> 2.3681 + <tr valign="top"> 2.3682 + <td>set <code>ALT_FREETYPE_LIB_PATH=/opt/freetype/lib</code> 2.3683 + and <code>ALT_FREETYPE_HEADERS_PATH=/opt/freetype/include</code></td> 2.3684 + <td>run <code>configure --with-freetype=/opt/freetype</code></td> 2.3685 + </tr> 2.3686 + <tr valign="top"> 2.3687 + <td>set <code>ALT_CUPS_HEADERS_PATH=/opt/cups/include</code></td> 2.3688 + <td>run <code>configure --with-cups=/opt/cups</code></td> 2.3689 + </tr> 2.3690 + <tr valign="top"> 2.3691 + <td>set <code>ALT_OPENWIN_HOME=/opt/X11R6</code></td> 2.3692 + <td>run <code>configure --with-x=/opt/X11R6</code></td> 2.3693 + </tr> 2.3694 + <tr valign="top"> 2.3695 + <td>set <code>ALT_MSVCRNN_DLL_PATH=c:/vc_redist</code></td> 2.3696 + <td>run <code>configure --with-msvcr100dll=/cygdrive/c/vc_redist</code></td> 2.3697 + </tr> 2.3698 + <tr valign="top"> 2.3699 + <td>set <code>ALT_COMPILER_PATH=/opt/my-gcc/bin/gcc</code></td> 2.3700 + <td>run <code>CC=/opt/my-gcc/bin/gcc configure</code> 2.3701 + or <code>CXX=/opt/my-gcc/bin/g++ configure</code> 2.3702 + </td> 2.3703 + </tr> 2.3704 + <tr valign="top"> 2.3705 + <td>set <code>BUILD_HEADLESS_ONLY=true</code></td> 2.3706 + <td>run <code>configure --disable-headful</code></td> 2.3707 + </tr> 2.3708 + <tr valign="top"> 2.3709 + <td>set <code>ALT_DEVTOOLS_PATH=/opt/mytools</code></td> 2.3710 + <td>just run <code>configure</code>, 2.3711 + your tools should be detected automatically. 2.3712 + If you have an unusual configuration, 2.3713 + add the tools directory to your <code>PATH</code>. 2.3714 + </td> 2.3715 + </tr> 2.3716 + <tr valign="top"> 2.3717 + <td>set <code>ALT_DROPS_DIR=/home/user/dropdir</code></td> 2.3718 + <td>source drops are not used anymore</td> 2.3719 + </tr> 2.3720 + <tr valign="top"> 2.3721 + <td>set <code>USE_ONLY_BOOTDIR_TOOLS=true</code></td> 2.3722 + <td>not needed, <code>configure</code> should always do the Right Thing automatically</td> 2.3723 + </tr> 2.3724 + <tr valign="top"> 2.3725 + <td>set <code>ALT_JDK_IMPORT_PATH=/opt/java/import-jdk</code> 2.3726 + or <code>ALT_BUILD_JDK_IMPORT_PATH=/opt/java/import-jdk</code> 2.3727 + </td> 2.3728 + <td>Importing JDKs is no longer possible, 2.3729 + but hotspot can be imported using 2.3730 + <code>--with-import-hotspot</code>. 2.3731 + Documentation on how to achieve a 2.3732 + similar solution will come soon! 2.3733 + </td> 2.3734 + </tr> 2.3735 + <tr valign="top"> 2.3736 + <td>set <code>EXTRA_CFLAGS=-Xfoo</code></td> 2.3737 + <td>run <code>CFLAGS=-Xfoo configure</code></td> 2.3738 + </tr> 2.3739 + <tr valign="top"> 2.3740 + <td>set <code>CROSS_COMPILE_ARCH=i586</code></td> 2.3741 + <td>see <a href="#sec7.3"> section 7.3, Cross-compilation</a></td> 2.3742 + </tr> 2.3743 + <tr valign="top"> 2.3744 + <td>set <code>SKIP_BOOT_CYCLE=false</code></td> 2.3745 + <td>Run <code>make bootcycle-images</code>.</td> 2.3746 + </tr> 2.3747 + </table> 2.3748 + 2.3749 + <h3><a name="variables">Environment/Make Variables</a></h3> 2.3750 + <p> 2.3751 + Some of the 2.3752 + environment or make variables (just called <b>variables</b> in this 2.3753 + document) that can impact the build are: 2.3754 + <blockquote> 2.3755 + <dl> 2.3756 + <dt><a name="path"><code>PATH</code></a> </dt> 2.3757 + <dd>Typically you want to set the <code>PATH</code> to include: 2.3758 + <ul> 2.3759 + <li>The location of the GNU make binary</li> 2.3760 + <li>The location of the Bootstrap JDK <code>java</code> 2.3761 + (see <a href="#bootjdk">Bootstrap JDK</a>)</li> 2.3762 + <li>The location of the C/C++ compilers 2.3763 + (see <a href="#compilers"><code>compilers</code></a>)</li> 2.3764 + <li>The location or locations for the Unix command utilities 2.3765 + (e.g. <code>/usr/bin</code>)</li> 2.3766 + </ul> 2.3767 + </dd> 2.3768 + <dt><code>MILESTONE</code> </dt> 2.3769 + <dd> 2.3770 + The milestone name for the build (<i>e.g.</i>"beta"). 2.3771 + The default value is "internal". 2.3772 + </dd> 2.3773 + <dt><code>BUILD_NUMBER</code> </dt> 2.3774 + <dd> 2.3775 + The build number for the build (<i>e.g.</i> "b27"). 2.3776 + The default value is "b00". 2.3777 + </dd> 2.3778 + <dt><a name="arch_data_model"><code>ARCH_DATA_MODEL</code></a></dt> 2.3779 + <dd>The <code>ARCH_DATA_MODEL</code> variable 2.3780 + is used to specify whether the build is to generate 32-bit or 64-bit 2.3781 + binaries. 2.3782 + The Solaris build supports either 32-bit or 64-bit builds, but 2.3783 + Windows and Linux will support only one, depending on the specific 2.3784 + OS being used. 2.3785 + Normally, setting this variable is only necessary on Solaris. 2.3786 + Set <code>ARCH_DATA_MODEL</code> to <code>32</code> for generating 32-bit binaries, 2.3787 + or to <code>64</code> for generating 64-bit binaries. 2.3788 + </dd> 2.3789 + <dt><a name="ALT_BOOTDIR"><code>ALT_BOOTDIR</code></a></dt> 2.3790 + <dd> 2.3791 + The location of the bootstrap JDK installation. 2.3792 + See <a href="#bootjdk">Bootstrap JDK</a> for more information. 2.3793 + You should always install your own local Bootstrap JDK and 2.3794 + always set <code>ALT_BOOTDIR</code> explicitly. 2.3795 + </dd> 2.3796 + <dt><a name="ALT_OUTPUTDIR"><code>ALT_OUTPUTDIR</code></a> </dt> 2.3797 + <dd> 2.3798 + An override for specifying the (absolute) path of where the 2.3799 + build output is to go. 2.3800 + The default output directory will be build/<i>platform</i>. 2.3801 + </dd> 2.3802 + <dt><a name="ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> </dt> 2.3803 + <dd> 2.3804 + The location of the C/C++ compiler. 2.3805 + The default varies depending on the platform. 2.3806 + </dd> 2.3807 + <dt><code><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></code></dt> 2.3808 + <dd> 2.3809 + The location of the <a href="#cacerts">cacerts</a> file. 2.3810 + The default will refer to 2.3811 + <code>jdk/src/share/lib/security/cacerts</code>. 2.3812 + </dd> 2.3813 + <dt><a name="ALT_CUPS_HEADERS_PATH"><code>ALT_CUPS_HEADERS_PATH</code></a> </dt> 2.3814 + <dd> 2.3815 + The location of the CUPS header files. 2.3816 + See <a href="#cups">CUPS information</a> for more information. 2.3817 + If this path does not exist the fallback path is 2.3818 + <code>/usr/include</code>. 2.3819 + </dd> 2.3820 + <dt><a name="ALT_FREETYPE_LIB_PATH"><code>ALT_FREETYPE_LIB_PATH</code></a></dt> 2.3821 + <dd> 2.3822 + The location of the FreeType shared library. 2.3823 + See <a href="#freetype">FreeType information</a> for details. 2.3824 + </dd> 2.3825 + <dt><a name="ALT_FREETYPE_HEADERS_PATH"><code>ALT_FREETYPE_HEADERS_PATH</code></a></dt> 2.3826 + <dd> 2.3827 + The location of the FreeType header files. 2.3828 + See <a href="#freetype">FreeType information</a> for details. 2.3829 + </dd> 2.3830 + <dt><a name="ALT_JDK_DEVTOOLS_PATH"><code>ALT_JDK_DEVTOOLS_PATH</code></a></dt> 2.3831 + <dd> 2.3832 + The default root location of the devtools. 2.3833 + The default value is 2.3834 + <code>$(ALT_SLASH_JAVA)/devtools</code>. 2.3835 + </dd> 2.3836 + <dt><code><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></code> </dt> 2.3837 + <dd> 2.3838 + The location of tools like the 2.3839 + <a href="#zip"><code>zip</code> and <code>unzip</code></a> 2.3840 + binaries, but might also contain the GNU make utility 2.3841 + (<code><i>gmake</i></code>). 2.3842 + So this area is a bit of a grab bag, especially on Windows. 2.3843 + The default value depends on the platform and 2.3844 + Unix Commands being used. 2.3845 + On Linux the default will be 2.3846 + <code>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</code>, 2.3847 + on Solaris 2.3848 + <code>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</code>, 2.3849 + and on Windows with CYGWIN 2.3850 + <code>/usr/bin</code>. 2.3851 + </dd> 2.3852 + <dt><a name="ALT_UNIXCCS_PATH"><code>ALT_UNIXCCS_PATH</code></a></dt> 2.3853 + <dd> 2.3854 + <strong>Solaris only:</strong> 2.3855 + An override for specifying where the Unix CCS 2.3856 + command set are located. 2.3857 + The default location is <code>/usr/ccs/bin</code> 2.3858 + </dd> 2.3859 + <dt><a name="ALT_SLASH_JAVA"><code>ALT_SLASH_JAVA</code></a></dt> 2.3860 + <dd> 2.3861 + The default root location for many of the ALT path locations 2.3862 + of the following ALT variables. 2.3863 + The default value is 2.3864 + <code>"/java"</code> on Solaris and Linux, 2.3865 + <code>"J:"</code> on Windows. 2.3866 + </dd> 2.3867 + 2.3868 + <dt><a name="ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a></dt> 2.3869 + <dd> 2.3870 + The top-level directory of the libraries and include files 2.3871 + for the platform's 2.3872 + graphical programming environment. 2.3873 + The default location is platform specific. 2.3874 + For example, on Linux it defaults to <code>/usr/X11R6/</code>. 2.3875 + </dd> 2.3876 + <dt><strong>Windows specific:</strong></dt> 2.3877 + <dd> 2.3878 + <dl> 2.3879 + <dt><a name="ALT_WINDOWSSDKDIR"><code>ALT_WINDOWSSDKDIR</code></a> </dt> 2.3880 + <dd> 2.3881 + The location of the 2.3882 + Microsoft Windows SDK where some tools will be 2.3883 + located. 2.3884 + The default is whatever WINDOWSSDKDIR is set to 2.3885 + (or WindowsSdkDir) or the path 2.3886 + <br> 2.3887 + <code>c:\Program Files\Microsoft SDKs\Windows\v7.0a</code> 2.3888 + </dd> 2.3889 + <dt><code><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></code> </dt> 2.3890 + <dd> 2.3891 + The location of the 2.3892 + <a href="#dxsdk">Microsoft DirectX 9 SDK</a>. 2.3893 + The default will be to try and use the DirectX environment 2.3894 + variable <code>DXSDK_DIR</code>, 2.3895 + failing that, look in <code>C:/DXSDK</code>. 2.3896 + </dd> 2.3897 + <dt><code><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></code> </dt> 2.3898 + <dd> 2.3899 + The location of the 2.3900 + <a href="#msvcrNN"><code>MSVCR100.DLL</code></a>. 2.3901 + </dd> 2.3902 + </dl> 2.3903 + </dd> 2.3904 + <dt><strong>Cross-Compilation Support:</strong></dt> 2.3905 + <dd> 2.3906 + <dl> 2.3907 + <dt><a name="CROSS_COMPILE_ARCH"><code>CROSS_COMPILE_ARCH</code></a> </dt> 2.3908 + <dd> 2.3909 + Set to the target architecture of a 2.3910 + cross-compilation build. If set, this 2.3911 + variable is used to signify that we are 2.3912 + cross-compiling. The expectation 2.3913 + is that 2.3914 + <a href="#ALT_COMPILER_PATH"><code>ALT_COMPILER_PATH</code></a> 2.3915 + is set 2.3916 + to point to the cross-compiler and that any 2.3917 + cross-compilation specific flags 2.3918 + are passed using 2.3919 + <a href="#EXTRA_CFLAGS"><code>EXTRA_CFLAGS</code></a>. 2.3920 + The <a href="#ALT_OPENWIN_HOME"><code>ALT_OPENWIN_HOME</code></a> 2.3921 + variable should 2.3922 + also be set to point to the graphical header files 2.3923 + (e.g. X11) provided with 2.3924 + the cross-compiler. 2.3925 + When cross-compiling we skip execution of any demos 2.3926 + etc that may be built, and 2.3927 + also skip binary-file verification. 2.3928 + </dd> 2.3929 + <dt><code><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></code> </dt> 2.3930 + <dd> 2.3931 + Used to pass cross-compilation options to the 2.3932 + cross-compiler. 2.3933 + These are added to the <code>CFLAGS</code> 2.3934 + and <code>CXXFLAGS</code> variables. 2.3935 + </dd> 2.3936 + <dt><code><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></code> </dt> 2.3937 + <dd> 2.3938 + Used primarily for cross-compilation builds 2.3939 + (and always set in that case) 2.3940 + this variable indicates that tools from the 2.3941 + boot JDK should be used during 2.3942 + the build process, not the tools 2.3943 + (<code>javac</code>, <code>javah</code>, <code>jar</code>) 2.3944 + just built (which can't execute on the build host). 2.3945 + </dd> 2.3946 + <dt><code><a name="HOST_CC">HOST_CC</a></code> </dt> 2.3947 + <dd> 2.3948 + The location of the C compiler to generate programs 2.3949 + to run on the build host. 2.3950 + Some parts of the build generate programs that are 2.3951 + then compiled and executed 2.3952 + to produce other parts of the build. Normally the 2.3953 + primary C compiler is used 2.3954 + to do this, but when cross-compiling that would be 2.3955 + the cross-compiler and the 2.3956 + resulting program could not be executed. 2.3957 + On Linux this defaults to <code>/usr/bin/gcc</code>; 2.3958 + on other platforms it must be 2.3959 + set explicitly. 2.3960 + </dd> 2.3961 + </dl> 2.3962 + <dt><strong>Specialized Build Options:</strong></dt> 2.3963 + <dd> 2.3964 + Some build variables exist to support specialized build 2.3965 + environments and/or specialized 2.3966 + build products. Their use is only supported in those contexts: 2.3967 + <dl> 2.3968 + <dt><code><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></code> </dt> 2.3969 + <dd> 2.3970 + Indicates this build will only contain the 2.3971 + Hotspot client VM. In addition to 2.3972 + controlling the Hotspot build target, 2.3973 + it ensures that we don't try to copy 2.3974 + any server VM files/directories, 2.3975 + and defines a default <code>jvm.cfg</code> file 2.3976 + suitable for a client-only environment. 2.3977 + Using this in a 64-bit build will 2.3978 + generate a sanity warning as 64-bit client 2.3979 + builds are not directly supported. 2.3980 + </dd> 2.3981 + <dt><code><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</code> </dt> 2.3982 + <dd> 2.3983 + Used when the build environment has no graphical 2.3984 + capabilities at all. This 2.3985 + excludes building anything that requires graphical 2.3986 + libraries to be available. 2.3987 + </dd> 2.3988 + <dt><code><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</code> </dt> 2.3989 + <dd> 2.3990 + Used to indicate this is a build of the Oracle 2.3991 + Java SE Embedded product. 2.3992 + This will enable the directives included in the 2.3993 + SE-Embedded specific build 2.3994 + files. 2.3995 + </dd> 2.3996 + <dt><code><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></code> </dt> 2.3997 + <dd> 2.3998 + If set to false, disables the use of mmap by the 2.3999 + zip utility. Otherwise, 2.4000 + mmap will be used. 2.4001 + </dd> 2.4002 + <dt><code><a name="COMPRESS_JARS"></a>COMPRESS_JARS</code> </dt> 2.4003 + <dd> 2.4004 + If set to true, causes certain jar files that 2.4005 + would otherwise be built without 2.4006 + compression, to use compression. 2.4007 + </dd> 2.4008 + </dl> 2.4009 + </dd> 2.4010 + </dl> 2.4011 + </blockquote> 2.4012 + 2.4013 +</blockquote> <!-- Appendix D --> 2.4014 + 2.4015 + <!-- ====================================================== --> 2.4016 <hr> 2.4017 - <h2><a name="creating">Creating the Build</a></h2> 2.4018 - <blockquote> 2.4019 - Once a machine is setup to build the OpenJDK, 2.4020 - the steps to create the build are fairly simple. 2.4021 - The various ALT settings can either be made into variables 2.4022 - or can be supplied on the 2.4023 - <a href="#gmake"><tt><i>gmake</i></tt></a> 2.4024 - command. 2.4025 - <ol> 2.4026 - <li>Use the sanity rule to double check all the ALT settings: 2.4027 - <blockquote> 2.4028 - <tt> 2.4029 - <i>gmake</i> 2.4030 - sanity 2.4031 - [ARCH_DATA_MODEL=<i>32 or 64</i>] 2.4032 - [other "ALT_" overrides] 2.4033 - </tt> 2.4034 - </blockquote> 2.4035 - </li> 2.4036 - <li>Start the build with the command: 2.4037 - <blockquote> 2.4038 - <tt> 2.4039 - <i>gmake</i> 2.4040 - [ARCH_DATA_MODEL=<i>32 or 64</i>] 2.4041 - [ALT_OUTPUTDIR=<i>output_directory</i>] 2.4042 - [other "ALT_" overrides] 2.4043 - </tt> 2.4044 - </blockquote> 2.4045 - </li> 2.4046 - </ol> 2.4047 - <p> 2.4048 - <strong>Solaris:</strong> 2.4049 - Note that ARCH_DATA_MODEL is really only needed on Solaris to 2.4050 - indicate you want to built the 64-bit version. 2.4051 - And before the Solaris 64-bit binaries can be used, they 2.4052 - must be merged with the binaries from a separate 32-bit build. 2.4053 - The merged binaries may then be used in either 32-bit or 64-bit mode, with 2.4054 - the selection occurring at runtime 2.4055 - with the <tt>-d32</tt> or <tt>-d64</tt> options. 2.4056 - </blockquote> 2.4057 - <!-- ------------------------------------------------------ --> 2.4058 + <p>End of OpenJDK README-builds.html document.<br>Please come again! 2.4059 <hr> 2.4060 - <h2><a name="testing">Testing the Build</a></h2> 2.4061 - <blockquote> 2.4062 - When the build is completed, you should see the generated 2.4063 - binaries and associated files in the <tt>j2sdk-image</tt> 2.4064 - directory in the output directory. 2.4065 - The default output directory is 2.4066 - <tt>build/<i>platform</i></tt>, 2.4067 - where <tt><i>platform</i></tt> is one of 2.4068 - <blockquote> 2.4069 - <ul> 2.4070 - <li><tt>solaris-sparc</tt></li> 2.4071 - <li><tt>solaris-sparcv9</tt></li> 2.4072 - <li><tt>solaris-i586</tt></li> 2.4073 - <li><tt>solaris-amd64</tt></li> 2.4074 - <li><tt>linux-i586</tt></li> 2.4075 - <li><tt>linux-amd64</tt></li> 2.4076 - <li><tt>windows-i586</tt></li> 2.4077 - <li><tt>windows-amd64</tt></li> 2.4078 - </ul> 2.4079 - </blockquote> 2.4080 - In particular, the 2.4081 - <tt>build/<i>platform</i>/j2sdk-image/bin</tt> 2.4082 - directory should contain executables for the 2.4083 - OpenJDK tools and utilities. 2.4084 - <p> 2.4085 - You can test that the build completed properly by using the build 2.4086 - to run the various demos that you will find in the 2.4087 - <tt>build/<i>platform</i>/j2sdk-image/demo</tt> 2.4088 - directory. 2.4089 - <p> 2.4090 - The provided regression tests can be run with the <tt>jtreg</tt> 2.4091 - utility from 2.4092 - <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>. 2.4093 - </blockquote> 2.4094 - <!-- ------------------------------------------------------ --> 2.4095 - <hr> 2.4096 - <h2><a name="variables">Environment/Make Variables</a></h2> 2.4097 - <p> 2.4098 - Some of the 2.4099 - environment or make variables (just called <b>variables</b> in this 2.4100 - document) that can impact the build are: 2.4101 - <blockquote> 2.4102 - <dl> 2.4103 - <dt><a name="path"><tt>PATH</tt></a> </dt> 2.4104 - <dd>Typically you want to set the <tt>PATH</tt> to include: 2.4105 - <ul> 2.4106 - <li>The location of the GNU make binary</li> 2.4107 - <li>The location of the Bootstrap JDK <tt>java</tt> 2.4108 - (see <a href="#bootjdk">Bootstrap JDK</a>)</li> 2.4109 - <li>The location of the C/C++ compilers 2.4110 - (see <a href="#compilers"><tt>compilers</tt></a>)</li> 2.4111 - <li>The location or locations for the Unix command utilities 2.4112 - (e.g. <tt>/usr/bin</tt>)</li> 2.4113 - </ul> 2.4114 - </dd> 2.4115 - <dt><tt>MILESTONE</tt> </dt> 2.4116 - <dd> 2.4117 - The milestone name for the build (<i>e.g.</i>"beta"). 2.4118 - The default value is "internal". 2.4119 - </dd> 2.4120 - <dt><tt>BUILD_NUMBER</tt> </dt> 2.4121 - <dd> 2.4122 - The build number for the build (<i>e.g.</i> "b27"). 2.4123 - The default value is "b00". 2.4124 - </dd> 2.4125 - <dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt> 2.4126 - <dd>The <tt>ARCH_DATA_MODEL</tt> variable 2.4127 - is used to specify whether the build is to generate 32-bit or 64-bit 2.4128 - binaries. 2.4129 - The Solaris build supports either 32-bit or 64-bit builds, but 2.4130 - Windows and Linux will support only one, depending on the specific 2.4131 - OS being used. 2.4132 - Normally, setting this variable is only necessary on Solaris. 2.4133 - Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries, 2.4134 - or to <tt>64</tt> for generating 64-bit binaries. 2.4135 - </dd> 2.4136 - <dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt> 2.4137 - <dd> 2.4138 - The location of the bootstrap JDK installation. 2.4139 - See <a href="#bootjdk">Bootstrap JDK</a> for more information. 2.4140 - You should always install your own local Bootstrap JDK and 2.4141 - always set <tt>ALT_BOOTDIR</tt> explicitly. 2.4142 - </dd> 2.4143 - <dt><a name="ALT_JDK_IMPORT_PATH"><tt>ALT_JDK_IMPORT_PATH</tt></a></dt> 2.4144 - <dd> 2.4145 - The location of a previously built JDK installation. 2.4146 - See <a href="#importjdk">Optional Import JDK</a> for more information. 2.4147 - </dd> 2.4148 - <dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt> 2.4149 - <dd> 2.4150 - An override for specifying the (absolute) path of where the 2.4151 - build output is to go. 2.4152 - The default output directory will be build/<i>platform</i>. 2.4153 - </dd> 2.4154 - <dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt> 2.4155 - <dd> 2.4156 - The location of the C/C++ compiler. 2.4157 - The default varies depending on the platform. 2.4158 - </dd> 2.4159 - <dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt> 2.4160 - <dd> 2.4161 - The location of the <a href="#cacerts">cacerts</a> file. 2.4162 - The default will refer to 2.4163 - <tt>jdk/src/share/lib/security/cacerts</tt>. 2.4164 - </dd> 2.4165 - <dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt> 2.4166 - <dd> 2.4167 - The location of the CUPS header files. 2.4168 - See <a href="#cups">CUPS information</a> for more information. 2.4169 - If this path does not exist the fallback path is 2.4170 - <tt>/usr/include</tt>. 2.4171 - </dd> 2.4172 - <dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt> 2.4173 - <dd> 2.4174 - The location of the FreeType shared library. 2.4175 - See <a href="#freetype">FreeType information</a> for details. 2.4176 - </dd> 2.4177 - <dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt> 2.4178 - <dd> 2.4179 - The location of the FreeType header files. 2.4180 - See <a href="#freetype">FreeType information</a> for details. 2.4181 - </dd> 2.4182 - <dt><a name="ALT_JDK_DEVTOOLS_PATH"><tt>ALT_JDK_DEVTOOLS_PATH</tt></a></dt> 2.4183 - <dd> 2.4184 - The default root location of the devtools. 2.4185 - The default value is 2.4186 - <tt>$(ALT_SLASH_JAVA)/devtools</tt>. 2.4187 - </dd> 2.4188 - <dt><tt><a name="ALT_DEVTOOLS_PATH">ALT_DEVTOOLS_PATH</a></tt> </dt> 2.4189 - <dd> 2.4190 - The location of tools like the 2.4191 - <a href="#zip"><tt>zip</tt> and <tt>unzip</tt></a> 2.4192 - binaries, but might also contain the GNU make utility 2.4193 - (<tt><i>gmake</i></tt>). 2.4194 - So this area is a bit of a grab bag, especially on Windows. 2.4195 - The default value depends on the platform and 2.4196 - Unix Commands being used. 2.4197 - On Linux the default will be 2.4198 - <tt>$(ALT_JDK_DEVTOOLS_PATH)/linux/bin</tt>, 2.4199 - on Solaris 2.4200 - <tt>$(ALT_JDK_DEVTOOLS_PATH)/<i>{sparc,i386}</i>/bin</tt>, 2.4201 - and on Windows with CYGWIN 2.4202 - <tt>/usr/bin</tt>. 2.4203 - </dd> 2.4204 - <dt><tt><a name="ALT_DROPS_DIR">ALT_DROPS_DIR</a></tt> </dt> 2.4205 - <dd> 2.4206 - The location of any source drop bundles 2.4207 - (see <a href="#drops">Managing the Source Drops</a>). 2.4208 - The default will be 2.4209 - <tt>$(ALT_JDK_DEVTOOLS_PATH)/share/jdk8-drops</tt>. 2.4210 - </dd> 2.4211 - <dt><a name="ALT_UNIXCCS_PATH"><tt>ALT_UNIXCCS_PATH</tt></a></dt> 2.4212 - <dd> 2.4213 - <strong>Solaris only:</strong> 2.4214 - An override for specifying where the Unix CCS 2.4215 - command set are located. 2.4216 - The default location is <tt>/usr/ccs/bin</tt> 2.4217 - </dd> 2.4218 - <dt><a name="ALT_SLASH_JAVA"><tt>ALT_SLASH_JAVA</tt></a></dt> 2.4219 - <dd> 2.4220 - The default root location for many of the ALT path locations 2.4221 - of the following ALT variables. 2.4222 - The default value is 2.4223 - <tt>"/java"</tt> on Solaris and Linux, 2.4224 - <tt>"J:"</tt> on Windows. 2.4225 - </dd> 2.4226 - <dt><a name="ALT_BUILD_JDK_IMPORT_PATH"><tt>ALT_BUILD_JDK_IMPORT_PATH</tt></a></dt> 2.4227 - <dd> 2.4228 - These are useful in managing builds on multiple platforms. 2.4229 - The default network location for all of the import JDK images 2.4230 - for all platforms. 2.4231 - If <tt><a href="#ALT_JDK_IMPORT_PATH">ALT_JDK_IMPORT_PATH</a></tt> 2.4232 - is not set, this directory will be used and should contain 2.4233 - the following directories: 2.4234 - <tt>solaris-sparc</tt>, 2.4235 - <tt>solaris-i586</tt>, 2.4236 - <tt>solaris-sparcv9</tt>, 2.4237 - <tt>solaris-amd64</tt>, 2.4238 - <tt>linux-i586</tt>, 2.4239 - <tt>linux-amd64</tt>, 2.4240 - <tt>windows-i586</tt>, 2.4241 - and 2.4242 - <tt>windows-amd64</tt>. 2.4243 - Where each of these directories contain the import JDK image 2.4244 - for that platform. 2.4245 - </dd> 2.4246 - <dt><a name="ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a></dt> 2.4247 - <dd> 2.4248 - The top-level directory of the libraries and include files for the platform's 2.4249 - graphical programming environment. The default location is platform specific. 2.4250 - For example, on Linux it defaults to <tt>/usr/X11R6/</tt>. 2.4251 - </dd> 2.4252 - <dt><strong>Windows specific:</strong></dt> 2.4253 - <dd> 2.4254 - <dl> 2.4255 - <dt><a name="ALT_WINDOWSSDKDIR"><tt>ALT_WINDOWSSDKDIR</tt></a> </dt> 2.4256 - <dd> 2.4257 - The location of the 2.4258 - Microsoft Windows SDK where some tools will be 2.4259 - located. 2.4260 - The default is whatever WINDOWSSDKDIR is set to 2.4261 - (or WindowsSdkDir) or the path 2.4262 - <br> 2.4263 - <tt>c:\Program Files\Microsoft SDKs\Windows\v7.0a</tt> 2.4264 - </dd> 2.4265 - <dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt> 2.4266 - <dd> 2.4267 - The location of the 2.4268 - <a href="#dxsdk">Microsoft DirectX 9 SDK</a>. 2.4269 - The default will be to try and use the DirectX environment 2.4270 - variable <tt>DXSDK_DIR</tt>, 2.4271 - failing that, look in <tt>C:/DXSDK</tt>. 2.4272 - </dd> 2.4273 - <dt><tt><a name="ALT_MSVCRNN_DLL_PATH">ALT_MSVCRNN_DLL_PATH</a></tt> </dt> 2.4274 - <dd> 2.4275 - The location of the 2.4276 - <a href="#msvcrNN"><tt>MSVCR100.DLL</tt></a>. 2.4277 - </dd> 2.4278 - </dl> 2.4279 - </dd> 2.4280 - <dt><strong>Cross-Compilation Support:</strong></dt> 2.4281 - <dd> 2.4282 - <dl> 2.4283 - <dt><a name="CROSS_COMPILE_ARCH"><tt>CROSS_COMPILE_ARCH</tt></a> </dt> 2.4284 - <dd> 2.4285 - Set to the target architecture of a cross-compilation build. If set, this 2.4286 - variable is used to signify that we are cross-compiling. The expectation 2.4287 - is that <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> is set 2.4288 - to point to the cross-compiler and that any cross-compilation specific flags 2.4289 - are passed using <a href="#EXTRA_CFLAGS"><tt>EXTRA_CFLAGS</tt></a>. 2.4290 - The <a href="#ALT_OPENWIN_HOME"><tt>ALT_OPENWIN_HOME</tt></a> variable should 2.4291 - also be set to point to the graphical header files (e.g. X11) provided with 2.4292 - the cross-compiler. 2.4293 - When cross-compiling we skip execution of any demos etc that may be built, and 2.4294 - also skip binary-file verification. 2.4295 - </dd> 2.4296 - <dt><tt><a name="EXTRA_CFLAGS">EXTRA_CFLAGS</a></tt> </dt> 2.4297 - <dd> 2.4298 - Used to pass cross-compilation options to the cross-compiler. 2.4299 - These are added to the <tt>CFLAGS</tt> and <tt>CXXFLAGS</tt> variables. 2.4300 - </dd> 2.4301 - <dt><tt><a name="USE_ONLY_BOOTDIR_TOOLS">USE_ONLY_BOOTDIR_TOOLS</a></tt> </dt> 2.4302 - <dd> 2.4303 - Used primarily for cross-compilation builds (and always set in that case) 2.4304 - this variable indicates that tools from the boot JDK should be used during 2.4305 - the build process, not the tools (<tt>javac</tt>, <tt>javah</tt>, <tt>jar</tt>) 2.4306 - just built (which can't execute on the build host). 2.4307 - </dd> 2.4308 - <dt><tt><a name="HOST_CC">HOST_CC</a></tt> </dt> 2.4309 - <dd> 2.4310 - The location of the C compiler to generate programs to run on the build host. 2.4311 - Some parts of the build generate programs that are then compiled and executed 2.4312 - to produce other parts of the build. Normally the primary C compiler is used 2.4313 - to do this, but when cross-compiling that would be the cross-compiler and the 2.4314 - resulting program could not be executed. 2.4315 - On Linux this defaults to <tt>/usr/bin/gcc</tt>; on other platforms it must be 2.4316 - set explicitly. 2.4317 - </dd> 2.4318 - </dl> 2.4319 - <dt><strong>Specialized Build Options:</strong></dt> 2.4320 - <dd> 2.4321 - Some build variables exist to support specialized build environments and/or specialized 2.4322 - build products. Their use is only supported in those contexts: 2.4323 - <dl> 2.4324 - <dt><tt><a name="BUILD_CLIENT_ONLY">BUILD_CLIENT_ONLY</a></tt> </dt> 2.4325 - <dd> 2.4326 - Indicates this build will only contain the Hotspot client VM. In addition to 2.4327 - controlling the Hotspot build target, it ensures that we don't try to copy 2.4328 - any server VM files/directories, and defines a default <tt>jvm.cfg</tt> file 2.4329 - suitable for a client-only environment. Using this in a 64-bit build will 2.4330 - generate a sanity warning as 64-bit client builds are not directly supported. 2.4331 - </dd> 2.4332 - <dt><tt><a name="BUILD_HEADLESS_ONLY"></a>BUILD_HEADLESS_ONLY</tt> </dt> 2.4333 - <dd> 2.4334 - Used when the build environment has no graphical capabilities at all. This 2.4335 - excludes building anything that requires graphical libraries to be available. 2.4336 - </dd> 2.4337 - <dt><tt><a name="JAVASE_EMBEDDED"></a>JAVASE_EMBEDDED</tt> </dt> 2.4338 - <dd> 2.4339 - Used to indicate this is a build of the Oracle Java SE Embedded product. 2.4340 - This will enable the directives included in the SE-Embedded specific build 2.4341 - files. 2.4342 - </dd> 2.4343 - <dt><tt><a name="LIBZIP_CAN_USE_MMAP">LIBZIP_CAN_USE_MMAP</a></tt> </dt> 2.4344 - <dd> 2.4345 - If set to false, disables the use of mmap by the zip utility. Otherwise, 2.4346 - mmap will be used. 2.4347 - </dd> 2.4348 - <dt><tt><a name="COMPRESS_JARS"></a>COMPRESS_JARS</tt> </dt> 2.4349 - <dd> 2.4350 - If set to true, causes certain jar files that would otherwise be built without 2.4351 - compression, to use compression. 2.4352 - </dd> 2.4353 - </dl> 2.4354 - </dd> 2.4355 - </dl> 2.4356 - </blockquote> 2.4357 - <!-- ------------------------------------------------------ --> 2.4358 - <hr> 2.4359 - <h2><a name="hints">Hints and Tips</a></h2> 2.4360 - <blockquote> 2.4361 - You don't have to use all these hints and tips, and in fact people do actually 2.4362 - build with systems that contradict these, but they might prove to be 2.4363 - helpful to some. 2.4364 - <ul> 2.4365 - <li> 2.4366 - If <tt>make sanity</tt> does not work, find out why, fix that 2.4367 - before going any further. Or at least understand what the 2.4368 - complaints are from it. 2.4369 - </li> 2.4370 - <li> 2.4371 - JDK: Keep in mind that you are building a JDK, but you need 2.4372 - a JDK (BOOTDIR JDK) to build this JDK. 2.4373 - </li> 2.4374 - <li> 2.4375 - Ant: The ant utility is a java application and besides having 2.4376 - ant available to you, it's important that ant finds the right 2.4377 - java to run with. Make sure you can type <tt>ant -version</tt> 2.4378 - and get clean results with no error messages. 2.4379 - </li> 2.4380 - <li> 2.4381 - Linux: Try and favor the system packages over building your own 2.4382 - or getting packages from other areas. 2.4383 - Most Linux builds should be possible with the system's 2.4384 - available packages. 2.4385 - </li> 2.4386 - <li> 2.4387 - Solaris: Typically you will need to get compilers on your systems 2.4388 - and occasionally GNU make 3.81 if a gmake binary is not available. 2.4389 - The gmake binary might not be 3.81, be careful. 2.4390 - </li> 2.4391 - <li> 2.4392 - Windows VS2010: 2.4393 - <ul> 2.4394 - <li> 2.4395 - Only the C++ part of VS2010 is needed. 2.4396 - Try to let the installation go to the default install directory. 2.4397 - Always reboot your system after installing VS2010. 2.4398 - The system environment variable VS100COMNTOOLS should be 2.4399 - set in your environment. 2.4400 - </li> 2.4401 - <li> 2.4402 - Make sure that TMP and TEMP are also set in the environment 2.4403 - and refer to Windows paths that exist, like <tt>C:\temp</tt>, 2.4404 - not <tt>/tmp</tt>, not <tt>/cygdrive/c/temp</tt>, and not <tt>C:/temp</tt>. 2.4405 - <tt>C:\temp</tt> is just an example, it is assumed that this area is 2.4406 - private to the user, so by default after installs you should 2.4407 - see a unique user path in these variables. 2.4408 - </li> 2.4409 - <li> 2.4410 - You need to use vsvars32.bat or vsvars64.bat to get the 2.4411 - PATH, INCLUDE, LIB, LIBPATH, and WINDOWSSDKDIR 2.4412 - variables set in your shell environment. 2.4413 - These bat files are not easy to use from a shell environment. 2.4414 - However, there is a script placed in the root jdk8 repository called 2.4415 - vsvars.sh that can help, it should only be done once in a shell 2.4416 - that will be doing the build, e.g.<br> 2.4417 - <tt>sh ./make/scripts/vsvars.sh -v10 > settings<br> 2.4418 - eval `cat settings`</tt><br> 2.4419 - Or just <tt>eval `sh ./make/scripts/vsvars.sh -v10`</tt>. 2.4420 - </li> 2.4421 - </ul> 2.4422 - </li> 2.4423 - <li> 2.4424 - Windows: PATH order is critical, see the 2.4425 - <a href="#paths">paths</a> section for more information. 2.4426 - </li> 2.4427 - <li> 2.4428 - Windows 64bit builds: Use ARCH_DATA_MODEL=64. 2.4429 - </li> 2.4430 - </ul> 2.4431 - </blockquote> 2.4432 - <!-- ------------------------------------------------------ --> 2.4433 - <hr> 2.4434 - <h2><a name="troubleshooting">Troubleshooting</a></h2> 2.4435 - <blockquote> 2.4436 - A build can fail for any number of reasons. 2.4437 - Most failures 2.4438 - are a result of trying to build in an environment in which all the 2.4439 - pre-build requirements have not been met. 2.4440 - The first step in 2.4441 - troubleshooting a build failure is to recheck that you have satisfied 2.4442 - all the pre-build requirements for your platform. 2.4443 - Look for the check list of the platform you are building on in the 2.4444 - <a href="#contents">Table of Contents</a>. 2.4445 - <p> 2.4446 - You can validate your build environment by using the <tt>sanity</tt> 2.4447 - target. 2.4448 - Any errors listed 2.4449 - will stop the build from starting, and any warnings may result in 2.4450 - a flawed product build. 2.4451 - We strongly encourage you to evaluate every 2.4452 - sanity check warning and fix it if required, before you proceed 2.4453 - further with your build. 2.4454 - <p> 2.4455 - Some of the more common problems with builds are briefly described 2.4456 - below, with suggestions for remedies. 2.4457 - <ul> 2.4458 - <li> 2.4459 - <b>Corrupted Bundles on Windows:</b> 2.4460 - <blockquote> 2.4461 - Some virus scanning software has been known to corrupt the 2.4462 - downloading of zip bundles. 2.4463 - It may be necessary to disable the 'on access' or 'real time' 2.4464 - virus scanning features to prevent this corruption. 2.4465 - This type of "real time" virus scanning can also slow down the 2.4466 - build process significantly. 2.4467 - Temporarily disabling the feature, or excluding the build 2.4468 - output directory may be necessary to get correct and faster builds. 2.4469 - </blockquote> 2.4470 - </li> 2.4471 - <li> 2.4472 - <b>Slow Builds:</b> 2.4473 - <blockquote> 2.4474 - If your build machine seems to be overloaded from too many 2.4475 - simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt> 2.4476 - variable to <tt>1</tt> (if you're using a multiple CPU 2.4477 - machine, setting it to more than the the number of CPUs is probably 2.4478 - not a good idea). 2.4479 - <p> 2.4480 - Creating the javadocs can be very slow, if you are running 2.4481 - javadoc, consider skipping that step. 2.4482 - <p> 2.4483 - Faster hardware and more RAM always helps too. 2.4484 - The VM build tends to be CPU intensive (many C++ compiles), 2.4485 - and the rest of the JDK will often be disk intensive. 2.4486 - <p> 2.4487 - Faster compiles are possible using a tool called 2.4488 - <a href="http://ccache.samba.org/" target="_blank">ccache</a>. 2.4489 - </blockquote> 2.4490 - </li> 2.4491 - <li> 2.4492 - <b>File time issues:</b> 2.4493 - <blockquote> 2.4494 - If you see warnings that refer to file time stamps, e.g. 2.4495 - <blockquote> 2.4496 - <i>Warning message:</i><tt> File `xxx' has modification time in 2.4497 - the future.</tt> 2.4498 - <br> 2.4499 - <i>Warning message:</i> <tt> Clock skew detected. Your build may 2.4500 - be incomplete.</tt> 2.4501 - </blockquote> 2.4502 - These warnings can occur when the clock on the build machine is out of 2.4503 - sync with the timestamps on the source files. Other errors, apparently 2.4504 - unrelated but in fact caused by the clock skew, can occur along with 2.4505 - the clock skew warnings. These secondary errors may tend to obscure the 2.4506 - fact that the true root cause of the problem is an out-of-sync clock. 2.4507 - For example, an out-of-sync clock has been known to cause an old 2.4508 - version of javac to be used to compile some files, resulting in errors 2.4509 - when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword 2.4510 - in the 1.4 source code. 2.4511 - <p> 2.4512 - If you see these warnings, reset the clock on the build 2.4513 - machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory 2.4514 - containing the build output, and restart the build from the beginning. 2.4515 - </blockquote> 2.4516 - </li> 2.4517 - <li> 2.4518 - <b>Error message: <tt>Trouble writing out table to disk</tt></b> 2.4519 - <blockquote> 2.4520 - Increase the amount of swap space on your build machine. 2.4521 - </blockquote> 2.4522 - </li> 2.4523 - <li> 2.4524 - <b>Error Message: <tt>libstdc++ not found:</tt></b> 2.4525 - <blockquote> 2.4526 - This is caused by a missing libstdc++.a library. 2.4527 - This is installed as part of a specific package 2.4528 - (e.g. libstdc++.so.devel.386). 2.4529 - By default some 64-bit Linux versions (e.g. Fedora) 2.4530 - only install the 64-bit version of the libstdc++ package. 2.4531 - Various parts of the JDK build require a static 2.4532 - link of the C++ runtime libraries to allow for maximum 2.4533 - portability of the built images. 2.4534 - </blockquote> 2.4535 - </li> 2.4536 - <li> 2.4537 - <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b> 2.4538 - <blockquote> 2.4539 - This is probably an issue with SELinux (See 2.4540 - <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> 2.4541 - http://en.wikipedia.org/wiki/SELinux</a>). 2.4542 - Parts of the VM is built without the <tt>-fPIC</tt> for 2.4543 - performance reasons. 2.4544 - <p> 2.4545 - To completely disable SELinux: 2.4546 - <ol> 2.4547 - <li><tt>$ su root</tt></li> 2.4548 - <li><tt># system-config-securitylevel</tt></li> 2.4549 - <li><tt>In the window that appears, select the SELinux tab</tt></li> 2.4550 - <li><tt>Disable SELinux</tt></li> 2.4551 - </ol> 2.4552 - <p> 2.4553 - Alternatively, instead of completely disabling it you could 2.4554 - disable just this one check. 2.4555 - <ol> 2.4556 - <li>Select System->Administration->SELinux Management</li> 2.4557 - <li>In the SELinux Management Tool which appears, 2.4558 - select "Boolean" from the menu on the left</li> 2.4559 - <li>Expand the "Memory Protection" group</li> 2.4560 - <li>Check the first item, labeled 2.4561 - "Allow all unconfined executables to use libraries requiring text relocation ..."</li> 2.4562 - </ol> 2.4563 - </blockquote> 2.4564 - </li> 2.4565 - <li> 2.4566 - <b>Windows Error Messages:</b><br> 2.4567 - <tt>*** fatal error - couldn't allocate heap, ... </tt><br> 2.4568 - <tt>rm fails with "Directory not empty"</tt><br> 2.4569 - <tt>unzip fails with "cannot create ... Permission denied"</tt><br> 2.4570 - <tt>unzip fails with "cannot create ... Error 50"</tt><br> 2.4571 - <blockquote> 2.4572 - The CYGWIN software can conflict with other non-CYGWIN 2.4573 - software. See the CYGWIN FAQ section on 2.4574 - <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> 2.4575 - BLODA (applications that interfere with CYGWIN)</a>. 2.4576 - </blockquote> 2.4577 - </li> 2.4578 - <li> 2.4579 - <b>Windows Error Message: <tt>spawn failed</tt></b> 2.4580 - <blockquote> 2.4581 - Try rebooting the system, or there could be some kind of 2.4582 - issue with the disk or disk partition being used. 2.4583 - Sometimes it comes with a "Permission Denied" message. 2.4584 - </blockquote> 2.4585 - </li> 2.4586 - </ul> 2.4587 - </blockquote> 2.4588 - <!-- ------------------------------------------------------ --> 2.4589 - <hr> 2.4590 - <h2><a name="newbuild">The New Build</a></h2> 2.4591 - <blockquote> 2.4592 - The <a href="http://openjdk.java.net/projects/build-infra/"> 2.4593 - Build Infrastructure project</a> is working on a new 2.4594 - build. For information on how to try it out, please see the 2.4595 - <a href="http://openjdk.java.net/projects/build-infra/guide.html"> 2.4596 - Build Infra User Guide</a> 2.4597 - </blockquote> 2.4598 - <hr> 2.4599 + 2.4600 </body> 2.4601 </html>
3.1 --- a/common/autoconf/generated-configure.sh Thu Feb 28 10:41:46 2013 -0800 3.2 +++ b/common/autoconf/generated-configure.sh Thu Feb 28 20:29:19 2013 -0800 3.3 @@ -1,6 +1,6 @@ 3.4 #! /bin/sh 3.5 # Guess values for system-dependent variables and create Makefiles. 3.6 -# Generated by GNU Autoconf 2.68 for OpenJDK jdk8. 3.7 +# Generated by GNU Autoconf 2.67 for OpenJDK jdk8. 3.8 # 3.9 # Report bugs to <build-dev@openjdk.java.net>. 3.10 # 3.11 @@ -91,7 +91,6 @@ 3.12 IFS=" "" $as_nl" 3.13 3.14 # Find who we are. Look in the path if we contain no directory separator. 3.15 -as_myself= 3.16 case $0 in #(( 3.17 *[\\/]* ) as_myself=$0 ;; 3.18 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 3.19 @@ -217,18 +216,11 @@ 3.20 # We cannot yet assume a decent shell, so we have to provide a 3.21 # neutralization value for shells without unset; and this also 3.22 # works around shells that cannot unset nonexistent variables. 3.23 - # Preserve -v and -x to the replacement shell. 3.24 BASH_ENV=/dev/null 3.25 ENV=/dev/null 3.26 (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV 3.27 export CONFIG_SHELL 3.28 - case $- in # (((( 3.29 - *v*x* | *x*v* ) as_opts=-vx ;; 3.30 - *v* ) as_opts=-v ;; 3.31 - *x* ) as_opts=-x ;; 3.32 - * ) as_opts= ;; 3.33 - esac 3.34 - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} 3.35 + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} 3.36 fi 3.37 3.38 if test x$as_have_required = xno; then : 3.39 @@ -649,7 +641,7 @@ 3.40 CXXFLAGS_JDKLIB 3.41 CFLAGS_JDKEXE 3.42 CFLAGS_JDKLIB 3.43 -MACOSX_REQUIRED_VERSION 3.44 +MACOSX_VERSION_MIN 3.45 PACKAGE_PATH 3.46 LEGACY_EXTRA_LDFLAGS 3.47 LEGACY_EXTRA_CXXFLAGS 3.48 @@ -1442,7 +1434,7 @@ 3.49 $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 3.50 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && 3.51 $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 3.52 - : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" 3.53 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} 3.54 ;; 3.55 3.56 esac 3.57 @@ -1867,7 +1859,7 @@ 3.58 if $ac_init_version; then 3.59 cat <<\_ACEOF 3.60 OpenJDK configure jdk8 3.61 -generated by GNU Autoconf 2.68 3.62 +generated by GNU Autoconf 2.67 3.63 3.64 Copyright (C) 2010 Free Software Foundation, Inc. 3.65 This configure script is free software; the Free Software Foundation 3.66 @@ -1913,7 +1905,7 @@ 3.67 3.68 ac_retval=1 3.69 fi 3.70 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.71 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.72 as_fn_set_status $ac_retval 3.73 3.74 } # ac_fn_c_try_compile 3.75 @@ -1951,7 +1943,7 @@ 3.76 3.77 ac_retval=1 3.78 fi 3.79 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.80 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.81 as_fn_set_status $ac_retval 3.82 3.83 } # ac_fn_cxx_try_compile 3.84 @@ -1989,7 +1981,7 @@ 3.85 3.86 ac_retval=1 3.87 fi 3.88 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.89 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.90 as_fn_set_status $ac_retval 3.91 3.92 } # ac_fn_objc_try_compile 3.93 @@ -2026,7 +2018,7 @@ 3.94 3.95 ac_retval=1 3.96 fi 3.97 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.98 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.99 as_fn_set_status $ac_retval 3.100 3.101 } # ac_fn_c_try_cpp 3.102 @@ -2063,7 +2055,7 @@ 3.103 3.104 ac_retval=1 3.105 fi 3.106 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.107 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.108 as_fn_set_status $ac_retval 3.109 3.110 } # ac_fn_cxx_try_cpp 3.111 @@ -2076,10 +2068,10 @@ 3.112 ac_fn_cxx_check_header_mongrel () 3.113 { 3.114 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3.115 - if eval \${$3+:} false; then : 3.116 + if eval "test \"\${$3+set}\"" = set; then : 3.117 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3.118 $as_echo_n "checking for $2... " >&6; } 3.119 -if eval \${$3+:} false; then : 3.120 +if eval "test \"\${$3+set}\"" = set; then : 3.121 $as_echo_n "(cached) " >&6 3.122 fi 3.123 eval ac_res=\$$3 3.124 @@ -2146,7 +2138,7 @@ 3.125 esac 3.126 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3.127 $as_echo_n "checking for $2... " >&6; } 3.128 -if eval \${$3+:} false; then : 3.129 +if eval "test \"\${$3+set}\"" = set; then : 3.130 $as_echo_n "(cached) " >&6 3.131 else 3.132 eval "$3=\$ac_header_compiler" 3.133 @@ -2155,7 +2147,7 @@ 3.134 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 3.135 $as_echo "$ac_res" >&6; } 3.136 fi 3.137 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.138 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.139 3.140 } # ac_fn_cxx_check_header_mongrel 3.141 3.142 @@ -2196,7 +2188,7 @@ 3.143 ac_retval=$ac_status 3.144 fi 3.145 rm -rf conftest.dSYM conftest_ipa8_conftest.oo 3.146 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.147 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.148 as_fn_set_status $ac_retval 3.149 3.150 } # ac_fn_cxx_try_run 3.151 @@ -2210,7 +2202,7 @@ 3.152 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3.153 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3.154 $as_echo_n "checking for $2... " >&6; } 3.155 -if eval \${$3+:} false; then : 3.156 +if eval "test \"\${$3+set}\"" = set; then : 3.157 $as_echo_n "(cached) " >&6 3.158 else 3.159 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.160 @@ -2228,7 +2220,7 @@ 3.161 eval ac_res=\$$3 3.162 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 3.163 $as_echo "$ac_res" >&6; } 3.164 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.165 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.166 3.167 } # ac_fn_cxx_check_header_compile 3.168 3.169 @@ -2405,7 +2397,7 @@ 3.170 rm -f conftest.val 3.171 3.172 fi 3.173 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.174 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.175 as_fn_set_status $ac_retval 3.176 3.177 } # ac_fn_cxx_compute_int 3.178 @@ -2451,7 +2443,7 @@ 3.179 # interfere with the next link command; also delete a directory that is 3.180 # left behind by Apple's compiler. We do this before executing the actions. 3.181 rm -rf conftest.dSYM conftest_ipa8_conftest.oo 3.182 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.183 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.184 as_fn_set_status $ac_retval 3.185 3.186 } # ac_fn_cxx_try_link 3.187 @@ -2464,7 +2456,7 @@ 3.188 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3.189 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3.190 $as_echo_n "checking for $2... " >&6; } 3.191 -if eval \${$3+:} false; then : 3.192 +if eval "test \"\${$3+set}\"" = set; then : 3.193 $as_echo_n "(cached) " >&6 3.194 else 3.195 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.196 @@ -2519,7 +2511,7 @@ 3.197 eval ac_res=\$$3 3.198 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 3.199 $as_echo "$ac_res" >&6; } 3.200 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.201 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.202 3.203 } # ac_fn_cxx_check_func 3.204 3.205 @@ -2532,7 +2524,7 @@ 3.206 as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack 3.207 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 3.208 $as_echo_n "checking for $2... " >&6; } 3.209 -if eval \${$3+:} false; then : 3.210 +if eval "test \"\${$3+set}\"" = set; then : 3.211 $as_echo_n "(cached) " >&6 3.212 else 3.213 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.214 @@ -2550,7 +2542,7 @@ 3.215 eval ac_res=\$$3 3.216 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 3.217 $as_echo "$ac_res" >&6; } 3.218 - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno 3.219 + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} 3.220 3.221 } # ac_fn_c_check_header_compile 3.222 cat >config.log <<_ACEOF 3.223 @@ -2558,7 +2550,7 @@ 3.224 running configure, to aid debugging if configure makes a mistake. 3.225 3.226 It was created by OpenJDK $as_me jdk8, which was 3.227 -generated by GNU Autoconf 2.68. Invocation command line was 3.228 +generated by GNU Autoconf 2.67. Invocation command line was 3.229 3.230 $ $0 $@ 3.231 3.232 @@ -2816,7 +2808,7 @@ 3.233 || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.234 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.235 as_fn_error $? "failed to load site script $ac_site_file 3.236 -See \`config.log' for more details" "$LINENO" 5; } 3.237 +See \`config.log' for more details" "$LINENO" 5 ; } 3.238 fi 3.239 done 3.240 3.241 @@ -3732,7 +3724,7 @@ 3.242 #CUSTOM_AUTOCONF_INCLUDE 3.243 3.244 # Do not change or remove the following line, it is needed for consistency checks: 3.245 -DATE_WHEN_GENERATED=1361218904 3.246 +DATE_WHEN_GENERATED=1361452590 3.247 3.248 ############################################################################### 3.249 # 3.250 @@ -3770,7 +3762,7 @@ 3.251 set dummy $ac_prog; ac_word=$2 3.252 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.253 $as_echo_n "checking for $ac_word... " >&6; } 3.254 -if ${ac_cv_path_BASENAME+:} false; then : 3.255 +if test "${ac_cv_path_BASENAME+set}" = set; then : 3.256 $as_echo_n "(cached) " >&6 3.257 else 3.258 case $BASENAME in 3.259 @@ -3829,7 +3821,7 @@ 3.260 set dummy $ac_prog; ac_word=$2 3.261 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.262 $as_echo_n "checking for $ac_word... " >&6; } 3.263 -if ${ac_cv_path_BASH+:} false; then : 3.264 +if test "${ac_cv_path_BASH+set}" = set; then : 3.265 $as_echo_n "(cached) " >&6 3.266 else 3.267 case $BASH in 3.268 @@ -3888,7 +3880,7 @@ 3.269 set dummy $ac_prog; ac_word=$2 3.270 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.271 $as_echo_n "checking for $ac_word... " >&6; } 3.272 -if ${ac_cv_path_CAT+:} false; then : 3.273 +if test "${ac_cv_path_CAT+set}" = set; then : 3.274 $as_echo_n "(cached) " >&6 3.275 else 3.276 case $CAT in 3.277 @@ -3947,7 +3939,7 @@ 3.278 set dummy $ac_prog; ac_word=$2 3.279 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.280 $as_echo_n "checking for $ac_word... " >&6; } 3.281 -if ${ac_cv_path_CHMOD+:} false; then : 3.282 +if test "${ac_cv_path_CHMOD+set}" = set; then : 3.283 $as_echo_n "(cached) " >&6 3.284 else 3.285 case $CHMOD in 3.286 @@ -4006,7 +3998,7 @@ 3.287 set dummy $ac_prog; ac_word=$2 3.288 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.289 $as_echo_n "checking for $ac_word... " >&6; } 3.290 -if ${ac_cv_path_CMP+:} false; then : 3.291 +if test "${ac_cv_path_CMP+set}" = set; then : 3.292 $as_echo_n "(cached) " >&6 3.293 else 3.294 case $CMP in 3.295 @@ -4065,7 +4057,7 @@ 3.296 set dummy $ac_prog; ac_word=$2 3.297 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.298 $as_echo_n "checking for $ac_word... " >&6; } 3.299 -if ${ac_cv_path_COMM+:} false; then : 3.300 +if test "${ac_cv_path_COMM+set}" = set; then : 3.301 $as_echo_n "(cached) " >&6 3.302 else 3.303 case $COMM in 3.304 @@ -4124,7 +4116,7 @@ 3.305 set dummy $ac_prog; ac_word=$2 3.306 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.307 $as_echo_n "checking for $ac_word... " >&6; } 3.308 -if ${ac_cv_path_CP+:} false; then : 3.309 +if test "${ac_cv_path_CP+set}" = set; then : 3.310 $as_echo_n "(cached) " >&6 3.311 else 3.312 case $CP in 3.313 @@ -4183,7 +4175,7 @@ 3.314 set dummy $ac_prog; ac_word=$2 3.315 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.316 $as_echo_n "checking for $ac_word... " >&6; } 3.317 -if ${ac_cv_path_CPIO+:} false; then : 3.318 +if test "${ac_cv_path_CPIO+set}" = set; then : 3.319 $as_echo_n "(cached) " >&6 3.320 else 3.321 case $CPIO in 3.322 @@ -4242,7 +4234,7 @@ 3.323 set dummy $ac_prog; ac_word=$2 3.324 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.325 $as_echo_n "checking for $ac_word... " >&6; } 3.326 -if ${ac_cv_path_CUT+:} false; then : 3.327 +if test "${ac_cv_path_CUT+set}" = set; then : 3.328 $as_echo_n "(cached) " >&6 3.329 else 3.330 case $CUT in 3.331 @@ -4301,7 +4293,7 @@ 3.332 set dummy $ac_prog; ac_word=$2 3.333 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.334 $as_echo_n "checking for $ac_word... " >&6; } 3.335 -if ${ac_cv_path_DATE+:} false; then : 3.336 +if test "${ac_cv_path_DATE+set}" = set; then : 3.337 $as_echo_n "(cached) " >&6 3.338 else 3.339 case $DATE in 3.340 @@ -4360,7 +4352,7 @@ 3.341 set dummy $ac_prog; ac_word=$2 3.342 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.343 $as_echo_n "checking for $ac_word... " >&6; } 3.344 -if ${ac_cv_path_DIFF+:} false; then : 3.345 +if test "${ac_cv_path_DIFF+set}" = set; then : 3.346 $as_echo_n "(cached) " >&6 3.347 else 3.348 case $DIFF in 3.349 @@ -4419,7 +4411,7 @@ 3.350 set dummy $ac_prog; ac_word=$2 3.351 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.352 $as_echo_n "checking for $ac_word... " >&6; } 3.353 -if ${ac_cv_path_DIRNAME+:} false; then : 3.354 +if test "${ac_cv_path_DIRNAME+set}" = set; then : 3.355 $as_echo_n "(cached) " >&6 3.356 else 3.357 case $DIRNAME in 3.358 @@ -4478,7 +4470,7 @@ 3.359 set dummy $ac_prog; ac_word=$2 3.360 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.361 $as_echo_n "checking for $ac_word... " >&6; } 3.362 -if ${ac_cv_path_ECHO+:} false; then : 3.363 +if test "${ac_cv_path_ECHO+set}" = set; then : 3.364 $as_echo_n "(cached) " >&6 3.365 else 3.366 case $ECHO in 3.367 @@ -4537,7 +4529,7 @@ 3.368 set dummy $ac_prog; ac_word=$2 3.369 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.370 $as_echo_n "checking for $ac_word... " >&6; } 3.371 -if ${ac_cv_path_EXPR+:} false; then : 3.372 +if test "${ac_cv_path_EXPR+set}" = set; then : 3.373 $as_echo_n "(cached) " >&6 3.374 else 3.375 case $EXPR in 3.376 @@ -4596,7 +4588,7 @@ 3.377 set dummy $ac_prog; ac_word=$2 3.378 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.379 $as_echo_n "checking for $ac_word... " >&6; } 3.380 -if ${ac_cv_path_FILE+:} false; then : 3.381 +if test "${ac_cv_path_FILE+set}" = set; then : 3.382 $as_echo_n "(cached) " >&6 3.383 else 3.384 case $FILE in 3.385 @@ -4655,7 +4647,7 @@ 3.386 set dummy $ac_prog; ac_word=$2 3.387 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.388 $as_echo_n "checking for $ac_word... " >&6; } 3.389 -if ${ac_cv_path_FIND+:} false; then : 3.390 +if test "${ac_cv_path_FIND+set}" = set; then : 3.391 $as_echo_n "(cached) " >&6 3.392 else 3.393 case $FIND in 3.394 @@ -4714,7 +4706,7 @@ 3.395 set dummy $ac_prog; ac_word=$2 3.396 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.397 $as_echo_n "checking for $ac_word... " >&6; } 3.398 -if ${ac_cv_path_HEAD+:} false; then : 3.399 +if test "${ac_cv_path_HEAD+set}" = set; then : 3.400 $as_echo_n "(cached) " >&6 3.401 else 3.402 case $HEAD in 3.403 @@ -4773,7 +4765,7 @@ 3.404 set dummy $ac_prog; ac_word=$2 3.405 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.406 $as_echo_n "checking for $ac_word... " >&6; } 3.407 -if ${ac_cv_path_LN+:} false; then : 3.408 +if test "${ac_cv_path_LN+set}" = set; then : 3.409 $as_echo_n "(cached) " >&6 3.410 else 3.411 case $LN in 3.412 @@ -4832,7 +4824,7 @@ 3.413 set dummy $ac_prog; ac_word=$2 3.414 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.415 $as_echo_n "checking for $ac_word... " >&6; } 3.416 -if ${ac_cv_path_LS+:} false; then : 3.417 +if test "${ac_cv_path_LS+set}" = set; then : 3.418 $as_echo_n "(cached) " >&6 3.419 else 3.420 case $LS in 3.421 @@ -4891,7 +4883,7 @@ 3.422 set dummy $ac_prog; ac_word=$2 3.423 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.424 $as_echo_n "checking for $ac_word... " >&6; } 3.425 -if ${ac_cv_path_MKDIR+:} false; then : 3.426 +if test "${ac_cv_path_MKDIR+set}" = set; then : 3.427 $as_echo_n "(cached) " >&6 3.428 else 3.429 case $MKDIR in 3.430 @@ -4950,7 +4942,7 @@ 3.431 set dummy $ac_prog; ac_word=$2 3.432 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.433 $as_echo_n "checking for $ac_word... " >&6; } 3.434 -if ${ac_cv_path_MKTEMP+:} false; then : 3.435 +if test "${ac_cv_path_MKTEMP+set}" = set; then : 3.436 $as_echo_n "(cached) " >&6 3.437 else 3.438 case $MKTEMP in 3.439 @@ -5009,7 +5001,7 @@ 3.440 set dummy $ac_prog; ac_word=$2 3.441 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.442 $as_echo_n "checking for $ac_word... " >&6; } 3.443 -if ${ac_cv_path_MV+:} false; then : 3.444 +if test "${ac_cv_path_MV+set}" = set; then : 3.445 $as_echo_n "(cached) " >&6 3.446 else 3.447 case $MV in 3.448 @@ -5068,7 +5060,7 @@ 3.449 set dummy $ac_prog; ac_word=$2 3.450 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.451 $as_echo_n "checking for $ac_word... " >&6; } 3.452 -if ${ac_cv_path_PRINTF+:} false; then : 3.453 +if test "${ac_cv_path_PRINTF+set}" = set; then : 3.454 $as_echo_n "(cached) " >&6 3.455 else 3.456 case $PRINTF in 3.457 @@ -5127,7 +5119,7 @@ 3.458 set dummy $ac_prog; ac_word=$2 3.459 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.460 $as_echo_n "checking for $ac_word... " >&6; } 3.461 -if ${ac_cv_path_THEPWDCMD+:} false; then : 3.462 +if test "${ac_cv_path_THEPWDCMD+set}" = set; then : 3.463 $as_echo_n "(cached) " >&6 3.464 else 3.465 case $THEPWDCMD in 3.466 @@ -5186,7 +5178,7 @@ 3.467 set dummy $ac_prog; ac_word=$2 3.468 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.469 $as_echo_n "checking for $ac_word... " >&6; } 3.470 -if ${ac_cv_path_RM+:} false; then : 3.471 +if test "${ac_cv_path_RM+set}" = set; then : 3.472 $as_echo_n "(cached) " >&6 3.473 else 3.474 case $RM in 3.475 @@ -5245,7 +5237,7 @@ 3.476 set dummy $ac_prog; ac_word=$2 3.477 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.478 $as_echo_n "checking for $ac_word... " >&6; } 3.479 -if ${ac_cv_path_SH+:} false; then : 3.480 +if test "${ac_cv_path_SH+set}" = set; then : 3.481 $as_echo_n "(cached) " >&6 3.482 else 3.483 case $SH in 3.484 @@ -5304,7 +5296,7 @@ 3.485 set dummy $ac_prog; ac_word=$2 3.486 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.487 $as_echo_n "checking for $ac_word... " >&6; } 3.488 -if ${ac_cv_path_SORT+:} false; then : 3.489 +if test "${ac_cv_path_SORT+set}" = set; then : 3.490 $as_echo_n "(cached) " >&6 3.491 else 3.492 case $SORT in 3.493 @@ -5363,7 +5355,7 @@ 3.494 set dummy $ac_prog; ac_word=$2 3.495 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.496 $as_echo_n "checking for $ac_word... " >&6; } 3.497 -if ${ac_cv_path_TAIL+:} false; then : 3.498 +if test "${ac_cv_path_TAIL+set}" = set; then : 3.499 $as_echo_n "(cached) " >&6 3.500 else 3.501 case $TAIL in 3.502 @@ -5422,7 +5414,7 @@ 3.503 set dummy $ac_prog; ac_word=$2 3.504 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.505 $as_echo_n "checking for $ac_word... " >&6; } 3.506 -if ${ac_cv_path_TAR+:} false; then : 3.507 +if test "${ac_cv_path_TAR+set}" = set; then : 3.508 $as_echo_n "(cached) " >&6 3.509 else 3.510 case $TAR in 3.511 @@ -5481,7 +5473,7 @@ 3.512 set dummy $ac_prog; ac_word=$2 3.513 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.514 $as_echo_n "checking for $ac_word... " >&6; } 3.515 -if ${ac_cv_path_TEE+:} false; then : 3.516 +if test "${ac_cv_path_TEE+set}" = set; then : 3.517 $as_echo_n "(cached) " >&6 3.518 else 3.519 case $TEE in 3.520 @@ -5540,7 +5532,7 @@ 3.521 set dummy $ac_prog; ac_word=$2 3.522 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.523 $as_echo_n "checking for $ac_word... " >&6; } 3.524 -if ${ac_cv_path_TOUCH+:} false; then : 3.525 +if test "${ac_cv_path_TOUCH+set}" = set; then : 3.526 $as_echo_n "(cached) " >&6 3.527 else 3.528 case $TOUCH in 3.529 @@ -5599,7 +5591,7 @@ 3.530 set dummy $ac_prog; ac_word=$2 3.531 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.532 $as_echo_n "checking for $ac_word... " >&6; } 3.533 -if ${ac_cv_path_TR+:} false; then : 3.534 +if test "${ac_cv_path_TR+set}" = set; then : 3.535 $as_echo_n "(cached) " >&6 3.536 else 3.537 case $TR in 3.538 @@ -5658,7 +5650,7 @@ 3.539 set dummy $ac_prog; ac_word=$2 3.540 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.541 $as_echo_n "checking for $ac_word... " >&6; } 3.542 -if ${ac_cv_path_UNAME+:} false; then : 3.543 +if test "${ac_cv_path_UNAME+set}" = set; then : 3.544 $as_echo_n "(cached) " >&6 3.545 else 3.546 case $UNAME in 3.547 @@ -5717,7 +5709,7 @@ 3.548 set dummy $ac_prog; ac_word=$2 3.549 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.550 $as_echo_n "checking for $ac_word... " >&6; } 3.551 -if ${ac_cv_path_UNIQ+:} false; then : 3.552 +if test "${ac_cv_path_UNIQ+set}" = set; then : 3.553 $as_echo_n "(cached) " >&6 3.554 else 3.555 case $UNIQ in 3.556 @@ -5776,7 +5768,7 @@ 3.557 set dummy $ac_prog; ac_word=$2 3.558 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.559 $as_echo_n "checking for $ac_word... " >&6; } 3.560 -if ${ac_cv_path_WC+:} false; then : 3.561 +if test "${ac_cv_path_WC+set}" = set; then : 3.562 $as_echo_n "(cached) " >&6 3.563 else 3.564 case $WC in 3.565 @@ -5835,7 +5827,7 @@ 3.566 set dummy $ac_prog; ac_word=$2 3.567 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.568 $as_echo_n "checking for $ac_word... " >&6; } 3.569 -if ${ac_cv_path_WHICH+:} false; then : 3.570 +if test "${ac_cv_path_WHICH+set}" = set; then : 3.571 $as_echo_n "(cached) " >&6 3.572 else 3.573 case $WHICH in 3.574 @@ -5894,7 +5886,7 @@ 3.575 set dummy $ac_prog; ac_word=$2 3.576 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.577 $as_echo_n "checking for $ac_word... " >&6; } 3.578 -if ${ac_cv_path_XARGS+:} false; then : 3.579 +if test "${ac_cv_path_XARGS+set}" = set; then : 3.580 $as_echo_n "(cached) " >&6 3.581 else 3.582 case $XARGS in 3.583 @@ -5954,7 +5946,7 @@ 3.584 set dummy $ac_prog; ac_word=$2 3.585 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.586 $as_echo_n "checking for $ac_word... " >&6; } 3.587 -if ${ac_cv_prog_AWK+:} false; then : 3.588 +if test "${ac_cv_prog_AWK+set}" = set; then : 3.589 $as_echo_n "(cached) " >&6 3.590 else 3.591 if test -n "$AWK"; then 3.592 @@ -6004,7 +5996,7 @@ 3.593 3.594 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 3.595 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } 3.596 -if ${ac_cv_path_GREP+:} false; then : 3.597 +if test "${ac_cv_path_GREP+set}" = set; then : 3.598 $as_echo_n "(cached) " >&6 3.599 else 3.600 if test -z "$GREP"; then 3.601 @@ -6079,7 +6071,7 @@ 3.602 3.603 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 3.604 $as_echo_n "checking for egrep... " >&6; } 3.605 -if ${ac_cv_path_EGREP+:} false; then : 3.606 +if test "${ac_cv_path_EGREP+set}" = set; then : 3.607 $as_echo_n "(cached) " >&6 3.608 else 3.609 if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 3.610 @@ -6158,7 +6150,7 @@ 3.611 3.612 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 3.613 $as_echo_n "checking for fgrep... " >&6; } 3.614 -if ${ac_cv_path_FGREP+:} false; then : 3.615 +if test "${ac_cv_path_FGREP+set}" = set; then : 3.616 $as_echo_n "(cached) " >&6 3.617 else 3.618 if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 3.619 @@ -6237,7 +6229,7 @@ 3.620 3.621 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 3.622 $as_echo_n "checking for a sed that does not truncate output... " >&6; } 3.623 -if ${ac_cv_path_SED+:} false; then : 3.624 +if test "${ac_cv_path_SED+set}" = set; then : 3.625 $as_echo_n "(cached) " >&6 3.626 else 3.627 ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ 3.628 @@ -6323,7 +6315,7 @@ 3.629 set dummy $ac_prog; ac_word=$2 3.630 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.631 $as_echo_n "checking for $ac_word... " >&6; } 3.632 -if ${ac_cv_path_NAWK+:} false; then : 3.633 +if test "${ac_cv_path_NAWK+set}" = set; then : 3.634 $as_echo_n "(cached) " >&6 3.635 else 3.636 case $NAWK in 3.637 @@ -6383,7 +6375,7 @@ 3.638 set dummy cygpath; ac_word=$2 3.639 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.640 $as_echo_n "checking for $ac_word... " >&6; } 3.641 -if ${ac_cv_path_CYGPATH+:} false; then : 3.642 +if test "${ac_cv_path_CYGPATH+set}" = set; then : 3.643 $as_echo_n "(cached) " >&6 3.644 else 3.645 case $CYGPATH in 3.646 @@ -6423,7 +6415,7 @@ 3.647 set dummy readlink; ac_word=$2 3.648 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.649 $as_echo_n "checking for $ac_word... " >&6; } 3.650 -if ${ac_cv_path_READLINK+:} false; then : 3.651 +if test "${ac_cv_path_READLINK+set}" = set; then : 3.652 $as_echo_n "(cached) " >&6 3.653 else 3.654 case $READLINK in 3.655 @@ -6463,7 +6455,7 @@ 3.656 set dummy df; ac_word=$2 3.657 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.658 $as_echo_n "checking for $ac_word... " >&6; } 3.659 -if ${ac_cv_path_DF+:} false; then : 3.660 +if test "${ac_cv_path_DF+set}" = set; then : 3.661 $as_echo_n "(cached) " >&6 3.662 else 3.663 case $DF in 3.664 @@ -6503,7 +6495,7 @@ 3.665 set dummy SetFile; ac_word=$2 3.666 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.667 $as_echo_n "checking for $ac_word... " >&6; } 3.668 -if ${ac_cv_path_SETFILE+:} false; then : 3.669 +if test "${ac_cv_path_SETFILE+set}" = set; then : 3.670 $as_echo_n "(cached) " >&6 3.671 else 3.672 case $SETFILE in 3.673 @@ -6549,7 +6541,7 @@ 3.674 3.675 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 3.676 $as_echo_n "checking build system type... " >&6; } 3.677 -if ${ac_cv_build+:} false; then : 3.678 +if test "${ac_cv_build+set}" = set; then : 3.679 $as_echo_n "(cached) " >&6 3.680 else 3.681 ac_build_alias=$build_alias 3.682 @@ -6565,7 +6557,7 @@ 3.683 $as_echo "$ac_cv_build" >&6; } 3.684 case $ac_cv_build in 3.685 *-*-*) ;; 3.686 -*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; 3.687 +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; 3.688 esac 3.689 build=$ac_cv_build 3.690 ac_save_IFS=$IFS; IFS='-' 3.691 @@ -6583,7 +6575,7 @@ 3.692 3.693 { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 3.694 $as_echo_n "checking host system type... " >&6; } 3.695 -if ${ac_cv_host+:} false; then : 3.696 +if test "${ac_cv_host+set}" = set; then : 3.697 $as_echo_n "(cached) " >&6 3.698 else 3.699 if test "x$host_alias" = x; then 3.700 @@ -6598,7 +6590,7 @@ 3.701 $as_echo "$ac_cv_host" >&6; } 3.702 case $ac_cv_host in 3.703 *-*-*) ;; 3.704 -*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; 3.705 +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; 3.706 esac 3.707 host=$ac_cv_host 3.708 ac_save_IFS=$IFS; IFS='-' 3.709 @@ -6616,7 +6608,7 @@ 3.710 3.711 { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 3.712 $as_echo_n "checking target system type... " >&6; } 3.713 -if ${ac_cv_target+:} false; then : 3.714 +if test "${ac_cv_target+set}" = set; then : 3.715 $as_echo_n "(cached) " >&6 3.716 else 3.717 if test "x$target_alias" = x; then 3.718 @@ -6631,7 +6623,7 @@ 3.719 $as_echo "$ac_cv_target" >&6; } 3.720 case $ac_cv_target in 3.721 *-*-*) ;; 3.722 -*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; 3.723 +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5 ;; 3.724 esac 3.725 target=$ac_cv_target 3.726 ac_save_IFS=$IFS; IFS='-' 3.727 @@ -8097,7 +8089,7 @@ 3.728 set dummy $ac_prog; ac_word=$2 3.729 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.730 $as_echo_n "checking for $ac_word... " >&6; } 3.731 -if ${ac_cv_prog_PKGHANDLER+:} false; then : 3.732 +if test "${ac_cv_prog_PKGHANDLER+set}" = set; then : 3.733 $as_echo_n "(cached) " >&6 3.734 else 3.735 if test -n "$PKGHANDLER"; then 3.736 @@ -8462,7 +8454,7 @@ 3.737 set dummy $ac_prog; ac_word=$2 3.738 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.739 $as_echo_n "checking for $ac_word... " >&6; } 3.740 -if ${ac_cv_path_CHECK_GMAKE+:} false; then : 3.741 +if test "${ac_cv_path_CHECK_GMAKE+set}" = set; then : 3.742 $as_echo_n "(cached) " >&6 3.743 else 3.744 case $CHECK_GMAKE in 3.745 @@ -8816,7 +8808,7 @@ 3.746 set dummy $ac_prog; ac_word=$2 3.747 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.748 $as_echo_n "checking for $ac_word... " >&6; } 3.749 -if ${ac_cv_path_CHECK_MAKE+:} false; then : 3.750 +if test "${ac_cv_path_CHECK_MAKE+set}" = set; then : 3.751 $as_echo_n "(cached) " >&6 3.752 else 3.753 case $CHECK_MAKE in 3.754 @@ -9175,7 +9167,7 @@ 3.755 set dummy $ac_prog; ac_word=$2 3.756 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.757 $as_echo_n "checking for $ac_word... " >&6; } 3.758 -if ${ac_cv_path_CHECK_TOOLSDIR_GMAKE+:} false; then : 3.759 +if test "${ac_cv_path_CHECK_TOOLSDIR_GMAKE+set}" = set; then : 3.760 $as_echo_n "(cached) " >&6 3.761 else 3.762 case $CHECK_TOOLSDIR_GMAKE in 3.763 @@ -9528,7 +9520,7 @@ 3.764 set dummy $ac_prog; ac_word=$2 3.765 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.766 $as_echo_n "checking for $ac_word... " >&6; } 3.767 -if ${ac_cv_path_CHECK_TOOLSDIR_MAKE+:} false; then : 3.768 +if test "${ac_cv_path_CHECK_TOOLSDIR_MAKE+set}" = set; then : 3.769 $as_echo_n "(cached) " >&6 3.770 else 3.771 case $CHECK_TOOLSDIR_MAKE in 3.772 @@ -9924,7 +9916,7 @@ 3.773 set dummy $ac_prog; ac_word=$2 3.774 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.775 $as_echo_n "checking for $ac_word... " >&6; } 3.776 -if ${ac_cv_path_UNZIP+:} false; then : 3.777 +if test "${ac_cv_path_UNZIP+set}" = set; then : 3.778 $as_echo_n "(cached) " >&6 3.779 else 3.780 case $UNZIP in 3.781 @@ -9983,7 +9975,7 @@ 3.782 set dummy $ac_prog; ac_word=$2 3.783 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.784 $as_echo_n "checking for $ac_word... " >&6; } 3.785 -if ${ac_cv_path_ZIP+:} false; then : 3.786 +if test "${ac_cv_path_ZIP+set}" = set; then : 3.787 $as_echo_n "(cached) " >&6 3.788 else 3.789 case $ZIP in 3.790 @@ -10042,7 +10034,7 @@ 3.791 set dummy ldd; ac_word=$2 3.792 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.793 $as_echo_n "checking for $ac_word... " >&6; } 3.794 -if ${ac_cv_path_LDD+:} false; then : 3.795 +if test "${ac_cv_path_LDD+set}" = set; then : 3.796 $as_echo_n "(cached) " >&6 3.797 else 3.798 case $LDD in 3.799 @@ -10088,7 +10080,7 @@ 3.800 set dummy otool; ac_word=$2 3.801 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.802 $as_echo_n "checking for $ac_word... " >&6; } 3.803 -if ${ac_cv_path_OTOOL+:} false; then : 3.804 +if test "${ac_cv_path_OTOOL+set}" = set; then : 3.805 $as_echo_n "(cached) " >&6 3.806 else 3.807 case $OTOOL in 3.808 @@ -10133,7 +10125,7 @@ 3.809 set dummy $ac_prog; ac_word=$2 3.810 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.811 $as_echo_n "checking for $ac_word... " >&6; } 3.812 -if ${ac_cv_path_READELF+:} false; then : 3.813 +if test "${ac_cv_path_READELF+set}" = set; then : 3.814 $as_echo_n "(cached) " >&6 3.815 else 3.816 case $READELF in 3.817 @@ -10176,7 +10168,7 @@ 3.818 set dummy hg; ac_word=$2 3.819 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.820 $as_echo_n "checking for $ac_word... " >&6; } 3.821 -if ${ac_cv_path_HG+:} false; then : 3.822 +if test "${ac_cv_path_HG+set}" = set; then : 3.823 $as_echo_n "(cached) " >&6 3.824 else 3.825 case $HG in 3.826 @@ -10216,7 +10208,7 @@ 3.827 set dummy stat; ac_word=$2 3.828 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.829 $as_echo_n "checking for $ac_word... " >&6; } 3.830 -if ${ac_cv_path_STAT+:} false; then : 3.831 +if test "${ac_cv_path_STAT+set}" = set; then : 3.832 $as_echo_n "(cached) " >&6 3.833 else 3.834 case $STAT in 3.835 @@ -10256,7 +10248,7 @@ 3.836 set dummy time; ac_word=$2 3.837 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.838 $as_echo_n "checking for $ac_word... " >&6; } 3.839 -if ${ac_cv_path_TIME+:} false; then : 3.840 +if test "${ac_cv_path_TIME+set}" = set; then : 3.841 $as_echo_n "(cached) " >&6 3.842 else 3.843 case $TIME in 3.844 @@ -10301,7 +10293,7 @@ 3.845 set dummy $ac_prog; ac_word=$2 3.846 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.847 $as_echo_n "checking for $ac_word... " >&6; } 3.848 -if ${ac_cv_path_COMM+:} false; then : 3.849 +if test "${ac_cv_path_COMM+set}" = set; then : 3.850 $as_echo_n "(cached) " >&6 3.851 else 3.852 case $COMM in 3.853 @@ -10365,7 +10357,7 @@ 3.854 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 3.855 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.856 $as_echo_n "checking for $ac_word... " >&6; } 3.857 -if ${ac_cv_path_PKG_CONFIG+:} false; then : 3.858 +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : 3.859 $as_echo_n "(cached) " >&6 3.860 else 3.861 case $PKG_CONFIG in 3.862 @@ -10408,7 +10400,7 @@ 3.863 set dummy pkg-config; ac_word=$2 3.864 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.865 $as_echo_n "checking for $ac_word... " >&6; } 3.866 -if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : 3.867 +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : 3.868 $as_echo_n "(cached) " >&6 3.869 else 3.870 case $ac_pt_PKG_CONFIG in 3.871 @@ -10581,7 +10573,7 @@ 3.872 set dummy $ac_prog; ac_word=$2 3.873 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.874 $as_echo_n "checking for $ac_word... " >&6; } 3.875 -if ${ac_cv_prog_BDEPS_UNZIP+:} false; then : 3.876 +if test "${ac_cv_prog_BDEPS_UNZIP+set}" = set; then : 3.877 $as_echo_n "(cached) " >&6 3.878 else 3.879 if test -n "$BDEPS_UNZIP"; then 3.880 @@ -10627,7 +10619,7 @@ 3.881 set dummy $ac_prog; ac_word=$2 3.882 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.883 $as_echo_n "checking for $ac_word... " >&6; } 3.884 -if ${ac_cv_prog_BDEPS_FTP+:} false; then : 3.885 +if test "${ac_cv_prog_BDEPS_FTP+set}" = set; then : 3.886 $as_echo_n "(cached) " >&6 3.887 else 3.888 if test -n "$BDEPS_FTP"; then 3.889 @@ -11894,7 +11886,7 @@ 3.890 set dummy javac; ac_word=$2 3.891 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.892 $as_echo_n "checking for $ac_word... " >&6; } 3.893 -if ${ac_cv_path_JAVAC_CHECK+:} false; then : 3.894 +if test "${ac_cv_path_JAVAC_CHECK+set}" = set; then : 3.895 $as_echo_n "(cached) " >&6 3.896 else 3.897 case $JAVAC_CHECK in 3.898 @@ -11934,7 +11926,7 @@ 3.899 set dummy java; ac_word=$2 3.900 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.901 $as_echo_n "checking for $ac_word... " >&6; } 3.902 -if ${ac_cv_path_JAVA_CHECK+:} false; then : 3.903 +if test "${ac_cv_path_JAVA_CHECK+set}" = set; then : 3.904 $as_echo_n "(cached) " >&6 3.905 else 3.906 case $JAVA_CHECK in 3.907 @@ -15993,7 +15985,7 @@ 3.908 set dummy link; ac_word=$2 3.909 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.910 $as_echo_n "checking for $ac_word... " >&6; } 3.911 -if ${ac_cv_path_CYGWIN_LINK+:} false; then : 3.912 +if test "${ac_cv_path_CYGWIN_LINK+set}" = set; then : 3.913 $as_echo_n "(cached) " >&6 3.914 else 3.915 case $CYGWIN_LINK in 3.916 @@ -16982,7 +16974,7 @@ 3.917 set dummy $ac_prog; ac_word=$2 3.918 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.919 $as_echo_n "checking for $ac_word... " >&6; } 3.920 -if ${ac_cv_path_BUILD_CC+:} false; then : 3.921 +if test "${ac_cv_path_BUILD_CC+set}" = set; then : 3.922 $as_echo_n "(cached) " >&6 3.923 else 3.924 case $BUILD_CC in 3.925 @@ -17293,7 +17285,7 @@ 3.926 set dummy $ac_prog; ac_word=$2 3.927 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.928 $as_echo_n "checking for $ac_word... " >&6; } 3.929 -if ${ac_cv_path_BUILD_CXX+:} false; then : 3.930 +if test "${ac_cv_path_BUILD_CXX+set}" = set; then : 3.931 $as_echo_n "(cached) " >&6 3.932 else 3.933 case $BUILD_CXX in 3.934 @@ -17602,7 +17594,7 @@ 3.935 set dummy ld; ac_word=$2 3.936 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.937 $as_echo_n "checking for $ac_word... " >&6; } 3.938 -if ${ac_cv_path_BUILD_LD+:} false; then : 3.939 +if test "${ac_cv_path_BUILD_LD+set}" = set; then : 3.940 $as_echo_n "(cached) " >&6 3.941 else 3.942 case $BUILD_LD in 3.943 @@ -18114,7 +18106,7 @@ 3.944 set dummy $ac_prog; ac_word=$2 3.945 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.946 $as_echo_n "checking for $ac_word... " >&6; } 3.947 -if ${ac_cv_path_TOOLS_DIR_CC+:} false; then : 3.948 +if test "${ac_cv_path_TOOLS_DIR_CC+set}" = set; then : 3.949 $as_echo_n "(cached) " >&6 3.950 else 3.951 case $TOOLS_DIR_CC in 3.952 @@ -18166,7 +18158,7 @@ 3.953 set dummy $ac_prog; ac_word=$2 3.954 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.955 $as_echo_n "checking for $ac_word... " >&6; } 3.956 -if ${ac_cv_path_POTENTIAL_CC+:} false; then : 3.957 +if test "${ac_cv_path_POTENTIAL_CC+set}" = set; then : 3.958 $as_echo_n "(cached) " >&6 3.959 else 3.960 case $POTENTIAL_CC in 3.961 @@ -18579,7 +18571,7 @@ 3.962 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 3.963 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.964 $as_echo_n "checking for $ac_word... " >&6; } 3.965 -if ${ac_cv_prog_PROPER_COMPILER_CC+:} false; then : 3.966 +if test "${ac_cv_prog_PROPER_COMPILER_CC+set}" = set; then : 3.967 $as_echo_n "(cached) " >&6 3.968 else 3.969 if test -n "$PROPER_COMPILER_CC"; then 3.970 @@ -18623,7 +18615,7 @@ 3.971 set dummy $ac_prog; ac_word=$2 3.972 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.973 $as_echo_n "checking for $ac_word... " >&6; } 3.974 -if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+:} false; then : 3.975 +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CC+set}" = set; then : 3.976 $as_echo_n "(cached) " >&6 3.977 else 3.978 if test -n "$ac_ct_PROPER_COMPILER_CC"; then 3.979 @@ -19073,7 +19065,7 @@ 3.980 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 3.981 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.982 $as_echo_n "checking for $ac_word... " >&6; } 3.983 -if ${ac_cv_prog_CC+:} false; then : 3.984 +if test "${ac_cv_prog_CC+set}" = set; then : 3.985 $as_echo_n "(cached) " >&6 3.986 else 3.987 if test -n "$CC"; then 3.988 @@ -19117,7 +19109,7 @@ 3.989 set dummy $ac_prog; ac_word=$2 3.990 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.991 $as_echo_n "checking for $ac_word... " >&6; } 3.992 -if ${ac_cv_prog_ac_ct_CC+:} false; then : 3.993 +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : 3.994 $as_echo_n "(cached) " >&6 3.995 else 3.996 if test -n "$ac_ct_CC"; then 3.997 @@ -19170,7 +19162,7 @@ 3.998 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.999 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1000 as_fn_error $? "no acceptable C compiler found in \$PATH 3.1001 -See \`config.log' for more details" "$LINENO" 5; } 3.1002 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1003 3.1004 # Provide some information about the compiler. 3.1005 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 3.1006 @@ -19285,7 +19277,7 @@ 3.1007 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.1008 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1009 as_fn_error 77 "C compiler cannot create executables 3.1010 -See \`config.log' for more details" "$LINENO" 5; } 3.1011 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1012 else 3.1013 { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 3.1014 $as_echo "yes" >&6; } 3.1015 @@ -19328,7 +19320,7 @@ 3.1016 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.1017 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1018 as_fn_error $? "cannot compute suffix of executables: cannot compile and link 3.1019 -See \`config.log' for more details" "$LINENO" 5; } 3.1020 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1021 fi 3.1022 rm -f conftest conftest$ac_cv_exeext 3.1023 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 3.1024 @@ -19387,7 +19379,7 @@ 3.1025 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1026 as_fn_error $? "cannot run C compiled programs. 3.1027 If you meant to cross compile, use \`--host'. 3.1028 -See \`config.log' for more details" "$LINENO" 5; } 3.1029 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1030 fi 3.1031 fi 3.1032 fi 3.1033 @@ -19398,7 +19390,7 @@ 3.1034 ac_clean_files=$ac_clean_files_save 3.1035 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 3.1036 $as_echo_n "checking for suffix of object files... " >&6; } 3.1037 -if ${ac_cv_objext+:} false; then : 3.1038 +if test "${ac_cv_objext+set}" = set; then : 3.1039 $as_echo_n "(cached) " >&6 3.1040 else 3.1041 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.1042 @@ -19439,7 +19431,7 @@ 3.1043 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.1044 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1045 as_fn_error $? "cannot compute suffix of object files: cannot compile 3.1046 -See \`config.log' for more details" "$LINENO" 5; } 3.1047 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1048 fi 3.1049 rm -f conftest.$ac_cv_objext conftest.$ac_ext 3.1050 fi 3.1051 @@ -19449,7 +19441,7 @@ 3.1052 ac_objext=$OBJEXT 3.1053 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 3.1054 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } 3.1055 -if ${ac_cv_c_compiler_gnu+:} false; then : 3.1056 +if test "${ac_cv_c_compiler_gnu+set}" = set; then : 3.1057 $as_echo_n "(cached) " >&6 3.1058 else 3.1059 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.1060 @@ -19486,7 +19478,7 @@ 3.1061 ac_save_CFLAGS=$CFLAGS 3.1062 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 3.1063 $as_echo_n "checking whether $CC accepts -g... " >&6; } 3.1064 -if ${ac_cv_prog_cc_g+:} false; then : 3.1065 +if test "${ac_cv_prog_cc_g+set}" = set; then : 3.1066 $as_echo_n "(cached) " >&6 3.1067 else 3.1068 ac_save_c_werror_flag=$ac_c_werror_flag 3.1069 @@ -19564,7 +19556,7 @@ 3.1070 fi 3.1071 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 3.1072 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } 3.1073 -if ${ac_cv_prog_cc_c89+:} false; then : 3.1074 +if test "${ac_cv_prog_cc_c89+set}" = set; then : 3.1075 $as_echo_n "(cached) " >&6 3.1076 else 3.1077 ac_cv_prog_cc_c89=no 3.1078 @@ -19683,7 +19675,7 @@ 3.1079 set dummy $ac_prog; ac_word=$2 3.1080 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1081 $as_echo_n "checking for $ac_word... " >&6; } 3.1082 -if ${ac_cv_path_TOOLS_DIR_CXX+:} false; then : 3.1083 +if test "${ac_cv_path_TOOLS_DIR_CXX+set}" = set; then : 3.1084 $as_echo_n "(cached) " >&6 3.1085 else 3.1086 case $TOOLS_DIR_CXX in 3.1087 @@ -19735,7 +19727,7 @@ 3.1088 set dummy $ac_prog; ac_word=$2 3.1089 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1090 $as_echo_n "checking for $ac_word... " >&6; } 3.1091 -if ${ac_cv_path_POTENTIAL_CXX+:} false; then : 3.1092 +if test "${ac_cv_path_POTENTIAL_CXX+set}" = set; then : 3.1093 $as_echo_n "(cached) " >&6 3.1094 else 3.1095 case $POTENTIAL_CXX in 3.1096 @@ -20148,7 +20140,7 @@ 3.1097 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 3.1098 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1099 $as_echo_n "checking for $ac_word... " >&6; } 3.1100 -if ${ac_cv_prog_PROPER_COMPILER_CXX+:} false; then : 3.1101 +if test "${ac_cv_prog_PROPER_COMPILER_CXX+set}" = set; then : 3.1102 $as_echo_n "(cached) " >&6 3.1103 else 3.1104 if test -n "$PROPER_COMPILER_CXX"; then 3.1105 @@ -20192,7 +20184,7 @@ 3.1106 set dummy $ac_prog; ac_word=$2 3.1107 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1108 $as_echo_n "checking for $ac_word... " >&6; } 3.1109 -if ${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+:} false; then : 3.1110 +if test "${ac_cv_prog_ac_ct_PROPER_COMPILER_CXX+set}" = set; then : 3.1111 $as_echo_n "(cached) " >&6 3.1112 else 3.1113 if test -n "$ac_ct_PROPER_COMPILER_CXX"; then 3.1114 @@ -20646,7 +20638,7 @@ 3.1115 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 3.1116 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1117 $as_echo_n "checking for $ac_word... " >&6; } 3.1118 -if ${ac_cv_prog_CXX+:} false; then : 3.1119 +if test "${ac_cv_prog_CXX+set}" = set; then : 3.1120 $as_echo_n "(cached) " >&6 3.1121 else 3.1122 if test -n "$CXX"; then 3.1123 @@ -20690,7 +20682,7 @@ 3.1124 set dummy $ac_prog; ac_word=$2 3.1125 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1126 $as_echo_n "checking for $ac_word... " >&6; } 3.1127 -if ${ac_cv_prog_ac_ct_CXX+:} false; then : 3.1128 +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : 3.1129 $as_echo_n "(cached) " >&6 3.1130 else 3.1131 if test -n "$ac_ct_CXX"; then 3.1132 @@ -20768,7 +20760,7 @@ 3.1133 3.1134 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 3.1135 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } 3.1136 -if ${ac_cv_cxx_compiler_gnu+:} false; then : 3.1137 +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : 3.1138 $as_echo_n "(cached) " >&6 3.1139 else 3.1140 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.1141 @@ -20805,7 +20797,7 @@ 3.1142 ac_save_CXXFLAGS=$CXXFLAGS 3.1143 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 3.1144 $as_echo_n "checking whether $CXX accepts -g... " >&6; } 3.1145 -if ${ac_cv_prog_cxx_g+:} false; then : 3.1146 +if test "${ac_cv_prog_cxx_g+set}" = set; then : 3.1147 $as_echo_n "(cached) " >&6 3.1148 else 3.1149 ac_save_cxx_werror_flag=$ac_cxx_werror_flag 3.1150 @@ -20903,7 +20895,7 @@ 3.1151 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 3.1152 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1153 $as_echo_n "checking for $ac_word... " >&6; } 3.1154 -if ${ac_cv_prog_OBJC+:} false; then : 3.1155 +if test "${ac_cv_prog_OBJC+set}" = set; then : 3.1156 $as_echo_n "(cached) " >&6 3.1157 else 3.1158 if test -n "$OBJC"; then 3.1159 @@ -20947,7 +20939,7 @@ 3.1160 set dummy $ac_prog; ac_word=$2 3.1161 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1162 $as_echo_n "checking for $ac_word... " >&6; } 3.1163 -if ${ac_cv_prog_ac_ct_OBJC+:} false; then : 3.1164 +if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then : 3.1165 $as_echo_n "(cached) " >&6 3.1166 else 3.1167 if test -n "$ac_ct_OBJC"; then 3.1168 @@ -21023,7 +21015,7 @@ 3.1169 3.1170 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU Objective C compiler" >&5 3.1171 $as_echo_n "checking whether we are using the GNU Objective C compiler... " >&6; } 3.1172 -if ${ac_cv_objc_compiler_gnu+:} false; then : 3.1173 +if test "${ac_cv_objc_compiler_gnu+set}" = set; then : 3.1174 $as_echo_n "(cached) " >&6 3.1175 else 3.1176 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.1177 @@ -21060,7 +21052,7 @@ 3.1178 ac_save_OBJCFLAGS=$OBJCFLAGS 3.1179 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $OBJC accepts -g" >&5 3.1180 $as_echo_n "checking whether $OBJC accepts -g... " >&6; } 3.1181 -if ${ac_cv_prog_objc_g+:} false; then : 3.1182 +if test "${ac_cv_prog_objc_g+set}" = set; then : 3.1183 $as_echo_n "(cached) " >&6 3.1184 else 3.1185 ac_save_objc_werror_flag=$ac_objc_werror_flag 3.1186 @@ -21436,7 +21428,7 @@ 3.1187 set dummy ${ac_tool_prefix}ar; ac_word=$2 3.1188 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1189 $as_echo_n "checking for $ac_word... " >&6; } 3.1190 -if ${ac_cv_prog_AR+:} false; then : 3.1191 +if test "${ac_cv_prog_AR+set}" = set; then : 3.1192 $as_echo_n "(cached) " >&6 3.1193 else 3.1194 if test -n "$AR"; then 3.1195 @@ -21476,7 +21468,7 @@ 3.1196 set dummy ar; ac_word=$2 3.1197 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1198 $as_echo_n "checking for $ac_word... " >&6; } 3.1199 -if ${ac_cv_prog_ac_ct_AR+:} false; then : 3.1200 +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : 3.1201 $as_echo_n "(cached) " >&6 3.1202 else 3.1203 if test -n "$ac_ct_AR"; then 3.1204 @@ -21818,7 +21810,7 @@ 3.1205 set dummy link; ac_word=$2 3.1206 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1207 $as_echo_n "checking for $ac_word... " >&6; } 3.1208 -if ${ac_cv_prog_WINLD+:} false; then : 3.1209 +if test "${ac_cv_prog_WINLD+set}" = set; then : 3.1210 $as_echo_n "(cached) " >&6 3.1211 else 3.1212 if test -n "$WINLD"; then 3.1213 @@ -22157,7 +22149,7 @@ 3.1214 set dummy mt; ac_word=$2 3.1215 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1216 $as_echo_n "checking for $ac_word... " >&6; } 3.1217 -if ${ac_cv_prog_MT+:} false; then : 3.1218 +if test "${ac_cv_prog_MT+set}" = set; then : 3.1219 $as_echo_n "(cached) " >&6 3.1220 else 3.1221 if test -n "$MT"; then 3.1222 @@ -22478,7 +22470,7 @@ 3.1223 set dummy rc; ac_word=$2 3.1224 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1225 $as_echo_n "checking for $ac_word... " >&6; } 3.1226 -if ${ac_cv_prog_RC+:} false; then : 3.1227 +if test "${ac_cv_prog_RC+set}" = set; then : 3.1228 $as_echo_n "(cached) " >&6 3.1229 else 3.1230 if test -n "$RC"; then 3.1231 @@ -22869,7 +22861,7 @@ 3.1232 set dummy lib; ac_word=$2 3.1233 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1234 $as_echo_n "checking for $ac_word... " >&6; } 3.1235 -if ${ac_cv_prog_WINAR+:} false; then : 3.1236 +if test "${ac_cv_prog_WINAR+set}" = set; then : 3.1237 $as_echo_n "(cached) " >&6 3.1238 else 3.1239 if test -n "$WINAR"; then 3.1240 @@ -23175,7 +23167,7 @@ 3.1241 set dummy dumpbin; ac_word=$2 3.1242 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1243 $as_echo_n "checking for $ac_word... " >&6; } 3.1244 -if ${ac_cv_prog_DUMPBIN+:} false; then : 3.1245 +if test "${ac_cv_prog_DUMPBIN+set}" = set; then : 3.1246 $as_echo_n "(cached) " >&6 3.1247 else 3.1248 if test -n "$DUMPBIN"; then 3.1249 @@ -23494,7 +23486,7 @@ 3.1250 CPP= 3.1251 fi 3.1252 if test -z "$CPP"; then 3.1253 - if ${ac_cv_prog_CPP+:} false; then : 3.1254 + if test "${ac_cv_prog_CPP+set}" = set; then : 3.1255 $as_echo_n "(cached) " >&6 3.1256 else 3.1257 # Double quotes because CPP needs to be expanded 3.1258 @@ -23610,7 +23602,7 @@ 3.1259 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.1260 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1261 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check 3.1262 -See \`config.log' for more details" "$LINENO" 5; } 3.1263 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1264 fi 3.1265 3.1266 ac_ext=cpp 3.1267 @@ -23894,7 +23886,7 @@ 3.1268 { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 3.1269 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } 3.1270 if test -z "$CXXCPP"; then 3.1271 - if ${ac_cv_prog_CXXCPP+:} false; then : 3.1272 + if test "${ac_cv_prog_CXXCPP+set}" = set; then : 3.1273 $as_echo_n "(cached) " >&6 3.1274 else 3.1275 # Double quotes because CXXCPP needs to be expanded 3.1276 @@ -24010,7 +24002,7 @@ 3.1277 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.1278 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1279 as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check 3.1280 -See \`config.log' for more details" "$LINENO" 5; } 3.1281 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1282 fi 3.1283 3.1284 ac_ext=cpp 3.1285 @@ -24312,7 +24304,7 @@ 3.1286 set dummy as; ac_word=$2 3.1287 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1288 $as_echo_n "checking for $ac_word... " >&6; } 3.1289 -if ${ac_cv_path_AS+:} false; then : 3.1290 +if test "${ac_cv_path_AS+set}" = set; then : 3.1291 $as_echo_n "(cached) " >&6 3.1292 else 3.1293 case $AS in 3.1294 @@ -24626,7 +24618,7 @@ 3.1295 set dummy $ac_prog; ac_word=$2 3.1296 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1297 $as_echo_n "checking for $ac_word... " >&6; } 3.1298 -if ${ac_cv_path_NM+:} false; then : 3.1299 +if test "${ac_cv_path_NM+set}" = set; then : 3.1300 $as_echo_n "(cached) " >&6 3.1301 else 3.1302 case $NM in 3.1303 @@ -24935,7 +24927,7 @@ 3.1304 set dummy strip; ac_word=$2 3.1305 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1306 $as_echo_n "checking for $ac_word... " >&6; } 3.1307 -if ${ac_cv_path_STRIP+:} false; then : 3.1308 +if test "${ac_cv_path_STRIP+set}" = set; then : 3.1309 $as_echo_n "(cached) " >&6 3.1310 else 3.1311 case $STRIP in 3.1312 @@ -25241,7 +25233,7 @@ 3.1313 set dummy mcs; ac_word=$2 3.1314 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1315 $as_echo_n "checking for $ac_word... " >&6; } 3.1316 -if ${ac_cv_path_MCS+:} false; then : 3.1317 +if test "${ac_cv_path_MCS+set}" = set; then : 3.1318 $as_echo_n "(cached) " >&6 3.1319 else 3.1320 case $MCS in 3.1321 @@ -25549,7 +25541,7 @@ 3.1322 set dummy ${ac_tool_prefix}nm; ac_word=$2 3.1323 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1324 $as_echo_n "checking for $ac_word... " >&6; } 3.1325 -if ${ac_cv_prog_NM+:} false; then : 3.1326 +if test "${ac_cv_prog_NM+set}" = set; then : 3.1327 $as_echo_n "(cached) " >&6 3.1328 else 3.1329 if test -n "$NM"; then 3.1330 @@ -25589,7 +25581,7 @@ 3.1331 set dummy nm; ac_word=$2 3.1332 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1333 $as_echo_n "checking for $ac_word... " >&6; } 3.1334 -if ${ac_cv_prog_ac_ct_NM+:} false; then : 3.1335 +if test "${ac_cv_prog_ac_ct_NM+set}" = set; then : 3.1336 $as_echo_n "(cached) " >&6 3.1337 else 3.1338 if test -n "$ac_ct_NM"; then 3.1339 @@ -25907,7 +25899,7 @@ 3.1340 set dummy ${ac_tool_prefix}strip; ac_word=$2 3.1341 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1342 $as_echo_n "checking for $ac_word... " >&6; } 3.1343 -if ${ac_cv_prog_STRIP+:} false; then : 3.1344 +if test "${ac_cv_prog_STRIP+set}" = set; then : 3.1345 $as_echo_n "(cached) " >&6 3.1346 else 3.1347 if test -n "$STRIP"; then 3.1348 @@ -25947,7 +25939,7 @@ 3.1349 set dummy strip; ac_word=$2 3.1350 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1351 $as_echo_n "checking for $ac_word... " >&6; } 3.1352 -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : 3.1353 +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : 3.1354 $as_echo_n "(cached) " >&6 3.1355 else 3.1356 if test -n "$ac_ct_STRIP"; then 3.1357 @@ -26272,7 +26264,7 @@ 3.1358 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 3.1359 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1360 $as_echo_n "checking for $ac_word... " >&6; } 3.1361 -if ${ac_cv_prog_OBJCOPY+:} false; then : 3.1362 +if test "${ac_cv_prog_OBJCOPY+set}" = set; then : 3.1363 $as_echo_n "(cached) " >&6 3.1364 else 3.1365 if test -n "$OBJCOPY"; then 3.1366 @@ -26316,7 +26308,7 @@ 3.1367 set dummy $ac_prog; ac_word=$2 3.1368 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1369 $as_echo_n "checking for $ac_word... " >&6; } 3.1370 -if ${ac_cv_prog_ac_ct_OBJCOPY+:} false; then : 3.1371 +if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then : 3.1372 $as_echo_n "(cached) " >&6 3.1373 else 3.1374 if test -n "$ac_ct_OBJCOPY"; then 3.1375 @@ -26643,7 +26635,7 @@ 3.1376 set dummy $ac_tool_prefix$ac_prog; ac_word=$2 3.1377 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1378 $as_echo_n "checking for $ac_word... " >&6; } 3.1379 -if ${ac_cv_prog_OBJDUMP+:} false; then : 3.1380 +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : 3.1381 $as_echo_n "(cached) " >&6 3.1382 else 3.1383 if test -n "$OBJDUMP"; then 3.1384 @@ -26687,7 +26679,7 @@ 3.1385 set dummy $ac_prog; ac_word=$2 3.1386 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1387 $as_echo_n "checking for $ac_word... " >&6; } 3.1388 -if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : 3.1389 +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : 3.1390 $as_echo_n "(cached) " >&6 3.1391 else 3.1392 if test -n "$ac_ct_OBJDUMP"; then 3.1393 @@ -27011,7 +27003,7 @@ 3.1394 set dummy lipo; ac_word=$2 3.1395 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1396 $as_echo_n "checking for $ac_word... " >&6; } 3.1397 -if ${ac_cv_path_LIPO+:} false; then : 3.1398 +if test "${ac_cv_path_LIPO+set}" = set; then : 3.1399 $as_echo_n "(cached) " >&6 3.1400 else 3.1401 case $LIPO in 3.1402 @@ -27326,7 +27318,7 @@ 3.1403 3.1404 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 3.1405 $as_echo_n "checking for ANSI C header files... " >&6; } 3.1406 -if ${ac_cv_header_stdc+:} false; then : 3.1407 +if test "${ac_cv_header_stdc+set}" = set; then : 3.1408 $as_echo_n "(cached) " >&6 3.1409 else 3.1410 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 3.1411 @@ -27502,7 +27494,7 @@ 3.1412 for ac_header in stdio.h 3.1413 do : 3.1414 ac_fn_cxx_check_header_mongrel "$LINENO" "stdio.h" "ac_cv_header_stdio_h" "$ac_includes_default" 3.1415 -if test "x$ac_cv_header_stdio_h" = xyes; then : 3.1416 +if test "x$ac_cv_header_stdio_h" = x""yes; then : 3.1417 cat >>confdefs.h <<_ACEOF 3.1418 #define HAVE_STDIO_H 1 3.1419 _ACEOF 3.1420 @@ -27531,7 +27523,7 @@ 3.1421 # This bug is HP SR number 8606223364. 3.1422 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int *" >&5 3.1423 $as_echo_n "checking size of int *... " >&6; } 3.1424 -if ${ac_cv_sizeof_int_p+:} false; then : 3.1425 +if test "${ac_cv_sizeof_int_p+set}" = set; then : 3.1426 $as_echo_n "(cached) " >&6 3.1427 else 3.1428 if ac_fn_cxx_compute_int "$LINENO" "(long int) (sizeof (int *))" "ac_cv_sizeof_int_p" "$ac_includes_default"; then : 3.1429 @@ -27541,7 +27533,7 @@ 3.1430 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 3.1431 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} 3.1432 as_fn_error 77 "cannot compute sizeof (int *) 3.1433 -See \`config.log' for more details" "$LINENO" 5; } 3.1434 +See \`config.log' for more details" "$LINENO" 5 ; } 3.1435 else 3.1436 ac_cv_sizeof_int_p=0 3.1437 fi 3.1438 @@ -27588,7 +27580,7 @@ 3.1439 # 3.1440 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 3.1441 $as_echo_n "checking whether byte ordering is bigendian... " >&6; } 3.1442 -if ${ac_cv_c_bigendian+:} false; then : 3.1443 +if test "${ac_cv_c_bigendian+set}" = set; then : 3.1444 $as_echo_n "(cached) " >&6 3.1445 else 3.1446 ac_cv_c_bigendian=unknown 3.1447 @@ -28242,10 +28234,17 @@ 3.1448 fi 3.1449 if test "x$OPENJDK_TARGET_OS" = xmacosx; then 3.1450 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE" 3.1451 - # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7 3.1452 - MACOSX_REQUIRED_VERSION=1070 3.1453 - 3.1454 - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)" 3.1455 + # Setting these parameters makes it an error to link to macosx APIs that are 3.1456 + # newer than the given OS version and makes the linked binaries compatible even 3.1457 + # if built on a newer version of the OS. 3.1458 + # The expected format is X.Y.Z 3.1459 + MACOSX_VERSION_MIN=10.7.0 3.1460 + 3.1461 + # The macro takes the version with no dots, ex: 1070 3.1462 + # Let the flags variables get resolved in make for easier override on make 3.1463 + # command line. 3.1464 + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 3.1465 + LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 3.1466 fi 3.1467 if test "x$OPENJDK_TARGET_OS" = xbsd; then 3.1468 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" 3.1469 @@ -28592,8 +28591,8 @@ 3.1470 have_x=disabled 3.1471 else 3.1472 case $x_includes,$x_libraries in #( 3.1473 - *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5;; #( 3.1474 - *,NONE | NONE,*) if ${ac_cv_have_x+:} false; then : 3.1475 + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( 3.1476 + *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : 3.1477 $as_echo_n "(cached) " >&6 3.1478 else 3.1479 # One or both of the vars are not set, and there is no cached value. 3.1480 @@ -28870,7 +28869,7 @@ 3.1481 else 3.1482 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 3.1483 $as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } 3.1484 -if ${ac_cv_lib_dnet_dnet_ntoa+:} false; then : 3.1485 +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : 3.1486 $as_echo_n "(cached) " >&6 3.1487 else 3.1488 ac_check_lib_save_LIBS=$LIBS 3.1489 @@ -28904,14 +28903,14 @@ 3.1490 fi 3.1491 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 3.1492 $as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } 3.1493 -if test "x$ac_cv_lib_dnet_dnet_ntoa" = xyes; then : 3.1494 +if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : 3.1495 X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" 3.1496 fi 3.1497 3.1498 if test $ac_cv_lib_dnet_dnet_ntoa = no; then 3.1499 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 3.1500 $as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } 3.1501 -if ${ac_cv_lib_dnet_stub_dnet_ntoa+:} false; then : 3.1502 +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : 3.1503 $as_echo_n "(cached) " >&6 3.1504 else 3.1505 ac_check_lib_save_LIBS=$LIBS 3.1506 @@ -28945,7 +28944,7 @@ 3.1507 fi 3.1508 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 3.1509 $as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } 3.1510 -if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = xyes; then : 3.1511 +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : 3.1512 X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" 3.1513 fi 3.1514 3.1515 @@ -28964,14 +28963,14 @@ 3.1516 # The functions gethostbyname, getservbyname, and inet_addr are 3.1517 # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. 3.1518 ac_fn_cxx_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" 3.1519 -if test "x$ac_cv_func_gethostbyname" = xyes; then : 3.1520 +if test "x$ac_cv_func_gethostbyname" = x""yes; then : 3.1521 3.1522 fi 3.1523 3.1524 if test $ac_cv_func_gethostbyname = no; then 3.1525 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 3.1526 $as_echo_n "checking for gethostbyname in -lnsl... " >&6; } 3.1527 -if ${ac_cv_lib_nsl_gethostbyname+:} false; then : 3.1528 +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : 3.1529 $as_echo_n "(cached) " >&6 3.1530 else 3.1531 ac_check_lib_save_LIBS=$LIBS 3.1532 @@ -29005,14 +29004,14 @@ 3.1533 fi 3.1534 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 3.1535 $as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } 3.1536 -if test "x$ac_cv_lib_nsl_gethostbyname" = xyes; then : 3.1537 +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : 3.1538 X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" 3.1539 fi 3.1540 3.1541 if test $ac_cv_lib_nsl_gethostbyname = no; then 3.1542 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 3.1543 $as_echo_n "checking for gethostbyname in -lbsd... " >&6; } 3.1544 -if ${ac_cv_lib_bsd_gethostbyname+:} false; then : 3.1545 +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : 3.1546 $as_echo_n "(cached) " >&6 3.1547 else 3.1548 ac_check_lib_save_LIBS=$LIBS 3.1549 @@ -29046,7 +29045,7 @@ 3.1550 fi 3.1551 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 3.1552 $as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } 3.1553 -if test "x$ac_cv_lib_bsd_gethostbyname" = xyes; then : 3.1554 +if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : 3.1555 X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" 3.1556 fi 3.1557 3.1558 @@ -29061,14 +29060,14 @@ 3.1559 # must be given before -lnsl if both are needed. We assume that 3.1560 # if connect needs -lnsl, so does gethostbyname. 3.1561 ac_fn_cxx_check_func "$LINENO" "connect" "ac_cv_func_connect" 3.1562 -if test "x$ac_cv_func_connect" = xyes; then : 3.1563 +if test "x$ac_cv_func_connect" = x""yes; then : 3.1564 3.1565 fi 3.1566 3.1567 if test $ac_cv_func_connect = no; then 3.1568 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 3.1569 $as_echo_n "checking for connect in -lsocket... " >&6; } 3.1570 -if ${ac_cv_lib_socket_connect+:} false; then : 3.1571 +if test "${ac_cv_lib_socket_connect+set}" = set; then : 3.1572 $as_echo_n "(cached) " >&6 3.1573 else 3.1574 ac_check_lib_save_LIBS=$LIBS 3.1575 @@ -29102,7 +29101,7 @@ 3.1576 fi 3.1577 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 3.1578 $as_echo "$ac_cv_lib_socket_connect" >&6; } 3.1579 -if test "x$ac_cv_lib_socket_connect" = xyes; then : 3.1580 +if test "x$ac_cv_lib_socket_connect" = x""yes; then : 3.1581 X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" 3.1582 fi 3.1583 3.1584 @@ -29110,14 +29109,14 @@ 3.1585 3.1586 # Guillermo Gomez says -lposix is necessary on A/UX. 3.1587 ac_fn_cxx_check_func "$LINENO" "remove" "ac_cv_func_remove" 3.1588 -if test "x$ac_cv_func_remove" = xyes; then : 3.1589 +if test "x$ac_cv_func_remove" = x""yes; then : 3.1590 3.1591 fi 3.1592 3.1593 if test $ac_cv_func_remove = no; then 3.1594 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 3.1595 $as_echo_n "checking for remove in -lposix... " >&6; } 3.1596 -if ${ac_cv_lib_posix_remove+:} false; then : 3.1597 +if test "${ac_cv_lib_posix_remove+set}" = set; then : 3.1598 $as_echo_n "(cached) " >&6 3.1599 else 3.1600 ac_check_lib_save_LIBS=$LIBS 3.1601 @@ -29151,7 +29150,7 @@ 3.1602 fi 3.1603 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 3.1604 $as_echo "$ac_cv_lib_posix_remove" >&6; } 3.1605 -if test "x$ac_cv_lib_posix_remove" = xyes; then : 3.1606 +if test "x$ac_cv_lib_posix_remove" = x""yes; then : 3.1607 X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" 3.1608 fi 3.1609 3.1610 @@ -29159,14 +29158,14 @@ 3.1611 3.1612 # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. 3.1613 ac_fn_cxx_check_func "$LINENO" "shmat" "ac_cv_func_shmat" 3.1614 -if test "x$ac_cv_func_shmat" = xyes; then : 3.1615 +if test "x$ac_cv_func_shmat" = x""yes; then : 3.1616 3.1617 fi 3.1618 3.1619 if test $ac_cv_func_shmat = no; then 3.1620 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 3.1621 $as_echo_n "checking for shmat in -lipc... " >&6; } 3.1622 -if ${ac_cv_lib_ipc_shmat+:} false; then : 3.1623 +if test "${ac_cv_lib_ipc_shmat+set}" = set; then : 3.1624 $as_echo_n "(cached) " >&6 3.1625 else 3.1626 ac_check_lib_save_LIBS=$LIBS 3.1627 @@ -29200,7 +29199,7 @@ 3.1628 fi 3.1629 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 3.1630 $as_echo "$ac_cv_lib_ipc_shmat" >&6; } 3.1631 -if test "x$ac_cv_lib_ipc_shmat" = xyes; then : 3.1632 +if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : 3.1633 X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" 3.1634 fi 3.1635 3.1636 @@ -29218,7 +29217,7 @@ 3.1637 # John Interrante, Karl Berry 3.1638 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 3.1639 $as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } 3.1640 -if ${ac_cv_lib_ICE_IceConnectionNumber+:} false; then : 3.1641 +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : 3.1642 $as_echo_n "(cached) " >&6 3.1643 else 3.1644 ac_check_lib_save_LIBS=$LIBS 3.1645 @@ -29252,7 +29251,7 @@ 3.1646 fi 3.1647 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 3.1648 $as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } 3.1649 -if test "x$ac_cv_lib_ICE_IceConnectionNumber" = xyes; then : 3.1650 +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : 3.1651 X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" 3.1652 fi 3.1653 3.1654 @@ -30265,7 +30264,7 @@ 3.1655 LDFLAGS="$FREETYPE2_LIBS" 3.1656 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_Init_FreeType in -lfreetype" >&5 3.1657 $as_echo_n "checking for FT_Init_FreeType in -lfreetype... " >&6; } 3.1658 -if ${ac_cv_lib_freetype_FT_Init_FreeType+:} false; then : 3.1659 +if test "${ac_cv_lib_freetype_FT_Init_FreeType+set}" = set; then : 3.1660 $as_echo_n "(cached) " >&6 3.1661 else 3.1662 ac_check_lib_save_LIBS=$LIBS 3.1663 @@ -30299,7 +30298,7 @@ 3.1664 fi 3.1665 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5 3.1666 $as_echo "$ac_cv_lib_freetype_FT_Init_FreeType" >&6; } 3.1667 -if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = xyes; then : 3.1668 +if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = x""yes; then : 3.1669 FREETYPE2_FOUND=true 3.1670 else 3.1671 as_fn_error $? "Could not find freetype2! $HELP_MSG " "$LINENO" 5 3.1672 @@ -30587,7 +30586,7 @@ 3.1673 for ac_header in alsa/asoundlib.h 3.1674 do : 3.1675 ac_fn_cxx_check_header_mongrel "$LINENO" "alsa/asoundlib.h" "ac_cv_header_alsa_asoundlib_h" "$ac_includes_default" 3.1676 -if test "x$ac_cv_header_alsa_asoundlib_h" = xyes; then : 3.1677 +if test "x$ac_cv_header_alsa_asoundlib_h" = x""yes; then : 3.1678 cat >>confdefs.h <<_ACEOF 3.1679 #define HAVE_ALSA_ASOUNDLIB_H 1 3.1680 _ACEOF 3.1681 @@ -30646,7 +30645,7 @@ 3.1682 USE_EXTERNAL_LIBJPEG=true 3.1683 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ljpeg" >&5 3.1684 $as_echo_n "checking for main in -ljpeg... " >&6; } 3.1685 -if ${ac_cv_lib_jpeg_main+:} false; then : 3.1686 +if test "${ac_cv_lib_jpeg_main+set}" = set; then : 3.1687 $as_echo_n "(cached) " >&6 3.1688 else 3.1689 ac_check_lib_save_LIBS=$LIBS 3.1690 @@ -30674,7 +30673,7 @@ 3.1691 fi 3.1692 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_main" >&5 3.1693 $as_echo "$ac_cv_lib_jpeg_main" >&6; } 3.1694 -if test "x$ac_cv_lib_jpeg_main" = xyes; then : 3.1695 +if test "x$ac_cv_lib_jpeg_main" = x""yes; then : 3.1696 cat >>confdefs.h <<_ACEOF 3.1697 #define HAVE_LIBJPEG 1 3.1698 _ACEOF 3.1699 @@ -30698,7 +30697,7 @@ 3.1700 USE_EXTERNAL_LIBJPEG=true 3.1701 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lgif" >&5 3.1702 $as_echo_n "checking for main in -lgif... " >&6; } 3.1703 -if ${ac_cv_lib_gif_main+:} false; then : 3.1704 +if test "${ac_cv_lib_gif_main+set}" = set; then : 3.1705 $as_echo_n "(cached) " >&6 3.1706 else 3.1707 ac_check_lib_save_LIBS=$LIBS 3.1708 @@ -30726,7 +30725,7 @@ 3.1709 fi 3.1710 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_main" >&5 3.1711 $as_echo "$ac_cv_lib_gif_main" >&6; } 3.1712 -if test "x$ac_cv_lib_gif_main" = xyes; then : 3.1713 +if test "x$ac_cv_lib_gif_main" = x""yes; then : 3.1714 cat >>confdefs.h <<_ACEOF 3.1715 #define HAVE_LIBGIF 1 3.1716 _ACEOF 3.1717 @@ -30756,7 +30755,7 @@ 3.1718 3.1719 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress in -lz" >&5 3.1720 $as_echo_n "checking for compress in -lz... " >&6; } 3.1721 -if ${ac_cv_lib_z_compress+:} false; then : 3.1722 +if test "${ac_cv_lib_z_compress+set}" = set; then : 3.1723 $as_echo_n "(cached) " >&6 3.1724 else 3.1725 ac_check_lib_save_LIBS=$LIBS 3.1726 @@ -30790,7 +30789,7 @@ 3.1727 fi 3.1728 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress" >&5 3.1729 $as_echo "$ac_cv_lib_z_compress" >&6; } 3.1730 -if test "x$ac_cv_lib_z_compress" = xyes; then : 3.1731 +if test "x$ac_cv_lib_z_compress" = x""yes; then : 3.1732 ZLIB_FOUND=yes 3.1733 else 3.1734 ZLIB_FOUND=no 3.1735 @@ -30883,7 +30882,7 @@ 3.1736 3.1737 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 3.1738 $as_echo_n "checking for cos in -lm... " >&6; } 3.1739 -if ${ac_cv_lib_m_cos+:} false; then : 3.1740 +if test "${ac_cv_lib_m_cos+set}" = set; then : 3.1741 $as_echo_n "(cached) " >&6 3.1742 else 3.1743 ac_check_lib_save_LIBS=$LIBS 3.1744 @@ -30917,7 +30916,7 @@ 3.1745 fi 3.1746 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 3.1747 $as_echo "$ac_cv_lib_m_cos" >&6; } 3.1748 -if test "x$ac_cv_lib_m_cos" = xyes; then : 3.1749 +if test "x$ac_cv_lib_m_cos" = x""yes; then : 3.1750 cat >>confdefs.h <<_ACEOF 3.1751 #define HAVE_LIBM 1 3.1752 _ACEOF 3.1753 @@ -30941,7 +30940,7 @@ 3.1754 LIBS="" 3.1755 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 3.1756 $as_echo_n "checking for dlopen in -ldl... " >&6; } 3.1757 -if ${ac_cv_lib_dl_dlopen+:} false; then : 3.1758 +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : 3.1759 $as_echo_n "(cached) " >&6 3.1760 else 3.1761 ac_check_lib_save_LIBS=$LIBS 3.1762 @@ -30975,7 +30974,7 @@ 3.1763 fi 3.1764 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 3.1765 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } 3.1766 -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : 3.1767 +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : 3.1768 cat >>confdefs.h <<_ACEOF 3.1769 #define HAVE_LIBDL 1 3.1770 _ACEOF 3.1771 @@ -31619,7 +31618,7 @@ 3.1772 set dummy ccache; ac_word=$2 3.1773 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 3.1774 $as_echo_n "checking for $ac_word... " >&6; } 3.1775 -if ${ac_cv_path_CCACHE+:} false; then : 3.1776 +if test "${ac_cv_path_CCACHE+set}" = set; then : 3.1777 $as_echo_n "(cached) " >&6 3.1778 else 3.1779 case $CCACHE in 3.1780 @@ -31880,21 +31879,10 @@ 3.1781 :end' >>confcache 3.1782 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else 3.1783 if test -w "$cache_file"; then 3.1784 - if test "x$cache_file" != "x/dev/null"; then 3.1785 + test "x$cache_file" != "x/dev/null" && 3.1786 { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 3.1787 $as_echo "$as_me: updating cache $cache_file" >&6;} 3.1788 - if test ! -f "$cache_file" || test -h "$cache_file"; then 3.1789 - cat confcache >"$cache_file" 3.1790 - else 3.1791 - case $cache_file in #( 3.1792 - */* | ?:*) 3.1793 - mv -f confcache "$cache_file"$$ && 3.1794 - mv -f "$cache_file"$$ "$cache_file" ;; #( 3.1795 - *) 3.1796 - mv -f confcache "$cache_file" ;; 3.1797 - esac 3.1798 - fi 3.1799 - fi 3.1800 + cat confcache >$cache_file 3.1801 else 3.1802 { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 3.1803 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} 3.1804 @@ -31926,7 +31914,7 @@ 3.1805 3.1806 3.1807 3.1808 -: "${CONFIG_STATUS=./config.status}" 3.1809 +: ${CONFIG_STATUS=./config.status} 3.1810 ac_write_fail=0 3.1811 ac_clean_files_save=$ac_clean_files 3.1812 ac_clean_files="$ac_clean_files $CONFIG_STATUS" 3.1813 @@ -32027,7 +32015,6 @@ 3.1814 IFS=" "" $as_nl" 3.1815 3.1816 # Find who we are. Look in the path if we contain no directory separator. 3.1817 -as_myself= 3.1818 case $0 in #(( 3.1819 *[\\/]* ) as_myself=$0 ;; 3.1820 *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR 3.1821 @@ -32335,7 +32322,7 @@ 3.1822 # values after options handling. 3.1823 ac_log=" 3.1824 This file was extended by OpenJDK $as_me jdk8, which was 3.1825 -generated by GNU Autoconf 2.68. Invocation command line was 3.1826 +generated by GNU Autoconf 2.67. Invocation command line was 3.1827 3.1828 CONFIG_FILES = $CONFIG_FILES 3.1829 CONFIG_HEADERS = $CONFIG_HEADERS 3.1830 @@ -32398,7 +32385,7 @@ 3.1831 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" 3.1832 ac_cs_version="\\ 3.1833 OpenJDK config.status jdk8 3.1834 -configured by $0, generated by GNU Autoconf 2.68, 3.1835 +configured by $0, generated by GNU Autoconf 2.67, 3.1836 with options \\"\$ac_cs_config\\" 3.1837 3.1838 Copyright (C) 2010 Free Software Foundation, Inc. 3.1839 @@ -32527,7 +32514,7 @@ 3.1840 "$OUTPUT_ROOT/spec.sh") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/spec.sh:$AUTOCONF_DIR/spec.sh.in" ;; 3.1841 "$OUTPUT_ROOT/Makefile") CONFIG_FILES="$CONFIG_FILES $OUTPUT_ROOT/Makefile:$AUTOCONF_DIR/Makefile.in" ;; 3.1842 3.1843 - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; 3.1844 + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; 3.1845 esac 3.1846 done 3.1847 3.1848 @@ -32549,10 +32536,9 @@ 3.1849 # after its creation but before its name has been assigned to `$tmp'. 3.1850 $debug || 3.1851 { 3.1852 - tmp= ac_tmp= 3.1853 + tmp= 3.1854 trap 'exit_status=$? 3.1855 - : "${ac_tmp:=$tmp}" 3.1856 - { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status 3.1857 + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status 3.1858 ' 0 3.1859 trap 'as_fn_exit 1' 1 2 13 15 3.1860 } 3.1861 @@ -32560,13 +32546,12 @@ 3.1862 3.1863 { 3.1864 tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && 3.1865 - test -d "$tmp" 3.1866 + test -n "$tmp" && test -d "$tmp" 3.1867 } || 3.1868 { 3.1869 tmp=./conf$$-$RANDOM 3.1870 (umask 077 && mkdir "$tmp") 3.1871 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 3.1872 -ac_tmp=$tmp 3.1873 3.1874 # Set up the scripts for CONFIG_FILES section. 3.1875 # No need to generate them if there are no CONFIG_FILES. 3.1876 @@ -32588,7 +32573,7 @@ 3.1877 ac_cs_awk_cr=$ac_cr 3.1878 fi 3.1879 3.1880 -echo 'BEGIN {' >"$ac_tmp/subs1.awk" && 3.1881 +echo 'BEGIN {' >"$tmp/subs1.awk" && 3.1882 _ACEOF 3.1883 3.1884 3.1885 @@ -32616,7 +32601,7 @@ 3.1886 rm -f conf$$subs.sh 3.1887 3.1888 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 3.1889 -cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && 3.1890 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && 3.1891 _ACEOF 3.1892 sed -n ' 3.1893 h 3.1894 @@ -32664,7 +32649,7 @@ 3.1895 rm -f conf$$subs.awk 3.1896 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 3.1897 _ACAWK 3.1898 -cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && 3.1899 +cat >>"\$tmp/subs1.awk" <<_ACAWK && 3.1900 for (key in S) S_is_set[key] = 1 3.1901 FS = "" 3.1902 3.1903 @@ -32696,7 +32681,7 @@ 3.1904 sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" 3.1905 else 3.1906 cat 3.1907 -fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ 3.1908 +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ 3.1909 || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 3.1910 _ACEOF 3.1911 3.1912 @@ -32730,7 +32715,7 @@ 3.1913 # No need to generate them if there are no CONFIG_HEADERS. 3.1914 # This happens for instance with `./config.status Makefile'. 3.1915 if test -n "$CONFIG_HEADERS"; then 3.1916 -cat >"$ac_tmp/defines.awk" <<\_ACAWK || 3.1917 +cat >"$tmp/defines.awk" <<\_ACAWK || 3.1918 BEGIN { 3.1919 _ACEOF 3.1920 3.1921 @@ -32742,8 +32727,8 @@ 3.1922 # handling of long lines. 3.1923 ac_delim='%!_!# ' 3.1924 for ac_last_try in false false :; do 3.1925 - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` 3.1926 - if test -z "$ac_tt"; then 3.1927 + ac_t=`sed -n "/$ac_delim/p" confdefs.h` 3.1928 + if test -z "$ac_t"; then 3.1929 break 3.1930 elif $ac_last_try; then 3.1931 as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 3.1932 @@ -32844,7 +32829,7 @@ 3.1933 esac 3.1934 case $ac_mode$ac_tag in 3.1935 :[FHL]*:*);; 3.1936 - :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; 3.1937 + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; 3.1938 :[FH]-) ac_tag=-:-;; 3.1939 :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; 3.1940 esac 3.1941 @@ -32863,7 +32848,7 @@ 3.1942 for ac_f 3.1943 do 3.1944 case $ac_f in 3.1945 - -) ac_f="$ac_tmp/stdin";; 3.1946 + -) ac_f="$tmp/stdin";; 3.1947 *) # Look for the file first in the build tree, then in the source tree 3.1948 # (if the path is not absolute). The absolute path cannot be DOS-style, 3.1949 # because $ac_f cannot contain `:'. 3.1950 @@ -32872,7 +32857,7 @@ 3.1951 [\\/$]*) false;; 3.1952 *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; 3.1953 esac || 3.1954 - as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; 3.1955 + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; 3.1956 esac 3.1957 case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac 3.1958 as_fn_append ac_file_inputs " '$ac_f'" 3.1959 @@ -32898,8 +32883,8 @@ 3.1960 esac 3.1961 3.1962 case $ac_tag in 3.1963 - *:-:* | *:-) cat >"$ac_tmp/stdin" \ 3.1964 - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 3.1965 + *:-:* | *:-) cat >"$tmp/stdin" \ 3.1966 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; 3.1967 esac 3.1968 ;; 3.1969 esac 3.1970 @@ -33024,22 +33009,21 @@ 3.1971 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t 3.1972 $ac_datarootdir_hack 3.1973 " 3.1974 -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ 3.1975 - >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 3.1976 +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ 3.1977 + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 3.1978 3.1979 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && 3.1980 - { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && 3.1981 - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ 3.1982 - "$ac_tmp/out"`; test -z "$ac_out"; } && 3.1983 + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && 3.1984 + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && 3.1985 { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' 3.1986 which seems to be undefined. Please make sure it is defined" >&5 3.1987 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' 3.1988 which seems to be undefined. Please make sure it is defined" >&2;} 3.1989 3.1990 - rm -f "$ac_tmp/stdin" 3.1991 + rm -f "$tmp/stdin" 3.1992 case $ac_file in 3.1993 - -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; 3.1994 - *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; 3.1995 + -) cat "$tmp/out" && rm -f "$tmp/out";; 3.1996 + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; 3.1997 esac \ 3.1998 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 3.1999 ;; 3.2000 @@ -33050,20 +33034,20 @@ 3.2001 if test x"$ac_file" != x-; then 3.2002 { 3.2003 $as_echo "/* $configure_input */" \ 3.2004 - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" 3.2005 - } >"$ac_tmp/config.h" \ 3.2006 + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" 3.2007 + } >"$tmp/config.h" \ 3.2008 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 3.2009 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then 3.2010 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then 3.2011 { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 3.2012 $as_echo "$as_me: $ac_file is unchanged" >&6;} 3.2013 else 3.2014 rm -f "$ac_file" 3.2015 - mv "$ac_tmp/config.h" "$ac_file" \ 3.2016 + mv "$tmp/config.h" "$ac_file" \ 3.2017 || as_fn_error $? "could not create $ac_file" "$LINENO" 5 3.2018 fi 3.2019 else 3.2020 $as_echo "/* $configure_input */" \ 3.2021 - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ 3.2022 + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ 3.2023 || as_fn_error $? "could not create -" "$LINENO" 5 3.2024 fi 3.2025 ;;
4.1 --- a/common/autoconf/spec.gmk.in Thu Feb 28 10:41:46 2013 -0800 4.2 +++ b/common/autoconf/spec.gmk.in Thu Feb 28 20:29:19 2013 -0800 4.3 @@ -283,7 +283,7 @@ 4.4 OPENWIN_HOME:=@OPENWIN_HOME@ 4.5 4.6 # The lowest required version of macosx to enforce compatiblity for 4.7 -MACOSX_REQUIRED_VERSION=@MACOSX_REQUIRED_VERSION@ 4.8 +MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@ 4.9 4.10 # There are two types: CC or CL 4.11 # CC is gcc and others behaving reasonably similar.
5.1 --- a/common/autoconf/toolchain.m4 Thu Feb 28 10:41:46 2013 -0800 5.2 +++ b/common/autoconf/toolchain.m4 Thu Feb 28 20:29:19 2013 -0800 5.3 @@ -876,10 +876,17 @@ 5.4 fi 5.5 if test "x$OPENJDK_TARGET_OS" = xmacosx; then 5.6 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE" 5.7 - # Adding these macros will make it an error to link to mac APIs newer than OS version 10.7 5.8 - MACOSX_REQUIRED_VERSION=1070 5.9 - AC_SUBST(MACOSX_REQUIRED_VERSION) 5.10 - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(MACOSX_REQUIRED_VERSION) -DMAC_OS_X_VERSION_MIN_REQUIRED=\$(MACOSX_REQUIRED_VERSION)" 5.11 + # Setting these parameters makes it an error to link to macosx APIs that are 5.12 + # newer than the given OS version and makes the linked binaries compatible even 5.13 + # if built on a newer version of the OS. 5.14 + # The expected format is X.Y.Z 5.15 + MACOSX_VERSION_MIN=10.7.0 5.16 + AC_SUBST(MACOSX_VERSION_MIN) 5.17 + # The macro takes the version with no dots, ex: 1070 5.18 + # Let the flags variables get resolved in make for easier override on make 5.19 + # command line. 5.20 + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 5.21 + LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)" 5.22 fi 5.23 if test "x$OPENJDK_TARGET_OS" = xbsd; then 5.24 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"