Skip to content

Commit cbb3a3d

Browse files
authored
Merge pull request SAP#2262 from SAP/pr-jdk-27+24
Merge to tag jdk-27+24
2 parents 58f89ae + 119809a commit cbb3a3d

1,239 files changed

Lines changed: 28562 additions & 97573 deletions

File tree

Some content is hidden

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

.github/actions/get-msys2/action.yml

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,49 @@
2525

2626
name: 'Get MSYS2'
2727
description: 'Download MSYS2 and prepare a Windows host'
28+
inputs:
29+
architecture:
30+
description: 'Architecture'
31+
required: true
2832

2933
runs:
3034
using: composite
3135
steps:
32-
- name: 'Install MSYS2'
33-
id: msys2
36+
- name: 'Install MSYS2 on x86.x64'
37+
id: msys2-x64
3438
uses: msys2/setup-msys2@v2.31.0
3539
with:
3640
install: 'autoconf tar unzip zip make'
3741
path-type: minimal
3842
release: false
43+
if: ${{ inputs.architecture == 'x86.x64' }}
44+
45+
- name: 'Install MSYS2 on ARM64'
46+
id: msys2-arm64
47+
uses: msys2/setup-msys2@v2.31.0
48+
with:
49+
install: 'autoconf tar unzip zip make'
50+
path-type: minimal
51+
release: true
52+
location: ${{ runner.tool_cache }}/msys2
53+
if: ${{ inputs.architecture == 'ARM64' }}
3954

4055
# We can't run bash until this is completed, so stick with pwsh
41-
- name: 'Set MSYS2 path'
56+
- name: 'Set MSYS2 path for x64'
4257
run: |
43-
echo "${{ steps.msys2.outputs.msys2-location }}/usr/bin" >> $env:GITHUB_PATH
58+
echo "${{ steps.msys2-x64.outputs.msys2-location }}/usr/bin" >> $env:GITHUB_PATH
4459
shell: pwsh
60+
if: ${{ inputs.architecture == 'x86.x64' }}
61+
62+
- name: 'Set MSYS2 path for ARM64'
63+
run: |
64+
echo "${{ steps.msys2-arm64.outputs.msys2-location }}/usr/bin" >> $env:GITHUB_PATH
65+
shell: pwsh
66+
if: ${{ inputs.architecture == 'ARM64' }}
67+
68+
# Remove the default config.site file provided by MSYS2 to ensure config.guess accurately detects the host system.
69+
- name: 'Remove default config.site'
70+
run: |
71+
echo "Removing default config.site"
72+
rm -f /etc/config.site
73+
shell: env /usr/bin/bash --login -eo pipefail {0}

.github/workflows/build-windows.yml

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ on:
4848
msvc-toolset-version:
4949
required: true
5050
type: string
51-
msvc-toolset-architecture:
51+
architecture:
5252
required: true
5353
type: string
5454
configure-arguments:
@@ -90,12 +90,14 @@ jobs:
9090

9191
- name: 'Get MSYS2'
9292
uses: ./.github/actions/get-msys2
93+
with:
94+
architecture: ${{ inputs.architecture }}
9395

9496
- name: 'Get the BootJDK'
9597
id: bootjdk
9698
uses: ./.github/actions/get-bootjdk
9799
with:
98-
platform: windows-x64
100+
platform: ${{ inputs.platform }}
99101

100102
- name: 'Get JTReg'
101103
id: jtreg
@@ -105,26 +107,49 @@ jobs:
105107
id: gtest
106108
uses: ./.github/actions/get-gtest
107109

108-
- name: 'Check toolchain installed'
109-
id: toolchain-check
110+
- name: 'Check toolchain installed for x64'
111+
id: toolchain-check-x64
110112
run: |
111113
set +e
112114
'/c/Program Files/Microsoft Visual Studio/2022/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }}
113115
if [ $? -eq 0 ]; then
114-
echo "Toolchain is already installed"
116+
echo "Toolchain is already installed for x64"
115117
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
116118
else
117-
echo "Toolchain is not yet installed"
119+
echo "Toolchain is not yet installed for x64"
118120
echo "toolchain-installed=false" >> $GITHUB_OUTPUT
119121
fi
122+
if: ${{ inputs.architecture == 'x86.x64' }}
123+
124+
- name: 'Check toolchain installed for ARM64'
125+
id: toolchain-check-arm64
126+
run: |
127+
set +e
128+
"/c/Program Files/Microsoft Visual Studio/2022/Enterprise/vc/auxiliary/build/vcvarsarm64.bat" -vcvars_ver=${{ inputs.msvc-toolset-version }}
129+
if [ $? -eq 0 ]; then
130+
echo "Toolchain is already installed for ARM64"
131+
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
132+
else
133+
echo "Toolchain is not yet installed for ARM64"
134+
echo "toolchain-installed=false" >> $GITHUB_OUTPUT
135+
fi
136+
if: ${{ inputs.architecture == 'ARM64' }}
137+
138+
- name: 'Install toolchain and dependencies for x64'
139+
run: |
140+
# Run Visual Studio Installer
141+
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
142+
modify --quiet --installPath 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise' \
143+
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.x86.x64
144+
if: ${{ (inputs.architecture == 'x86.x64') && (steps.toolchain-check-x64.outputs.toolchain-installed != 'true') }}
120145

