4 ms·
> Because Linux userspace libraries aren't designed to handle long term binary compatibility. The kernel however, is. So how about static linking (almost) all
by loup-vaillant 2y ago
> Because Linux userspace libraries aren't designed to handle long term binary compatibility.
The kernel however, is. So how about static linking (almost) all the things?
- okanat 2y agoYou cannot at the moment with GNU stuff since glibc relies on a plugin system to load things like DNS, user management etc. at runtime since it enables stuff like LDAP. OpenSSL also relies on dynamic library infrastructure. The OpenGL drivers are also similarly dynamically loaded by libglvnd at runtime. Otherwise universal graphics drivers won't work. It'll be going back to the bad old days booting into black monitors when changing GPUs and then trying to figure out drivers in the TTY. High performance data transfers like real-time audio, graphics buffers, camera data etc still has to use the lowest level possible i.e. shared memory. Dynamic libraries really help for having simpler APIs for those. And then there is the update problem. If all programs are statically linked, a single update will easily reach gigabytes per upgrade for each CVE etc. The distro maintainers has to be extremely careful that they didn't miss to upgrade a dependency.