diff options
Diffstat (limited to 'packages/uClibc/0.9.33.2/0006-dlopen-static.patch')
-rw-r--r-- | packages/uClibc/0.9.33.2/0006-dlopen-static.patch | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/packages/uClibc/0.9.33.2/0006-dlopen-static.patch b/packages/uClibc/0.9.33.2/0006-dlopen-static.patch deleted file mode 100644 index 6699180..0000000 --- a/packages/uClibc/0.9.33.2/0006-dlopen-static.patch +++ /dev/null @@ -1,51 +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(-) - ---- a/ldso/libdl/libdl.c -+++ b/ldso/libdl/libdl.c -@@ -377,7 +377,7 @@ - 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 -@@ -544,11 +544,18 @@ - * 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 |