aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2009-12-22 08:34:07 -0800
committerUlrich Drepper <drepper@redhat.com>2009-12-22 08:34:07 -0800
commitcaf512dec254923b5eded0b3f36f5db66756066d (patch)
tree5fc30b8d6b95560baf8944743ee7e2e76587073c
parent4286fa41edc33da4cfbc56c2c5902920a52e3184 (diff)
downloadglibc-caf512dec254923b5eded0b3f36f5db66756066d.tar
glibc-caf512dec254923b5eded0b3f36f5db66756066d.tar.gz
glibc-caf512dec254923b5eded0b3f36f5db66756066d.tar.bz2
glibc-caf512dec254923b5eded0b3f36f5db66756066d.zip
Implement handling of the needed S390 relocations.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/s390/s390-32/dl-machine.h5
-rw-r--r--sysdeps/s390/s390-64/dl-machine.h2
3 files changed, 11 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 02cae689d5..07a707b051 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2009-12-17 Martin Schwidefsky <schwidefsky@de.ibm.com>
+
+ * 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 <drepper@redhat.com>
* 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 64bf3423b6..251a5f6922 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 fa893befdf..c4df274cdb 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;