Skip to content

Commit 1eb1c75

Browse files
committed
Merge
2 parents 0657abd + 95c7c55 commit 1eb1c75

File tree

868 files changed

+31242
-27621
lines changed

Some content is hidden

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

868 files changed

+31242
-27621
lines changed

.github/workflows/build-cross-compile.yml

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,14 @@ on:
3737
apt-gcc-cross-version:
3838
required: true
3939
type: string
40+
extra-conf-options:
41+
required: false
42+
type: string
4043

4144
jobs:
4245
build-cross-compile:
4346
name: build
44-
runs-on: ubuntu-20.04
47+
runs-on: ubuntu-22.04
4548

4649
strategy:
4750
fail-fast: false
@@ -51,20 +54,35 @@ jobs:
5154
- arm
5255
- s390x
5356
- ppc64le
57+
- riscv64
5458
include:
5559
- target-cpu: aarch64
56-
debian-arch: arm64
5760
gnu-arch: aarch64
61+
debian-arch: arm64
62+
debian-repository: https://httpredir.debian.org/debian/
63+
debian-version: bullseye
5864
- target-cpu: arm
59-
debian-arch: armhf
6065
gnu-arch: arm
66+
debian-arch: armhf
67+
debian-repository: https://httpredir.debian.org/debian/
68+
debian-version: bullseye
6169
gnu-abi: eabihf
6270
- target-cpu: s390x
63-
debian-arch: s390x
6471
gnu-arch: s390x
72+
debian-arch: s390x
73+
debian-repository: https://httpredir.debian.org/debian/
74+
debian-version: bullseye
6575
- target-cpu: ppc64le
66-
debian-arch: ppc64el
6776
gnu-arch: powerpc64le
77+
debian-arch: ppc64el
78+
debian-repository: https://httpredir.debian.org/debian/
79+
debian-version: bullseye
80+
- target-cpu: riscv64
81+
gnu-arch: riscv64
82+
debian-arch: riscv64
83+
debian-repository: https://deb.debian.org/debian-ports
84+
debian-keyring: /usr/share/keyrings/debian-ports-archive-keyring.gpg
85+
debian-version: sid
6886

6987
steps:
7088
- name: 'Checkout the JDK source'
@@ -94,7 +112,8 @@ jobs:
94112
g++-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \
95113
gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-cross-version }} \
96114
g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-cross-version }} \
97-
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
115+
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev \
116+
debian-ports-archive-keyring
98117
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
99118
100119
- name: 'Check cache for sysroot'
@@ -115,9 +134,10 @@ jobs:
115134
--verbose
116135
--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
117136
--resolve-deps
118-
buster
137+
$(test -n "${{ matrix.debian-keyring }}" && echo "--keyring=${{ matrix.debian-keyring }}")
138+
${{ matrix.debian-version }}
119139
sysroot
120-
https://httpredir.debian.org/debian/
140+
${{ matrix.debian-repository }}
121141
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
122142

123143
- name: 'Prepare sysroot'
@@ -142,6 +162,10 @@ jobs:
142162
--with-build-jdk=${{ steps.buildjdk.outputs.jdk-path }}
143163
CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-${{ inputs.gcc-major-version }}
144164
CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-${{ inputs.gcc-major-version }}
165+
${{ inputs.extra-conf-options }} || (
166+
echo "Dumping config.log:" &&
167+
cat config.log &&
168+
exit 1)
145169
146170
- name: 'Build'
147171
id: build

.github/workflows/build-linux.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ on:
6262
jobs:
6363
build-linux:
6464
name: build
65-
runs-on: ubuntu-20.04
65+
runs-on: ubuntu-22.04
6666

6767
strategy:
6868
fail-fast: false
@@ -122,7 +122,10 @@ jobs:
122122
--with-gtest=${{ steps.gtest.outputs.path }}
123123
--enable-jtreg-failure-handler
124124
--with-zlib=system
125-
${{ inputs.extra-conf-options }}
125+
${{ inputs.extra-conf-options }} || (
126+
echo "Dumping config.log:" &&
127+
cat config.log &&
128+
exit 1)
126129
127130
- name: 'Build'
128131
id: build

