GNOME's new versioning scheme
GNOME's new versioning scheme
Posted Sep 19, 2020 19:24 UTC (Sat) by nix (subscriber, #2304)In reply to: GNOME's new versioning scheme by mathstuf
Parent article: GNOME's new versioning scheme
DF_GROUP (as usual I got this one wrong, it's a flag, not a tag) constrains symbol searches from within this library to happen only within the library and its transitive DT_NEEDED libraries: it stops global symbols or symbols in other branches of the search tree from interposing. The relevant ld flag to look for is '-Bgroup'. It is *not* the same as --start-group/--end-group or the linker script GROUP command: fairly confusing naming really. Weak symbols still work, but only if they're resolved by objects loaded by this shared library or things it loaded. (So the old pthreads trick wouldn't work, not that it's a good idea anyway in glibc 2.32+.)
Posted Sep 22, 2020 16:33 UTC (Tue)
by mathstuf (subscriber, #69389)
[Link] (2 responses)
I have a PR (that's likely fallen on deaf ears) for macOS' linker to have a "any symbol you find in this library should be looked up at runtime" behavior which is, I think, exactly the kind of behavior I'd like. https://github.com/apple-opensource/ld64/pull/1
For reference, the search term to use for the ELF flag is `DF_1_GROUP`.
Posted Sep 22, 2020 21:38 UTC (Tue)
by nix (subscriber, #2304)
[Link] (1 responses)
Posted Sep 22, 2020 21:54 UTC (Tue)
by mathstuf (subscriber, #69389)
[Link]
GNOME's new versioning scheme
GNOME's new versioning scheme
GNOME's new versioning scheme