A java class has this: public static final int delete = 555; gcjh will correctly mangle the name delete (to delete$) for CNI header output. However, it also does this when generating JNI output (with gcjh -jni). We get output link this, and it is wrong: #undef foo_delete$ #define foo_delete$ 555L This should be just "foo_delete". This is preventing the subversion JNI code from building.
I think this is related to PR 16843 well that might have been the bug before as we did not emit the final constants before. We still don't for Inherited constants.
I'm testing a patch
Subject: Bug 19742 CVSROOT: /cvs/gcc Module name: gcc Changes by: tromey@gcc.gnu.org 2005-02-02 00:44:09 Modified files: gcc/java : ChangeLog gjavah.c Log message: PR java/19742: * gjavah.c (get_field_name): Don't override name for JNI header. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&r1=1.1542&r2=1.1543 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/gjavah.c.diff?cvsroot=gcc&r1=1.127&r2=1.128
Fix checked in