[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