AIX and OpenJDK
dalibor.topic at oracle.com
Mon Feb 6 09:48:46 PST 2012
On 1/31/12 11:49 AM, Steve Poole wrote:
> 1: The scale of the changes to support AIX without Hotspot are small ( ~ 300 LOC) There are an additional 19 new files that cover AIX specific build files and providing necessary support for AIX specific filesystem, virtual machine and process attributes in the same manner as is already done for Linux, Solaris and Windows etc. Generally the changes have been coded as capability based rather than platform focused. These changes are easy to understand and help towards improving platform portability.
I don't think that size is a convincing argument one way or another, beyond 'is a set of trivial changes required to support this new platform or not?'. If the answer is no, then I think a porting effort is best placed as its own Project, allowing it to build up a community as it progresses in its development. 19 new files sounds more like a no to me, fwiw.
Sometimes the community loses interest and a project goes dormant, like in the MIPS port, then there is no goodwill spent merging a port into mainline and then consecutively backing out again. Sometime, the community drives a port to completion and it successfully produces fully open source builds that pass the TCK, like Zero, then there is a strong case to be made for them to be merged into the mainline and maintained by its community there.
The way we've done this quite successfully in the Porters group is to eagerly create porting Projects, and when such Projects look mature enough to provide a fully
open source & compatible implementation, then start looking at how to integrate them into the mainline, if they so desire. Some Projects may never reach that stage - and that's fine, too. For the Projects that do reach the stage, I believe that having had their own Project for a while ends up being a blessing - they can build up their community and fine tune their development model without having to conform with the development & review processes on the mainline until it's time to start thinking about the merge. From what you write below about the necessity for binary blobs for the port initially, that sounds exactly like an AIX port would need - a place for the community to get together and start experimenting with making it work together with Zero, Shark or some other way of running OpenJDK on whatever CPU architectures AIX runs on these days - I guess ppc32? ppc64?
> 2: Generally AIX is very close to both Linux and Solaris. As you would expect we will help ensure OpenJDK developers do not break things where they do not have access to an AIX machine.
That'd be necessary, of course - my recommendation these days is that porting Projects should start their work on a released version of the platform, rather then on an in development version. Generally, the amount of churn and accidental breakage should be lower for a porting Project following JDK 7 Updates, then for one following JDK 8. Once you're up and happily running with JDK 7 Updates and regularly sync with the mainline without issues, you can start thinking about tracking JDK 8 in a separate forest. I'd also recommend syncing with the mainline on a weekly or bi-weekly basis. But yeah - it's up to a porting project to keep their port squeaky clean and contribute fixes back to the mainline. The Mac OS X Port did a great job of attracting community members (salut, Henri!) providing build scripts, and more, for example, as I pointed out at FOSDEM.
> 3: This work will faciliate the porting of Hotspot to AIX but IBM intends to focus on our own JVM at this time (as you would imagine).
> We will make a binary of the JVM available for OpenJDK developers who want early access on AIX of ongoing work in JDK8 and AIX.
I'd point out that binary blobs are a bit of a mess. We've had them early on in OpenJDK mainline, and they made it hard for people to get involved by making it even harder to build the Project(s), so we've gradually phased them out from OpenJDK. So I'd like to see the port work with what's already in OpenJDK, like Zero, as it would allow the community to actually have a fully open source implementation on that platform, as well. A port of OpenJDK that required a non-open source VM to work on AIX to me would basically signal to the community that there is a huge asterisk attached to the fact that OpenJDK is a fully open source reference implementation - "actual fullness of open source is only available on selected platforms".
That's not to say that I'd expect you to start porting HotSpot to AIX yourself - but I'd expect someone in the AIX Port's community to pick up the baton and do it, the probably easiest way of doing it being to make Zero work on AIX. Given that right now there is no well-defined interface to plug in different VMs into OpenJDK, I think that's another factor that speaks for starting a separate Project first, and then collecting experiences with the selected approach once the port also works on Zero, etc. before heading for the mainline.
Dalibor Topic | Java F/OSS Ambassador
Phone: +494023646738 <tel:+494023646738> | Mobile: +491772664192 <tel:+491772664192>
Oracle Java Platform Group
ORACLE Deutschland B.V. & Co. KG | Nagelsweg 55 | 20097 Hamburg
ORACLE Deutschland B.V. & Co. KG
Hauptverwaltung: Riesstr. 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603
Geschäftsführer: Jürgen Kunz
Komplementärin: ORACLE Deutschland Verwaltung B.V.
Hertogswetering 163/167, 3543 AS Utrecht, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Alexander van der Ven, Astrid Kepper, Val Maher
Green Oracle <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment
More information about the jdk8-dev