[binutils-gdb] bfd/ELF: fold BFD_RELOC_<arch>_GOTOFF*

Jan Beulich jbeulich@sourceware.org
Thu Apr 9 06:40:43 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=705b90feb82c451fe9ce47dd238862c1259a6bc6

commit 705b90feb82c451fe9ce47dd238862c1259a6bc6
Author: Jan Beulich <jbeulich@suse.com>
Date:   Thu Apr 9 08:36:19 2026 +0200

    bfd/ELF: fold BFD_RELOC_<arch>_GOTOFF*
    
    For many of the cases there's no need to have separate relocs per arch;
    just like for other more or less generic ones a single one (per purpose;
    a 64-bit generic one is being introduced) will do. Arm64, C-Sky, and
    KVX - sadly - continue to be exceptions.

Diff:
---
 bfd/bfd-in2.h         | 22 +---------------------
 bfd/elf32-arc.c       |  1 +
 bfd/elf32-arm.c       |  2 +-
 bfd/elf32-bfin.c      |  4 ++--
 bfd/elf32-frv.c       |  4 ++--
 bfd/elf32-i386.c      |  4 ++--
 bfd/elf32-lm32.c      |  4 ++--
 bfd/elf32-m32r.c      |  6 +++---
 bfd/elf32-metag.c     |  6 +++---
 bfd/elf32-v850.c      |  4 ++--
 bfd/elf64-s390.c      |  2 +-
 bfd/elf64-x86-64.c    |  2 +-
 bfd/libbfd.h          | 20 +-------------------
 bfd/reloc.c           | 42 ++----------------------------------------
 gas/config/tc-arc.c   |  4 ++--
 gas/config/tc-arm.c   |  8 ++++----
 gas/config/tc-frv.c   |  8 ++++----
 gas/config/tc-i386.c  | 24 ++++++++++++------------
 gas/config/tc-lm32.c  |  4 ++--
 gas/config/tc-m32r.c  |  6 +++---
 gas/config/tc-metag.c | 14 +++++++-------
 gas/config/tc-s390.c  |  8 ++++----
 opcodes/frv-asm.c     |  6 +++---
 opcodes/lm32-asm.c    |  4 ++--
 24 files changed, 67 insertions(+), 142 deletions(-)

diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index e18e36b7591..7313dd12370 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3359,6 +3359,7 @@ enum bfd_reloc_code_real
   BFD_RELOC_32_GOT_PCREL,
   BFD_RELOC_16_GOT_PCREL,
   BFD_RELOC_8_GOT_PCREL,
+  BFD_RELOC_64_GOTOFF,
   BFD_RELOC_32_GOTOFF,
   BFD_RELOC_16_GOTOFF,
   BFD_RELOC_LO16_GOTOFF,
@@ -3813,8 +3814,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_FRV_FUNCDESC_GOTOFFHI,
   BFD_RELOC_FRV_FUNCDESC_GOTOFFLO,
   BFD_RELOC_FRV_GOTOFF12,
-  BFD_RELOC_FRV_GOTOFFHI,
-  BFD_RELOC_FRV_GOTOFFLO,
   BFD_RELOC_FRV_GETTLSOFF,
   BFD_RELOC_FRV_TLSDESC_VALUE,
   BFD_RELOC_FRV_GOTTLSDESC12,
@@ -3870,7 +3869,6 @@ enum bfd_reloc_code_real
   /* i386/elf relocations.  */
   BFD_RELOC_386_GOT32,
   BFD_RELOC_386_PLT32,
-  BFD_RELOC_386_GOTOFF,
   BFD_RELOC_386_GOTPC,
   BFD_RELOC_386_TLS_TPOFF,
   BFD_RELOC_386_TLS_IE,
@@ -3901,7 +3899,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_X86_64_DTPOFF32,
   BFD_RELOC_X86_64_GOTTPOFF,
   BFD_RELOC_X86_64_TPOFF32,
-  BFD_RELOC_X86_64_GOTOFF64,
   BFD_RELOC_X86_64_GOTPC32,
   BFD_RELOC_X86_64_GOT64,
   BFD_RELOC_X86_64_GOTPCREL64,
@@ -4218,7 +4215,6 @@ enum bfd_reloc_code_real
 
   /* Relocations for setting up GOTs and PLTs for shared libraries.  */
   BFD_RELOC_ARM_GOT32,
-  BFD_RELOC_ARM_GOTOFF,
   BFD_RELOC_ARM_GOTPC,
   BFD_RELOC_ARM_GOT_PREL,
 
@@ -4405,7 +4401,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_ARC_32_PCREL,
   BFD_RELOC_ARC_GOT32,
   BFD_RELOC_ARC_GOTPC32,
-  BFD_RELOC_ARC_GOTOFF,
   BFD_RELOC_ARC_GOTPC,
   BFD_RELOC_ARC_S21W_PCREL_PLT,
   BFD_RELOC_ARC_S25H_PCREL_PLT,
@@ -4470,8 +4465,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI,
   BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO,
   BFD_RELOC_BFIN_GOTOFF17M4,
-  BFD_RELOC_BFIN_GOTOFFHI,
-  BFD_RELOC_BFIN_GOTOFFLO,
 
   /* ADI Blackfin GOT relocation.  */
   BFD_RELOC_BFIN_GOT,
@@ -4644,9 +4637,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_M32R_GOT24,
   BFD_RELOC_M32R_26_PLTREL,
   BFD_RELOC_M32R_GOTOFF,
-  BFD_RELOC_M32R_GOTOFF_HI_ULO,
-  BFD_RELOC_M32R_GOTOFF_HI_SLO,
-  BFD_RELOC_M32R_GOTOFF_LO,
   BFD_RELOC_M32R_GOTPC24,
   BFD_RELOC_M32R_GOT16_HI_ULO,
   BFD_RELOC_M32R_GOT16_HI_SLO,
@@ -4972,8 +4962,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_V850_32_GOT,
   BFD_RELOC_V850_22_PLT_PCREL,
   BFD_RELOC_V850_32_PLT_PCREL,
-  BFD_RELOC_V850_16_GOTOFF,
-  BFD_RELOC_V850_32_GOTOFF,
 
   /* Start code.  */
   BFD_RELOC_V850_CODE,
@@ -5107,8 +5095,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_METAG_LOOG,
   BFD_RELOC_METAG_REL8,
   BFD_RELOC_METAG_REL16,
