diff options
Diffstat (limited to 'doc/README.JVM.txt')
-rw-r--r-- | doc/README.JVM.txt | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/doc/README.JVM.txt b/doc/README.JVM.txt new file mode 100644 index 0000000..a2baa30 --- /dev/null +++ b/doc/README.JVM.txt @@ -0,0 +1,24 @@ +(03:06:24 PM) xranby: its a bit undocumented the key is that there exist a jvm.cfg file inside the jre directory +(03:06:53 PM) xranby: this file lists all folders inside java/jre/lib/<arch>/* that contains a libjvm.so +(03:07:12 PM) xranby: the top most -myawesomejvm KNOWN line becomes the default +(03:07:29 PM) xranby: the libjvm.so itself implement the JNI spec +(03:08:26 PM) xranby: basically according to this book: http://web.archive.org/web/20120905183616/http://java.sun.com/docs/books/jni/download/jni.pdf +(03:08:43 PM) xranby: + all added JEP's & JSR's over time + some openjdk undocumented apis +(03:08:56 PM) xranby: jamvm and cacao for example implements this +(03:09:17 PM) xranby: and allows you to place the jamvm, cacao, avian libjvm.so inside one subfolder +(03:09:25 PM) xranby: and add a line -jamvm KNOWN to the jvm.cfg +(03:09:54 PM) xranby: during builds... there was previously a mecanism inside the openjdk source +(03:10:19 PM) xranby: if you defined ALT_HOTSPOT_IMPORT_PATH or similar pointing to a prebuilt libjvm.so +(03:10:27 PM) xranby: it would import that one instead of building it from scratch +(03:10:39 PM) xranby: this mechanism changes from time to time +(03:10:59 PM) xranby: at present it require a directory that looks like a real JDK installation +(03:11:11 PM) xranby: (although it only copys the libjvm.so) +(03:11:29 PM) xranby: we use this trick to build openjdk using jamvm using the icedtea build system +(03:11:48 PM) xranby: all details are found inside the icedtea project +(03:12:08 PM) xranby: hence makes it possible to build openjdk on platforms without hotspot +(03:12:20 PM) xranby: ... i will not go into details on how to bootstrap openjdk +(03:12:27 PM) xranby: from scratch on a new architecture +(03:12:33 PM) xranby: .. its black magic +(03:13:21 PM) xranby: basically you do GCC -> GCJ -> ECJ -> ANT -> bootstrap openjdk subset compiled using ecj -> openjdk +(03:13:31 PM) xranby: and deal with all cyclic complexity + |