diff options
author | Andreas Jaeger <aj@suse.de> | 2000-04-14 00:15:54 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2000-04-14 00:15:54 +0000 |
commit | 0fc9546475a04def217688022ac9da264d71b9c7 (patch) | |
tree | 380bc02f392d9ff4c00de84a17df63a3d3b44f3c /sysdeps/mips | |
parent | 490a9ab75c787cf06cd43a1d4c5dfe74ff4a7907 (diff) | |
download | glibc-0fc9546475a04def217688022ac9da264d71b9c7.tar glibc-0fc9546475a04def217688022ac9da264d71b9c7.tar.gz glibc-0fc9546475a04def217688022ac9da264d71b9c7.tar.bz2 glibc-0fc9546475a04def217688022ac9da264d71b9c7.zip |
Update.
(elf_machine_got_rel): Only add runtime display if needed.
Diffstat (limited to 'sysdeps/mips')
-rw-r--r-- | sysdeps/mips/dl-machine.h | 13 |
1 files changed, 9 insertions, 4 deletions
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]); |