diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2018-08-11 23:48:14 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2018-08-11 23:53:07 +0100 |
commit | 35ceabc78bdc09645ca44413243e98199982d2ce (patch) | |
tree | 252ab5096594c0da05109f7fbf87883c8b01beca /gsettings | |
parent | 3833423bd614769107ea6123cc427221af85e3a6 (diff) | |
download | dconf-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>
Diffstat (limited to 'gsettings')
-rw-r--r-- | gsettings/meson.build | 10 |
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, |