From 262cdac76d010307e601d1a7da49a0cc1a53be05 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Wed, 2 Aug 2017 15:18:56 +0930 Subject: [PATCH] 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. --- binutils/ChangeLog | 7 +++++++ binutils/readelf.c | 12 ++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 7604731..9331392 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2017-08-02 Alan Modra + + * 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 * po/sv.po: Updated Swedish translation. diff --git a/binutils/readelf.c b/binutils/readelf.c index 67c44f5..2b15f0f 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: -- 2.7.4