meson: /usr/lib/glib2.0/installed-tests/glib/gdbus-peer: error while loading shared libraries: libgdbus-example-objectmanager.so: cannot open shared object file: No such file or directory
I tried building GLib 2.58.1 with Meson, using modified Debian packaging, with @xclaesse's recent branches applied as patches.
I observed this test failure in installed-tests:
Running test: glib/gdbus-peer.test
/usr/lib/glib2.0/installed-tests/glib/gdbus-peer: error while loading shared libraries: libgdbus-example-objectmanager.so: cannot open shared object file: No such file or directory
FAIL: glib/gdbus-peer.test (Child process exited with code 127)
It seems gdbus-peer
wasn't built with the necessary DT_RUNPATH
or DT_RPATH
(libtool -rpath
, ld -rpath
, gcc -Wl,-rpath
) to find its dependencies adjacent to itself.
I also noticed that the libgbus-example-objectmanager.so
shared library is installed differently, but perhaps that's harmless. The Autotools version looks like a "real shared library", whereas the Meson version looks more like a plugin:
- Autotools: real file is
.so.0.0.0
;.so
and.so.0
are symlinks to that,DT_SONAME
is presumablylibgdbus-example-objectmanager.so.0
- Meson: real file is
.so
,DT_SONAME
islibgdbus-example-objectmanager.so