[uClibc-cvs] CVS uClibc/ldso/libdl

CVS User jocke jocke at codepoet.org
Wed Nov 17 09:36:41 UTC 2004


Update of /var/cvs/uClibc/ldso/libdl
In directory nail:/tmp/cvs-serv25254/libdl

Modified Files:
	libdl.c 
Log Message:
Add BIND NOW support to MIPS.

Mips did not honour the LD_BIND_NOW env. variable or the DT_BIND_NOW flag
in the dynamic section.


--- /var/cvs/uClibc/ldso/libdl/libdl.c	2004/11/10 15:27:26	1.61
+++ /var/cvs/uClibc/ldso/libdl/libdl.c	2004/11/17 09:36:40	1.62
@@ -61,7 +61,7 @@
 int _dl_unmap_cache(void) __attribute__ ((__weak__));
 #endif
 #ifdef __mips__
-extern void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt)
+extern void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt, int lazy)
 	__attribute__ ((__weak__));
 #endif
 #ifdef __SUPPORT_LD_DEBUG__
@@ -299,13 +299,6 @@
 		 * further needs to be done. */
 		return (void *) dyn_chain;
 	}
-#ifdef __mips__
-	/*
-	 * Relocation of the GOT entries for MIPS have to be done
-	 * after all the libraries have been loaded.
-	 */
-	_dl_perform_mips_global_got_relocations(tpnt);
-#endif
 
 #ifdef __SUPPORT_LD_DEBUG__
 	if(_dl_debug)
@@ -319,6 +312,15 @@
 	now_flag = (flag & RTLD_NOW) ? RTLD_NOW : 0;
 	if (getenv("LD_BIND_NOW"))
 		now_flag = RTLD_NOW;
+
+#ifdef __mips__
+	/*
+	 * Relocation of the GOT entries for MIPS have to be done
+	 * after all the libraries have been loaded.
+	 */
+	_dl_perform_mips_global_got_relocations(tpnt, !now_flag);
+#endif
+
 	if (_dl_fixup(dyn_chain, now_flag))
 		goto oops;
 



More information about the uClibc-cvs mailing list