diff options
author | Alan Modra <amodra@gmail.com> | 2019-11-18 17:09:40 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2019-11-18 22:06:09 +1030 |
commit | ed7e9d0bdaa0cbeb157e427c262e692a993e4432 (patch) | |
tree | 9029ace1cff9aeb0602301c28f6b3e8e11ce7394 /bfd/elf.c | |
parent | 6d6c25c8eaaf42755a759beeb2996502322b960c (diff) | |
download | gdb-ed7e9d0bdaa0cbeb157e427c262e692a993e4432.zip gdb-ed7e9d0bdaa0cbeb157e427c262e692a993e4432.tar.gz gdb-ed7e9d0bdaa0cbeb157e427c262e692a993e4432.tar.bz2 |
elf_backend_init_file_header
This patch renames elf_backend_post_process_headers and moves the
prep_headers code into the new function. Naming the backend functions
elf_backend_init_file_header and elf_backend_modify_headers makes it
clear which function is called first.
* elf-bfd.h (struct elf_backend_data <elf_backend_init_file_header>):
Rename from elf_backend_post_process_headers.
(_bfd_elf_post_process_headers): Delete.
(_bfd_elf_init_file_header): Declare.
* elf.c (_bfd_elf_compute_section_file_positions): Call new function
in place of prep_headers and elf_backend_post_process_headers.
(_bfd_elf_init_file_header): Renamed from prep_headers with
updated args and made global. Delete dead code.
(_bfd_elf_post_process_headers): Delete.
* elf32-arm.c (elf32_arm_init_file_header): Rename from
elf32_arm_post_process_headers and call _bfd_elf_init_file_header.
Return status.
(elf_backend_init_file_header): Define.
(elf_backend_post_process_headers): Don't define.
* elf32-i386.c (elf_i386_fbsd_init_file_header): Similarly.
* elf32-m68hc1x.c (elf32_m68hc11_init_file_header): Similarly.
* elf32-metag.c (elf_metag_init_file_header): Similarly.
* elf32-spu.c (spu_elf_init_file_header
* elf32-visium.c (visium_elf_init_file_header
* elf64-alpha.c (elf64_alpha_fbsd_init_file_header
* elf64-hppa.c (elf64_hppa_init_file_header
* elf64-ia64-vms.c (elf64_vms_init_file_header
* elfnn-aarch64.c (elfNN_aarch64_init_file_header
* elfnn-ia64.c (elfNN_hpux_init_file_header
* elfxx-mips.c (_bfd_mips_init_file_header
* elfxx-mips.h (_bfd_mips_post_process_headers): Delete.
(_bfd_mips_init_file_header): Declare.
(elf_backend_post_process_headers): Delete.
(elf_backend_init_file_header): Define.
* elfxx-target.h (elf_backend_post_process_headers): Delete.
(elf_backend_init_file_header): Define and use.
* elf32-m68hc12.c (elf_backend_init_file_header): Define.
(elf_backend_post_process_headers): Don't define.
* elf32-m68hc1x.h (elf32_m68hc11_post_process_headers): Delete.
(elf32_m68hc11_init_file_header): Declare.
* elf32-ppc.c (elf_backend_post_process_headers): Remove
unnecessary undef.
Diffstat (limited to 'bfd/elf.c')
-rw-r--r-- | bfd/elf.c | 29 |
1 files changed, 5 insertions, 24 deletions
@@ -51,7 +51,6 @@ SECTION static int elf_sort_sections (const void *, const void *); static bfd_boolean assign_file_positions_except_relocs (bfd *, struct bfd_link_info *); -static bfd_boolean prep_headers (bfd *); static bfd_boolean swap_out_syms (bfd *, struct elf_strtab_hash **, int) ; static bfd_boolean elf_parse_notes (bfd *abfd, char *buf, size_t size, file_ptr offset, size_t align); @@ -4312,12 +4311,9 @@ _bfd_elf_compute_section_file_positions (bfd *abfd, if (bed->elf_backend_begin_write_processing) (*bed->elf_backend_begin_write_processing) (abfd, link_info); - if (! prep_headers (abfd)) + if (!(*bed->elf_backend_init_file_header) (abfd, link_info)) return FALSE; - /* Post process the headers if necessary. */ - (*bed->elf_backend_post_process_headers) (abfd, link_info); - fsargs.failed = FALSE; fsargs.link_info = link_info; bfd_map_over_sections (abfd, elf_fake_sections, &fsargs); @@ -4350,7 +4346,7 @@ _bfd_elf_compute_section_file_positions (bfd *abfd, } shstrtab_hdr = &elf_tdata (abfd)->shstrtab_hdr; - /* sh_name was set in prep_headers. */ + /* sh_name was set in init_file_header. */ shstrtab_hdr->sh_type = SHT_STRTAB; shstrtab_hdr->sh_flags = bed->elf_strtab_flags; shstrtab_hdr->sh_addr = 0; @@ -6385,8 +6381,9 @@ assign_file_positions_except_relocs (bfd *abfd, return TRUE; } -static bfd_boolean -prep_headers (bfd *abfd) +bfd_boolean +_bfd_elf_init_file_header (bfd *abfd, + struct bfd_link_info *info ATTRIBUTE_UNUSED) { Elf_Internal_Ehdr *i_ehdrp; /* Elf file header, internal form. */ struct elf_strtab_hash *shstrtab; @@ -6449,16 +6446,6 @@ prep_headers (bfd *abfd) i_ehdrp->e_entry = bfd_get_start_address (abfd); i_ehdrp->e_shentsize = bed->s->sizeof_shdr; - /* If we're building an executable, we'll need a program header table. */ - if (abfd->flags & EXEC_P) - /* It all happens later. */ - ; - else - { - i_ehdrp->e_phentsize = 0; - i_ehdrp->e_phoff = 0; - } - elf_tdata (abfd)->symtab_hdr.sh_name = (unsigned int) _bfd_elf_strtab_add (shstrtab, ".symtab", FALSE); elf_tdata (abfd)->strtab_hdr.sh_name = @@ -12224,12 +12211,6 @@ asection _bfd_elf_large_com_section = BFD_FAKE_SECTION (_bfd_elf_large_com_section, &lcomm_sym, "LARGE_COMMON", 0, SEC_IS_COMMON); -void -_bfd_elf_post_process_headers (bfd *abfd ATTRIBUTE_UNUSED, - struct bfd_link_info *info ATTRIBUTE_UNUSED) -{ -} - bfd_boolean _bfd_elf_final_write_processing (bfd *abfd) { |