| ▲ | roblabla 6 hours ago | ||||||||||||||||
In theory, ld.so could provide a stable interface to its dynamic loading capabilities independently of glibc. Then glibc would not have to be updated in concert with ld.so. There's no inherent reason that glibc should be the library shipping a dynamic linker - we could easily be in a world where libld was developed independently from libc. On Windows, things are less modular, so it's less of an issue. That said, there's also weird shenanigans when it comes to the CRT (which can be statically linked) vs ntdll (which provides the actual linker implementation), that can make certain niche features of the linker misbehave (delay loading in particular is weird). | |||||||||||||||||
| ▲ | pas 5 hours ago | parent [-] | ||||||||||||||||
still, eventually there's a need to support on one platform different ld.so/glibc pairs (even if they are API/ABI compatible) it seems nixos could set up a wrapper that invokes the right ld.so based on the executable. though at this point they could probably edit the ELF binaries and patch the fixed path to ld.so when nix is installing the program. yeah, it seems strange that this needs kernel support. but more eBFP extension points are usually welcome, so sure, why not? | |||||||||||||||||
| |||||||||||||||||