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.
