There is a bug in mangle_name.c which leads to mangling any name containing two underscores followed by a capital "U", even if those three characters are not consecutive. For example, the following program will not link:
[begin Test.java] public class Test { public static final native void x_y_NewUser(); public static final native void xy__User(); public static void main(String[] args) { x_y_NewUser(); xy__User(); } } [end Test.java] [begin natTest.cpp] #include "Test.h" void Test::x_y_NewUser() { return; } void Test::xy__User() { return; } [end natTest.cpp] I will attach a patch which fixes the first case but not the second (since I'm not sure how the second case was intended to be handled). -- Summary: mangle_name.c mangles names unecessarily Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc-bugzilla at seibutsu dot mailsnare dot net GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28474