From: Emil Velikov Date: Sun, 8 Feb 2026 12:21:23 +0000 (+0000) Subject: libkmod: Add ELF note for openssl library X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ca20fb99feed8439fb8573784ca2e416a14cde3a;p=thirdparty%2Fkmod.git libkmod: Add ELF note for openssl library Follow the new spec for ELF notes as detailed in https://systemd.io/ELF_PACKAGE_METADATA/. We can copy mostly verbatim the macros from systemd codebase. Example output: $ meson setup --native-file build-dev.ini -Ddlopen=openssl build ... dlopen : openssl features : +ZSTD +XZ +ZLIB +OPENSSL $ dlopen-notes.py build/libkmod.so.2 # build/libkmod.so.2 [ { "feature": "openssl", "description": "Support for reading module signatures", "priority": "suggested", "soname": [ "libcrypto.so.3" ] } ] Signed-off-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/420 Signed-off-by: Lucas De Marchi --- diff --git a/libkmod/libkmod-signature.c b/libkmod/libkmod-signature.c index 6bf25db5..04a29853 100644 --- a/libkmod/libkmod-signature.c +++ b/libkmod/libkmod-signature.c @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -146,12 +147,16 @@ DL_SYMBOL_TABLE(DECLARE_SYM) static int dlopen_crypto(void) { +#if !DLSYM_LOCALLY_ENABLED + return 0; +#else static void *dl; - if (!DLSYM_LOCALLY_ENABLED) - return 0; + ELF_NOTE_DLOPEN("openssl", "Support for reading module signatures", + ELF_NOTE_DLOPEN_PRIORITY_SUGGESTED, "libcrypto.so.3"); return dlsym_many(&dl, "libcrypto.so.3", DL_SYMBOL_TABLE(DLSYM_ARG) NULL); +#endif } static const char *x509_name_to_str(X509_NAME *name)