.github/workflows/build-macos.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,10 @@ jobs:
9797
--with-gtest=${{ steps.gtest.outputs.path }}
9898
--enable-jtreg-failure-handler
9999
--with-zlib=system
100-
${{ inputs.extra-conf-options }}
100+
${{ inputs.extra-conf-options }} || (
101+
echo "Dumping config.log:" &&
102+
cat config.log &&
103+
exit 1)
101104
102105
- name: 'Build'
103106
id: build

.github/workflows/build-windows.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,10 @@ jobs:
110110
--with-gtest=${{ steps.gtest.outputs.path }}
111111
--enable-jtreg-failure-handler
112112
--with-msvc-toolset-version=${{ inputs.msvc-toolset-version }}
113-
${{ inputs.extra-conf-options }}
113+
${{ inputs.extra-conf-options }} || (
114+
echo "Dumping config.log:" &&
115+
cat config.log &&
116+
exit 1)
114117
env:
115118
# We need a minimal PATH on Windows
116119
# Set PATH to "", so just GITHUB_PATH is included

.github/workflows/main.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949

5050
select:
5151
name: 'Select platforms'
52-
runs-on: ubuntu-20.04
52+
runs-on: ubuntu-22.04
5353
outputs:
5454
linux-x64: ${{ steps.include.outputs.linux-x64 }}
5555
linux-x86: ${{ steps.include.outputs.linux-x86 }}
@@ -124,7 +124,7 @@ jobs:
124124
with:
125125
platform: linux-x64
126126
gcc-major-version: '10'
127-
apt-gcc-version: '10.3.0-1ubuntu1~20.04'
127+
apt-gcc-version: '10.3.0-15ubuntu1'
128128
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
129129
if: needs.select.outputs.linux-x64 == 'true' || needs.select.outputs.linux-cross-compile == 'true'
130130

@@ -136,11 +136,11 @@ jobs:
136136
platform: linux-x86
137137
gcc-major-version: '10'
138138
gcc-package-suffix: '-multilib'
139-
apt-gcc-version: '10.3.0-1ubuntu1~20.04'
139+
apt-gcc-version: '10.3.0-15ubuntu1'
140140
apt-architecture: 'i386'
141141
# Some multilib libraries do not have proper inter-dependencies, so we have to
142142
# install their dependencies manually.
143-
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386'
143+
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386'
144144
extra-conf-options: '--with-target-bits=32'
145145
if: needs.select.outputs.linux-x86 == 'true'
146146

@@ -153,7 +153,7 @@ jobs:
153153
make-target: 'hotspot'
154154
debug-levels: '[ "debug" ]'
155155
gcc-major-version: '10'
156-
apt-gcc-version: '10.3.0-1ubuntu1~20.04'
156+
apt-gcc-version: '10.3.0-15ubuntu1'
157157
extra-conf-options: '--disable-precompiled-headers'
158158
if: needs.select.outputs.linux-x64-variants == 'true'
159159

@@ -166,7 +166,7 @@ jobs:
166166
make-target: 'hotspot'
167167
debug-levels: '[ "debug" ]'
168168
gcc-major-version: '10'
169-
apt-gcc-version: '10.3.0-1ubuntu1~20.04'
169+
apt-gcc-version: '10.3.0-15ubuntu1'
170170
extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers'
171171
if: needs.select.outputs.linux-x64-variants == 'true'
172172

@@ -179,7 +179,7 @@ jobs:
179179
make-target: 'hotspot'
180180
debug-levels: '[ "debug" ]'
181181
gcc-major-version: '10'
182-
apt-gcc-version: '10.3.0-1ubuntu1~20.04'
182+
apt-gcc-version: '10.3.0-15ubuntu1'
183183
extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers'
184184
if: needs.select.outputs.linux-x64-variants == 'true'
185185

@@ -193,7 +193,7 @@ jobs:
193193
# Technically this is not the "debug" level, but we can't inject a new matrix state for just this job
194194
debug-levels: '[ "debug" ]'
195195
gcc-major-version: '10'
196-
apt-gcc-version: '10.3.0-1ubuntu1~20.04'
196+
apt-gcc-version: '10.3.0-15ubuntu1'
197197
extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers'
198198
if: needs.select.outputs.linux-x64-variants == 'true'
199199

