aboutsummaryrefslogtreecommitdiffstats
path: root/README.JVM.txt
blob: a2baa30ee26133faecf14c6aca92cc7d15b1b1bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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