[uClibc-cvs] CVS update of uClibc/ldso (include/ldso.h ldso/dl-startup.c ldso/ldso.c)

Joakim Tjernlund jocke at codepoet.org
Thu Aug 19 09:06:16 UTC 2004


    Date: Thursday, August 19, 2004 @ 03:06:16
  Author: jocke
    Path: /var/cvs/uClibc/ldso

Modified: include/ldso.h (1.15 -> 1.16) ldso/dl-startup.c (1.17 -> 1.18)
          ldso/ldso.c (1.107 -> 1.108)

Move "debug_addr" ptr from dl-startup.c to ldso.c 


Index: uClibc/ldso/include/ldso.h
diff -u uClibc/ldso/include/ldso.h:1.15 uClibc/ldso/include/ldso.h:1.16
--- uClibc/ldso/include/ldso.h:1.15	Thu Aug 19 02:53:29 2004
+++ uClibc/ldso/include/ldso.h	Thu Aug 19 03:06:15 2004
@@ -68,7 +68,7 @@
 extern void _dl_dprintf(int, const char *, ...);
 
 extern void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr,
-		Elf32_auxv_t auxvt[AT_EGID + 1], char **envp, struct r_debug *debug_addr,
+		Elf32_auxv_t auxvt[AT_EGID + 1], char **envp,
 		unsigned char *malloc_buffer, unsigned char *mmap_zero, char **argv);
 
 
Index: uClibc/ldso/ldso/dl-startup.c
diff -u uClibc/ldso/ldso/dl-startup.c:1.17 uClibc/ldso/ldso/dl-startup.c:1.18
--- uClibc/ldso/ldso/dl-startup.c:1.17	Thu Aug 19 02:53:29 2004
+++ uClibc/ldso/ldso/dl-startup.c	Thu Aug 19 03:06:15 2004
@@ -130,7 +130,6 @@
 	Elf32_auxv_t auxvt[AT_EGID + 1];
 	unsigned char *malloc_buffer, *mmap_zero;
 	Elf32_Dyn *dpnt;
-	struct r_debug *debug_addr = NULL;
 	size_t pagesize;
 	int indx;
 #if defined(__i386__)
@@ -299,12 +298,6 @@
 	tpnt = LD_MALLOC(sizeof(struct elf_resolve));
 	_dl_memset(tpnt, 0, sizeof(struct elf_resolve));
 
-	/*
-	 * This is used by gdb to locate the chain of shared libraries that are currently loaded.
-	 */
-	debug_addr = LD_MALLOC(sizeof(struct r_debug));
-	_dl_memset(debug_addr, 0, sizeof(struct r_debug));
-
 	/* OK, that was easy.  Next scan the DYNAMIC section of the image.
 	   We are only doing ourself right now - we will have to do the rest later */
 #ifdef __SUPPORT_LD_DEBUG_EARLY__
@@ -433,7 +426,7 @@
 	   fixed up by now.  Still no function calls outside of this library ,
 	   since the dynamic resolver is not yet ready. */
 	_dl_get_ready_to_run(tpnt, load_addr, auxvt, envp,
-			     debug_addr, malloc_buffer, mmap_zero, argv);
+			     malloc_buffer, mmap_zero, argv);
 
 
 	/* Transfer control to the application.  */
Index: uClibc/ldso/ldso/ldso.c
diff -u uClibc/ldso/ldso/ldso.c:1.107 uClibc/ldso/ldso/ldso.c:1.108
--- uClibc/ldso/ldso/ldso.c:1.107	Thu Aug 19 02:53:29 2004
+++ uClibc/ldso/ldso/ldso.c	Thu Aug 19 03:06:15 2004
@@ -85,7 +85,7 @@
 #endif
 
 void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr,
-		Elf32_auxv_t auxvt[AT_EGID + 1], char **envp, struct r_debug *debug_addr,
+		Elf32_auxv_t auxvt[AT_EGID + 1], char **envp,
 		unsigned char *malloc_buffer, unsigned char *mmap_zero, char **argv)
 {
 	ElfW(Phdr) *ppnt;
@@ -97,6 +97,7 @@
 	struct elf_resolve *tpnt1;
 	struct elf_resolve app_tpnt_tmp;
 	struct elf_resolve *app_tpnt = &app_tpnt_tmp;
+	struct r_debug *debug_addr;
 	unsigned long brk_addr, *lpnt;
 	int (*_dl_atexit) (void *);
 #if defined (__SUPPORT_LD_DEBUG__)
@@ -173,7 +174,11 @@
 		}
 #endif
 	}
-
+	/*
+	 * This is used by gdb to locate the chain of shared libraries that are currently loaded.
+	 */
+	debug_addr = _dl_malloc(sizeof(struct r_debug));
+	_dl_memset(debug_addr, 0, sizeof(struct r_debug));
 
 	ppnt = (ElfW(Phdr) *) auxvt[AT_PHDR].a_un.a_ptr;
 	for (i = 0; i < auxvt[AT_PHNUM].a_un.a_val; i++, ppnt++) {



More information about the uClibc-cvs mailing list