@@ -205,8 +205,8 @@ jobs:
205205
uses: ./.github/workflows/build-cross-compile.yml
206206
with:
207207
gcc-major-version: '10'
208-
apt-gcc-version: '10.3.0-1ubuntu1~20.04'
209-
apt-gcc-cross-version: '10.3.0-1ubuntu1~20.04cross1'
208+
apt-gcc-version: '10.3.0-15ubuntu1'
209+
apt-gcc-cross-version: '10.3.0-8ubuntu1cross1'
210210
if: needs.select.outputs.linux-cross-compile == 'true'
211211

212212
build-macos-x64:
@@ -234,7 +234,7 @@ jobs:
234234
uses: ./.github/workflows/build-windows.yml
235235
with:
236236
platform: windows-x64
237-
msvc-toolset-version: '14.25'
237+
msvc-toolset-version: '14.29'
238238
msvc-toolset-architecture: 'x86.x64'
239239
if: needs.select.outputs.windows-x64 == 'true'
240240

@@ -262,7 +262,7 @@ jobs:
262262
with:
263263
platform: linux-x64
264264
bootjdk-platform: linux-x64
265-
runs-on: ubuntu-20.04
265+
runs-on: ubuntu-22.04
266266

267267
test-linux-x86:
268268
name: linux-x86
@@ -272,7 +272,7 @@ jobs:
272272
with:
273273
platform: linux-x86
274274
bootjdk-platform: linux-x64
275-
runs-on: ubuntu-20.04
275+
runs-on: ubuntu-22.04
276276

277277
test-macos-x64:
278278
name: macos-x64
@@ -297,7 +297,7 @@ jobs:
297297
# Remove bundles so they are not misconstrued as binary distributions from the JDK project
298298
remove-bundles:
299299
name: 'Remove bundle artifacts'
300-
runs-on: ubuntu-20.04
300+
runs-on: ubuntu-22.04
301301
if: always()
302302
needs:
303303
- build-linux-x64

doc/building.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ <h1 class="title">Building the JDK</h1>
112112
<li><a href="#developing-the-build-system-itself">Developing the Build System Itself</a></li>
113113
</ul></li>
114114
<li><a href="#contributing-to-the-jdk">Contributing to the JDK</a></li>
115+
<li><a href="#editing-this-document">Editing this document</a></li>
115116
</ul>
116117
</nav>
117118
<h2 id="tldr-instructions-for-the-impatient">TL;DR (Instructions for the Impatient)</h2>
@@ -300,8 +301,8 @@ <h3 id="apple-xcode">Apple Xcode</h3>
300301
<p>It is advisable to keep an older version of Xcode for building the JDK when updating Xcode. This <a href="http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html">blog page</a> has good suggestions on managing multiple Xcode versions. To use a specific version of Xcode, use <code>xcode-select -s</code> before running <code>configure</code>, or use <code>--with-toolchain-path</code> to point to the version of Xcode to use, e.g. <code>configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin</code></p>
301302
<p>If you have recently (inadvertently) updated your OS and/or Xcode version, and the JDK can no longer be built, please see the section on <a href="#problems-with-the-build-environment">Problems with the Build Environment</a>, and <a href="#getting-help">Getting Help</a> to find out if there are any recent, non-merged patches available for this update.</p>
302303
<h3 id="microsoft-visual-studio">Microsoft Visual Studio</h3>
303-
<p>For aarch64 machines running Windows the minimum accepted version is Visual Studio 2019 (16.8 or higher). For all other platforms the minimum accepted version of Visual Studio is 2017. Older versions will not be accepted by <code>configure</code> and will not work. For all platforms the maximum accepted version of Visual Studio is 2022.</p>
304-
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2017</code>.</p>
304+
<p>The minimum accepted version is Visual Studio 2019 version 16.8. (Note that this version is often presented as &quot;MSVC 14.28&quot;, and reported by cl.exe as 19.28.) Older versions will not be accepted by <code>configure</code> and will not work. The maximum accepted version of Visual Studio is 2022.</p>
305+
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2022</code>.</p>
305306
<p>If you have Visual Studio installed but <code>configure</code> fails to detect it, it may be because of <a href="#spaces-in-path">spaces in path</a>.</p>
306307
<h3 id="ibm-xl-cc">IBM XL C/C++</h3>
307308
<p>Please consult the AIX section of the <a href="https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms">Supported Build Platforms</a> OpenJDK Build Wiki page for details about which versions of XLC are supported.</p>
@@ -1033,5 +1034,7 @@ <h2 id="contributing-to-the-jdk">Contributing to the JDK</h2>
10331034
<p>First of all: Thank you! We gladly welcome your contribution. However, please bear in mind that the JDK is a massive project, and we must ask you to follow our rules and guidelines to be able to accept your contribution.</p>
10341035
<p>The official place to start is the <a href="http://openjdk.java.net/contribute/">'How to contribute' page</a>. There is also an official (but somewhat outdated and skimpy on details) <a href="http://openjdk.java.net/guide/">Developer's Guide</a>.</p>
10351036
<p>If this seems overwhelming to you, the Adoption Group is there to help you! A good place to start is their <a href="https://wiki.openjdk.java.net/display/Adoption/New+Contributor">'New Contributor' page</a>, or start reading the comprehensive <a href="https://adoptopenjdk.gitbooks.io/adoptopenjdk-getting-started-kit/en/">Getting Started Kit</a>. The Adoption Group will also happily answer any questions you have about contributing. Contact them by <a href="http://mail.openjdk.java.net/mailman/listinfo/adoption-discuss">mail</a> or <a href="http://openjdk.java.net/irc/">IRC</a>.</p>
1037+
<h2 id="editing-this-document">Editing this document</h2>
1038+
<p>If you want to contribute changes to this document, edit <code>doc/building.md</code> and then run <code>make update-build-docs</code> to generate the same changes in <code>doc/building.html</code>.</p>
10361039
</body>
10371040
</html>

