"Zero is a port of OpenJDK that uses no assembler and therefore can
|
trivially be built on any system."
|
|
https://openjdk.java.net/projects/zero/
|
|
The idea here is to potentially have an illumos port of zero. It's not
|
so interesting on x86, for which we have a proper port anyway, but if
|
we can get zero to work on x86 then it should be possible to get it to
|
work on sparc too.
|
|
It still needs the basic solaris patchset. It's designed more to support
|
new hardware architectures (hence the zero assembler) than as a way to
|
do an OS port.
|
|
There are 2 patches:
|
|
illumos-zero-1.patch
|
Fixes src/hotspot/cpu/zero/stubGenerator_zero.cpp
|
|
illumos-zero-2.patch
|
Adds the src/hotspot/os_cpu/solaris_zero directory and contents
|
|
These are current and tested for a successful build (not necessarily
|
fully working) as of jdk 22+22. They don't provide a proper zero port,
|
as they still have assembler that needs to be removed. But this
|
provides a starting point.
|
|
There's a warning:
|
|
OpenJDK 64-Bit Zero VM warning: Unsupported locking mode for this CPU.
|
|
which you can gt around by passing -XX:LockingMode=0 or -XX:LockingMode=1
|
|
The two patches above are now applied by default, so we at least catch
|
any source incompatibilities early.
|
|
Configure:
|
|
env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin bash ./configure \
|
--enable-unlimited-crypto --with-boot-jdk=/usr/jdk/instances/jdk21 \
|
--with-native-debug-symbols=none \
|
--with-toolchain-type=gcc \
|
--disable-dtrace \
|
--disable-warnings-as-errors \
|
--enable-jvm-feature-zero --with-jvm-variants=zero \
|
--with-source-date=current \
|
--with-jobs=3 \
|
DATE=/usr/gnu/bin/date \
|
STRIP=/usr/gnu/bin/strip
|
|
build:
|
|
env PATH=/usr/bin:/usr/sbin:/usr/sfw/bin:/usr/gnu/bin gmake all CONF=solaris-x86_64-zero-release
|