Skip to content

Commit 865cbe6

Browse files
authored
Merge pull request #4 from openjdk/master
Update forked branch.
2 parents f1326ac + 894547d commit 865cbe6

File tree

9,648 files changed

+161948
-566082
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

9,648 files changed

+161948
-566082
lines changed

.github/workflows/submit.yml

Lines changed: 116 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches-ignore:
66
- master
7+
- pr/*
78
workflow_dispatch:
89
inputs:
910
platforms:
@@ -24,6 +25,7 @@ jobs:
2425
platform_windows_aarch64: ${{ steps.check_platforms.outputs.platform_windows_aarch64 }}
2526
platform_windows_x64: ${{ steps.check_platforms.outputs.platform_windows_x64 }}
2627
platform_macos_x64: ${{ steps.check_platforms.outputs.platform_macos_x64 }}
28+
platform_macos_aarch64: ${{ steps.check_platforms.outputs.platform_macos_aarch64 }}
2729
dependencies: ${{ steps.check_deps.outputs.dependencies }}
2830

2931
steps:
@@ -40,6 +42,7 @@ jobs:
4042
echo "::set-output name=platform_windows_aarch64::${{ contains(github.event.inputs.platforms, 'windows aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows aarch64'))) }}"
4143
echo "::set-output name=platform_windows_x64::${{ contains(github.event.inputs.platforms, 'windows x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows x64'))) }}"
4244
echo "::set-output name=platform_macos_x64::${{ contains(github.event.inputs.platforms, 'macos x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos x64'))) }}"
45+
echo "::set-output name=platform_macos_aarch64::${{ contains(github.event.inputs.platforms, 'macos aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos aarch64'))) }}"
4346
if: steps.check_submit.outputs.should_run != 'false'
4447

4548
- name: Determine unique bundle identifier
@@ -1358,8 +1361,112 @@ jobs:
13581361
with:
13591362
name: transient_jdk-macos-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
13601363
path: |
1361-
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz
1362-
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz
1364+
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz
1365+
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz
1366+
1367+
macos_aarch64_build:
1368+
name: macOS aarch64
1369+
runs-on: "macos-10.15"
1370+
needs: prerequisites
1371+
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_macos_aarch64 != 'false'
1372+
1373+
strategy:
1374+
fail-fast: false
1375+
matrix:
1376+
flavor:
1377+
- build release
1378+
- build debug
1379+
include:
1380+
- flavor: build release
1381+
- flavor: build debug
1382+
flags: --enable-debug
1383+
artifact: -debug
1384+
1385+
env:
1386+
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
1387+
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
1388+
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_FILENAME }}"
1389+
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_URL }}"
1390+
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_SHA256 }}"
1391+
1392+
steps:
1393+
- name: Checkout the source
1394+
uses: actions/checkout@v2
1395+
with:
1396+
path: jdk
1397+
1398+
- name: Restore boot JDK from cache
1399+
id: bootjdk
1400+
uses: actions/cache@v2
1401+
with:
1402+
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
1403+
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
1404+
1405+
- name: Download boot JDK
1406+
run: |
1407+
mkdir -p ${HOME}/bootjdk/${BOOT_JDK_VERSION} || true
1408+
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
1409+
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | shasum -a 256 -c >/dev/null -
1410+
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
1411+
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
1412+
if: steps.bootjdk.outputs.cache-hit != 'true'
1413+
1414+
- name: Restore jtreg artifact
1415+
id: jtreg_restore
1416+
uses: actions/download-artifact@v2
1417+
with:
1418+
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
1419+
path: ~/jtreg/
1420+
continue-on-error: true
1421+
1422+
- name: Restore jtreg artifact (retry)
1423+
uses: actions/download-artifact@v2
1424+
with:
1425+
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
1426+
path: ~/jtreg/
1427+
if: steps.jtreg_restore.outcome == 'failure'
1428+
1429+
- name: Checkout gtest sources
1430+
uses: actions/checkout@v2
1431+
with:
1432+
repository: "google/googletest"
1433+
ref: "release-${{ fromJson(needs.prerequisites.outputs.dependencies).GTEST_VERSION }}"
1434+
path: gtest
1435+
1436+
- name: Install dependencies
1437+
run: brew install make
1438+
1439+
- name: Select Xcode version
1440+
run: sudo xcode-select --switch /Applications/Xcode_12.4.app/Contents/Developer
1441+
1442+
- name: Configure
1443+
run: >
1444+
bash configure
1445+
--with-conf-name=macos-aarch64
1446+
--openjdk-target=aarch64-apple-darwin
1447+
${{ matrix.flags }}
1448+
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
1449+
--with-version-build=0
1450+
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
1451+
--with-jtreg=${HOME}/jtreg
1452+
--with-gtest=${GITHUB_WORKSPACE}/gtest
1453+
--with-default-make-target="product-bundles test-bundles"
1454+
--with-zlib=system
1455+
--enable-jtreg-failure-handler
1456+
working-directory: jdk
1457+
1458+
- name: Build
1459+
run: make CONF_NAME=macos-aarch64
1460+
working-directory: jdk
1461+
1462+
- name: Persist test bundles
1463+
uses: actions/upload-artifact@v2
1464+
with:
1465+
name: transient_jdk-macos-aarch64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
1466+
path: |
1467+
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin${{ matrix.artifact }}.tar.gz
1468+
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin-tests${{ matrix.artifact }}.tar.gz
1469+
13631470
13641471
macos_x64_test:
13651472
name: macOS x64
@@ -1465,13 +1572,13 @@ jobs:
14651572

14661573
- name: Unpack jdk
14671574
run: |
1468-
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
1469-
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
1575+
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
1576+
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
14701577
14711578
- name: Unpack tests
14721579
run: |
1473-
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
1474-
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
1580+
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
1581+
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
14751582
14761583
- name: Install dependencies
14771584
run: brew install make
@@ -1481,13 +1588,13 @@ jobs:
14811588

14821589
- name: Find root of jdk image dir
14831590
run: |
1484-
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }} -name release -type f`
1591+
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }} -name release -type f`
14851592
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
14861593
14871594
- name: Run tests
14881595
run: >
14891596
JDK_IMAGE_DIR=${{ env.imageroot }}
1490-
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}
1597+
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}
14911598
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
14921599
JT_HOME=${HOME}/jtreg
14931600
gmake test-prebuilt
@@ -1559,6 +1666,7 @@ jobs:
15591666
- linux_x86_test
15601667
- windows_x64_test
15611668
- macos_x64_test
1669+
- macos_aarch64_build
15621670

15631671
steps:
15641672
- name: Determine current artifacts endpoint

doc/building.html

Lines changed: 85 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ <h1 class="title">Building the JDK</h1>
7676
<li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
7777
<li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
7878
<li><a href="#native-libraries">Native Libraries</a></li>
79-
<li><a href="#creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</a></li>
79+
<li><a href="#cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</a></li>
8080
<li><a href="#building-for-armaarch64">Building for ARM/aarch64</a></li>
8181
<li><a href="#building-for-musl">Building for musl</a></li>
8282
<li><a href="#verifying-the-build">Verifying the Build</a></li>
@@ -320,6 +320,7 @@ <h3 id="freetype">FreeType</h3>
320320
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libfreetype6-dev</code>.</li>
321321
<li>To install on an rpm-based Linux, try running <code>sudo yum install freetype-devel</code>.</li>
322322
<li>To install on Alpine Linux, try running <code>sudo apk add freetype-dev</code>.</li>
323+
<li>To install on macOS, try running <code>brew install freetype</code>.</li>
323324
</ul>
324325
<p>Use <code>--with-freetype-include=&lt;path&gt;</code> and <code>--with-freetype-lib=&lt;path&gt;</code> if <code>configure</code> does not automatically locate the platform FreeType files.</p>
325326
<h3 id="cups">CUPS</h3>
@@ -628,7 +629,7 @@ <h4 id="x11-1">X11</h4>
628629
cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</code></pre></li>
629630
<li><p>If the X11 libraries are not properly detected by <code>configure</code>, you can point them out by <code>--with-x</code>.</p></li>
630631
</ul>
631-
<h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</h3>
632+
<h3 id="cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</h3>
632633
<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>
633634
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
634635
<ul>
@@ -638,75 +639,133 @@ <h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sys
638639
<pre><code>sudo qemu-debootstrap \
639640
--arch=arm64 \
640641
--verbose \
641-
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
642+
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
642643
--resolve-deps \
643644
buster \
644645
~/sysroot-arm64 \
645646
http://httpredir.debian.org/debian/</code></pre></li>
646647
<li><p>Make sure the symlinks inside the newly created chroot point to proper locations:</p>
647648
<pre><code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></pre></li>
648649
<li><p>Configure and build with newly created chroot as sysroot/toolchain-path:</p>
649-
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
650-
--openjdk-target=aarch64-linux-gnu \
651-
--with-sysroot=~/sysroot-arm64 \
652-
--with-toolchain-path=~/sysroot-arm64 \
653-
--with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
654-
--with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
655-
--x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
650+
<pre><code>sh ./configure \
651+
--openjdk-target=aarch64-linux-gnu \
652+
--with-sysroot=~/sysroot-arm64
656653
make images
657654
ls build/linux-aarch64-server-release/</code></pre></li>
658655
</ul>
659656
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
657+
<p>The build system should automatically detect the toolchain paths and dependencies, but sometimes it might require a little nudge with:</p>
658+
<ul>
659+
<li><p>Native compilers: override <code>CC</code> or <code>CXX</code> for <code>./configure</code></p></li>
660+
<li><p>Freetype lib location: override <code>--with-freetype-lib</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
661+
<li><p>Freetype includes location: override <code>--with-freetype-include</code> for example <code>${sysroot}/usr/include/freetype2/</code></p></li>
662+
<li><p>X11 libraries location: override <code>--x-libraries</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
663+
</ul>
660664
<p>Architectures that are known to successfully cross-compile like this are:</p>
661665
<table>
662666
<thead>
663667
<tr class="header">
664668
<th style="text-align: left;">Target</th>
665-
<th style="text-align: left;"><code>CC</code></th>
666-
<th style="text-align: left;"><code>CXX</code></th>
667-
<th style="text-align: left;"><code>--arch=...</code></th>
669+
<th style="text-align: left;">Debian tree</th>
670+
<th style="text-align: left;">Debian arch</th>
668671
<th style="text-align: left;"><code>--openjdk-target=...</code></th>
672+
<th><code>--with-jvm-variants=...</code></th>
669673
</tr>
670674
</thead>
671675
<tbody>
672676
<tr class="odd">
673677
<td style="text-align: left;">x86</td>
674-
<td style="text-align: left;">default</td>
675-
<td style="text-align: left;">default</td>
678+
<td style="text-align: left;">buster</td>
676679
<td style="text-align: left;">i386</td>
677680
<td style="text-align: left;">i386-linux-gnu</td>
681+
<td>(all)</td>
678682
</tr>
679683
<tr class="even">
680-
<td style="text-align: left;">armhf</td>
681-
<td style="text-align: left;">gcc-arm-linux-gnueabihf</td>
682-
<td style="text-align: left;">g++-arm-linux-gnueabihf</td>
684+
<td style="text-align: left;">arm</td>
685+
<td style="text-align: left;">buster</td>
683686
<td style="text-align: left;">armhf</td>
684687
<td style="text-align: left;">arm-linux-gnueabihf</td>
688+
<td>(all)</td>
685689
</tr>
686690
<tr class="odd">
687691
<td style="text-align: left;">aarch64</td>
688-
<td style="text-align: left;">gcc-aarch64-linux-gnu</td>
689-
<td style="text-align: left;">g++-aarch64-linux-gnu</td>
692+
<td style="text-align: left;">buster</td>
690693
<td style="text-align: left;">arm64</td>
691694
<td style="text-align: left;">aarch64-linux-gnu</td>
695+
<td>(all)</td>
692696
</tr>
693697
<tr class="even">
694-
<td style="text-align: left;">ppc64el</td>
695-
<td style="text-align: left;">gcc-powerpc64le-linux-gnu</td>
696-
<td style="text-align: left;">g++-powerpc64le-linux-gnu</td>
698+
<td style="text-align: left;">ppc64le</td>
699+
<td style="text-align: left;">buster</td>
697700
<td style="text-align: left;">ppc64el</td>
698701
<td style="text-align: left;">powerpc64le-linux-gnu</td>
702+
<td>(all)</td>
699703
</tr>
700704
<tr class="odd">
701705
<td style="text-align: left;">s390x</td>
702-
<td style="text-align: left;">gcc-s390x-linux-gnu</td>
703-
<td style="text-align: left;">g++-s390x-linux-gnu</td>
706+
<td style="text-align: left;">buster</td>
704707
<td style="text-align: left;">s390x</td>
705708
<td style="text-align: left;">s390x-linux-gnu</td>
709+
<td>(all)</td>
710+
</tr>
711+
<tr class="even">
712+
<td style="text-align: left;">mipsle</td>
713+
<td style="text-align: left;">buster</td>
714+
<td style="text-align: left;">mipsel</td>
715+
<td style="text-align: left;">mipsel-linux-gnu</td>
716+
<td>zero</td>
717+
</tr>
718+
<tr class="odd">
719+
<td style="text-align: left;">mips64le</td>
720+
<td style="text-align: left;">buster</td>
721+
<td style="text-align: left;">mips64el</td>
722+
<td style="text-align: left;">mips64el-linux-gnueabi64</td>
723+
<td>zero</td>
724+
</tr>
725+
<tr class="even">
726+
<td style="text-align: left;">armel</td>
727+
<td style="text-align: left;">buster</td>
728+
<td style="text-align: left;">arm</td>
729+
<td style="text-align: left;">arm-linux-gnueabi</td>
730+
<td>zero</td>
731+
</tr>
732+
<tr class="odd">
733+
<td style="text-align: left;">ppc</td>
734+
<td style="text-align: left;">sid</td>
735+
<td style="text-align: left;">powerpc</td>
736+
<td style="text-align: left;">powerpc-linux-gnu</td>
737+
<td>zero</td>
738+
</tr>
739+
<tr class="even">
740+
<td style="text-align: left;">ppc64be</td>
741+
<td style="text-align: left;">sid</td>
742+
<td style="text-align: left;">ppc64</td>
743+
<td style="text-align: left;">powerpc64-linux-gnu</td>
744+
<td>(all)</td>
745+
</tr>
746+
<tr class="odd">
747+
<td style="text-align: left;">m68k</td>
748+
<td style="text-align: left;">sid</td>
749+
<td style="text-align: left;">m68k</td>
750+
<td style="text-align: left;">m68k-linux-gnu</td>
751+
<td>zero</td>
752+
</tr>
753+
<tr class="even">
754+
<td style="text-align: left;">alpha</td>
755+
<td style="text-align: left;">sid</td>
756+
<td style="text-align: left;">alpha</td>
757+
<td style="text-align: left;">alpha-linux-gnu</td>
758+
<td>zero</td>
759+
</tr>
760+
<tr class="odd">
761+
<td style="text-align: left;">sh4</td>
762+
<td style="text-align: left;">sid</td>
763+
<td style="text-align: left;">sh4</td>
764+
<td style="text-align: left;">sh4-linux-gnu</td>
765+
<td>zero</td>
706766
</tr>
707767
</tbody>
708768
</table>
709-
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
710769
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
711770
<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>
712771
<h3 id="building-for-musl">Building for musl</h3>

0 commit comments

Comments
 (0)