aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorJohn Darrington <john@darrington.wattle.id.au>2018-10-03 12:26:42 +0200
committerJohn Darrington <john@darrington.wattle.id.au>2018-10-23 16:09:30 +0200
commit2849d19feb458ade67cdcc6a82f0e7b1be99b46b (patch)
treead7171222c73e3906dd555edd8c1568831928810 /binutils
parent405b61965ff7608840cfda36083c1be1f926ccdb (diff)
downloadbinutils-2849d19feb458ade67cdcc6a82f0e7b1be99b46b.zip
binutils-2849d19feb458ade67cdcc6a82f0e7b1be99b46b.tar.gz
binutils-2849d19feb458ade67cdcc6a82f0e7b1be99b46b.tar.bz2
S12Z: New 32 bit Reloc.
Third party tools produce 32 bit relocs at index 6 with strange properties. This change moves the existing 32 bit reloc (R_S12Z_EXT32) to index 7 and introduces a new one (R_S12Z_CW32) at index 6 to try to support code generated by these tools. * bfd/elf32-s12z.c (elf_s12z_howto_table) [R_S12Z_CW32]: New member. * binutils/readelf.c (is_32bit_abs_reloc): Reloc type 7 is also 32 bit. * include/elf/s12z.h (elf_s12z_reloc_tpe) [RELOC_NUMBER (R_S12Z_CW32)]: New enum.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/readelf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/binutils/readelf.c b/binutils/readelf.c
index fff50c6..d8d0d6e 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -12386,7 +12386,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type)
case EM_68HC12:
return reloc_type == 6; /* R_M68HC11_32. */
case EM_S12Z:
- return reloc_type == 6; /* R_S12Z_EXT32. */
+ return reloc_type == 7 || /* R_S12Z_EXT32 */
+ reloc_type == 6; /* R_S12Z_CW32. */
case EM_MCORE:
return reloc_type == 1; /* R_MCORE_ADDR32. */
case EM_CYGNUS_MEP: