Subject: Removing unused arguments in ld.elf_so
To: None <tech-toolchain@netbsd.org>
From: Bang Jun-Young <junyoung@mogua.com>
List: tech-toolchain
Date: 09/05/2002 20:39:06
--RnlQjJ0d97Da+TV1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

Before I jump into real work on improving our ld.elf_so, I'd like to
remove two unused arguments in _rtld_find_symdef(), which are
const Obj_Entry *obj_list and const char *name. They did never exist 
in FreeBSD rtld equivalence, find_symdef().

More specifically: 
 - obj_list is never used in _rtld_find_symdef().
 - name is always passed as NULL to _rtld_find_symdef().

Is it okay to commit it? Patches are attached.

Jun-Young

-- 
Bang Jun-Young <junyoung@mogua.com>

--RnlQjJ0d97Da+TV1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="ld.elf_so.patch"

Index: reloc.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/reloc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 reloc.c
--- reloc.c	2002/09/02 15:33:54	1.1.1.1
+++ reloc.c	2002/09/05 11:14:13
@@ -172,8 +172,7 @@
 #if defined(__i386__)
 	case R_TYPE(GOT32):
 
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -192,8 +191,7 @@
 		 * generate it.
 		 */
 
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -205,8 +203,7 @@
 		break;
 
 	case R_TYPE(32):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -219,8 +216,7 @@
 
 #if defined(__m68k__)
 	case R_TYPE(GOT32):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -234,8 +230,7 @@
 		break;
 
 	case R_TYPE(PC32):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -249,8 +244,7 @@
 		break;
 
 	case R_TYPE(32):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -266,8 +260,7 @@
 
 #if defined(__sh__)
 	case R_TYPE(GOT32):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -286,8 +279,7 @@
 		 * type of relocation, but some versions of Binutils
 		 * generate it.
 		 */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -299,8 +291,7 @@
 		break;
 
 	case R_TYPE(DIR32):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -314,8 +305,7 @@
 
 #if defined(__alpha__)
 	case R_TYPE(REFQUAD):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -350,8 +340,7 @@
 #if defined(__alpha__) || defined(__i386__) || defined(__m68k__) || \
     defined(__sh__)
 	case R_TYPE(GLOB_DAT):
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -437,8 +426,7 @@
 			    (void *)*where, obj->path));
 		} else {
 			/* XXX maybe do something re: bootstrapping? */
-			def = _rtld_find_symdef(_rtld_objlist, rela->r_info,
-			    NULL, obj, &defobj, false);
+			def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 			if (def == NULL)
 				return -1;
 			*where += (Elf_Addr)(defobj->relocbase + def->st_value);
@@ -453,8 +441,7 @@
 #if defined(__powerpc__) || defined(__vax__)
 	case R_TYPE(32):	/* word32 S + A */
 	case R_TYPE(GLOB_DAT):	/* word32 S + A */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -514,8 +501,7 @@
 
 #if defined(__arm__)
 	case R_TYPE(GLOB_DAT):	/* word32 B + S */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 		*where = (Elf_Addr)(defobj->relocbase + def->st_value);
@@ -533,8 +519,7 @@
 		break;
 
 	case R_TYPE(ABS32):	/* word32 B + S + A */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 		*where += (Elf_Addr)defobj->relocbase + def->st_value;
@@ -559,8 +544,7 @@
 		if (addend & 0x00800000)
 			addend |= 0xff000000;
 
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 		tmp = (Elf_Addr)obj->relocbase + def->st_value
@@ -598,9 +582,8 @@
 		 		 * While we're relocating self, _rtld_objlist
 				 * is NULL, so we just pass in self.
 				 */
-				def = _rtld_find_symdef((_rtld_objlist == NULL ?
-				    obj : _rtld_objlist), rela->r_info, 
-				    NULL, obj, &defobj, false);
+				def = _rtld_find_symdef(rela->r_info, obj,
+				    &defobj, false);
 			if (def == NULL)
 				return -1;
 
@@ -638,9 +621,8 @@
 	 		 * While we're relocating self, _rtld_objlist
 			 * is NULL, so we just pass in self.
 			 */
-			def = _rtld_find_symdef((_rtld_objlist == NULL ?
-			    obj : _rtld_objlist), rela->r_info, 
-			    NULL, obj, &defobj, false);
+			def = _rtld_find_symdef(rela->r_info, obj, &defobj,
+			    false);
 			if (def == NULL)
 				return -1;
 
@@ -682,8 +664,7 @@
 #endif /* __hppa__ */
 
 	default:
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, true);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, true);
 		rdbg(dodebug, ("sym = %lu, type = %lu, offset = %p, "
 		    "addend = %p, contents = %p, symbol = %s",
 		    (u_long)ELF_R_SYM(rela->r_info),
@@ -727,8 +708,7 @@
 		assert(ELF_R_TYPE(rela->r_info) == R_TYPE(JUMP_SLOT));
 #endif
 
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, true);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, true);
 		if (def == NULL)
 			return -1;
 
