about summary refs log tree commit diff
path: root/elf/do-rel.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-06-12 09:00:13 +0000
committerRoland McGrath <roland@gnu.org>1995-06-12 09:00:13 +0000
commitf2b0f935d7c8de544408181350c13d8a4db690ca (patch)
tree658304e442dad6ff4c31f1d1d6a3293b7509f20d /elf/do-rel.h
parent5bf62f2d3a8af353fac661b224fc1604d4de51ea (diff)
downloadglibc-f2b0f935d7c8de544408181350c13d8a4db690ca.tar.gz
glibc-f2b0f935d7c8de544408181350c13d8a4db690ca.tar.xz
glibc-f2b0f935d7c8de544408181350c13d8a4db690ca.zip
* elf/dl-load.c (_dl_map_object): Add MAP_INHERIT flag in mmap
 	from zero fill.

	* elf/dl-lookup.c (_dl_lookup_symbol): Take new flag arg NOSELF;
 	if nonzero, don't let *REF satisfy the reference itself.
	* elf/link.h (_dl_lookup_symbol): Add new arg NOSELF in decl.
	* sysdeps/i386/dl-runtime.c (_dl_runtime_resolve): Pass new arg to
 	_dl_lookup_symbol.
	* elf/do-rel.h (elf_dynamic_do_rel): Pass new second arg of
 	R->r_offset to RESOLVE callback.
	* elf/dl-reloc.c (_dl_relocate_object: resolve): Don't let *REF
 	satisfy the reference itself if its value equals the reloc's
 	offset.

	* elf/rtld.c (dl_main): Write a newline in fatal msg.

	* Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS.so).
Diffstat (limited to 'elf/do-rel.h')
-rw-r--r--elf/do-rel.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/elf/do-rel.h b/elf/do-rel.h
index acef25d3f8..9657bc2297 100644
--- a/elf/do-rel.h
+++ b/elf/do-rel.h
@@ -37,7 +37,8 @@ Cambridge, MA 02139, USA.  */
 static inline void
 elf_dynamic_do_rel (struct link_map *map,
 		    int reltag, int sztag, 
-		    Elf32_Addr (*resolve) (const Elf32_Sym **),
+		    Elf32_Addr (*resolve) (const Elf32_Sym **symbol,
+					   Elf32_Addr r_offset),
 		    int lazy)
 {
   const Elf32_Sym *const symtab
@@ -61,7 +62,7 @@ elf_dynamic_do_rel (struct link_map *map,
 	else
 	  {
 	    if (resolve)
-	      loadbase = (*resolve) (&definer);
+	      loadbase = (*resolve) (&definer, r->r_offset);
 	    else
 	      {
 		assert (definer->st_shndx != SHN_UNDEF);