[PATCH] Fix glibc 2.34 ABI omission (missing GLIBC_2.34 in dynamic loader)

Siddhesh Poyarekar siddhesh@gotplt.org
Mon Dec 13 14:54:50 GMT 2021


On 12/13/21 17:45, Florian Weimer wrote:
> It's only possible to move symbols if version nodes exist on both
> sides.  Therefore, this patch adds a version node to ld.so.

Could we enforce via a test that both libc.so and ld.so always have the 
same version nodes?  That'll give us future flexibility at the cost of 
the extra few bytes.

> Without the version node, a binary linked against newer glibc will start
> referencing GLIBC_2.34 in ld.so after a symbol move to ld.so.  The lazy

Would it contain a reference to ld.so though?  IIRC, the symbol/version 
checks don't care about the DSO in which they are found.  So in old 
glibc, it should resolve to pthread_key_create@GLIBC_2.34 in libc.so.6 
and in newer glibc it should resolve to pthread_key_create@GLIBC_2.34 in 
ld.so.

Siddhesh


More information about the Libc-alpha mailing list