summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSemun Lee <sm79.lee@samsung.com>2016-06-02 20:41:30 +0900
committerSemun Lee <sm79.lee@samsung.com>2016-06-02 20:41:30 +0900
commit9a817970e57ca71934814c720d55822bd814afab (patch)
tree50647d880ae1bbc484f8f559f52865f79b359fcf
parent3114f9321953be421614e304a80d55a9710e893c (diff)
downloadlaunchpad-accepted/tizen/wearable/20160606.040107.tar.gz
launchpad-accepted/tizen/wearable/20160606.040107.tar.bz2
launchpad-accepted/tizen/wearable/20160606.040107.zip
When an application contains some private shared libraries in its own /lib directory and a private shared library has duplicated symbol with platform provided shared library, application executable could not able to use the symbol in its private shared library. RTLD_DEEPBIND flag make the application executable to be able to use the symbol in its private shared library. Change-Id: Ic692f435e13033b5be2f6255a9a27051544c5a71 Signed-off-by: Semun Lee <sm79.lee@samsung.com>
-rw-r--r--src/launchpad_loader.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/launchpad_loader.c b/src/launchpad_loader.c
index d24eee7..0c19f91 100644
--- a/src/launchpad_loader.c
+++ b/src/launchpad_loader.c
@@ -208,7 +208,8 @@ static int __loader_terminate_cb(int argc, char **argv, void *user_data)
restore = true;
do_dlopen:
- handle = dlopen(argv[LOADER_ARG_PATH], RTLD_LAZY | RTLD_GLOBAL);
+ handle = dlopen(argv[LOADER_ARG_PATH],
+ RTLD_LAZY | RTLD_GLOBAL | RTLD_DEEPBIND);
if (handle == NULL) {
_E("dlopen failed(%s). Please complile with -fPIE and "
"link with -pie flag", dlerror());