# HG changeset patch # User andrew # Date 1217912858 -3600 # Node ID f70700d622a882d5bc850f430646361898e44438 # Parent 907df5a02819cebab68d65fb4162a2bb9253f628 Load libjava.so when using OpenJDK. 2008-08-04 Andrew John Hughes * src/natives.c: Add support for OpenJDK loading of libjava.so. diff -r 907df5a02819 -r f70700d622a8 ChangeLog --- a/ChangeLog Tue Aug 05 06:03:08 2008 +0100 +++ b/ChangeLog Tue Aug 05 06:07:38 2008 +0100 @@ -5,6 +5,11 @@ ============== 2008-08-04 Andrew John Hughes + * src/natives.c: + Add support for OpenJDK loading of libjava.so. + +2008-08-04 Andrew John Hughes + * src/class.c, * src/jam.h: Change signature of defineClass to include diff -r 907df5a02819 -r f70700d622a8 src/natives.c --- a/src/natives.c Tue Aug 05 06:03:08 2008 +0100 +++ b/src/natives.c Tue Aug 05 06:07:38 2008 +0100 @@ -43,9 +43,12 @@ #define TRACE(fmt, ...) #endif +#ifdef WITH_JAVA_RUNTIME_LIBRARY_CLASSPATH static int pd_offset; +#endif void initialiseNatives() { +#ifdef WITH_JAVA_RUNTIME_LIBRARY_CLASSPATH FieldBlock *pd = findField(java_lang_Class, SYMBOL(pd), SYMBOL(sig_java_security_ProtectionDomain)); @@ -54,6 +57,14 @@ exitVM(1); } pd_offset = pd->offset; +#elif WITH_JAVA_RUNTIME_LIBRARY_OPENJDK + char *name = getDllName("java"); + char *bootpath = getBootDllPath(); + char *buff = sysMalloc(strlen(name) + strlen(bootpath) + 2); + sprintf(buff, "%s/%s", bootpath, name); + resolveDll(buff, NULL); + sysFree(buff); +#endif } /* java.lang.VMObject */