[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Preparing for glibc 2.34: library locations



Hi,

I know it won't be relevant to Debian for a while, but we're planning to upload to the upcoming glibc 2.34 release in Ubuntu fairly soon and I want to make sure we adapt to an upstream way in a way that is aligned with any plans for Debian.

The issue is this: 2.33 and previous releases install the dynamic linker and libc as files with names like ld-${GLIBC_VERSION}.so and libc-${GLIBC_VERSION}.so and makes symlinks from the SONAME  to these files (for example ld-linux-x86-64.so.2 -> ld-2.31.so, libc.so.6 -> libc-2.31.so). 2.34 and later will just install the libraries directly to the SONAME location.

There is another wrinkle of course in that Debian/Ubuntu install these files to /lib/$multiarch/, not /lib or /lib64 as upstream expects.

What I've implemented[0] for Ubuntu (only for testing so far) is to install libc to /lib/$multiarch/libc.so.6, the dynamic linker to /lib/$multiarch/$dynamic_linker_soname, and then have a symlink from the ABI-mandated dynamic linker path to the new path for the dynamic linker. This feels like a reasonable compromise between the upstream changes and what Debian does to me but I'm certainly interested in hearing other opinions (ideally before Ubuntu feature freeze :-p).

Cheers,
mwh

[0] My implementation is https://git.launchpad.net/~mwhudson/ubuntu/+source/glibc/commit/?id=322df64079efe63bdc0970214bd46da27d5b167f but I'm not exactly proud of it -- the design is the more important thing!



Reply to: