summaryrefslogtreecommitdiff
path: root/patches/uClibc/0.9.33.2/998-dlopen-static.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/uClibc/0.9.33.2/998-dlopen-static.patch')
-rw-r--r--patches/uClibc/0.9.33.2/998-dlopen-static.patch56
1 files changed, 0 insertions, 56 deletions
diff --git a/patches/uClibc/0.9.33.2/998-dlopen-static.patch b/patches/uClibc/0.9.33.2/998-dlopen-static.patch
deleted file mode 100644
index 9d2fa55..0000000
--- a/patches/uClibc/0.9.33.2/998-dlopen-static.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 231e4a9b4b972662a6832f714a05525a3754892d Mon Sep 17 00:00:00 2001
-From: Filippo Arcidiacono <filippo.arcidiacono@st.com>
-Date: Thu, 9 May 2013 09:04:20 +0200
-Subject: libdl: fix dlopen implementation from statically linked application
-
-Calling dlopen from statically linked application is actually broken,
-because _dl_find_hash enters into an infinite loop when trying to
-resolve symbols. In this case it doesn't need to extend the global
-scope, it is readyto be used as it is, because _dl_loaded_modules already points
-to the dlopened library.
-
-The patch also fixesi a typo in __LDSO_LD_LIBRARY_PATH__ macro, that was
-preventing to get the actual value of the LD_LIBRARY_PATH.
-
-Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
-Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
----
- ldso/libdl/libdl.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/ldso/libdl/libdl.c b/ldso/libdl/libdl.c
-index 4630a59..3a78696 100644
---- a/ldso/libdl/libdl.c
-+++ b/ldso/libdl/libdl.c
-@@ -374,7 +374,7 @@ static void *do_dlopen(const char *libname, int flag, ElfW(Addr) from)
- if (getenv("LD_BIND_NOW"))
- now_flag = RTLD_NOW;
-
--#if !defined SHARED && defined __LDSO_LIBRARY_PATH__
-+#if !defined SHARED && defined __LDSO_LD_LIBRARY_PATH__
- /* When statically linked, the _dl_library_path is not yet initialized */
- _dl_library_path = getenv("LD_LIBRARY_PATH");
- #endif
-@@ -541,11 +541,18 @@ static void *do_dlopen(const char *libname, int flag, ElfW(Addr) from)
- * to the GOT tables. We need to do this in reverse order so that COPY
- * directives work correctly */
-
-- /* Get the tail of the list */
-+#ifdef SHARED
-+ /*
-+ * Get the tail of the list.
-+ * In the static case doesn't need to extend the global scope, it is
-+ * ready to be used as it is, because _dl_loaded_modules already points
-+ * to the dlopened library.
-+ */
- for (ls = &_dl_loaded_modules->symbol_scope; ls && ls->next; ls = ls->next);
-
- /* Extend the global scope by adding the local scope of the dlopened DSO. */
- ls->next = &dyn_chain->dyn->symbol_scope;
-+#endif
- #ifdef __mips__
- /*
- * Relocation of the GOT entries for MIPS have to be done
---
-cgit v0.12
-