diff options
-rw-r--r-- | trunk/ChangeLog | 6 | ||||
-rw-r--r-- | trunk/src/arch-s390.c | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/trunk/ChangeLog b/trunk/ChangeLog index 8c16f0d..cf7a444 100644 --- a/trunk/ChangeLog +++ b/trunk/ChangeLog @@ -1,3 +1,9 @@ +2010-01-06 Jakub Jelinek <jakub@redhat.com> + + * src/arch-s390.c (s390_prelink_conflict_rela) <case R_390_PC32DBL>: + Ensure negative addends are sign-extended to 64-bits, instead of + zero-extended. + 2010-01-05 Jakub Jelinek <jakub@redhat.com> * src/arch-s390.c (s390_prelink_rela, s390_apply_rela, diff --git a/trunk/src/arch-s390.c b/trunk/src/arch-s390.c index cf9f84c..829392e 100644 --- a/trunk/src/arch-s390.c +++ b/trunk/src/arch-s390.c @@ -340,8 +340,7 @@ s390_prelink_conflict_rela (DSO *dso, struct prelink_info *info, break; case R_390_PC32DBL: case R_390_PLT32DBL: - ret->r_addend - = (Elf32_Addr) (((Elf32_Sword) (value - rela->r_offset)) >> 1); + ret->r_addend = ((Elf32_Sword) (value - rela->r_offset)) >> 1; break; case R_390_PC16: value -= rela->r_offset; |