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.
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.
Please notice that we will not post status updates here anymore. Please use our brand new PowerPC/AIX Port OpenJDK Wiki Space for late-breaking news.
Nightly build and test results
Nightly build: http://cr.openjdk.java.net/~simonis/ppc-aix-port