[8u] RFR: Initial backport of AArch32 platform support from OpenJDK 9 to OpenJDK 8u

Triple Yang triple.yang at linaro.org
Sun Jan 3 14:38:35 UTC 2016


Hi, Ed,

It seems you replace a tab with 8 spaces in this changeset, wheras 2 space
are most often used for alignment.
Would you please confirm it? Thank you.

BTW, Happy New Year!

On 30 December 2015 at 21:10, Edward Nevill <edward.nevill at gmail.com> wrote:

> Hi Nikolay,
>
> Thanks for this. I have pushed to the jdk8u tree.
>
> I have made some changes.
>
> Your changes were based on Joseph Joyces tree @
> https://bitbucket.org/joe-j/ I have rebased them on the aarch32 jdk9
> tree. The effective changes here were
>
> - Reinstating the copyright notices
> - Removing C1/C2 specific files which were not needed to build the
> template interpreter
> - Adding support for AArch64 in /proc/cpuinfo in vm_version_aarch32.cpp
>   (the reason for this is to allow building in a 32 bit chroot on an
> aarch64 system, when running in a 32 bit chroot, /proc/cpuinfo still says
> AArch64. We need to find a better solution than parsing /proc/cpuinfo,
> using getauxv)
>
> I also made some other changes
>
> - allow building with precompiled headers (your changeset seemed to only
> build without). Basically this involved adding aarch32 to the DEBUG_FLAGS,
> FASTDEBUG_FLAGS and OPT_FLAGS to stop it trying to build -gstabs.
> - add -Wno-unused-parameter to CCXXFLAGS in toolchain.m4 (my gcc 4.9.1
> seems to need this)
> - change the value of X_AARCH32 to 10 from 9 (X_AARCH64 is set to 9 in the
> aarch64 port so this would cause a clash if ever the sources were merged)
>
> I also removed all the tabs and trailing spaces from your changes. Files
> containing tabs and trailing spaces cannot be checked in. Please enable
> jcheck, as this will check for this and other infelicities which are not
> permitted (see: http://openjdk.java.net/projects/code-tools/jcheck)
>
> I was able to build successfully on a Chromebook (armv7l) and the image
> seems to run with some minimal testing (Java Dhrystone)
>
> Here are the figures I get for JDK8 Zero, JDK8 Template Int, and JDK7 ARM
> MicroJIT for Java Dhrystone on the Chromebook
>
> JDK8 Zero: 48167 dhrystone/sec
> JDK8 Temp Int: 60139 dhrystone/sec
> JDK7 MicroJIT: 416840 dhrystone/sec
>
> I have put a copy of the image at
>
> http://people.linaro.org/~edward.nevill/images/jdk8-temp-int.tgz
>
> Thanks again for doing this. Its great to see this project being pushed
> foward,
>
> All the best,
> Ed.
>
>
> On Thu, 2015-12-24 at 02:42 +0300, Nikolay Gorshkov wrote:
> > 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