22 <!-- ------------------------------------------------------ --> |
22 <!-- ------------------------------------------------------ --> |
23 <hr> |
23 <hr> |
24 <h2><a name="introduction">Introduction</a></h2> |
24 <h2><a name="introduction">Introduction</a></h2> |
25 <blockquote> |
25 <blockquote> |
26 <p> |
26 <p> |
27 This README file contains build instructions for the |
27 This README file contains build instructions for the |
28 <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. |
28 <a href="http://openjdk.java.net" target="_blank">OpenJDK</a>. |
29 Building the source code for the |
29 Building the source code for the |
30 OpenJDK |
30 OpenJDK |
31 requires |
31 requires |
32 a certain degree of technical expertise. |
32 a certain degree of technical expertise. |
33 </blockquote> |
33 </blockquote> |
34 <!-- ------------------------------------------------------ --> |
34 <!-- ------------------------------------------------------ --> |
35 <hr> |
35 <hr> |
36 <h2><a name="contents">Contents</a></h2> |
36 <h2><a name="contents">Contents</a></h2> |
37 <blockquote> |
37 <blockquote> |
38 <ul> |
38 <ul> |
39 <li><a href="#introduction">Introduction</a></li> |
39 <li><a href="#introduction">Introduction</a></li> |
|
40 <li><a href="#hg">Use of Mercurial</a> |
|
41 <ul> |
|
42 <li><a href="#get_source">Getting the Source</a></li> |
|
43 </ul> |
|
44 </li> |
40 <li><a href="#MBE">Minimum Build Environments</a></li> |
45 <li><a href="#MBE">Minimum Build Environments</a></li> |
41 <li><a href="#SDBE">Specific Developer Build Environments</a> |
46 <li><a href="#SDBE">Specific Developer Build Environments</a> |
42 <ul> |
47 <ul> |
43 <li><a href="#fedora">Fedora Linux</a> </li> |
48 <li><a href="#fedora">Fedora Linux</a> </li> |
44 <li><a href="#centos">CentOS Linux</a> </li> |
49 <li><a href="#centos">CentOS Linux</a> </li> |
45 <li><a href="#debian">Debian GNU/Linux</a></li> |
50 <li><a href="#debian">Debian GNU/Linux</a></li> |
46 <li><a href="#ubuntu">Ubuntu Linux</a> </li> |
51 <li><a href="#ubuntu">Ubuntu Linux</a> </li> |
47 <li><a href="#opensuse">OpenSUSE</a></li> |
52 <li><a href="#opensuse">OpenSUSE</a></li> |
48 <li><a href="#mandriva">Mandriva</a></li> |
53 <li><a href="#mandriva">Mandriva</a></li> |
49 <li><a href="#opensolaris">OpenSolaris</a></li> |
54 <li><a href="#opensolaris">OpenSolaris</a></li> |
50 </ul> |
55 </ul> |
51 </li> |
56 </li> |
52 <li><a href="#directories">Source Directory Structure</a> </li> |
57 <li><a href="#directories">Source Directory Structure</a> </li> |
53 <li><a href="#building">Build Information</a> |
58 <li><a href="#building">Build Information</a> |
54 <ul> |
59 <ul> |
55 <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li> |
60 <li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li> |
56 <li><a href="#linux">Basic Linux System Setup</a> </li> |
61 <li><a href="#linux">Basic Linux System Setup</a> </li> |
57 <li><a href="#solaris">Basic Solaris System Setup</a> </li> |
62 <li><a href="#solaris">Basic Solaris System Setup</a> </li> |
58 <li><a href="#windows">Basic Windows System Setup</a> </li> |
63 <li><a href="#windows">Basic Windows System Setup</a> </li> |
59 <li><a href="#dependencies">Build Dependencies</a> </li> |
64 <li><a href="#dependencies">Build Dependencies</a> |
60 <ul> |
65 <ul> |
61 <li><a href="#bootjdk">Bootstrap JDK</a> </li> |
66 <li><a href="#bootjdk">Bootstrap JDK</a> </li> |
62 <li><a href="#binaryplugs">Binary Plugs</a> </li> |
67 <li><a href="#binaryplugs">Binary Plugs</a> </li> |
63 <li><a href="#importjdk">Optional Import JDK</a> </li> |
68 <li><a href="#importjdk">Optional Import JDK</a> </li> |
64 <li><a href="#ant">Ant</a> </li> |
69 <li><a href="#ant">Ant</a> </li> |
65 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> |
70 <li><a href="#cacerts">Certificate Authority File (cacert)</a> </li> |
66 <li><a href="#compilers">Compilers</a> |
71 <li><a href="#compilers">Compilers</a> |
67 <ul> |
72 <ul> |
68 <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> |
73 <li><a href="#msvc32">Microsoft Visual Studio Professional/Express for 32 bit</a> </li> |
69 <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li> |
74 <li><a href="#msvc64">Microsoft Visual Studio Professional for 64 bit</a> </li> |
70 <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li> |
75 <li><a href="#mssdk64">Microsoft Windows SDK for 64 bit</a> </li> |
71 <li><a href="#gcc">Linux gcc/binutils</a> </li> |
76 <li><a href="#gcc">Linux gcc/binutils</a> </li> |
72 <li><a href="#studio">Sun Studio</a> </li> |
77 <li><a href="#studio">Sun Studio</a> </li> |
73 </ul> |
78 </ul> |
74 </li> |
79 </li> |
75 <li><a href="#zip">Zip and Unzip</a> </li> |
80 <li><a href="#zip">Zip and Unzip</a> </li> |
76 <li><a href="#freetype">FreeType2 Fonts</a> </li> |
81 <li><a href="#freetype">FreeType2 Fonts</a> </li> |
77 <li>Linux and Solaris: |
82 <li>Linux and Solaris: |
78 <ul> |
83 <ul> |
79 <li><a href="#cups">CUPS Include files</a> </li> |
84 <li><a href="#cups">CUPS Include files</a> </li> |
80 <li><a href="#xrender">XRender Include files</a></li> |
85 <li><a href="#xrender">XRender Include files</a></li> |
81 </ul> |
86 </ul> |
82 </li> |
87 </li> |
83 <li>Linux only: |
88 <li>Linux only: |
84 <ul> |
89 <ul> |
85 <li><a href="#alsa">ALSA files</a> </li> |
90 <li><a href="#alsa">ALSA files</a> </li> |
86 </ul> |
91 </ul> |
87 </li> |
92 </li> |
88 <li>Windows only: |
93 <li>Windows only: |
89 <ul> |
94 <ul> |
90 <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li> |
95 <li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li> |
91 <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li> |
96 <li><a href="#dxsdk">DirectX 9.0 SDK</a> </li> |
92 </ul> |
97 </ul> |
93 </li> |
98 </li> |
94 </ul> |
99 </ul> |
|
100 </li> |
95 </ul> |
101 </ul> |
96 </li> |
102 </li> |
97 <li><a href="#creating">Creating the Build</a> </li> |
103 <li><a href="#creating">Creating the Build</a> </li> |
98 <li><a href="#testing">Testing the Build</a> </li> |
104 <li><a href="#testing">Testing the Build</a> </li> |
99 <li><a href="#variables">Environment/Make Variables</a></li> |
105 <li><a href="#variables">Environment/Make Variables</a></li> |
100 <li><a href="#troubleshooting">Troubleshooting</a></li> |
106 <li><a href="#troubleshooting">Troubleshooting</a></li> |
101 </ul> |
107 </ul> |
102 </blockquote> |
108 </blockquote> |
|
109 |
|
110 <!-- ------------------------------------------------------ --> |
|
111 <hr> |
|
112 <h2><a name="hg">Use of Mercurial</a></h2> |
|
113 <blockquote> |
|
114 The OpenJDK sources are maintained with the revision control system |
|
115 <a href="http://mercurial.selenic.com/wiki/Mercurial">Mercurial</a>. |
|
116 If you are new to Mercurial, please see the |
|
117 <a href="http://mercurial.selenic.com/wiki/BeginnersGuides">Beginner Guides</a> |
|
118 or refer to the <a href=""http://hgbook.red-bean.com/">Mercurial Book</a>. |
|
119 The first few chapters of the book provide an excellent overview of |
|
120 Mercurial, what it is and how it works. |
|
121 <br> |
|
122 For using Mercurial with the OpenJDK refer to the |
|
123 <a href=""http://openjdk.java.net/guide/repositories.html#installConfig"> |
|
124 Developer Guide: Installing and Configuring Mercurial</a> |
|
125 section for more information. |
|
126 The Forest Extension is not part of the Mercurial install, |
|
127 and is optional, |
|
128 but can be obtained with the following commands: |
|
129 <blockquote> |
|
130 <tt> |
|
131 hg clone https://bitbucket.org/pmezard/hgforest-crew/overview/ <i>YourHgForest</i> |
|
132 </tt> |
|
133 </blockquote> |
|
134 Once you have the file <tt>forest.py</tt>, you need to add these |
|
135 lines to your <tt>${HOME}/.hgrc</tt> file: |
|
136 <blockquote> |
|
137 <tt> |
|
138 [extensions] |
|
139 <br>forest = <i>YourHgForest</i>/forest.py |
|
140 </tt> |
|
141 </blockquote> |
|
142 |
|
143 <!-- ------------------------------------------------------ --> |
|
144 <h3><a name="get_source">Getting the Source</a></h3> |
|
145 <blockquote> |
|
146 To get the entire set of OpenJDK Mercurial repositories |
|
147 using the Forest Extension: |
|
148 <blockquote> |
|
149 <tt> |
|
150 hg fclone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i> |
|
151 </tt> |
|
152 </blockquote> |
|
153 To get the entire set of OpenJDK Mercurial repositories |
|
154 without using the Forest Extension: |
|
155 <blockquote> |
|
156 <tt> |
|
157 hg clone http://openjdk.java.net/jdk7/jdk7 <i>YourOpenJDK</i> |
|
158 <br>cd <i>YourOpenJDK</i> |
|
159 <br>sh ./get_source.sh |
|
160 </tt> |
|
161 </blockquote> |
|
162 Once you have all the repositories, the |
|
163 script <tt>make/scripts/hgforest.sh</tt> |
|
164 can be used to repeat the same <tt>hg</tt> |
|
165 command on every repository in the forest, e.g. |
|
166 <blockquote> |
|
167 <tt> |
|
168 cd <i>YourOpenJDK</i> |
|
169 <br>sh ./make/scripts/hgforest.sh pull -u |
|
170 </tt> |
|
171 </blockquote> |
|
172 You may find this script <tt>make/scripts/hgforest.sh</tt> faster |
|
173 than the <tt>hg</tt> forest commands provided by the |
|
174 Forest Extension. |
|
175 </blockquote> |
|
176 |
|
177 </blockquote> |
|
178 |
103 <!-- ------------------------------------------------------ --> |
179 <!-- ------------------------------------------------------ --> |
104 <hr> |
180 <hr> |
105 <h2><a name="MBE">Minimum Build Environments</a></h2> |
181 <h2><a name="MBE">Minimum Build Environments</a></h2> |
106 <blockquote> |
182 <blockquote> |
107 This file often describes specific requirements for what we call the |
183 This file often describes specific requirements for what we call the |
215 we will try to provide what information we have available to us. |
291 we will try to provide what information we have available to us. |
216 </blockquote> |
292 </blockquote> |
217 <!-- ------------------------------------------------------ --> |
293 <!-- ------------------------------------------------------ --> |
218 <h3><a name="fedora">Fedora</a></h3> |
294 <h3><a name="fedora">Fedora</a></h3> |
219 <blockquote> |
295 <blockquote> |
220 <h4>Fedora 9</h4> |
296 <h4>Fedora 9</h4> |
221 <p> |
297 <p> |
222 <blockquote> |
298 <blockquote> |
223 After installing <a href="http://fedoraproject.org">Fedora</a> 9 |
299 After installing <a href="http://fedoraproject.org">Fedora</a> 9 |
224 you need to install several build dependencies. The simplest |
300 you need to install several build dependencies. The simplest |
225 way to do it is to execute the following commands as user |
301 way to do it is to execute the following commands as user |
226 <tt>root</tt>: |
302 <tt>root</tt>: |
227 <p/> |
303 <p/> |
228 <code>yum-builddep java-openjdk</code> |
304 <code>yum-builddep java-openjdk</code> |
229 <p/> |
305 <p/> |
230 <code>yum install gcc gcc-c++</code> |
306 <code>yum install gcc gcc-c++</code> |
231 <p/> |
307 <p/> |
232 In addition, it's necessary to set a few environment variables for the build: |
308 In addition, it's necessary to set a few environment variables for the build: |
233 |
309 |
234 <p/> |
310 <p/> |
235 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
311 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
236 </blockquote> |
312 </blockquote> |
237 <h4>Fedora 10</h4> |
313 <h4>Fedora 10</h4> |
238 <p> |
314 <p> |
239 <blockquote> |
315 <blockquote> |
240 After installing <a href="http://fedoraproject.org">Fedora</a> 10 |
316 After installing <a href="http://fedoraproject.org">Fedora</a> 10 |
241 you need to install several build dependencies. The simplest |
317 you need to install several build dependencies. The simplest |
242 way to do it is to execute the following commands as user |
318 way to do it is to execute the following commands as user |
243 <tt>root</tt>: |
319 <tt>root</tt>: |
244 <p/> |
320 <p/> |
245 <code>yum-builddep java-1.6.0-openjdk</code> |
321 <code>yum-builddep java-1.6.0-openjdk</code> |
246 <p/> |
322 <p/> |
247 <code>yum install gcc gcc-c++</code> |
323 <code>yum install gcc gcc-c++</code> |
248 <p/> |
324 <p/> |
249 In addition, it's necessary to set a few environment variables for the build: |
325 In addition, it's necessary to set a few environment variables for the build: |
250 |
326 |
251 <p/> |
327 <p/> |
252 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
328 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
253 </blockquote> |
329 </blockquote> |
254 <h4>Fedora 11</h4> |
330 <h4>Fedora 11</h4> |
255 <p> |
331 <p> |
256 <blockquote> |
332 <blockquote> |
257 After installing <a href="http://fedoraproject.org">Fedora</a> 11 |
333 After installing <a href="http://fedoraproject.org">Fedora</a> 11 |
258 you need to install several build dependencies. The simplest |
334 you need to install several build dependencies. The simplest |
259 way to do it is to execute the following commands as user |
335 way to do it is to execute the following commands as user |
260 <tt>root</tt>: |
336 <tt>root</tt>: |
261 <p/> |
337 <p/> |
262 <code>yum-builddep java-1.6.0-openjdk</code> |
338 <code>yum-builddep java-1.6.0-openjdk</code> |
263 <p/> |
339 <p/> |
264 <code>yum install gcc gcc-c++</code> |
340 <code>yum install gcc gcc-c++</code> |
265 <p/> |
341 <p/> |
266 In addition, it's necessary to set a few environment variables for the build: |
342 In addition, it's necessary to set a few environment variables for the build: |
267 |
343 |
268 <p/> |
344 <p/> |
269 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
345 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-openjdk</code> |
270 </blockquote> |
346 </blockquote> |
271 </blockquote> |
347 </blockquote> |
272 <!-- ------------------------------------------------------ --> |
348 <!-- ------------------------------------------------------ --> |
273 <h3><a name="centos">CentOS 5.2</a></h3> |
349 <h3><a name="centos">CentOS 5.2</a></h3> |
274 <blockquote> |
350 <blockquote> |
275 After installing |
351 After installing |
283 <li>Java Development</li> |
359 <li>Java Development</li> |
284 <li>X Software Development</li> |
360 <li>X Software Development</li> |
285 </ul> |
361 </ul> |
286 </blockquote> |
362 </blockquote> |
287 <p> |
363 <p> |
288 Plus the following packages: |
364 Plus the following packages: |
289 <blockquote> |
365 <blockquote> |
290 <ul> |
366 <ul> |
291 <li>cups devel: Cups Development Package</li> |
367 <li>cups devel: Cups Development Package</li> |
292 <li>alsa devel: Alsa Development Package</li> |
368 <li>alsa devel: Alsa Development Package</li> |
293 <li>ant: Ant Package</li> |
369 <li>ant: Ant Package</li> |
294 <li>Xi devel: libXi.so Development Package</li> |
370 <li>Xi devel: libXi.so Development Package</li> |
295 </ul> |
371 </ul> |
296 </blockquote> |
372 </blockquote> |
297 <p> |
373 <p> |
298 The freetype 2.3 packages don't seem to be available, |
374 The freetype 2.3 packages don't seem to be available, |
299 but the freetype 2.3 sources can be downloaded, built, |
375 but the freetype 2.3 sources can be downloaded, built, |
300 and installed easily enough from |
376 and installed easily enough from |
301 <a href="http://downloads.sourceforge.net/freetype"> |
377 <a href="http://downloads.sourceforge.net/freetype"> |
302 the freetype site</a>. |
378 the freetype site</a>. |
303 Build and install with something like: |
379 Build and install with something like: |
304 <blockquote> |
380 <blockquote> |
305 <tt>./configure && make && sudo -u root make install</tt> |
381 <tt>./configure && make && sudo -u root make install</tt> |
306 </blockquote> |
382 </blockquote> |
307 <p> |
383 <p> |
308 Mercurial packages could not be found easily, but a Google |
384 Mercurial packages could not be found easily, but a Google |
309 search should find ones, and they usually include Python if |
385 search should find ones, and they usually include Python if |
310 it's needed. |
386 it's needed. |
311 </blockquote> |
387 </blockquote> |
312 <!-- ------------------------------------------------------ --> |
388 <!-- ------------------------------------------------------ --> |
313 <h3><a name="debian">Debian</a></h3> |
389 <h3><a name="debian">Debian</a></h3> |
314 <blockquote> |
390 <blockquote> |
315 <h4>Debian 5.0 (Lenny)</h4> |
391 <h4>Debian 5.0 (Lenny)</h4> |
316 <p> |
392 <p> |
317 <blockquote> |
393 <blockquote> |
318 After installing <a href="http://debian.org">Debian</a> 5 |
394 After installing <a href="http://debian.org">Debian</a> 5 |
319 you need to install several build dependencies. |
395 you need to install several build dependencies. |
320 The simplest way to install the build dependencies is to |
396 The simplest way to install the build dependencies is to |
321 execute the following commands as user <tt>root</tt>: |
397 execute the following commands as user <tt>root</tt>: |
322 <p/> |
398 <p/> |
323 <code>aptitude build-dep openjdk-6</code> |
399 <code>aptitude build-dep openjdk-6</code> |
324 <p/> |
400 <p/> |
325 <code>aptitude install openjdk-6-jdk libmotif-dev</code> |
401 <code>aptitude install openjdk-6-jdk libmotif-dev</code> |
326 <p/> |
402 <p/> |
327 In addition, it's necessary to set a few environment variables for the build: |
403 In addition, it's necessary to set a few environment variables for the build: |
328 <p/> |
404 <p/> |
329 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
405 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
330 </blockquote> |
406 </blockquote> |
331 </blockquote> |
407 </blockquote> |
332 <!-- ====================================================== --> |
408 <!-- ====================================================== --> |
333 <h3><a name="ubuntu">Ubuntu</a></h3> |
409 <h3><a name="ubuntu">Ubuntu</a></h3> |
334 <blockquote> |
410 <blockquote> |
335 <h4>Ubuntu 8.04</h4> |
411 <h4>Ubuntu 8.04</h4> |
336 <p> |
412 <p> |
337 <blockquote> |
413 <blockquote> |
338 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 |
414 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.04 |
339 you need to install several build dependencies. |
415 you need to install several build dependencies. |
340 <p/> |
416 <p/> |
341 First, you need to enable the universe repository in the |
417 First, you need to enable the universe repository in the |
342 Software Sources application and reload the repository |
418 Software Sources application and reload the repository |
343 information. The Software Sources application is available |
419 information. The Software Sources application is available |
344 under the System/Administration menu. |
420 under the System/Administration menu. |
345 <p/> |
421 <p/> |
346 The simplest way to install the build dependencies is to |
422 The simplest way to install the build dependencies is to |
347 execute the following commands: |
423 execute the following commands: |
348 <p/> |
424 <p/> |
349 <code>sudo aptitude build-dep openjdk-6</code> |
425 <code>sudo aptitude build-dep openjdk-6</code> |
350 <p/> |
426 <p/> |
351 <code>sudo aptitude install openjdk-6-jdk</code> |
427 <code>sudo aptitude install openjdk-6-jdk</code> |
352 <p/> |
428 <p/> |
353 In addition, it's necessary to set a few environment variables for the build: |
429 In addition, it's necessary to set a few environment variables for the build: |
354 <p/> |
430 <p/> |
355 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
431 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
356 </blockquote> |
432 </blockquote> |
357 <h4>Ubuntu 8.10</h4> |
433 <h4>Ubuntu 8.10</h4> |
358 <p> |
434 <p> |
359 <blockquote> |
435 <blockquote> |
360 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 |
436 After installing <a href="http://ubuntu.org">Ubuntu</a> 8.10 |
361 you need to install several build dependencies. The simplest |
437 you need to install several build dependencies. The simplest |
362 way to do it is to execute the following commands: |
438 way to do it is to execute the following commands: |
363 <p/> |
439 <p/> |
364 <code>sudo aptitude build-dep openjdk-6</code> |
440 <code>sudo aptitude build-dep openjdk-6</code> |
365 <p/> |
441 <p/> |
366 <code>sudo aptitude install openjdk-6-jdk</code> |
442 <code>sudo aptitude install openjdk-6-jdk</code> |
367 <p/> |
443 <p/> |
368 In addition, it's necessary to set a few environment variables for the build: |
444 In addition, it's necessary to set a few environment variables for the build: |
369 <p/> |
445 <p/> |
370 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
446 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
371 </blockquote> |
447 </blockquote> |
372 <h4>Ubuntu 9.04</h4> |
448 <h4>Ubuntu 9.04</h4> |
373 <p> |
449 <p> |
374 <blockquote> |
450 <blockquote> |
375 After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 |
451 After installing <a href="http://ubuntu.org">Ubuntu</a> 9.04 |
376 you need to install several build dependencies. The simplest |
452 you need to install several build dependencies. The simplest |
377 way to do it is to execute the following commands: |
453 way to do it is to execute the following commands: |
378 <p/> |
454 <p/> |
379 <code>sudo aptitude build-dep openjdk-6</code> |
455 <code>sudo aptitude build-dep openjdk-6</code> |
380 <p/> |
456 <p/> |
381 <code>sudo aptitude install openjdk-6-jdk</code> |
457 <code>sudo aptitude install openjdk-6-jdk</code> |
382 <p/> |
458 <p/> |
383 In addition, it's necessary to set a few environment variables for the build: |
459 In addition, it's necessary to set a few environment variables for the build: |
384 <p/> |
460 <p/> |
385 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
461 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-6-openjdk</code> |
386 </blockquote> |
462 </blockquote> |
387 </blockquote> |
463 </blockquote> |
388 <!-- ====================================================== --> |
464 <!-- ====================================================== --> |
389 <h3><a name="opensuse">OpenSUSE</a></h3> |
465 <h3><a name="opensuse">OpenSUSE</a></h3> |
390 <blockquote> |
466 <blockquote> |
391 <h4>OpenSUSE 11.1</h4> |
467 <h4>OpenSUSE 11.1</h4> |
392 <p> |
468 <p> |
393 <blockquote> |
469 <blockquote> |
394 After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 |
470 After installing <a href="http://opensuse.org">OpenSUSE</a> 11.1 |
395 you need to install several build dependencies. |
471 you need to install several build dependencies. |
396 The simplest way to install the build dependencies is to |
472 The simplest way to install the build dependencies is to |
397 execute the following commands: |
473 execute the following commands: |
398 <p/> |
474 <p/> |
399 <code>sudo zypper source-install -d java-1_6_0-openjdk</code> |
475 <code>sudo zypper source-install -d java-1_6_0-openjdk</code> |
400 <p/> |
476 <p/> |
401 <code>sudo zypper install make</code> |
477 <code>sudo zypper install make</code> |
402 <p/> |
478 <p/> |
403 In addition, it is necessary to set a few environment variables for the build: |
479 In addition, it is necessary to set a few environment variables for the build: |
404 <p/> |
480 <p/> |
405 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
481 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
406 <p/> |
482 <p/> |
407 Finally, you need to unset the <code>JAVA_HOME</code> environment variable: |
483 Finally, you need to unset the <code>JAVA_HOME</code> environment variable: |
408 <p/> |
484 <p/> |
409 <code>export -n JAVA_HOME</code> |
485 <code>export -n JAVA_HOME</code> |
410 </blockquote> |
486 </blockquote> |
411 </blockquote> |
487 </blockquote> |
412 <!-- ====================================================== --> |
488 <!-- ====================================================== --> |
413 <h3><a name="mandriva">Mandriva</a></h3> |
489 <h3><a name="mandriva">Mandriva</a></h3> |
414 <blockquote> |
490 <blockquote> |
415 <h4>Mandriva Linux One 2009 Spring</h4> |
491 <h4>Mandriva Linux One 2009 Spring</h4> |
416 <p> |
492 <p> |
417 <blockquote> |
493 <blockquote> |
418 After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring |
494 After installing <a href="http://mandriva.org">Mandriva</a> Linux One 2009 Spring |
419 you need to install several build dependencies. |
495 you need to install several build dependencies. |
420 The simplest way to install the build dependencies is to |
496 The simplest way to install the build dependencies is to |
421 execute the following commands as user <tt>root</tt>: |
497 execute the following commands as user <tt>root</tt>: |
422 <p/> |
498 <p/> |
423 <code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code> |
499 <code>urpmi java-1.6.0-openjdk-devel ant make gcc gcc-c++ freetype-devel zip unzip libcups2-devel libxrender1-devel libalsa2-devel libstc++-static-devel libxtst6-devel libxi-devel</code> |
424 <p/> |
500 <p/> |
425 In addition, it is necessary to set a few environment variables for the build: |
501 In addition, it is necessary to set a few environment variables for the build: |
426 <p/> |
502 <p/> |
427 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
503 <code>export LANG=C ALT_BOOTDIR=/usr/lib/jvm/java-1.6.0-openjdk</code> |
428 </blockquote> |
504 </blockquote> |
429 </blockquote> |
505 </blockquote> |
430 <!-- ====================================================== --> |
506 <!-- ====================================================== --> |
431 <h3><a name="opensolaris">OpenSolaris</a></h3> |
507 <h3><a name="opensolaris">OpenSolaris</a></h3> |
432 <blockquote> |
508 <blockquote> |
433 <h4>OpenSolaris 2009.06</h4> |
509 <h4>OpenSolaris 2009.06</h4> |
434 <p> |
510 <p> |
435 <blockquote> |
511 <blockquote> |
436 After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 |
512 After installing <a href="http://opensolaris.org">OpenSolaris</a> 2009.06 |
437 you need to install several build dependencies. |
513 you need to install several build dependencies. |
438 The simplest way to install the build dependencies is to |
514 The simplest way to install the build dependencies is to |
439 execute the following commands: |
515 execute the following commands: |
440 <p/> |
516 <p/> |
441 <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code> |
517 <code>pfexec pkg install SUNWgmake SUNWj6dev SUNWant sunstudioexpress SUNWcups SUNWzip SUNWunzip SUNWxwhl SUNWxorg-headers SUNWaudh SUNWfreetype2</code> |
442 <p/> |
518 <p/> |
443 In addition, it is necessary to set a few environment variables for the build: |
519 In addition, it is necessary to set a few environment variables for the build: |
444 <p/> |
520 <p/> |
445 <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code> |
521 <code>export LANG=C ALT_COMPILER_PATH=/opt/SunStudioExpress/bin/ ALT_CUPS_HEADERS_PATH=/usr/include/</code> |
446 <p/> |
522 <p/> |
447 Finally, you need to make sure that the build process can find the Sun Studio compilers: |
523 Finally, you need to make sure that the build process can find the Sun Studio compilers: |
448 <p/> |
524 <p/> |
449 <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code> |
525 <code>export PATH=$PATH:/opt/SunStudioExpress/bin/</code> |
450 </blockquote> |
526 </blockquote> |
451 </blockquote> |
527 </blockquote> |
452 <!-- ------------------------------------------------------ --> |
528 <!-- ------------------------------------------------------ --> |
453 <hr> |
529 <hr> |
454 <h2><a name="directories">Source Directory Structure</a></h2> |
530 <h2><a name="directories">Source Directory Structure</a></h2> |
455 <blockquote> |
531 <blockquote> |
456 <p> |
532 <p> |
457 The source code for the OpenJDK is delivered in a set of |
533 The source code for the OpenJDK is delivered in a set of |
458 directories: |
534 directories: |
459 <tt>hotspot</tt>, |
535 <tt>hotspot</tt>, |
460 <tt>langtools</tt>, |
536 <tt>langtools</tt>, |
461 <tt>corba</tt>, |
537 <tt>corba</tt>, |
462 <tt>jaxws</tt>, |
538 <tt>jaxws</tt>, |
463 <tt>jaxp</tt>, |
539 <tt>jaxp</tt>, |
464 and |
540 and |
465 <tt>jdk</tt>. |
541 <tt>jdk</tt>. |
466 The <tt>hotspot</tt> directory contains the source code and make |
542 The <tt>hotspot</tt> directory contains the source code and make |
467 files for building the OpenJDK Hotspot Virtual Machine. |
543 files for building the OpenJDK Hotspot Virtual Machine. |
468 The <tt>langtools</tt> directory contains the source code and make |
544 The <tt>langtools</tt> directory contains the source code and make |
469 files for building the OpenJDK javac and language tools. |
545 files for building the OpenJDK javac and language tools. |
470 The <tt>corba</tt> directory contains the source code and make |
546 The <tt>corba</tt> directory contains the source code and make |
471 files for building the OpenJDK Corba files. |
547 files for building the OpenJDK Corba files. |
472 The <tt>jaxws</tt> directory contains the source code and make |
548 The <tt>jaxws</tt> directory contains the source code and make |
473 files for building the OpenJDK JAXWS files. |
549 files for building the OpenJDK JAXWS files. |
474 The <tt>jaxp</tt> directory contains the source code and make |
550 The <tt>jaxp</tt> directory contains the source code and make |
475 files for building the OpenJDK JAXP files. |
551 files for building the OpenJDK JAXP files. |
476 The <tt>jdk</tt> directory contains the source code and make files for |
552 The <tt>jdk</tt> directory contains the source code and make files for |
477 building the OpenJDK runtime libraries and misc files. |
553 building the OpenJDK runtime libraries and misc files. |
478 The top level <tt>Makefile</tt> |
554 The top level <tt>Makefile</tt> |
479 is used to build the entire OpenJDK. |
555 is used to build the entire OpenJDK. |
480 </blockquote> |
556 </blockquote> |
481 <!-- ------------------------------------------------------ --> |
557 <!-- ------------------------------------------------------ --> |
482 <hr> |
558 <hr> |
483 <h2><a name="building">Build Information</a></h2> |
559 <h2><a name="building">Build Information</a></h2> |
484 <blockquote> |
560 <blockquote> |
557 like <tt>C:/</tt> or <tt>C:\</tt>. |
633 like <tt>C:/</tt> or <tt>C:\</tt>. |
558 Use a 3.80 version, or find a newer |
634 Use a 3.80 version, or find a newer |
559 version that has this problem fixed. |
635 version that has this problem fixed. |
560 The older 3.80 version of make.exe can be downloaded with this |
636 The older 3.80 version of make.exe can be downloaded with this |
561 <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank"> |
637 <a href="http://cygwin.paracoda.com/release/make/make-3.80-1.tar.bz2" target="_blank"> |
562 link</a>. |
638 link</a>. |
563 Use of this older 3.80 make.exe may require that you install the |
639 Use of this older 3.80 make.exe may require that you install the |
564 libintl2.dll library or libintl2 cygwin package which is |
640 libintl2.dll library or libintl2 cygwin package which is |
565 no longer installed by default by the cygwin installer. |
641 no longer installed by default by the cygwin installer. |
566 <br> |
642 <br> |
567 Also see the |
643 Also see the |
568 <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank"> |
644 <a href="http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin#make" target="_blank"> |
569 mozilla developer center</a> |
645 mozilla developer center</a> |
570 on this topic. |
646 on this topic. |
571 <br> |
647 <br> |
572 It's hoped that when make 3.82 starts shipping in a future cygwin |
648 It's hoped that when make 3.82 starts shipping in a future cygwin |
573 release that this MS-DOS path issue will be fixed. |
649 release that this MS-DOS path issue will be fixed. |
574 In addition to the above 3.80 make.exe you can download |
650 In addition to the above 3.80 make.exe you can download |
575 this |
651 this |
576 <a href="http://www.cmake.org/files/cygwin/make.exe"> |
652 <a href="http://www.cmake.org/files/cygwin/make.exe"> |
577 www.cmake.org make.exe</a> which will not have a libintl2.dll |
653 www.cmake.org make.exe</a> which will not have a libintl2.dll |
578 dependency. |
654 dependency. |
579 </li> |
655 </li> |
580 </ul> |
656 </ul> |
581 <p> |
657 <p> |
582 Information on GNU make, and access to ftp download sites, are |
658 Information on GNU make, and access to ftp download sites, are |
583 available on the |
659 available on the |
584 <a href="http://www.gnu.org/software/make/make.html" target="_blank"> |
660 <a href="http://www.gnu.org/software/make/make.html" target="_blank"> |
585 GNU make web site |
661 GNU make web site |
586 </a>. |
662 </a>. |
587 The latest source to GNU make is available at |
663 The latest source to GNU make is available at |
588 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> |
664 <a href="http://ftp.gnu.org/pub/gnu/make/" target="_blank"> |
589 ftp.gnu.org/pub/gnu/make/</a>. |
665 ftp.gnu.org/pub/gnu/make/</a>. |
590 </blockquote> |
666 </blockquote> |
591 <!-- ------------------------------------------------------ --> |
667 <!-- ------------------------------------------------------ --> |
592 <hr> |
668 <hr> |
593 <h3><a name="linux">Basic Linux System Setup</a></h3> |
669 <h3><a name="linux">Basic Linux System Setup</a></h3> |
594 <blockquote> |
670 <blockquote> |
595 <strong>i586 only:</strong> |
671 <strong>i586 only:</strong> |
596 The minimum recommended hardware for building the Linux version |
672 The minimum recommended hardware for building the Linux version |
597 is a Pentium class processor or better, at least 256 MB of RAM, and |
673 is a Pentium class processor or better, at least 256 MB of RAM, and |
598 approximately 1.5 GB of free disk space. |
674 approximately 1.5 GB of free disk space. |
599 <p> |
675 <p> |
600 <strong>X64 only:</strong> |
676 <strong>X64 only:</strong> |
601 The minimum recommended hardware for building the Linux |
677 The minimum recommended hardware for building the Linux |
602 version is an AMD Opteron class processor, at least 512 MB of RAM, and |
678 version is an AMD Opteron class processor, at least 512 MB of RAM, and |
603 approximately 4 GB of free disk space. |
679 approximately 4 GB of free disk space. |
604 <p> |
680 <p> |
605 The build will use the tools contained in |
681 The build will use the tools contained in |
606 <tt>/bin</tt> and |
682 <tt>/bin</tt> and |
607 <tt>/usr/bin</tt> |
683 <tt>/usr/bin</tt> |
608 of a standard installation of the Linux operating environment. |
684 of a standard installation of the Linux operating environment. |
609 You should ensure that these directories are in your |
685 You should ensure that these directories are in your |
610 <tt>PATH</tt>. |
686 <tt>PATH</tt>. |
611 <p> |
687 <p> |
612 Note that some Linux systems have a habit of pre-populating |
688 Note that some Linux systems have a habit of pre-populating |
613 your environment variables for you, for example <tt>JAVA_HOME</tt> |
689 your environment variables for you, for example <tt>JAVA_HOME</tt> |
614 might get pre-defined for you to refer to the JDK installed on |
690 might get pre-defined for you to refer to the JDK installed on |
615 your Linux system. |
691 your Linux system. |
616 You will need to unset <tt>JAVA_HOME</tt>. |
692 You will need to unset <tt>JAVA_HOME</tt>. |
617 It's a good idea to run <tt>env</tt> and verify the |
693 It's a good idea to run <tt>env</tt> and verify the |
618 environment variables you are getting from the default system |
694 environment variables you are getting from the default system |
619 settings make sense for building the |
695 settings make sense for building the |
620 OpenJDK. |
696 OpenJDK. |
621 </blockquote> |
697 </blockquote> |
622 <!-- ------------------------------------------------------ --> |
698 <!-- ------------------------------------------------------ --> |
623 <h4><a name="linux_checklist">Basic Linux Check List</a></h4> |
699 <h4><a name="linux_checklist">Basic Linux Check List</a></h4> |
624 <blockquote> |
700 <blockquote> |
625 <ol> |
701 <ol> |
940 </blockquote> |
1016 </blockquote> |
941 <strong><a name="studio">Solaris: Sun Studio</a></strong> |
1017 <strong><a name="studio">Solaris: Sun Studio</a></strong> |
942 <blockquote> |
1018 <blockquote> |
943 At a minimum, the |
1019 At a minimum, the |
944 <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> |
1020 <a href="http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.htm" target="_blank"> |
945 Sun Studio 12 Update 1 Compilers</a> |
1021 Sun Studio 12 Update 1 Compilers</a> |
946 (containing version 5.10 of the C and C++ compilers) is required, |
1022 (containing version 5.10 of the C and C++ compilers) is required, |
947 including specific patches. |
1023 including specific patches. |
948 <p> |
1024 <p> |
949 The Solaris SPARC patch list is: |
1025 The Solaris SPARC patch list is: |
950 <ul> |
1026 <ul> |
951 <li> |
1027 <li> |
952 118683-05: SunOS 5.10: Patch for profiling libraries and assembler |
1028 118683-05: SunOS 5.10: Patch for profiling libraries and assembler |
953 </li> |
1029 </li> |
954 <li> |
1030 <li> |
955 119963-21: SunOS 5.10: Shared library patch for C++ |
1031 119963-21: SunOS 5.10: Shared library patch for C++ |
956 </li> |
1032 </li> |
957 <li> |
1033 <li> |
958 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch |
1034 120753-08: SunOS 5.10: Microtasking libraries (libmtsk) patch |
959 </li> |
1035 </li> |
960 <li> |
1036 <li> |
961 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler |
1037 128228-09: Sun Studio 12 Update 1: Patch for Sun C++ Compiler |
962 </li> |
1038 </li> |
963 <li> |
1039 <li> |
964 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
1040 141860-03: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
965 </li> |
1041 </li> |
966 <li> |
1042 <li> |
967 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler |
1043 141861-05: Sun Studio 12 Update 1: Patch for Sun C Compiler |
968 </li> |
1044 </li> |
969 <li> |
1045 <li> |
970 142371-01: Sun Studio 12.1 Update 1: Patch for dbx |
1046 142371-01: Sun Studio 12.1 Update 1: Patch for dbx |
971 </li> |
1047 </li> |
972 <li> |
1048 <li> |
973 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling |
1049 143384-02: Sun Studio 12 Update 1: Patch for debuginfo handling |
974 </li> |
1050 </li> |
975 <li> |
1051 <li> |
976 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
1052 143385-02: Sun Studio 12 Update 1: Patch for Compiler Common patch for Sun C C++ F77 F95 |
977 </li> |
1053 </li> |
978 <li> |
1054 <li> |
979 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools |
1055 142369-01: Sun Studio 12.1: Patch for Performance Analyzer Tools |
980 </li> |
1056 </li> |
981 </ul> |
1057 </ul> |
982 <p> |
1058 <p> |
983 The Solaris X86 patch list is: |
1059 The Solaris X86 patch list is: |
984 <ul> |
1060 <ul> |
985 <li> |
1061 <li> |
986 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler |
1062 119961-07: SunOS 5.10_x86, x64, Patch for profiling libraries and assembler |
987 </li> |
1063 </li> |
988 <li> |
1064 <li> |
989 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 |
1065 119964-21: SunOS 5.10_x86: Shared library patch for C++_x86 |
990 </li> |
1066 </li> |
991 <li> |
1067 <li> |
992 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch |
1068 120754-08: SunOS 5.10_x86: Microtasking libraries (libmtsk) patch |
993 </li> |
1069 </li> |
994 <li> |
1070 <li> |
995 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend |
1071 141858-06: Sun Studio 12 Update 1_x86: Sun Compiler Common patch for x86 backend |
996 </li> |
1072 </li> |
997 <li> |
1073 <li> |
998 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler |
1074 128229-09: Sun Studio 12 Update 1_x86: Patch for C++ Compiler |
999 </li> |
1075 </li> |
1000 <li> |
1076 <li> |
1001 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler |
1077 142363-05: Sun Studio 12 Update 1_x86: Patch for C Compiler |
1002 </li> |
1078 </li> |
1003 <li> |
1079 <li> |
1004 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools |
1080 142368-01: Sun Studio 12.1_x86: Patch for Performance Analyzer Tools |
1005 </li> |
1081 </li> |
1006 </ul> |
1082 </ul> |
1007 <p> |
1083 <p> |
1008 Set |
1084 Set |
1009 <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> |
1085 <a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> |
1010 to point to the location of |
1086 to point to the location of |
1011 the compiler binaries, and place this location in the <tt>PATH</tt>. |
1087 the compiler binaries, and place this location in the <tt>PATH</tt>. |
1012 <p> |
1088 <p> |
1013 The Oracle Solaris Studio Express compilers at: |
1089 The Oracle Solaris Studio Express compilers at: |
1014 <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank"> |
1090 <a href="http://developers.sun.com/sunstudio/downloads/express.jsp" target="_blank"> |
1015 Oracle Solaris Studio Express Download site</a> |
1091 Oracle Solaris Studio Express Download site</a> |
1016 are also an option, although these compilers have not |
1092 are also an option, although these compilers have not |
1017 been extensively used yet. |
1093 been extensively used yet. |
1018 </blockquote> |
1094 </blockquote> |
1019 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> |
1095 <strong><a name="msvc32">Windows i586: Microsoft Visual Studio 2010 Compilers</a></strong> |
1020 <blockquote> |
1096 <blockquote> |
1021 <p> |
1097 <p> |
1022 <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to |
1098 <b>BEGIN WARNING</b>: At this time (Spring/Summer 2010) JDK 7 is starting a transition to |
1023 use the newest VS2010 Microsoft compilers. These build instructions are updated |
1099 use the newest VS2010 Microsoft compilers. These build instructions are updated |
1024 to show where we are going. We have a QA process to go through before |
1100 to show where we are going. We have a QA process to go through before |
1025 official builds actually use VS2010. So for now, official builds are |
1101 official builds actually use VS2010. So for now, official builds are |
1026 still using VS2003. No other compilers are known to build the entire JDK, |
1102 still using VS2003. No other compilers are known to build the entire JDK, |
1027 including non-open portions. |
1103 including non-open portions. |
1028 So for now you should be able to build with either VS2003 or VS2010. |
1104 So for now you should be able to build with either VS2003 or VS2010. |
1029 We do not guarantee that VS2008 will work, although there is sufficient |
1105 We do not guarantee that VS2008 will work, although there is sufficient |
1030 makefile support to make at least basic JDK builds plausible. |
1106 makefile support to make at least basic JDK builds plausible. |
1031 Visual Studio 2010 Express compilers are now able to build all the |
1107 Visual Studio 2010 Express compilers are now able to build all the |
1032 open source repositories, but this is 32 bit only. To build 64 bit |
1108 open source repositories, but this is 32 bit only. To build 64 bit |
1033 Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> |
1109 Windows binaries use the the 7.1 Windows SDK.<b>END WARNING.</b> |
1034 <p> |
1110 <p> |
1035 The 32-bit OpenJDK Windows build |
1111 The 32-bit OpenJDK Windows build |
1036 requires |
1112 requires |
1037 Microsoft Visual Studio C++ 2010 (VS2010) Professional |
1113 Microsoft Visual Studio C++ 2010 (VS2010) Professional |
1038 Edition or Express compiler. |
1114 Edition or Express compiler. |
1039 The compiler and other tools are expected to reside |
1115 The compiler and other tools are expected to reside |
1040 in the location defined by the variable |
1116 in the location defined by the variable |
1041 <tt>VS100COMNTOOLS</tt> which |
1117 <tt>VS100COMNTOOLS</tt> which |
1042 is set by the Microsoft Visual Studio installer. |
1118 is set by the Microsoft Visual Studio installer. |
1043 <p> |
1119 <p> |
1044 Once the compiler is installed, |
1120 Once the compiler is installed, |
1045 it is recommended that you run <tt>VCVARS32.BAT</tt> |
1121 it is recommended that you run <tt>VCVARS32.BAT</tt> |
1046 to set the compiler environment variables |
1122 to set the compiler environment variables |
1047 <tt>INCLUDE</tt>, |
1123 <tt>INCLUDE</tt>, |
1048 <tt>LIB</tt>, and |
1124 <tt>LIB</tt>, and |
1049 <tt>PATH</tt> |
1125 <tt>PATH</tt> |
1050 prior to building the |
1126 prior to building the |
1051 OpenJDK. |
1127 OpenJDK. |
1052 The above environment variables <b>MUST</b> be set. |
1128 The above environment variables <b>MUST</b> be set. |
1053 This compiler also contains the Windows SDK v 7.0a, |
1129 This compiler also contains the Windows SDK v 7.0a, |
1054 which is an update to the Windows 7 SDK. |
1130 which is an update to the Windows 7 SDK. |
1055 <p> |
1131 <p> |
1056 <b>WARNING:</b> Make sure you check out the |
1132 <b>WARNING:</b> Make sure you check out the |
1057 <a href="#cygwin">CYGWIN link.exe WARNING</a>. |
1133 <a href="#cygwin">CYGWIN link.exe WARNING</a>. |
1058 The path <tt>/usr/bin</tt> must be after the path to the |
1134 The path <tt>/usr/bin</tt> must be after the path to the |
1059 Visual Studio product. |
1135 Visual Studio product. |
1060 </blockquote> |
1136 </blockquote> |
1061 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> |
1137 <strong><a name="msvc64">Windows x64: Microsoft Visual Studio 2010 Professional Compiler</a></strong> |
1062 <blockquote> |
1138 <blockquote> |
1063 For <b>X64</b>, builds, when using the VS2010 Professional |
1139 For <b>X64</b>, builds, when using the VS2010 Professional |
1064 compiler, the 64 bit build set up is much the same as 32 bit |
1140 compiler, the 64 bit build set up is much the same as 32 bit |
1108 The Solaris header files can be obtained by installing |
1184 The Solaris header files can be obtained by installing |
1109 the package <strong>SFWcups</strong> from the Solaris Software |
1185 the package <strong>SFWcups</strong> from the Solaris Software |
1110 Companion CD/DVD, these often will be installed into |
1186 Companion CD/DVD, these often will be installed into |
1111 <tt>/opt/sfw/cups</tt>. |
1187 <tt>/opt/sfw/cups</tt>. |
1112 <p> |
1188 <p> |
1113 <strong>Linux:</strong> |
1189 <strong>Linux:</strong> |
1114 CUPS header files are required for building the |
1190 CUPS header files are required for building the |
1115 OpenJDK on Linux. |
1191 OpenJDK on Linux. |
1116 The Linux header files are usually available from a "cups" |
1192 The Linux header files are usually available from a "cups" |
1117 development package, it's recommended that you try and use |
1193 development package, it's recommended that you try and use |
1118 the package provided by the particular version of Linux that |
1194 the package provided by the particular version of Linux that |
1119 you are using. |
1195 you are using. |
1120 <p> |
1196 <p> |
1121 The CUPS header files can always be downloaded from |
1197 The CUPS header files can always be downloaded from |
1122 <a href="http://www.cups.org" target="_blank">www.cups.org</a>. |
1198 <a href="http://www.cups.org" target="_blank">www.cups.org</a>. |
1123 The variable |
1199 The variable |
1124 <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt> |
1200 <tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt> |
1125 can be used to override the default location of the |
1201 can be used to override the default location of the |
1126 CUPS Header files. |
1202 CUPS Header files. |
1127 </blockquote> |
1203 </blockquote> |
1128 <!-- ------------------------------------------------------ --> |
1204 <!-- ------------------------------------------------------ --> |
1129 <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4> |
1205 <h4><a name="xrender">XRender Extension Headers (Solaris & Linux)</a></h4> |
1130 <blockquote> |
1206 <blockquote> |
1131 <p> |
1207 <p> |
1132 <strong>Solaris:</strong> |
1208 <strong>Solaris:</strong> |
1133 XRender header files are required for building the |
1209 XRender header files are required for building the |
1134 OpenJDK on Solaris. |
1210 OpenJDK on Solaris. |
1135 The XRender header file is included with the other X11 header files |
1211 The XRender header file is included with the other X11 header files |
1136 in the package <strong>SFWxwinc</strong> on new enough versions of |
1212 in the package <strong>SFWxwinc</strong> on new enough versions of |
1137 Solaris and will be installed in |
1213 Solaris and will be installed in |
1138 <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> |
1214 <tt>/usr/X11/include/X11/extensions/Xrender.h</tt> |
1139 </p><p> |
1215 </p><p> |
1140 <strong>Linux:</strong> |
1216 <strong>Linux:</strong> |
1141 XRender header files are required for building the |
1217 XRender header files are required for building the |
1142 OpenJDK on Linux. |
1218 OpenJDK on Linux. |
1143 The Linux header files are usually available from a "Xrender" |
1219 The Linux header files are usually available from a "Xrender" |
1144 development package, it's recommended that you try and use |
1220 development package, it's recommended that you try and use |
1145 the package provided by the particular distribution of Linux that |
1221 the package provided by the particular distribution of Linux that |
1146 you are using. |
1222 you are using. |
1147 </p> |
1223 </p> |
1148 </blockquote> |
1224 </blockquote> |
1149 <!-- ------------------------------------------------------ --> |
1225 <!-- ------------------------------------------------------ --> |
1150 <h4><a name="freetype">FreeType 2</a></h4> |
1226 <h4><a name="freetype">FreeType 2</a></h4> |
1151 <blockquote> |
1227 <blockquote> |
1152 Version 2.3 or newer of FreeType is required for building the OpenJDK. |
1228 Version 2.3 or newer of FreeType is required for building the OpenJDK. |
1153 On Unix systems required files can be available as part of your |
1229 On Unix systems required files can be available as part of your |
1154 distribution (while you still may need to upgrade them). |
1230 distribution (while you still may need to upgrade them). |
1155 Note that you need development version of package that |
1231 Note that you need development version of package that |
1156 includes both FreeType library and header files. |
1232 includes both FreeType library and header files. |
1157 <p> |
1233 <p> |
1158 You can always download latest FreeType version from the |
1234 You can always download latest FreeType version from the |
1159 <a href="http://www.freetype.org" target="_blank">FreeType website</a>. |
1235 <a href="http://www.freetype.org" target="_blank">FreeType website</a>. |
1160 <p> |
1236 <p> |
1161 Makefiles will try to pick FreeType from /usr/lib and /usr/include. |
1237 Makefiles will try to pick FreeType from /usr/lib and /usr/include. |
1162 In case it is installed elsewhere you will need to set environment |
1238 In case it is installed elsewhere you will need to set environment |
1163 variables |
1239 variables |
1164 <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt> |
1240 <tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt> |
1165 and |
1241 and |
1166 <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt> |
1242 <tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt> |
1167 to refer to place where library and header files are installed. |
1243 to refer to place where library and header files are installed. |
1168 <p> |
1244 <p> |
1169 Building the freetype 2 libraries from scratch is also possible, |
1245 Building the freetype 2 libraries from scratch is also possible, |
1170 however on Windows refer to the |
1246 however on Windows refer to the |
1171 <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> |
1247 <a href="http://freetype.freedesktop.org/wiki/FreeType_DLL"> |
1172 Windows FreeType DLL build instructions</a>. |
1248 Windows FreeType DLL build instructions</a>. |
1173 <p> |
1249 <p> |
1174 Note that by default FreeType is built with byte code hinting |
1250 Note that by default FreeType is built with byte code hinting |
1175 support disabled due to licensing restrictions. |
1251 support disabled due to licensing restrictions. |
1176 In this case, text appearance and metrics are expected to |
1252 In this case, text appearance and metrics are expected to |
1177 differ from Sun's official JDK build. |
1253 differ from Sun's official JDK build. |
1178 See |
1254 See |
1179 <a href="http://freetype.sourceforge.net/freetype2/index.html"> |
1255 <a href="http://freetype.sourceforge.net/freetype2/index.html"> |
1180 the SourceForge FreeType2 Home Page |
1256 the SourceForge FreeType2 Home Page |
1181 </a> |
1257 </a> |
1182 for more information. |
1258 for more information. |
1183 </blockquote> |
1259 </blockquote> |
1184 <!-- ------------------------------------------------------ --> |
1260 <!-- ------------------------------------------------------ --> |
1185 <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4> |
1261 <h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4> |
1186 <blockquote> |
1262 <blockquote> |
1187 <strong>Linux only:</strong> |
1263 <strong>Linux only:</strong> |
1193 the package provided by the particular version of Linux that |
1269 the package provided by the particular version of Linux that |
1194 you are using. |
1270 you are using. |
1195 The makefiles will check this emit a sanity error if it is |
1271 The makefiles will check this emit a sanity error if it is |
1196 missing or the wrong version. |
1272 missing or the wrong version. |
1197 <p> |
1273 <p> |
1198 In particular, older Linux systems will likely not have the |
1274 In particular, older Linux systems will likely not have the |
1199 right version of ALSA installed, for example |
1275 right version of ALSA installed, for example |
1200 Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently |
1276 Redhat AS 2.1 U2 and SuSE 8.1 do not include a sufficiently |
1201 recent ALSA distribution. |
1277 recent ALSA distribution. |
1202 On rpm-based systems, you can see if ALSA is installed by |
1278 On rpm-based systems, you can see if ALSA is installed by |
1203 running this command: |
1279 running this command: |
1204 <pre> |
1280 <pre> |
1205 <tt>rpm -qa | grep alsa</tt> |
1281 <tt>rpm -qa | grep alsa</tt> |
1206 </pre> |
1282 </pre> |
1207 Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed. |
1283 Both <tt>alsa</tt> and <tt>alsa-devel</tt> packages are needed. |
1208 <p> |
1284 <p> |
1209 If your distribution does not come with ALSA, and you can't |
1285 If your distribution does not come with ALSA, and you can't |
1210 find ALSA packages built for your particular system, |
1286 find ALSA packages built for your particular system, |
1211 you can try to install the pre-built ALSA rpm packages from |
1287 you can try to install the pre-built ALSA rpm packages from |
1212 <a href="http://www.freshrpms.net/" target="_blank"> |
1288 <a href="http://www.freshrpms.net/" target="_blank"> |
1213 <tt>www.freshrpms.net</tt></a>. |
1289 <tt>www.freshrpms.net</tt></a>. |
1214 Note that installing a newer ALSA could |
1290 Note that installing a newer ALSA could |
1215 break sound output if an older version of ALSA was previously |
1291 break sound output if an older version of ALSA was previously |
1216 installed on the system, but it will enable JDK compilation. |
1292 installed on the system, but it will enable JDK compilation. |
1217 <blockquote> |
1293 <blockquote> |
1218 Installation: execute as root<br> |
1294 Installation: execute as root<br> |
1219 [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br> |
1295 [i586]: <code>rpm -Uv --force alsa-lib-devel-0.9.1-rh61.i386.rpm</code><br> |
1220 [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br> |
1296 [x64]: <code>rpm -Uv --force alsa-lib-devel-0.9.8-amd64.x86_64.rpm</code><br> |
1221 Uninstallation:<br> |
1297 Uninstallation:<br> |
1352 </tr> |
1428 </tr> |
1353 </tbody> |
1429 </tbody> |
1354 </table> |
1430 </table> |
1355 </blockquote> |
1431 </blockquote> |
1356 <p> |
1432 <p> |
1357 Note that the CYGWIN software can conflict with other non-CYGWIN |
1433 Note that the CYGWIN software can conflict with other non-CYGWIN |
1358 software on your Windows system. |
1434 software on your Windows system. |
1359 CYGWIN provides a |
1435 CYGWIN provides a |
1360 <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for |
1436 <a href="http://cygwin.com/faq/faq.using.html" target="_blank">FAQ</a> for |
1361 known issues and problems, of particular interest is the |
1437 known issues and problems, of particular interest is the |
1362 section on |
1438 section on |
1363 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1439 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1364 BLODA (applications that interfere with CYGWIN)</a>. |
1440 BLODA (applications that interfere with CYGWIN)</a>. |
1365 <p> |
1441 <p> |
1366 <b>WARNING:</b> |
1442 <b>WARNING:</b> |
1367 Be very careful with <b><tt>link.exe</tt></b>, it will conflict |
1443 Be very careful with <b><tt>link.exe</tt></b>, it will conflict |
1368 with the Visual Studio version. You need the Visual Studio |
1444 with the Visual Studio version. You need the Visual Studio |
1369 version of <tt>link.exe</tt>, not the CYGWIN one. |
1445 version of <tt>link.exe</tt>, not the CYGWIN one. |
1370 So it's important that the Visual Studio paths in PATH preceed |
1446 So it's important that the Visual Studio paths in PATH preceed |
1371 the CYGWIN path <tt>/usr/bin</tt>. |
1447 the CYGWIN path <tt>/usr/bin</tt>. |
1372 </blockquote> |
1448 </blockquote> |
1373 <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong> |
1449 <strong><a name="dxsdk">Microsoft DirectX 9.0 SDK header files and libraries</a></strong> |
1374 <blockquote> |
1450 <blockquote> |
1375 Microsoft DirectX 9.0 SDK (Summer 2004) |
1451 Microsoft DirectX 9.0 SDK (Summer 2004) |
1376 headers are required for building |
1452 headers are required for building |
1377 OpenJDK. |
1453 OpenJDK. |
1378 This SDK can be downloaded from |
1454 This SDK can be downloaded from |
1379 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> |
1455 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en" target="_blank"> |
1380 Microsoft DirectX 9.0 SDK (Summer 2004)</a>. |
1456 Microsoft DirectX 9.0 SDK (Summer 2004)</a>. |
1381 If the link above becomes obsolete, the SDK can be found from |
1457 If the link above becomes obsolete, the SDK can be found from |
1382 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> |
1458 <a href="http://download.microsoft.com" target="_blank">the Microsoft Download Site</a> |
1383 (search with "DirectX 9.0 SDK Update Summer 2004"). |
1459 (search with "DirectX 9.0 SDK Update Summer 2004"). |
1384 The location of this SDK can be set with |
1460 The location of this SDK can be set with |
1385 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> |
1461 <tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> |
1448 binaries and associated files in the <tt>j2sdk-image</tt> |
1524 binaries and associated files in the <tt>j2sdk-image</tt> |
1449 directory in the output directory. |
1525 directory in the output directory. |
1450 The default output directory is |
1526 The default output directory is |
1451 <tt>build/<i>platform</i></tt>, |
1527 <tt>build/<i>platform</i></tt>, |
1452 where <tt><i>platform</i></tt> is one of |
1528 where <tt><i>platform</i></tt> is one of |
1453 <tt><ul> |
1529 <blockquote> |
1454 <li>solaris-sparc</li> |
1530 <ul> |
1455 <li>solaris-sparcv9</li> |
1531 <li><tt>solaris-sparc</tt></li> |
1456 <li>solaris-i586</li> |
1532 <li><tt>solaris-sparcv9</tt></li> |
1457 <li>solaris-amd64</li> |
1533 <li><tt>solaris-i586</tt></li> |
1458 <li>linux-i586</li> |
1534 <li><tt>solaris-amd64</tt></li> |
1459 <li>linux-amd64</li> |
1535 <li><tt>linux-i586</tt></li> |
1460 <li>windows-i586</li> |
1536 <li><tt>linux-amd64</tt></li> |
1461 <li>windows-amd64</li> |
1537 <li><tt>windows-i586</tt></li> |
1462 </ul></tt> |
1538 <li><tt>windows-amd64</tt></li> |
|
1539 </ul> |
|
1540 </blockquote> |
1463 In particular, the |
1541 In particular, the |
1464 <tt>build/<i>platform</i>/j2sdk-image/bin</tt> |
1542 <tt>build/<i>platform</i>/j2sdk-image/bin</tt> |
1465 directory should contain executables for the |
1543 directory should contain executables for the |
1466 OpenJDK tools and utilities. |
1544 OpenJDK tools and utilities. |
1467 <p> |
1545 <p> |
1468 You can test that the build completed properly by using the build |
1546 You can test that the build completed properly by using the build |
1469 to run the various demos that you will find in the |
1547 to run the various demos that you will find in the |
1470 <tt>build/<i>platform</i>/j2sdk-image/demo</tt> |
1548 <tt>build/<i>platform</i>/j2sdk-image/demo</tt> |
1471 directory. |
1549 directory. |
1472 <p> |
1550 <p> |
1473 The provided regression tests can be run with the <tt>jtreg</tt> |
1551 The provided regression tests can be run with the <tt>jtreg</tt> |
1474 utility from |
1552 utility from |
1475 <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>. |
1553 <a href="http://openjdk.java.net/jtreg/" target="_blank">the jtreg site</a>. |
1476 </blockquote> |
1554 </blockquote> |
1477 <!-- ------------------------------------------------------ --> |
1555 <!-- ------------------------------------------------------ --> |
1478 <hr> |
1556 <hr> |
1479 <h2><a name="variables">Environment/Make Variables</a></h2> |
1557 <h2><a name="variables">Environment/Make Variables</a></h2> |
1480 <p> |
1558 <p> |
1481 Some of the |
1559 Some of the |
1482 environment or make variables (just called <b>variables</b> in this |
1560 environment or make variables (just called <b>variables</b> in this |
1483 document) that can impact the build are: |
1561 document) that can impact the build are: |
1484 <blockquote> |
1562 <blockquote> |
1485 <dl> |
1563 <dl> |
1486 <dt><a name="path"><tt>PATH</tt></a> </dt> |
1564 <dt><a name="path"><tt>PATH</tt></a> </dt> |
1487 <dd>Typically you want to set the <tt>PATH</tt> to include: |
1565 <dd>Typically you want to set the <tt>PATH</tt> to include: |
1488 <ul> |
1566 <ul> |
1489 <li>The location of the GNU make binary</li> |
1567 <li>The location of the GNU make binary</li> |
1490 <li>The location of the Bootstrap JDK <tt>java</tt> |
1568 <li>The location of the Bootstrap JDK <tt>java</tt> |
1491 (see <a href="#bootjdk">Bootstrap JDK</a>)</li> |
1569 (see <a href="#bootjdk">Bootstrap JDK</a>)</li> |
1492 <li>The location of the C/C++ compilers |
1570 <li>The location of the C/C++ compilers |
1493 (see <a href="#compilers"><tt>compilers</tt></a>)</li> |
1571 (see <a href="#compilers"><tt>compilers</tt></a>)</li> |
1494 <li>The location or locations for the Unix command utilities |
1572 <li>The location or locations for the Unix command utilities |
1495 (e.g. <tt>/usr/bin</tt>)</li> |
1573 (e.g. <tt>/usr/bin</tt>)</li> |
1496 </ul> |
1574 </ul> |
1497 </dd> |
1575 </dd> |
1498 <dt><tt>MILESTONE</tt> </dt> |
1576 <dt><tt>MILESTONE</tt> </dt> |
1499 <dd> |
1577 <dd> |
1500 The milestone name for the build (<i>e.g.</i>"beta"). |
1578 The milestone name for the build (<i>e.g.</i>"beta"). |
1692 troubleshooting a build failure is to recheck that you have satisfied |
1770 troubleshooting a build failure is to recheck that you have satisfied |
1693 all the pre-build requirements for your platform. |
1771 all the pre-build requirements for your platform. |
1694 Look for the check list of the platform you are building on in the |
1772 Look for the check list of the platform you are building on in the |
1695 <a href="#contents">Table of Contents</a>. |
1773 <a href="#contents">Table of Contents</a>. |
1696 <p> |
1774 <p> |
1697 You can validate your build environment by using the <tt>sanity</tt> |
1775 You can validate your build environment by using the <tt>sanity</tt> |
1698 target. |
1776 target. |
1699 Any errors listed |
1777 Any errors listed |
1700 will stop the build from starting, and any warnings may result in |
1778 will stop the build from starting, and any warnings may result in |
1701 a flawed product build. |
1779 a flawed product build. |
1702 We strongly encourage you to evaluate every |
1780 We strongly encourage you to evaluate every |
1703 sanity check warning and fix it if required, before you proceed |
1781 sanity check warning and fix it if required, before you proceed |
1704 further with your build. |
1782 further with your build. |
1705 <p> |
1783 <p> |
1706 Some of the more common problems with builds are briefly described |
1784 Some of the more common problems with builds are briefly described |
1707 below, with suggestions for remedies. |
1785 below, with suggestions for remedies. |
1708 <ul> |
1786 <ul> |
1709 <li> |
1787 <li> |
1710 <b>Slow Builds:</b> |
1788 <b>Slow Builds:</b> |
1711 <blockquote> |
1789 <blockquote> |
1712 If your build machine seems to be overloaded from too many |
1790 If your build machine seems to be overloaded from too many |
1713 simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt> |
1791 simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt> |
1714 variable to <tt>1</tt> (if you're using a multiple CPU |
1792 variable to <tt>1</tt> (if you're using a multiple CPU |
1715 machine, setting it to more than the the number of CPUs is probably |
1793 machine, setting it to more than the the number of CPUs is probably |
1716 not a good idea). |
1794 not a good idea). |
1717 <p> |
1795 <p> |
1718 Creating the javadocs can be very slow, if you are running |
1796 Creating the javadocs can be very slow, if you are running |
1719 javadoc, consider skipping that step. |
1797 javadoc, consider skipping that step. |
1720 <p> |
1798 <p> |
1721 Faster hardware and more RAM always helps too. |
1799 Faster hardware and more RAM always helps too. |
1722 The VM build tends to be CPU intensive (many C++ compiles), |
1800 The VM build tends to be CPU intensive (many C++ compiles), |
1723 and the rest of the JDK will often be disk intensive. |
1801 and the rest of the JDK will often be disk intensive. |
1724 <p> |
1802 <p> |
1725 Faster compiles are possible using a tool called |
1803 Faster compiles are possible using a tool called |
1726 <a href="http://ccache.samba.org/" target="_blank">ccache</a>. |
1804 <a href="http://ccache.samba.org/" target="_blank">ccache</a>. |
1727 </blockquote> |
1805 </blockquote> |
1728 </li> |
1806 </li> |
1729 <li> |
1807 <li> |
1730 <b>File time issues:</b> |
1808 <b>File time issues:</b> |
1731 <blockquote> |
1809 <blockquote> |
1732 If you see warnings that refer to file time stamps, e.g. |
1810 If you see warnings that refer to file time stamps, e.g. |
1733 <blockquote> |
1811 <blockquote> |
1734 <i>Warning message:</i><tt> File `xxx' has modification time in |
1812 <i>Warning message:</i><tt> File `xxx' has modification time in |
1735 the future.</tt> |
1813 the future.</tt> |
1736 <br> |
1814 <br> |
1737 <i>Warning message:</i> <tt> Clock skew detected. Your build may |
1815 <i>Warning message:</i> <tt> Clock skew detected. Your build may |
1738 be incomplete.</tt> |
1816 be incomplete.</tt> |
1739 </blockquote> |
1817 </blockquote> |
1740 These warnings can occur when the clock on the build machine is out of |
1818 These warnings can occur when the clock on the build machine is out of |
1741 sync with the timestamps on the source files. Other errors, apparently |
1819 sync with the timestamps on the source files. Other errors, apparently |
1742 unrelated but in fact caused by the clock skew, can occur along with |
1820 unrelated but in fact caused by the clock skew, can occur along with |
1743 the clock skew warnings. These secondary errors may tend to obscure the |
1821 the clock skew warnings. These secondary errors may tend to obscure the |
1774 <li> |
1852 <li> |
1775 <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b> |
1853 <b>Error Message: <tt>cannot restore segment prot after reloc</tt></b> |
1776 <blockquote> |
1854 <blockquote> |
1777 This is probably an issue with SELinux (See |
1855 This is probably an issue with SELinux (See |
1778 <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> |
1856 <a href="http://en.wikipedia.org/wiki/SELinux" target="_blank"> |
1779 http://en.wikipedia.org/wiki/SELinux</a>). |
1857 http://en.wikipedia.org/wiki/SELinux</a>). |
1780 Parts of the VM is built without the <tt>-fPIC</tt> for |
1858 Parts of the VM is built without the <tt>-fPIC</tt> for |
1781 performance reasons. |
1859 performance reasons. |
1782 <p> |
1860 <p> |
1783 To completely disable SELinux: |
1861 To completely disable SELinux: |
1784 <tt> |
1862 <ol> |
1785 <ol> |
1863 <li><tt>$ su root</tt></li> |
1786 <li>$ su root</li> |
1864 <li><tt># system-config-securitylevel</tt></li> |
1787 <li># system-config-securitylevel</li> |
1865 <li><tt>In the window that appears, select the SELinux tab</tt></li> |
1788 <li>In the window that appears, select the SELinux tab</li> |
1866 <li><tt>Disable SELinux</tt></li> |
1789 <li>Disable SELinux</li> |
1867 </ol> |
1790 </ol> |
|
1791 </tt> |
|
1792 <p> |
1868 <p> |
1793 Alternatively, instead of completely disabling it you could |
1869 Alternatively, instead of completely disabling it you could |
1794 disable just this one check. |
1870 disable just this one check. |
1795 <tt> |
1871 <ol> |
1796 <ol> |
1872 <li>Select System->Administration->SELinux Management</li> |
1797 <li>Select System->Administration->SELinux Management</li> |
1873 <li>In the SELinux Management Tool which appears, |
1798 <li>In the SELinux Management Tool which appears, |
|
1799 select "Boolean" from the menu on the left</li> |
1874 select "Boolean" from the menu on the left</li> |
1800 <li>Expand the "Memory Protection" group</li> |
1875 <li>Expand the "Memory Protection" group</li> |
1801 <li>Check the first item, labeled |
1876 <li>Check the first item, labeled |
1802 "Allow all unconfined executables to use libraries requiring text relocation ..."</li> |
1877 "Allow all unconfined executables to use libraries requiring text relocation ..."</li> |
1803 </ol> |
1878 </ol> |
1804 </tt> |
|
1805 </blockquote> |
1879 </blockquote> |
1806 </li> |
1880 </li> |
1807 <li> |
1881 <li> |
1808 <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b> |
1882 <b>Windows Error Message: <tt>*** fatal error - couldn't allocate heap, ... </tt></b> |
1809 <blockquote> |
1883 <blockquote> |
1810 The CYGWIN software can conflict with other non-CYGWIN |
1884 The CYGWIN software can conflict with other non-CYGWIN |
1811 software. See the CYGWIN FAQ section on |
1885 software. See the CYGWIN FAQ section on |
1812 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1886 <a href="http://cygwin.com/faq/faq.using.html#faq.using.bloda" target="_blank"> |
1813 BLODA (applications that interfere with CYGWIN)</a>. |
1887 BLODA (applications that interfere with CYGWIN)</a>. |
1814 </blockquote> |
1888 </blockquote> |
1815 </li> |
1889 </li> |
1816 <li> |
1890 <li> |
1817 <b>Windows Error Message: <tt>*** multiple target patterns. Stop.</tt></b> |
1891 <b>Windows Error Message: <tt>*** multiple target patterns. Stop.</tt></b> |
1818 <blockquote> |
1892 <blockquote> |