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

Reply via email to