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

Reply via email to