nilsvanvelzen / mac_ppc_openjdk8u60

openjdk8 for Mac OSX 10.5 PowerPC
GNU General Public License v2.0
21 stars 3 forks source link

README:

jdk1.5 is the last officially supported java on Mac OSX 10.5.8 (Leopard) with PPC processor.

There is a functioning 1.7 jdk available based on openjdk1.7 download from https://wiki.openjdk.java.net/display/BSDPort/Darwin9Build Although I've never been able to rebuild openjdk1.7 for mac PPC I could use this bootstrap version to get necessary stuff working on my G5.

But 1.7 is old as well and sometimes I need a 1.8 version. I'm only interested in a headless version. Getting the graphics working might involve a lot of work.

Current state: A headless PPC openjdk 1.8 that can bootstrap a openjdk 1.8 Seens to work fine for various tools; running OpenDA, unith etc.

I have made some (dirty) hacks in order to make the code compile. There are some things that might be broken I made a work-around implementation of
long long unsigned int __sync_val_compare_and_swap_8 since this atomic operation is not implemented for our processor. I doubt whether my implementation is correct. An incorrect implementation could case a race condition in the hotspot. However I have not seen any stability problem.
no graphics (but the goal is a headless version) printing might be broken IPV6 might not work

I have made some changes in order to get the hotspot to compile and work. I'm not sure whether these changes are correct but until now, when stuff runs it all seems to be stable.

We use the assembly free zero hotspot and our hardware is old, hence performance is not super but at least some modern java stuff can now be run on Mac PPC

How to compile: download your bootstrap jkd 1.7 (https://wiki.openjdk.java.net/display/BSDPort/Darwin9Build) set the location of your bootstrap jdk1/7 in build_nils.sh

. build_nils.sh

Should do the trick (I hope)

set_java8.sh is a script that helps you set the correct environment to run your java8. Important is the option -Djava.awt.headless=true, set in this script. Otherwise you run into a failed load of the xawt library.

Have fun, I hope my work might be useful for others as well.

==== Original text of readme ====

This file should be located at the top of the OpenJDK Mercurial root repository. A full OpenJDK repository set (forest) should also include the following 6 nested repositories: "jdk", "hotspot", "langtools", "corba", "jaxws" and "jaxp".

The root repository can be obtained with something like: hg clone http://hg.openjdk.java.net/jdk8/jdk8 openjdk8

You can run the get_source.sh script located in the root repository to get the other needed repositories: cd openjdk8 && sh ./get_source.sh

People unfamiliar with Mercurial should read the first few chapters of the Mercurial book: http://hgbook.red-bean.com/read/

See http://openjdk.java.net/ for more information about OpenJDK.

Simple Build Instructions:

  1. Get the necessary system software/packages installed on your system, see http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html

  2. If you don't have a jdk7u7 or newer jdk, download and install it from http://java.sun.com/javase/downloads/index.jsp Add the /bin directory of this installation to your PATH environment variable.

  3. Configure the build: bash ./configure

  4. Build the OpenJDK: make all The resulting JDK image should be found in build/*/images/j2sdk-image

where make is GNU make 3.81 or newer, /usr/bin/make on Linux usually is 3.81 or newer. Note that on Solaris, GNU make is called "gmake".

Complete details are available in the file: http://hg.openjdk.java.net/jdk8/jdk8/raw-file/tip/README-builds.html