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

Jan Beulich jbeulich@sourceware.org
Mon Dec 15 10:32:23 GMT 2025


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

commit c77b97d2d8227755757acca6b1e483f221a685ed
Author: Jan Beulich <jbeulich@suse.com>
Date:   Mon Dec 15 11:28:14 2025 +0100

    bfd/ELF: fold BFD_RELOC_<arch>_COPY
    
    There's no need to have a separate reloc per arch; just like for other
    more or less generic ones a single one will (mostly) do. Arm64, C-Sky,
    and KVX - sadly - are exceptions.

Diff:
---
 bfd/bfd-in2.h          | 30 +---------------------------
 bfd/elf-m10300.c       |  2 +-
 bfd/elf32-arc.c        |  1 +
 bfd/elf32-cris.c       |  2 +-
 bfd/elf32-i386.c       |  4 ++--
 bfd/elf32-lm32.c       |  2 +-
 bfd/elf32-m32r.c       |  2 +-
 bfd/elf32-metag.c      |  2 +-
 bfd/elf32-microblaze.c |  2 +-
 bfd/elf32-mips.c       |  2 +-
 bfd/elf32-nds32.c      |  2 +-
 bfd/elf32-or1k.c       |  2 +-
 bfd/elf32-ppc.c        |  2 +-
 bfd/elf32-s390.c       |  2 +-
 bfd/elf32-sh.c         |  2 +-
 bfd/elf32-tic6x.c      |  2 +-
 bfd/elf32-tilepro.c    |  2 +-
 bfd/elf32-v850.c       |  2 +-
 bfd/elf64-mips.c       |  2 +-
 bfd/elf64-ppc.c        |  2 +-
 bfd/elf64-s390.c       |  2 +-
 bfd/elf64-x86-64.c     |  2 +-
 bfd/elfn32-mips.c      |  2 +-
 bfd/elfxx-ia64.c       |  2 +-
 bfd/elfxx-sparc.c      |  2 +-
 bfd/elfxx-tilegx.c     |  2 +-
 bfd/libbfd.h           | 23 +---------------------
 bfd/reloc.c            | 53 ++------------------------------------------------
 gas/config/tc-ppc.c    |  8 ++++----
 include/elf/cris.h     |  2 +-
 30 files changed, 35 insertions(+), 132 deletions(-)

diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 18f5cd960f8..403413574df 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3323,6 +3323,7 @@ enum bfd_reloc_code_real
   BFD_RELOC_HI16_PLTOFF,
   BFD_RELOC_HI16_S_PLTOFF,
   BFD_RELOC_8_PLTOFF,
+  BFD_RELOC_COPY,
   BFD_RELOC_IRELATIVE,
 
   /* Size relocations.  */
@@ -3395,7 +3396,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_SPARC_PC10,
   BFD_RELOC_SPARC_PC22,
   BFD_RELOC_SPARC_WPLT30,
-  BFD_RELOC_SPARC_COPY,
   BFD_RELOC_SPARC_GLOB_DAT,
   BFD_RELOC_SPARC_JMP_SLOT,
   BFD_RELOC_SPARC_RELATIVE,
@@ -3727,7 +3727,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_MIPS_EH,
 
   /* MIPS ELF relocations (VxWorks and PLT extensions).  */
-  BFD_RELOC_MIPS_COPY,
   BFD_RELOC_MIPS_JUMP_SLOT,
 
   /* Moxie ELF relocations.  */
@@ -3800,9 +3799,6 @@ enum bfd_reloc_code_real
      bytes in the instruction.  */
   BFD_RELOC_MN10300_GOT16,
 
-  /* Copy symbol at runtime.  */
-  BFD_RELOC_MN10300_COPY,
-
   /* Create GOT entry.  */
   BFD_RELOC_MN10300_GLOB_DAT,
 
@@ -3843,7 +3839,6 @@ enum bfd_reloc_code_real
   /* i386/elf relocations.  */
   BFD_RELOC_386_GOT32,
   BFD_RELOC_386_PLT32,
-  BFD_RELOC_386_COPY,
   BFD_RELOC_386_GLOB_DAT,
   BFD_RELOC_386_JUMP_SLOT,
   BFD_RELOC_386_RELATIVE,
@@ -3868,7 +3863,6 @@ enum bfd_reloc_code_real
 
   /* x86-64/elf relocations.  */
   BFD_RELOC_X86_64_GOT32,
-  BFD_RELOC_X86_64_COPY,
   BFD_RELOC_X86_64_GLOB_DAT,
   BFD_RELOC_X86_64_JUMP_SLOT,
   BFD_RELOC_X86_64_RELATIVE,
@@ -3943,7 +3937,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_PPC_BA16,
   BFD_RELOC_PPC_BA16_BRTAKEN,
   BFD_RELOC_PPC_BA16_BRNTAKEN,
-  BFD_RELOC_PPC_COPY,
   BFD_RELOC_PPC_GLOB_DAT,
   BFD_RELOC_PPC_JMP_SLOT,
   BFD_RELOC_PPC_RELATIVE,
@@ -4324,7 +4317,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_SH_LABEL,
   BFD_RELOC_SH_LOOP_START,
   BFD_RELOC_SH_LOOP_END,
-  BFD_RELOC_SH_COPY,
   BFD_RELOC_SH_GLOB_DAT,
   BFD_RELOC_SH_JMP_SLOT,
   BFD_RELOC_SH_RELATIVE,
@@ -4435,7 +4427,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_ARC_32_PCREL,
   BFD_RELOC_ARC_GOT32,
   BFD_RELOC_ARC_GOTPC32,
-  BFD_RELOC_ARC_COPY,
   BFD_RELOC_ARC_GLOB_DAT,
   BFD_RELOC_ARC_JMP_SLOT,
   BFD_RELOC_ARC_RELATIVE,
@@ -4677,7 +4668,6 @@ enum bfd_reloc_code_real
   /* For PIC.  */
   BFD_RELOC_M32R_GOT24,
   BFD_RELOC_M32R_26_PLTREL,
-  BFD_RELOC_M32R_COPY,
   BFD_RELOC_M32R_GLOB_DAT,
   BFD_RELOC_M32R_JMP_SLOT,
   BFD_RELOC_M32R_RELATIVE,
@@ -4774,7 +4764,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_NDS32_GOT20,
   BFD_RELOC_NDS32_9_PLTREL,
   BFD_RELOC_NDS32_25_PLTREL,
