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
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. */
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)
{
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;
(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;
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;