summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--trunk/ChangeLog5
-rw-r--r--trunk/src/arch-s390.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/trunk/ChangeLog b/trunk/ChangeLog
index 10de6f3..c24ba7b 100644
--- a/trunk/ChangeLog
+++ b/trunk/ChangeLog
@@ -1,3 +1,8 @@
+2013-10-05 Jakub Jelinek <jakub@redhat.com>
+
+ * src/arch-s390.c (s390_prelink_conflict_rela): For R_390_IRELATIVE,
+ always use that relocation type in the conflict section.
+
2013-10-01 Jakub Jelinek <jakub@redhat.com>
* testsuite/ifunc.h (IFUNC_ASM): Add s390x and s390 version.
diff --git a/trunk/src/arch-s390.c b/trunk/src/arch-s390.c
index cd540cf..83f396c 100644
--- a/trunk/src/arch-s390.c
+++ b/trunk/src/arch-s390.c
@@ -351,11 +351,14 @@ s390_prelink_conflict_rela (DSO *dso, struct prelink_info *info,
ret->r_info = GELF_R_INFO (0, R_390_IRELATIVE);
break;
case R_390_32:
- case R_390_IRELATIVE:
ret->r_addend = (Elf32_Sword) value;
if (conflict != NULL && conflict->ifunc)
ret->r_info = GELF_R_INFO (0, R_390_IRELATIVE);
break;
+ case R_390_IRELATIVE:
+ ret->r_addend = (Elf32_Sword) value;
+ ret->r_info = GELF_R_INFO (0, R_390_IRELATIVE);
+ break;
case R_390_PC32:
ret->r_addend = (Elf32_Sword) (value - rela->r_offset);
break;