/jamvm-macosx-patches

Fork of the official jamvm, improving MacOSX support

Primary LanguageCGNU General Public License v2.0GPL-2.0

17-02-2011
==========

This is a fork of the unreleased yet official JamVM/OpenJDK sources available at git://git.berlios.de/jamvm . The only
goal of this version is to improve the MacOSX support for the OpenJDK classlib without bothering the author too much.

I may have broken other OS support or GNU classpath support but that's not important ATM as my only intent is to
figure out what's missing and what's broken in the JamVM/OpenJDK/MacOSX trio to make it work as well as Hotspot then
persuade Rob Lougher to make the necessary changes in the official version.


Quick instructions
        (modified version of the original ones the author published
            on his blog: http://draenog.blogspot.com/2011/02/openjdkjamvm-git-repository.html)

~~~~~~~
After cloning the git repository, do:

CFLAGS=-m32 ./autogen.sh --with-java-runtime-library=openjdk

This will generate the autoconf/automake files and configure JamVM to build support for 32-bit OpenJDK.

Then do make as usual. This will put libjvm.dylib into ./src/.libs/ .

This can then be copied onto an existing 32-bit OpenJDK6 installation (or a copy of one), e.g.:

cd /Applications/OSCG
cp -r OpenJDK6-b16 OpenJDK6-b16-jamvm
cp <JAMVM_BUILD_DIR>/src/.libs/libjvm.dylib OpenJDK6-b16-jamvm/jre/lib/i386/client
cp <JAMVM_BUILD_DIR>/src/.libs/libjvm.dylib OpenJDK6-b16-jamvm/jre/lib/i386/server

You can then run it by running the normal java wrapper, e.g.:

/Applications/OSCG/OpenJDK6-b16-jamvm/bin/java -version

openjdk version "1.6.0-internal"
OpenJDK Runtime Environment (build 1.6.0-internal-landonf_17_may_2009_13_58-b00)
JamVM (build 1.6.0-devel, inline-threaded interpreter with stack-caching)

(the inline-threaded interpreter is the other name for the code-copying JIT)

There are two pre-built versions of 32-bit OpenJDK6 which do work fine:

  * OpenSCG OpenJDK 6 One-click Installers: http://www.openscg.com/se/openjdk/index.jsp

       This is the most recent of the two but its Swing support is broken. It fails with 'Trace/BPT trap'
       when the Swing API is called as it tries to load CoreFoundation libs from a non-main thread,
       see: http://openradar.appspot.com/7209349

  * SoyLatte: http://landonf.bikemonkey.org/static/soylatte/

       This build is older than the OpenSCG one but Swing works with it.

~~~~~~~
For a 64-bit build, after cloning the git repository, do:

CFLAGS=-m64 ./autogen.sh --with-java-runtime-library=openjdk

There is no pre-built version of 64-bit OpenJDK6 but the one maintained by macports (http://www.macports.org)
works fine.

After building it, just do the same as for the 32-bit build, ie: replace the libjvm.dylib bundled with OpenJDK6
with the JamVM one:

cp <JAMVM_BUILD_DIR>/src/.libs/libjvm.dylib <OpenJDK6-HOME>/jre/lib/amd64/server