From 35ceabc78bdc09645ca44413243e98199982d2ce Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Sat, 11 Aug 2018 23:48:14 +0100 Subject: [PATCH] Avoid use of link_whole in the gsettings backend The GSettings backend loadable module should not expose any symbol except for the g_io_module_* ones. By using the internal dependency objects, we end up using `link_whole` on libdconf-common and libdconf-gdbus-thread, which means that we now inherit all the symbols exposed by those static libraries. We still want to use `link_whole` every time we depend on those static libraries, but for the GSettings backend module we make an exception, and use `link_with` with the build targets, instead of the internal dependencies. This fixes the `abicheck` test unit. Reviewed-by: nobody Signed-off-by: Emmanuele Bassi --- gsettings/meson.build | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gsettings/meson.build b/gsettings/meson.build index 65a1876..8bd6908 100644 --- a/gsettings/meson.build +++ b/gsettings/meson.build @@ -1,13 +1,17 @@ +# We use the libraries directly, as the dependency objects use +# link_whole; this avoids the gsettings backend module exposing +# symbols other than g_io_module_* backend_deps = [ - libdconf_common_hidden_dep, - libdconf_gdbus_thread_dep, + libdconf_common_hidden, + libdconf_gdbus_thread, ] libdconf_settings = shared_library( 'dconfsettings', sources: 'dconfsettingsbackend.c', include_directories: top_inc, - dependencies: backend_deps, + link_with: backend_deps, + dependencies: gio_dep, c_args: '-DG_LOG_DOMAIN="dconf"', install: true, install_dir: gio_module_dir, -- 2.11.4.GIT