doc/building.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -382,14 +382,14 @@ available for this update.
382382

383383
### Microsoft Visual Studio
384384

385-
For aarch64 machines running Windows the minimum accepted version is Visual Studio 2019
386-
(16.8 or higher). For all other platforms the minimum accepted version of
387-
Visual Studio is 2017. Older versions will not be accepted by `configure` and will
388-
not work. For all platforms the maximum accepted version of Visual Studio is 2022.
385+
The minimum accepted version is Visual Studio 2019 version 16.8. (Note that this
386+
version is often presented as "MSVC 14.28", and reported by cl.exe as 19.28.)
387+
Older versions will not be accepted by `configure` and will not work. The
388+
maximum accepted version of Visual Studio is 2022.
389389

390390
If you have multiple versions of Visual Studio installed, `configure` will by
391391
default pick the latest. You can request a specific version to be used by
392-
setting `--with-toolchain-version`, e.g. `--with-toolchain-version=2017`.
392+
setting `--with-toolchain-version`, e.g. `--with-toolchain-version=2022`.
393393

394394
If you have Visual Studio installed but `configure` fails to detect it, it may
395395
be because of [spaces in path](#spaces-in-path).
@@ -1949,6 +1949,12 @@ contributing. Contact them by [mail](
19491949
http://mail.openjdk.java.net/mailman/listinfo/adoption-discuss) or [IRC](
19501950
http://openjdk.java.net/irc/).
19511951
1952+
## Editing this document
1953+
1954+
If you want to contribute changes to this document, edit `doc/building.md` and
1955+
then run `make update-build-docs` to generate the same changes in
1956+
`doc/building.html`.
1957+
19521958
---
19531959
# Override styles from the base CSS file that are not ideal for this document.
19541960
header-includes:

doc/hotspot-style.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,6 @@ <h3 id="excluded-features">Excluded Features</h3>
448448
<li><p><code>[[deprecated]]</code> attribute (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3760.html">n3760</a>) — Not relevant in HotSpot code.</p></li>
449449
<li><p>Avoid most operator overloading, preferring named functions. When operator overloading is used, ensure the semantics conform to the normal expected behavior of the operation.</p></li>
450450
<li><p>Avoid most implicit conversion constructors and (implicit or explicit) conversion operators. (Note that conversion to <code>bool</code> isn't needed in HotSpot code because of the &quot;no implicit boolean&quot; guideline.)</p></li>
451-
<li><p>Avoid covariant return types.</p></li>
452451
<li><p>Avoid <code>goto</code> statements.</p></li>
453452
</ul>
454453
<h3 id="undecided-features">Undecided Features</h3>

doc/hotspot-style.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,8 +1120,6 @@ normal expected behavior of the operation.
11201120
conversion operators. (Note that conversion to `bool` isn't needed
11211121
in HotSpot code because of the "no implicit boolean" guideline.)
11221122
1123-
* Avoid covariant return types.
1124-
11251123
* Avoid `goto` statements.
11261124
11271125
### Undecided Features

doc/testing.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ <h1 class="title">Testing the JDK</h1>
4646
<li><a href="#pkcs11-tests">PKCS11 Tests</a></li>
4747
<li><a href="#client-ui-tests">Client UI Tests</a></li>
4848
</ul></li>
49+
<li><a href="#editing-this-document">Editing this document</a></li>
4950
</ul>
5051
</nav>
5152
<h2 id="using-make-test-the-run-test-framework">Using &quot;make test&quot; (the run-test framework)</h2>
@@ -85,7 +86,7 @@ <h3 id="common-test-groups">Common Test Groups</h3>
8586
<li><p><code>tier4</code>: This test group includes every other test not covered by previous tiers. It includes, for example, <code>vmTestbase</code> suites for Hotspot, which run for many hours even on large machines. It also runs GUI tests, so the same <code>TEST_JOBS</code> and <code>JTREG_KEYWORDS</code> caveats apply.</p></li>
8687
</ul>
8788
<h3 id="jtreg">JTReg</h3>
88-
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests.</p>
89+
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests. Documentation can be found at <a href="https://openjdk.org/jtreg/">https://openjdk.org/jtreg/</a>, note especially the extensive <a href="https://openjdk.org/jtreg/faq.html">FAQ</a>.</p>
8990
<p>JTReg test groups can be specified either without a test root, e.g. <code>:tier1</code> (or <code>tier1</code>, the initial colon is optional), or with, e.g. <code>hotspot:tier1</code>, <code>test/jdk:jdk_util</code> or <code>$(TOPDIR)/test/hotspot/jtreg:hotspot_all</code>. The test root can be specified either as an absolute path, or a path relative to the JDK top directory, or the <code>test</code> directory. For simplicity, the hotspot JTReg test root, which really is <code>hotspot/jtreg</code> can be abbreviated as just <code>hotspot</code>.</p>
9091
<p>When specified without a test root, all matching groups from all test roots will be added. Otherwise, only the group from the specified test root will be added.</p>
9192
<p>Individual JTReg tests or directories containing JTReg tests can also be specified, like <code>test/hotspot/jtreg/native_sanity/JniVersion.java</code> or <code>hotspot/jtreg/native_sanity</code>. Just like for test root selection, you can either specify an absolute path (which can even point to JTReg tests outside the source tree), or a path relative to either the JDK top directory or the <code>test</code> directory. <code>hotspot</code> can be used as an alias for <code>hotspot/jtreg</code> here as well.</p>
@@ -254,5 +255,7 @@ <h4 id="linux">Linux</h4>
254255
<h4 id="windows">Windows</h4>
255256
<p>Type <code>gpedit</code> in the Search and then click Edit group policy; navigate to User Configuration -&gt; Administrative Templates -&gt; Windows Components -&gt; File Explorer; in the right-side pane look for &quot;Turn off Windows key hotkeys&quot; and double click on it; enable or disable hotkeys.</p>
256257
<p>Note: restart is required to make the settings take effect.</p>
258+
<h2 id="editing-this-document">Editing this document</h2>
259+
<p>If you want to contribute changes to this document, edit <code>doc/testing.md</code> and then run <code>make update-build-docs</code> to generate the same changes in <code>doc/testing.html</code>.</p>
257260
</body>
258261
</html>

0 commit comments

Comments
 (0)