121-
- name: 'Install toolchain and dependencies'
146+
- name: 'Install toolchain and dependencies for ARM64'
122147
run: |
123148
# Run Visual Studio Installer
124149
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
125150
modify --quiet --installPath 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise' \
126-
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
127-
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
151+
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.ARM64
152+
if: ${{ ( inputs.architecture == 'ARM64') && (steps.toolchain-check-arm64.outputs.toolchain-installed != 'true') }}
128153

129154
# SapMachine 2025-06-11: reduce number of cds/jsa archives
130155
- name: 'Configure'

.github/workflows/main.yml

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2022, 2025, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2022, 2026, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -336,7 +336,7 @@ jobs:
336336
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
337337
# Upload static libs bundles separately to avoid interference with normal linux-x64 bundle.
338338
# This bundle is not used by testing jobs, but downstreams use it to check that
339-
# dependent projects, e.g. libgraal, builds fine.
339+
# dependent projects build fine.
340340
bundle-suffix: "-static-libs"
341341
if: needs.prepare.outputs.linux-x64-variants == 'true'
342342

@@ -395,8 +395,8 @@ jobs:
395395
with:
396396
platform: windows-x64
397397
runs-on: windows-2022
398+
architecture: 'x86.x64'
398399
msvc-toolset-version: '14.44'
399-
msvc-toolset-architecture: 'x86.x64'
400400
configure-arguments: ${{ github.event.inputs.configure-arguments }}
401401
make-arguments: ${{ github.event.inputs.make-arguments }}
402402
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
@@ -408,11 +408,9 @@ jobs:
408408
uses: ./.github/workflows/build-windows.yml
409409
with:
410410
platform: windows-aarch64
411-
runs-on: windows-2022
411+
runs-on: windows-11-arm
412+
architecture: 'ARM64'
412413
msvc-toolset-version: '14.44'
413-
msvc-toolset-architecture: 'arm64'
414-
make-target: 'hotspot'
415-
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
416414
configure-arguments: ${{ github.event.inputs.configure-arguments }}
417415
make-arguments: ${{ github.event.inputs.make-arguments }}
418416
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
@@ -502,6 +500,21 @@ jobs:
502500
with:
503501
platform: windows-x64
504502
bootjdk-platform: windows-x64
503+
architecture: 'x86.x64'
505504
runs-on: windows-2022
506505
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
507506
debug-suffix: -debug
507+
508+
test-windows-aarch64:
509+
name: windows-aarch64
510+
needs:
511+
- prepare
512+
- build-windows-aarch64
513+
uses: ./.github/workflows/test.yml
514+
with:
515+
platform: windows-aarch64
516+
bootjdk-platform: windows-aarch64
517+
architecture: 'ARM64'
518+
runs-on: windows-11-arm
519+
dry-run: ${{ needs.prepare.outputs.dry-run == 'true' }}
520+
debug-suffix: -debug

.github/workflows/test.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ on:
3737
runs-on:
3838
required: true
3939
type: string
40+
architecture:
41+
required: false
42+
type: string
4043
xcode-toolset-version:
4144
required: false
4245
type: string
@@ -132,6 +135,8 @@ jobs:
132135

133136
- name: 'Get MSYS2'
134137
uses: ./.github/actions/get-msys2
138+
with:
139+
architecture: ${{ inputs.architecture }}
135140
if: runner.os == 'Windows'
136141

137142
- name: 'Get the BootJDK'

doc/building.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ <h3 id="macos">macOS</h3>
545545
no longer comes bundled with Xcode, so it needs to be installed
546546
separately. This can either be done via the Xcode's Settings/Components
547547
UI, or in the command line calling
548-
<code>xcodebuild -downloadComponent metalToolchain</code>.</p>
548+
<code>xcodebuild -downloadComponent MetalToolchain</code>.</p>
549549
<p>The standard macOS environment contains the basic tooling needed to
550550
build, but for external libraries a package manager is recommended. The
551551
JDK uses <a href="https://brew.sh/">homebrew</a> in the examples, but

doc/building.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ earlier versions may also work.
355355
Starting with Xcode 26, introduced in macOS 26, the Metal toolchain no longer
356356
comes bundled with Xcode, so it needs to be installed separately. This can
357357
either be done via the Xcode's Settings/Components UI, or in the command line
358-
calling `xcodebuild -downloadComponent metalToolchain`.
358+
calling `xcodebuild -downloadComponent MetalToolchain`.
359359

360360
The standard macOS environment contains the basic tooling needed to build, but
361361
for external libraries a package manager is recommended. The JDK uses

