From 4b1de0112b765e0c7548a9a39ad82c45373c60e7 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Wed, 5 Feb 2020 00:40:01 +0100 Subject: [PATCH] build: add rpath to modules that use symbols from libexec_weston The cms-static, desktop-shell, hmi-controller, ivi-shell, and screen-share modules use symbols from libexec_weston, e.g.: $ ldd /usr/lib/x86_64-linux-gnu/weston/desktop-shell.so | grep "not found" libexec_weston.so.0 => not found Loading these modules from weston happens to work because the weston executable itself links against libexec_weston, and has an rpath set. Still, these modules depend on a library in a non-standard location. Adding an rpath could help static checkers to make sure all shared objects' dependencies are present. Signed-off-by: Philipp Zabel --- compositor/meson.build | 6 ++++-- desktop-shell/meson.build | 3 ++- ivi-shell/meson.build | 6 ++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/compositor/meson.build b/compositor/meson.build index f17415be..621c3e07 100644 --- a/compositor/meson.build +++ b/compositor/meson.build @@ -90,7 +90,8 @@ if get_option('screenshare') dependencies: deps_screenshare, name_prefix: '', install: true, - install_dir: dir_module_weston + install_dir: dir_module_weston, + install_rpath: '$ORIGIN' ) env_modmap += 'screen-share.so=@0@;'.format(plugin_screenshare.full_path()) endif @@ -115,7 +116,8 @@ if get_option('color-management-lcms') dependencies: [ dep_libexec_weston, dep_libweston_public, dep_lcms2 ], name_prefix: '', install: true, - install_dir: dir_module_weston + install_dir: dir_module_weston, + install_rpath: '$ORIGIN' ) env_modmap += 'cms-static.so=@0@;'.format(plugin_lcms.full_path()) endif diff --git a/desktop-shell/meson.build b/desktop-shell/meson.build index c4f6b0da..c67bfd60 100644 --- a/desktop-shell/meson.build +++ b/desktop-shell/meson.build @@ -24,7 +24,8 @@ if get_option('shell-desktop') dependencies: deps_shell_desktop, name_prefix: '', install: true, - install_dir: dir_module_weston + install_dir: dir_module_weston, + install_rpath: '$ORIGIN' ) env_modmap += 'desktop-shell.so=@0@;'.format(plugin_shell_desktop.full_path()) endif diff --git a/ivi-shell/meson.build b/ivi-shell/meson.build index 8364fa57..03fc7175 100644 --- a/ivi-shell/meson.build +++ b/ivi-shell/meson.build @@ -20,7 +20,8 @@ if get_option('shell-ivi') ], name_prefix: '', install: true, - install_dir: dir_module_weston + install_dir: dir_module_weston, + install_rpath: '$ORIGIN' ) env_modmap += 'ivi-shell.so=@0@;'.format(plugin_shell_ivi.full_path()) @@ -42,7 +43,8 @@ if get_option('shell-ivi') ], name_prefix: '', install: true, - install_dir: dir_module_weston + install_dir: dir_module_weston, + install_rpath: '$ORIGIN' ) env_modmap += 'hmi-controller.so=@0@;'.format(plugin_ivi_hmi.full_path())