Re: [PATCH] readutmp: load libsystemd with dlopen instead of linking
Collin Funk <[email protected]> Mon, 13 Jul 2026 12:09:17 -0700
| Newsgroups | gmane.comp.lib.gnulib.bugs |
|---|---|
| Message-ID | <[email protected]> |
Luca Boccassi <[email protected]> writes: >> > So the main point of the proposed change is to improve diagnostics, >> > right? >> >> No. The point is to make it possible to install the coreutils package >> without installing the libselinux1 package. There are only two >> available options for that purpose: delete all the selinux-related >> code and remove the dependency entirely, or make it runtime-optional >> like openssl already is. > > Sorry, brainfart: substitute "systemd" for "selinux". Working to > change util-linux to dlopen libselinux and wires got crossed. And the coreutils one [1]. I think the most obvious benefit is that you can avoid installing libselinux and libsystemd in a container where, as far as I am aware, they are not needed. One other thing that occurred to me is that it might improve the performance of the single binary. That is, when running a command like 'true', you are no longer loading libselinux and libpcre2. That would be helpful for Red Hat containers, which use coreutils-single, and likely others: $ podman run --rm -it redhat/ubi10 $ ldd /usr/bin/coreutils linux-vdso.so.1 (0x00007f06e92a7000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f06e9110000) libacl.so.1 => /lib64/libacl.so.1 (0x00007f06e9106000) libattr.so.1 => /lib64/libattr.so.1 (0x00007f06e90fe000) libcap.so.2 => /lib64/libcap.so.2 (0x00007f06e90f1000) libc.so.6 => /lib64/libc.so.6 (0x00007f06e8f16000) libpcre2-8.so.0 => /lib64/libpcre2-8.so.0 (0x00007f06e8e74000) /lib64/ld-linux-x86-64.so.2 (0x00007f06e92a9000) Pádraig, I remember you looked into startup times fairly recently. Do you recall how much of that was from loading shared libraries? No problem if not, I can stop being lazy and test it myself. Collin [1] https://github.com/coreutils/coreutils/pull/317