[uClibc-cvs] uClibc/ldso/libdl dlib.c,1.33,1.34

Erik Andersen andersen at uclibc.org
Thu Jan 29 10:44:52 UTC 2004


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

Modified Files:
	dlib.c 
Log Message:
Eliminate separate passes for _dl_copy_fixups() and _dl_fixup(), and
do both operations in a single pass.


Index: dlib.c
===================================================================
RCS file: /var/cvs/uClibc/ldso/libdl/dlib.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- dlib.c	20 Jan 2004 18:00:16 -0000	1.33
+++ dlib.c	29 Jan 2004 10:44:50 -0000	1.34
@@ -36,9 +36,7 @@
 	__attribute__ ((__weak__, __alias__ ("foobar")));
 extern struct elf_resolve * _dl_check_if_named_library_is_loaded(const char *full_libname)
 	__attribute__ ((__weak__, __alias__ ("foobar")));
-extern int _dl_fixup(struct elf_resolve *tpnt, int lazy)
-	 __attribute__ ((__weak__, __alias__ ("foobar")));
-extern int _dl_copy_fixups(struct dyn_elf * tpnt)
+extern int _dl_fixup(struct dyn_elf *rpnt, int lazy)
 	 __attribute__ ((__weak__, __alias__ ("foobar")));
 #ifdef __mips__
 extern void _dl_perform_mips_global_got_relocations(struct elf_resolve *tpnt)
@@ -87,7 +85,7 @@
 #define _dl_trace_loaded_objects    0
 #include "../ldso/readelflib1.c"
 void *(*_dl_malloc_function) (size_t size);
-int _dl_fixup(struct elf_resolve *tpnt, int lazy);
+int _dl_fixup(struct dyn_elf *rpnt, int lazy);
 #endif
 
 static int do_dlclose(void *, int need_fini);
@@ -271,21 +269,11 @@
 	 * Now we go through and look for REL and RELA records that indicate fixups
 	 * to the GOT tables.  We need to do this in reverse order so that COPY
 	 * directives work correctly */
-	if (_dl_fixup(dyn_chain->dyn, dyn_chain->flags))
+	if (_dl_fixup(dyn_chain, dyn_chain->flags))
 		goto oops;
 
-#ifdef __SUPPORT_LD_DEBUG__
-	if(_dl_debug) 
-	_dl_dprintf(_dl_debug_file, "Beginning dlopen copy fixups\n");
-#endif
-	if (_dl_symbol_tables) {
-		if (_dl_copy_fixups(dyn_chain))
-			goto oops;
-	}
-
-
 	/* TODO:  Should we set the protections of all pages back to R/O now ? */
-	
+
 
 	/* Notify the debugger we have added some objects. */
 	if (_dl_debug_addr) {




More information about the uClibc-cvs mailing list