Problem generating C header file for Hotspot debugger PPC64ThreadContext class

Maynard Johnson maynardj at us.ibm.com
Thu Aug 7 13:43:58 UTC 2014


Hi, all,
I've begun adding ppc64 support for the serviceability tools that take a java core file as input (jmap, jstack).  See my original July 3 posting to ppc-aix-port-dev (subject "PowerPC: core file option not available with serviceability tools") for reference.  I've created a number of new ppc64-specific Java classes within sun.jvm.hotspot.debugger.*, but am now running into a build issue that I've not been able to resolve.  The build error is as follows:

---------------
Compiling /home/mpj/jdk9-dev/hotspot/src/share/vm/runtime/vm_version.cpp
Making SA debugger back-end...
/home/mpj/jdk9-dev/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c:53:63: fatal error: sun_jvm_hotspot_debugger_ppc64_PPC64ThreadContext.h: No such file or directory
 #include "sun_jvm_hotspot_debugger_ppc64_PPC64ThreadContext.h"
                                                               ^
compilation terminated.
---------------

The crux of the problem is that this missing header file is not being generated earlier in the build, when the other arch-specific ThreadContext headers (X86, AMD64, and SPARC) are built. These headers are generated into build/linux-ppc64-normal-server-release/hotspot/linux_ppc64_compiler2/generated.

I had found hotspot/agent/src/os/linux/Makefile where there's a target defined to use 'javah' for generating header files from the *ThreadContext classes (the target is "$(ARCH)/LinuxDebuggerLocal.o:").  I added my PPC64ThreadContext class to that target, but that had no effect.  In fact, hacking that Makefile to remove other arch-specific ThreadContext classes from that target had no effect either -- i.e., a 'make clean' and 'rm -rf build' followed by './configure' and 'make all' still manages to generate the header files for the three existing arch-specific ThreadContext classes. So my question is how do those header files get generated?  What file do I need to edit to add PPC64ThreadContext into the mix?

Thanks.
-Maynard



More information about the serviceability-dev mailing list