http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47558
--- Comment #16 from Iain Sandoe <iains at gcc dot gnu.org> 2011-02-01 15:26:15 UTC --- (In reply to comment #15) > Perhaps r163267 is fragile to certain combination of linker flags (like > -flat_namespace)? "fragile" LOL... man ld: -flat_namespace Alters how symbols are resolved at build time and runtime. With -two_levelnamespace (the default), the linker only searches dylibs on the command line for symbols, and records in which dylib they were found. With -flat_namespace, the linker searches all dylibs on the command line and all dylibs those original dylibs depend on. The linker does not record which dylib an external symbol came from, so at runtime dyld again searches all images and uses the first definition it finds. In addition, any undefines in loaded flat_namespace dylibs must be resolvable at build time. -- you are defeating the mechanism that is used to supply the _ext symbols from a different library. If use if this flag is, actually, necessary then we need to alter the whole mechanism for the _ext to build a distinctly named lib.