Skip to content

Commit ed2db11

Browse files
committed
Merge branch 'sapmachine' into pr-jdk-26+3
2 parents 08b1fa4 + 4fa64bb commit ed2db11

File tree

154 files changed

+18047
-125
lines changed

Some content is hidden

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

154 files changed

+18047
-125
lines changed

.github/actions/upload-bundles/action.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,14 @@ runs:
4747
id: bundles
4848
run: |
4949
# Rename bundles to consistent names
50-
jdk_bundle_zip="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
51-
jdk_bundle_tar_gz="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
52-
static_jdk_bundle_zip="$(ls build/*/bundles/static-jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
53-
static_jdk_bundle_tar_gz="$(ls build/*/bundles/static-jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
54-
symbols_bundle="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)"
55-
tests_bundle="$(ls build/*/bundles/jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
56-
static_libs_bundle="$(ls build/*/bundles/jdk-*_bin-static-libs${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
50+
# SapMachine 2020-11-04: Adapt bundle names
51+
jdk_bundle_zip="$(ls build/*/bundles/sapmachine-jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
52+
jdk_bundle_tar_gz="$(ls build/*/bundles/sapmachine-jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
53+
static_jdk_bundle_zip="$(ls build/*/bundles/sapmachine-static-jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
54+
static_jdk_bundle_tar_gz="$(ls build/*/bundles/sapmachine-static-jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
55+
symbols_bundle="$(ls build/*/bundles/sapmachine-jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)"
56+
tests_bundle="$(ls build/*/bundles/sapmachine-jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
57+
static_libs_bundle="$(ls build/*/bundles/sapmachine-jdk-*_bin-static-libs${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
5758
5859
mkdir bundles
5960

.github/pull_request_template.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Replace this line with a description of this pull request and replace Issue in `fixes #Issue` down below with an issue number. Otherwise PR testing will fail.
2+
3+
When integrating please make sure you:
4+
- Create a merge commit when merging an OpenJDK upstream PR
5+
- Use Rebase & Merge when your PR contains only one commit with a commit message of the form `SapMachine #<Issue>: <Description>`
6+
- Use Squash and merge when there are several commits on the PR and with that update the commit message to `SapMachine #<Issue>: <Description>` and remove commit messages from sub-commits
7+
8+
fixes #Issue

.github/workflows/build-alpine-linux.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ jobs:
8383
with:
8484
platform: alpine-linux-x64
8585

86+
# SapMachine 2025-06-11: reduce number of cds/jsa archives
8687
- name: 'Configure'
8788
run: >
8889
bash configure
@@ -92,6 +93,7 @@ jobs:
9293
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
9394
--with-zlib=system
9495
--with-jmod-compress=zip-1
96+
--with-vendor-name="SAP SE"
9597
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
9698
echo "Dumping config.log:" &&
9799
cat config.log &&

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ jobs:
162162
sudo rm -rf sysroot/
163163
if: steps.create-sysroot.outcome != 'success' && steps.get-cached-sysroot.outputs.cache-hit != 'true'
164164

165+
# SapMachine 2025-06-11: reduce number of cds/jsa archives
165166
- name: 'Configure'
166167
run: >
167168
bash configure
@@ -175,6 +176,7 @@ jobs:
175176
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}
176177
--with-sysroot=sysroot
177178
--with-jmod-compress=zip-1
179+
--with-vendor-name="SAP SE"
178180
CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-${{ inputs.gcc-major-version }}
179181
CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-${{ inputs.gcc-major-version }}
180182
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (

.github/workflows/build-gh-pages.yml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Workflow for building the sapmachine.io site and deploying it to GitHub Pages
2+
name: Build and deploy sapmachine.io page
3+
4+
on:
5+
# Allows to run this workflow manually from the Actions tab
6+
workflow_dispatch:
7+
8+
# Listens to repository dispatch events, originating from pushes to the gh-pages branch in SAP/SapMachine-infrastructure
9+
repository_dispatch:
10+
types: [gh-page-build]
11+
12+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20+
concurrency:
21+
group: "pages"
22+
cancel-in-progress: false
23+
24+
jobs:
25+
# Build job
26+
build:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
with:
32+
repository: 'SAP/SapMachine-infrastructure'
33+
ref: 'gh-pages'
34+
- name: Setup Pages
35+
uses: actions/configure-pages@v5
36+
- name: Build with Jekyll
37+
uses: actions/jekyll-build-pages@v1
38+
with:
39+
source: ./
40+
destination: ./_site
41+
- name: Upload artifact
42+
uses: actions/upload-pages-artifact@v3
43+
44+
# Deployment job
45+
deploy:
46+
environment:
47+
name: github-pages
48+
url: ${{ steps.deployment.outputs.page_url }}
49+
runs-on: ubuntu-latest
50+
needs: build
51+
steps:
52+
- name: Deploy to GitHub Pages
53+
id: deployment
54+
uses: actions/deploy-pages@v4

.github/workflows/build-linux.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ jobs:
116116
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
117117
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 }}
118118
119+
# SapMachine 2025-06-11: reduce number of cds/jsa archives
119120
- name: 'Configure'
120121
run: >
121122
bash configure
@@ -127,6 +128,7 @@ jobs:
127128
--with-gtest=${{ steps.gtest.outputs.path }}
128129
--with-zlib=system
129130
--with-jmod-compress=zip-1
131+
--with-vendor-name="SAP SE"
130132
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
131133
echo "Dumping config.log:" &&
132134
cat config.log &&

