This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: Preserve e_flags.


On Tue, Dec 18, 2001 at 06:41:31PM +1030, Alan Modra wrote:
> On Sat, Dec 15, 2001 at 04:20:17PM -0800, H . J . Lu wrote:
> > On Sat, Dec 15, 2001 at 10:11:35AM -0800, H . J . Lu wrote:
> > > On Tue, Dec 11, 2001 at 03:53:20PM +0100, Michal Moskal wrote:
> > > > 
> > > > And now the problem is that objcopy (and strip), does not copy e_flags
> > > > from one elf file to another.
> > 
> > Here is a patch. Shouldn't we preserve e_flags?
> 
> I can't think of a reason not to.  Your patch needs to go one step
> further, and remove/modify various back-end versions of this function
> so that _bfd_elf_copy_private_bfd_data isn't duplicated needlessly.
> 

FYI, I checked this in. I didn't touch elf32-sh.c nor elf32-arm.h since
they are different. I will leave them to someone else.

Thanks.



H.J.
-----
2001-12-18  H.J. Lu <hjl@gnu.org>

	* elf-bfd.h (_bfd_elf_copy_private_bfd_data): New. Prototype.
	(_bfd_mips_elf_copy_private_bfd_data): Removed.

	* elf.c (_bfd_elf_copy_private_bfd_data): New. Copy e_flags in
	the ELF header.

	* elf32-i370.c (??_elf_copy_private_bfd_data): Removed.
	(bfd_elf??_bfd_copy_private_bfd_data): Removed.
	* elf32-m32r.c: Likewise.
	* elf32-m68k.c: Likewise.
	* elf32-mcore.c: Likewise.
	* elf32-mips.c: Likewise.
	* elf32-ppc.c: Likewise.
	* elf32-v850.c: Likewise.
	* elf64-ppc.c: Likewise.
	* elf64-sparc.c: Likewise.
	* elfxx-ia64.c: Likewise.

	* elf64-mips.c (bfd_elf64_bfd_copy_private_bfd_data): Removed.

	* elfxx-target.h (bfd_elfNN_bfd_copy_private_bfd_data): Defined
	to _bfd_elf_copy_private_bfd_data.

--- bfd/elf-bfd.h.header	Mon Dec 17 16:49:12 2001
+++ bfd/elf-bfd.h	Tue Dec 18 09:42:02 2001
@@ -1147,6 +1147,8 @@ extern char *bfd_elf_string_from_elf_sec
 extern char *bfd_elf_get_str_section
   PARAMS ((bfd *, unsigned));
 
+extern boolean _bfd_elf_copy_private_bfd_data
+  PARAMS ((bfd *, bfd *));
 extern boolean _bfd_elf_print_private_bfd_data
   PARAMS ((bfd *, PTR));
 extern void bfd_elf_print_symbol
@@ -1546,8 +1548,6 @@ extern bfd_reloc_status_type _bfd_mips_e
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 extern boolean _bfd_mips_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-extern boolean _bfd_mips_elf_copy_private_bfd_data
-  PARAMS ((bfd *, bfd *));
 extern boolean _bfd_mips_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 extern boolean _bfd_mips_elf_find_nearest_line
--- bfd/elf.c.header	Tue Dec 18 09:24:34 2001
+++ bfd/elf.c	Tue Dec 18 09:28:05 2001
@@ -787,6 +787,24 @@ _bfd_elf_merge_sections (abfd, info)
 /* Print out the program headers.  */
 
 boolean
+_bfd_elf_copy_private_bfd_data (ibfd, obfd)
+     bfd *ibfd;
+     bfd *obfd;
+{
+  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
+      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
+    return true;
+
+  BFD_ASSERT (!elf_flags_init (obfd)
+	      || (elf_elfheader (obfd)->e_flags
+		  == elf_elfheader (ibfd)->e_flags));
+
+  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
+  elf_flags_init (obfd) = true;
+  return true;
+}
+
+boolean
 _bfd_elf_print_private_bfd_data (abfd, farg)
      bfd *abfd;
      PTR farg;
