javah output file naming weirdness

Andrew John Hughes gnu_andrew at member.fsf.org
Sun Apr 27 08:21:53 PDT 2008


We recently uncovered a bug in the JikesRVM
(http://jira.codehaus.org/browse/RVM-456), namely that we were relying
on the naming of the header files generated by javah being in the same
style as those generated by the proprietary Sun JDK.

As can be seen in the bug report, the breakage showed up when using
IcedTea6/OpenJDK6 to build JikesRVM.  On OpenJDK6,

javah -verbose -d
/home/andrew/projects/classpath/jikesrvm/target/prototype_x86_64-linux/c
-classpath /home/andrew/projects/classpath/jikesrvm/target/prototype_x86_64-linux/jksvm.jar
org.jikesrvm.scheduler.greenthreads.VM_Process

produces a file named:

org_jikesrvm_scheduler_greenthreads_VM_Process.h

while apparently the proprietary version emits:

org_jikesrvm_scheduler_greenthreads_VM_0005fProcess.h

(encoding the classname's underscore character as 0005f).  We fixed
our bug by explicitly asking for javah to emit the latter named file,
but is this a regression in the OpenJDK6 version of javah?  Even the
OpenJDK I was using before (b12) still emitted the 0005f version (at
least I presume so, because the build worked...)

Any ideas?
-- 
Andrew :-)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8



More information about the jdk6-dev mailing list