.github/workflows/build-macos.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ jobs:
9595
# This will make GNU make available as 'make' and not only as 'gmake'
9696
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
9797
98+
# SapMachine 2025-06-11: reduce number of cds/jsa archives
9899
- name: 'Configure'
99100
run: >
100101
bash configure
@@ -106,6 +107,7 @@ jobs:
106107
--with-gtest=${{ steps.gtest.outputs.path }}
107108
--with-zlib=system
108109
--with-jmod-compress=zip-1
110+
--with-vendor-name="SAP SE"
109111
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
110112
echo "Dumping config.log:" &&
111113
cat config.log &&

.github/workflows/build-windows.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ jobs:
119119
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
120120
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
121121

122+
# SapMachine 2025-06-11: reduce number of cds/jsa archives
122123
- name: 'Configure'
123124
run: >
124125
bash configure
@@ -130,6 +131,7 @@ jobs:
130131
--with-gtest=${{ steps.gtest.outputs.path }}
131132
--with-msvc-toolset-version=${{ inputs.msvc-toolset-version }}
132133
--with-jmod-compress=zip-1
134+
--with-vendor-name="SAP SE"
133135
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
134136
echo "Dumping config.log:" &&
135137
cat config.log &&

.github/workflows/main.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,18 @@
2323
# questions.
2424
#
2525

26-
name: 'OpenJDK GHA Sanity Checks'
26+
# SapMachine 2022-06-22: Change the name of the GitHub Action
27+
name: 'SapMachine GHA Sanity Checks'
2728

