Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't see any problems here. libc is nothing special, it's just a library that (almost) every piece of software depends upon.

Two different programs may depend on two different versions of it (/nix/libc-2.10-fdsfgs/lib/libc.so.6 and /nix/libc-2.13-fgsfds/lib/libc.so.6 or even /nix/uclibc-0.9.33.1-blahblah/lib/libc.so) just fine. The only requirement is that both libc versions must support running under the current kernel¹, as you can't have two kernels at the same time.

However, it would be problematic if a single program (foo) would depend on a library (libfoo), which depends on another version of libc that foo does. I.e., dependency graph will be like foo->libc-x.xx, foo->libfoo->libc-y.yy. This would cause symbol conflict and AFAIK this can't be solved without either rebuilding either foo or libfoo or introducing some really nasty hacks to the ELF loader (ld-linux).

___

¹) Google for "FATAL: kernel too old" error message to see the example of what I mean. There are patches to make newer libcs to run with relatively older kernels, though, it just requires building from source.



Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: