This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated
via 9728de1929812df84749c9fb044f6f584e044199 (commit)
from ff6ce3999db93a52d1cd22510f8508b660ddf54e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
extra/Configs/Config.in | 9 +++++++++
ldso/ldso/dl-elf.c | 12 ++++++++++++
2 files changed, 21 insertions(+)
diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
index cec06e4..c7a3b2d 100644
--- a/extra/Configs/Config.in
+++ b/extra/Configs/Config.in
@@ -420,6 +420,15 @@ config LDSO_RUNPATH
Usage of RUNPATH tags is not too common, so disabling this feature
should be safe for most people.
+config LDSO_RUNPATH_OF_EXECUTABLE
+ bool "Use executables RPATH/RUNPATH when searching for libraries."
+ depends on LDSO_RUNPATH
+ default n
+ help
+ Use the executables RPATH/RUNPATH to find to find libraries even
+ though this behavour is not standard. Setting this option causes
+ the uclibc dynamic linker behavour to match the glibc dynamic linker.
+
config LDSO_SAFE_RUNPATH
bool "Allow only RUNPATH beginning with /"
depends on LDSO_RUNPATH
diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
index 6fc95b3..d42b912 100644
--- a/ldso/ldso/dl-elf.c
+++ b/ldso/ldso/dl-elf.c
@@ -266,6 +266,18 @@ struct elf_resolve *_dl_load_shared_library(unsigned rflags, struct
dyn_elf **rp
if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt, NULL)) != NULL)
return tpnt1;
}
+#ifdef __LDSO_RUNPATH_OF_EXECUTABLE__
+ /*
+ * Try the DT_RPATH of the executable itself.
+ */
+ pnt = (char *) _dl_loaded_modules->dynamic_info[DT_RPATH];
+ if (pnt) {
+ pnt += (unsigned long) _dl_loaded_modules->dynamic_info[DT_STRTAB];
+ _dl_if_debug_dprint("\tsearching exe's
RPATH='%s'\n", pnt);
+ if ((tpnt1 = search_for_named_library(libname, rflags, pnt, rpnt)) !=
NULL)
+ return tpnt1;
+ }
+#endif
#endif
/*
hooks/post-receive
--
uClibc-ng - small C library for embedded systems