make/Bundles.gmk

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2016, 2025, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2016, 2026, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -411,27 +411,6 @@ endif
411411

412412
################################################################################
413413

414-
ifneq ($(filter static-libs-graal-bundles, $(MAKECMDGOALS)), )
415-
STATIC_LIBS_GRAAL_BUNDLE_FILES := $(call FindFiles, $(STATIC_LIBS_GRAAL_IMAGE_DIR))
416-
417-
ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
418-
STATIC_LIBS_GRAAL_BUNDLE_SUBDIR := $(JDK_MACOSX_CONTENTS_SUBDIR)/Home
419-
else
420-
STATIC_LIBS_GRAAL_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)
421-
endif
422-
423-
$(eval $(call SetupBundleFile, BUILD_STATIC_LIBS_GRAAL_BUNDLE, \
424-
BUNDLE_NAME := $(STATIC_LIBS_GRAAL_BUNDLE_NAME), \
425-
FILES := $(STATIC_LIBS_GRAAL_BUNDLE_FILES), \
426-
BASE_DIRS := $(STATIC_LIBS_GRAAL_IMAGE_DIR), \
427-
SUBDIR := $(STATIC_LIBS_GRAAL_BUNDLE_SUBDIR), \
428-
))
429-
430-
STATIC_LIBS_GRAAL_TARGETS += $(BUILD_STATIC_LIBS_GRAAL_BUNDLE)
431-
endif
432-
433-
#################################################################################
434-
435414
ifneq ($(filter static-jdk-bundles, $(MAKECMDGOALS)), )
436415
STATIC_JDK_BUNDLE_FILES := $(call FindFiles, $(STATIC_JDK_IMAGE_DIR))
437416

@@ -454,13 +433,12 @@ docs-jdk-bundles: $(DOCS_JDK_TARGETS)
454433
docs-javase-bundles: $(DOCS_JAVASE_TARGETS)
455434
docs-reference-bundles: $(DOCS_REFERENCE_TARGETS)
456435
static-libs-bundles: $(STATIC_LIBS_TARGETS)
457-
static-libs-graal-bundles: $(STATIC_LIBS_GRAAL_TARGETS)
458436
static-jdk-bundles: $(STATIC_JDK_TARGETS)
459437
jcov-bundles: $(JCOV_TARGETS)
460438

461439
.PHONY: product-bundles test-bundles \
462440
docs-jdk-bundles docs-javase-bundles docs-reference-bundles \
463-
static-libs-bundles static-libs-graal-bundles static-jdk-bundles jcov-bundles
441+
static-libs-bundles static-jdk-bundles jcov-bundles
464442

465443
################################################################################
466444

make/GraalBuilderImage.gmk

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

make/Main.gmk

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
2+
# Copyright (c) 2011, 2026, Oracle and/or its affiliates. All rights reserved.
33
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
44
#
55
# This code is free software; you can redistribute it and/or modify it
@@ -478,11 +478,6 @@ $(eval $(call SetupTarget, static-libs-image, \
478478
TARGET := static-libs-image, \
479479
))
480480

481-
$(eval $(call SetupTarget, static-libs-graal-image, \
482-
MAKEFILE := StaticLibsImage, \
483-
TARGET := static-libs-graal-image, \
484-
))
485-
486481
$(eval $(call SetupTarget, mac-jdk-bundle, \
487482
MAKEFILE := MacBundles, \
488483
TARGET := jdk-bundle, \
@@ -506,11 +501,6 @@ $(eval $(call SetupTarget, exploded-image-optimize, \
506501
buildtools-modules, \
507502
))
508503

509-
$(eval $(call SetupTarget, graal-builder-image, \
510-
MAKEFILE := GraalBuilderImage, \
511-
DEPS := jdk-image static-libs-graal-image, \
512-
))
513-
514504
ifeq ($(JCOV_ENABLED), true)
515505
$(eval $(call SetupTarget, jcov-image, \
516506
MAKEFILE := Coverage, \
@@ -877,12 +867,6 @@ $(eval $(call SetupTarget, static-libs-bundles, \
877867
DEPS := static-libs-image, \
878868
))
879869

880-
$(eval $(call SetupTarget, static-libs-graal-bundles, \
881-
MAKEFILE := Bundles, \
882-
TARGET := static-libs-graal-bundles, \
883-
DEPS := static-libs-graal-image, \
884-
))
885-
886870
$(eval $(call SetupTarget, static-jdk-bundles, \
887871
MAKEFILE := Bundles, \
888872
TARGET := static-jdk-bundles, \
@@ -1124,8 +1108,6 @@ else
11241108

11251109
static-libs-image: hotspot-static-libs static-libs
11261110

1127-
static-libs-graal-image: static-libs
1128-
11291111
bootcycle-images: jdk-image
11301112

11311113
docs-jdk-api-javadoc: $(GENSRC_TARGETS)

0 commit comments

Comments
 (0)