John asked me to create a CVS branch to hold the JIT support code
currently being developed. As of this moment, the JIT_SUPPORT branch
consists of a snapshot of today's CVS plus:
o the six JIT patches posted by Jens Wilke on September 27
o the patch to libutil++/op_bfd.cpp that Philippe Elie posted on
o the patch to utils/opcontrol that I posted on September 28
o the patch I posted on October 3 to remove the --merge=lib
workaround and to fix up the early exit from parse_filename()
This branch builds with no errors and has been tested. Current JIT
support is limited to Java 1.5 or higher (as the one agent that's
included so far is JVMTI-based).
We encourage reviews and test-drives. If you would like to try it out,
it's pretty easy:
o Run configure with the '--with-java=<path-to-java-devel-dir>'
option, where the java-devel-dir contains include/jvmti.h
o Run make, make install as usual. In the session where you run
your Java app, do the following:
o Start oprofile
o Run your java app as follows:
java -agentlib:jvmti_oprofile <my-java-app>
o Run opreport as normal. An ELF file is generated to contain the
symbol information of the JIT'ed code. The file is named <tgid>.jo, so
that's what you'll see in the report.