Index: rtld.h
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/rtld.h,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 rtld.h
--- rtld.h	2002/09/02 15:33:54	1.1.1.1
+++ rtld.h	2002/09/05 11:07:39
@@ -283,8 +283,8 @@
 unsigned long _rtld_elf_hash __P((const char *));
 const Elf_Sym *_rtld_symlook_obj __P((const char *, unsigned long,
     const Obj_Entry *, bool));
-const Elf_Sym *_rtld_find_symdef __P((const Obj_Entry *, Elf_Addr,
-    const char *, Obj_Entry *, const Obj_Entry **, bool));
+const Elf_Sym *_rtld_find_symdef __P((Elf_Addr, Obj_Entry *,
+    const Obj_Entry **, bool));
 const Elf_Sym *_rtld_symlook_list(const char *, unsigned long,
   Objlist *, const Obj_Entry **, bool in_plt);
 
Index: symbol.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/symbol.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 symbol.c
--- symbol.c	2002/09/02 15:33:54	1.1.1.1
+++ symbol.c	2002/09/05 11:15:05
@@ -154,10 +154,8 @@
  * defining object via the reference parameter DEFOBJ_OUT.
  */
 const Elf_Sym *
-_rtld_find_symdef(obj_list, r_info, name, refobj, defobj_out, in_plt)
-	const Obj_Entry *obj_list;
+_rtld_find_symdef(r_info, refobj, defobj_out, in_plt)
 	Elf_Addr r_info;
-	const char *name;
 	Obj_Entry *refobj;
 	const Obj_Entry **defobj_out;
 	bool in_plt;
@@ -170,10 +168,10 @@
 	const Obj_Entry *defobj;
 	const Objlist_Entry *elm;
 	unsigned long   hash;
+	const char *name;
 
 	ref = refobj->symtab + symnum;
-	if (name == NULL)
-		name = refobj->strtab + ref->st_name;
+	name = refobj->strtab + ref->st_name;
 
 	hash = _rtld_elf_hash(name);
 	def = NULL;
Index: arch/hppa/hppa_reloc.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 hppa_reloc.c
--- arch/hppa/hppa_reloc.c	2002/09/02 15:33:54	1.1.1.1
+++ arch/hppa/hppa_reloc.c	2002/09/05 10:57:30
@@ -299,9 +299,7 @@
 		 * Look up the symbol.  While we're relocating self,
 		 * _rtld_objlist is NULL, so just pass in self.
 		 */
-		def = _rtld_find_symdef((_rtld_objlist == NULL ?
-				    obj : _rtld_objlist), rela->r_info,
-				    NULL, obj, &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 		func_pc = (Elf_Addr)(defobj->relocbase + def->st_value +
Index: arch/mips/mips_reloc.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/arch/mips/mips_reloc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mips_reloc.c
--- arch/mips/mips_reloc.c	2002/09/02 15:33:55	1.1.1.1
+++ arch/mips/mips_reloc.c	2002/09/05 10:55:49
@@ -64,8 +64,7 @@
 				sym, sym->st_name + obj->strtab, *got));
 
 		info = ELF32_R_INFO(obj->symtabno - i - 1, sym->st_info);
-		def = _rtld_find_symdef(_rtld_objlist, info, NULL, obj, 
-					&defobj, true);
+		def = _rtld_find_symdef(info, obj, &defobj, true);
 
 		if (def == NULL)
 			_rtld_error(
@@ -128,8 +127,7 @@
 	const Elf_Sym *def;
 	const Obj_Entry *defobj;
 
-	def = _rtld_find_symdef(_rtld_objlist, a0 << 8, NULL, obj, &defobj,
-	    true);
+	def = _rtld_find_symdef(a0 << 8, obj, &defobj, true);
 	if (def) {
 		u[obj->local_gotno + a0 - obj->gotsym] = (Elf_Addr)
 		    (def->st_value + defobj->relocbase);
Index: arch/powerpc/ppc_reloc.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 ppc_reloc.c
--- arch/powerpc/ppc_reloc.c	2002/09/02 15:33:55	1.1.1.1
+++ arch/powerpc/ppc_reloc.c	2002/09/05 10:57:55
@@ -92,8 +92,7 @@
 
 		assert(ELF_R_TYPE(rela->r_info) == R_TYPE(JMP_SLOT));
 
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-					&defobj, true);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, true);
 		if (def == NULL)
 			return (-1);
 
