https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87380
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- On GNU/Linux the symbol in the shared library is a global unique symbol: $ nm --defined-only -g liblib.so | grep member 000000000020101c u _ZN1AIiE6memberE It seems that we need to make it weak to ensure that's true on darwin.