Skip to content

Commit 4f1b738

Browse files
committed
OpenJDK - version 20
1 parent 588c0e4 commit 4f1b738

Some content is hidden

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

50 files changed

+25969
-3
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Oracle Solaris OpenJDK Builder
22

3-
This project builds all OpenJDK versions from 9 till latest 19 for Solaris 11.4.
3+
This project builds all OpenJDK versions from 9 till latest 20 for Solaris 11.4.
44

55
Note that this was done based on great job of Peter Tribble:
66
https://ptribble.blogspot.com/2021/12/keeping-java-alive-on-illumos.html

archives.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ else
1010
JDK_PLATFORM="x86_64"
1111
fi
1212

13-
for VERSION in {9..19}; do
13+
for VERSION in {9..20}; do
1414
if [ $VERSION -lt 12 ] ; then
1515
JAVADIR="./build_dir/jdk${VERSION}u/build/solaris-$JDK_PLATFORM-normal-server-release/images/jdk"
1616
else

build-all.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ for i in "$@"; do
1818
esac
1919
done
2020

21-
for VERSION in {9..19}; do
21+
for VERSION in {9..20}; do
2222

2323
if [ $VERSION -lt $BUILD_FROM_VER ] ; then
2424
echo "Skipping Openjdk $VERSION build."

jdk-20.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
set -xe
2+
3+
VERSION=20
4+
5+
. common.sh
6+
7+
PATH="/usr/bin:/usr/gnu/bin"
8+
9+
CONFIGURE_OPTIONS+=" --enable-unlimited-crypto"
10+
CONFIGURE_OPTIONS+=" --enable-deprecated-ports=yes"
11+
CONFIGURE_OPTIONS+=" --with-boot-jdk=$BOOT_JDK"
12+
CONFIGURE_OPTIONS+=" --with-native-debug-symbols=none"
13+
CONFIGURE_OPTIONS+=" --with-toolchain-type=gcc"
14+
CONFIGURE_OPTIONS+=" --disable-dtrace"
15+
CONFIGURE_OPTIONS+=" --disable-warnings-as-errors"
16+
CONFIGURE_OPTIONS+=" --with-source-date=current"
17+
CONFIGURE_OPTIONS+=" AS=/usr/gnu/bin/as"
18+
CONFIGURE_OPTIONS+=" CC=$GCC"
19+
CONFIGURE_OPTIONS+=" CXX=$GXX"
20+
CONFIGURE_OPTIONS+=" DATE=/usr/gnu/bin/date"
21+
22+
git clone ${JDK_GITHUB_REPO}/$SRC_DIR "$BUILD_DIR"/$SRC_DIR
23+
cd "$BUILD_DIR"/$SRC_DIR
24+
git checkout jdk-20+36
25+
26+
apply_patch_series
27+
28+
PATH="$PATH" bash ./configure ${CONFIGURE_OPTIONS}
29+
gmake bundles

mirror.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ git -C jdk16u pull 2>/dev/null || git clone https://github.com/openjdk/jdk16u
1010
git -C jdk17u pull 2>/dev/null || git clone https://github.com/openjdk/jdk17u
1111
git -C jdk18u pull 2>/dev/null || git clone https://github.com/openjdk/jdk18u
1212
git -C jdk19u pull 2>/dev/null || git clone https://github.com/openjdk/jdk19u
13+
git -C jdk20u pull 2>/dev/null || git clone https://github.com/openjdk/jdk20u
1314
# Downloads build tools.
1415
test -f make-4.2.1.tar.bz2 || wget https://ftp.gnu.org/gnu/make/make-4.2.1.tar.bz2
1516
test -f autoconf-2.69.tar.xz || wget https://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz

patches-20/README-removal.txt

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
15+24 was tagged after the solaris/sparc removal but didn't actually
2+
include it, it was based on a slightly earlier commit.
3+
4+
However, this is a set of notes on how the removal is being addressed
5+
http://cr.openjdk.java.net/~mikael/webrevs/8244224/webrev.final/open/webrev/
6+
it's therefore relatively trivial to revert the removal at this point
7+
8+
The patch there was:
9+
10+
wc java-solaris-sparc.patch
11+
143793 691143 5454385 java-solaris-sparc.patch
12+
13+
And there are 953 files affected by the patch
14+
15+
grep '^---' java-solaris-sparc.patch | awk '{print $2}' | wc -l
16+
953
17+
18+
297 of those are under test, we probably don't want them (for now, at
19+
any rate)
20+
21+
214 are sparc, which again we don't want
22+
23+
There are some mac/bsd/linux patches left after that
24+
25+
Overall, we want less that half the files in the patch, based on
26+
filename alone.
27+
28+
It turns out that gpatch couldn't cope with the original
29+
patch. Rebuilt it as 64-bit and it was much happier.
30+
31+
For 15+26, I've trimmed about 2/3 of java-solaris-sparc.patch
32+
This is mostly about not restoring SPARC, there's still quite a lot
33+
more cleanup we could do. Also, we shouldn't have to separately patch
34+
the files we created by applying the main patch.

patches-20/README-zero.txt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
"Zero is a port of OpenJDK that uses no assembler and therefore can
2+
trivially be built on any system."
3+
4+
https://openjdk.java.net/projects/zero/
5+
6+
The idea here is to potentially have an illumos port of zero. It's not
7+
so interesting on x86, for which we have a proper port anyway, but if
8+
we can get zero to work on x86 then it should be possible to get it to
9+
work on sparc too.
10+
11+
It still needs the basic solaris patchset. It's designed more to support
12+
new hardware architectures (hence the zero assembler) than as a way to
13+
do an OS port.
14+
15+
There are 2 patches:
16+
17+
illumos-zero-1.patch
18+
Fixes src/hotspot/cpu/zero/stubGenerator_zero.cpp
19+
20+
illumos-zero-2.patch
21+
Adds the src/hotspot/os_cpu/solaris_zero directory and contents
22+
23+
These are current and tested for jdk 20+15. They don't provide a
24+
proper zero port, as they still have x86 assembler that needs to be
25+
removed. But this provides a starting point.
26+
27+
The two patches above are now applied by default, so we at least catch
28+
any incompatibilities early.
29+
30+
Configure:
31+
32+
env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin bash ./configure \
33+
--enable-unlimited-crypto --with-boot-jdk=/usr/jdk/instances/jdk18 \
34+
--with-native-debug-symbols=none \
35+
--with-toolchain-type=gcc \
36+
--disable-dtrace \
37+
--disable-warnings-as-errors \
38+
--enable-deprecated-ports=yes \
39+
--enable-jvm-feature-zero --with-jvm-variants=zero \
40+
--with-source-date=current \
41+
--with-jobs=3 \
42+
DATE=/usr/gnu/bin/date
43+
44+
45+
build:
46+
47+
env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin gmake all CONF=solaris-x86_64-zero-release

0 commit comments

Comments
 (0)