Re: readutmp: load libsystemd with dlopen instead of linking

Simon Josefsson via Gnulib discussion list <[email protected]> Thu, 16 Jul 2026 09:17:45 +0200
Newsgroups gmane.comp.lib.gnulib.bugs
Message-ID <[email protected]>
Bruno Haible via Gnulib discussion list <[email protected]> writes:

> I really want to hear convincing arguments, before installing additional
> complexity into readutmp.c. Your syslogd argument is not convincing for me,
> so far.

Agreed!  The argument is a strawman and needs to be qualified before
becoming a justifiable argument to add complexity.

I do see how people coming from the
minimize-the-dependencies-in-my-container background reach for dlopen()
as a way to solve that problem.

It solve the problem in several cases, but I wonder if that is a
sustainable long-term approach.  Taking it to the extreme, essentially
all shared library calls should be converted into dlopen, with graceful
fallback when the library isn't available, and that seems just weird and
somehow exposing a deeper problem.

Dependency bloat is a real complex problem too, though.  We thought we
solved this with shared libraries, but this problem seems to come back
in a different form today, leading to the dlopen() approach.  Maybe we
will go back to static linking (most of the Go ecosystem).  We know how
to re-compile large sets of binaries easily today, and doing so has
other QA/compiler advantages, so maybe the argument for shared libraries
is weaker today than it used to be.

/Simon
signature.asc (application/pgp-signature, 1.2 KB)
-----BEGIN PGP SIGNATURE-----

iQNoBAEWCgMQFiEEo8ychwudMQq61M8vUXIrCP5HRaIFAmpYhZkUHHNpbW9uQGpv
c2Vmc3Nvbi5vcmfCHCYAmDMEXJLOtBYJKwYBBAHaRw8BAQdACIcrZIvhrxDBkK9f
V+QlTmXxo2naObDuGtw58YaxlOu0JVNpbW9uIEpvc2Vmc3NvbiA8c2ltb25Aam9z
ZWZzc29uLm9yZz6IlgQTFggAPgIbAwULCQgHAgYVCAkKCwIEFgIDAQIeAQIXgBYh
BLHSvRN1vst4TPT4xNc89jjFPAa+BQJp4fWRBQkOa+rdAAoJENc89jjFPAa+hWIA
/1lQvrJeGlQq50lP6tm99D1zDy7J1tQ3ha4x0Jx7rkFTAP9hpUKuTvm6m1fXyiZV
YZlu2+Id/Dq3CIAZvNF+XEr2BLgzBFySz4EWCSsGAQQB2kcPAQEHQOxTCIOaeXAx
I2hIX4HK9bQTpNVei708oNr1Klm8qCGKiPUEGBYIACYCGwIWIQSx0r0Tdb7LeEz0
+MTXPPY4xTwGvgUCaeCW1wUJDmqLVgCBdiAEGRYIAB0WIQSjzJyHC50xCrrUzy9R
cisI/kdFogUCXJLPgQAKCRBRcisI/kdFoqdMAQCgH45aseZgIrwKOvUOA9QfsmeE
8GZHYNuFHmM9FEQS6AD6A4x5aYvoY6lo98pgtw2HPDhmcCXFItjXCrV4A0GmJA4J
ENc89jjFPAa+s7AA+gIIHpBApDpcDj1sKhzDngmpvwQf0VkHme6s+EG7qSgpAQDe
/XMrU0c0Pa3ji85cMqZhvzJOFI/soe662lzL0QY3Bbg4BFySz2oSCisGAQQBl1UB
BQEBB0AxlRumDW6nZY7A+VCfek9VpEx6PJmdJyYPt3lNHMd6HAMBCAeIfgQYFggA
JgIbDBYhBLHSvRN1vst4TPT4xNc89jjFPAa+BQJp4JbXBQkOaottAAoJENc89jjF
PAa+RNUA/2faQO/nFT06E+MlhlQdo/0chlQXC5TZMPTVvVBFwoLOAP9xLJK0ow5E
jTzYJB4K810AL/Iv6PEOAEgA4cPTHVlbCQAKCRBRcisI/kdFoqFwAP9VjZIQ9AtC
haZNBD9mDO4xHZf7BWO/0lTfmy/BhTcksQD/QoVNSzIADfBd4L3mMWaEGGj3QTJH
KG6TA9vj+RV7lg0=
=hEQn
-----END PGP SIGNATURE-----