Index: arch/sparc/mdreloc.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/arch/sparc/mdreloc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mdreloc.c
--- arch/sparc/mdreloc.c	2002/09/02 15:33:55	1.1.1.1
+++ arch/sparc/mdreloc.c	2002/09/05 10:58:15
@@ -204,8 +204,7 @@
 	if (RELOC_RESOLVE_SYMBOL(type)) {
 
 		/* Find the symbol */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info,
-					NULL, obj, &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return (-1);
 
@@ -282,8 +281,7 @@
 
 	assert(ELF_R_TYPE(rela->r_info) == R_TYPE(JMP_SLOT));
 
-	def = _rtld_find_symdef(_rtld_objlist, rela->r_info,
-				NULL, obj, &defobj, true);
+	def = _rtld_find_symdef(rela->r_info, obj, &defobj, true);
 	if (def == NULL)
 		return (-1);
 
Index: arch/sparc64/mdreloc.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/arch/sparc64/mdreloc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mdreloc.c
--- arch/sparc64/mdreloc.c	2002/09/02 15:33:55	1.1.1.1
+++ arch/sparc64/mdreloc.c	2002/09/05 10:58:53
@@ -231,8 +231,7 @@
 	if (RELOC_RESOLVE_SYMBOL(type)) {
 
 		/* Find the symbol */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info,
-					NULL, obj, &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return (-1);
 
@@ -363,8 +362,7 @@
 
 	assert(ELF_R_TYPE(rela->r_info) == R_TYPE(JMP_SLOT));
 
-	def = _rtld_find_symdef(_rtld_objlist, rela->r_info,
-				NULL, obj, &defobj, true);
+	def = _rtld_find_symdef(rela->r_info, obj, &defobj, true);
 	if (def == NULL)
 		return (-1);
 
Index: arch/x86_64/mdreloc.c
===================================================================
RCS file: /usr/local/cvs/prebind/src/libexec/ld.elf_so/arch/x86_64/mdreloc.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 mdreloc.c
--- arch/x86_64/mdreloc.c	2002/09/02 15:33:55	1.1.1.1
+++ arch/x86_64/mdreloc.c	2002/09/05 11:00:38
@@ -104,8 +104,7 @@
 	case R_TYPE(32):	/* word32 S + A, truncate */
 	case R_TYPE(32S):	/* word32 S + A, signed truncate */
 	case R_TYPE(GOT32):	/* word32 G + A (XXX can we see these?) */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 		tmp32 = (Elf32_Addr)(u_long)(defobj->relocbase + def->st_value +
@@ -118,8 +117,7 @@
 		    (void *)(unsigned long)*where32, defobj->path));
 		break;
 	case R_TYPE(64):	/* word64 S + A */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -133,8 +131,7 @@
 		    (void *)*where64, defobj->path));
 		break;
 	case R_TYPE(PC32):	/* word32 S + A - P */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 		tmp32 = (Elf32_Addr)(u_long)(defobj->relocbase + def->st_value +
@@ -146,8 +143,7 @@
 		    (void *)(unsigned long)*where32, defobj->path));
 		break;
 	case R_TYPE(GLOB_DAT):	/* word64 S */
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, false);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, false);
 		if (def == NULL)
 			return -1;
 
@@ -172,8 +168,7 @@
 		break;
 
 	default:
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, true);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, true);
 		rdbg(dodebug, ("sym = %lu, type = %lu, offset = %p, "
 		    "addend = %p, contents = %p, symbol = %s",
 		    (u_long)ELF_R_SYM(rela->r_info),
@@ -206,8 +201,7 @@
 
 		assert(ELF_R_TYPE(rela->r_info) == R_TYPE(JUMP_SLOT));
 
-		def = _rtld_find_symdef(_rtld_objlist, rela->r_info, NULL, obj,
-		    &defobj, true);
+		def = _rtld_find_symdef(rela->r_info, obj, &defobj, true);
 		if (def == NULL)
 			return -1;
 

--RnlQjJ0d97Da+TV1--