summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2018-08-11 23:48:14 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2018-08-11 23:53:07 +0100
commit35ceabc78bdc09645ca44413243e98199982d2ce (patch)
tree252ab5096594c0da05109f7fbf87883c8b01beca
parent3833423bd614769107ea6123cc427221af85e3a6 (diff)
downloaddconf-35ceabc78bdc09645ca44413243e98199982d2ce.tar.gz
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 <ebassi@gnome.org>
-rw-r--r--gsettings/meson.build10
1 files 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,