Implement handling of the needed S390 relocations.
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 22 Dec 2009 16:34:07 +0000 (08:34 -0800)
committerUlrich Drepper <drepper@redhat.com>
Tue, 22 Dec 2009 16:34:07 +0000 (08:34 -0800)
ChangeLog
sysdeps/s390/s390-32/dl-machine.h
sysdeps/s390/s390-64/dl-machine.h

index 02cae68..07a707b 100644 (file)
--- 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.
index 64bf342..251a5f6 100644 (file)
@@ -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;
index fa893be..c4df274 100644 (file)
@@ -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;