-  BFD_RELOC_METAG_HI16_GOTOFF,
-  BFD_RELOC_METAG_LO16_GOTOFF,
   BFD_RELOC_METAG_GETSET_GOTOFF,
   BFD_RELOC_METAG_GETSET_GOT,
   BFD_RELOC_METAG_HI16_GOTPC,
@@ -5116,7 +5102,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_METAG_HI16_PLT,
   BFD_RELOC_METAG_LO16_PLT,
   BFD_RELOC_METAG_RELBRANCH_PLT,
-  BFD_RELOC_METAG_GOTOFF,
   BFD_RELOC_METAG_PLT,
   BFD_RELOC_METAG_TLS_GD,
   BFD_RELOC_METAG_TLS_LDM,
@@ -5480,9 +5465,6 @@ enum bfd_reloc_code_real
   /* 32 bit rel. offset to GOT entry.  */
   BFD_RELOC_390_GOTENT,
 
-  /* 64 bit offset to GOT.  */
-  BFD_RELOC_390_GOTOFF64,
-
   /* 12-bit offset to symbol-entry within GOT, with PLT handling.  */
   BFD_RELOC_390_GOTPLT12,
 
@@ -6205,8 +6187,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_LM32_CALL,
   BFD_RELOC_LM32_BRANCH,
   BFD_RELOC_LM32_16_GOT,
-  BFD_RELOC_LM32_GOTOFF_HI16,
-  BFD_RELOC_LM32_GOTOFF_LO16,
 
   /* Difference between two section addreses.  Must be followed by a
      BFD_RELOC_MACH_O_PAIR.  */
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index 7753872e198..8a8de3fde36 100644
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -385,6 +385,7 @@ arc_elf_link_hash_table_create (bfd *abfd)
 #define BFD_RELOC_ARC_32	BFD_RELOC_32
 #define BFD_RELOC_ARC_PC32	BFD_RELOC_32_PCREL
 #define BFD_RELOC_ARC_PLT32	BFD_RELOC_32_PLT_PCREL
+#define BFD_RELOC_ARC_GOTOFF	BFD_RELOC_32_GOTOFF
 #define BFD_RELOC_ARC_COPY	BFD_RELOC_COPY
 #define BFD_RELOC_ARC_GLOB_DAT	BFD_RELOC_GLOB_DAT
 #define BFD_RELOC_ARC_JMP_SLOT	BFD_RELOC_JMP_SLOT
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 84b694319d0..4f677757758 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -2019,7 +2019,7 @@ static const struct elf32_arm_reloc_map elf32_arm_reloc_map[] =
     {BFD_RELOC_GLOB_DAT,	     R_ARM_GLOB_DAT},
     {BFD_RELOC_JMP_SLOT,	     R_ARM_JUMP_SLOT},
     {BFD_RELOC_RELATIVE,	     R_ARM_RELATIVE},
-    {BFD_RELOC_ARM_GOTOFF,	     R_ARM_GOTOFF32},
+    {BFD_RELOC_32_GOTOFF,	     R_ARM_GOTOFF32},
     {BFD_RELOC_ARM_GOTPC,	     R_ARM_GOTPC},
     {BFD_RELOC_ARM_GOT_PREL,	     R_ARM_GOT_PREL},
     {BFD_RELOC_ARM_GOT32,	     R_ARM_GOT32},
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index 2662449c7eb..4dda4ba372e 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -1034,8 +1034,8 @@ static const struct bfin_reloc_map bfin_reloc_map [] =
   { BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI, R_BFIN_FUNCDESC_GOTOFFHI },
   { BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_FUNCDESC_GOTOFFLO },
   { BFD_RELOC_BFIN_GOTOFF17M4,   R_BFIN_GOTOFF17M4 },
-  { BFD_RELOC_BFIN_GOTOFFHI,   R_BFIN_GOTOFFHI },
-  { BFD_RELOC_BFIN_GOTOFFLO,   R_BFIN_GOTOFFLO },
+  { BFD_RELOC_HI16_GOTOFF,		R_BFIN_GOTOFFHI },
+  { BFD_RELOC_LO16_GOTOFF,		R_BFIN_GOTOFFLO },
 
   { BFD_RELOC_VTABLE_INHERIT,		R_BFIN_GNU_VTINHERIT },
   { BFD_RELOC_VTABLE_ENTRY,		R_BFIN_GNU_VTENTRY },
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index 6a0e2fd844d..371956386fc 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -2441,10 +2441,10 @@ frv_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
     case BFD_RELOC_FRV_GOTOFF12:
       return &elf32_frv_howto_table[ (int) R_FRV_GOTOFF12];
 
-    case BFD_RELOC_FRV_GOTOFFHI:
+    case BFD_RELOC_HI16_GOTOFF:
       return &elf32_frv_howto_table[ (int) R_FRV_GOTOFFHI];
 
-    case BFD_RELOC_FRV_GOTOFFLO:
+    case BFD_RELOC_LO16_GOTOFF:
       return &elf32_frv_howto_table[ (int) R_FRV_GOTOFFLO];
 
     case BFD_RELOC_FRV_GETTLSOFF:
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index a7d75c8c8f4..1d65cad6f30 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -233,8 +233,8 @@ elf_i386_reloc_type_lookup (bfd *abfd,
       TRACE ("BFD_RELOC_RELATIVE");
       return &elf_howto_table[R_386_RELATIVE];
 
-    case BFD_RELOC_386_GOTOFF:
-      TRACE ("BFD_RELOC_386_GOTOFF");
+    case BFD_RELOC_32_GOTOFF:
+      TRACE ("BFD_RELOC_32_GOTOFF");
       return &elf_howto_table[R_386_GOTOFF];
 
     case BFD_RELOC_386_GOTPC:
diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c
index adf5a6ff226..7bcf2f5ba60 100644
--- a/bfd/elf32-lm32.c
+++ b/bfd/elf32-lm32.c
@@ -442,8 +442,8 @@ static const struct lm32_reloc_map lm32_reloc_map[] =
   { BFD_RELOC_VTABLE_INHERIT,	R_LM32_GNU_VTINHERIT },
   { BFD_RELOC_VTABLE_ENTRY,	R_LM32_GNU_VTENTRY },
   { BFD_RELOC_LM32_16_GOT,	R_LM32_16_GOT },
-  { BFD_RELOC_LM32_GOTOFF_HI16, R_LM32_GOTOFF_HI16 },
-  { BFD_RELOC_LM32_GOTOFF_LO16, R_LM32_GOTOFF_LO16 },
+  { BFD_RELOC_HI16_GOTOFF,	R_LM32_GOTOFF_HI16 },
+  { BFD_RELOC_LO16_GOTOFF,	R_LM32_GOTOFF_LO16 },
   { BFD_RELOC_COPY,		R_LM32_COPY },
   { BFD_RELOC_GLOB_DAT,		R_LM32_GLOB_DAT },
   { BFD_RELOC_JMP_SLOT,		R_LM32_JMP_SLOT },
diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c
index 495d0a1364b..26edbc0ecfd 100644
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -1271,9 +1271,9 @@ static const struct m32r_reloc_map m32r_reloc_map[] =
   { BFD_RELOC_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_ULO },
   { BFD_RELOC_M32R_GOTPC_HI_SLO, R_M32R_GOTPC_HI_SLO },
   { BFD_RELOC_M32R_GOTPC_LO, R_M32R_GOTPC_LO },
-  { BFD_RELOC_M32R_GOTOFF_HI_ULO, R_M32R_GOTOFF_HI_ULO },
-  { BFD_RELOC_M32R_GOTOFF_HI_SLO, R_M32R_GOTOFF_HI_SLO },
-  { BFD_RELOC_M32R_GOTOFF_LO, R_M32R_GOTOFF_LO },
+  { BFD_RELOC_HI16_GOTOFF, R_M32R_GOTOFF_HI_ULO },
+  { BFD_RELOC_HI16_S_GOTOFF, R_M32R_GOTOFF_HI_SLO },
+  { BFD_RELOC_LO16_GOTOFF, R_M32R_GOTOFF_LO },
 };
 #endif
 
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index d3d9a8e950a..c17797278a7 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -709,8 +709,8 @@ static const struct metag_reloc_map metag_reloc_map [] =
     { BFD_RELOC_VTABLE_ENTRY,	     R_METAG_GNU_VTENTRY },
     { BFD_RELOC_METAG_REL8,	     R_METAG_REL8 },
     { BFD_RELOC_METAG_REL16,	     R_METAG_REL16 },
-    { BFD_RELOC_METAG_HI16_GOTOFF,   R_METAG_HI16_GOTOFF },
-    { BFD_RELOC_METAG_LO16_GOTOFF,   R_METAG_LO16_GOTOFF },
+    { BFD_RELOC_HI16_GOTOFF,	     R_METAG_HI16_GOTOFF },
+    { BFD_RELOC_LO16_GOTOFF,	     R_METAG_LO16_GOTOFF },
     { BFD_RELOC_METAG_GETSET_GOTOFF, R_METAG_GETSET_GOTOFF },
     { BFD_RELOC_METAG_GETSET_GOT,    R_METAG_GETSET_GOT },
     { BFD_RELOC_METAG_HI16_GOTPC,    R_METAG_HI16_GOTPC },
@@ -718,7 +718,7 @@ static const struct metag_reloc_map metag_reloc_map [] =
     { BFD_RELOC_METAG_HI16_PLT,	     R_METAG_HI16_PLT },
     { BFD_RELOC_METAG_LO16_PLT,	     R_METAG_LO16_PLT },
     { BFD_RELOC_METAG_RELBRANCH_PLT, R_METAG_RELBRANCH_PLT },
-    { BFD_RELOC_METAG_GOTOFF,	     R_METAG_GOTOFF },
+    { BFD_RELOC_32_GOTOFF,	     R_METAG_GOTOFF },
     { BFD_RELOC_METAG_PLT,	     R_METAG_PLT },
     { BFD_RELOC_COPY,		     R_METAG_COPY },
     { BFD_RELOC_JMP_SLOT,	     R_METAG_JMP_SLOT },
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 357526f8618..6112eb9a58b 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -1740,8 +1740,8 @@ static const struct v850_elf_reloc_map v850_elf_reloc_map[] =
   { BFD_RELOC_GLOB_DAT,			   R_V850_GLOB_DAT		 },
   { BFD_RELOC_JMP_SLOT,			   R_V850_JMP_SLOT		 },
   { BFD_RELOC_RELATIVE,			   R_V850_RELATIVE		 },
