Came up again recently. PSA: "How do I install all of the GNU C Library project libraries that I just built?" https://sourceware.org/glibc/wiki/FAQ#How_do_I_install_all_of_the_GNU_C_Library_project_libraries_that_I_just_built.3F …
In theory it *can* be upgraded safely & atomically by having all the glibc files be symlinks to pathnames with one common symlink component that can be replaced atomically via rename(2).
-
-
Although I suppose even atomic replacement does not suffice since it may happen between execve and open of DT_NEEDED libs...
-
Correct. I was careful with my example in the FAQ. Image-based OS updates which deploy complete images are safe against this kind of problem e.g. rpm-ostree or building and deploying from a container image. All mode 2 applications though.
-
Shameless plug: with musl, a single rename(2) over top of libc.so (which "make install" can do) safely does a complete atomic upgrade. :-)
-
Hah! But if I was reading the documentation in the middle of an upgrade, what would happen then? ;-) Really all of the large complex applications can have hundreds of libraries which all need to be upgraded in concert. We still need a distro-wide solution to atomic upgrades.
-
Well if the libraries have stable ABI boundaries it suffices for each one individually to be atomic.
-
Assuming they're done in dependency order.
End of conversation
New conversation -
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.