--- bfd/elf32-i370.c.header	Mon Dec 17 16:49:14 2001
+++ bfd/elf32-i370.c	Tue Dec 18 09:35:16 2001
@@ -301,7 +301,6 @@ i370_elf_reloc_type_lookup (abfd, code)
   return i370_elf_howto_table[ (int)i370_reloc ];
 };
 
-static boolean i370_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *));
 static boolean i370_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
 
 static boolean i370_elf_relocate_section PARAMS ((bfd *,
@@ -381,24 +380,6 @@ i370_elf_set_private_flags (abfd, flags)
   return true;
 }
 
-/* Copy backend specific data from one object module to another */
-static boolean
-i370_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd *ibfd;
-     bfd *obfd;
-{
-  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-	      || elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags);
-
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking */
 static boolean
@@ -1675,7 +1656,6 @@ i370_elf_post_process_headers (abfd, lin
 
 #define bfd_elf32_bfd_reloc_type_lookup		i370_elf_reloc_type_lookup
 #define bfd_elf32_bfd_set_private_flags		i370_elf_set_private_flags
-#define bfd_elf32_bfd_copy_private_bfd_data	i370_elf_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data	i370_elf_merge_private_bfd_data
 #define elf_backend_relocate_section		i370_elf_relocate_section
 
--- bfd/elf32-m32r.c.header	Mon Dec 17 16:49:15 2001
+++ bfd/elf32-m32r.c	Tue Dec 18 09:35:30 2001
@@ -66,8 +66,6 @@ static void m32r_elf_final_write_process
   PARAMS ((bfd *, boolean));
 static boolean m32r_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean m32r_elf_copy_private_bfd_data
-  PARAMS ((bfd *, bfd *));
 static boolean m32r_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 static boolean m32r_elf_print_private_bfd_data
@@ -1951,26 +1949,6 @@ m32r_elf_set_private_flags (abfd, flags)
   return true;
 }
 
-/* Copy backend specific data from one object module to another */
-static boolean
-m32r_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd * ibfd;
-     bfd * obfd;
-{
-  if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-	      || (elf_elfheader (obfd)->e_flags
-		  == elf_elfheader (ibfd)->e_flags));
-
-  elf_gp (obfd) = elf_gp (ibfd);
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 static boolean
@@ -2192,7 +2170,6 @@ m32r_elf_check_relocs (abfd, info, sec, 
 
 #define elf_backend_object_p			m32r_elf_object_p
 #define elf_backend_final_write_processing 	m32r_elf_final_write_processing
-#define bfd_elf32_bfd_copy_private_bfd_data 	m32r_elf_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data 	m32r_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags		m32r_elf_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data	m32r_elf_print_private_bfd_data
--- bfd/elf32-m68k.c.header	Mon Dec 17 16:49:15 2001
+++ bfd/elf32-m68k.c	Tue Dec 18 09:35:45 2001
@@ -57,8 +57,6 @@ static boolean elf_m68k_finish_dynamic_s
 
 static boolean elf32_m68k_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean elf32_m68k_copy_private_bfd_data
-  PARAMS ((bfd *, bfd *));
 static boolean elf32_m68k_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 static boolean elf32_m68k_print_private_bfd_data
@@ -367,26 +365,6 @@ elf32_m68k_set_private_flags (abfd, flag
   return true;
 }
 
-/* Copy m68k-specific data from one module to another */
-static boolean
-elf32_m68k_copy_private_bfd_data (ibfd, obfd)
-     bfd *ibfd;
-     bfd *obfd;
-{
-  flagword in_flags;
-
-  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  in_flags = elf_elfheader (ibfd)->e_flags;
-
-  elf_elfheader (obfd)->e_flags = in_flags;
-  elf_flags_init (obfd) = true;
-
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 static boolean
@@ -2329,8 +2307,6 @@ elf32_m68k_reloc_type_class (rela)
 					elf_m68k_finish_dynamic_sections
 #define elf_backend_gc_mark_hook	elf_m68k_gc_mark_hook
 #define elf_backend_gc_sweep_hook	elf_m68k_gc_sweep_hook
-#define bfd_elf32_bfd_copy_private_bfd_data \
-                                        elf32_m68k_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data \
                                         elf32_m68k_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags \
--- bfd/elf32-mcore.c.header	Mon Dec 17 16:49:15 2001
+++ bfd/elf32-mcore.c	Tue Dec 18 09:35:59 2001
@@ -39,8 +39,6 @@ static void mcore_elf_info_to_howto
   PARAMS ((bfd *, arelent *, Elf32_Internal_Rela *));
 static boolean mcore_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean mcore_elf_copy_private_bfd_data
-  PARAMS ((bfd *, bfd *));
 static boolean mcore_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 static bfd_reloc_status_type mcore_elf_unsupported_reloc
@@ -301,24 +299,6 @@ mcore_elf_set_private_flags (abfd, flags
   return true;
 }
 
-/* Copy backend specific data from one object module to another.  */
-static boolean
-mcore_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd * ibfd;
-     bfd * obfd;
-{
-  if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (! elf_flags_init (obfd)
-	      || elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags);
-
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 static boolean
@@ -737,7 +717,6 @@ mcore_elf_check_relocs (abfd, info, sec,
 #define elf_info_to_howto	mcore_elf_info_to_howto
 #define elf_info_to_howto_rel	NULL
 
-#define bfd_elf32_bfd_copy_private_bfd_data	mcore_elf_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data	mcore_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags		mcore_elf_set_private_flags
 #define bfd_elf32_bfd_reloc_type_lookup		mcore_elf_reloc_type_lookup
--- bfd/elf32-mips.c.header	Mon Dec 17 16:49:16 2001
+++ bfd/elf32-mips.c	Tue Dec 18 09:37:00 2001
@@ -3036,27 +3036,6 @@ _bfd_mips_elf_set_private_flags (abfd, f
   return true;
 }
 
-/* Copy backend specific data from one object module to another */
-
-boolean
-_bfd_mips_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd *ibfd;
-     bfd *obfd;
-{
-  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-	      || (elf_elfheader (obfd)->e_flags
-		  == elf_elfheader (ibfd)->e_flags));
-
-  elf_gp (obfd) = elf_gp (ibfd);
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
@@ -10145,8 +10124,6 @@ static const struct ecoff_debug_swap mip
 #define bfd_elf32_bfd_link_hash_table_create \
 					_bfd_mips_elf_link_hash_table_create
 #define bfd_elf32_bfd_final_link	_bfd_mips_elf_final_link
-#define bfd_elf32_bfd_copy_private_bfd_data \
-					_bfd_mips_elf_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data \
 					_bfd_mips_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags	_bfd_mips_elf_set_private_flags
--- bfd/elf32-ppc.c.header	Mon Dec 17 16:49:16 2001
+++ bfd/elf32-ppc.c	Tue Dec 18 09:37:12 2001
@@ -44,7 +44,6 @@ static boolean ppc_elf_relax_section
 static bfd_reloc_status_type ppc_elf_addr16_ha_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static boolean ppc_elf_set_private_flags PARAMS ((bfd *, flagword));
-static boolean ppc_elf_copy_private_bfd_data PARAMS ((bfd *, bfd *));
 static boolean ppc_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
 
 static int ppc_elf_additional_program_headers PARAMS ((bfd *));
@@ -1394,24 +1393,6 @@ ppc_elf_set_private_flags (abfd, flags)
   return true;
 }
 
-/* Copy backend specific data from one object module to another */
-static boolean
-ppc_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd *ibfd;
-     bfd *obfd;
-{
-  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-	      || elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags);
-
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking */
 static boolean
@@ -3799,7 +3780,6 @@ ppc_elf_grok_psinfo (abfd, note)
 #define elf_backend_got_header_size	12
 #define elf_backend_plt_header_size	PLT_INITIAL_ENTRY_SIZE
 
-#define bfd_elf32_bfd_copy_private_bfd_data	ppc_elf_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data	ppc_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_relax_section             ppc_elf_relax_section
 #define bfd_elf32_bfd_reloc_type_lookup		ppc_elf_reloc_type_lookup
--- bfd/elf32-v850.c.header	Mon Dec 17 16:49:16 2001
+++ bfd/elf32-v850.c	Tue Dec 18 09:39:23 2001
@@ -64,8 +64,6 @@ static void v850_elf_final_write_process
   PARAMS ((bfd *, boolean));
 static boolean v850_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean v850_elf_copy_private_bfd_data
-  PARAMS ((bfd *, bfd *));
 static boolean v850_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 static boolean v850_elf_print_private_bfd_data
@@ -1832,28 +1830,6 @@ v850_elf_set_private_flags (abfd, flags)
   return true;
 }
 
-/* Copy backend specific data from one object module to another.  */
-
-static boolean
-v850_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd * ibfd;
-     bfd * obfd;
-{
-  if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-	      || (elf_elfheader (obfd)->e_flags
-		  == elf_elfheader (ibfd)->e_flags));
-
-  elf_gp (obfd) = elf_gp (ibfd);
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-
-  return true;
-}
-
 /* Merge backend specific data from an object file
    to the output object file when linking.  */
 static boolean
@@ -2238,7 +2214,6 @@ v850_elf_fake_sections (abfd, hdr, sec)
 
 #define bfd_elf32_bfd_is_local_label_name	v850_elf_is_local_label_name
 #define bfd_elf32_bfd_reloc_type_lookup		v850_elf_reloc_type_lookup
-#define bfd_elf32_bfd_copy_private_bfd_data 	v850_elf_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data 	v850_elf_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags		v850_elf_set_private_flags
 #define bfd_elf32_bfd_print_private_bfd_data	v850_elf_print_private_bfd_data
--- bfd/elf64-mips.c.header	Mon Dec 17 16:49:17 2001
+++ bfd/elf64-mips.c	Tue Dec 18 09:39:39 2001
@@ -7026,8 +7026,6 @@ const struct elf_size_info mips_elf64_si
 #define bfd_elf64_bfd_link_hash_table_create \
 					mips_elf64_link_hash_table_create
 #define bfd_elf64_bfd_final_link	mips_elf64_final_link
-#define bfd_elf64_bfd_copy_private_bfd_data \
-					_bfd_mips_elf_copy_private_bfd_data
 #define bfd_elf64_bfd_merge_private_bfd_data \
 					_bfd_mips_elf_merge_private_bfd_data
 #define bfd_elf64_bfd_set_private_flags	_bfd_mips_elf_set_private_flags
--- bfd/elf64-ppc.c.header	Mon Dec 17 16:49:19 2001
+++ bfd/elf64-ppc.c	Tue Dec 18 09:39:51 2001
@@ -42,8 +42,6 @@ static bfd_reloc_status_type ppc64_elf_a
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static boolean ppc64_elf_set_private_flags
   PARAMS ((bfd *, flagword));
-static boolean ppc64_elf_copy_private_bfd_data
-  PARAMS ((bfd *, bfd *));
 static boolean ppc64_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 static boolean ppc64_elf_section_from_shdr
@@ -1427,24 +1425,6 @@ ppc64_elf_set_private_flags (abfd, flags
   return true;
 }
 
-/* Copy backend specific data from one object module to another.  */
-static boolean
-ppc64_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd *ibfd;
-     bfd *obfd;
-{
-  if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-	      || elf_elfheader (obfd)->e_flags == elf_elfheader (ibfd)->e_flags);
-
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 static boolean
@@ -3990,7 +3970,6 @@ ppc64_elf_finish_dynamic_sections (outpu
 
 #define bfd_elf64_bfd_reloc_type_lookup	      ppc64_elf_reloc_type_lookup
 #define bfd_elf64_bfd_set_private_flags	      ppc64_elf_set_private_flags
-#define bfd_elf64_bfd_copy_private_bfd_data   ppc64_elf_copy_private_bfd_data
 #define bfd_elf64_bfd_merge_private_bfd_data  ppc64_elf_merge_private_bfd_data
 #define bfd_elf64_bfd_link_hash_table_create  ppc64_elf_link_hash_table_create
 #define bfd_elf64_bfd_final_link	      ppc64_elf_final_link
--- bfd/elf64-sparc.c.header	Fri Dec  7 10:35:51 2001
+++ bfd/elf64-sparc.c	Tue Dec 18 09:40:14 2001
@@ -69,8 +69,6 @@ static boolean sparc64_elf_output_arch_s
 static void sparc64_elf_symbol_processing
   PARAMS ((bfd *, asymbol *));
 
-static boolean sparc64_elf_copy_private_bfd_data
-  PARAMS ((bfd *, bfd *));
 static boolean sparc64_elf_merge_private_bfd_data
   PARAMS ((bfd *, bfd *));
 
@@ -2942,24 +2940,6 @@ sparc64_elf_reloc_type_class (rela)
 
 /* Functions for dealing with the e_flags field.  */
 
-/* Copy backend specific data from one object module to another */
-static boolean
-sparc64_elf_copy_private_bfd_data (ibfd, obfd)
-     bfd *ibfd, *obfd;
-{
-  if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-              || (elf_elfheader (obfd)->e_flags
-                  == elf_elfheader (ibfd)->e_flags));
-
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 
@@ -3181,8 +3161,6 @@ const struct elf_size_info sparc64_elf_s
   sparc64_elf_print_symbol_all
 #define elf_backend_output_arch_syms \
   sparc64_elf_output_arch_syms
-#define bfd_elf64_bfd_copy_private_bfd_data \
-  sparc64_elf_copy_private_bfd_data
 #define bfd_elf64_bfd_merge_private_bfd_data \
   sparc64_elf_merge_private_bfd_data
 
--- bfd/elfxx-ia64.c.header	Mon Dec 17 16:49:20 2001
+++ bfd/elfxx-ia64.c	Tue Dec 18 09:40:26 2001
@@ -301,8 +301,6 @@ static boolean elfNN_ia64_finish_dynamic
   PARAMS ((bfd *abfd, struct bfd_link_info *info));
 static boolean elfNN_ia64_set_private_flags
   PARAMS ((bfd *abfd, flagword flags));
-static boolean elfNN_ia64_copy_private_bfd_data
-  PARAMS ((bfd *ibfd, bfd *obfd));
 static boolean elfNN_ia64_merge_private_bfd_data
   PARAMS ((bfd *ibfd, bfd *obfd));
 static boolean elfNN_ia64_print_private_bfd_data
@@ -4262,24 +4260,6 @@ elfNN_ia64_set_private_flags (abfd, flag
   return true;
 }
 
-/* Copy backend specific data from one object module to another */
-static boolean
-elfNN_ia64_copy_private_bfd_data (ibfd, obfd)
-     bfd *ibfd, *obfd;
-{
-  if (   bfd_get_flavour (ibfd) != bfd_target_elf_flavour
-      || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
-    return true;
-
-  BFD_ASSERT (!elf_flags_init (obfd)
-	      || (elf_elfheader (obfd)->e_flags
-		  == elf_elfheader (ibfd)->e_flags));
-
-  elf_elfheader (obfd)->e_flags = elf_elfheader (ibfd)->e_flags;
-  elf_flags_init (obfd) = true;
-  return true;
-}
-
 /* Merge backend specific data from an object file to the output
    object file when linking.  */
 static boolean
@@ -4470,8 +4450,6 @@ elfNN_ia64_reloc_type_class (rela)
 #define bfd_elfNN_bfd_final_link \
 	elfNN_ia64_final_link
 
-#define bfd_elfNN_bfd_copy_private_bfd_data \
-	elfNN_ia64_copy_private_bfd_data
 #define bfd_elfNN_bfd_merge_private_bfd_data \
 	elfNN_ia64_merge_private_bfd_data
 #define bfd_elfNN_bfd_set_private_flags \
--- bfd/elfxx-target.h.header	Thu Nov 15 10:18:25 2001
+++ bfd/elfxx-target.h	Tue Dec 18 09:28:05 2001
@@ -142,7 +142,7 @@ Foundation, Inc., 59 Temple Place - Suit
 #endif
 #ifndef bfd_elfNN_bfd_copy_private_bfd_data
 #define bfd_elfNN_bfd_copy_private_bfd_data \
-  ((boolean (*) PARAMS ((bfd *, bfd *))) bfd_true)
+  _bfd_elf_copy_private_bfd_data
 #endif
 #ifndef bfd_elfNN_bfd_print_private_bfd_data
 #define bfd_elfNN_bfd_print_private_bfd_data \


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]