aboutsummaryrefslogtreecommitdiffstats
path: root/doc/README.JVM.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/README.JVM.txt')
-rw-r--r--doc/README.JVM.txt24
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
+