http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49992
--- Comment #15 from Iain Sandoe <iains at gcc dot gnu.org> 2011-08-09 10:17:45 UTC --- ld doesn't "ignore" anything - the rules it is (supposed) to use are there in "man ld". however suppose: object.o : contains (public) symbols foo and bar library.a : contains (public) symbols baz and bar in module mod. if a link line causes foo to be resolved from object.o and baz from library.a then there _WILL_ be two versions of bar.