2829
on:
2930
push:
3031
branches-ignore:
31-
- master
32-
- pr/*
33-
- jdk*
32+
# SapMachine 2020-11-04: Ignore sapmachine branch
33+
- sapmachine
34+
# SapMachine 2020-11-04: Trigger on pull request
35+
pull_request:
36+
branches:
37+
- sapmachine
3438
workflow_dispatch:
3539
inputs:
3640
platforms:
@@ -56,6 +60,8 @@ jobs:
5660

5761
prepare:
5862
name: 'Prepare the run'
63+
# SapMachine 2022-06-23: On 'pull_request' we only want to run GHA if the PR comes from a remote repo. Otherwise we have the run on 'push' already as a check.
64+
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name }}
5965
runs-on: ubuntu-22.04
6066
env:
6167
# List of platforms to exclude by default
@@ -100,7 +106,8 @@ jobs:
100106
function check_platform() {
101107
if [[ $GITHUB_EVENT_NAME == workflow_dispatch ]]; then
102108
input='${{ github.event.inputs.platforms }}'
103-
elif [[ $GITHUB_EVENT_NAME == push ]]; then
109+
# SapMachine 2022-06-24: Also handle 'pull_request' event.
110+
elif [[ $GITHUB_EVENT_NAME == push ]] || [[ $GITHUB_EVENT_NAME == pull_request ]]; then
104111
if [[ '${{ !secrets.JDK_SUBMIT_FILTER || startsWith(github.ref, 'refs/heads/submit/') }}' == 'false' ]]; then
105112
# If JDK_SUBMIT_FILTER is set, and this is not a "submit/" branch, don't run anything
106113
>&2 echo 'JDK_SUBMIT_FILTER is set and not a "submit/" branch'

.github/workflows/wiki.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Runs update-wiki action every day at 20:00 UTC
2+
3+
name: 'Wiki Update'
4+
5+
on:
6+
workflow_dispatch:
7+
schedule:
8+
- cron: '0 20 * * *'
9+
10+
jobs:
11+
wiki:
12+
if: ${{ github.event_name != 'schedule' || github.repository == 'SAP/SapMachine' }}
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout SapMachine Wiki source
16+
uses: actions/checkout@v4
17+
with:
18+
repository: 'SAP/SapMachine.wiki.git'
19+
ref: 'master'
20+
- name: Configure git
21+
run: |
22+
git config user.name "SapMachine Github Actions Bot"
23+
git config user.email "[email protected]"
24+
git remote set-url origin https://github.com/SAP/SapMachine.wiki.git
25+
- name: Update Wiki
26+
run: |
27+
pip3 install feedparser
28+
python3 scripts/update_blogs.py update
29+
git commit -a -m "Update blogs" || echo "No updates"
30+
- name: Push changes
31+
run: git push origin master
32+
working-directory: .
33+
shell: bash

README.md

Lines changed: 47 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,50 @@
1-
# Welcome to the JDK!
1+
[![GitHub release (latest by date)](https://img.shields.io/github/downloads/sap/sapmachine/latest/total?label=Downloads%20of%20Latest%20Release)](https://sap.github.io/SapMachine/#download) [![DockerPulls](https://img.shields.io/docker/pulls/_/sapmachine?label=Docker%20Pulls)](https://hub.docker.com/_/sapmachine)
22

3-
For build instructions please see the
4-
[online documentation](https://openjdk.org/groups/build/doc/building.html),
5-
or either of these files:
3+
<img align="right" width=350 src="https://sap.github.io/SapMachine/assets/images/logo_circular.svg">
64

7-
- [doc/building.html](doc/building.html) (html version)
8-
- [doc/building.md](doc/building.md) (markdown version)
5+
# [](#SapMachine) SapMachine
6+
This project contains a downstream version of the [OpenJDK](http://openjdk.java.net/) project. It is used to build and maintain a SAP supported version of OpenJDK for SAP customers and partners who wish to use OpenJDK to run their applications.
97

10-
See <https://openjdk.org/> for more information about the OpenJDK
11-
Community and the JDK and see <https://bugs.openjdk.org> for JDK issue
12-
tracking.
8+
We want to stress that this is clearly a "*friendly fork*". SAP is committed to ensuring the continued success of the Java platform. SAP is:
9+
10+
* A member of the [JCP Executive committee](https://jcp.org/en/participation/committee) since 2001 and recently served in the [JSR 379 (Java SE 9)](https://www.jcp.org/en/jsr/detail?id=379), [JSR 383 (Java SE 18.3)](https://www.jcp.org/en/jsr/detail?id=383), [JSR 384 (Java SE 11)](https://www.jcp.org/en/jsr/detail?id=384), [JSR 386 (Java SE 12)](https://www.jcp.org/en/jsr/detail?id=386), [JSR 388 (Java SE 13)](https://www.jcp.org/en/jsr/detail?id=388), [JSR 389 (Java SE 14)](https://www.jcp.org/en/jsr/detail?id=389), [JSR 390 (Java SE 15)](https://www.jcp.org/en/jsr/detail?id=390), [JSR 391 (Java SE 16)](https://www.jcp.org/en/jsr/detail?id=391), [JSR 392 (Java SE 17)](https://www.jcp.org/en/jsr/detail?id=392), [JSR 393 (Java SE 18)](https://www.jcp.org/en/jsr/detail?id=393), [JSR 394 (Java SE 19)](https://www.jcp.org/en/jsr/detail?id=394), [JSR 395 (Java SE 20)](https://www.jcp.org/en/jsr/detail?id=395), [JSR 396 (Java SE 21)](https://www.jcp.org/en/jsr/detail?id=396) and [JSR 397 (Java SE 22)](https://www.jcp.org/en/jsr/detail?id=397) Expert Groups.
11+
12+
* Among the biggest external contributors to the OpenJDK project (see fix ratio for OpenJDK [11](https://blogs.oracle.com/java-platform-group/building-jdk-11-together), [12](https://blogs.oracle.com/java-platform-group/the-arrival-of-java-12), [13](https://blogs.oracle.com/java-platform-group/the-arrival-of-java-13), [14](https://blogs.oracle.com/java-platform-group/the-arrival-of-java-14), [15](https://blogs.oracle.com/java-platform-group/the-arrival-of-java-15), [16](https://inside.java/2021/03/16/the-arrival-of-java16/), [17](https://inside.java/2021/09/14/the-arrival-of-java17/), [18](https://inside.java/2022/03/22/the-arrival-of-java18/), [19](https://inside.java/2022/09/20/the-arrival-of-java-19/), [20](https://inside.java/2023/03/21/the-arrival-of-java-20/), [21](https://inside.java/2023/09/19/the-arrival-of-java-21/), [22](https://inside.java/2024/03/19/the-arrival-of-java-22/)).
13+
14+
* Leading the [OpenJDK 17 updates project](https://wiki.openjdk.java.net/display/JDKUpdates/JDK+17u) and heavily supporting the [OpenJDK 11](https://wiki.openjdk.java.net/display/JDKUpdates/JDK11u) and [OpenJDK 21](https://wiki.openjdk.java.net/display/JDKUpdates/JDK+21u) updates projects.
15+
16+
* Leading the [PowerPC/AIX porting project](http://openjdk.java.net/projects/ppc-aix-port/).
17+
18+
* Contributing many new features inspired by Java stakeholders within SAP to the OpenJDK project. This ensures such features are available in long reach and for everybody. Rarely we add such features to SapMachine directly to keep the diff of this project as small as possible.
19+
20+
* Creating tools for developers
21+
* [JFR Event Collection](https://sapmachine.io/jfrevents/): Information on all JFR events for a specific JDK
22+
* [AP-Loader](https://github.com/jvm-profiling-tools/ap-loader): AsyncProfiler in a single cross-platform JAR
23+
24+
25+
## Downloads
26+
27+
Check out the [Download](https://sap.github.io/SapMachine/#download) section on [https://sapmachine.io](https://sapmachine.io).
28+
29+
## Documentation
30+
Check out our [FAQs](https://github.com/SAP/SapMachine/wiki/Frequently-Asked-Questions) and [wikipages](https://github.com/SAP/SapMachine/wiki) for information about:
31+
* [Installation](https://github.com/SAP/SapMachine/wiki/Installation) and [Docker Images](https://github.com/SAP/SapMachine/wiki/Docker-Images)
32+
* [Certifications and Java Compatibility](https://github.com/SAP/SapMachine/wiki/Certification-and-Java-Compatibility)
33+
* [SapMachine Development Process](https://github.com/SAP/SapMachine/wiki/SapMachine-Development-Process)
34+
35+
## Have an issue?
36+
If it's SapMachine specific please let us know by filing a [new issue](https://github.com/SAP/SapMachine/issues/new).
37+
38+
Please notice that the SapMachine [issue tracker](https://github.com/SAP/SapMachine/issues) is mainly used internally by the SapMachine team to organize its work (i.e. sync with upstream, downporting fixes, add SapMachine specific features, etc.).
39+
40+
General VM/JDK bugs are maintained directly in the [OpenJDK Bug System](https://bugs.openjdk.java.net/). You can open a SapMachine issue with a reference to an open or resolved OpenJDK bug if you want us to resolve the issue or downport the fix to a specific SapMachine version. If you find a general VM/JDK bug in SapMachine and don't have write access to the OpenJDK Bug System you can open an issue here and we'll take care to open a corresponding OpenJDK bug for it.
41+
42+
Every SapMachine release contains at least all the fixes of the corresponding OpenJDK release it is based on. You can easily find the OpenJDK base version by looking at the [SapMachine version string](https://github.com/SAP/SapMachine/wiki/Differences-between-SapMachine-and-OpenJDK#version-numbers).
43+
44+
You can find the [Differences between SapMachine and OpenJDK](https://github.com/SAP/SapMachine/wiki/Differences-between-SapMachine-and-OpenJDK) and the [Features Contributed by SAP](https://github.com/SAP/SapMachine/wiki/Features-Contributed-by-SAP) in the [SapMachine Wiki](https://github.com/SAP/SapMachine/wiki).
45+
46+
## Contributing
47+
We currently do not accept external contributions for this project. If you want to improve the code or fix a bug please consider contributing directly to the upstream [OpenJDK](http://openjdk.java.net/contribute/) project. Our repositories will be regularly synced with the upstream project so any improvements in the upstream OpenJDK project will directly become visible in our project as well.
48+
49+
## License
50+
This project is run under the same licensing terms as the upstream OpenJDK project. Please see the [LICENSE](LICENSE) file in the top-level directory for more information.

make/Bundles.gmk

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,9 +172,10 @@ ifeq ($(call isTargetOs, macosx)+$(DEBUG_LEVEL), true+release)
172172
else
173173
JDK_IMAGE_HOMEDIR := $(JDK_IMAGE_DIR)
174174
JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
175-
JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
176-
JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
177-
STATIC_JDK_BUNDLE_SUBDIR := static-jdk-$(VERSION_NUMBER)
175+
# SapMachine 2020-11-04: Adapt bundle names
176+
JDK_BUNDLE_SUBDIR := sapmachine-jdk-$(VERSION_NUMBER)
177+
JRE_BUNDLE_SUBDIR := sapmachine-jre-$(VERSION_NUMBER)
178+
STATIC_JDK_BUNDLE_SUBDIR := sapmachine-static-jdk-$(VERSION_NUMBER)
178179
ifneq ($(DEBUG_LEVEL), release)
179180
JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
180181
JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)

0 commit comments

Comments
 (0)