[10/14] bfd/ELF: fold BFD_RELOC_<arch>_COPY

Message ID 006648b0-cf8f-4a3a-8908-78bb5f1d62c8@suse.com
State New
Headers
Series bfd: a little bit of reloc enum cleanup |

Commit Message

Jan Beulich Nov. 28, 2025, 11:42 a.m. UTC
  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.
---
Why does the PPC assembler deal with COPY relocs?
  

Patch

--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -3333,6 +3333,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.  */
@@ -3405,7 +3406,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,
@@ -3737,7 +3737,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.  */
@@ -3810,9 +3809,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,
 
@@ -3853,7 +3849,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,
@@ -3878,7 +3873,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,
@@ -3953,7 +3947,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,
@@ -4334,7 +4327,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,
@@ -4445,7 +4437,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,
@@ -4687,7 +4678,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,
@@ -4784,7 +4774,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,
@@ -5024,7 +5013,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,
@@ -5088,7 +5076,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,
@@ -5178,7 +5165,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,
@@ -5505,9 +5491,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,
 
@@ -5753,7 +5736,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,
@@ -5975,7 +5957,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,
@@ -6031,7 +6012,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,
@@ -6310,7 +6290,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,
@@ -6421,10 +6400,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,
 
@@ -7011,7 +6986,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,
@@ -7099,7 +7073,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,
@@ -7246,7 +7219,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,
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -662,7 +662,7 @@  static const struct mn10300_reloc_map mn
   { 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 },