-  { BFD_RELOC_V850_16_GOTOFF,		   R_V850_16_GOTOFF		 },
-  { BFD_RELOC_V850_32_GOTOFF,		   R_V850_32_GOTOFF		 },
+  { BFD_RELOC_16_GOTOFF,		   R_V850_16_GOTOFF		 },
+  { BFD_RELOC_32_GOTOFF,		   R_V850_32_GOTOFF		 },
   { BFD_RELOC_V850_CODE,		   R_V850_CODE			 },
   { BFD_RELOC_V850_DATA,		   R_V850_DATA			 },
 };
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 4730cc2cdb5..4eb9f3d866e 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -263,7 +263,7 @@ elf_s390_reloc_type_lookup (bfd *abfd,
       return &elf_howto_table[(int) R_390_GOTENT];
     case BFD_RELOC_16_GOTOFF:
       return &elf_howto_table[(int) R_390_GOTOFF16];
-    case BFD_RELOC_390_GOTOFF64:
+    case BFD_RELOC_64_GOTOFF:
       return &elf_howto_table[(int) R_390_GOTOFF64];
     case BFD_RELOC_390_GOTPLT12:
       return &elf_howto_table[(int) R_390_GOTPLT12];
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index ea9a21934ea..ae18d9c909f 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -255,7 +255,7 @@ static const struct elf_reloc_map x86_64_reloc_map[] =
   { BFD_RELOC_X86_64_GOTTPOFF,	R_X86_64_GOTTPOFF, },
   { BFD_RELOC_X86_64_TPOFF32,	R_X86_64_TPOFF32, },
   { BFD_RELOC_64_PCREL,		R_X86_64_PC64, },
-  { BFD_RELOC_X86_64_GOTOFF64,	R_X86_64_GOTOFF64, },
+  { BFD_RELOC_64_GOTOFF,	R_X86_64_GOTOFF64, },
   { BFD_RELOC_X86_64_GOTPC32,	R_X86_64_GOTPC32, },
   { BFD_RELOC_X86_64_GOT64,	R_X86_64_GOT64, },
   { BFD_RELOC_X86_64_GOTPCREL64,R_X86_64_GOTPCREL64, },
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 334c8eab93c..a5a7245c5fd 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1117,6 +1117,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_32_GOT_PCREL",
   "BFD_RELOC_16_GOT_PCREL",
   "BFD_RELOC_8_GOT_PCREL",
+  "BFD_RELOC_64_GOTOFF",
   "BFD_RELOC_32_GOTOFF",
   "BFD_RELOC_16_GOTOFF",
   "BFD_RELOC_LO16_GOTOFF",
@@ -1409,8 +1410,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_FRV_FUNCDESC_GOTOFFHI",
   "BFD_RELOC_FRV_FUNCDESC_GOTOFFLO",
   "BFD_RELOC_FRV_GOTOFF12",
-  "BFD_RELOC_FRV_GOTOFFHI",
-  "BFD_RELOC_FRV_GOTOFFLO",
   "BFD_RELOC_FRV_GETTLSOFF",
   "BFD_RELOC_FRV_TLSDESC_VALUE",
   "BFD_RELOC_FRV_GOTTLSDESC12",
@@ -1444,7 +1443,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_MN10300_TLS_TPOFF",
   "BFD_RELOC_386_GOT32",
   "BFD_RELOC_386_PLT32",
-  "BFD_RELOC_386_GOTOFF",
   "BFD_RELOC_386_GOTPC",
   "BFD_RELOC_386_TLS_TPOFF",
   "BFD_RELOC_386_TLS_IE",
@@ -1473,7 +1471,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_X86_64_DTPOFF32",
   "BFD_RELOC_X86_64_GOTTPOFF",
   "BFD_RELOC_X86_64_TPOFF32",
-  "BFD_RELOC_X86_64_GOTOFF64",
   "BFD_RELOC_X86_64_GOTPC32",
   "BFD_RELOC_X86_64_GOT64",
   "BFD_RELOC_X86_64_GOTPCREL64",
@@ -1719,7 +1716,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_ARM_TLS_LDM32_FDPIC",
   "BFD_RELOC_ARM_TLS_IE32_FDPIC",
   "BFD_RELOC_ARM_GOT32",
-  "BFD_RELOC_ARM_GOTOFF",
   "BFD_RELOC_ARM_GOTPC",
   "BFD_RELOC_ARM_GOT_PREL",
   "BFD_RELOC_ARM_TLS_GD32",
@@ -1891,7 +1887,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_ARC_32_PCREL",
   "BFD_RELOC_ARC_GOT32",
   "BFD_RELOC_ARC_GOTPC32",
-  "BFD_RELOC_ARC_GOTOFF",
   "BFD_RELOC_ARC_GOTPC",
   "BFD_RELOC_ARC_S21W_PCREL_PLT",
   "BFD_RELOC_ARC_S25H_PCREL_PLT",
@@ -1932,8 +1927,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI",
   "BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO",
   "BFD_RELOC_BFIN_GOTOFF17M4",
-  "BFD_RELOC_BFIN_GOTOFFHI",
-  "BFD_RELOC_BFIN_GOTOFFLO",
   "BFD_RELOC_BFIN_GOT",
   "BFD_RELOC_BFIN_PLTPC",
   "BFD_ARELOC_BFIN_PUSH",
@@ -1989,9 +1982,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_M32R_GOT24",
   "BFD_RELOC_M32R_26_PLTREL",
   "BFD_RELOC_M32R_GOTOFF",
-  "BFD_RELOC_M32R_GOTOFF_HI_ULO",
-  "BFD_RELOC_M32R_GOTOFF_HI_SLO",
-  "BFD_RELOC_M32R_GOTOFF_LO",
   "BFD_RELOC_M32R_GOTPC24",
   "BFD_RELOC_M32R_GOT16_HI_ULO",
   "BFD_RELOC_M32R_GOT16_HI_SLO",
@@ -2160,8 +2150,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_V850_32_GOT",
   "BFD_RELOC_V850_22_PLT_PCREL",
   "BFD_RELOC_V850_32_PLT_PCREL",
-  "BFD_RELOC_V850_16_GOTOFF",
-  "BFD_RELOC_V850_32_GOTOFF",
   "BFD_RELOC_V850_CODE",
   "BFD_RELOC_V850_DATA",
   "BFD_RELOC_TIC30_LDP",
@@ -2238,8 +2226,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_METAG_LOOG",
   "BFD_RELOC_METAG_REL8",
   "BFD_RELOC_METAG_REL16",
-  "BFD_RELOC_METAG_HI16_GOTOFF",
-  "BFD_RELOC_METAG_LO16_GOTOFF",
   "BFD_RELOC_METAG_GETSET_GOTOFF",
   "BFD_RELOC_METAG_GETSET_GOT",
   "BFD_RELOC_METAG_HI16_GOTPC",
@@ -2247,7 +2233,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_METAG_HI16_PLT",
   "BFD_RELOC_METAG_LO16_PLT",
   "BFD_RELOC_METAG_RELBRANCH_PLT",
-  "BFD_RELOC_METAG_GOTOFF",
   "BFD_RELOC_METAG_PLT",
   "BFD_RELOC_METAG_TLS_GD",
   "BFD_RELOC_METAG_TLS_LDM",
@@ -2445,7 +2430,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_390_GOTPCDBL",
   "BFD_RELOC_390_GOT64",
   "BFD_RELOC_390_GOTENT",
-  "BFD_RELOC_390_GOTOFF64",
   "BFD_RELOC_390_GOTPLT12",
   "BFD_RELOC_390_GOTPLT16",
   "BFD_RELOC_390_GOTPLT32",
@@ -2850,8 +2834,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_LM32_CALL",
   "BFD_RELOC_LM32_BRANCH",
   "BFD_RELOC_LM32_16_GOT",
-  "BFD_RELOC_LM32_GOTOFF_HI16",
-  "BFD_RELOC_LM32_GOTOFF_LO16",
   "BFD_RELOC_MACH_O_SECTDIFF",
   "BFD_RELOC_MACH_O_LOCAL_SECTDIFF",
   "BFD_RELOC_MACH_O_PAIR",
diff --git a/bfd/reloc.c b/bfd/reloc.c
index 4938d46d0c2..ff237b817be 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -1438,6 +1438,8 @@ ENUMX
   BFD_RELOC_16_GOT_PCREL
 ENUMX
   BFD_RELOC_8_GOT_PCREL
+ENUMX
+  BFD_RELOC_64_GOTOFF
 ENUMX
   BFD_RELOC_32_GOTOFF
 ENUMX
@@ -2231,10 +2233,6 @@ ENUMX
   BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
 ENUMX
   BFD_RELOC_FRV_GOTOFF12
-ENUMX
-  BFD_RELOC_FRV_GOTOFFHI
-ENUMX
-  BFD_RELOC_FRV_GOTOFFLO
 ENUMX
   BFD_RELOC_FRV_GETTLSOFF
 ENUMX
@@ -2325,8 +2323,6 @@ ENUM
   BFD_RELOC_386_GOT32
 ENUMX
   BFD_RELOC_386_PLT32
-ENUMX
-  BFD_RELOC_386_GOTOFF
 ENUMX
   BFD_RELOC_386_GOTPC
 ENUMX
@@ -2386,8 +2382,6 @@ ENUMX
   BFD_RELOC_X86_64_GOTTPOFF
 ENUMX
   BFD_RELOC_X86_64_TPOFF32
-ENUMX
-  BFD_RELOC_X86_64_GOTOFF64
 ENUMX
   BFD_RELOC_X86_64_GOTPC32
 ENUMX
@@ -2968,8 +2962,6 @@ ENUMDOC
 
 ENUM
   BFD_RELOC_ARM_GOT32
-ENUMX
-  BFD_RELOC_ARM_GOTOFF
 ENUMX
   BFD_RELOC_ARM_GOTPC
 ENUMX
@@ -3334,8 +3326,6 @@ ENUMX
   BFD_RELOC_ARC_GOT32
 ENUMX
   BFD_RELOC_ARC_GOTPC32
-ENUMX
-  BFD_RELOC_ARC_GOTOFF
 ENUMX
   BFD_RELOC_ARC_GOTPC
 ENUMX
@@ -3441,10 +3431,6 @@ ENUMX
   BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO
 ENUMX
   BFD_RELOC_BFIN_GOTOFF17M4
-ENUMX
-  BFD_RELOC_BFIN_GOTOFFHI
-ENUMX
-  BFD_RELOC_BFIN_GOTOFFLO
 ENUMDOC
   ADI Blackfin FD-PIC relocations.
 ENUM
@@ -3677,12 +3663,6 @@ ENUMX
   BFD_RELOC_M32R_26_PLTREL
 ENUMX
   BFD_RELOC_M32R_GOTOFF
-ENUMX
-  BFD_RELOC_M32R_GOTOFF_HI_ULO
-ENUMX
-  BFD_RELOC_M32R_GOTOFF_HI_SLO
-ENUMX
-  BFD_RELOC_M32R_GOTOFF_LO
 ENUMX
   BFD_RELOC_M32R_GOTPC24
 ENUMX
@@ -4181,10 +4161,6 @@ ENUMX
   BFD_RELOC_V850_22_PLT_PCREL
 ENUMX
   BFD_RELOC_V850_32_PLT_PCREL
-ENUMX
-  BFD_RELOC_V850_16_GOTOFF
-ENUMX
-  BFD_RELOC_V850_32_GOTOFF
 ENUMDOC
   DSO relocations.
 ENUM
@@ -4405,10 +4381,6 @@ ENUMX
   BFD_RELOC_METAG_REL8
 ENUMX
   BFD_RELOC_METAG_REL16
-ENUMX
-  BFD_RELOC_METAG_HI16_GOTOFF
-ENUMX
-  BFD_RELOC_METAG_LO16_GOTOFF
 ENUMX
   BFD_RELOC_METAG_GETSET_GOTOFF
 ENUMX
@@ -4423,8 +4395,6 @@ ENUMX
   BFD_RELOC_METAG_LO16_PLT
 ENUMX
   BFD_RELOC_METAG_RELBRANCH_PLT
-ENUMX
-  BFD_RELOC_METAG_GOTOFF
 ENUMX
   BFD_RELOC_METAG_PLT
 ENUMX
@@ -4992,10 +4962,6 @@ ENUM
   BFD_RELOC_390_GOTENT
 ENUMDOC
   32 bit rel. offset to GOT entry.
-ENUM
-  BFD_RELOC_390_GOTOFF64
-ENUMDOC
-  64 bit offset to GOT.
 ENUM
   BFD_RELOC_390_GOTPLT12
 ENUMDOC
@@ -6144,10 +6110,6 @@ ENUMX
   BFD_RELOC_LM32_BRANCH
 ENUMX
   BFD_RELOC_LM32_16_GOT
-ENUMX
-  BFD_RELOC_LM32_GOTOFF_HI16
-ENUMX
-  BFD_RELOC_LM32_GOTOFF_LO16
 ENUMDOC
   Lattice Mico32 relocations.
 
diff --git a/gas/config/tc-arc.c b/gas/config/tc-arc.c
index 4e08b563298..e86420c41e4 100644
--- a/gas/config/tc-arc.c
+++ b/gas/config/tc-arc.c
@@ -542,7 +542,7 @@ static const struct arc_reloc_op_tag
 }
   arc_reloc_op[] =
 {
-  DEF (gotoff,  BFD_RELOC_ARC_GOTOFF,		1),
+  DEF (gotoff,  BFD_RELOC_32_GOTOFF,		1),
   DEF (gotpc,   BFD_RELOC_ARC_GOTPC32,		0),
   DEF (plt,	BFD_RELOC_32_PLT_PCREL,		0),
   DEF (sda,	DUMMY_RELOC_ARC_ENTRY,		1),
@@ -3101,7 +3101,7 @@ md_apply_fix (fixS *fixP,
       gas_assert (!fixP->fx_subsy);
       /* Fall through.  */
 
-    case BFD_RELOC_ARC_GOTOFF:
+    case BFD_RELOC_32_GOTOFF:
     case BFD_RELOC_ARC_32_ME:
     case BFD_RELOC_32_PCREL:
       md_number_to_chars_midend (fixpos, value, fixP->fx_size);
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index 9a4bf4b544b..1dfd3d4ef8d 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -23894,7 +23894,7 @@ static const struct asm_shift_name shift_names [] =
 static struct reloc_entry reloc_names[] =
 {
   { "got",     BFD_RELOC_ARM_GOT32   },	 { "GOT",     BFD_RELOC_ARM_GOT32   },
-  { "gotoff",  BFD_RELOC_ARM_GOTOFF  },	 { "GOTOFF",  BFD_RELOC_ARM_GOTOFF  },
+  { "gotoff",  BFD_RELOC_32_GOTOFF  },	 { "GOTOFF",  BFD_RELOC_32_GOTOFF  },
   { "plt",     BFD_RELOC_32_PLT_PCREL},	 { "PLT",     BFD_RELOC_32_PLT_PCREL},
   { "target1", BFD_RELOC_ARM_TARGET1 },	 { "TARGET1", BFD_RELOC_ARM_TARGET1 },
   { "target2", BFD_RELOC_ARM_TARGET2 },	 { "TARGET2", BFD_RELOC_ARM_TARGET2 },
@@ -28458,7 +28458,7 @@ md_apply_fix (fixS *	fixP,
       break;
 
     case BFD_RELOC_ARM_GOT32:
-    case BFD_RELOC_ARM_GOTOFF:
+    case BFD_RELOC_32_GOTOFF:
       break;
 
     case BFD_RELOC_ARM_GOT_PREL:
@@ -29413,7 +29413,7 @@ tc_gen_reloc (asection *section, fixS *fixp)
     case BFD_RELOC_ARM_TLS_DESCSEQ:
     case BFD_RELOC_ARM_THM_TLS_DESCSEQ:
     case BFD_RELOC_ARM_GOT32:
-    case BFD_RELOC_ARM_GOTOFF:
+    case BFD_RELOC_32_GOTOFF:
     case BFD_RELOC_ARM_GOT_PREL:
     case BFD_RELOC_32_PLT_PCREL:
     case BFD_RELOC_ARM_TARGET1:
@@ -29746,7 +29746,7 @@ arm_fix_adjustable (fixS * fixP)
   /* Don't allow symbols to be discarded on GOT related relocs.	 */
   if (fixP->fx_r_type == BFD_RELOC_32_PLT_PCREL
       || fixP->fx_r_type == BFD_RELOC_ARM_GOT32
-      || fixP->fx_r_type == BFD_RELOC_ARM_GOTOFF
+      || fixP->fx_r_type == BFD_RELOC_32_GOTOFF
       || fixP->fx_r_type == BFD_RELOC_ARM_TLS_GD32
       || fixP->fx_r_type == BFD_RELOC_ARM_TLS_GD32_FDPIC
       || fixP->fx_r_type == BFD_RELOC_ARM_TLS_LE32
diff --git a/gas/config/tc-frv.c b/gas/config/tc-frv.c
index c7e9c534f7b..c3361dcea70 100644
--- a/gas/config/tc-frv.c
+++ b/gas/config/tc-frv.c
@@ -1399,8 +1399,8 @@ frv_force_relocation (fixS *fix)
     case BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:
     case BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:
     case BFD_RELOC_FRV_GOTOFF12:
-    case BFD_RELOC_FRV_GOTOFFHI:
-    case BFD_RELOC_FRV_GOTOFFLO:
+    case BFD_RELOC_HI16_GOTOFF:
+    case BFD_RELOC_LO16_GOTOFF:
     case BFD_RELOC_FRV_GETTLSOFF:
     case BFD_RELOC_FRV_TLSDESC_VALUE:
     case BFD_RELOC_FRV_GOTTLSDESC12:
@@ -1455,8 +1455,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
       case BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:
       case BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:
       case BFD_RELOC_FRV_GOTOFF12:
-      case BFD_RELOC_FRV_GOTOFFHI:
-      case BFD_RELOC_FRV_GOTOFFLO:
+      case BFD_RELOC_HI16_GOTOFF:
+      case BFD_RELOC_LO16_GOTOFF:
       case BFD_RELOC_FRV_GETTLSOFF:
       case BFD_RELOC_FRV_TLSDESC_VALUE:
       case BFD_RELOC_FRV_GOTTLSDESC12:
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 8d517146cfa..72217cf4f7f 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1403,8 +1403,8 @@ gotrel[] =
     { STRING_COMMA_LEN ("GOTPLT"),   { _dummy_first_bfd_reloc_code_real,
 				       BFD_RELOC_X86_64_GOTPLT64 },
     OPERAND_TYPE_IMM64_DISP64, true },
-    { STRING_COMMA_LEN ("GOTOFF"),   { BFD_RELOC_386_GOTOFF,
-				       BFD_RELOC_X86_64_GOTOFF64 },
+    { STRING_COMMA_LEN ("GOTOFF"),   { BFD_RELOC_32_GOTOFF,
+				       BFD_RELOC_64_GOTOFF },
     OPERAND_TYPE_IMM64_DISP64, true },
     { STRING_COMMA_LEN ("GOTPCREL"), { _dummy_first_bfd_reloc_code_real,
 				       BFD_RELOC_X86_64_GOTPCREL },
@@ -4099,7 +4099,7 @@ tc_i386_fix_adjustable (fixS *fixP)
      for size relocations.  */
   if (fixP->fx_r_type == BFD_RELOC_SIZE32
       || fixP->fx_r_type == BFD_RELOC_SIZE64
-      || fixP->fx_r_type == BFD_RELOC_386_GOTOFF
+      || fixP->fx_r_type == BFD_RELOC_32_GOTOFF
       || fixP->fx_r_type == BFD_RELOC_386_GOT32
       || fixP->fx_r_type == BFD_RELOC_386_GOT32X
       || fixP->fx_r_type == BFD_RELOC_386_TLS_GD
@@ -4129,7 +4129,7 @@ tc_i386_fix_adjustable (fixS *fixP)
       || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_6_GOTTPOFF
       || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF32
       || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF64
-      || fixP->fx_r_type == BFD_RELOC_X86_64_GOTOFF64
+      || fixP->fx_r_type == BFD_RELOC_64_GOTOFF
       || fixP->fx_r_type == BFD_RELOC_X86_64_GOT64
       || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPC32_TLSDESC
       || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC
@@ -15079,9 +15079,9 @@ i386_finalize_displacement (segT exp_seg ATTRIBUTE_UNUSED, expressionS *exp,
   /* We do this to make sure that the section symbol is in
      the symbol table.  We will ultimately change the relocation
      to be relative to the beginning of the section.  */
-  if (i.reloc[this_operand] == BFD_RELOC_386_GOTOFF
+  if (i.reloc[this_operand] == BFD_RELOC_32_GOTOFF
       || i.reloc[this_operand] == BFD_RELOC_X86_64_GOTPCREL
-      || i.reloc[this_operand] == BFD_RELOC_X86_64_GOTOFF64)
+      || i.reloc[this_operand] == BFD_RELOC_64_GOTOFF)
     {
       if (exp->X_op != O_symbol)
 	goto inv_disp;
@@ -15094,7 +15094,7 @@ i386_finalize_displacement (segT exp_seg ATTRIBUTE_UNUSED, expressionS *exp,
       exp->X_op_symbol = GOT_symbol;
       if (i.reloc[this_operand] == BFD_RELOC_X86_64_GOTPCREL)
 	i.reloc[this_operand] = BFD_RELOC_32_PCREL;
-      else if (i.reloc[this_operand] == BFD_RELOC_X86_64_GOTOFF64)
+      else if (i.reloc[this_operand] == BFD_RELOC_64_GOTOFF)
 	i.reloc[this_operand] = BFD_RELOC_64;
       else
 	i.reloc[this_operand] = BFD_RELOC_32;
@@ -18414,9 +18414,9 @@ i386_validate_fix (fixS *fixp)
 	  else
 	    {
 	      if (!object_64bit)
-		fixp->fx_r_type = BFD_RELOC_386_GOTOFF;
+		fixp->fx_r_type = BFD_RELOC_32_GOTOFF;
 	      else
-		fixp->fx_r_type = BFD_RELOC_X86_64_GOTOFF64;
+		fixp->fx_r_type = BFD_RELOC_64_GOTOFF;
 	    }
 	  fixp->fx_subsy = 0;
 	}
@@ -18520,7 +18520,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
     case BFD_RELOC_386_PLT32:
     case BFD_RELOC_386_GOT32:
     case BFD_RELOC_386_GOT32X:
-    case BFD_RELOC_386_GOTOFF:
+    case BFD_RELOC_32_GOTOFF:
     case BFD_RELOC_386_GOTPC:
     case BFD_RELOC_386_TLS_GD:
     case BFD_RELOC_386_TLS_LDM:
@@ -18542,7 +18542,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
     case BFD_RELOC_X86_64_CODE_6_GOTTPOFF:
     case BFD_RELOC_X86_64_TPOFF32:
     case BFD_RELOC_X86_64_TPOFF64:
-    case BFD_RELOC_X86_64_GOTOFF64:
+    case BFD_RELOC_64_GOTOFF:
     case BFD_RELOC_X86_64_GOTPC32:
     case BFD_RELOC_X86_64_GOT64:
     case BFD_RELOC_X86_64_GOTPCREL64:
@@ -18657,7 +18657,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
 	  case BFD_RELOC_X86_64_DTPOFF64:
 	  case BFD_RELOC_X86_64_TPOFF64:
 	  case BFD_RELOC_64_PCREL:
-	  case BFD_RELOC_X86_64_GOTOFF64:
+	  case BFD_RELOC_64_GOTOFF:
 	  case BFD_RELOC_X86_64_GOT64:
 	  case BFD_RELOC_X86_64_GOTPCREL64:
 	  case BFD_RELOC_X86_64_GOTPC64:
diff --git a/gas/config/tc-lm32.c b/gas/config/tc-lm32.c
index 5c6b6a2af3f..cf8ff4bab21 100644
--- a/gas/config/tc-lm32.c
+++ b/gas/config/tc-lm32.c
@@ -318,9 +318,9 @@ md_cgen_lookup_reloc (const CGEN_INSN *insn ATTRIBUTE_UNUSED,
     case LM32_OPERAND_GOT16:
       return BFD_RELOC_LM32_16_GOT;
     case LM32_OPERAND_GOTOFFHI16:
-      return BFD_RELOC_LM32_GOTOFF_HI16;
+      return BFD_RELOC_HI16_GOTOFF;
     case LM32_OPERAND_GOTOFFLO16:
-      return BFD_RELOC_LM32_GOTOFF_LO16;
+      return BFD_RELOC_LO16_GOTOFF;
     case LM32_OPERAND_GP16:
       return BFD_RELOC_GPREL16;
     case LM32_OPERAND_LO16:
diff --git a/gas/config/tc-m32r.c b/gas/config/tc-m32r.c
index 694fea42252..c8fa4cf502e 100644
--- a/gas/config/tc-m32r.c
+++ b/gas/config/tc-m32r.c
@@ -1967,11 +1967,11 @@ m32r_cgen_record_fixup_exp (fragS *frag,
 
     case BFD_RELOC_M32R_GOTOFF:
       if (fixP->fx_cgen.opinfo == BFD_RELOC_M32R_HI16_SLO)
-        r_type = BFD_RELOC_M32R_GOTOFF_HI_SLO;
+	r_type = BFD_RELOC_HI16_S_GOTOFF;
       else if (fixP->fx_cgen.opinfo == BFD_RELOC_M32R_HI16_ULO)
-        r_type = BFD_RELOC_M32R_GOTOFF_HI_ULO;
+	r_type = BFD_RELOC_HI16_GOTOFF;
       else if (fixP->fx_cgen.opinfo == BFD_RELOC_M32R_LO16)
-        r_type = BFD_RELOC_M32R_GOTOFF_LO;
+	r_type = BFD_RELOC_LO16_GOTOFF;
       break;
 
     case BFD_RELOC_M32R_26_PLTREL:
diff --git a/gas/config/tc-metag.c b/gas/config/tc-metag.c
index f6b34a8de5b..ae6d5c1e883 100644
--- a/gas/config/tc-metag.c
+++ b/gas/config/tc-metag.c
@@ -679,7 +679,7 @@ parse_imm_addr (const char *line, metag_addr *addr)
 	  addr->reloc_type = BFD_RELOC_METAG_TLS_IE;
 	}
       else if (exp->X_op == O_PIC_reloc &&
-	  exp->X_md == BFD_RELOC_METAG_GOTOFF)
+	  exp->X_md == BFD_RELOC_32_GOTOFF)
 	{
 	  exp->X_op = O_symbol;
 	  addr->reloc_type = BFD_RELOC_METAG_GETSET_GOTOFF;
@@ -1880,12 +1880,12 @@ parse_imm16 (const char *line, metag_insn *insn, int *value)
 	{
 	  exp->X_op = O_symbol;
 
-	  if (exp->X_md == BFD_RELOC_METAG_GOTOFF)
+	  if (exp->X_md == BFD_RELOC_32_GOTOFF)
 	    {
 	      if (is_hi)
-		insn->reloc_type = BFD_RELOC_METAG_HI16_GOTOFF;
+		insn->reloc_type = BFD_RELOC_HI16_GOTOFF;
 	      else if (is_lo)
-		insn->reloc_type = BFD_RELOC_METAG_LO16_GOTOFF;
+		insn->reloc_type = BFD_RELOC_LO16_GOTOFF;
 	      else
 		return NULL;
 	    }
@@ -6779,8 +6779,8 @@ metag_fix_adjustable (fixS * fixP)
   if (S_IS_WEAK (fixP->fx_addsy))
     return 0;
 
-  if (fixP->fx_r_type == BFD_RELOC_METAG_HI16_GOTOFF ||
-      fixP->fx_r_type == BFD_RELOC_METAG_LO16_GOTOFF ||
+  if (fixP->fx_r_type == BFD_RELOC_HI16_GOTOFF ||
+      fixP->fx_r_type == BFD_RELOC_LO16_GOTOFF ||
       fixP->fx_r_type == BFD_RELOC_METAG_GETSET_GOTOFF ||
       fixP->fx_r_type == BFD_RELOC_METAG_GETSET_GOT ||
       fixP->fx_r_type == BFD_RELOC_METAG_HI16_GOTPC ||
@@ -6922,7 +6922,7 @@ metag_parse_name (char const * name, expressionS * exprP, enum expr_mode mode,
     goto no_suffix;
   else if ((next_end = metag_end_of_match (next + 1, "GOTOFF")))
     {
-      reloc_type = BFD_RELOC_METAG_GOTOFF;
+      reloc_type = BFD_RELOC_32_GOTOFF;
       op_type = O_PIC_reloc;
     }
   else if ((next_end = metag_end_of_match (next + 1, "GOT")))
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index 529610f76fe..61ae323fe80 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -1294,7 +1294,7 @@ s390_elf_cons (int nbytes /* 1=.byte, 2=.word, 4=.long */)
 		  BFD_RELOC_390_GOT64,		/* ELF_SUFFIX_GOT  */
 		  BFD_RELOC_64_PLT_PCREL,	/* ELF_SUFFIX_PLT  */
 		  BFD_RELOC_UNUSED,		/* ELF_SUFFIX_GOTENT  */
-		  BFD_RELOC_390_GOTOFF64,	/* ELF_SUFFIX_GOTOFF  */
+		  BFD_RELOC_64_GOTOFF,		/* ELF_SUFFIX_GOTOFF  */
 		  BFD_RELOC_390_GOTPLT64,	/* ELF_SUFFIX_GOTPLT  */
 		  BFD_RELOC_390_PLTOFF64,	/* ELF_SUFFIX_PLTOFF  */
 		  BFD_RELOC_390_TLS_GD64,	/* ELF_SUFFIX_TLS_GD  */
@@ -2383,7 +2383,7 @@ tc_s390_fix_adjustable (fixS *fixP)
   /* adjust_reloc_syms doesn't know about the GOT.  */
   if (   fixP->fx_r_type == BFD_RELOC_16_GOTOFF
       || fixP->fx_r_type == BFD_RELOC_32_GOTOFF
-      || fixP->fx_r_type == BFD_RELOC_390_GOTOFF64
+      || fixP->fx_r_type == BFD_RELOC_64_GOTOFF
       || fixP->fx_r_type == BFD_RELOC_390_PLTOFF16
       || fixP->fx_r_type == BFD_RELOC_390_PLTOFF32
       || fixP->fx_r_type == BFD_RELOC_390_PLTOFF64
@@ -2445,7 +2445,7 @@ tc_s390_force_relocation (struct fix *fixp)
     case BFD_RELOC_390_GOT20:
     case BFD_RELOC_32_GOT_PCREL:
     case BFD_RELOC_32_GOTOFF:
-    case BFD_RELOC_390_GOTOFF64:
+    case BFD_RELOC_64_GOTOFF:
     case BFD_RELOC_390_PLTOFF16:
     case BFD_RELOC_390_PLTOFF32:
     case BFD_RELOC_390_PLTOFF64:
@@ -2750,7 +2750,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
 	    md_number_to_chars (where, value, sizeof (int));
 	  break;
 
-	case BFD_RELOC_390_GOTOFF64:
+	case BFD_RELOC_64_GOTOFF:
 	  if (fixP->fx_done)
 	    md_number_to_chars (where, value, 8);
 	  break;
diff --git a/opcodes/frv-asm.c b/opcodes/frv-asm.c
index 43f0a6c8cbb..badeb514506 100644
--- a/opcodes/frv-asm.c
+++ b/opcodes/frv-asm.c
@@ -256,7 +256,7 @@ parse_ulo16 (CGEN_CPU_DESC cd,
 	{
 	  *strp += 10;
 	  errmsg = parse_symbolic_address (cd, strp, opindex,
-					   BFD_RELOC_FRV_GOTOFFLO,
+					   BFD_RELOC_LO16_GOTOFF,
 					   & result_type, & value);
 	  if (**strp != ')')
 	    return "missing ')'";
@@ -382,7 +382,7 @@ parse_uslo16 (CGEN_CPU_DESC cd,
 	{
 	  *strp += 10;
 	  errmsg = parse_symbolic_address (cd, strp, opindex,
-					   BFD_RELOC_FRV_GOTOFFLO,
+					   BFD_RELOC_LO16_GOTOFF,
 					   & result_type, & value);
 	  if (**strp != ')')
 	    return "missing ')'";
@@ -515,7 +515,7 @@ parse_uhi16 (CGEN_CPU_DESC cd,
 	{
 	  *strp += 10;
 	  errmsg = parse_symbolic_address (cd, strp, opindex,
-					   BFD_RELOC_FRV_GOTOFFHI,
+					   BFD_RELOC_HI16_GOTOFF,
 					   & result_type, & value);
 	  if (**strp != ')')
 	    return "missing ')'";
diff --git a/opcodes/lm32-asm.c b/opcodes/lm32-asm.c
index 97f54dbb1de..16fdabc170e 100644
--- a/opcodes/lm32-asm.c
+++ b/opcodes/lm32-asm.c
@@ -211,7 +211,7 @@ parse_gotoff_hi16 (CGEN_CPU_DESC cd,
       bfd_vma value;
 
       *strp += 11;
-      errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LM32_GOTOFF_HI16,
+      errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_HI16_GOTOFF,
                                    & result_type, & value);
       if (**strp != ')')
         return _("missing `)'");
@@ -241,7 +241,7 @@ parse_gotoff_lo16 (CGEN_CPU_DESC cd,
       bfd_vma value;
 
       *strp += 11;
-      errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LM32_GOTOFF_LO16,
+      errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LO16_GOTOFF,
                                    &result_type, &value);
       if (**strp != ')')
         return _("missing `)'");


More information about the Binutils-cvs mailing list