[8u] RFR: Initial backport of AArch32 platform support from OpenJDK 9 to OpenJDK 8u
Nikolay Gorshkov
nikolay at azulsystems.com
Wed Dec 23 23:42:10 UTC 2015
Hi All,
At Azul Systems, we are working actively on OpenJDK 8u based version
of AArch32 port. Here I'd like to propose the initial set of
changesets that introduces "aarch32" platform in OpenJDK 8u,
brings aarch32-specific files from OpenJDK 9 based version,
and adapts them so that:
- "zero" JVM variant for "aarch32" platform becomes buildable;
- "core" JVM variant (includes template interpreter only,
without C1/C2) for "aarch32" platform becomes buildable.
The changesets are based on the current version of
http://hg.openjdk.java.net/aarch32-port/jdk8u/
forest. aarch32-specific files are taken from the snapshot of
https://bitbucket.org/joe-j/
repositories that was taken on Oct 15, 2015. The only changeset
it does not include is
https://bitbucket.org/joe-j/aarch32-hotspot/commits/851abcc09ceed800bd8b897e00c4ec9e652c7a80
This set of changesets does not make the template interpreter
functional (HelloWorld still crashes with it). The next portion
of fixes will deal with this.
Here are the proposed 11 changesets.
http://cr.openjdk.java.net/~nikgor/aarch32-port/8078628/jdk8u/webrev.00/
8078628: linux-zero does not build without precompiled header
We found it useful in the very beginning to try "zero" version.
This backport from JDK 9 was required to make it buildable.
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.01.hotspot.00/
Part 1: Copied AArch32 platform dependent sources from OpenJDK 9 based port
After this step all files in "cpu/aarch32" and "os_cpu/linux_aarch32"
are identical to what is in OpenJDK 9 based version.
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.02.hotspot.00/
Part 2: Added AArch32 specific include directives to shared code
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.03.hotspot.00/
Part 3: Introduced "core" JVM build target for AArch32 platform
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.04.hotspot.00/
Part 4: Introduced "aarch32" architecture into build scripts
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.05.root.00/
Part 5: Introduced "aarch32" architecture into build scripts
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.06.root.00/
Part 6: Added cross-compilation scripts for Raspberry Pi
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.07.hotspot.00/
Part 7: Fixed compilation errors except those related to SA; in particular,
reverted aarch32-specific code for 8026049, 8048721, 8059606, 8071805,
8076492, 8079507; corrected fix for 8077615
This was the most time-consuming step. Needed to carefully track
the relevant OpenJDK 9 specific fixes and back out their platform-dependent
parts.
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.08.hotspot.00/
Part 8: Disabled building libsaproc.so for aarch32
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.09.jdk.00/
Part 9: Fixed compilation and packaging errors
http://cr.openjdk.java.net/~nikgor/aarch32-port/0/jdk8u/webrev.10.hotspot.00/
Part 10: Fixed linking errors (reverted aarch32-specific code for 8003426,
8004128, 8041794)
I'm looking for your comments!
Thanks,
Nikolay
More information about the aarch32-port-dev
mailing list