gcj does not mangle names correctly. In particular, when a member name is a C++ keyword, "$" is appended to the name. However, this is results in an illegal mangled name so it is not possible to refer to the member from CNI code.
Also, the set of C++ keywords in gjavah is different from the set in gcj. Also, types are not checked for C++ keywords, so javax.xml.namespace.* cannot be referenced from CNI code. -- Summary: namespace namespace broken in CNI Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: java AssignedTo: aph at gcc dot gnu dot org ReportedBy: aph at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40590