OpenJDK Hacking Workshop -- Download Participants will need an x86 machine running some version of Linux (virtualized should be ok). fedora 17/18/19 is recommended. Other Linuxes will probably work so long as you are happy and willing to install missing packages or upgrade package versions as determined by the configure script. The OpenJDK source consists of a forest of mercurial trees which you will need to clone onto your machine. Given the bandwidth avaiable to the workshop and then number of participants it is recommended that you download this forest in advance. To install the standard x86 JDK8 forest: ---------------------------------------- 1) Pick a location for the downloaded code $ cd 2) clone the top level tree in the jdk8u forest $ hg clone http://hg.openjdk.java.net/jdk8u/jdk8u jdk8 3) move into the root tree $ cd jdk8 4) run script get_source.sh to clone and update the jdk8u sub-trees $ bash ./get_source.sh Your tree is now complete and ready to configure/build. Details of how to do perform these steps wil be provided in the workshop. It is also possible to build the hybrid x86-aarch64 tree on an x86 box (Wednesday's talk on the AArch64 port will explain how this hybrid build was used to develop the AArch64 code in the absence of actual AArch64 hardware). This hybrid build employs an x86-compiled JVM which has a JIT/Assembler that generates AArch64 machine code. The hybrid JVM executes JITted code by jumping into a lightweight functional simulator for the AArch64 hardware. If you are interested in porting OpenJDK then you may want to try building and running this version of OpenJDK. One advantage of running this build is that the simulator is integrated with gdb. The integration support provides commands which support disassembly and stack backtraces in JITted code and trhe ability to place symbolic breakpoints on Java interpreted and compiled methods. The downside, of course, is that the generated code wil be AArch64 ccode -- but don't worry to much about that; it is a very nice and perfectly readable instruction set! To install the aarch64 JDK8 forest: ----------------------------------- 1) Pick a location for the downloaded code $ cd 2) clone the top level tree in the aarch64 jdk8 forest $ hg clone http://hg.openjdk.java.net/aarch64-port/jdk8 jdk8-aarch64 3) clone the AArch64 simulator tree hg clone http://hg.code.sourceforge.net/p/smallaarch64sim/code simulator 4) clone the binutils tree used by the disassembler hg clone http://hg.code.sourceforge.net/p/binutilsaarch64/code simulator 5) move into the root tree $ cd jdk8-aarch64 6) run script get_source.sh to clone and update the aarch64 jdk8 sub-trees $ bash ./get_source.sh