Hy Maynard, sorry, but I think you edited the wrong Make file (that's why you saw no effect - neither positive nor negative:)
The right Makefile is "hotspot/make/linux/makefiles/sa.make". If you add your new Thread context class to the 'javah' rules at the end of the file it should work. I actually don't know why "hotspot/agent/src/os/linux/Makefile" is still there. Maybe it can (or could) be used to build the sa-agent standalone? Perhaps somebody from the serviceability list can tell if this Make file couldn't (or even shouldn't) be removed to prevent confusion. Regards, Volker On Thu, Aug 7, 2014 at 3:43 PM, Maynard Johnson <[email protected]> wrote: > 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 >
