From b7f28d873c8bb26500e46828d34445cebfab7fd4 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Mon, 23 May 2016 16:38:21 -0700 Subject: [PATCH] Enable R_AARCH64_NONE for 64-bit code. * elfnn-aarch64.c: Unconditionally enable R_AARCH64_NULL and R_AARCH64_NONE. Use HOWTO64 for R_AARCH64_NULL. * relocs.c: Add BFD_RELOC_AARCH64_NULL. * bfd-in2.h: Regenerate. * libbfd.h: Likewise. --- bfd/ChangeLog | 8 ++++++++ bfd/bfd-in2.h | 3 +++ bfd/elfnn-aarch64.c | 6 ++---- bfd/libbfd.h | 1 + bfd/reloc.c | 4 ++++ 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8af8bda171..83d0bed5e4 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,11 @@ +2016-05-23 Jim Wilson + + * elfnn-aarch64.c: Unconditionally enable R_AARCH64_NULL and + R_AARCH64_NONE. Use HOWTO64 for R_AARCH64_NULL. + * relocs.c: Add BFD_RELOC_AARCH64_NULL. + * bfd-in2.h: Regenerate. + * libbfd.h: Likewise. + 2016-05-23 Kuba Sejdak * config.bfd: Add entry for arm-phoenix. diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index f900da650c..7292492b45 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -5720,6 +5720,9 @@ important as several tables in the AArch64 bfd backend are indexed by these enumerators; make sure they are all synced. */ BFD_RELOC_AARCH64_RELOC_START, +/* Deprecated AArch64 null relocation code. */ + BFD_RELOC_AARCH64_NULL, + /* AArch64 null relocation code. */ BFD_RELOC_AARCH64_NONE, diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index fcce22f768..d30983aa88 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -339,8 +339,8 @@ static reloc_howto_type elfNN_aarch64_howto_table[] = /* Basic data relocations. */ -#if ARCH_SIZE == 64 - HOWTO (R_AARCH64_NULL, /* type */ + /* Deprecated, but retained for backwards compatibility. */ + HOWTO64 (R_AARCH64_NULL, /* type */ 0, /* rightshift */ 3, /* size (0 = byte, 1 = short, 2 = long) */ 0, /* bitsize */ @@ -353,7 +353,6 @@ static reloc_howto_type elfNN_aarch64_howto_table[] = 0, /* src_mask */ 0, /* dst_mask */ FALSE), /* pcrel_offset */ -#else HOWTO (R_AARCH64_NONE, /* type */ 0, /* rightshift */ 3, /* size (0 = byte, 1 = short, 2 = long) */ @@ -367,7 +366,6 @@ static reloc_howto_type elfNN_aarch64_howto_table[] = 0, /* src_mask */ 0, /* dst_mask */ FALSE), /* pcrel_offset */ -#endif /* .xword: (S+A) */ HOWTO64 (AARCH64_R (ABS64), /* type */ diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 5fe45ecae9..33490c07f9 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -2792,6 +2792,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@", "BFD_RELOC_MICROBLAZE_64_TLSGOTTPREL", "BFD_RELOC_MICROBLAZE_64_TLSTPREL", "BFD_RELOC_AARCH64_RELOC_START", + "BFD_RELOC_AARCH64_NULL", "BFD_RELOC_AARCH64_NONE", "BFD_RELOC_AARCH64_64", "BFD_RELOC_AARCH64_32", diff --git a/bfd/reloc.c b/bfd/reloc.c index c3b713b351..1f210371b7 100644 --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -6775,6 +6775,10 @@ ENUMDOC relocation enumerators. N.B. the order of the enumerators is important as several tables in the AArch64 bfd backend are indexed by these enumerators; make sure they are all synced. +ENUM + BFD_RELOC_AARCH64_NULL +ENUMDOC + Deprecated AArch64 null relocation code. ENUM BFD_RELOC_AARCH64_NONE ENUMDOC -- 2.34.1