You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>Please consult the AIX section of the <ahref="https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms">Supported Build Platforms</a> OpenJDK Build Wiki page for details about which versions of AIX are supported.</p>
<tdstyle="text-align: left;">Microsoft Visual Studio 2019 update 16.5.3</td>
279
+
<tdstyle="text-align: left;">Microsoft Visual Studio 2019 update 16.7.2</td>
277
280
</tr>
278
281
</tbody>
279
282
</table>
280
283
<p>All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.</p>
281
284
<h3id="gcc">gcc</h3>
282
285
<p>The minimum accepted version of gcc is 5.0. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
283
-
<p>The JDK is currently known to be able to compile with at least version 9.2 of gcc.</p>
286
+
<p>The JDK is currently known to be able to compile with at least version 10.2 of gcc.</p>
284
287
<p>In general, any version between these two should be usable.</p>
285
288
<h3id="clang">clang</h3>
286
289
<p>The minimum accepted version of clang is 3.5. Older versions will not be accepted by <code>configure</code>.</p>
<p>Use <code>--with-freetype-include=<path></code> and <code>--with-freetype-lib=<path></code> if <code>configure</code> does not automatically locate the platform FreeType files.</p>
318
322
<h3id="cups">CUPS</h3>
319
323
<p>CUPS, <ahref="http://www.cups.org">Common UNIX Printing System</a> header files are required on all platforms, except Windows. Often these files are provided by your operating system.</p>
320
324
<ul>
321
325
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libcups2-dev</code>.</li>
322
326
<li>To install on an rpm-based Linux, try running <code>sudo yum install cups-devel</code>.</li>
<p>Use <code>--with-x=<path></code> if <code>configure</code> does not properly locate your X11 files.</p>
332
338
<h3id="alsa">ALSA</h3>
333
339
<p>ALSA, <ahref="https://www.alsa-project.org/">Advanced Linux Sound Architecture</a> is required on Linux. At least version 0.9.1 of ALSA is required.</p>
334
340
<ul>
335
341
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libasound2-dev</code>.</li>
336
342
<li>To install on an rpm-based Linux, try running <code>sudo yum install alsa-lib-devel</code>.</li>
<p>Use <code>--with-alsa=<path></code> if <code>configure</code> does not properly locate your ALSA files.</p>
339
346
<h3id="libffi">libffi</h3>
340
347
<p>libffi, the <ahref="http://sourceware.org/libffi">Portable Foreign Function Interface Library</a> is required when building the Zero version of Hotspot.</p>
341
348
<ul>
342
349
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libffi-dev</code>.</li>
343
350
<li>To install on an rpm-based Linux, try running <code>sudo yum install libffi-devel</code>.</li>
<li>To install on macOS, try running <code>brew install autoconf</code>.</li>
353
362
<li>To install on Windows, try running <code><path to Cygwin setup>/setup-x86_64 -q -P autoconf</code>.</li>
354
363
</ul>
@@ -620,21 +629,30 @@ <h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sys
620
629
<p>Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use <code>qemu-deboostrap</code> to create the <em>target</em> system chroot, which would have the native libraries and headers specific to that <em>target</em> system. After that, we can use the cross-compiler on the <em>build</em> system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.</p>
621
630
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
622
631
<ul>
623
-
<li>Install cross-compiler on the <em>build</em> system:</li>
ls build/linux-aarch64-normal-server-release/</code></pre>
654
+
ls build/linux-aarch64-server-release/</code></pre></li>
655
+
</ul>
638
656
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
639
657
<p>Architectures that are known to successfully cross-compile like this are:</p>
640
658
<table>
@@ -688,6 +706,15 @@ <h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sys
688
706
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
689
707
<h3id="building-for-armaarch64">Building for ARM/aarch64</h3>
690
708
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
709
+
<h3id="building-for-musl">Building for musl</h3>
710
+
<p>Just like it's possible to cross-compile for a different CPU, it's possible to cross-compile for musl libc on a glibc-based <em>build</em> system. A devkit suitable for most target CPU architectures can be obtained from <ahref="https://musl.cc">musl.cc</a>. After installing the required packages in the sysroot, configure the build with <code>--openjdk-target</code>:</p>
0 commit comments