Browse Source

Add new debug target (disabled by default) so that when debug
is on we now default to resolving symbols permanently..
-Erik

Eric Andersen 23 years ago
parent
commit
4198d8264c

+ 2 - 0
ldso/ldso/Makefile

@@ -36,6 +36,8 @@ XXFLAGS+= -DDL_TRACE
 # Enable this to enable debugging output from ld.so
 #XXFLAGS+= -DDL_DEBUG
 #XXFLAGS+= -DDL_DEBUG_SYMBOLS
+#Enable this to never actually fixup symbols so you can watch each call...
+#XXFLAGS+= -DDL_NEVER_FIXUP_SYMBOLS
 
 XXFLAGS+=-DUCLIBC_TARGET_PREFIX=\"$(TARGET_PREFIX)\" \
 	-DUCLIBC_DEVEL_PREFIX=\"$(DEVEL_PREFIX)\" \

+ 1 - 1
ldso/ldso/arm/elfinterp.c

@@ -95,7 +95,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 			_dl_progname, strtab + symtab[symtab_index].st_name);
 		_dl_exit(1);
 	};
-#ifdef DL_DEBUG_SYMBOLS
+#ifdef DL_NEVER_FIXUP_SYMBOLS
 	if ((unsigned long) got_addr < 0x40000000) {
 		_dl_dprintf(2, "Calling library function: %s\n", 
 			strtab + symtab[symtab_index].st_name);

+ 1 - 1
ldso/ldso/i386/elfinterp.c

@@ -87,7 +87,7 @@ unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
 			_dl_progname, strtab + symtab[symtab_index].st_name);
 		_dl_exit(1);
 	};
-#ifdef DL_DEBUG_SYMBOLS
+#ifdef DL_NEVER_FIXUP_SYMBOLS
 	if ((unsigned long) got_addr < 0x40000000) {
 		_dl_dprintf(2, "Calling library function: %s\n", 
 			strtab + symtab[symtab_index].st_name);

+ 9 - 6
ldso/ldso/m68k/elfinterp.c

@@ -97,13 +97,16 @@ unsigned int _dl_linux_resolver (int dummy1, int dummy2,
 		    _dl_progname, strtab + symtab[symtab_index].st_name);
       _dl_exit (1);
     }
-#ifdef DL_DEBUG_SYMBOLS
-  if ((unsigned int) got_addr < 0x40000000)
-    _dl_dprintf (2, "Calling library function: %s\n",
-		  strtab + symtab[symtab_index].st_name);
-  else
+#ifdef DL_NEVER_FIXUP_SYMBOLS
+  if ((unsigned int) got_addr < 0x40000000) {
+      _dl_dprintf (2, "Calling library function: %s\n",
+	      strtab + symtab[symtab_index].st_name);
+  } else {
+      *got_addr = new_addr;
+  }
+#else
+  *got_addr = new_addr;
 #endif
-    *got_addr = new_addr;
   return (unsigned int) new_addr;
 }
 

+ 1 - 1
ldso/ldso/sparc/elfinterp.c

@@ -104,7 +104,7 @@ unsigned int _dl_linux_resolver(unsigned int reloc_entry, unsigned int * plt)
 	       _dl_progname, strtab + symtab[symtab_index].st_name);
     _dl_exit(31);
   };
-#ifdef DL_DEBUG_SYMBOLS
+#ifdef DL_NEVER_FIXUP_SYMBOLS
   if((unsigned int) got_addr < 0x40000000) {
     _dl_dprintf(2, "Calling library function: %s\n",
 	       strtab + symtab[symtab_index].st_name);