SD-DLOPEN(3)
π SD-DLOPEN π
okay bestie, gather round, because this one is genuinely cute and also extremely niche. this is the manual page for sd-dlopen, aka the ELF dlopen metadata annotation macros. yes the name is a mouthful. yes it slays anyway. let's go π¦
β¨ NAME β¨
sd-dlopen β the ELF dlopen metadata annotation macros. that's it, that's the whole vibe. π
β¨ SYNOPSIS β¨
#include <systemd/sd-dlopen.h>
pkg-config --cflags libsystemd
like, that's literally all you need. no linking, no drama, no build system tears. π«Ά
β¨ DESCRIPTION β¨
so here's the tea: sd-dlopen.h hands you a bunch of macros that let you embed .note.dlopen metadata straight into your ELF binaries. it's the implementation of the ELF dlopen metadata[^1] specification, and what that spec does is let you declare optional shared library dependencies β the ones you load at runtime via dlopen(3) instead of at link time. iykyk. π
and the best part? the header is self-contained. it does not require runtime linkage against libsystemd(3). nope. projects literally only need the installed header to use the macros. that's it. no cap. π
why does anyone care, you ask? because package managers and build systems can read the embedded ELF notes and discover runtime dependencies that are completely invisible in ELF DT_NEEDED entries. sneaky little deps, exposed. iconic behavior honestly. π₯
if you want the full rundown on which macros and constants are available, go read SD_ELF_NOTE_DLOPEN(3). that's where the actual macro menu lives. π
β¨ NOTES β¨
- the macros described here are header-only β they do not require runtime linkage against
libsystemd(3) - all you need is the installed header and the include path, exactly as handed to you by
pkg-config --cflags libsystemd
bestie this is the whole point: it's giving "zero runtime dependency" energy and we are obsessed. π
β¨ HISTORY β¨
SD_ELF_NOTE_DLOPEN() and its associated macros and constants showed up in version 261. so if you're on something older, that's why it's not working, and no it's not your fault. πΈ
β¨ SEE ALSO β¨
β¨ NOTES β¨
- ELF dlopen metadata β
https://uapi-group.org/specifications/specs/elf_dlopen_metadata/
and that's the whole page, bestie!! this was systemd 262.1, brought to you with love and also with sd-dlopen energy. go forth and annotate your ELF binaries. periodt. πβ¨
[^1]: yes the footnote is the spec link up there, i put it in the NOTES section where it belongs because we do not skip details in this house π
π¦ where this page comes from
- arch rolling: systemd-libs 262.1-1 Β· LGPL-2.1-or-later AND CC0-1.0 AND GPL-2.0-or-later WITH Linux-syscall-note
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms