2
|
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
2 |
|
|
3 |
<html>
|
|
4 |
<head><title>OpenJDK Build README</title></head>
|
|
5 |
|
|
6 |
<!-- ------------------------------------------------------ -->
|
|
7 |
<hr noshade="noshade" size="3">
|
|
8 |
|
|
9 |
<center>
|
|
10 |
<h1>OpenJDK Build README</h1>
|
|
11 |
</center>
|
|
12 |
|
|
13 |
<!-- ------------------------------------------------------ -->
|
|
14 |
<hr noshade="noshade" size="3">
|
|
15 |
|
|
16 |
<h2><a name="introduction">Introduction</a></h2>
|
|
17 |
|
|
18 |
<blockquote>
|
|
19 |
<p>
|
|
20 |
This README file contains build instructions for the
|
|
21 |
<a href="http://openjdk.java.net">OpenJDK</a>.
|
|
22 |
Building the source code for the
|
|
23 |
OpenJDK
|
|
24 |
requires
|
|
25 |
a certain degree of technical expertise.
|
|
26 |
</blockquote>
|
|
27 |
|
|
28 |
<!-- ------------------------------------------------------ -->
|
|
29 |
<hr noshade="noshade" size="3">
|
|
30 |
|
|
31 |
<h2><a name="contents">Contents</a></h2>
|
|
32 |
|
|
33 |
<blockquote>
|
|
34 |
<ul>
|
|
35 |
<li><a href="#introduction">Introduction</a></li>
|
|
36 |
<li><a href="#MBE">Minimum Build Environments</a></li>
|
|
37 |
<li><a href="#SDBE">Specific Developer Build Environments</a></li>
|
|
38 |
<li><a href="#directories">Source Directory Structure</a> </li>
|
|
39 |
<li><a href="#building">Build Information</a>
|
|
40 |
<ul type="disc">
|
|
41 |
<li><a href="#gmake">GNU Make (<tt><i>gmake</i></tt>)</a> </li>
|
|
42 |
<li><a href="#linux">Basic Linux System Setup</a> </li>
|
|
43 |
<li><a href="#solaris">Basic Solaris System Setup</a> </li>
|
|
44 |
<li><a href="#windows">Basic Windows System Setup</a> </li>
|
|
45 |
<li><a href="#dependencies">Build Dependencies</a> </li>
|
|
46 |
<ul type="disc">
|
|
47 |
<li><a href="#bootjdk">Bootstrap JDK</a> </li>
|
|
48 |
<li><a href="#binaryplugs">Binary Plugs</a> </li>
|
|
49 |
<li><a href="#cacerts">Certificate Authority File (cacert)</a> </li>
|
|
50 |
<li><a href="#compilers">Compilers</a>
|
|
51 |
<ul>
|
|
52 |
<li><a href="#msvc">Microsoft Visual Studio</a> </li>
|
|
53 |
<li><a href="#mssdk">Microsoft Platform SDK</a> </li>
|
|
54 |
<li><a href="#gcc">Linux gcc/binutils</a> </li>
|
|
55 |
<li><a href="#studio">Sun Studio</a> </li>
|
|
56 |
</ul>
|
|
57 |
</li>
|
|
58 |
<li>Linux and Solaris:
|
|
59 |
<ul>
|
|
60 |
<li><a href="#cups">CUPS Include files</a> </li>
|
|
61 |
</ul>
|
|
62 |
</li>
|
|
63 |
<li>Windows only:
|
|
64 |
<ul>
|
|
65 |
<li>Unix Command Tools (<a href="#cygwin">CYGWIN</a>)</li>
|
|
66 |
<li><a href="#dxsdk">DirectX 9.0 SDK</a> </li>
|
|
67 |
</ul>
|
|
68 |
</li>
|
|
69 |
</ul>
|
|
70 |
</ul>
|
|
71 |
</li>
|
|
72 |
<li><a href="#creating">Creating the Build</a> </li>
|
|
73 |
<li><a href="#testing">Testing the Build</a> </li>
|
|
74 |
<li><a href="#variables">Environment/Make Variables</a></li>
|
|
75 |
<li><a href="#troubleshooting">Troubleshooting</a></li>
|
|
76 |
</ul>
|
|
77 |
</blockquote>
|
|
78 |
|
|
79 |
<!-- ------------------------------------------------------ -->
|
|
80 |
<hr noshade="noshade" size="3">
|
|
81 |
|
|
82 |
<h2><a name="MBE">Minimum Build Environments</a></h2>
|
|
83 |
|
|
84 |
<blockquote>
|
|
85 |
<p>
|
|
86 |
This file often describes specific requirements for what we call the
|
|
87 |
"minimum build environments" (MBE) for the JDK.
|
|
88 |
Building with the MBE will generate the most compatible
|
|
89 |
bits that install on, and run correctly on, the most variations
|
|
90 |
of the same base OS and hardware architecture.
|
|
91 |
These usually represent what is often called the
|
|
92 |
least common denominator platforms.
|
|
93 |
It is understood that most developers will NOT be using these
|
|
94 |
specific platforms, and in fact creating these specific platforms
|
|
95 |
may be difficult due to the age of some of this software.
|
|
96 |
<p>
|
|
97 |
|
|
98 |
<p>
|
|
99 |
The minimum OS and C/C++ compiler versions needed for building the
|
|
100 |
OpenJDK:
|
|
101 |
<p>
|
|
102 |
<center>
|
|
103 |
<table border="1">
|
|
104 |
<thead>
|
|
105 |
<tr>
|
|
106 |
<th>Base OS and Architecture</th>
|
|
107 |
<th>OS</th>
|
|
108 |
<th>Compiler</th>
|
|
109 |
</tr>
|
|
110 |
</thead>
|
|
111 |
<tbody>
|
|
112 |
<tr>
|
|
113 |
<td>Linux X86 (32bit)</td>
|
|
114 |
<td>Red Hat Enterprise Linux 4 </td>
|
|
115 |
<td>gcc 4 </td>
|
|
116 |
</tr>
|
|
117 |
<tr>
|
|
118 |
<td>Linux X64 (64bit)</td>
|
|
119 |
<td>Red Hat Enterprise Linux 4 </td>
|
|
120 |
<td>gcc 4 </td>
|
|
121 |
</tr>
|
|
122 |
<tr>
|
|
123 |
<td>Solaris SPARC (32bit)</td>
|
|
124 |
<td>Solaris 10 + patches
|
|
125 |
<br>
|
|
126 |
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
|
|
127 |
</td>
|
|
128 |
<td>Sun Studio 11 </td>
|
|
129 |
</tr>
|
|
130 |
<tr>
|
|
131 |
<td>Solaris SPARCV9 (64bit)</td>
|
|
132 |
<td>Solaris 10 + patches
|
|
133 |
<br>
|
|
134 |
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
|
|
135 |
</td>
|
|
136 |
<td>Sun Studio 11</td>
|
|
137 |
</tr>
|
|
138 |
<tr>
|
|
139 |
<td>Solaris X86 (32bit)</td>
|
|
140 |
<td>Solaris 10 + patches
|
|
141 |
<br>
|
|
142 |
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
|
|
143 |
</td>
|
|
144 |
<td>Sun Studio 11</td>
|
|
145 |
</tr>
|
|
146 |
<tr>
|
|
147 |
<td>Solaris X64 (64bit)</td>
|
|
148 |
<td>Solaris 10 + patches
|
|
149 |
<br>
|
|
150 |
See <a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/JavaSE">SunSolve</a> for patch downloads.
|
|
151 |
</td>
|
|
152 |
<td>Sun Studio 11</td>
|
|
153 |
</tr>
|
|
154 |
<tr>
|
|
155 |
<td>Windows X86 (32bit)</td>
|
|
156 |
<td>Windows XP</td>
|
|
157 |
<td>Microsoft Visual Studio .NET 2003 Professional</td>
|
|
158 |
</tr>
|
|
159 |
<tr>
|
|
160 |
<td>Windows X64 (64bit)</td>
|
|
161 |
<td>Windows Server 2003 - Enterprise x64 Edition</td>
|
|
162 |
<td>Microsoft Platform SDK - April 2005</td>
|
|
163 |
</tr>
|
|
164 |
</tbody>
|
|
165 |
</table>
|
|
166 |
</center>
|
|
167 |
</blockquote>
|
|
168 |
|
|
169 |
<!-- ------------------------------------------------------ -->
|
|
170 |
<hr noshade="noshade" size="3">
|
|
171 |
|
|
172 |
<h2><a name="SDBE">Specific Developer Build Environments</a></h2>
|
|
173 |
|
|
174 |
<blockquote>
|
|
175 |
<p>
|
|
176 |
We won't be listing all the possible environments, but
|
|
177 |
we will try to provide what information we have available to us.
|
|
178 |
</blockquote>
|
|
179 |
|
|
180 |
<h3><a name="fedora">Fedora</a></h3>
|
|
181 |
|
|
182 |
<blockquote>
|
|
183 |
TBD
|
|
184 |
</blockquote>
|
|
185 |
|
|
186 |
<h3><a name="debian">Debian</a></h3>
|
|
187 |
|
|
188 |
<blockquote>
|
|
189 |
TBD
|
|
190 |
</blockquote>
|
|
191 |
|
|
192 |
<h3><a name="ubuntu">Ubuntu</a></h3>
|
|
193 |
|
|
194 |
<blockquote>
|
|
195 |
<p>
|
|
196 |
In addition to needing the Bootstrap JDK and the Binary Plugs,
|
|
197 |
when building on Ubuntu you will need to
|
|
198 |
make sure certain packages are installed.
|
|
199 |
In particular, certain X11 packages, make, m4, gawk, gcc 4,
|
|
200 |
binutils, cups, freetype
|
|
201 |
and alsa.
|
|
202 |
|
|
203 |
<h4>Ubuntu 6.06</h4>
|
|
204 |
|
|
205 |
<p>
|
|
206 |
The following list of packages for Ubuntu 6.06 is a working set that
|
|
207 |
does appear to work.
|
|
208 |
|
|
209 |
<p>
|
|
210 |
<b>Note that it's quite possible that some of these
|
|
211 |
packages are not required, so anyone discovering that some of the
|
|
212 |
packages listed below are NOT required,
|
|
213 |
please let the
|
|
214 |
OpenJDK
|
|
215 |
team know.</b>
|
|
216 |
<p>
|
|
217 |
All the packages below can be installed with the
|
|
218 |
Synaptic Package manager provided with the base Ubuntu 6.06 release.
|
|
219 |
|
|
220 |
<blockquote>
|
|
221 |
<ul>
|
|
222 |
<li>binutils (2.16.1cvs20060117-1ubuntu2.1)</li>
|
|
223 |
<li>cpp (4:4.0.3-1)</li>
|
|
224 |
<li>cpp-4.0 (4.0.3-1ubuntu5)</li>
|
|
225 |
<li>libfreetype6-dev</li>
|
|
226 |
<li>g++ (4:4.0.3-1)</li>
|
|
227 |
<li>g++-4.0 (4.0.3-1ubuntu5)</li>
|
|
228 |
<li>gawk (1:3.1.5-2build1)</li>
|
|
229 |
<li>gcc (4:4.0.3-1)</li>
|
|
230 |
<li>gcc-4.0 (4.0.3-1ubuntu5)</li>
|
|
231 |
<li>libasound2-dev (1.0.10-2ubuntu4)</li>
|
|
232 |
<li>libc6 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
|
|
233 |
<li>libc6-dev (2.3.6-0ubuntu20.4)</li>
|
|
234 |
<li>libc6-i686 (2.3.6-0ubuntu20) to 2.3.6-0ubuntu20.4</li>
|
|
235 |
<li>libcupsys2-dev (1.2.2-0ubuntu0.6.06)</li>
|
|
236 |
<li>libgcrypt11-dev (1.2.2-1)</li>
|
|
237 |
<li>libgnutls-dev (1.2.9-2ubuntu1.1)</li>
|
|
238 |
<li>libgnutls12 (1.2.9-2ubuntu1) to 1.2.9-2ubuntu1.1</li>
|
|
239 |
<li>libgpg-error-dev (1.1-4)</li>
|
|
240 |
<li>libice-dev (2:1.0.0-0ubuntu2)</li>
|
|
241 |
<li>liblockfile1 (1.06.1)</li>
|
|
242 |
<li>libopencdk8-dev (0.5.7-2)</li>
|
|
243 |
<li>libpopt-dev (1.7-5)</li>
|
|
244 |
<li>libsm-dev (2:1.0.0-0ubuntu2)</li>
|
|
245 |
<li>libstdc++6-4.0-dev (4.0.3-1ubuntu5)</li>
|
|
246 |
<li>libtasn1-2-dev (0.2.17-1ubuntu1)</li>
|
|
247 |
<li>libx11-dev (2:1.0.0-0ubuntu9)</li>
|
|
248 |
<li>libxau-dev (1:1.0.0-0ubuntu4)</li>
|
|
249 |
<li>libxaw-headers (2:1.0.1-0ubuntu3)</li>
|
|
250 |
<li>libxaw7-dev (2:1.0.1-0ubuntu3)</li>
|
|
251 |
<li>libxdmcp-dev (1:1.0.0-0ubuntu2)</li>
|
|
252 |
<li>libxext-dev (2:1.0.0-0ubuntu4)</li>
|
|
253 |
<li>libxi-dev (2:1.0.0-0ubuntu3) </li>
|
|
254 |
<li>libxmu-dev (2:1.0.0-0ubuntu3)</li>
|
|
255 |
<li>libxmu-headers (2:1.0.0-0ubuntu3)</li>
|
|
256 |
<li>libxmuu-dev (2:1.0.0-0ubuntu3)</li>
|
|
257 |
<li>libxp-dev (6.8.2-11ubuntu2)</li>
|
|
258 |
<li>libxpm-dev (1:3.5.4.2-0ubuntu3)</li>
|
|
259 |
<li>libxrandr-dev (1:1.1.0.2-0ubuntu4)</li>
|
|
260 |
<li>libxt-dev (1:1.0.0-0ubuntu3)</li>
|
|
261 |
<li>libxtrap-dev (2:1.0.0-0ubuntu2)</li>
|
|
262 |
<li>libxtst-dev (2:1.0.1-0ubuntu2)</li>
|
|
263 |
<li>libxv-dev (2:1.0.1-0ubuntu3)</li>
|
|
264 |
<li>linux-kernel-headers (2.6.11.2-0ubuntu18)</li>
|
|
265 |
<li>m4 (1.4.4-1)</li>
|
|
266 |
<li>make (3.80+3.81.b4-1)</li>
|
|
267 |
<li>ssl-cert (1.0.13)</li>
|
|
268 |
<li>x-dev (7.0.4-0ubuntu2)</li>
|
|
269 |
<li>x11proto-core-dev (7.0.4-0ubuntu2)</li>
|
|
270 |
<li>x11proto-input-dev (1.3.2-0ubuntu2)</li>
|
|
271 |
<li>x11proto-kb-dev (1.0.2-0ubuntu2)</li>
|
|
272 |
<li>x11proto-randr-dev (1.1.2-0ubuntu2)</li>
|
|
273 |
<li>x11proto-record-dev (1.13.2-0ubuntu2)</li>
|
|
274 |
<li>x11proto-trap-dev (3.4.3-0ubuntu2)</li>
|
|
275 |
<li>x11proto-video-dev (2.2.2-0ubuntu2)</li>
|
|
276 |
<li>x11proto-xext-dev (7.0.2-0ubuntu2)</li>
|
|
277 |
<li>xlibs-dev (7.0.0-0ubuntu45)</li>
|
|
278 |
<li>zlib1g-dev (1:1.2.3-6ubuntu4)</li>
|
|
279 |
</ul>
|
|
280 |
</blockquote>
|
|
281 |
|
|
282 |
<h4>Ubuntu 7.04</h4>
|
|
283 |
|
|
284 |
<p>
|
|
285 |
Using the Synaptic Package Manager, download the following
|
|
286 |
packages (double indented packages are automatically aquired
|
|
287 |
due to package dependencies):
|
|
288 |
|
|
289 |
<blockquote>
|
|
290 |
<ul>
|
|
291 |
<li>build-essential</li>
|
|
292 |
<ul>
|
|
293 |
<li>dpkg-dev</li>
|
|
294 |
<li>g++</li>
|
|
295 |
<li>g++-4.1</li>
|
|
296 |
<li>libc6-dev</li>
|
|
297 |
<li>libstdc++6.4.1-dev</li>
|
|
298 |
<li>linux-libc-dev</li>
|
|
299 |
</ul>
|
|
300 |
<li>gawk</li>
|
|
301 |
<li>m4</li>
|
|
302 |
<li>libasound2-dev</li>
|
|
303 |
<li>libcupsys2-dev</li>
|
|
304 |
<ul>
|
|
305 |
<li>libgcrypt11-dev</li>
|
|
306 |
<li>lgnutls-dev</li>
|
|
307 |
<li>libgpg-error-dev</li>
|
|
308 |
<li>liblzo-dev</li>
|
|
309 |
<li>libopencdk8-dev</li>
|
|
310 |
<li>libpopt-dev</li>
|
|
311 |
<li>libtasn1-3-dev</li>
|
|
312 |
<li>zlib1g-dev</li>
|
|
313 |
</ul>
|
|
314 |
<li>sun-java6-jdk</li>
|
|
315 |
<ul>
|
|
316 |
<li>java-common</li>
|
|
317 |
<li>libltdl3</li>
|
|
318 |
<li>odbcinst1debian1</li>
|
|
319 |
<li>sun-java6-bin</li>
|
|
320 |
<li>sun-java6-jre</li>
|
|
321 |
<li>unixodbc</li>
|
|
322 |
</ul>
|
|
323 |
<li>xlibs-dev</li>
|
|
324 |
<ul>
|
|
325 |
<li>(many)</li>
|
|
326 |
</ul>
|
|
327 |
<li>x11proto-print-dev</li>
|
|
328 |
<li>libxaw7-dev</li>
|
|
329 |
<ul>
|
|
330 |
<li>libxaw-headers</li>
|
|
331 |
</ul>
|
|
332 |
<li>libxp-dev</li>
|
|
333 |
<li>libfreetype6-dev</li>
|
|
334 |
</ul>
|
|
335 |
</blockquote>
|
|
336 |
</blockquote>
|
|
337 |
|
|
338 |
<!-- ------------------------------------------------------ -->
|
|
339 |
<hr noshade="noshade" size="3">
|
|
340 |
|
|
341 |
<h2><a name="directories">Source Directory Structure</a></h2>
|
|
342 |
|
|
343 |
<blockquote>
|
|
344 |
<p>
|
|
345 |
The source code for the
|
|
346 |
OpenJDK is
|
|
347 |
delivered in <i>3</i> sibling directories:
|
|
348 |
<tt>hotspot</tt>,
|
|
349 |
<tt>langtools</tt>,
|
|
350 |
<tt>corba</tt>,
|
|
351 |
<tt>jaxws</tt>,
|
|
352 |
<tt>jaxp</tt>,
|
|
353 |
<tt>jdk</tt>
|
|
354 |
and
|
|
355 |
The <tt>hotspot</tt> directory contains the source code and make
|
|
356 |
files for
|
|
357 |
building the
|
|
358 |
OpenJDK
|
|
359 |
Hotspot Virtual Machine.
|
|
360 |
The <tt>jdk</tt>
|
|
361 |
directory contains the source code and make files for
|
|
362 |
building the
|
|
363 |
OpenJDK
|
|
364 |
runtime libraries, tools and demos.
|
|
365 |
The top level Makefile is used to build the complete OpenJDK
|
|
366 |
release including building the hotspot
|
|
367 |
VM, staging the VM binaries, and building the
|
|
368 |
OpenJDK
|
|
369 |
runtime libraries,
|
|
370 |
tools and demos.
|
|
371 |
</blockquote>
|
|
372 |
|
|
373 |
<!-- ------------------------------------------------------ -->
|
|
374 |
<hr noshade="noshade" size="3">
|
|
375 |
|
|
376 |
<h2><a name="building">Build Information</a></h2>
|
|
377 |
|
|
378 |
<blockquote>
|
|
379 |
<p>
|
|
380 |
Building the
|
|
381 |
OpenJDK
|
|
382 |
is done with a <tt><i>gmake</i></tt>
|
|
383 |
command line and various
|
|
384 |
environment or make variable settings that direct the make rules
|
|
385 |
to where various components have been installed.
|
|
386 |
Where possible the makefiles will attempt to located the various
|
|
387 |
components in the default locations or any component specific
|
|
388 |
variable settings.
|
|
389 |
When the normal defaults fail or components cannot be found,
|
|
390 |
the various
|
|
391 |
<tt>ALT_*</tt> variables (alternates)
|
|
392 |
can be used to help the makefiles locate components.
|
|
393 |
<p>
|
|
394 |
Refer to the bash/sh/ksh setup file
|
|
395 |
<tt>jdk/make/jdk_generic_profile.sh</tt>
|
|
396 |
if you need help in setting up your environment variables.
|
|
397 |
A build could be as simple as:
|
|
398 |
<blockquote>
|
|
399 |
<pre><tt>
|
|
400 |
bash
|
|
401 |
. jdk/make/jdk_generic_profile.sh
|
|
402 |
<i>gmake</i> sanity && <i>gmake</i>
|
|
403 |
</tt></pre>
|
|
404 |
</blockquote>
|
|
405 |
<p>
|
|
406 |
Of course ksh or sh would work too.
|
|
407 |
But some customization will probably be necessary.
|
|
408 |
The <tt>sanity</tt> rule will make some basic checks on build
|
|
409 |
dependencies and generate appropriate warning messages
|
|
410 |
regarding missing, out of date, or newer than expected components
|
|
411 |
found on your system.
|
|
412 |
</blockquote>
|
|
413 |
|
|
414 |
<!-- ------------------------------------------------------ -->
|
|
415 |
<hr noshade="noshade" size="3">
|
|
416 |
|
|
417 |
<h3><a name="gmake">GNU make (<tt><i>gmake</i></tt>)</a></h3>
|
|
418 |
|
|
419 |
<blockquote>
|
|
420 |
<p>
|
|
421 |
The Makefiles in the
|
|
422 |
OpenJDK
|
|
423 |
are only valid when used with the
|
|
424 |
GNU version of the utility command <tt>make</tt>
|
|
425 |
(<tt><i>gmake</i></tt>).
|
|
426 |
A few notes about using GNU make:
|
|
427 |
<ul>
|
|
428 |
<li>
|
|
429 |
In general, you need GNU make version 3.78.1 or newer.
|
|
430 |
</li>
|
|
431 |
<li>
|
|
432 |
Place the location of the GNU make binary in the <tt>PATH</tt>.
|
|
433 |
</li>
|
|
434 |
<li>
|
|
435 |
<strong>Linux:</strong>
|
|
436 |
The <tt>/usr/bin/make</tt> command should work fine for you.
|
|
437 |
</li>
|
|
438 |
<li>
|
|
439 |
<strong>Solaris:</strong>
|
|
440 |
Do NOT use <tt>/usr/bin/make</tt> on Solaris.
|
|
441 |
If your Solaris system has the software
|
|
442 |
from the Solaris Companion CD installed,
|
|
443 |
you should use <tt>gmake</tt>
|
|
444 |
which will be located in either the <tt>/opt/sfw/bin</tt> or
|
|
445 |
<tt>/usr/sfw/bin</tt> directory.
|
|
446 |
</li>
|
|
447 |
<li>
|
|
448 |
<strong>Windows:</strong>
|
|
449 |
Make sure you start your build inside a bash/sh/ksh shell.
|
|
450 |
<br>
|
|
451 |
<b>WARNING:</b> Watch out for make version 3.81, it may
|
|
452 |
not work due to a lack of support for drive letter paths
|
|
453 |
like <tt>C:/</tt>. Use a 3.80 version, or find a newer
|
|
454 |
version that has this problem fixed.
|
|
455 |
</li>
|
|
456 |
</ul>
|
|
457 |
<p>
|
|
458 |
Information on GNU make, and access to ftp download sites, are
|
|
459 |
available on the
|
|
460 |
<a href="http://www.gnu.org/software/make/make.html">
|
|
461 |
GNU make web site
|
|
462 |
</a>.
|
|
463 |
The latest source to GNU make is available at
|
|
464 |
<a href="http://ftp.gnu.org/pub/gnu/make/">ftp.gnu.org/pub/gnu/make/</a>.
|
|
465 |
</blockquote>
|
|
466 |
|
|
467 |
<!-- ------------------------------------------------------ -->
|
|
468 |
<hr noshade="noshade" size="3">
|
|
469 |
|
|
470 |
<h3><a name="linux">Basic Linux System Setup</a></h3>
|
|
471 |
|
|
472 |
<blockquote>
|
|
473 |
<p>
|
|
474 |
<strong>i586 only:</strong>
|
|
475 |
The minimum recommended hardware for building the Linux version
|
|
476 |
is a Pentium class processor or better, at least 256 MB of RAM, and
|
|
477 |
approximately 1.5 GB of free disk space.
|
|
478 |
<p>
|
|
479 |
<strong>X64 only:</strong>
|
|
480 |
The minimum recommended hardware for building the Linux
|
|
481 |
version is an AMD Opteron class processor, at least 512 MB of RAM, and
|
|
482 |
approximately 4 GB of free disk space.
|
|
483 |
<p>
|
|
484 |
The build will use the tools contained in
|
|
485 |
<tt>/bin</tt> and
|
|
486 |
<tt>/usr/bin</tt>
|
|
487 |
of a standard installation of the Linux operating environment.
|
|
488 |
You should ensure that these directories are in your
|
|
489 |
<tt>PATH</tt>.
|
|
490 |
<p>
|
|
491 |
Note that some Linux systems have a habit of pre-populating
|
|
492 |
your environment variables for you, for example <tt>JAVA_HOME</tt>
|
|
493 |
might get pre-defined for you to refer to the JDK installed on
|
|
494 |
your Linux system.
|
|
495 |
You will need to unset <tt>JAVA_HOME</tt>.
|
|
496 |
It's a good idea to run <tt>env</tt> and verify the
|
|
497 |
environment variables you are getting from the default system
|
|
498 |
settings make sense for building the
|
|
499 |
OpenJDK.
|
|
500 |
</blockquote>
|
|
501 |
|
|
502 |
<!-- ------------------------------------------------------ -->
|
|
503 |
|
|
504 |
<h4><a name="linux_checklist">Basic Linux Check List</a></h4>
|
|
505 |
|
|
506 |
<blockquote>
|
|
507 |
<ol>
|
|
508 |
<li>
|
|
509 |
Install the
|
|
510 |
<a href="#bootjdk">Bootstrap JDK</a>, set
|
|
511 |
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
|
|
512 |
</li>
|
|
513 |
<li>
|
|
514 |
Install the
|
|
515 |
<a href="#binaryplugs">Binary Plugs</a>, set
|
|
516 |
<tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
|
|
517 |
</li>
|
|
518 |
<li>
|
|
519 |
Install or upgrade the <a href="#freetype">FreeType development
|
|
520 |
package</a>.
|
|
521 |
</li>
|
|
522 |
</ol>
|
|
523 |
</blockquote>
|
|
524 |
|
|
525 |
<!-- ------------------------------------------------------ -->
|
|
526 |
<hr noshade="noshade" size="3">
|
|
527 |
|
|
528 |
<h3><a name="solaris">Basic Solaris System Setup</a></h3>
|
|
529 |
|
|
530 |
<blockquote>
|
|
531 |
<p>
|
|
532 |
The minimum recommended hardware for building the
|
|
533 |
Solaris SPARC version is an UltraSPARC with 512 MB of RAM.
|
|
534 |
For building
|
|
535 |
the Solaris x86 version, a Pentium class processor or better and at
|
|
536 |
least 128 MB of RAM are recommended.
|
|
537 |
Approximately 1.4 GB of free disk
|
|
538 |
space is needed for a 32-bit build.
|
|
539 |
<p>
|
|
540 |
If you are building the 64bit version, you should
|
|
541 |
run the command "isainfo -v" to verify that you have a
|
|
542 |
64-bit installation.
|
|
543 |
An additional 7 GB of free disk space is needed
|
|
544 |
for a 64-bit build.
|
|
545 |
<p>
|
|
546 |
The build uses the tools contained in <tt>/usr/ccs/bin</tt>
|
|
547 |
and <tt>/usr/bin</tt> of a standard developer or full installation of
|
|
548 |
the Solaris operating environment.
|
|
549 |
</blockquote>
|
|
550 |
|
|
551 |
<!-- ------------------------------------------------------ -->
|
|
552 |
|
|
553 |
<h4><a name="solaris_checklist">Basic Solaris Check List</a></h4>
|
|
554 |
|
|
555 |
<blockquote>
|
|
556 |
<ol>
|
|
557 |
<li>
|
|
558 |
Install the
|
|
559 |
<a href="#bootjdk">Bootstrap JDK</a>, set
|
|
560 |
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
|
|
561 |
</li>
|
|
562 |
<li>
|
|
563 |
Install the
|
|
564 |
<a href="#binaryplugs">Binary Plugs</a>, set
|
|
565 |
<tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>.
|
|
566 |
</li>
|
|
567 |
<li>
|
|
568 |
Install the
|
|
569 |
<a href="#studio">Sun Studio Compilers</a>, set
|
|
570 |
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
|
|
571 |
</li>
|
|
572 |
<li>
|
|
573 |
Install the
|
|
574 |
<a href="#cups">CUPS Include files</a>, set
|
|
575 |
<tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>.
|
|
576 |
</li>
|
|
577 |
</ol>
|
|
578 |
</blockquote>
|
|
579 |
|
|
580 |
<!-- ------------------------------------------------------ -->
|
|
581 |
<hr noshade="noshade" size="3">
|
|
582 |
|
|
583 |
<h3><a name="windows">Basic Windows System Setup</a></h3>
|
|
584 |
|
|
585 |
<blockquote>
|
|
586 |
<p>
|
|
587 |
<strong>i586 only:</strong>
|
|
588 |
The minimum recommended hardware for building the 32bit or X86
|
|
589 |
Windows version is an Pentium class processor or better, at least
|
|
590 |
512 MB of RAM, and approximately 600 MB of free disk space.
|
|
591 |
<strong>
|
|
592 |
NOTE: The Windows 2000 build machines need to use the
|
|
593 |
file system NTFS.
|
|
594 |
Build machines formatted to FAT32 will not work
|
|
595 |
because FAT32 doesn't support case-sensitivity in file names.
|
|
596 |
</strong>
|
|
597 |
<p>
|
|
598 |
<strong>X64 only:</strong>
|
|
599 |
The minimum recommended hardware for building
|
|
600 |
the Windows X64 version is an AMD Opteron class processor, at least 1
|
|
601 |
GB of RAM, and approximately 10 GB of free disk space.
|
|
602 |
</blockquote>
|
|
603 |
|
|
604 |
<!-- ------------------------------------------------------ -->
|
|
605 |
|
|
606 |
<h4><a name="paths">Windows Paths</a></h4>
|
|
607 |
|
|
608 |
<blockquote>
|
|
609 |
<p>
|
|
610 |
<strong>Windows:</strong>
|
|
611 |
Note that GNU make is a historic utility and is based very
|
|
612 |
heavily on shell scripting, so it does not tolerate the Windows habit
|
|
613 |
of having spaces in pathnames or the use of the <tt>\</tt>characters in pathnames.
|
|
614 |
Luckily on most Windows systems, you can use <tt>/</tt>instead of \, and
|
|
615 |
there is always a 'short' pathname without spaces for any path that
|
|
616 |
contains spaces.
|
|
617 |
Unfortunately, this short pathname can be somewhat dynamic and the
|
|
618 |
formula is difficult to explain.
|
|
619 |
You can use <tt>cygpath</tt> utility to map pathnames with spaces
|
|
620 |
or the <tt>\</tt>character into the <tt>C:/</tt> style of pathname
|
|
621 |
(called 'mixed'), e.g.
|
|
622 |
<tt>cygpath -s -m "<i>path</i>"</tt>.
|
|
623 |
<p>
|
|
624 |
The makefiles will try to translate any pathnames supplied
|
|
625 |
to it into the <tt>C:/</tt> style automatically.
|
|
626 |
<p>
|
|
627 |
Note that use of CYGWIN creates a unique problem with regards to
|
|
628 |
setting <a href="#path"><tt>PATH</tt></a>. Normally on Windows
|
|
629 |
the <tt>PATH</tt> variable contains directories
|
|
630 |
separated with the ";" character (Solaris and Linux uses ":").
|
|
631 |
With CYGWIN, it uses ":", but that means that paths like "C:/path"
|
|
632 |
cannot be placed in the CYGWIN version of <tt>PATH</tt> and
|
|
633 |
instead CYGWIN uses something like <tt>/cygdrive/c/path</tt>
|
|
634 |
which CYGWIN understands, but only CYGWIN understands.
|
|
635 |
So be careful with paths on Windows.
|
|
636 |
</blockquote>
|
|
637 |
|
|
638 |
<!-- ------------------------------------------------------ -->
|
|
639 |
|
|
640 |
<h4><a name="windows_checklist">Basic Windows Check List</a></h4>
|
|
641 |
|
|
642 |
<blockquote>
|
|
643 |
<ol>
|
|
644 |
<li>
|
|
645 |
Install the
|
|
646 |
<a href="#cygwin">CYGWIN product</a>.
|
|
647 |
</li>
|
|
648 |
<li>
|
|
649 |
Install the
|
|
650 |
<a href="#bootjdk">Bootstrap JDK</a>, set
|
|
651 |
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>.
|
|
652 |
</li>
|
|
653 |
<li>
|
|
654 |
Install the
|
|
655 |
<a href="#binaryplugs">Binary Plugs</a>, set
|
|
656 |
<tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>..
|
|
657 |
</li>
|
|
658 |
<li>
|
|
659 |
Install the
|
|
660 |
<a href="#msvc">Microsoft Visual Studio .NET 2003 Professional</a> or the
|
|
661 |
<a href="#mssdk">Microsoft Platform SDK</a>.
|
|
662 |
</li>
|
|
663 |
<li>
|
|
664 |
Setup all environment variables for compilers
|
|
665 |
(see <a href="#msvc">compilers</a>).
|
|
666 |
</li>
|
|
667 |
<li>
|
|
668 |
Install
|
|
669 |
<a href="#dxsdk">Microsoft DirectX SDK</a>.
|
|
670 |
</li>
|
|
671 |
</ol>
|
|
672 |
</blockquote>
|
|
673 |
|
|
674 |
<!-- ------------------------------------------------------ -->
|
|
675 |
<hr noshade="noshade" size="3">
|
|
676 |
|
|
677 |
<h3><a name="dependencies">Build Dependencies</a></h3>
|
|
678 |
|
|
679 |
<blockquote>
|
|
680 |
<p>
|
|
681 |
Depending on the platform, the
|
|
682 |
OpenJDK
|
|
683 |
build process has some basic
|
|
684 |
dependencies on components not part of the
|
|
685 |
OpenJDK
|
|
686 |
sources.
|
|
687 |
Some of these are specific to a platform, some even specific to
|
|
688 |
an architecture.
|
|
689 |
Each dependency will have a set of ALT variables that can be set
|
|
690 |
to tell the makefiles where to locate the component.
|
|
691 |
In most cases setting these ALT variables may not be necessary
|
|
692 |
and the makefiles will find defaults on the system in standard
|
|
693 |
install locations or through component specific variables.
|
|
694 |
|
|
695 |
<h4><a name="bootjdk">Bootstrap JDK</a></h4>
|
|
696 |
|
|
697 |
<blockquote>
|
|
698 |
<p>
|
|
699 |
All
|
|
700 |
OpenJDK
|
|
701 |
builds require access to the previously released
|
|
702 |
JDK 6, this is often called a bootstrap JDK.
|
|
703 |
The JDK 6 binaries can be downloaded from Sun's
|
|
704 |
<a href="http://java.sun.com/javase/1.6.0/download.html">JDK 6 download site</a>.
|
|
705 |
For build performance reasons
|
|
706 |
is very important that this bootstrap JDK be made available on the
|
|
707 |
local disk of the machine doing the build.
|
|
708 |
You should always set
|
|
709 |
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
|
|
710 |
to point to the location of
|
|
711 |
the bootstrap JDK installation, this is the directory pathname
|
|
712 |
that contains a <tt>bin, lib, and include</tt>
|
|
713 |
It's also a good idea to also place its <tt>bin</tt> directory
|
|
714 |
in the <tt>PATH</tt> environment variable, although it's
|
|
715 |
not required.
|
|
716 |
<p>
|
|
717 |
<strong>Solaris:</strong>
|
|
718 |
Some pre-installed JDK images may be available to you in the
|
|
719 |
directory <tt>/usr/jdk/instances</tt>.
|
|
720 |
If you don't set
|
|
721 |
<tt><a href="#ALT_BOOTDIR">ALT_BOOTDIR</a></tt>
|
|
722 |
the makefiles will look in that location for a JDK it can use.
|
|
723 |
</blockquote>
|
|
724 |
|
|
725 |
<h4><a name="binaryplugs">Binary Plugs</a></h4>
|
|
726 |
|
|
727 |
<blockquote>
|
|
728 |
<p>
|
|
729 |
Not all of the source code that makes up the JDK is available
|
|
730 |
under an open-source license.
|
|
731 |
In order to build an OpenJDK binary from source code,
|
|
732 |
you must first download and install the appropriate
|
|
733 |
binary plug bundles from the OpenJDK Download area.
|
|
734 |
During the OpenJDK build process these "binary plugs"
|
|
735 |
for the encumbered components will be copied into your
|
|
736 |
resulting OpenJDK binary build image.
|
|
737 |
These binary plug files are only for the purpose of
|
|
738 |
building an OpenJDK binary.
|
|
739 |
Download the Binary Plugs by selecting the <b>Downloads</b>
|
|
740 |
link at
|
|
741 |
<a href="http://openjdk.java.net/">the OpenJDK site</a>,
|
|
742 |
install the bundle,
|
|
743 |
and make sure you set
|
|
744 |
<tt><a href="#ALT_BINARY_PLUGS_PATH">ALT_BINARY_PLUGS_PATH</a></tt>
|
|
745 |
to the root of this installation.
|
|
746 |
</blockquote>
|
|
747 |
|
|
748 |
<h4><a name="cacerts">Certificate Authority File (cacert)</a></h4>
|
|
749 |
|
|
750 |
<blockquote>
|
|
751 |
<p>
|
|
752 |
See <a href="http://en.wikipedia.org/wiki/CAcert">
|
|
753 |
www.wikipedia.org/wiki/CAcert</a>
|
|
754 |
for a better understanding of the Certificate Authority (CA).
|
|
755 |
A certificates file named "cacerts"
|
|
756 |
represents a system-wide keystore with CA certificates.
|
|
757 |
In JDK and JRE
|
|
758 |
binary bundles, the "cacerts" file contains root CA certificates from
|
|
759 |
several public CAs (e.g., VeriSign, Thawte, and Baltimore).
|
|
760 |
The source contain a cacerts file
|
|
761 |
without CA root certificates.
|
|
762 |
Formal JDK builders will need to secure
|
|
763 |
permission from each public CA and include the certificates into their
|
|
764 |
own custom cacerts file.
|
|
765 |
Failure to provide a populated cacerts file
|
|
766 |
will result in verification errors of a certificate chain during runtime.
|
|
767 |
The variable
|
|
768 |
<tt><a href="#ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt>
|
|
769 |
can be used to override the default location of the
|
|
770 |
cacerts file that will get placed in your build.
|
|
771 |
By default an empty cacerts file is provided and that should be
|
|
772 |
fine for most JDK developers.
|
|
773 |
</blockquote>
|
|
774 |
|
|
775 |
<h4><a name="compilers">Compilers</a></h4>
|
|
776 |
|
|
777 |
<blockquote>
|
|
778 |
|
|
779 |
<a name="gcc">
|
|
780 |
<strong>Linux gcc/binutils</strong>
|
|
781 |
</a>
|
|
782 |
|
|
783 |
<blockquote>
|
|
784 |
<p>
|
|
785 |
The GNU gcc compiler version should be 3.2.2 or newer.
|
|
786 |
The binutils package should be 2.11.93.0.2-11 or newer.
|
|
787 |
The compiler used should be the default compiler installed
|
|
788 |
in <tt>/usr/bin</tt>.
|
|
789 |
</blockquote>
|
|
790 |
|
|
791 |
<strong><a name="studio">Solaris: Sun Studio</a></strong>
|
|
792 |
|
|
793 |
<blockquote>
|
|
794 |
<p>
|
|
795 |
At a minimum, the
|
|
796 |
<a href="http://developers.sun.com/sunstudio/index.jsp">
|
|
797 |
Sun Studio 11 Compilers</a>
|
|
798 |
(containing version 5.8 of the C and C++ compilers) is required,
|
|
799 |
with patches from the
|
|
800 |
<a href="http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access">
|
|
801 |
SunSolve web site</a>.
|
|
802 |
<p>
|
|
803 |
Set
|
|
804 |
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>
|
|
805 |
to point to the location of
|
|
806 |
the compiler binaries, and place this location in the <tt>PATH</tt>.
|
|
807 |
<p>
|
|
808 |
The Sun Studio Express compilers at:
|
|
809 |
<a href="http://developers.sun.com/sunstudio/downloads/express.jsp">
|
|
810 |
Sun Studio Express Download site</a>
|
|
811 |
are also an option, although these compilers have not
|
|
812 |
been extensively used yet.
|
|
813 |
</blockquote>
|
|
814 |
|
|
815 |
<a name="msvc">
|
|
816 |
<strong>Windows i586: Microsoft Visual Studio .NET 2003 Professional</strong>
|
|
817 |
</a>
|
|
818 |
|
|
819 |
<blockquote>
|
|
820 |
<p>
|
|
821 |
The 32-bit
|
|
822 |
OpenJDK
|
|
823 |
Windows build
|
|
824 |
requires Microsoft Visual Studio .NET 2003 (VS2003) Professional
|
|
825 |
Edition compiler.
|
|
826 |
The compiler and other tools are expected to reside
|
|
827 |
in the location defined by the variable <tt>VS71COMNTOOLS</tt> which
|
|
828 |
is set by the Microsoft Visual Studio .NET installer.
|
|
829 |
<p>
|
|
830 |
Once the compiler is installed,
|
|
831 |
it is recommended that you run <tt>VCVARS32.BAT</tt>
|
|
832 |
to set the compiler environment variables
|
|
833 |
<tt>MSVCDIR</tt>,
|
|
834 |
<tt>INCLUDE</tt>,
|
|
835 |
<tt>LIB</tt>, and
|
|
836 |
<tt>PATH</tt>
|
|
837 |
prior to building the
|
|
838 |
OpenJDK.
|
|
839 |
The above environment variables <b>MUST</b> be set.
|
|
840 |
<p>
|
|
841 |
The Microsoft Visual Studio .NET 2005 (VS2005) compiler
|
|
842 |
will not work at this time due to the new runtime dll
|
|
843 |
and the manifest requirements.
|
|
844 |
</blockquote>
|
|
845 |
|
|
846 |
<a name="mssdk">
|
|
847 |
<strong>Windows X64: Microsoft Platform SDK April 2005</strong>
|
|
848 |
</a>
|
|
849 |
|
|
850 |
<blockquote>
|
|
851 |
<p>
|
|
852 |
On <b>X64</b>,
|
|
853 |
the Microsoft Platform Software
|
|
854 |
Development Kit (SDK), April 2005 Edition compiler, is required for
|
|
855 |
building the
|
|
856 |
OpenJDK
|
|
857 |
because it contains the C/C++ compiler.
|
|
858 |
You will need to minimally install the Core SDK and
|
|
859 |
the MDAC SDK features of this compiler.
|
|
860 |
<p>
|
|
861 |
Once the Platform SDK is installed,
|
|
862 |
it is recommended that you run <tt>SetEnv.Cmd /X64</tt>
|
|
863 |
to set the compiler environment variables
|
|
864 |
<tt>MSSDK</tt>,
|
|
865 |
<tt>MSTOOLS</tt>,
|
|
866 |
<tt>INCLUDE</tt>,
|
|
867 |
<tt>LIB</tt>, and
|
|
868 |
<tt>PATH</tt>
|
|
869 |
prior to building the
|
|
870 |
OpenJDK.
|
|
871 |
The above environment variables <b>MUST</b> be set.
|
|
872 |
<p>
|
|
873 |
Note that this compiler may say it's version is a
|
|
874 |
Microsoft Visual Studio .NET 2005 (VS2005), but be careful,
|
|
875 |
it will not match the official VS2005 product.
|
|
876 |
This Platform SDK compiler is only used on X64 builds.
|
|
877 |
</blockquote>
|
|
878 |
|
|
879 |
</blockquote>
|
|
880 |
|
|
881 |
<h4><a name="cups">Common UNIX Printing System (CUPS) Headers (Solaris & Linux)</a></h4>
|
|
882 |
|
|
883 |
<blockquote>
|
|
884 |
<p>
|
|
885 |
<strong>Solaris:</strong>
|
|
886 |
CUPS header files are required for building the
|
|
887 |
OpenJDK on Solaris.
|
|
888 |
The Solaris header files can be obtained by installing
|
|
889 |
the package <strong>SFWcups</strong> from the Solaris Software
|
|
890 |
Companion CD/DVD, these often will be installed into
|
|
891 |
<tt>/opt/sfw/cups</tt>.
|
|
892 |
<p>
|
|
893 |
<strong>Linux:</strong>
|
|
894 |
CUPS header files are required for building the
|
|
895 |
OpenJDK on Linux.
|
|
896 |
The Linux header files are usually available from a "cups"
|
|
897 |
development package, it's recommended that you try and use
|
|
898 |
the package provided by the particular version of Linux that
|
|
899 |
you are using.
|
|
900 |
<p>
|
|
901 |
The CUPS header files can always be downloaded from
|
|
902 |
<a href="http://www.cups.org">www.cups.org</a>.
|
|
903 |
The variable
|
|
904 |
<tt><a href="#ALT_CUPS_HEADERS_PATH">ALT_CUPS_HEADERS_PATH</a></tt>
|
|
905 |
can be used to override the default location of the
|
|
906 |
CUPS Header files.
|
|
907 |
</blockquote>
|
|
908 |
|
|
909 |
<h4><a name="freetype">FreeType 2</a></h4>
|
|
910 |
|
|
911 |
<blockquote>
|
|
912 |
<p>
|
|
913 |
Version 2.3 or newer of FreeType is required for building the OpenJDK.
|
|
914 |
On Unix systems required files can be available as part of your
|
|
915 |
distribution (while you still may need to upgrade them).
|
|
916 |
Note that you need development version of package that
|
|
917 |
includes both FreeType library and header files.
|
|
918 |
</p>
|
|
919 |
<p>
|
|
920 |
You can always download latest FreeType version from the
|
|
921 |
<a href="http://www.freetype.org">FreeType website</a>.
|
|
922 |
</p>
|
|
923 |
<p>
|
|
924 |
Makefiles will try to pick FreeType from /usr/lib and /usr/include.
|
|
925 |
In case it is installed elsewhere you will need to set environment
|
|
926 |
variables
|
|
927 |
<tt><a href="#ALT_FREETYPE_LIB_PATH">ALT_FREETYPE_LIB_PATH</a></tt>
|
|
928 |
and
|
|
929 |
<tt><a href="#ALT_FREETYPE_HEADERS_PATH">ALT_FREETYPE_HEADERS_PATH</a></tt>
|
|
930 |
to refer to place where library and header files are installed.
|
|
931 |
</p>
|
|
932 |
</blockquote>
|
|
933 |
|
|
934 |
<h4><a name="alsa">Advanced Linux Sound Architecture (ALSA) (Linux only)</a></h4>
|
|
935 |
|
|
936 |
<blockquote>
|
|
937 |
<p>
|
|
938 |
<strong>Linux only:</strong>
|
|
939 |
Version 0.9.1 or newer of the ALSA files are
|
|
940 |
required for building the
|
|
941 |
OpenJDK on Linux.
|
|
942 |
These Linux files are usually available from an "alsa"
|
|
943 |
of "libasound"
|
|
944 |
development package, it's recommended that you try and use
|
|
945 |
the package provided by the particular version of Linux that
|
|
946 |
you are using.
|
|
947 |
The makefiles will check this emit a sanity error if it is
|
|
948 |
missing or the wrong version.
|
|
949 |
As a last resort you can go to the
|
|
950 |
<a href="http://www.alsa-project.org" target="_blank">
|
|
951 |
Advanced Linux Sound Architecture Site</a>.
|
|
952 |
</blockquote>
|
|
953 |
|
|
954 |
<h4>Windows Specific Dependencies</h4>
|
|
955 |
|
|
956 |
<blockquote>
|
|
957 |
|
|
958 |
<strong>Unix Command Tools (<a name="cygwin">CYGWIN</a>)</strong>
|
|
959 |
|
|
960 |
<blockquote>
|
|
961 |
<p>
|
|
962 |
The
|
|
963 |
OpenJDK
|
|
964 |
requires access to a set of unix command tools
|
|
965 |
on Windows which can be supplied by
|
|
966 |
<a href="http://www.cygwin.com">CYGWIN</a>.
|
|
967 |
<p>
|
|
968 |
The
|
|
969 |
OpenJDK
|
|
970 |
build
|
|
971 |
requires CYGWIN version 1.5.12 or newer.
|
|
972 |
Information about CYGWIN can
|
|
973 |
be obtained from the CYGWIN website at
|
|
974 |
<a href="http://www.cygwin.com">www.cygwin.com</a>.
|
|
975 |
<p>
|
|
976 |
By default CYGWIN doesn't install all the tools required for building
|
|
977 |
the OpenJDK.
|
|
978 |
Along with the default installation, you need to install
|
|
979 |
the following tools.
|
|
980 |
<blockquote>
|
|
981 |
<table border="1">
|
|
982 |
<thead>
|
|
983 |
<tr>
|
|
984 |
<td>Binary Name</td>
|
|
985 |
<td>Package</td>
|
|
986 |
<td>Description</td>
|
|
987 |
</tr>
|
|
988 |
</thead>
|
|
989 |
<tbody>
|
|
990 |
<tr>
|
|
991 |
<td>ar.exe</td>
|
|
992 |
<td>Devel</td>
|
|
993 |
<td>binutils: The GNU assembler, linker and binary
|
|
994 |
utilities</td>
|
|
995 |
</tr>
|
|
996 |
<tr>
|
|
997 |
<td>make.exe</td>
|
|
998 |
<td>Devel</td>
|
|
999 |
<td>make: The GNU version of the 'make' utility</td>
|
|
1000 |
</tr>
|
|
1001 |
<tr>
|
|
1002 |
<td>m4.exe</td>
|
|
1003 |
<td>Interpreters</td>
|
|
1004 |
<td>m4: GNU implementation of the traditional Unix macro
|
|
1005 |
processor</td>
|
|
1006 |
</tr>
|
|
1007 |
<tr>
|
|
1008 |
<td>cpio.exe</td>
|
|
1009 |
<td>Utils</td>
|
|
1010 |
<td>cpio: A program to manage archives of files</td>
|
|
1011 |
</tr>
|
|
1012 |
<tr>
|
|
1013 |
<td>file.exe</td>
|
|
1014 |
<td>Utils</td>
|
|
1015 |
<td>file: Determines file type using 'magic' numbers</td>
|
|
1016 |
</tr>
|
|
1017 |
</tbody>
|
|
1018 |
</table>
|
|
1019 |
</blockquote>
|
|
1020 |
</blockquote>
|
|
1021 |
|
|
1022 |
<a name="dxsdk">
|
|
1023 |
<strong>Microsoft DirectX 9.0 SDK header files and libraries</strong>
|
|
1024 |
</a>
|
|
1025 |
|
|
1026 |
<blockquote>
|
|
1027 |
<p>
|
|
1028 |
Microsoft DirectX 9.0 SDK (Summer 2004)
|
|
1029 |
headers are required for building
|
|
1030 |
OpenJDK.
|
|
1031 |
This SDK can be downloaded from
|
|
1032 |
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FD044A42-9912-42A3-9A9E-D857199F888E&displaylang=en">
|
|
1033 |
Microsoft DirectX 9.0 SDK (Summer 2004)</a>.
|
|
1034 |
If the link above becomes obsolete, the SDK can be found from
|
|
1035 |
<a href="http://download.microsoft.com">the Microsoft Download Site</a>
|
|
1036 |
(search with "DirectX 9.0 SDK Update Summer 2004").
|
|
1037 |
The location of this SDK can be set with
|
|
1038 |
<tt><a href="#ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt>
|
|
1039 |
but it's normally found via the DirectX environment variable
|
|
1040 |
<tt>DXSDK_DIR</tt>.
|
|
1041 |
</blockquote>
|
|
1042 |
|
|
1043 |
<a name="msvcrt">
|
|
1044 |
<strong><tt>MSVCRT.DLL</tt></strong>
|
|
1045 |
</a>
|
|
1046 |
|
|
1047 |
<blockquote>
|
|
1048 |
<p>
|
|
1049 |
<strong>i586 only:</strong>
|
|
1050 |
The
|
|
1051 |
OpenJDK
|
|
1052 |
32bit build requires
|
|
1053 |
access to <tt>MSVCRT.DLL</tt>
|
|
1054 |
version 6.00.8337.0 or newer.
|
|
1055 |
If the <tt>MSVCRT.DLL</tt> is not installed in
|
|
1056 |
the system32 directory set the
|
|
1057 |
<a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
|
|
1058 |
variable to the location.
|
|
1059 |
<p>
|
|
1060 |
<strong>X64 only:</strong>
|
|
1061 |
The OpenJDK 64bit build requires access to
|
|
1062 |
<tt>MSVCRT.DLL</tt> version 7.0.3790.0 or newer, which is
|
|
1063 |
usually supplied by the
|
|
1064 |
<a href="#mssdk">Platform SDK</a>.
|
|
1065 |
If it is not available from the Platform SDK,
|
|
1066 |
set the
|
|
1067 |
<a href="#ALT_MSVCRT_DLL_PATH"><tt>ALT_MSVCRT_DLL_PATH</tt></a>
|
|
1068 |
variable to the location.
|
|
1069 |
</blockquote>
|
|
1070 |
|
|
1071 |
<a name="msvcr71">
|
|
1072 |
<strong><tt>MSVCR71.DLL</tt></strong>
|
|
1073 |
</a>
|
|
1074 |
|
|
1075 |
<blockquote>
|
|
1076 |
<p>
|
|
1077 |
<strong>i586 only:</strong>
|
|
1078 |
The
|
|
1079 |
OpenJDK
|
|
1080 |
build requires access to
|
|
1081 |
MSVCR71.DLL version 7.10.3052.4 or newer which should be
|
|
1082 |
supplied by the
|
|
1083 |
<a href="#msvc">Visual Studio product</a>
|
|
1084 |
If the <tt>MSVCR71.DLL</tt> is not available from the
|
|
1085 |
Visual Studio product
|
|
1086 |
set the
|
|
1087 |
<a href="#ALT_MSVCR71_DLL_PATH"><tt>ALT_MSVCR71_DLL_PATH</tt></a>
|
|
1088 |
variable to the location.
|
|
1089 |
</blockquote>
|
|
1090 |
|
|
1091 |
</blockquote>
|
|
1092 |
|
|
1093 |
|
|
1094 |
</blockquote>
|
|
1095 |
|
|
1096 |
|
|
1097 |
<hr noshade="noshade" size="3">
|
|
1098 |
|
|
1099 |
<h2><a name="creating">Creating the Build</a></h2>
|
|
1100 |
|
|
1101 |
<blockquote>
|
|
1102 |
<p>
|
|
1103 |
Once a machine is setup to build the
|
|
1104 |
OpenJDK,
|
|
1105 |
the steps to create the
|
|
1106 |
build are fairly simple.
|
|
1107 |
The various ALT settings can either be made into variables
|
|
1108 |
or can be supplied on the
|
|
1109 |
<a href="#gmake"><tt><i>gmake</i></tt></a>
|
|
1110 |
command.
|
|
1111 |
<p>
|
|
1112 |
<ol>
|
|
1113 |
<li>Use the sanity rule to double check all the ALT settings:
|
|
1114 |
<blockquote>
|
|
1115 |
<tt>
|
|
1116 |
<i>gmake</i>
|
|
1117 |
sanity
|
|
1118 |
[ARCH_DATA_MODEL=<i>32 or 64</i>]
|
|
1119 |
[other "ALT_" overrides]
|
|
1120 |
</tt>
|
|
1121 |
</blockquote>
|
|
1122 |
</li>
|
|
1123 |
<li>Start the build with the command:
|
|
1124 |
<blockquote>
|
|
1125 |
<tt>
|
|
1126 |
<i>gmake</i>
|
|
1127 |
[ARCH_DATA_MODEL=<i>32 or 64</i>]
|
|
1128 |
[ALT_OUTPUTDIR=<i>output_directory</i>]
|
|
1129 |
[other "ALT_" overrides]
|
|
1130 |
</tt>
|
|
1131 |
</blockquote>
|
|
1132 |
</li>
|
|
1133 |
</ol>
|
|
1134 |
<p>
|
|
1135 |
<strong>Solaris:</strong>
|
|
1136 |
Note that ARCH_DATA_MODEL is really only needed on Solaris to
|
|
1137 |
indicate you want to built the 64-bit version.
|
|
1138 |
And before the Solaris 64-bit binaries can be used, they
|
|
1139 |
must be merged with the binaries from a separate 32-bit build.
|
|
1140 |
The merged binaries may then be used in either 32-bit or 64-bit mode, with
|
|
1141 |
the selection occurring at runtime
|
|
1142 |
with the <tt>-d32</tt> or <tt>-d64</tt> options.
|
|
1143 |
</blockquote>
|
|
1144 |
|
|
1145 |
<!-- ------------------------------------------------------ -->
|
|
1146 |
<hr noshade="noshade" size="3">
|
|
1147 |
|
|
1148 |
<h2><a name="testing">Testing the Build</a></h2>
|
|
1149 |
|
|
1150 |
<blockquote>
|
|
1151 |
<p>
|
|
1152 |
When the build is completed, you should see the generated
|
|
1153 |
binaries and associated files in the <tt>j2sdk-image</tt>
|
|
1154 |
directory in the output directory.
|
|
1155 |
The default output directory is
|
|
1156 |
<tt>build/<i>platform</i></tt>,
|
|
1157 |
where <tt><i>platform</i></tt> is one of
|
|
1158 |
<tt><ul>
|
|
1159 |
<li>solaris-sparc</li>
|
|
1160 |
<li>solaris-sparcv9</li>
|
|
1161 |
<li>solaris-i586</li>
|
|
1162 |
<li>solaris-amd64</li>
|
|
1163 |
<li>linux-i586</li>
|
|
1164 |
<li>linux-amd64</li>
|
|
1165 |
<li>windows-i586</li>
|
|
1166 |
<li>windows-amd64</li>
|
|
1167 |
</ul></tt>
|
|
1168 |
In particular, the
|
|
1169 |
<tt>build/<i>platform</i>/j2sdk-image/bin</tt>
|
|
1170 |
directory should contain executables for the
|
|
1171 |
OpenJDK
|
|
1172 |
tools and utilities.
|
|
1173 |
<p>
|
|
1174 |
You can test that the build completed properly by using the build
|
|
1175 |
to run the various demos that you will find in the
|
|
1176 |
<tt>build/<i>platform</i>/j2sdk-image/demo</tt>
|
|
1177 |
directory.
|
|
1178 |
<p>
|
|
1179 |
The provided regression tests can be run with the <tt>jtreg</tt>
|
|
1180 |
utility from
|
|
1181 |
<a href="http://openjdk.java.net/jtreg/">the jtreg site</a>.
|
|
1182 |
</blockquote>
|
|
1183 |
|
|
1184 |
<!-- ------------------------------------------------------ -->
|
|
1185 |
<hr noshade="noshade" size="3">
|
|
1186 |
|
|
1187 |
<h2><a name="variables">Environment/Make Variables</a></h2>
|
|
1188 |
|
|
1189 |
<p>
|
|
1190 |
Some of the
|
|
1191 |
environment or make variables (just called <b>variables</b> in this
|
|
1192 |
document) that can impact the build are:
|
|
1193 |
|
|
1194 |
<blockquote>
|
|
1195 |
|
|
1196 |
<dl>
|
|
1197 |
|
|
1198 |
<dt><a name="path"><tt>PATH</tt></a> </dt>
|
|
1199 |
<dd>Typically you want to set the <tt>PATH</tt> to include:
|
|
1200 |
<ul>
|
|
1201 |
<li>The location of the GNU make binary</li>
|
|
1202 |
<li>The location of the JDK 6 <tt>java</tt>
|
|
1203 |
(see <a href="#bootjdk">Bootstrap JDK</a>)</li>
|
|
1204 |
<li>The location of the C/C++ compilers
|
|
1205 |
(see <a href="#compilers"><tt>compilers</tt></a>)</li>
|
|
1206 |
<li>The location or locations for the Unix command utilities
|
|
1207 |
(e.g. <tt>/usr/bin</tt>)</li>
|
|
1208 |
</ul>
|
|
1209 |
</dd>
|
|
1210 |
|
|
1211 |
<dt><a name="arch_data_model"><tt>ARCH_DATA_MODEL</tt></a></dt>
|
|
1212 |
<dd>The <tt>ARCH_DATA_MODEL</tt> variable
|
|
1213 |
is used to specify whether the build is to generate 32-bit or 64-bit
|
|
1214 |
binaries.
|
|
1215 |
The Solaris build supports either 32-bit or 64-bit builds, but
|
|
1216 |
Windows and Linux will support only one, depending on the specific
|
|
1217 |
OS being used.
|
|
1218 |
Normally, setting this variable is only necessary on Solaris.
|
|
1219 |
Set <tt>ARCH_DATA_MODEL</tt> to <tt>32</tt> for generating 32-bit binaries,
|
|
1220 |
or to <tt>64</tt> for generating 64-bit binaries.
|
|
1221 |
</dd>
|
|
1222 |
|
|
1223 |
<dt><a name="ALT_BOOTDIR"><tt>ALT_BOOTDIR</tt></a></dt>
|
|
1224 |
<dd>
|
|
1225 |
The location of the bootstrap JDK installation.
|
|
1226 |
See <a href="#bootjdk">Bootstrap JDK</a> for more information.
|
|
1227 |
You should always install your own local Bootstrap JDK and
|
|
1228 |
always set <tt>ALT_BOOTDIR</tt> explicitly.
|
|
1229 |
</dd>
|
|
1230 |
|
|
1231 |
<dt><a name="ALT_OUTPUTDIR"><tt>ALT_OUTPUTDIR</tt></a> </dt>
|
|
1232 |
<dd>
|
|
1233 |
An override for specifying the (absolute) path of where the
|
|
1234 |
build output is to go.
|
|
1235 |
The default output directory will be build/<i>platform</i>.
|
|
1236 |
</dd>
|
|
1237 |
|
|
1238 |
<dt><a name="ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a> </dt>
|
|
1239 |
<dd>
|
|
1240 |
The location of the C/C++ compiler.
|
|
1241 |
The default varies depending on the platform.
|
|
1242 |
</dd>
|
|
1243 |
|
|
1244 |
<dt><tt><a name="ALT_CACERTS_FILE">ALT_CACERTS_FILE</a></tt></dt>
|
|
1245 |
<dd>
|
|
1246 |
The location of the <a href="#cacerts">cacerts</a> file.
|
|
1247 |
The default will refer to
|
|
1248 |
<tt>jdk/src/share/lib/security/cacerts</tt>.
|
|
1249 |
</dd>
|
|
1250 |
|
|
1251 |
<dt><a name="ALT_BINARY_PLUGS_PATH"><tt>ALT_BINARY_PLUGS_PATH</tt></a></dt>
|
|
1252 |
<dd>
|
|
1253 |
The location of the binary plugs installation.
|
|
1254 |
See <a href="#binaryplugs">Binary Plugs</a> for more information.
|
|
1255 |
You should always have a local copy of a
|
|
1256 |
recent Binary Plugs install image
|
|
1257 |
and set this variable to that location.
|
|
1258 |
</dd>
|
|
1259 |
|
|
1260 |
<dt><a name="ALT_CUPS_HEADERS_PATH"><tt>ALT_CUPS_HEADERS_PATH</tt></a> </dt>
|
|
1261 |
<dd>
|
|
1262 |
The location of the CUPS header files.
|
|
1263 |
See <a href="#cups">CUPS information</a> for more information.
|
|
1264 |
If this path does not exist the fallback path is
|
|
1265 |
<tt>/usr/include</tt>.
|
|
1266 |
</dd>
|
|
1267 |
|
|
1268 |
|
|
1269 |
<dt><a name="ALT_FREETYPE_LIB_PATH"><tt>ALT_FREETYPE_LIB_PATH</tt></a></dt>
|
|
1270 |
<dd>
|
|
1271 |
The location of the FreeType shared library.
|
|
1272 |
See <a href="#freetype">FreeType information</a> for details.
|
|
1273 |
</dd>
|
|
1274 |
|
|
1275 |
<dt><a name="ALT_FREETYPE_HEADERS_PATH"><tt>ALT_FREETYPE_HEADERS_PATH</tt></a></dt>
|
|
1276 |
<dd>
|
|
1277 |
The location of the FreeType header files.
|
|
1278 |
See <a href="#freetype">FreeType information</a> for details.
|
|
1279 |
</dd>
|
|
1280 |
|
|
1281 |
<dt><strong>Windows specific:</strong></dt>
|
|
1282 |
<dd>
|
|
1283 |
<dl>
|
|
1284 |
<dt><a name="ALT_MSDEVTOOLS_PATH"><tt>ALT_MSDEVTOOLS_PATH</tt></a> </dt>
|
|
1285 |
<dd>
|
|
1286 |
The location of the Microsoft Visual Studio .NET 2003
|
|
1287 |
tools 'bin' directory.
|
|
1288 |
The default is usually derived from
|
|
1289 |
<a href="#ALT_COMPILER_PATH"><tt>ALT_COMPILER_PATH</tt></a>.
|
|
1290 |
</dd>
|
|
1291 |
|
|
1292 |
<dt><tt><a name="ALT_DXSDK_PATH">ALT_DXSDK_PATH</a></tt> </dt>
|
|
1293 |
<dd>
|
|
1294 |
The location of the
|
|
1295 |
<a href="#dxsdk">Microsoft DirectX 9 SDK</a>.
|
|
1296 |
The default will be to try and use the DirectX environment
|
|
1297 |
variable <tt>DXSDK_DIR</tt>,
|
|
1298 |
failing that, look in <tt>C:/DXSDK</tt>.
|
|
1299 |
</dd>
|
|
1300 |
|
|
1301 |
<dt><tt><a name="ALT_MSVCRT_DLL_PATH">ALT_MSVCRT_DLL_PATH</a></tt> </dt>
|
|
1302 |
<dd>
|
|
1303 |
The location of the
|
|
1304 |
<a href="#msvcrt"><tt>MSVCRT.DLL</tt></a>.
|
|
1305 |
</dd>
|
|
1306 |
|
|
1307 |
<dt><tt><a name="ALT_MSVCR71_DLL_PATH">ALT_MSVCR71_DLL_PATH</a></tt> </dt>
|
|
1308 |
<dd>
|
|
1309 |
<strong>i586 only:</strong>
|
|
1310 |
The location of the
|
|
1311 |
<a href="#msvcr71"><tt>MSVCR71.DLL</tt></a>.
|
|
1312 |
</dd>
|
|
1313 |
</dl>
|
|
1314 |
</dd>
|
|
1315 |
|
|
1316 |
</dl>
|
|
1317 |
</blockquote>
|
|
1318 |
|
|
1319 |
<!-- ------------------------------------------------------ -->
|
|
1320 |
<hr noshade="noshade" size="3">
|
|
1321 |
|
|
1322 |
<h2><a name="troubleshooting">Troubleshooting</a></h2>
|
|
1323 |
|
|
1324 |
<blockquote>
|
|
1325 |
<p>
|
|
1326 |
A build can fail for any number of reasons.
|
|
1327 |
Most failures
|
|
1328 |
are a result of trying to build in an environment in which all the
|
|
1329 |
pre-build requirements have not been met.
|
|
1330 |
The first step in
|
|
1331 |
troubleshooting a build failure is to recheck that you have satisfied
|
|
1332 |
all the pre-build requirements for your platform.
|
|
1333 |
Look for the check list of the platform you are building on in the
|
|
1334 |
<a href="#contents">Table of Contents</a>.
|
|
1335 |
|
|
1336 |
<p>
|
|
1337 |
You can validate your build environment by using the <tt>sanity</tt>
|
|
1338 |
target.
|
|
1339 |
Any errors listed
|
|
1340 |
will stop the build from starting, and any warnings may result in
|
|
1341 |
a flawed product build.
|
|
1342 |
We strongly encourage you to evaluate every
|
|
1343 |
sanity check warning and fix it if required, before you proceed
|
|
1344 |
further with your build.
|
|
1345 |
|
|
1346 |
<p>
|
|
1347 |
Some of the more common problems with builds are briefly described
|
|
1348 |
below, with suggestions for remedies.
|
|
1349 |
|
|
1350 |
<ul>
|
|
1351 |
<li>
|
|
1352 |
<b>Slow Builds:</b>
|
|
1353 |
<blockquote>
|
|
1354 |
<p>
|
|
1355 |
If your build machine seems to be overloaded from too many
|
|
1356 |
simultaneous C++ compiles, try setting the <tt>HOTSPOT_BUILD_JOBS</tt>
|
|
1357 |
variable to <tt>1</tt> (if you're using a multiple CPU
|
|
1358 |
machine, setting it to more than the the number of CPUs is probably
|
|
1359 |
not a good idea).
|
|
1360 |
<p>
|
|
1361 |
Creating the javadocs can be very slow, if you are running
|
|
1362 |
javadoc, consider skipping that step.
|
|
1363 |
<p>
|
|
1364 |
Faster hardware and more RAM always helps too.
|
|
1365 |
The VM build tends to be CPU intensive (many C++ compiles),
|
|
1366 |
and the rest of the JDK will often be disk intensive.
|
|
1367 |
<p>
|
|
1368 |
Faster compiles are possible using a tool called
|
|
1369 |
<a href="http://ccache.samba.org/">ccache</a>.
|
|
1370 |
</blockquote>
|
|
1371 |
</li>
|
|
1372 |
<li>
|
|
1373 |
<b>File time issues:</b>
|
|
1374 |
<blockquote>
|
|
1375 |
<p>
|
|
1376 |
If you see warnings that refer to file time stamps, e.g.
|
|
1377 |
<blockquote>
|
|
1378 |
<i>Warning message:</i><tt> File `xxx' has modification time in
|
|
1379 |
the future.</tt>
|
|
1380 |
<br>
|
|
1381 |
<i>Warning message:</i> <tt> Clock skew detected. Your build may
|
|
1382 |
be incomplete.</tt>
|
|
1383 |
</blockquote>
|
|
1384 |
<p>
|
|
1385 |
These warnings can occur when the clock on the build machine is out of
|
|
1386 |
sync with the timestamps on the source files. Other errors, apparently
|
|
1387 |
unrelated but in fact caused by the clock skew, can occur along with
|
|
1388 |
the clock skew warnings. These secondary errors may tend to obscure the
|
|
1389 |
fact that the true root cause of the problem is an out-of-sync clock.
|
|
1390 |
For example, an out-of-sync clock has been known to cause an old
|
|
1391 |
version of javac to be used to compile some files, resulting in errors
|
|
1392 |
when the pre-1.4 compiler ran across the new <tt>assert</tt> keyword
|
|
1393 |
in the 1.4 source code.
|
|
1394 |
<p>
|
|
1395 |
If you see these warnings, reset the clock on the build
|
|
1396 |
machine, run "<tt><i>gmake</i> clobber</tt>" or delete the directory
|
|
1397 |
containing the build output, and restart the build from the beginning.
|
|
1398 |
</blockquote>
|
|
1399 |
</li>
|
|
1400 |
<li>
|
|
1401 |
<b>Error message: <tt>Trouble writing out table to disk</tt></b>
|
|
1402 |
<blockquote>
|
|
1403 |
<p>
|
|
1404 |
Increase the amount of swap space on your build machine.
|
|
1405 |
</blockquote>
|
|
1406 |
</li>
|
|
1407 |
<li>
|
|
1408 |
<b>Error Message: <tt>libstdc++ not found:</tt></b>
|
|
1409 |
<blockquote>
|
|
1410 |
This is caused by a missing libstdc++.a library.
|
|
1411 |
This is installed as part of a specific package
|
|
1412 |
(e.g. libstdc++.so.devel.386).
|
|
1413 |
By default some 64bit Linux versions (e.g. Fedora)
|
|
1414 |
only install the 64bit version of the libstdc++ package.
|
|
1415 |
Various parts of the JDK build require a static
|
|
1416 |
link of the C++ runtime libraries to allow for maximum
|
|
1417 |
portability of the built images.
|
|
1418 |
</blockquote>
|
|
1419 |
</li>
|
|
1420 |
<li>
|
|
1421 |
<b>Error Message: <tt>cannot restore segment prot after reloc</tt></b>
|
|
1422 |
<blockquote>
|
|
1423 |
This is probably an issue with SELinux (See
|
|
1424 |
<a href="http://en.wikipedia.org/wiki/SELinux">http://en.wikipedia.org/wiki/SELinux</a>).
|
|
1425 |
Parts of the VM is built without the <tt>-fPIC</tt> for
|
|
1426 |
performance reasons.
|
|
1427 |
<p>
|
|
1428 |
To completely disable SELinux:
|
|
1429 |
<ol><tt>
|
|
1430 |
|
|
1431 |
<li>$ su root</li>
|
|
1432 |
<li># system-config-securitylevel</li>
|
|
1433 |
<li>In the window that appears, select the SELinux tab</li>
|
|
1434 |
<li>Disable SELinux</li>
|
|
1435 |
</ol></tt>
|
|
1436 |
<p>
|
|
1437 |
Alternatively, instead of completely disabling it you could
|
|
1438 |
disable just this one check.
|
|
1439 |
<ol><tt>
|
|
1440 |
<li>Select System->Administration->SELinux Management</li>
|
|
1441 |
<li>In the SELinux Management Tool which appears,
|
|
1442 |
select "Boolean" from the menu on the left</li>
|
|
1443 |
<li>Expand the "Memory Protection" group</li>
|
|
1444 |
<li>Check the first item, labeled
|
|
1445 |
"Allow all unconfined executables to use libraries requiring text relocation ..."</li>
|
|
1446 |
</ol></tt>
|
|
1447 |
</blockquote>
|
|
1448 |
</li>
|
|
1449 |
</ul>
|
|
1450 |
</blockquote>
|
|
1451 |
|
|
1452 |
<hr noshade="noshade" size="3">
|