summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2017-08-02 15:18:56 +0930
committerAlan Modra <amodra@gmail.com>2017-08-02 16:36:57 +0930
commit262cdac76d010307e601d1a7da49a0cc1a53be05 (patch)
tree737063cc943d81c74143e1c2081f9bcdd6096013
parenta5be90a4d95b535a67e4e249e733b208d36c1e56 (diff)
downloadbinutils-gdb-262cdac76d010307e601d1a7da49a0cc1a53be05.tar.gz
Teach readelf about IA64 MSB relocs.
* readelf.c (is_32bit_abs_reloc): Add R_IA64_SECREL32MSB and R_IA64_DIR32MSB. (is_64bit_abs_reloc): Add R_IA64_DIR64MSB. (is_64bit_pcrel_reloc): Add R_IA64_PCREL64MSB.
-rw-r--r--binutils/ChangeLog7
-rw-r--r--binutils/readelf.c12
2 files changed, 15 insertions, 4 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 76047319ad8..933139295ae 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,10 @@
+2017-08-02 Alan Modra <amodra@gmail.com>
+
+ * readelf.c (is_32bit_abs_reloc): Add R_IA64_SECREL32MSB and
+ R_IA64_DIR32MSB.
+ (is_64bit_abs_reloc): Add R_IA64_DIR64MSB.
+ (is_64bit_pcrel_reloc): Add R_IA64_PCREL64MSB.
+
2017-08-01 Nick Clifton <nickc@redhat.com>
* po/sv.po: Updated Swedish translation.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 67c44f56333..2b15f0f2cb2 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -12069,8 +12069,10 @@ is_32bit_abs_reloc (unsigned int reloc_type)
case EM_H8_300H:
return reloc_type == 1; /* R_H8_DIR32. */
case EM_IA_64:
- return reloc_type == 0x65 /* R_IA64_SECREL32LSB. */
- || reloc_type == 0x25; /* R_IA64_DIR32LSB. */
+ return (reloc_type == 0x64 /* R_IA64_SECREL32MSB. */
+ || reloc_type == 0x65 /* R_IA64_SECREL32LSB. */
+ || reloc_type == 0x24 /* R_IA64_DIR32MSB. */
+ || reloc_type == 0x25 /* R_IA64_DIR32LSB. */);
case EM_IP2K_OLD:
case EM_IP2K:
return reloc_type == 2; /* R_IP2K_32. */
@@ -12283,7 +12285,8 @@ is_64bit_abs_reloc (unsigned int reloc_type)
case EM_ALPHA:
return reloc_type == 2; /* R_ALPHA_REFQUAD. */
case EM_IA_64:
- return reloc_type == 0x27; /* R_IA64_DIR64LSB. */
+ return (reloc_type == 0x26 /* R_IA64_DIR64MSB. */
+ || reloc_type == 0x27 /* R_IA64_DIR64LSB. */);
case EM_PARISC:
return reloc_type == 80; /* R_PARISC_DIR64. */
case EM_PPC64:
@@ -12323,7 +12326,8 @@ is_64bit_pcrel_reloc (unsigned int reloc_type)
case EM_ALPHA:
return reloc_type == 11; /* R_ALPHA_SREL64. */
case EM_IA_64:
- return reloc_type == 0x4f; /* R_IA64_PCREL64LSB. */
+ return (reloc_type == 0x4e /* R_IA64_PCREL64MSB. */
+ || reloc_type == 0x4f /* R_IA64_PCREL64LSB. */);
case EM_PARISC:
return reloc_type == 72; /* R_PARISC_PCREL64. */
case EM_PPC64: