about summary refs log tree commit diff
path: root/sysdeps/mips
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-10-24 07:01:37 +0000
committerAndreas Jaeger <aj@suse.de>2000-10-24 07:01:37 +0000
commit391713a434842f9b62570eaf03008848746e050f (patch)
tree188d01b6717ee4b1db51e4dc0b45259d0ea054cf /sysdeps/mips
parenta881e0a074e448f282e44b1d172b46199697755b (diff)
downloadglibc-391713a434842f9b62570eaf03008848746e050f.tar.gz
glibc-391713a434842f9b62570eaf03008848746e050f.tar.xz
glibc-391713a434842f9b62570eaf03008848746e050f.zip
Partly revert patch from 2000-10-18.
Diffstat (limited to 'sysdeps/mips')
-rw-r--r--sysdeps/mips/dl-machine.h15
1 files changed, 3 insertions, 12 deletions
diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
index 8051dc670c..7c27de04b6 100644
--- a/sysdeps/mips/dl-machine.h
+++ b/sysdeps/mips/dl-machine.h
@@ -138,10 +138,6 @@ elf_machine_load_address (void)
 /* The MSB of got[1] of a gnu object is set to identify gnu objects.  */
 #define ELF_MIPS_GNU_GOT1_MASK	0x80000000
 
-/* GNU Binutils upto 2.10 produce a wrong relocations.  Bit 30 of
-   got[1] marks good objects.  */
-#define ELF_MIPS_GNU_GOT1_OK	0x00000001
-
 /* We can't rely on elf_machine_got_rel because _dl_object_relocation_scope
    fiddles with global data.  */
 #define ELF_MACHINE_BEFORE_RTLD_RELOC(dynamic_info)			\
@@ -153,10 +149,6 @@ do {									\
 									\
   got = (ElfW(Addr) *) D_PTR (map, l_info[DT_PLTGOT]);			\
 									\
-  if ((got[1] & ELF_MIPS_GNU_GOT1_MASK) != 0)				\
-    got[1] = (ElfW(Addr)) ELF_MIPS_GNU_GOT1_MASK			\
-              | (got[1] & ELF_MIPS_GNU_GOT1_OK);			\
-									\
   if (__builtin_expect (map->l_addr == 0, 1))				\
     goto done;								\
 									\
@@ -219,8 +211,8 @@ elf_machine_runtime_link_map (ElfW(Addr) gpreg, ElfW(Addr) stub_pc)
 
       if ((g1 & ELF_MIPS_GNU_GOT1_MASK) != 0)
 	{
-	  struct link_map *l = (struct link_map *)
-		(g1 & ~(ELF_MIPS_GNU_GOT1_MASK|ELF_MIPS_GNU_GOT1_OK));
+	  struct link_map *l =
+	    (struct link_map *) (g1 & ~ELF_MIPS_GNU_GOT1_MASK);
 	  ElfW(Addr) base, limit;
 	  const ElfW(Phdr) *p = l->l_phdr;
 	  ElfW(Half) this, nent = l->l_phnum;
@@ -670,8 +662,7 @@ elf_machine_runtime_setup (struct link_map *l, int lazy, int profile)
 	 of got[1] of a gnu object is set to identify gnu objects.
 	 Where we can store l for non gnu objects? XXX  */
       if ((got[1] & ELF_MIPS_GNU_GOT1_MASK) != 0)
-	got[1] = (ElfW(Addr)) ((unsigned) l | ELF_MIPS_GNU_GOT1_MASK
-	                       | (got[1] & ELF_MIPS_GNU_GOT1_OK));
+	got[1] = (ElfW(Addr)) ((unsigned) l | ELF_MIPS_GNU_GOT1_MASK);
       else
 	_dl_mips_gnu_objects = 0;
     }