[Bug c++/87380] Explicit instantations should use weak symbols on darwin

iains at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Sep 23 10:08:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87380

--- Comment #7 from Iain Sandoe <iains at gcc dot gnu.org> ---
it's been broken a looooong time - even apple-gcc-4.2.1 is broken, I don't have
3.3 anywhere without booting an old machine.

clang produces:
       .section        __DATA,__data
        .globl  __ZN1AIiE6memberE       ## @_ZN1AIiE6memberE
        .weak_definition        __ZN1AIiE6memberE
        .p2align        2
__ZN1AIiE6memberE:
        .long   0                       ## 0x0

====

it doesn't *look* like a back-end issue (the weak is missing by the time we get
to varpool_node::assemble_decl) - present in the decl for Linux, missing for
Darwin. 

Darwin declares MAKE_DECL_ONE_ONLY() => weak and that should fire up
SUPPORTS_ONE_ONLY.

so... now to figure out where the divergence is.


More information about the Gcc-bugs mailing list