-  BFD_RELOC_NDS32_COPY,
   BFD_RELOC_NDS32_GLOB_DAT,
   BFD_RELOC_NDS32_JMP_SLOT,
   BFD_RELOC_NDS32_RELATIVE,
@@ -5014,7 +5003,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_COPY,
   BFD_RELOC_V850_GLOB_DAT,
   BFD_RELOC_V850_JMP_SLOT,
   BFD_RELOC_V850_RELATIVE,
@@ -5078,7 +5066,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_C6000_SBR_GOT_H16_W,
   BFD_RELOC_C6000_DSBT_INDEX,
   BFD_RELOC_C6000_PREL31,
-  BFD_RELOC_C6000_COPY,
   BFD_RELOC_C6000_JUMP_SLOT,
   BFD_RELOC_C6000_EHTYPE,
   BFD_RELOC_C6000_PCR_H16,
@@ -5168,7 +5155,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_METAG_RELBRANCH_PLT,
   BFD_RELOC_METAG_GOTOFF,
   BFD_RELOC_METAG_PLT,
-  BFD_RELOC_METAG_COPY,
   BFD_RELOC_METAG_JMP_SLOT,
   BFD_RELOC_METAG_RELATIVE,
   BFD_RELOC_METAG_GLOB_DAT,
@@ -5495,9 +5481,6 @@ enum bfd_reloc_code_real
   /* 12 bit GOT offset.  */
   BFD_RELOC_390_GOT12,
 
-  /* Copy symbol at runtime.  */
-  BFD_RELOC_390_COPY,
-
   /* Create GOT entry.  */
   BFD_RELOC_390_GLOB_DAT,
 
@@ -5743,7 +5726,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_IA64_LTV64LSB,
   BFD_RELOC_IA64_IPLTMSB,
   BFD_RELOC_IA64_IPLTLSB,
-  BFD_RELOC_IA64_COPY,
   BFD_RELOC_IA64_LTOFF22X,
   BFD_RELOC_IA64_LDXMOV,
   BFD_RELOC_IA64_TPREL14,
@@ -5965,7 +5947,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_CRIS_UNSIGNED_4,
 
   /* Relocs used in ELF shared libraries for CRIS.  */
-  BFD_RELOC_CRIS_COPY,
   BFD_RELOC_CRIS_GLOB_DAT,
   BFD_RELOC_CRIS_JUMP_SLOT,
   BFD_RELOC_CRIS_RELATIVE,
@@ -6021,7 +6002,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_OR1K_PLT26,
   BFD_RELOC_OR1K_PLTA26,
   BFD_RELOC_OR1K_GOTOFF_SLO16,
-  BFD_RELOC_OR1K_COPY,
   BFD_RELOC_OR1K_GLOB_DAT,
   BFD_RELOC_OR1K_JMP_SLOT,
   BFD_RELOC_OR1K_RELATIVE,
@@ -6300,7 +6280,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_LM32_16_GOT,
   BFD_RELOC_LM32_GOTOFF_HI16,
   BFD_RELOC_LM32_GOTOFF_LO16,
-  BFD_RELOC_LM32_COPY,
   BFD_RELOC_LM32_GLOB_DAT,
   BFD_RELOC_LM32_JMP_SLOT,
   BFD_RELOC_LM32_RELATIVE,
@@ -6411,10 +6390,6 @@ enum bfd_reloc_code_real
      _GLOBAL_OFFSET_TABLE_.  */
   BFD_RELOC_MICROBLAZE_32_GOTOFF,
 
-  /* This is used to tell the dynamic linker to copy the value out of
-     the dynamic object into the runtime process image.  */
-  BFD_RELOC_MICROBLAZE_COPY,
-
   /* Unused Reloc.  */
   BFD_RELOC_MICROBLAZE_64_TLS,
 
@@ -7001,7 +6976,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_AARCH64_BRANCH9,
 
   /* Tilera TILEPro Relocations.  */
-  BFD_RELOC_TILEPRO_COPY,
   BFD_RELOC_TILEPRO_GLOB_DAT,
   BFD_RELOC_TILEPRO_JMP_SLOT,
   BFD_RELOC_TILEPRO_RELATIVE,
@@ -7089,7 +7063,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_TILEGX_HW0_LAST,
   BFD_RELOC_TILEGX_HW1_LAST,
   BFD_RELOC_TILEGX_HW2_LAST,
-  BFD_RELOC_TILEGX_COPY,
   BFD_RELOC_TILEGX_GLOB_DAT,
   BFD_RELOC_TILEGX_JMP_SLOT,
   BFD_RELOC_TILEGX_RELATIVE,
@@ -7236,7 +7209,6 @@ enum bfd_reloc_code_real
   BFD_RELOC_WASM32_LEB128_PLT,
   BFD_RELOC_WASM32_PLT_INDEX,
   BFD_RELOC_WASM32_ABS32_CODE,
-  BFD_RELOC_WASM32_COPY,
   BFD_RELOC_WASM32_CODE_POINTER,
   BFD_RELOC_WASM32_INDEX,
   BFD_RELOC_WASM32_PLT_SIG,
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index 7ffc9d68711..0eb9b99e6b6 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -662,7 +662,7 @@ static const struct mn10300_reloc_map mn10300_reloc_map[] =
   { BFD_RELOC_MN10300_GOT32, R_MN10300_GOT32 },
   { BFD_RELOC_MN10300_GOT24, R_MN10300_GOT24 },
   { BFD_RELOC_MN10300_GOT16, R_MN10300_GOT16 },
-  { BFD_RELOC_MN10300_COPY, R_MN10300_COPY },
+  { BFD_RELOC_COPY, R_MN10300_COPY },
   { BFD_RELOC_MN10300_GLOB_DAT, R_MN10300_GLOB_DAT },
   { BFD_RELOC_MN10300_JMP_SLOT, R_MN10300_JMP_SLOT },
   { BFD_RELOC_MN10300_RELATIVE, R_MN10300_RELATIVE },
diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
index 3ba299bd00e..f204e21eb30 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_COPY	BFD_RELOC_COPY
 
 static const struct arc_reloc_map arc_reloc_map[] =
 {
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 463ac32f3ea..e6b11b99b36 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -398,7 +398,7 @@ static const struct cris_reloc_map cris_reloc_map [] =
   { BFD_RELOC_32_PCREL,		R_CRIS_32_PCREL },
   { BFD_RELOC_VTABLE_INHERIT,	R_CRIS_GNU_VTINHERIT },
   { BFD_RELOC_VTABLE_ENTRY,	R_CRIS_GNU_VTENTRY },
-  { BFD_RELOC_CRIS_COPY,	R_CRIS_COPY },
+  { BFD_RELOC_COPY,		R_CRIS_COPY },
   { BFD_RELOC_CRIS_GLOB_DAT,	R_CRIS_GLOB_DAT },
   { BFD_RELOC_CRIS_JUMP_SLOT,	R_CRIS_JUMP_SLOT },
   { BFD_RELOC_CRIS_RELATIVE,	R_CRIS_RELATIVE },
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 66a3a0aefa4..85921ecc3b8 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -216,8 +216,8 @@ elf_i386_reloc_type_lookup (bfd *abfd,
       TRACE ("BFD_RELOC_386_PLT32");
       return &elf_howto_table[R_386_PLT32];
 
-    case BFD_RELOC_386_COPY:
-      TRACE ("BFD_RELOC_386_COPY");
+    case BFD_RELOC_COPY:
+      TRACE ("BFD_RELOC_COPY");
       return &elf_howto_table[R_386_COPY];
 
     case BFD_RELOC_386_GLOB_DAT:
diff --git a/bfd/elf32-lm32.c b/bfd/elf32-lm32.c
index 71978065b95..a616564617f 100644
--- a/bfd/elf32-lm32.c
+++ b/bfd/elf32-lm32.c
@@ -444,7 +444,7 @@ static const struct lm32_reloc_map lm32_reloc_map[] =
   { 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_LM32_COPY,	R_LM32_COPY },
+  { BFD_RELOC_COPY,		R_LM32_COPY },
   { BFD_RELOC_LM32_GLOB_DAT,	R_LM32_GLOB_DAT },
   { BFD_RELOC_LM32_JMP_SLOT,	R_LM32_JMP_SLOT },
   { BFD_RELOC_LM32_RELATIVE,	R_LM32_RELATIVE },
diff --git a/bfd/elf32-m32r.c b/bfd/elf32-m32r.c
index 02a563efacf..ea266fe2bdd 100644
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -1211,7 +1211,7 @@ static const struct m32r_reloc_map m32r_reloc_map[] =
 
   { BFD_RELOC_M32R_GOT24, R_M32R_GOT24 },
   { BFD_RELOC_M32R_26_PLTREL, R_M32R_26_PLTREL },
-  { BFD_RELOC_M32R_COPY, R_M32R_COPY },
+  { BFD_RELOC_COPY, R_M32R_COPY },
   { BFD_RELOC_M32R_GLOB_DAT, R_M32R_GLOB_DAT },
   { BFD_RELOC_M32R_JMP_SLOT, R_M32R_JMP_SLOT },
   { BFD_RELOC_M32R_RELATIVE, R_M32R_RELATIVE },
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index 65a9e6f44a1..c9b8226d190 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -720,7 +720,7 @@ static const struct metag_reloc_map metag_reloc_map [] =
     { BFD_RELOC_METAG_RELBRANCH_PLT, R_METAG_RELBRANCH_PLT },
     { BFD_RELOC_METAG_GOTOFF,	     R_METAG_GOTOFF },
     { BFD_RELOC_METAG_PLT,	     R_METAG_PLT },
-    { BFD_RELOC_METAG_COPY,	     R_METAG_COPY },
+    { BFD_RELOC_COPY,		     R_METAG_COPY },
     { BFD_RELOC_METAG_JMP_SLOT,	     R_METAG_JMP_SLOT },
     { BFD_RELOC_METAG_RELATIVE,	     R_METAG_RELATIVE },
     { BFD_RELOC_METAG_GLOB_DAT,	     R_METAG_GLOB_DAT },
diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
index e13383963ad..3d7905c7bf0 100644
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
@@ -660,7 +660,7 @@ microblaze_elf_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED,
     case BFD_RELOC_MICROBLAZE_64_TLSTPREL:
       microblaze_reloc = R_MICROBLAZE_TLSTPREL32;
       break;
-    case BFD_RELOC_MICROBLAZE_COPY:
+    case BFD_RELOC_COPY:
       microblaze_reloc = R_MICROBLAZE_COPY;
       break;
     default:
diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c
index 939debda223..e025cd8672d 100644
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -3589,7 +3589,7 @@ mips_elf32_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code,
       return &elf_mips_gnu_vtentry_howto;
     case BFD_RELOC_32_PCREL:
       return &elf_mips_gnu_pcrel32;
-    case BFD_RELOC_MIPS_COPY:
+    case BFD_RELOC_COPY:
       return &elf_mips_copy_howto;
     case BFD_RELOC_MIPS_JUMP_SLOT:
       return &elf_mips_jump_slot_howto;
diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index 07616acccd5..96d7e7bada8 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -3113,7 +3113,7 @@ static const struct nds32_reloc_map_entry nds32_reloc_map[] =
   {BFD_RELOC_NDS32_GOT20, R_NDS32_GOT20},
   {BFD_RELOC_NDS32_9_PLTREL, R_NDS32_9_PLTREL},
   {BFD_RELOC_NDS32_25_PLTREL, R_NDS32_25_PLTREL},
-  {BFD_RELOC_NDS32_COPY, R_NDS32_COPY},
+  {BFD_RELOC_COPY, R_NDS32_COPY},
   {BFD_RELOC_NDS32_GLOB_DAT, R_NDS32_GLOB_DAT},
   {BFD_RELOC_NDS32_JMP_SLOT, R_NDS32_JMP_SLOT},
   {BFD_RELOC_NDS32_RELATIVE, R_NDS32_RELATIVE},
diff --git a/bfd/elf32-or1k.c b/bfd/elf32-or1k.c
index e6e25a875d4..9236280f9c6 100644
--- a/bfd/elf32-or1k.c
+++ b/bfd/elf32-or1k.c
@@ -876,7 +876,7 @@ static const struct or1k_reloc_map or1k_reloc_map[] =
   { BFD_RELOC_OR1K_GOT16,	R_OR1K_GOT16 },
   { BFD_RELOC_OR1K_PLT26,	R_OR1K_PLT26 },
   { BFD_RELOC_OR1K_GLOB_DAT,	R_OR1K_GLOB_DAT },
-  { BFD_RELOC_OR1K_COPY,	R_OR1K_COPY },
+  { BFD_RELOC_COPY,		R_OR1K_COPY },
   { BFD_RELOC_OR1K_JMP_SLOT,	R_OR1K_JMP_SLOT },
   { BFD_RELOC_OR1K_RELATIVE,	R_OR1K_RELATIVE },
   { BFD_RELOC_OR1K_TLS_GD_HI16, R_OR1K_TLS_GD_HI16 },
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c
index 753cb22baea..467fbd68a4e 100644
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -753,7 +753,7 @@ ppc_elf_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
     case BFD_RELOC_HI16_GOTOFF:		r = R_PPC_GOT16_HI;		break;
     case BFD_RELOC_HI16_S_GOTOFF:	r = R_PPC_GOT16_HA;		break;
     case BFD_RELOC_24_PLT_PCREL:	r = R_PPC_PLTREL24;		break;
-    case BFD_RELOC_PPC_COPY:		r = R_PPC_COPY;			break;
+    case BFD_RELOC_COPY:		r = R_PPC_COPY;			break;
     case BFD_RELOC_PPC_GLOB_DAT:	r = R_PPC_GLOB_DAT;		break;
     case BFD_RELOC_PPC_LOCAL24PC:	r = R_PPC_LOCAL24PC;		break;
     case BFD_RELOC_32_PCREL:		r = R_PPC_REL32;		break;
diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c
index 4c355f4db2e..14beba43169 100644
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -203,7 +203,7 @@ elf_s390_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
       return &elf_howto_table[(int) R_390_GOT32];
     case BFD_RELOC_32_PLT_PCREL:
       return &elf_howto_table[(int) R_390_PLT32];
-    case BFD_RELOC_390_COPY:
+    case BFD_RELOC_COPY:
       return &elf_howto_table[(int) R_390_COPY];
     case BFD_RELOC_390_GLOB_DAT:
       return &elf_howto_table[(int) R_390_GLOB_DAT];
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 7df228de591..4fa3d758fa1 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -355,7 +355,7 @@ static const struct elf_reloc_map sh_reloc_map[] =
   { BFD_RELOC_SH_TLS_TPOFF32, R_SH_TLS_TPOFF32 },
   { BFD_RELOC_32_GOT_PCREL, R_SH_GOT32 },
   { BFD_RELOC_32_PLT_PCREL, R_SH_PLT32 },
-  { BFD_RELOC_SH_COPY, R_SH_COPY },
+  { BFD_RELOC_COPY, R_SH_COPY },
   { BFD_RELOC_SH_GLOB_DAT, R_SH_GLOB_DAT },
   { BFD_RELOC_SH_JMP_SLOT, R_SH_JMP_SLOT },
   { BFD_RELOC_SH_RELATIVE, R_SH_RELATIVE },
diff --git a/bfd/elf32-tic6x.c b/bfd/elf32-tic6x.c
index c3a434ef83b..8fc05db066d 100644
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -1422,7 +1422,7 @@ static const tic6x_reloc_map elf32_tic6x_reloc_map[] =
     { BFD_RELOC_C6000_SBR_GOT_H16_W, R_C6000_SBR_GOT_H16_W },
     { BFD_RELOC_C6000_DSBT_INDEX, R_C6000_DSBT_INDEX },
     { BFD_RELOC_C6000_PREL31, R_C6000_PREL31 },
-    { BFD_RELOC_C6000_COPY, R_C6000_COPY },
+    { BFD_RELOC_COPY, R_C6000_COPY },
     { BFD_RELOC_C6000_JUMP_SLOT, R_C6000_JUMP_SLOT },
     { BFD_RELOC_C6000_EHTYPE, R_C6000_EHTYPE },
     { BFD_RELOC_C6000_PCR_H16, R_C6000_PCR_H16 },
diff --git a/bfd/elf32-tilepro.c b/bfd/elf32-tilepro.c
index 63aa148bc80..7836b0e93c0 100644
--- a/bfd/elf32-tilepro.c
+++ b/bfd/elf32-tilepro.c
@@ -583,7 +583,7 @@ static const reloc_map tilepro_reloc_map [] =
   TH_REMAP (BFD_RELOC_HI16_S,		       R_TILEPRO_HA16)
 
   /* Custom relocations. */
-  TH_REMAP (BFD_RELOC_TILEPRO_COPY,	       R_TILEPRO_COPY)
+  TH_REMAP (BFD_RELOC_COPY,		       R_TILEPRO_COPY)
   TH_REMAP (BFD_RELOC_TILEPRO_GLOB_DAT,	       R_TILEPRO_GLOB_DAT)
   TH_REMAP (BFD_RELOC_TILEPRO_JMP_SLOT,	       R_TILEPRO_JMP_SLOT)
   TH_REMAP (BFD_RELOC_TILEPRO_RELATIVE,	       R_TILEPRO_RELATIVE)
diff --git a/bfd/elf32-v850.c b/bfd/elf32-v850.c
index 2ba734a9b80..79984a4e7c1 100644
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -1736,7 +1736,7 @@ static const struct v850_elf_reloc_map v850_elf_reloc_map[] =
   { BFD_RELOC_V850_32_GOT,		   R_V850_32_GOT		 },
   { BFD_RELOC_V850_22_PLT_PCREL,	   R_V850_22_PLT		 },
   { BFD_RELOC_V850_32_PLT_PCREL,	   R_V850_32_PLT		 },
-  { BFD_RELOC_V850_COPY,		   R_V850_COPY			 },
+  { BFD_RELOC_COPY,			   R_V850_COPY			 },
   { BFD_RELOC_V850_GLOB_DAT,		   R_V850_GLOB_DAT		 },
   { BFD_RELOC_V850_JMP_SLOT,		   R_V850_JMP_SLOT		 },
   { BFD_RELOC_V850_RELATIVE,		   R_V850_RELATIVE		 },
diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c
index 5cd3bae3ea3..4f7692fda61 100644
--- a/bfd/elf64-mips.c
+++ b/bfd/elf64-mips.c
@@ -3850,7 +3850,7 @@ bfd_elf64_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
       return &elf_mips_gnu_pcrel32;
     case BFD_RELOC_MIPS_EH:
       return &elf_mips_eh_howto;
-    case BFD_RELOC_MIPS_COPY:
+    case BFD_RELOC_COPY:
       return &elf_mips_copy_howto;
     case BFD_RELOC_MIPS_JUMP_SLOT:
       return &elf_mips_jump_slot_howto;
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index b39fe477dd8..b8bb96ecdaf 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -1077,7 +1077,7 @@ ppc64_elf_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code)
       break;
     case BFD_RELOC_HI16_S_GOTOFF:		r = R_PPC64_GOT16_HA;
       break;
-    case BFD_RELOC_PPC_COPY:			r = R_PPC64_COPY;
+    case BFD_RELOC_COPY:			r = R_PPC64_COPY;
       break;
     case BFD_RELOC_PPC_GLOB_DAT:		r = R_PPC64_GLOB_DAT;
       break;
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index d9192de79e4..16428bcd603 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -217,7 +217,7 @@ elf_s390_reloc_type_lookup (bfd *abfd,
       return &elf_howto_table[(int) R_390_GOT32];
     case BFD_RELOC_32_PLT_PCREL:
       return &elf_howto_table[(int) R_390_PLT32];
-    case BFD_RELOC_390_COPY:
+    case BFD_RELOC_COPY:
       return &elf_howto_table[(int) R_390_COPY];
     case BFD_RELOC_390_GLOB_DAT:
       return &elf_howto_table[(int) R_390_GLOB_DAT];
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index f5ab6b8bddb..dd5bb3daaef 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -234,7 +234,7 @@ static const struct elf_reloc_map x86_64_reloc_map[] =
   { BFD_RELOC_32_PCREL,		R_X86_64_PC32, },
   { BFD_RELOC_X86_64_GOT32,	R_X86_64_GOT32,},
   { BFD_RELOC_32_PLT_PCREL,	R_X86_64_PLT32,},
-  { BFD_RELOC_X86_64_COPY,	R_X86_64_COPY, },
+  { BFD_RELOC_COPY,		R_X86_64_COPY, },
   { BFD_RELOC_X86_64_GLOB_DAT,	R_X86_64_GLOB_DAT, },
   { BFD_RELOC_X86_64_JUMP_SLOT, R_X86_64_JUMP_SLOT, },
   { BFD_RELOC_X86_64_RELATIVE,	R_X86_64_RELATIVE, },
diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c
index 7c9967268c0..3510752679d 100644
--- a/bfd/elfn32-mips.c
+++ b/bfd/elfn32-mips.c
@@ -3685,7 +3685,7 @@ bfd_elf32_bfd_reloc_type_lookup (bfd *abfd ATTRIBUTE_UNUSED,
       return &elf_mips_gnu_pcrel32;
     case BFD_RELOC_MIPS_EH:
       return &elf_mips_eh_howto;
-    case BFD_RELOC_MIPS_COPY:
+    case BFD_RELOC_COPY:
       return &elf_mips_copy_howto;
     case BFD_RELOC_MIPS_JUMP_SLOT:
       return &elf_mips_jump_slot_howto;
diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c
index 3cc036d7354..c95d5dbe885 100644
--- a/bfd/elfxx-ia64.c
+++ b/bfd/elfxx-ia64.c
@@ -295,7 +295,7 @@ ia64_elf_reloc_type_lookup (bfd *abfd,
 
     case BFD_RELOC_IA64_IPLTMSB:	rtype = R_IA64_IPLTMSB; break;
     case BFD_RELOC_IA64_IPLTLSB:	rtype = R_IA64_IPLTLSB; break;
-    case BFD_RELOC_IA64_COPY:		rtype = R_IA64_COPY; break;
+    case BFD_RELOC_COPY:		rtype = R_IA64_COPY; break;
     case BFD_RELOC_IA64_LTOFF22X:	rtype = R_IA64_LTOFF22X; break;
     case BFD_RELOC_IA64_LDXMOV:		rtype = R_IA64_LDXMOV; break;
 
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index 4edbd93174f..1eabf53d9f5 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -372,7 +372,7 @@ _bfd_sparc_elf_reloc_type_lookup (bfd *abfd,
     case BFD_RELOC_SPARC_WPLT30:
       return &_bfd_sparc_elf_howto_table[R_SPARC_WPLT30];
 
-    case BFD_RELOC_SPARC_COPY:
+    case BFD_RELOC_COPY:
       return &_bfd_sparc_elf_howto_table[R_SPARC_COPY];
 
     case BFD_RELOC_SPARC_GLOB_DAT:
diff --git a/bfd/elfxx-tilegx.c b/bfd/elfxx-tilegx.c
index 29371693dfd..09f11e3c824 100644
--- a/bfd/elfxx-tilegx.c
+++ b/bfd/elfxx-tilegx.c
@@ -650,6 +650,7 @@ static const reloc_map tilegx_reloc_map [] =
   TH_REMAP (BFD_RELOC_32_PCREL,		       R_TILEGX_32_PCREL)
   TH_REMAP (BFD_RELOC_16_PCREL,		       R_TILEGX_16_PCREL)
   TH_REMAP (BFD_RELOC_8_PCREL,		       R_TILEGX_8_PCREL)
+  TH_REMAP (BFD_RELOC_COPY,		       R_TILEGX_COPY)
 
 #define SIMPLE_REMAP(t) TH_REMAP (BFD_RELOC_##t, R_##t)
 
@@ -661,7 +662,6 @@ static const reloc_map tilegx_reloc_map [] =
   SIMPLE_REMAP (TILEGX_HW0_LAST)
   SIMPLE_REMAP (TILEGX_HW1_LAST)
   SIMPLE_REMAP (TILEGX_HW2_LAST)
-  SIMPLE_REMAP (TILEGX_COPY)
   SIMPLE_REMAP (TILEGX_GLOB_DAT)
   SIMPLE_REMAP (TILEGX_JMP_SLOT)
   SIMPLE_REMAP (TILEGX_RELATIVE)
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index f5a08ebea18..8cad7cbadf4 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1099,6 +1099,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_HI16_PLTOFF",
   "BFD_RELOC_HI16_S_PLTOFF",
   "BFD_RELOC_8_PLTOFF",
+  "BFD_RELOC_COPY",
   "BFD_RELOC_IRELATIVE",
   "BFD_RELOC_SIZE32",
   "BFD_RELOC_SIZE64",
@@ -1145,7 +1146,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_SPARC_PC10",
   "BFD_RELOC_SPARC_PC22",
   "BFD_RELOC_SPARC_WPLT30",
-  "BFD_RELOC_SPARC_COPY",
   "BFD_RELOC_SPARC_GLOB_DAT",
   "BFD_RELOC_SPARC_JMP_SLOT",
   "BFD_RELOC_SPARC_RELATIVE",
@@ -1345,7 +1345,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_MIPS_TLS_TPREL_LO16",
   "BFD_RELOC_MICROMIPS_TLS_TPREL_LO16",
   "BFD_RELOC_MIPS_EH",
-  "BFD_RELOC_MIPS_COPY",
   "BFD_RELOC_MIPS_JUMP_SLOT",
   "BFD_RELOC_MOXIE_10_PCREL",
   "BFD_RELOC_FT32_10",
@@ -1400,7 +1399,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_MN10300_GOT32",
   "BFD_RELOC_MN10300_GOT24",
   "BFD_RELOC_MN10300_GOT16",
-  "BFD_RELOC_MN10300_COPY",
   "BFD_RELOC_MN10300_GLOB_DAT",
   "BFD_RELOC_MN10300_JMP_SLOT",
   "BFD_RELOC_MN10300_RELATIVE",
@@ -1419,7 +1417,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_MN10300_16_PCREL",
   "BFD_RELOC_386_GOT32",
   "BFD_RELOC_386_PLT32",
-  "BFD_RELOC_386_COPY",
   "BFD_RELOC_386_GLOB_DAT",
   "BFD_RELOC_386_JUMP_SLOT",
   "BFD_RELOC_386_RELATIVE",
@@ -1442,7 +1439,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_386_TLS_DESC",
   "BFD_RELOC_386_GOT32X",
   "BFD_RELOC_X86_64_GOT32",
-  "BFD_RELOC_X86_64_COPY",
   "BFD_RELOC_X86_64_GLOB_DAT",
   "BFD_RELOC_X86_64_JUMP_SLOT",
   "BFD_RELOC_X86_64_RELATIVE",
@@ -1509,7 +1505,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_PPC_BA16",
   "BFD_RELOC_PPC_BA16_BRTAKEN",
   "BFD_RELOC_PPC_BA16_BRNTAKEN",
-  "BFD_RELOC_PPC_COPY",
   "BFD_RELOC_PPC_GLOB_DAT",
   "BFD_RELOC_PPC_JMP_SLOT",
   "BFD_RELOC_PPC_RELATIVE",
@@ -1814,7 +1809,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_SH_LABEL",
   "BFD_RELOC_SH_LOOP_START",
   "BFD_RELOC_SH_LOOP_END",
-  "BFD_RELOC_SH_COPY",
   "BFD_RELOC_SH_GLOB_DAT",
   "BFD_RELOC_SH_JMP_SLOT",
   "BFD_RELOC_SH_RELATIVE",
@@ -1923,7 +1917,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_COPY",
   "BFD_RELOC_ARC_GLOB_DAT",
   "BFD_RELOC_ARC_JMP_SLOT",
   "BFD_RELOC_ARC_RELATIVE",
@@ -2024,7 +2017,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_M32R_SDA16",
   "BFD_RELOC_M32R_GOT24",
   "BFD_RELOC_M32R_26_PLTREL",
-  "BFD_RELOC_M32R_COPY",
   "BFD_RELOC_M32R_GLOB_DAT",
   "BFD_RELOC_M32R_JMP_SLOT",
   "BFD_RELOC_M32R_RELATIVE",
@@ -2062,7 +2054,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_NDS32_GOT20",
   "BFD_RELOC_NDS32_9_PLTREL",
   "BFD_RELOC_NDS32_25_PLTREL",
-  "BFD_RELOC_NDS32_COPY",
   "BFD_RELOC_NDS32_GLOB_DAT",
   "BFD_RELOC_NDS32_JMP_SLOT",
   "BFD_RELOC_NDS32_RELATIVE",
@@ -2204,7 +2195,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_COPY",
   "BFD_RELOC_V850_GLOB_DAT",
   "BFD_RELOC_V850_JMP_SLOT",
   "BFD_RELOC_V850_RELATIVE",
@@ -2240,7 +2230,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_C6000_SBR_GOT_H16_W",
   "BFD_RELOC_C6000_DSBT_INDEX",
   "BFD_RELOC_C6000_PREL31",
-  "BFD_RELOC_C6000_COPY",
   "BFD_RELOC_C6000_JUMP_SLOT",
   "BFD_RELOC_C6000_EHTYPE",
   "BFD_RELOC_C6000_PCR_H16",
@@ -2301,7 +2290,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_METAG_RELBRANCH_PLT",
   "BFD_RELOC_METAG_GOTOFF",
   "BFD_RELOC_METAG_PLT",
-  "BFD_RELOC_METAG_COPY",
   "BFD_RELOC_METAG_JMP_SLOT",
   "BFD_RELOC_METAG_RELATIVE",
   "BFD_RELOC_METAG_GLOB_DAT",
@@ -2488,7 +2476,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_RX_RELAX",
   "BFD_RELOC_390_12",
   "BFD_RELOC_390_GOT12",
-  "BFD_RELOC_390_COPY",
   "BFD_RELOC_390_GLOB_DAT",
   "BFD_RELOC_390_JMP_SLOT",
   "BFD_RELOC_390_RELATIVE",
@@ -2624,7 +2611,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_IA64_LTV64LSB",
   "BFD_RELOC_IA64_IPLTMSB",
   "BFD_RELOC_IA64_IPLTLSB",
-  "BFD_RELOC_IA64_COPY",
   "BFD_RELOC_IA64_LTOFF22X",
   "BFD_RELOC_IA64_LDXMOV",
   "BFD_RELOC_IA64_TPREL14",
@@ -2735,7 +2721,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_CRIS_UNSIGNED_16",
   "BFD_RELOC_CRIS_LAPCQ_OFFSET",
   "BFD_RELOC_CRIS_UNSIGNED_4",
-  "BFD_RELOC_CRIS_COPY",
   "BFD_RELOC_CRIS_GLOB_DAT",
   "BFD_RELOC_CRIS_JUMP_SLOT",
   "BFD_RELOC_CRIS_RELATIVE",
@@ -2772,7 +2757,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_OR1K_PLT26",
   "BFD_RELOC_OR1K_PLTA26",
   "BFD_RELOC_OR1K_GOTOFF_SLO16",
-  "BFD_RELOC_OR1K_COPY",
   "BFD_RELOC_OR1K_GLOB_DAT",
   "BFD_RELOC_OR1K_JMP_SLOT",
   "BFD_RELOC_OR1K_RELATIVE",
@@ -2929,7 +2913,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_LM32_16_GOT",
   "BFD_RELOC_LM32_GOTOFF_HI16",
   "BFD_RELOC_LM32_GOTOFF_LO16",
-  "BFD_RELOC_LM32_COPY",
   "BFD_RELOC_LM32_GLOB_DAT",
   "BFD_RELOC_LM32_JMP_SLOT",
   "BFD_RELOC_LM32_RELATIVE",
@@ -2962,7 +2945,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_MICROBLAZE_64_PLT",
   "BFD_RELOC_MICROBLAZE_64_GOTOFF",
   "BFD_RELOC_MICROBLAZE_32_GOTOFF",
-  "BFD_RELOC_MICROBLAZE_COPY",
   "BFD_RELOC_MICROBLAZE_64_TLS",
   "BFD_RELOC_MICROBLAZE_64_TLSGD",
   "BFD_RELOC_MICROBLAZE_64_TLSLD",
@@ -3184,7 +3166,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC",
   "BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC",
   "BFD_RELOC_AARCH64_BRANCH9",
-  "BFD_RELOC_TILEPRO_COPY",
   "BFD_RELOC_TILEPRO_GLOB_DAT",
   "BFD_RELOC_TILEPRO_JMP_SLOT",
   "BFD_RELOC_TILEPRO_RELATIVE",
@@ -3270,7 +3251,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_TILEGX_HW0_LAST",
   "BFD_RELOC_TILEGX_HW1_LAST",
   "BFD_RELOC_TILEGX_HW2_LAST",
-  "BFD_RELOC_TILEGX_COPY",
   "BFD_RELOC_TILEGX_GLOB_DAT",
   "BFD_RELOC_TILEGX_JMP_SLOT",
   "BFD_RELOC_TILEGX_RELATIVE",
@@ -3396,7 +3376,6 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
   "BFD_RELOC_WASM32_LEB128_PLT",
   "BFD_RELOC_WASM32_PLT_INDEX",
   "BFD_RELOC_WASM32_ABS32_CODE",
-  "BFD_RELOC_WASM32_COPY",
   "BFD_RELOC_WASM32_CODE_POINTER",
   "BFD_RELOC_WASM32_INDEX",
   "BFD_RELOC_WASM32_PLT_SIG",
diff --git a/bfd/reloc.c b/bfd/reloc.c
index f85ec6da83e..792ebb8955c 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -1470,6 +1470,8 @@ ENUMX
   BFD_RELOC_HI16_S_PLTOFF
 ENUMX
   BFD_RELOC_8_PLTOFF
+ENUMX
+  BFD_RELOC_COPY
 ENUMX
   BFD_RELOC_IRELATIVE
 ENUMDOC
@@ -1595,8 +1597,6 @@ ENUMX
   BFD_RELOC_SPARC_PC22
 ENUMX
   BFD_RELOC_SPARC_WPLT30
-ENUMX
-  BFD_RELOC_SPARC_COPY
 ENUMX
   BFD_RELOC_SPARC_GLOB_DAT
 ENUMX
@@ -2166,8 +2166,6 @@ ENUMDOC
   MIPS ELF relocations.
 
 ENUM
-  BFD_RELOC_MIPS_COPY
-ENUMX
   BFD_RELOC_MIPS_JUMP_SLOT
 ENUMDOC
   MIPS ELF relocations (VxWorks and PLT extensions).
@@ -2298,10 +2296,6 @@ ENUM
 ENUMDOC
   This is a 16bit GOT-relative reloc for the mn10300, offset by two
   bytes in the instruction.
-ENUM
-  BFD_RELOC_MN10300_COPY
-ENUMDOC
-  Copy symbol at runtime.
 ENUM
   BFD_RELOC_MN10300_GLOB_DAT
 ENUMDOC
@@ -2360,8 +2354,6 @@ ENUM
   BFD_RELOC_386_GOT32
 ENUMX
   BFD_RELOC_386_PLT32
-ENUMX
-  BFD_RELOC_386_COPY
 ENUMX
   BFD_RELOC_386_GLOB_DAT
 ENUMX
@@ -2409,8 +2401,6 @@ ENUMDOC
 
 ENUM
   BFD_RELOC_X86_64_GOT32
-ENUMX
-  BFD_RELOC_X86_64_COPY
 ENUMX
   BFD_RELOC_X86_64_GLOB_DAT
 ENUMX
@@ -2555,8 +2545,6 @@ ENUMX
   BFD_RELOC_PPC_BA16_BRTAKEN
 ENUMX
   BFD_RELOC_PPC_BA16_BRNTAKEN
-ENUMX
-  BFD_RELOC_PPC_COPY
 ENUMX
   BFD_RELOC_PPC_GLOB_DAT
 ENUMX
@@ -3262,8 +3250,6 @@ ENUMX
   BFD_RELOC_SH_LOOP_START
 ENUMX
   BFD_RELOC_SH_LOOP_END
-ENUMX
-  BFD_RELOC_SH_COPY
 ENUMX
   BFD_RELOC_SH_GLOB_DAT
 ENUMX
@@ -3483,8 +3469,6 @@ ENUMX
   BFD_RELOC_ARC_GOT32
 ENUMX
   BFD_RELOC_ARC_GOTPC32
-ENUMX
-  BFD_RELOC_ARC_COPY
 ENUMX
   BFD_RELOC_ARC_GLOB_DAT
 ENUMX
@@ -3832,8 +3816,6 @@ ENUM
   BFD_RELOC_M32R_GOT24
 ENUMX
   BFD_RELOC_M32R_26_PLTREL
-ENUMX
-  BFD_RELOC_M32R_COPY
 ENUMX
   BFD_RELOC_M32R_GLOB_DAT
 ENUMX
@@ -3969,8 +3951,6 @@ ENUMX
   BFD_RELOC_NDS32_9_PLTREL
 ENUMX
   BFD_RELOC_NDS32_25_PLTREL
-ENUMX
-  BFD_RELOC_NDS32_COPY
 ENUMX
   BFD_RELOC_NDS32_GLOB_DAT
 ENUMX
@@ -4354,8 +4334,6 @@ ENUMX
   BFD_RELOC_V850_22_PLT_PCREL
 ENUMX
   BFD_RELOC_V850_32_PLT_PCREL
-ENUMX
-  BFD_RELOC_V850_COPY
 ENUMX
   BFD_RELOC_V850_GLOB_DAT
 ENUMX
@@ -4461,8 +4439,6 @@ ENUMX
   BFD_RELOC_C6000_DSBT_INDEX
 ENUMX
   BFD_RELOC_C6000_PREL31
-ENUMX
-  BFD_RELOC_C6000_COPY
 ENUMX
   BFD_RELOC_C6000_JUMP_SLOT
 ENUMX
@@ -4616,8 +4592,6 @@ ENUMX
   BFD_RELOC_METAG_GOTOFF
 ENUMX
   BFD_RELOC_METAG_PLT
-ENUMX
-  BFD_RELOC_METAG_COPY
 ENUMX
   BFD_RELOC_METAG_JMP_SLOT
 ENUMX
@@ -5137,10 +5111,6 @@ ENUM
   BFD_RELOC_390_GOT12
 ENUMDOC
   12 bit GOT offset.
-ENUM
-  BFD_RELOC_390_COPY
-ENUMDOC
-  Copy symbol at runtime.
 ENUM
   BFD_RELOC_390_GLOB_DAT
 ENUMDOC
@@ -5526,8 +5496,6 @@ ENUMX
   BFD_RELOC_IA64_IPLTMSB
 ENUMX
   BFD_RELOC_IA64_IPLTLSB
-ENUMX
-  BFD_RELOC_IA64_COPY
 ENUMX
   BFD_RELOC_IA64_LTOFF22X
 ENUMX
@@ -5864,8 +5832,6 @@ ENUMDOC
   These relocs are only used within the CRIS assembler.  They are not
   (at present) written to any object files.
 ENUM
-  BFD_RELOC_CRIS_COPY
-ENUMX
   BFD_RELOC_CRIS_GLOB_DAT
 ENUMX
   BFD_RELOC_CRIS_JUMP_SLOT
@@ -5958,8 +5924,6 @@ ENUMX
   BFD_RELOC_OR1K_PLTA26
 ENUMX
   BFD_RELOC_OR1K_GOTOFF_SLO16
-ENUMX
-  BFD_RELOC_OR1K_COPY
 ENUMX
   BFD_RELOC_OR1K_GLOB_DAT
 ENUMX
@@ -6406,8 +6370,6 @@ ENUMX
   BFD_RELOC_LM32_GOTOFF_HI16
 ENUMX
   BFD_RELOC_LM32_GOTOFF_LO16
-ENUMX
-  BFD_RELOC_LM32_COPY
 ENUMX
   BFD_RELOC_LM32_GLOB_DAT
 ENUMX
@@ -6556,11 +6518,6 @@ ENUMDOC
   This is a 32 bit reloc that stores the 32 bit GOT relative value in
   a word.  The relocation is relative offset from
   _GLOBAL_OFFSET_TABLE_.
-ENUM
-  BFD_RELOC_MICROBLAZE_COPY
-ENUMDOC
-  This is used to tell the dynamic linker to copy the value out of
-  the dynamic object into the runtime process image.
 ENUM
   BFD_RELOC_MICROBLAZE_64_TLS
 ENUMDOC
@@ -7368,8 +7325,6 @@ ENUMDOC
   The lowest two bits must be zero and are not stored in the
   instruction, giving an 11 bit signed byte offset.
 ENUM
-  BFD_RELOC_TILEPRO_COPY
-ENUMX
   BFD_RELOC_TILEPRO_GLOB_DAT
 ENUMX
   BFD_RELOC_TILEPRO_JMP_SLOT
@@ -7541,8 +7496,6 @@ ENUMX
   BFD_RELOC_TILEGX_HW1_LAST
 ENUMX
   BFD_RELOC_TILEGX_HW2_LAST
-ENUMX
-  BFD_RELOC_TILEGX_COPY
 ENUMX
   BFD_RELOC_TILEGX_GLOB_DAT
 ENUMX
@@ -7818,8 +7771,6 @@ ENUMX
   BFD_RELOC_WASM32_PLT_INDEX
 ENUMX
   BFD_RELOC_WASM32_ABS32_CODE
-ENUMX
-  BFD_RELOC_WASM32_COPY
 ENUMX
   BFD_RELOC_WASM32_CODE_POINTER
 ENUMX
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 3f440a6079c..a35cecb59e6 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -2088,7 +2088,7 @@ ppc_elf_suffix (char **str_p, expressionS *exp_p)
     MAP ("plt@l",		BFD_RELOC_LO16_PLTOFF),
     MAP ("plt@h",		BFD_RELOC_HI16_PLTOFF),
     MAP ("plt@ha",		BFD_RELOC_HI16_S_PLTOFF),
-    MAP ("copy",		BFD_RELOC_PPC_COPY),
+    MAP ("copy",		BFD_RELOC_COPY),
     MAP ("globdat",		BFD_RELOC_PPC_GLOB_DAT),
     MAP ("sectoff",		BFD_RELOC_16_BASEREL),
     MAP ("sectoff@l",		BFD_RELOC_LO16_BASEREL),
@@ -3164,7 +3164,7 @@ fixup_size (bfd_reloc_code_real_type reloc, bool *pc_relative)
 #ifndef OBJ_XCOFF
     case BFD_RELOC_CTOR:
 #endif
-    case BFD_RELOC_PPC_COPY:
+    case BFD_RELOC_COPY:
     case BFD_RELOC_PPC_DTPMOD:
     case BFD_RELOC_PPC_DTPREL:
     case BFD_RELOC_PPC_GLOB_DAT:
@@ -7312,7 +7312,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
 	case BFD_RELOC_PPC_DTPMOD:
 	case BFD_RELOC_PPC_TPREL:
 	case BFD_RELOC_PPC_DTPREL:
-	case BFD_RELOC_PPC_COPY:
+	case BFD_RELOC_COPY:
 	case BFD_RELOC_PPC_GLOB_DAT:
 	case BFD_RELOC_32_PLT_PCREL:
 	case BFD_RELOC_PPC_EMB_NADDR32:
@@ -7479,7 +7479,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
 	case BFD_RELOC_LO16_PLTOFF:
 	case BFD_RELOC_HI16_PLTOFF:
 	case BFD_RELOC_HI16_S_PLTOFF:
-	case BFD_RELOC_PPC_COPY:
+	case BFD_RELOC_COPY:
 	case BFD_RELOC_PPC_GLOB_DAT:
 	case BFD_RELOC_16_BASEREL:
 	case BFD_RELOC_LO16_BASEREL:
diff --git a/include/elf/cris.h b/include/elf/cris.h
index 5ba428e5495..aad2c1b4bc9 100644
--- a/include/elf/cris.h
+++ b/include/elf/cris.h
@@ -40,7 +40,7 @@ START_RELOC_NUMBERS (elf_cris_reloc_type)
   RELOC_NUMBER (R_CRIS_GNU_VTENTRY,	8)
 
   /* Copy contents at dynlinking.  Generated by the linker.
-     The BFD equivalent is BFD_RELOC_CRIS_COPY.  */
+     The BFD equivalent is BFD_RELOC_COPY.  */
   RELOC_NUMBER (R_CRIS_COPY, 9)
 
   /* Create GOT entry.  Generated by the linker.


More information about the Binutils-cvs mailing list