diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2009-12-22 08:34:07 -0800 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-12-22 08:34:07 -0800 |
commit | caf512dec254923b5eded0b3f36f5db66756066d (patch) | |
tree | 5fc30b8d6b95560baf8944743ee7e2e76587073c /sysdeps/s390 | |
parent | 4286fa41edc33da4cfbc56c2c5902920a52e3184 (diff) | |
download | glibc-caf512dec254923b5eded0b3f36f5db66756066d.zip glibc-caf512dec254923b5eded0b3f36f5db66756066d.tar.gz glibc-caf512dec254923b5eded0b3f36f5db66756066d.tar.bz2 |
Implement handling of the needed S390 relocations.
Diffstat (limited to 'sysdeps/s390')
-rw-r--r-- | sysdeps/s390/s390-32/dl-machine.h | 5 | ||||
-rw-r--r-- | sysdeps/s390/s390-64/dl-machine.h | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/sysdeps/s390/s390-32/dl-machine.h b/sysdeps/s390/s390-32/dl-machine.h index 64bf342..251a5f6 100644 --- a/sysdeps/s390/s390-32/dl-machine.h +++ b/sysdeps/s390/s390-32/dl-machine.h @@ -389,10 +389,13 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc, *reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr; break; case R_390_PC16DBL: - case R_390_PLT16DBL: *(unsigned short *) reloc_addr = (unsigned short) ((short) (value + reloc->r_addend - (Elf32_Addr) reloc_addr) >> 1); break; + case R_390_PC32DBL: + *(unsigned int *) reloc_addr = (unsigned int) + ((int) (value + reloc->r_addend - (Elf32_Addr) reloc_addr) >> 1); + break; case R_390_PC16: *(unsigned short *) reloc_addr = value + reloc->r_addend - (Elf32_Addr) reloc_addr; diff --git a/sysdeps/s390/s390-64/dl-machine.h b/sysdeps/s390/s390-64/dl-machine.h index fa893be..c4df274 100644 --- a/sysdeps/s390/s390-64/dl-machine.h +++ b/sysdeps/s390/s390-64/dl-machine.h @@ -371,7 +371,6 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, *reloc_addr = value +reloc->r_addend - (Elf64_Addr) reloc_addr; break; case R_390_PC32DBL: - case R_390_PLT32DBL: *(unsigned int *) reloc_addr = (unsigned int) ((int) (value + reloc->r_addend - (Elf64_Addr) reloc_addr) >> 1); break; @@ -380,7 +379,6 @@ elf_machine_rela (struct link_map *map, const Elf64_Rela *reloc, value + reloc->r_addend - (Elf64_Addr) reloc_addr; break; case R_390_PC16DBL: - case R_390_PLT16DBL: *(unsigned short *) reloc_addr = (unsigned short) ((short) (value + reloc->r_addend - (Elf64_Addr) reloc_addr) >> 1); break; |