PowerPC/AIX Port Project

The goal of this project is to provide a full-featured and
certifiable version of OpenJDK on the Linux/PowerPC and AIX/PowerPC
platforms which can be ultimately integrated into the main OpenJDK
development branches.

Besides the very fact that this project will enrich the OpenJDK
platform coverage with two new platforms we see two more main
benefits. By supporting the PowerPC architecture we will add the
first weak memory architecture to OpenJDK. As we already know from
past experience, this will unveil all kinds of intricate memory
ordering problems. Moreover, adding AIX as a new Unix flavor to the
set of supported operating systems will uncover numerous implicit
assumptions and shortcuts inside the code base which only hold true
for Linux and Solaris. We strongly believe that fixing these issues
will considerably increase the robustness and further portability
of OpenJDK.

The technical approach and a brief project agenda are as
follows:

provide an interpreter-only version of HotSpot based on the CPP
interpreter on Linux/PPC64

provide a full set of tools and class libraries for AIX and
Linux on PPC32/64

provide a complete certifiable JDK 7 on Linux/PPC64

provide a complete certifiable JDK 7 on AIX/PPC64

provide an implementation of the C2 server compiler on both
AIX/PPC64 and Linux/PPC64

integrate the new ports upstream into the main JDK8/9
branches

To assist with project bootstrapping and maintain momentum of VM
porting issues independently from class library issues the project
will evolve an
interface between the VM and class libraries that allows
alternative implementations to be substituted. The project will
start by porting the stable JDK 7 code base with a view to moving
onto the JDK 8 stream as soon as practical.

The project will initially be driven jointly by IBM and SAP who
both have a long-standing experience in developing and porting JDKs
to various platforms including Linux/PowerPC and AIX/PowerPC. But
as this is an open source project of course anybody interested is
highly welcome to join the porting effort. The complete development
process and discussions will happen in the open on the project
mailing list.

Status

As of July 2012,
the project has reached its first milestone. An interpreter only
version of the PowerPC port is available on Linux/PPC64. It
successfully runs the JVM98 benchmark and is able to bootstrap
itself. There's a transitional ppc-aix-port
project page available which contains the nightly build logs of
our project repositories on various platforms and a compiled
version of the OpenJDK for Linux/PPC64 which can be used as a
bootstrap JDK during the build process. The next steps will be to
complete the build on AIX (currently only the HotSpot build is
working on AIX) and start the port of the C2 server JIT
compiler.

As of December
2012, the project has reached its second milestone. A
mixed-mode VM (with the C++ Interpreter and the C2
"Server" JIT compiler) is available on both Linux/PPC64
and AIX/PPC64. It successfully runs different benchmarks (JVM98,
JBB2005 and DaCapo) and is able to bootstrap itself. On our
transitional ppc-aix-port
project page you can download precompiled binaries of this new
version of our port which can be used as a bootstrap JDK during the
build process. There's also a detailed
README-ppc.html file available which describes the build
process on the two porting platforms. The next steps will be to
certify our ports on Linux/PPC64 and AIX/PPC64 and integrate them
upstream into the main JDK7/8 repositories. Concurrently we are
also working on improving the performance which still lags behind
that of our closed implementations.

As of January
2013, the project has reached its third milestone. The port
has been stabilize and it successfully passed all the Java SE 7
Test Compatibility Kit (TCK) tests on SLES 11.1 Linux/PPC64 and AIX
5.3/PPC64. This means that the port is now fully compliant with the
Java SE 7 specification on the named platforms. We have also
initiated and filed "JEP
175 : Integrate PowerPC/AIX Port into JDK 8". The next steps
will be to synchronize our jdk7 repository with jdk7u-dev (we're
currently still 7u6 based) and start working full steam on the
integration of our changes into jdk8.

As of April 2013,
the project has finalized its work on the Java 7 port. We've
synchronized with the upstream http://hg.openjdk.java.net/jdk7u
repository at tag 'jdk7u14-b14'. This particularly means that we
now have a HotSpot 24 with the new JSR292 implementation in our
JDK7 port. We also have a fully functional HotSpot 25 on
Linux/PPC64 as well as on AIX in our http://hg.openjdk.java.net/jdk8/hotspot
repository and on Linux/PPC64 the complete JDK8 can be build with
the new build system. Currently we are focusing on completing the
JDK8 port with the new build system on AIX.