http://sourceware.org/bugzilla/show_bug.cgi?id=13245
--- Comment #10 from hubicka at ucw dot cz 2011-10-04 09:17:43 UTC --- > http://sourceware.org/bugzilla/show_bug.cgi?id=13245 > > --- Comment #9 from Cary Coutant <ccoutant at google dot com> 2011-10-03 > 21:50:21 UTC --- > > Here the function test is comdat both in libt.so and t2.so. > > In t2.so we would like to make it static because doing so improves dynamic > > linking time (i.e. the function in question don't need to be resolved at > > all). > > We can't want to do that in libt.so because that one is not LTOed. > > > > This would happen if linker returned PREVAILING_DEF_IRONLY_EXP for _Z4testv > > instead of PREVAILING_DEF. I think this is consistent with documentation > > of it > > - i.e. symbol is IRONLY within current DSO but exported. It does not matter > > much whether we know if libt.so will bind to it or not. > > So do you want the linker to ignore references from shared objects completely, > or only if the reference is a (pre-empted) definition? I could make the former > happen with the following patch: Hi, I am by far not confident in this area, but I personally don't see much difference for compiler to know whether the symbol will be bound by dynamic linker to other DSO or may be bound. So I guess ignoring symbols from shared libraries should work well, since they will all end up PREVAILING_DEF_IRONLY_EXP. Note that while looking at differences in resolution files in between gold and GNU LD I noticed that gold reports some symbols as UNDEF that are PREEMPTED_DYN for GNU LD. It is harmless, because internally GCC handles both prety much equally, but it seems wrong? Honza -- Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils