Default elf_backend_post_process_headers to set OSABI
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 17 Dec 2013 21:40:46 +0000 (13:40 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 17 Dec 2013 21:41:17 +0000 (13:41 -0800)
* elf-bfd.h (_bfd_elf_set_osabi): Renamed to ...
(_bfd_elf_post_process_headers): This.
* elf.c (_bfd_elf_compute_section_file_positions): Always
call elf_backend_post_process_headers.
(_bfd_elf_set_osabi): Renamed to ...
(_bfd_elf_post_process_headers): This.
* elf32-hppa.c (elf_backend_post_process_headers): Removed.
* elf32-i370.c (elf_backend_post_process_headers): Likewise.
* elf32-msp430.c (elf_backend_post_process_headers): Likewise.
* elf32-ppc.c (elf_backend_post_process_headers): Likewise.
* elf32-sparc.c (elf_backend_post_process_headers): Likewise.
* elf64-hppa.c (elf_backend_post_process_headers): Likewise.
* elf64-ppc.c (elf_backend_post_process_headers): Likewise.
* elf64-sparc.c (elf_backend_post_process_headers): Likewise.
* elf64-x86-64.c (elf_backend_post_process_headers): Likewise.
*  (elf_backend_post_process_headers): Likewise.
*  (elf_backend_post_process_headers): Likewise.
* elf32-i386.c (elf_backend_post_process_headers): Don't
define as _bfd_elf_set_osabi.
(elf_i386_fbsd_post_process_headers): Updated.
* elf32-mips.c (elf_fbsd_post_process_headers): Removed.
(elf_backend_post_process_headers): Likewise.
* elf32-tic6x.c (elf32_tic6x_set_osabi): Removed.
(elf_backend_post_process_headers): Likewise.
* elf64-mips.c (elf_fbsd_post_process_headers): Removed.
(elf_backend_post_process_headers): Likewise.
* elfn32-mips.c (elf_fbsd_post_process_headers): Removed.
(elf_backend_post_process_headers): Likewise.
* elfnn-aarch64.c (elfNN_aarch64_post_process_headers): Updated.
* elfxx-target.h (elf_backend_post_process_headers): Default
to _bfd_elf_post_process_headers.

19 files changed:
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf.c
bfd/elf32-hppa.c
bfd/elf32-i370.c
bfd/elf32-i386.c
bfd/elf32-mips.c
bfd/elf32-msp430.c
bfd/elf32-ppc.c
bfd/elf32-sparc.c
bfd/elf32-tic6x.c
bfd/elf64-hppa.c
bfd/elf64-mips.c
bfd/elf64-ppc.c
bfd/elf64-sparc.c
bfd/elf64-x86-64.c
bfd/elfn32-mips.c
bfd/elfnn-aarch64.c
bfd/elfxx-target.h

index 9c6bfd48ca35c3108788e6e8962e84e7718758e3..7315720d15417a97310bcea93bda5fd40cd79a6e 100644 (file)
@@ -1,3 +1,37 @@
+2013-12-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf-bfd.h (_bfd_elf_set_osabi): Renamed to ...
+       (_bfd_elf_post_process_headers): This.
+       * elf.c (_bfd_elf_compute_section_file_positions): Always
+       call elf_backend_post_process_headers.
+       (_bfd_elf_set_osabi): Renamed to ...
+       (_bfd_elf_post_process_headers): This.
+       * elf32-hppa.c (elf_backend_post_process_headers): Removed.
+       * elf32-i370.c (elf_backend_post_process_headers): Likewise.
+       * elf32-msp430.c (elf_backend_post_process_headers): Likewise.
+       * elf32-ppc.c (elf_backend_post_process_headers): Likewise.
+       * elf32-sparc.c (elf_backend_post_process_headers): Likewise.
+       * elf64-hppa.c (elf_backend_post_process_headers): Likewise.
+       * elf64-ppc.c (elf_backend_post_process_headers): Likewise.
+       * elf64-sparc.c (elf_backend_post_process_headers): Likewise.
+       * elf64-x86-64.c (elf_backend_post_process_headers): Likewise.
+       *  (elf_backend_post_process_headers): Likewise.
+       *  (elf_backend_post_process_headers): Likewise.
+       * elf32-i386.c (elf_backend_post_process_headers): Don't
+       define as _bfd_elf_set_osabi.
+       (elf_i386_fbsd_post_process_headers): Updated.
+       * elf32-mips.c (elf_fbsd_post_process_headers): Removed.
+       (elf_backend_post_process_headers): Likewise.
+       * elf32-tic6x.c (elf32_tic6x_set_osabi): Removed.
+       (elf_backend_post_process_headers): Likewise.
+       * elf64-mips.c (elf_fbsd_post_process_headers): Removed.
+       (elf_backend_post_process_headers): Likewise.
+       * elfn32-mips.c (elf_fbsd_post_process_headers): Removed.
+       (elf_backend_post_process_headers): Likewise.
+       * elfnn-aarch64.c (elfNN_aarch64_post_process_headers): Updated.
+       * elfxx-target.h (elf_backend_post_process_headers): Default
+       to _bfd_elf_post_process_headers.
+
 2013-12-17  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutils/16318
index 0446725cb63a5d2510f7c91f29925a74b42e054c..0aab5fa065a6b64a0f25b650c1e753a89e1c3b7c 100644 (file)
@@ -2041,7 +2041,7 @@ extern bfd_reloc_status_type bfd_elf_perform_complex_relocation
 extern bfd_boolean _bfd_elf_setup_sections
   (bfd *);
 
-extern void _bfd_elf_set_osabi (bfd * , struct bfd_link_info *);
+extern void _bfd_elf_post_process_headers (bfd * , struct bfd_link_info *);
 
 extern const bfd_target *bfd_elf32_object_p
   (bfd *);
index 30d4171154f08a7d8a5e422bc32fee3b10c783d6..b589e60777f4041509e8dc9ec84f6857928dad36 100644 (file)
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -3457,8 +3457,7 @@ _bfd_elf_compute_section_file_positions (bfd *abfd,
     return FALSE;
 
   /* Post process the headers if necessary.  */
-  if (bed->elf_backend_post_process_headers)
-    (*bed->elf_backend_post_process_headers) (abfd, link_info);
+  (*bed->elf_backend_post_process_headers) (abfd, link_info);
 
   fsargs.failed = FALSE;
   fsargs.link_info = link_info;
@@ -10016,8 +10015,8 @@ asection _bfd_elf_large_com_section
                      SEC_IS_COMMON, NULL, "LARGE_COMMON", 0);
 
 void
-_bfd_elf_set_osabi (bfd * abfd,
-                   struct bfd_link_info * link_info ATTRIBUTE_UNUSED)
+_bfd_elf_post_process_headers (bfd * abfd,
+                              struct bfd_link_info * link_info ATTRIBUTE_UNUSED)
 {
   Elf_Internal_Ehdr * i_ehdrp; /* ELF file header, internal form.  */
 
index df25ac903c870982222160314cbe5c7c8d9ce9b7..710028f2c8bb5783291232108beb1f52e7f925bd 100644 (file)
@@ -4643,7 +4643,6 @@ elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type)
 #define elf_backend_grok_psinfo                     elf32_hppa_grok_psinfo
 #define elf_backend_object_p                elf32_hppa_object_p
 #define elf_backend_final_write_processing   elf_hppa_final_write_processing
-#define elf_backend_post_process_headers     _bfd_elf_set_osabi
 #define elf_backend_get_symbol_type         elf32_hppa_elf_get_symbol_type
 #define elf_backend_reloc_type_class        elf32_hppa_reloc_type_class
 #define elf_backend_action_discarded        elf_hppa_action_discarded
index 48e25f228afbd7b31471ee3a1117f36dd0cfe97b..073197b333c9b32465fd55d2bab173c83cecb319 100644 (file)
@@ -1388,7 +1388,6 @@ i370_elf_relocate_section (bfd *output_bfd,
 #define elf_backend_section_from_shdr          i370_elf_section_from_shdr
 #define elf_backend_adjust_dynamic_symbol      i370_elf_adjust_dynamic_symbol
 #define elf_backend_check_relocs               i370_elf_check_relocs
-#define elf_backend_post_process_headers       _bfd_elf_set_osabi
 
 static int
 i370_noop (void)
index 4574c598bad3c548ccb1327fe9018d9ec19272c0..4d391e13c7d7fa504fc3b996582efd1f6bcbc993 100644 (file)
@@ -5068,8 +5068,6 @@ elf_i386_add_symbol_hook (bfd * abfd,
 #define elf_backend_plt_sym_val                      elf_i386_plt_sym_val
 #define elf_backend_hash_symbol                      elf_i386_hash_symbol
 #define elf_backend_add_symbol_hook           elf_i386_add_symbol_hook
-#undef elf_backend_post_process_headers
-#define        elf_backend_post_process_headers        _bfd_elf_set_osabi
 
 #include "elf32-target.h"
 
@@ -5089,7 +5087,7 @@ elf_i386_add_symbol_hook (bfd * abfd,
 static void
 elf_i386_fbsd_post_process_headers (bfd *abfd, struct bfd_link_info *info)
 {
-  _bfd_elf_set_osabi (abfd, info);
+  _bfd_elf_post_process_headers (abfd, info);
 
 #ifdef OLD_FREEBSD_ABI_LABEL
   /* The ABI label supported by FreeBSD <= 4.0 is quite nonstandard.  */
@@ -5151,7 +5149,6 @@ elf_i386_fbsd_post_process_headers (bfd *abfd, struct bfd_link_info *info)
 #undef elf_backend_want_plt_sym
 #define elf_backend_want_plt_sym       0
 #undef elf_backend_post_process_headers
-#define        elf_backend_post_process_headers        _bfd_elf_set_osabi
 #undef elf_backend_static_tls_alignment
 
 /* NaCl uses substantially different PLT entries for the same effects.  */
@@ -5345,7 +5342,6 @@ static const struct elf_i386_backend_data elf_i386_vxworks_arch_bed =
 #define        elf_backend_arch_data   &elf_i386_vxworks_arch_bed
 
 #undef elf_backend_relocs_compatible
-#undef elf_backend_post_process_headers
 #undef elf_backend_add_symbol_hook
 #define elf_backend_add_symbol_hook \
   elf_vxworks_add_symbol_hook
index eec2ef7f053f731bad13ee802aa287a9fe3df989..ada66cefecf4a8a90b816702230e5c31ccb033ae 100644 (file)
@@ -2449,18 +2449,6 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
 #undef ELF_OSABI
 #define        ELF_OSABI                       ELFOSABI_FREEBSD
 
-/* The kernel recognizes executables as valid only if they carry a
-   "FreeBSD" label in the ELF header.  So we put this label on all
-   executables and (for simplicity) also all other object files.  */
-
-static void
-elf_fbsd_post_process_headers (bfd *abfd, struct bfd_link_info *info)
-{
-  _bfd_elf_set_osabi (abfd, info);
-}
-
-#undef elf_backend_post_process_headers
-#define        elf_backend_post_process_headers        elf_fbsd_post_process_headers
 #undef elf32_bed
 #define elf32_bed                              elf32_fbsd_tradbed
 
index 3d8d22f3776f02dd5e9f81518056d3c8f8f0b953..69f50857dcfb81c5591a364fd21e67f3fb3c569e 100644 (file)
@@ -2446,7 +2446,6 @@ msp430_elf_is_target_special_symbol (bfd *abfd, asymbol *sym)
 #define elf_backend_can_gc_sections          1
 #define elf_backend_final_write_processing   bfd_elf_msp430_final_write_processing
 #define elf_backend_object_p                elf32_msp430_object_p
-#define elf_backend_post_process_headers     _bfd_elf_set_osabi
 #define bfd_elf32_bfd_relax_section         msp430_elf_relax_section
 #define bfd_elf32_bfd_is_target_special_symbol msp430_elf_is_target_special_symbol
 
index 47c92ba0b7e30254916eb911b2d309fa1154e601..b601f05eee623bd5bab94c7c5b0c47877c2c69f7 100644 (file)
@@ -9922,7 +9922,6 @@ ppc_elf_finish_dynamic_sections (bfd *output_bfd,
 #define elf_backend_plt_sym_val                        ppc_elf_plt_sym_val
 #define elf_backend_action_discarded           ppc_elf_action_discarded
 #define elf_backend_init_index_section         _bfd_elf_init_1_index_section
-#define elf_backend_post_process_headers       _bfd_elf_set_osabi
 #define elf_backend_lookup_section_flags_hook  ppc_elf_lookup_section_flags
 #define elf_backend_section_processing         ppc_elf_section_processing
 
index 52abfd43d04baa5a2c2035e2016b52122a6a64c1..d8d90c7e4779a8d60e981b5c27a6f4a6db639632 100644 (file)
@@ -245,7 +245,6 @@ elf32_sparc_add_symbol_hook (bfd * abfd,
 #define elf_backend_got_header_size 4
 #define elf_backend_rela_normal 1
 
-#define elf_backend_post_process_headers       _bfd_elf_set_osabi
 #define elf_backend_add_symbol_hook            elf32_sparc_add_symbol_hook
 
 #include "elf32-target.h"
index 92726b2af4410c4f24373b3e6ac02de9ed82f633..fe82c8ffb9e013b4ce8fd25766749627402de744 100644 (file)
@@ -4345,14 +4345,6 @@ elf32_tic6x_write_section (bfd *output_bfd,
   return TRUE;
 }
 
-static void
-elf32_tic6x_set_osabi (bfd *abfd, struct bfd_link_info *link_info)
-{
-  if (link_info != NULL && link_info->relocatable)
-    return;
-  _bfd_elf_set_osabi (abfd, link_info);
-}
-
 #define TARGET_LITTLE_SYM      bfd_elf32_tic6x_le_vec
 #define TARGET_LITTLE_NAME     "elf32-tic6x-le"
 #define TARGET_BIG_SYM         bfd_elf32_tic6x_be_vec
@@ -4434,9 +4426,6 @@ elf32_tic6x_set_osabi (bfd *abfd, struct bfd_link_info *link_info)
 #undef ELF_OSABI
 #define        ELF_OSABI                       ELFOSABI_C6000_LINUX
 
-#undef elf_backend_post_process_headers
-#define elf_backend_post_process_headers       elf32_tic6x_set_osabi
-
 #include "elf32-target.h"
 
 #undef elf32_bed
@@ -4453,7 +4442,4 @@ elf32_tic6x_set_osabi (bfd *abfd, struct bfd_link_info *link_info)
 #undef ELF_OSABI
 #define        ELF_OSABI                       ELFOSABI_C6000_ELFABI
 
-#undef elf_backend_post_process_headers
-#define elf_backend_post_process_headers       elf32_tic6x_set_osabi
-
 #include "elf32-target.h"
index c992563761db640470df3d8ce7f76ac4e46dc888..121827b7684437d33316030c45bf3a7859b1c74d 100644 (file)
@@ -4103,8 +4103,6 @@ const struct elf_size_info hppa64_elf_size_info =
 #define TARGET_BIG_NAME                        "elf64-hppa-linux"
 #undef ELF_OSABI
 #define ELF_OSABI                      ELFOSABI_GNU
-#undef elf_backend_post_process_headers
-#define elf_backend_post_process_headers _bfd_elf_set_osabi
 #undef elf64_bed
 #define elf64_bed                      elf64_hppa_linux_bed
 
index a0c5cc59d3922a134fac7f58ff31cac405f162c0..89ccf90c4751ee33a2ba8863c48db83e3f1a6e41 100644 (file)
@@ -4349,18 +4349,6 @@ extern bfd_boolean bfd_elf64_archive_write_armap
 #undef ELF_OSABI
 #define        ELF_OSABI                       ELFOSABI_FREEBSD
 
-/* The kernel recognizes executables as valid only if they carry a
-   "FreeBSD" label in the ELF header.  So we put this label on all
-   executables and (for simplicity) also all other object files.  */
-
-static void
-elf_fbsd_post_process_headers (bfd *abfd, struct bfd_link_info *info)
-{
-  _bfd_elf_set_osabi (abfd, info);
-}
-
-#undef elf_backend_post_process_headers
-#define        elf_backend_post_process_headers        elf_fbsd_post_process_headers
 #undef elf64_bed
 #define elf64_bed                              elf64_fbsd_tradbed
 
index deabb2766e63dbd94261451f6ab9e6d801c237a0..acc3423e38e9ad4829cbcf05541fc1bad877feed 100644 (file)
@@ -118,7 +118,6 @@ static bfd_vma opd_entry_value
 #define elf_backend_finish_dynamic_sections   ppc64_elf_finish_dynamic_sections
 #define elf_backend_link_output_symbol_hook   ppc64_elf_output_symbol_hook
 #define elf_backend_special_sections         ppc64_elf_special_sections
-#define elf_backend_post_process_headers      _bfd_elf_set_osabi
 #define elf_backend_merge_symbol_attribute    ppc64_elf_merge_symbol_attribute
 
 /* The name of the dynamic interpreter.  This is put in the .interp
index 65e39070447ac4f9dc7e8480a2adeee85b497730..2a27bbd525098c57ed16116fb3046a7de5b1f3e5 100644 (file)
@@ -922,8 +922,6 @@ const struct elf_size_info elf64_sparc_size_info =
 /* Section 5.2.4 of the ABI specifies a 256-byte boundary for the table.  */
 #define elf_backend_plt_alignment 8
 
-#define elf_backend_post_process_headers       _bfd_elf_set_osabi
-
 #include "elf64-target.h"
 
 /* FreeBSD support */
index 860546e567232ebfcfd74e01d1ab0249e5fc03ab..edee8ecefd50e98d87d58746e5f9a9509fadfc64 100644 (file)
@@ -5319,8 +5319,6 @@ static const struct bfd_elf_special_section
 #define elf_backend_hash_symbol \
   elf_x86_64_hash_symbol
 
-#define elf_backend_post_process_headers  _bfd_elf_set_osabi
-
 #include "elf64-target.h"
 
 /* FreeBSD support.  */
index 2daf79e87517e95bda9259e40a56eec6b244cdd5..290bb83f5b244332c5c78afaf87be5e52c2a05eb 100644 (file)
@@ -3541,18 +3541,6 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = {
 #undef ELF_OSABI
 #define        ELF_OSABI                       ELFOSABI_FREEBSD
 
-/* The kernel recognizes executables as valid only if they carry a
-   "FreeBSD" label in the ELF header.  So we put this label on all
-   executables and (for simplicity) also all other object files.  */
-
-static void
-elf_fbsd_post_process_headers (bfd *abfd, struct bfd_link_info *info)
-{
-  _bfd_elf_set_osabi (abfd, info);
-}
-
-#undef elf_backend_post_process_headers
-#define        elf_backend_post_process_headers        elf_fbsd_post_process_headers
 #undef elf32_bed
 #define elf32_bed                              elf32_fbsd_tradbed
 
index 22f95d368f0a3bb4209ac831e3868c4c0efd8045..0573d6a0f1faf54906a712f1b96e3f6188ce3c55 100644 (file)
@@ -5479,7 +5479,7 @@ elfNN_aarch64_post_process_headers (bfd *abfd,
   i_ehdrp = elf_elfheader (abfd);
   i_ehdrp->e_ident[EI_ABIVERSION] = AARCH64_ELF_ABI_VERSION;
 
-  _bfd_elf_set_osabi (abfd, link_info);
+  _bfd_elf_post_process_headers (abfd, link_info);
 }
 
 static enum elf_reloc_type_class
index d42ce26fddd413e3ce558ced8086eff523ea885e..2e7cbca3489f8b915b87975a0feb4a9fbe0db794 100644 (file)
 #define elf_backend_static_tls_alignment       1
 #endif
 #ifndef elf_backend_post_process_headers
-#define elf_backend_post_process_headers       NULL
+#define elf_backend_post_process_headers       _bfd_elf_post_process_headers
 #endif
 #ifndef elf_backend_print_symbol_all
 #define elf_backend_print_symbol_all           NULL