about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-04-14 00:15:54 +0000
committerAndreas Jaeger <aj@suse.de>2000-04-14 00:15:54 +0000
commit0fc9546475a04def217688022ac9da264d71b9c7 (patch)
tree380bc02f392d9ff4c00de84a17df63a3d3b44f3c
parent490a9ab75c787cf06cd43a1d4c5dfe74ff4a7907 (diff)
downloadglibc-0fc9546475a04def217688022ac9da264d71b9c7.tar.gz
glibc-0fc9546475a04def217688022ac9da264d71b9c7.tar.xz
glibc-0fc9546475a04def217688022ac9da264d71b9c7.zip
Update.
	(elf_machine_got_rel): Only add runtime display if needed.
-rw-r--r--ChangeLog1
-rw-r--r--sysdeps/mips/dl-machine.h13
2 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index c814078feb..df0650ecbb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,7 @@
 
 	* sysdeps/mips/dl-machine.h (__dl_runtime_resolve): Handle symbol
 	versioning.
+	(elf_machine_got_rel): Only add runtime display if needed.
 
 2000-04-13  Andreas Jaeger  <aj@suse.de>
 
diff --git a/sysdeps/mips/dl-machine.h b/sysdeps/mips/dl-machine.h
index fecd3e17f9..960b6b78d1 100644
--- a/sysdeps/mips/dl-machine.h
+++ b/sysdeps/mips/dl-machine.h
@@ -504,10 +504,15 @@ elf_machine_got_rel (struct link_map *map, int lazy)
      generated by gnu ld. Skip these reserved entries from relocation.  */
   i = (got[1] & ELF_MIPS_GNU_GOT1_MASK)? 2: 1;
   n = map->l_info[DT_MIPS (LOCAL_GOTNO)]->d_un.d_val;
-  /* Add the run-time display to all local got entries. */
-  while (i < n)
-    got[i++] += map->l_addr;
-
+  /* Add the run-time display to all local got entries if needed. */
+  if (map->l_addr != 0)
+    {
+      while (i < n)
+	got[i++] += map->l_addr;
+    }
+  else
+    i = n;
+  
   /* Handle global got entries. */
   got += n;
   sym = (void *) D_PTR (map, l_info[DT_SYMTAB]);