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