------- Comment #9 from jakub at gcc dot gnu dot org 2008-02-26 17:39 ------- BTW, not sure why 4.1.x/4.2.x is listed as broken. Only 4.3+ has H.J's: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119764 Without that change, although __cxxabiv1::* symbols are incorrectly marked as hidden, GCC doesn't emit .hidden directives for the external symbols and all these symbols of course are external, as they are defined in libsupc++.a/libstdc++.{so,a}, and as they are referenced just in the RTTI pointers, not in code directly, it makes zero difference to the generated code whether they are hidden or not.
BTW, I've noticed that for _ZTI*/_ZTV* symbols defined in the assembly .hidden directives are emitted twice, once at the definition spot and once at the end of the file. Guess assemble_external_real should skip decls that lost DECL_EXTERNAL flag (became defined in the current TU). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35368