Skip to content

Commit 502bd98

Browse files
committed
Merge branch 'master' into 8254231_linker
2 parents 7d6eadc + cb6167b commit 502bd98

File tree

426 files changed

+26034
-10418
lines changed

Some content is hidden

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

426 files changed

+26034
-10418
lines changed

.github/workflows/submit.yml

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
outputs:
1919
should_run: ${{ steps.check_submit.outputs.should_run }}
2020
bundle_id: ${{ steps.check_bundle_id.outputs.bundle_id }}
21+
platform_linux_x32: ${{ steps.check_platforms.outputs.platform_linux_x32 }}
2122
platform_linux_x64: ${{ steps.check_platforms.outputs.platform_linux_x64 }}
2223
platform_windows_x64: ${{ steps.check_platforms.outputs.platform_windows_x64 }}
2324
platform_macos_x64: ${{ steps.check_platforms.outputs.platform_macos_x64 }}
@@ -32,6 +33,7 @@ jobs:
3233
id: check_platforms
3334
run: |
3435
echo "::set-output name=platform_linux_x64::${{ contains(github.event.inputs.platforms, 'linux x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x64'))) }}"
36+
echo "::set-output name=platform_linux_x32::${{ contains(github.event.inputs.platforms, 'linux x32') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'linux x32'))) }}"
3537
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'))) }}"
3638
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'))) }}"
3739
if: steps.check_submit.outputs.should_run != 'false'
@@ -356,6 +358,103 @@ jobs:
356358
path: build/*/test-results
357359
continue-on-error: true
358360

361+
linux_x32_build:
362+
name: Linux x32
363+
runs-on: "ubuntu-latest"
364+
needs: prerequisites
365+
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_x32 != 'false'
366+
367+
strategy:
368+
fail-fast: false
369+
matrix:
370+
flavor:
371+
- build debug
372+
include:
373+
- flavor: build debug
374+
flags: --enable-debug
375+
artifact: -debug
376+
377+
# Reduced 32-bit build uses the same boot JDK as 64-bit build
378+
env:
379+
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
380+
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
381+
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_FILENAME }}"
382+
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_URL }}"
383+
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).LINUX_X64_BOOT_JDK_SHA256 }}"
384+
385+
steps:
386+
- name: Checkout the source
387+
uses: actions/checkout@v2
388+
with:
389+
path: jdk
390+
391+
- name: Restore boot JDK from cache
392+
id: bootjdk
393+
uses: actions/cache@v2
394+
with:
395+
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
396+
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
397+
398+
- name: Download boot JDK
399+
run: |
400+
mkdir -p "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
401+
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
402+
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | sha256sum -c >/dev/null -
403+
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
404+
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
405+
if: steps.bootjdk.outputs.cache-hit != 'true'
406+
407+
- name: Restore jtreg artifact
408+
id: jtreg_restore
409+
uses: actions/download-artifact@v2
410+
with:
411+
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
412+
path: ~/jtreg/
413+
continue-on-error: true
414+
415+
- name: Restore jtreg artifact (retry)
416+
uses: actions/download-artifact@v2
417+
with:
418+
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
419+
path: ~/jtreg/
420+
if: steps.jtreg_restore.outcome == 'failure'
421+
422+
- name: Checkout gtest sources
423+
uses: actions/checkout@v2
424+
with:
425+
repository: "google/googletest"
426+
ref: "release-${{ fromJson(needs.prerequisites.outputs.dependencies).GTEST_VERSION }}"
427+
path: gtest
428+
429+
# Roll in the multilib environment and its dependencies.
430+
# Some multilib libraries do not have proper inter-dependencies, so we have to
431+
# install their dependencies manually.
432+
- name: Install dependencies
433+
run: |
434+
sudo dpkg --add-architecture i386
435+
sudo apt-get update
436+
sudo apt-get install gcc-multilib g++-multilib libfreetype6-dev:i386 libxrandr-dev:i386 libxtst-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libcups2-dev:i386 libasound2-dev:i386
437+
438+
- name: Configure
439+
run: >
440+
bash configure
441+
--with-conf-name=linux-x32
442+
--with-target-bits=32
443+
${{ matrix.flags }}
444+
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
445+
--with-version-build=0
446+
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}
447+
--with-jtreg=${HOME}/jtreg
448+
--with-gtest=${GITHUB_WORKSPACE}/gtest
449+
--with-default-make-target="product-bundles test-bundles"
450+
--with-zlib=system
451+
--enable-jtreg-failure-handler
452+
working-directory: jdk
453+
454+
- name: Build
455+
run: make CONF_NAME=linux-x32 ${{ matrix.build-target }}
456+
working-directory: jdk
457+
359458
windows_x64_build:
360459
name: Windows x64
361460
runs-on: "windows-latest"

.hgignore

Lines changed: 0 additions & 18 deletions
This file was deleted.

make/CompileJavaModules.gmk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,10 @@ jdk.jfr_DISABLED_WARNINGS += exports
546546
jdk.jfr_COPY := .xsd .xml .dtd
547547
jdk.jfr_JAVAC_FLAGS := -XDstringConcat=inline
548548

549+
################################################################################
550+
551+
jdk.incubator.vector_DOCLINT += -Xdoclint:all/protected
552+
549553
################################################################################
550554
# If this is an imported module that has prebuilt classes, only compile
551555
# module-info.java.

make/conf/jib-profiles.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -960,7 +960,7 @@ var getJibProfilesDependencies = function (input, common) {
960960

961961
var devkit_platform_revisions = {
962962
linux_x64: "gcc10.2.0-OL6.4+1.0",
963-
macosx_x64: "Xcode11.3.1-MacOSX10.15+1.0",
963+
macosx_x64: "Xcode11.3.1-MacOSX10.15+1.1",
964964
windows_x64: "VS2019-16.7.2+1.0",
965965
linux_aarch64: "gcc10.2.0-OL7.6+1.0",
966966
linux_arm: "gcc8.2.0-Fedora27+1.0",

make/devkit/createMacosxDevkit.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ EXCLUDE_DIRS=" \
9191
Platforms/AppleTVSimulator.platform \
9292
Platforms/iPhoneSimulator.platform \
9393
Platforms/WatchSimulator.platform \
94-
Contents/SharedFrameworks/LLDB.framework \
9594
Contents/SharedFrameworks/ModelIO.framework \
9695
Contents/SharedFrameworks/XCSUI.framework \
9796
Contents/SharedFrameworks/SceneKit.framework \

make/hotspot/symbols/symbols-unix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,15 +143,15 @@ JVM_InternString
143143
JVM_Interrupt
144144
JVM_InvokeMethod
145145
JVM_IsArrayClass
146-
JVM_IsDynamicDumpingEnabled
147-
JVM_IsSharingEnabled
146+
JVM_IsCDSDumpingEnabled
148147
JVM_IsConstructorIx
149148
JVM_IsDumpingClassList
150149
JVM_IsHiddenClass
151150
JVM_IsInterface
152151
JVM_IsPrimitiveClass
153152
JVM_IsRecord
154153
JVM_IsSameClassPackage
154+
JVM_IsSharingEnabled
155155
JVM_IsSupportedJNIVersion
156156
JVM_IsThreadAlive
157157
JVM_IsVMGeneratedMethodIx

src/hotspot/cpu/aarch64/aarch64.ad

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -614,9 +614,7 @@ alloc_class chunk3(RFLAGS);
614614
// Several register classes are automatically defined based upon information in
615615
// this architecture description.
616616
// 1) reg_class inline_cache_reg ( /* as def'd in frame section */ )
617-
// 2) reg_class compiler_method_reg ( /* as def'd in frame section */ )
618-
// 2) reg_class interpreter_method_reg ( /* as def'd in frame section */ )
619-
// 3) reg_class stack_slots( /* one chunk of stack-based "registers" */ )
617+
// 2) reg_class stack_slots( /* one chunk of stack-based "registers" */ )
620618
//
621619

622620
// Class for all 32 bit general purpose registers
@@ -2613,11 +2611,6 @@ const bool Matcher::rematerialize_float_constants = false;
26132611
// C code as the Java calling convention forces doubles to be aligned.
26142612
const bool Matcher::misaligned_doubles_ok = true;
26152613

2616-
// No-op on amd64
2617-
void Matcher::pd_implicit_null_fixup(MachNode *node, uint idx) {
2618-
Unimplemented();
2619-
}
2620-
26212614
// Advertise here if the CPU requires explicit rounding operations to implement strictfp mode.
26222615
const bool Matcher::strict_fp_requires_explicit_rounding = false;
26232616

@@ -4095,9 +4088,6 @@ frame %{
40954088
// Inline Cache Register or Method for I2C.
40964089
inline_cache_reg(R12);
40974090

4098-
// Method Register when calling interpreter.
4099-
interpreter_method_reg(R12);
4100-
41014091
// Number of stack slots consumed by locking an object
41024092
sync_stack_slots(2);
41034093

@@ -5685,16 +5675,6 @@ operand inline_cache_RegP(iRegP reg)
56855675
interface(REG_INTER);
56865676
%}
56875677

5688-
operand interpreter_method_RegP(iRegP reg)
5689-
%{
5690-
constraint(ALLOC_IN_RC(method_reg)); // interpreter_method_reg
5691-
match(reg);
5692-
match(iRegPNoSp);
5693-
op_cost(0);
5694-
format %{ %}
5695-
interface(REG_INTER);
5696-
%}
5697-
56985678
// Thread Register
56995679
operand thread_RegP(iRegP reg)
57005680
%{

src/hotspot/cpu/arm/arm.ad

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,10 +1159,6 @@ const bool Matcher::rematerialize_float_constants = false;
11591159
// Java calling convention forces doubles to be aligned.
11601160
const bool Matcher::misaligned_doubles_ok = false;
11611161

1162-
// No-op on ARM.
1163-
void Matcher::pd_implicit_null_fixup(MachNode *node, uint idx) {
1164-
}
1165-
11661162
// Advertise here if the CPU requires explicit rounding operations to implement strictfp mode.
11671163
const bool Matcher::strict_fp_requires_explicit_rounding = false;
11681164

@@ -1667,7 +1663,6 @@ frame %{
16671663
// These two registers define part of the calling convention
16681664
// between compiled code and the interpreter.
16691665
inline_cache_reg(R_Ricklass); // Inline Cache Register or Method* for I2C
1670-
interpreter_method_reg(R_Rmethod); // Method Register when calling interpreter
16711666

16721667
// Optional: name the operand used by cisc-spilling to access [stack_pointer + offset]
16731668
cisc_spilling_operand_name(indOffset);
@@ -2527,14 +2522,6 @@ operand inline_cache_regP(iRegP reg) %{
25272522
interface(REG_INTER);
25282523
%}
25292524

2530-
operand interpreter_method_regP(iRegP reg) %{
2531-
constraint(ALLOC_IN_RC(Rmethod_regP));
2532-
match(reg);
2533-
format %{ %}
2534-
interface(REG_INTER);
2535-
%}
2536-
2537-
25382525
//----------Complex Operands---------------------------------------------------
25392526
// Indirect Memory Reference
25402527
operand indirect(sp_ptr_RegP reg) %{

src/hotspot/cpu/arm/arm_32.ad

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -182,11 +182,11 @@ alloc_class chunk0(
182182
alloc_class chunk1(
183183
R_S16, R_S17, R_S18, R_S19, R_S20, R_S21, R_S22, R_S23,
184184
R_S24, R_S25, R_S26, R_S27, R_S28, R_S29, R_S30, R_S31,
185-
R_S0, R_S1, R_S2, R_S3, R_S4, R_S5, R_S6, R_S7,
185+
R_S0, R_S1, R_S2, R_S3, R_S4, R_S5, R_S6, R_S7,
186186
R_S8, R_S9, R_S10, R_S11, R_S12, R_S13, R_S14, R_S15,
187-
R_D16, R_D16x,R_D17, R_D17x,R_D18, R_D18x,R_D19, R_D19x,
188-
R_D20, R_D20x,R_D21, R_D21x,R_D22, R_D22x,R_D23, R_D23x,
189-
R_D24, R_D24x,R_D25, R_D25x,R_D26, R_D26x,R_D27, R_D27x,
187+
R_D16, R_D16x,R_D17, R_D17x,R_D18, R_D18x,R_D19, R_D19x,
188+
R_D20, R_D20x,R_D21, R_D21x,R_D22, R_D22x,R_D23, R_D23x,
189+
R_D24, R_D24x,R_D25, R_D25x,R_D26, R_D26x,R_D27, R_D27x,
190190
R_D28, R_D28x,R_D29, R_D29x,R_D30, R_D30x,R_D31, R_D31x
191191
);
192192

@@ -196,8 +196,7 @@ alloc_class chunk2(APSR, FPSCR);
196196
// Several register classes are automatically defined based upon information in
197197
// this architecture description.
198198
// 1) reg_class inline_cache_reg ( as defined in frame section )
199-
// 2) reg_class interpreter_method_reg ( as defined in frame section )
200-
// 3) reg_class stack_slots( /* one chunk of stack-based "registers" */ )
199+
// 2) reg_class stack_slots( /* one chunk of stack-based "registers" */ )
201200
//
202201

203202
// ----------------------------
@@ -223,7 +222,6 @@ reg_class ptr_reg(R_R0, R_R1, R_R2, R_R3, R_R4, R_R5, R_R6, R_R7, R_R8, R_R9, R_
223222
reg_class sp_ptr_reg(R_R0, R_R1, R_R2, R_R3, R_R4, R_R5, R_R6, R_R7, R_R8, R_R9, R_R11, R_R12, R_R14, R_R10 /* TLS*/, R_R13 /* SP*/);
224223

225224
#define R_Ricklass R_R8
226-
#define R_Rmethod R_R9
227225
#define R_Rthread R_R10
228226
#define R_Rexception_obj R_R4
229227

@@ -237,7 +235,6 @@ reg_class R9_regP(R_R9);
237235
reg_class R12_regP(R_R12);
238236
reg_class Rexception_regP(R_Rexception_obj);
239237
reg_class Ricklass_regP(R_Ricklass);
240-
reg_class Rmethod_regP(R_Rmethod);
241238
reg_class Rthread_regP(R_Rthread);
242239
reg_class IP_regP(R_R12);
243240
reg_class SP_regP(R_R13);
@@ -442,7 +439,7 @@ int MachCallStaticJavaNode::ret_addr_offset() {
442439
int MachCallDynamicJavaNode::ret_addr_offset() {
443440
bool far = !cache_reachable();
444441
// mov_oop is always 2 words
445-
return (2 + (far ? 3 : 1)) * NativeInstruction::instruction_size;
442+
return (2 + (far ? 3 : 1)) * NativeInstruction::instruction_size;
446443
}
447444

448445
int MachCallRuntimeNode::ret_addr_offset() {

src/hotspot/cpu/ppc/ppc.ad

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -535,9 +535,7 @@ alloc_class chunk4 (
535535
// information in this architecture description.
536536

537537
// 1) reg_class inline_cache_reg ( as defined in frame section )
538-
// 2) reg_class compiler_method_reg ( as defined in frame section )
539-
// 2) reg_class interpreter_method_reg ( as defined in frame section )
540-
// 3) reg_class stack_slots( /* one chunk of stack-based "registers" */ )
538+
// 2) reg_class stack_slots( /* one chunk of stack-based "registers" */ )
541539
//
542540

543541
// ----------------------------
@@ -2344,10 +2342,6 @@ const bool Matcher::rematerialize_float_constants = false;
23442342
// Java calling convention forces doubles to be aligned.
23452343
const bool Matcher::misaligned_doubles_ok = true;
23462344

2347-
void Matcher::pd_implicit_null_fixup(MachNode *node, uint idx) {
2348-
Unimplemented();
2349-
}
2350-
23512345
// Advertise here if the CPU requires explicit rounding operations to implement strictfp mode.
23522346
const bool Matcher::strict_fp_requires_explicit_rounding = false;
23532347

@@ -3859,9 +3853,6 @@ frame %{
38593853
// Inline Cache Register or method for I2C.
38603854
inline_cache_reg(R19); // R19_method
38613855

3862-
// Method Register when calling interpreter.
3863-
interpreter_method_reg(R19); // R19_method
3864-
38653856
// Optional: name the operand used by cisc-spilling to access
38663857
// [stack_pointer + offset].
38673858
cisc_spilling_operand_name(indOffset);
@@ -4769,20 +4760,6 @@ operand inline_cache_regP(iRegPdst reg) %{
47694760
interface(REG_INTER);
47704761
%}
47714762

4772-
operand compiler_method_regP(iRegPdst reg) %{
4773-
constraint(ALLOC_IN_RC(rscratch1_bits64_reg)); // compiler_method_reg
4774-
match(reg);
4775-
format %{ %}
4776-
interface(REG_INTER);
4777-
%}
4778-
4779-
operand interpreter_method_regP(iRegPdst reg) %{
4780-
constraint(ALLOC_IN_RC(r19_bits64_reg)); // interpreter_method_reg
4781-
match(reg);
4782-
format %{ %}
4783-
interface(REG_INTER);
4784-
%}
4785-
47864763
// Operands to remove register moves in unscaled mode.
47874764
// Match read/write registers with an EncodeP node if neither shift nor add are required.
47884765
operand iRegP2N(iRegPsrc reg) %{

0 commit comments

Comments
 (0)