From: Tobias Brunner Date: Mon, 11 Aug 2025 13:55:03 +0000 (+0200) Subject: plugin-loader: Don't prevent dynamic linking in addition to static constructors X-Git-Tag: 6.0.3dr1~6^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1b551a9bfdd8f427596cd54048bf8d58ebc373e1;p=thirdparty%2Fstrongswan.git plugin-loader: Don't prevent dynamic linking in addition to static constructors When built with static plugins and constructors, we might still want to be able to load external plugins. Fixes: d860c26e9533 ("plugin-loader: Properly support compilation without dlopen()/dlsym() etc.") --- diff --git a/src/libstrongswan/plugins/plugin_loader.c b/src/libstrongswan/plugins/plugin_loader.c index 786b183328..0d4659f127 100644 --- a/src/libstrongswan/plugins/plugin_loader.c +++ b/src/libstrongswan/plugins/plugin_loader.c @@ -46,6 +46,9 @@ typedef struct plugin_entry_t plugin_entry_t; * Statically registered constructors */ static hashtable_t *plugin_constructors = NULL; + +#elif !defined(HAVE_DLADDR) +#error Neither dynamic linking nor static plugin constructors are supported! #endif /** @@ -373,13 +376,12 @@ static status_t create_plugin(private_plugin_loader_t *this, void *handle, { constructor = plugin_constructors->get(plugin_constructors, name); } -#elif defined(HAVE_DLADDR) +#endif +#ifdef HAVE_DLADDR if (!constructor) { constructor = dlsym(handle, create); } -#else - #error Neither dynamic linking nor static plugin constructors are supported! #endif if (!constructor) {