about summary refs log tree commit diff
path: root/elf/do-rel.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-09-18 18:32:27 +0000
committerRoland McGrath <roland@gnu.org>2002-09-18 18:32:27 +0000
commit0bc0e4dd09dd45bce4ab349717b3d0781021c5f7 (patch)
tree6b2aee6d70f1935444024f87b5dc1bd329eab075 /elf/do-rel.h
parent62aecc63568ade4684f11cadd98e65d48b4025a8 (diff)
downloadglibc-0bc0e4dd09dd45bce4ab349717b3d0781021c5f7.tar.gz
glibc-0bc0e4dd09dd45bce4ab349717b3d0781021c5f7.tar.xz
glibc-0bc0e4dd09dd45bce4ab349717b3d0781021c5f7.zip
* locale/lc-ctype.c (_nl_postload_ctype): Add compat_symbol decls for
	the __ctype_* compat symbols, so the relocs generated bind to the
	right versioned global symbol in the shared object.

	* elf/do-rel.h (elf_dynamic_do_rel): Mask off 0x8000 bit (hidden flag)
	from the value taken from the DT_VERSYM table.
	* elf/dl-runtime.c (fixup, profile_fixup): Likewise.
	* sysdeps/mips/dl-machine.h (__dl_runtime_resolve): Likewise.
	(RESOLVE_GOTSYM): Likewise.
Diffstat (limited to 'elf/do-rel.h')
-rw-r--r--elf/do-rel.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/elf/do-rel.h b/elf/do-rel.h
index bad102549b..c693b6f1e8 100644
--- a/elf/do-rel.h
+++ b/elf/do-rel.h
@@ -111,7 +111,7 @@ elf_dynamic_do_rel (struct link_map *map,
 
 	  for (; r < end; ++r)
 	    {
-	      ElfW(Half) ndx = version[ELFW(R_SYM) (r->r_info)];
+	      ElfW(Half) ndx = version[ELFW(R_SYM) (r->r_info)] & 0x7fff;
 	      elf_machine_rel (map, r, &symtab[ELFW(R_SYM) (r->r_info)],
 			       &map->l_versions[ndx],
 			       (void *) (l_addr + r->r_offset));