diff options
author | Jussi Laakkonen <jussi.laakkonen@jolla.com> | 2019-04-29 17:31:08 +0300 |
---|---|---|
committer | Daniel Wagner <wagi@monom.org> | 2019-04-30 08:55:03 +0200 |
commit | afcb9adf1b2429b6aaa27f5988fb6d21ab3bb7bd (patch) | |
tree | c812136e51330637001d67c3f24734594f3e2783 /Makefile.plugins | |
parent | 0ec1022d2cbc6916b5802a9abf9122e74bddf799 (diff) | |
download | connman-afcb9adf1b2429b6aaa27f5988fb6d21ab3bb7bd.tar.gz |
plugins: Build dynamically loadable VPN plugins
Fix loading of external (library) VPN plugins using dlopen(). The
vpn/plugins/vpn.c source should not be built with external VPN plugins
as vpn/plugins/vpn.c is regarded as a plugin. This will cause
undefined symbol erros when opening the .so using dlopen(), since
vpn.c uses functions defined only for local (builtin) use and are
cannot be accessed by plugins.
The vpn/plugins/vpn.c source must be included in vpn build sources if
there is a single VPN plugin to be built. Both builtin and external
VPN plugins require this. Otherwise, when there are no builtin VPN
plugins included in build, loading of the external plugins will fail as
the vpn/plugins/vpn.c would have never included in connman-vpnd.
Diffstat (limited to 'Makefile.plugins')
-rw-r--r-- | Makefile.plugins | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/Makefile.plugins b/Makefile.plugins index dce8b283..7e0bc779 100644 --- a/Makefile.plugins +++ b/Makefile.plugins @@ -63,16 +63,15 @@ builtin_modules += vpn builtin_sources += plugins/vpn.c if OPENCONNECT +builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h if OPENCONNECT_BUILTIN builtin_vpn_modules += openconnect builtin_vpn_sources += vpn/plugins/openconnect.c -builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h builtin_vpn_cflags += -DOPENCONNECT=\"@OPENCONNECT@\" else vpn_plugin_LTLIBRARIES += vpn/plugins/openconnect.la vpn_plugin_objects += $(plugins_openconnect_la_OBJECTS) -vpn_plugins_openconnect_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ - vpn/plugins/openconnect.c +vpn_plugins_openconnect_la_SOURCES = vpn/plugins/openconnect.c vpn_plugins_openconnect_la_CFLAGS = $(plugin_cflags) \ -DOPENCONNECT=\"@OPENCONNECT@\" \ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ @@ -82,16 +81,15 @@ endif endif if OPENVPN +builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h if OPENVPN_BUILTIN builtin_vpn_modules += openvpn builtin_vpn_sources += vpn/plugins/openvpn.c -builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h builtin_vpn_cflags += -DOPENVPN=\"@OPENVPN@\" else vpn_plugin_LTLIBRARIES += vpn/plugins/openvpn.la vpn_plugin_objects += $(plugins_openvpn_la_OBJECTS) -vpn_plugins_openvpn_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ - vpn/plugins/openvpn.c +vpn_plugins_openvpn_la_SOURCES = vpn/plugins/openvpn.c vpn_plugins_openvpn_la_CFLAGS = $(plugin_cflags) -DOPENVPN=\"@OPENVPN@\" \ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -DSCRIPTDIR=\""$(build_scriptdir)"\" @@ -100,16 +98,15 @@ endif endif if VPNC +builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h if VPNC_BUILTIN builtin_vpn_modules += vpnc builtin_vpn_sources += vpn/plugins/vpnc.c -builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h builtin_vpn_cflags += -DVPNC=\"@VPNC@\" else vpn_plugin_LTLIBRARIES += vpn/plugins/vpnc.la vpn_plugin_objects += $(plugins_vpnc_la_OBJECTS) -vpn_plugins_vpnc_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ - vpn/plugins/vpnc.c +vpn_plugins_vpnc_la_SOURCES = vpn/plugins/vpnc.c vpn_plugins_vpnc_la_CFLAGS = $(plugin_cflags) -DVPNC=\"@VPNC@\" \ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -DSCRIPTDIR=\""$(build_scriptdir)"\" @@ -118,16 +115,15 @@ endif endif if L2TP +builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h if L2TP_BUILTIN builtin_vpn_modules += l2tp builtin_vpn_sources += vpn/plugins/l2tp.c -builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h builtin_vpn_cflags += -DL2TP=\"@L2TP@\" else vpn_plugin_LTLIBRARIES += vpn/plugins/l2tp.la vpn_plugin_objects += $(plugins_l2tp_la_OBJECTS) -vpn_plugins_l2tp_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ - vpn/plugins/l2tp.c +vpn_plugins_l2tp_la_SOURCES = vpn/plugins/l2tp.c vpn_plugins_l2tp_la_CFLAGS = $(plugin_cflags) -DL2TP=\"@L2TP@\" \ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ -DSCRIPTDIR=\""$(build_scriptdir)"\" @@ -136,16 +132,15 @@ endif endif if PPTP +builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h if PPTP_BUILTIN builtin_vpn_modules += pptp builtin_vpn_sources += vpn/plugins/pptp.c -builtin_vpn_source = vpn/plugins/vpn.c vpn/plugins/vpn.h builtin_vpn_cflags += -DPPPD=\"@PPPD@\" -DPPTP=\"@PPTP@\" else vpn_plugin_LTLIBRARIES += vpn/plugins/pptp.la vpn_plugin_objects += $(plugins_pptp_la_OBJECTS) -vpn_plugins_pptp_la_SOURCES = vpn/plugins/vpn.h vpn/plugins/vpn.c \ - vpn/plugins/pptp.c +vpn_plugins_pptp_la_SOURCES = vpn/plugins/pptp.c vpn_plugins_pptp_la_CFLAGS = $(plugin_cflags) -DPPPD=\"@PPPD@\" \ -DPPTP=\"@PPTP@\" \ -DVPN_STATEDIR=\""$(vpn_statedir)"\" \ |