Webrev of Oracle ARM & AARCH64 Sources
volker.simonis at gmail.com
Wed Sep 28 17:55:18 UTC 2016
congratulations! I'm pretty sure this was a pretty huge amount of
paper and programming work to reach this point :)
My general question is how is this code contribution supposed to work
together with the current ARM ports in the OpenJDK. Currently we have
a full-blown, supported arm64 bit port in the jdk9 main-line
(contributed and maintained by RedHat). The aarch32 project has a
full-blown implementation for arm32 for jdk8u contributed by Azul.
Is your new port intended to live and be maintained alongside these
already available ports?
Where does your port differ from the available ports in terms of
functionality and performance?
Is Oracle committed to support the new ports?
And finally, do you expect to integrate these port into JDK 9 mainline?
Thanks a lot and best regards,
On Wed, Sep 28, 2016 at 4:07 PM, Bob Vandette <bob.vandette at oracle.com> wrote:
> I’m am please to announce that I have completed our internal reviews and can now
> open up the sources to our ARM 32 & 64 bit implementations of JDK9.
> Here is a webrev that includes a patch that can be applied on top of the
> (http://hg.openjdk.java.net/aarch32-port/jdk9-arm3264/ <http://hg.openjdk.java.net/aarch32-port/jdk9-arm3264/>) forest.
> http://cr.openjdk.java.net/~bobv/arm3264/webrev <http://cr.openjdk.java.net/~bobv/arm3264/webrev>
> 1. Counter to my initial email announcing the open sourcing effort, the
> pregenerated interpreter is not included in the provided patch. AOT is
> our long term solution for increased performance on Mobile and it was decided
> that we do not want to support the static interpreter beyond JDK 8.
> 2. In order to allow building the two different 64-bit ARM sources, I overloaded
> a new configure option —abi-profile to allow for the selection of the Oracle
> 64-bit ARM port. We need a better solution before this support can be
> integrated into the mainline. To use the Oracle sources for an aarch64 build,
> select —abi-profile=arm64.
> 3. The scripts provided below allows for the creation of the minimal, client and
> server VMs for the Oracle aarch64 build, however, the jvm.cfg file is not
> automatically updated during the build. To run a non server VM, this file
> will need to be updated.
> 4. In order to make it easier to keep the new open sources up to date with
> their closed counterparts in jdk9, I have added a comment in
> hotspot/src/cpu/arm/vm/vm_version_ext_arm.hpp which contains the mercurial
> revision that I last merged with. This will make it easier to produce patches
> to bring the new open files up to the latest version.
> /* ARM sources Merged up to hotspot/src/closed changeset 2316:b247a2ea70e4 */
> Build Scripts:
> Here are a set of scripts that demonstrate how to build the three ARM
> configurations. We typically cross compile our ARM builds so these
> scripts will have to be adjusted in order to build natively on an ARM system.
> http://cr.openjdk.java.net/~bobv/arm3264/scripts/ <http://cr.openjdk.java.net/~bobv/arm3264/scripts/>
> aarch64.csh Builds the current open version of aarch64 binaries
> arm64.csh Builds the Oracle aarch64 binaries
> arm.csh Builds 32-bit ARM binaries
> My next step is to push this changeset into the jdk9-arm3264 forest assuming I
> achieve committer status for the aarch32 project this week.
> Bob Vandette
More information about the aarch32-port-dev