summaryrefslogtreecommitdiffstats
path: root/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch')
-rw-r--r--toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch41
1 files changed, 0 insertions, 41 deletions
diff --git a/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch b/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch
deleted file mode 100644
index e9c37f489..000000000
--- a/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-[PATCH] ld.so: ldd crashes when __LDSO_SEARCH_INTERP_PATH__ is not #defined
-Since b65c7b2c79debcb9017e31913e01eeaa280106fb, the implicit search path
-can be disabled by not #defining __LDSO_SEARCH_INTERP_PATH__. This
-causes _dl_ldsopath to never be set, so it remains NULL. _dl_ldsopath is
-still used when __LDSO_LDD_SUPPORT__ is #defined, to strip the path off
-of the beginning of the absolute path to the ld.so interpreter in use
-for printing. The _dl_strlen will crash with a NULL argument.
-
-Rather than relying on _dl_ldsopath, this change causes ldd to compute
-the interpreter's basename directly.
-
-glibc ld.so seems to print the full path to the interpreter without
-any computed basename or =>. I personally prefer glibc's behavior, but
-to preserve backwards compatibility with uClibc ld.so, the existing
-format with the computed basename, =>, and full path is used here. This
-enables simpler (and unchanged) text processing in a pipeline.
-
-Signed-off-by: Mark Mentovai <mark at moxienet.com>
----
-ldso/ldso/ldso.c | 12 +++++++++---
---- a/ldso/ldso/ldso.c
-+++ b/ldso/ldso/ldso.c
-@@ -925,9 +925,15 @@ void _dl_get_ready_to_run(struct elf_res
- #ifdef __LDSO_LDD_SUPPORT__
- /* End of the line for ldd.... */
- if (trace_loaded_objects) {
-- _dl_dprintf(1, "\t%s => %s (%x)\n",
-- rpnt->dyn->libname + _dl_strlen(_dl_ldsopath) + 1,
-- rpnt->dyn->libname, DL_LOADADDR_BASE(rpnt->dyn->loadaddr));
-+ /* glibc ld.so/ldd would just do
-+ * _dl_dprintf(1, "\t%s (%x)\n", rpnt->dyn->libname,
-+ * DL_LOADADDR_BASE(rpnt->dyn->loadaddr));
-+ * but uClibc has always used the => format. */
-+ char *ptmp = _dl_strrchr(rpnt->dyn->libname, '/');
-+ if (ptmp != rpnt->dyn->libname)
-+ ++ptmp;
-+ _dl_dprintf(1, "\t%s => %s (%x)\n", ptmp, rpnt->dyn->libname,
-+ DL_LOADADDR_BASE(rpnt->dyn->loadaddr));
- _dl_exit(0);
- }
- #endif