From caf512dec254923b5eded0b3f36f5db66756066d Mon Sep 17 00:00:00 2001 From: Martin Schwidefsky Date: Tue, 22 Dec 2009 08:34:07 -0800 Subject: [PATCH] Implement handling of the needed S390 relocations. --- ChangeLog | 7 +++++++ sysdeps/s390/s390-32/dl-machine.h | 5 ++++- sysdeps/s390/s390-64/dl-machine.h | 2 -- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 02cae68..07a707b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-12-17 Martin Schwidefsky + + * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Handle + R_390_PC32DBL. Remove unneeded R_390_PLT16DBL. + * sysdeps/s390/s390-32/dl-machine.h (elf_machine_rela): Remove + unneeded R_390_PLT16DBL and R_390_PLT32DBL. + 2009-12-21 Ulrich Drepper * sysdeps/unix/sysv/linux/futimens.c: Handle AT_FDCWD. 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; -- 2.7.4