--- a/bfd/elf32-arc.c
+++ b/bfd/elf32-arc.c
@@ -385,6 +385,7 @@  arc_elf_link_hash_table_create (bfd *abf
 #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[] =
 {
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -398,7 +398,7 @@  static const struct cris_reloc_map cris_
   { 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 },
--- 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:
--- a/bfd/elf32-lm32.c
+++ b/bfd/elf32-lm32.c
@@ -444,7 +444,7 @@  static const struct lm32_reloc_map lm32_
   { 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 },
--- a/bfd/elf32-m32r.c
+++ b/bfd/elf32-m32r.c
@@ -1211,7 +1211,7 @@  static const struct m32r_reloc_map m32r_
 
   { 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 },
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -720,7 +720,7 @@  static const struct metag_reloc_map meta
     { 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 },
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
@@ -660,7 +660,7 @@  microblaze_elf_reloc_type_lookup (bfd *
     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:
--- a/bfd/elf32-mips.c
+++ b/bfd/elf32-mips.c
@@ -3589,7 +3589,7 @@  mips_elf32_reloc_type_lookup (bfd *abfd,
       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;
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -3113,7 +3113,7 @@  static const struct nds32_reloc_map_entr
   {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},
--- a/bfd/elf32-or1k.c
+++ b/bfd/elf32-or1k.c
@@ -876,7 +876,7 @@  static const struct or1k_reloc_map or1k_
   { 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 },
--- a/bfd/elf32-ppc.c
+++ b/bfd/elf32-ppc.c
@@ -753,7 +753,7 @@  ppc_elf_reloc_type_lookup (bfd *abfd ATT
     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;
--- a/bfd/elf32-s390.c
+++ b/bfd/elf32-s390.c
@@ -203,7 +203,7 @@  elf_s390_reloc_type_lookup (bfd *abfd AT
       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];
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -355,7 +355,7 @@  static const struct elf_reloc_map sh_rel
   { 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 },
--- a/bfd/elf32-tic6x.c
+++ b/bfd/elf32-tic6x.c
@@ -1422,7 +1422,7 @@  static const tic6x_reloc_map elf32_tic6x
     { 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 },
--- 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)
--- a/bfd/elf32-v850.c
+++ b/bfd/elf32-v850.c
@@ -1736,7 +1736,7 @@  static const struct v850_elf_reloc_map v
   { 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		 },
--- a/bfd/elf64-mips.c
+++ b/bfd/elf64-mips.c
@@ -3850,7 +3850,7 @@  bfd_elf64_bfd_reloc_type_lookup (bfd *ab
       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;
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -1077,7 +1077,7 @@  ppc64_elf_reloc_type_lookup (bfd *abfd,
       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;
--- 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];
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -234,7 +234,7 @@  static const struct elf_reloc_map x86_64
   { 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, },
--- a/bfd/elfn32-mips.c
+++ b/bfd/elfn32-mips.c
@@ -3685,7 +3685,7 @@  bfd_elf32_bfd_reloc_type_lookup (bfd *ab
       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;
--- 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;
 
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -372,7 +372,7 @@  _bfd_sparc_elf_reloc_type_lookup (bfd *a
     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:
--- 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)
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -1099,6 +1099,7 @@  static const char *const bfd_reloc_code_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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_
   "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",
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -1471,6 +1471,8 @@  ENUMX
 ENUMX
   BFD_RELOC_8_PLTOFF
 ENUMX
+  BFD_RELOC_COPY
+ENUMX
   BFD_RELOC_IRELATIVE
 ENUMDOC
   For ELF.
@@ -1596,8 +1598,6 @@  ENUMX
 ENUMX
   BFD_RELOC_SPARC_WPLT30
 ENUMX
-  BFD_RELOC_SPARC_COPY
-ENUMX
   BFD_RELOC_SPARC_GLOB_DAT
 ENUMX
   BFD_RELOC_SPARC_JMP_SLOT
@@ -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).
@@ -2299,10 +2297,6 @@  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
   Create GOT entry.
@@ -2361,8 +2355,6 @@  ENUM
 ENUMX
   BFD_RELOC_386_PLT32
 ENUMX
-  BFD_RELOC_386_COPY
-ENUMX
   BFD_RELOC_386_GLOB_DAT
 ENUMX
   BFD_RELOC_386_JUMP_SLOT
@@ -2410,8 +2402,6 @@  ENUMDOC
 ENUM
   BFD_RELOC_X86_64_GOT32
 ENUMX
-  BFD_RELOC_X86_64_COPY
-ENUMX
   BFD_RELOC_X86_64_GLOB_DAT
 ENUMX
   BFD_RELOC_X86_64_JUMP_SLOT
@@ -2556,8 +2546,6 @@  ENUMX
 ENUMX
   BFD_RELOC_PPC_BA16_BRNTAKEN
 ENUMX
-  BFD_RELOC_PPC_COPY
-ENUMX
   BFD_RELOC_PPC_GLOB_DAT
 ENUMX
   BFD_RELOC_PPC_JMP_SLOT
@@ -3263,8 +3251,6 @@  ENUMX
 ENUMX
   BFD_RELOC_SH_LOOP_END
 ENUMX
-  BFD_RELOC_SH_COPY
-ENUMX
   BFD_RELOC_SH_GLOB_DAT
 ENUMX
   BFD_RELOC_SH_JMP_SLOT
@@ -3484,8 +3470,6 @@  ENUMX
 ENUMX
   BFD_RELOC_ARC_GOTPC32
 ENUMX
-  BFD_RELOC_ARC_COPY
-ENUMX
   BFD_RELOC_ARC_GLOB_DAT
 ENUMX
   BFD_RELOC_ARC_JMP_SLOT
@@ -3833,8 +3817,6 @@  ENUM
 ENUMX
   BFD_RELOC_M32R_26_PLTREL
 ENUMX
-  BFD_RELOC_M32R_COPY
-ENUMX
   BFD_RELOC_M32R_GLOB_DAT
 ENUMX
   BFD_RELOC_M32R_JMP_SLOT
@@ -3970,8 +3952,6 @@  ENUMX
 ENUMX
   BFD_RELOC_NDS32_25_PLTREL
 ENUMX
-  BFD_RELOC_NDS32_COPY
-ENUMX
   BFD_RELOC_NDS32_GLOB_DAT
 ENUMX
   BFD_RELOC_NDS32_JMP_SLOT
@@ -4355,8 +4335,6 @@  ENUMX
 ENUMX
   BFD_RELOC_V850_32_PLT_PCREL
 ENUMX
-  BFD_RELOC_V850_COPY
-ENUMX
   BFD_RELOC_V850_GLOB_DAT
 ENUMX
   BFD_RELOC_V850_JMP_SLOT
@@ -4462,8 +4440,6 @@  ENUMX
 ENUMX
   BFD_RELOC_C6000_PREL31
 ENUMX
-  BFD_RELOC_C6000_COPY
-ENUMX
   BFD_RELOC_C6000_JUMP_SLOT
 ENUMX
   BFD_RELOC_C6000_EHTYPE
@@ -4617,8 +4593,6 @@  ENUMX
 ENUMX
   BFD_RELOC_METAG_PLT
 ENUMX
-  BFD_RELOC_METAG_COPY
-ENUMX
   BFD_RELOC_METAG_JMP_SLOT
 ENUMX
   BFD_RELOC_METAG_RELATIVE
@@ -5138,10 +5112,6 @@  ENUM
 ENUMDOC
   12 bit GOT offset.
 ENUM
-  BFD_RELOC_390_COPY
-ENUMDOC
-  Copy symbol at runtime.
-ENUM
   BFD_RELOC_390_GLOB_DAT
 ENUMDOC
   Create GOT entry.
@@ -5527,8 +5497,6 @@  ENUMX
 ENUMX
   BFD_RELOC_IA64_IPLTLSB
 ENUMX
-  BFD_RELOC_IA64_COPY
-ENUMX
   BFD_RELOC_IA64_LTOFF22X
 ENUMX
   BFD_RELOC_IA64_LDXMOV
@@ -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
@@ -5959,8 +5925,6 @@  ENUMX
 ENUMX
   BFD_RELOC_OR1K_GOTOFF_SLO16
 ENUMX
-  BFD_RELOC_OR1K_COPY
-ENUMX
   BFD_RELOC_OR1K_GLOB_DAT
 ENUMX
   BFD_RELOC_OR1K_JMP_SLOT
@@ -6407,8 +6371,6 @@  ENUMX
 ENUMX
   BFD_RELOC_LM32_GOTOFF_LO16
 ENUMX
-  BFD_RELOC_LM32_COPY
-ENUMX
   BFD_RELOC_LM32_GLOB_DAT
 ENUMX
   BFD_RELOC_LM32_JMP_SLOT
@@ -6557,11 +6519,6 @@  ENUMDOC
   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
   Unused Reloc.
@@ -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
@@ -7542,8 +7497,6 @@  ENUMX
 ENUMX
   BFD_RELOC_TILEGX_HW2_LAST
 ENUMX
-  BFD_RELOC_TILEGX_COPY
-ENUMX
   BFD_RELOC_TILEGX_GLOB_DAT
 ENUMX
   BFD_RELOC_TILEGX_JMP_SLOT
@@ -7819,8 +7772,6 @@  ENUMX
 ENUMX
   BFD_RELOC_WASM32_ABS32_CODE
 ENUMX
-  BFD_RELOC_WASM32_COPY
-ENUMX
   BFD_RELOC_WASM32_CODE_POINTER
 ENUMX
   BFD_RELOC_WASM32_INDEX
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -2088,7 +2088,7 @@  ppc_elf_suffix (char **str_p, expression
     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 rel
 #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,
 	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,
 	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:
--- 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.