Reinstate readelf decoding of i860, i960 and i370 relocs

include/
	* elf/i370.h: Revert removal.
	* elf/i860.h: Likewise.
	* elf/i960.h: Likewise.
binutils
	* readelf.c: Revert 2018-04-16 and 2018-04-11 changes.
This commit is contained in:
Alan Modra 2018-04-17 09:00:57 +09:30
parent 0d6deb358d
commit f954747f10
6 changed files with 197 additions and 0 deletions

View file

@ -108,6 +108,9 @@
#include "elf/h8.h"
#include "elf/hppa.h"
#include "elf/i386.h"
#include "elf/i370.h"
#include "elf/i860.h"
#include "elf/i960.h"
#include "elf/ia64.h"
#include "elf/ip2k.h"
#include "elf/lm32.h"
@ -762,6 +765,7 @@ guess_is_rela (unsigned int e_machine)
/* Targets that use REL relocations. */
case EM_386:
case EM_IAMCU:
case EM_960:
case EM_ARM:
case EM_D10V:
case EM_CYGNUS_D10V:
@ -775,6 +779,7 @@ guess_is_rela (unsigned int e_machine)
/* Targets that use RELA relocations. */
case EM_68K:
case EM_860:
case EM_AARCH64:
case EM_ADAPTEVA_EPIPHANY:
case EM_ALPHA:
@ -1270,6 +1275,10 @@ dump_relocations (Filedata * filedata,
rtype = elf_m68k_reloc_type (type);
break;
case EM_960:
rtype = elf_i960_reloc_type (type);
break;
case EM_AVR:
case EM_AVR_OLD:
rtype = elf_avr_reloc_type (type);
@ -1419,12 +1428,20 @@ dump_relocations (Filedata * filedata,
rtype = elf_cris_reloc_type (type);
break;
case EM_860:
rtype = elf_i860_reloc_type (type);
break;
case EM_X86_64:
case EM_L1OM:
case EM_K1OM:
rtype = elf_x86_64_reloc_type (type);
break;
case EM_S370:
rtype = i370_reloc_type (type);
break;
case EM_S390_OLD:
case EM_S390:
rtype = elf_s390_reloc_type (type);
@ -12178,6 +12195,10 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
return reloc_type == 1; /* R_386_32. */
case EM_68K:
return reloc_type == 1; /* R_68K_32. */
case EM_860:
return reloc_type == 1; /* R_860_32. */
case EM_960:
return reloc_type == 2; /* R_960_32. */
case EM_AARCH64:
return (reloc_type == 258
|| reloc_type == 1); /* R_AARCH64_ABS32 || R_AARCH64_P32_ABS32 */
@ -12293,6 +12314,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
return reloc_type == 1; /* R_RL78_DIR32. */
case EM_RX:
return reloc_type == 1; /* R_RX_DIR32. */
case EM_S370:
return reloc_type == 1; /* R_I370_ADDR31. */
case EM_S390_OLD:
case EM_S390:
return reloc_type == 4; /* R_S390_32. */