g++ and gcj should take an --unmangle option (or some such). The effect would be to tell ld to deliver its undefined symbols error messages with names that have been unmangled by the algorithm appropriate to the language used.
Actually, I think this should be the default, and you should have to do --no-unmangle to get the existing behavior. Or, deliver the symbols both ways, like this: __ZN9trapNamer5parseER3rowIKcE\ttrapNamer::parse(row<char const>&) __ZN10trapNamerJC1EP9trapNamer\ttrapNamerJ::trapNamerJ(trapNamer*) with command-line options to show one, the other, or both forms. -- Summary: RFE: g++ --unmangle Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: Dave at Yost dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30205