bfd/
2005-05-02 H.J. Lu <hongjiu.lu@intel.com> * bfd.c (bfd): Remove section_tail and add section_last. (bfd_preserve): Likewise. (bfd_preserve_save): Likewise. (bfd_preserve_restore): Likewise. * opncls.c (_bfd_new_bfd): Likewise. * coffcode.h (coff_compute_section_file_positions): Updated. (coff_compute_section_file_positions): Likewise. * elf.c (assign_section_numbers): Likewise. * elf32-i370.c (i370_elf_size_dynamic_sections): Likewise. * elf64-mmix.c (mmix_elf_final_link): Likewise. * elfxx-ia64.c (elfNN_ia64_object_p): Likewise. * elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise. * sunos.c (sunos_add_dynamic_symbols): Likewise. * xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise. * ecoff.c (bfd_debug_section): Initialize prev. * section.c (bfd_section): Add prev. (bfd_section_list_remove): Updated. (bfd_section_list_append): New. (bfd_section_list_insert_after): New. (bfd_section_list_insert_before): New. (bfd_section_list_insert): Removed. (bfd_section_removed_from_list): Updated. (STD_SECTION): Initialize prev. (bfd_section_init): Updated. (bfd_section_list_clear): Updated. * bfd-in2.h: Regenerated. gas/ 2005-05-02 H.J. Lu <hongjiu.lu@intel.com> * write.c (write_object_file): Use bfd_section_double_list_remove to remove sections. ld/ 2005-05-02 H.J. Lu <hongjiu.lu@intel.com> * emultempl/elf32.em (gld${EMULATION_NAME}_strip_empty_section): Updated for bfd_section_list_remove change. * ldlang.c (lang_insert_orphan): Likewise. (strip_excluded_output_sections): Likewise. (sort_sections_by_lma): New. (lang_check_section_addresses): Sort the sections before checking addresses.
This commit is contained in:
parent
3c95e6af3b
commit
5daa8fe797
19 changed files with 328 additions and 193 deletions
|
@ -1717,7 +1717,6 @@ coff_set_alignment_hook (bfd *abfd, asection *section, void * scnhdr)
|
|||
{
|
||||
struct internal_scnhdr *hdr = (struct internal_scnhdr *) scnhdr;
|
||||
asection *real_sec;
|
||||
asection **ps;
|
||||
|
||||
if ((hdr->s_flags & STYP_OVRFLO) == 0)
|
||||
return;
|
||||
|
@ -1729,14 +1728,10 @@ coff_set_alignment_hook (bfd *abfd, asection *section, void * scnhdr)
|
|||
real_sec->reloc_count = hdr->s_paddr;
|
||||
real_sec->lineno_count = hdr->s_vaddr;
|
||||
|
||||
for (ps = &abfd->sections; *ps != NULL; ps = &(*ps)->next)
|
||||
if (!bfd_section_removed_from_list (abfd, section))
|
||||
{
|
||||
if (*ps == section)
|
||||
{
|
||||
bfd_section_list_remove (abfd, ps);
|
||||
--abfd->section_count;
|
||||
break;
|
||||
}
|
||||
bfd_section_list_remove (abfd, section);
|
||||
--abfd->section_count;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3033,11 +3028,12 @@ coff_compute_section_file_positions (bfd * abfd)
|
|||
/* Rethread the linked list into sorted order; at the same time,
|
||||
assign target_index values. */
|
||||
target_index = 1;
|
||||
abfd->sections = section_list[0];
|
||||
abfd->sections = NULL;
|
||||
abfd->section_last = NULL;
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
current = section_list[i];
|
||||
current->next = section_list[i + 1];
|
||||
bfd_section_list_append (abfd, current);
|
||||
|
||||
/* Later, if the section has zero size, we'll be throwing it
|
||||
away, so we don't want to number it now. Note that having
|
||||
|
@ -3056,7 +3052,6 @@ coff_compute_section_file_positions (bfd * abfd)
|
|||
else
|
||||
current->target_index = target_index++;
|
||||
}
|
||||
abfd->section_tail = ¤t->next;
|
||||
|
||||
free (section_list);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue