Compat symbols in abilist files
Florian Weimer
fweimer@redhat.com
Wed Mar 17 20:59:28 GMT 2021
I'd like to re-raise the matter of comapt symbol markers in abilist
files.
--enable-obsolete-rpc (which changed compat symbol status) is gone,
which should simplify matters.
Joseph, you objected to this in the past. While reviewing libpthread
symbol moves, I noticed that when going from
libc: pread@@GLIBC_2.1 libpthread: pread@@GLIBC_2.2
to
libc: pread@GLIBC_2.1 pread@@GLIBC_2.2
we would actually have to switch to
libc: pread@GLIBC_2.1 pread@GLIBC_2.2 pread@@GLIBC_2.34
because a newly linked binary would produce a pread@@GLIBC_2.2 reference
without linking to libpthread, which could result in a lazy binding
failure at run time. If we swap around the roles of compat symbols,
like this
libc: pread@@GLIBC_2.1 pread@GLIBC_2.2
the new symbol version is not necessary.
Unfortunately this is currently not visible at all in the abilist files.
The versioned_symbol/compat_symbol constructs are also quite hard to
review. So I'm worried that we don't get the link-time ABI we want on
all targets.
Thanks,
Florian
More information about the Libc-alpha
mailing list