diff options
-rw-r--r-- | bfd/ChangeLog | 4 | ||||
-rw-r--r-- | bfd/elflink.h | 24 |
2 files changed, 10 insertions, 18 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index e75acf0..107a08c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,9 @@ 1999-06-13 Mark Mitchell <mark@codesourcery.com> + * elflink.h (elf_link_remove_section_and_adjust_dynindices): + Remove abfd parameter. Use _bfd_strip_section_from_output. + (bfd_elf_size_dynamic_sections): Adjust callers accordingly. + * elf-bfd.h (_bfd_elf_link_adjust_dynindx): New function. * elflink.c (_bfd_elf_link_adjust_dynindx): Define it. * elflink.h (elf_link_remove_section_and_adjust_dynindices): New diff --git a/bfd/elflink.h b/bfd/elflink.h index 88fd05c..369a0a2 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -55,7 +55,7 @@ static boolean elf_collect_hash_codes static boolean elf_link_read_relocs_from_section PARAMS ((bfd *, Elf_Internal_Shdr *, PTR, Elf_Internal_Rela *)); static void elf_link_remove_section_and_adjust_dynindices - PARAMS ((bfd *, struct bfd_link_info *, asection *)); + PARAMS ((struct bfd_link_info *, asection *)); /* Given an ELF BFD, add symbols to the global hash table as appropriate. */ @@ -2408,20 +2408,14 @@ compute_bucket_count (info) subsequent entries. */ static void -elf_link_remove_section_and_adjust_dynindices (abfd, info, section) - bfd *abfd; +elf_link_remove_section_and_adjust_dynindices (info, section) struct bfd_link_info *info; asection *section; { asection **spp; /* Remove the section from the output list. */ - for (spp = &abfd->sections; - *spp != section->output_section; - spp = &(*spp)->next) - ; - *spp = section->output_section->next; - --abfd->section_count; + _bfd_strip_section_from_output (section); if (elf_section_data (section->output_section)->dynindx) { @@ -2648,9 +2642,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, verdefs = asvinfo.verdefs; if (verdefs == NULL) - elf_link_remove_section_and_adjust_dynindices (output_bfd, - info, - s); + elf_link_remove_section_and_adjust_dynindices (info, s); else { unsigned int cdefs; @@ -2843,9 +2835,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, (PTR) &sinfo); if (elf_tdata (output_bfd)->verref == NULL) - elf_link_remove_section_and_adjust_dynindices (output_bfd, - info, - s); + elf_link_remove_section_and_adjust_dynindices (info, s); else { Elf_Internal_Verneed *t; @@ -2945,9 +2935,7 @@ NAME(bfd_elf,size_dynamic_sections) (output_bfd, soname, rpath, if (dynsymcount == 0 || (verdefs == NULL && elf_tdata (output_bfd)->verref == NULL)) { - elf_link_remove_section_and_adjust_dynindices (output_bfd, - info, - s); + elf_link_remove_section_and_adjust_dynindices (info, s); /* The DYNSYMCOUNT might have changed if we were going to output a dynamic symbol table entry for S. */ dynsymcount = elf_hash_table (info)->dynsymcount; |