[PATCH] ld: Skip the LTO archive member only for the earlier DSO
Michael Matz
matz@suse.de
Wed Apr 9 16:36:02 GMT 2025
Hello,
On Wed, 9 Apr 2025, H.J. Lu wrote:
> > > Thanks! Does it also solve the inline testcase I cobbled up in
> > > https://sourceware.org/bugzilla/show_bug.cgi?id=32846#c6
> > > (that wasn't working even without my patch but is related to the
> > > shared vs. static symbols).
> >
> > FWIW: It doesn't, it remains resolving to the abort in libc.so, not to
> > either the one in the cmdline shared lib (which would also be wrong) nor
> > to the one from static.a, which would be the correct one.
> >
> > Obviously it's still better to have this patch now, as it fixes a
> > regression in the wild, but I wonder if adding more and more conditions
> > for each testcase we come along is the right approach to deal with this.
> > Can you describe what first_hash is _really_ supposed to be and how it
> > interacts with the linkers symbol table vs. the two LTO symbol lookup
> > phases?
>
> first_hash has the first definition for dynamic symbol or archive symbol
> lookup.
Well, yes, that's how it's currently filled. But why, and how does that
interact with the linker symbol table, or rather: how have you designed it
to interact? I will also say that the above isn't the full truth, it
contains the first definition for archive symbols _only_ when at the point
of seeing it no reference to it existed yet.
Ciao,
Michael.
More information about the Binutils
mailing list