On 2026-01-15 7:58 PM, Gordon Messmer wrote:
First draft:
https://codeberg.org/gordonmessmer/dev-blog/src/branch/main/using-versioned-symbols.md
Also:
For the unversioned lib and bin:
# /usr/lib/rpm/elfdeps -P lib-unversioned/libFoo.so.1
libFoo.so.1()(64bit)
# /usr/lib/rpm/elfdeps -R Bar
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libFoo.so.1()(64bit)
libc.so.6()(64bit)
rtld(GNU_HASH)
But for the versioned lib and bin:
# /usr/lib/rpm/elfdeps -P lib-versioned/libFoo.so.1
*libFoo.so.1(LIBFOO_1.0)(64bit)
libFoo.so.1(LIBFOO_1.1)(64bit)
*libFoo.so.1()(64bit)
# /usr/lib/rpm/elfdeps -R Bar-versioned
*libFoo.so.1(LIBFOO_1.1)(64bit)
libFoo.so.1(LIBFOO_1.0)(64bit)
*libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libFoo.so.1()(64bit)
libc.so.6()(64bit)
rtld(GNU_HASH)
The difference between the two is the symbol map file and one extra arg
when building the shared lib:
$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(LIB_SONAME)
*-Wl,--version-script=libFoo.map* -o $@ foo.c
...which is why I think this is such a low bar, and why I find it so odd
that Debian isn't pushing these symbol maps upstream.
--
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it:
https://pagure.io/fedora-infrastructure/new_issue