summary refs log tree commit diff
path: root/elf/do-rel.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-02 21:35:43 +0000
committerRoland McGrath <roland@gnu.org>1996-06-02 21:35:43 +0000
commit6c03c2cf27b1a12cbf680377e4796b88a20ed9db (patch)
treeb197b18a54a6f15f71e0cd1679f91a25d1d0239f /elf/do-rel.h
parent9004bc202e5ea7b8eabca183f4e6c6abe573f802 (diff)
downloadglibc-6c03c2cf27b1a12cbf680377e4796b88a20ed9db.tar.gz
glibc-6c03c2cf27b1a12cbf680377e4796b88a20ed9db.tar.xz
glibc-6c03c2cf27b1a12cbf680377e4796b88a20ed9db.zip
* elf/dl-lookup.c (_dl_lookup_symbol): Arg NOSELF renamed to NOPLT.
	Reject SHN_UNDEF defns iff NOPLT is nonzero.
	* elf/link.h (_dl_lookup_symbol): Update prototype and comment.
	* elf/dl-runtime.c (fixup): Pass 1 to _dl_lookup_symbol for NOPLT.
	* elf/dlsym.c (dlsym): Pass 0.
	* elf/rtld.c (dl_main): Likewise.
	* elf/dl-reloc.c (_dl_relocate_object: resolve): Second arg R_OFFSET
	replaced with NOPLT flag.  Pass it through to _dl_lookup_symbol.
	* elf/do-rel.h (elf_dynamic_do_rel): Update prototype of RESOLVE arg.
	Pass `elf_machine_pltrel_p (R->r_type)' result as NOPLT flag value.
	* sysdeps/i386/dl-machine.h (elf_machine_pltrel_p): New macro.
	* sysdeps/m68k/dl-machine.h (elf_machine_pltrel_p): Likewise.
	* sysdeps/stub/dl-machine.h (elf_machine_pltrel_p): Likewise.
Diffstat (limited to 'elf/do-rel.h')
-rw-r--r--elf/do-rel.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/elf/do-rel.h b/elf/do-rel.h
index 72e7d01cb4..a265550cae 100644
--- a/elf/do-rel.h
+++ b/elf/do-rel.h
@@ -21,9 +21,9 @@ Cambridge, MA 02139, USA.  */
    `elf_dynamic_do_rel' and `elf_dynamic_do_rela'.  */
 
 #ifdef DO_RELA
-#define elf_dynamic_do_rel	elf_dynamic_do_rela
-#define	Elf32_Rel		Elf32_Rela
-#define elf_machine_rel		elf_machine_rela
+#define elf_dynamic_do_rel		elf_dynamic_do_rela
+#define	Elf32_Rel			Elf32_Rela
+#define elf_machine_rel			elf_machine_rela
 #endif
 
 
@@ -38,7 +38,7 @@ static inline void
 elf_dynamic_do_rel (struct link_map *map,
 		    int reltag, int sztag,
 		    Elf32_Addr (*resolve) (const Elf32_Sym **symbol,
-					   Elf32_Addr r_offset),
+					   int noplt),
 		    int lazy)
 {
   const Elf32_Sym *const symtab
@@ -65,7 +65,8 @@ elf_dynamic_do_rel (struct link_map *map,
 	else
 	  {
 	    if (resolve)
-	      loadbase = (*resolve) (&definer, r->r_offset);
+	      loadbase = (*resolve)
+		(&definer, elf_machine_pltrel_p (ELF32_R_TYPE (r->r_info)));
 	    else
 	      {
 		assert (definer->st_shndx != SHN_UNDEF);