On Sat, Nov 22, 2025 at 5:33 AM Florian Weimer <[email protected]> wrote:
>
> * Richard Biener:
>
> > +/* When the glibc we build against does not have dl_find_object tentatively
> > +   declare the relevant bits of the structure here and use a weak 
> > declaration
> > +   so we can perform a runtime check on its presence.  */
> > +#if !defined(DLFO_STRUCT_HAS_EH_DBASE)
>
> I agree with Jakub that this should be restricted to __GLIBC__.
>
> This works for the narrow case that _dl_find_object is not available at
> build time and becomes available at run time.  Extending this to make it
> optional at run time when it was available and build time does not work
> quite work because BFD ld does not support weak symbol versions (the

If a symbol isn't available at link-time, how can it be versioned?  At most,
some versions for BFD linker will make it with an empty version.  Does ld.so
disallow undefined weak symbols with an empty version?

> version reference is always strong, even if participating symbols are
> all weak).  For us, this limitation ultimately meant that we could not
> use this approach.
>
> Risk of breakage from the duplicated definitions seems fairly low.  We'd
> need to back-data a new ABI with a different structure to 2.34 or older,
> which seems rather unlikely to happen.
>
> Thanks,
> Florian
>


-- 
H.J.

Reply via email to