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())