changeset 716:16e83b636cb8

Irccd: use BOOST_DLL_ALIAS to avoid warnings
author David Demelier <markand@malikania.fr>
date Mon, 09 Jul 2018 20:53:00 +0200
parents f3709544d0d1
children fff3ee62d0fc
files libirccd/irccd/daemon/dynlib_plugin.cpp plugins/links/links.cpp tests/src/libirccd/dynlib-plugin/test_plugin.cpp
diffstat 3 files changed, 33 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/libirccd/irccd/daemon/dynlib_plugin.cpp	Mon Jul 09 21:10:00 2018 +0200
+++ b/libirccd/irccd/daemon/dynlib_plugin.cpp	Mon Jul 09 20:53:00 2018 +0200
@@ -73,8 +73,8 @@
     using abisym_func_type = version ();
     using initsym_func_type = std::unique_ptr<plugin> ();
 
-    const auto abi = boost::dll::import<abisym_func_type>(path, abisym);
-    const auto init = boost::dll::import<initsym_func_type>(path, initsym);
+    const auto abi = boost::dll::import_alias<abisym_func_type>(path, abisym);
+    const auto init = boost::dll::import_alias<initsym_func_type>(path, initsym);
 
     // The abi version is reset after new major version, check for both.
     const version current;
--- a/plugins/links/links.cpp	Mon Jul 09 21:10:00 2018 +0200
+++ b/plugins/links/links.cpp	Mon Jul 09 20:53:00 2018 +0200
@@ -395,8 +395,14 @@
     using plugin::plugin;
 
     void set_config(plugin_config) override;
+
     void set_formats(plugin_formats) override;
+
     void handle_message(irccd&, const message_event&) override;
+
+    static auto abi() -> version;
+
+    static auto init() -> std::unique_ptr<plugin>;
 };
 
 void links_plugin::set_config(plugin_config conf)
@@ -416,24 +422,21 @@
     requester::run(irccd.get_service(), ev.server, ev.origin, ev.channel, ev.message);
 }
 
+auto links_plugin::abi() -> version
+{
+    return version();
+}
+
+auto links_plugin::init() -> std::unique_ptr<plugin>
+{
+    return std::make_unique<links_plugin>("links", "");
+}
+
+BOOST_DLL_ALIAS(links_plugin::abi, irccd_abi_links)
+BOOST_DLL_ALIAS(links_plugin::init, irccd_init_links)
+
 // }}}
 
 } // !namespace
 
-extern "C" {
-
-BOOST_SYMBOL_EXPORT
-auto irccd_abi_links() -> version
-{
-    return version();
-}
-
-BOOST_SYMBOL_EXPORT
-auto irccd_init_links() -> std::unique_ptr<plugin>
-{
-    return std::make_unique<links_plugin>("links", "");
-}
-
-} // !C
-
 } // !irccd
--- a/tests/src/libirccd/dynlib-plugin/test_plugin.cpp	Mon Jul 09 21:10:00 2018 +0200
+++ b/tests/src/libirccd/dynlib-plugin/test_plugin.cpp	Mon Jul 09 20:53:00 2018 +0200
@@ -118,22 +118,19 @@
     {
         config_["whois"] = "true";
     }
+
+    static auto abi() -> version
+    {
+        return version();
+    }
+
+    static auto init() -> std::unique_ptr<plugin>
+    {
+        return std::make_unique<test_plugin>("testplugin", "");
+    }
 };
 
-extern "C" {
-
-BOOST_SYMBOL_EXPORT
-auto irccd_abi_test_plugin() -> version
-{
-    return version();
-}
-
-BOOST_SYMBOL_EXPORT
-auto irccd_init_test_plugin() -> std::unique_ptr<plugin>
-{
-    return std::make_unique<test_plugin>("testplugin", "");
-}
-
-} // !C
+BOOST_DLL_ALIAS(test_plugin::abi, irccd_abi_test_plugin)
+BOOST_DLL_ALIAS(test_plugin::init, irccd_init_test_plugin)
 
 } // !irccd