diff options
author | Alan Modra <amodra@gmail.com> | 2002-01-05 13:11:33 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2002-01-05 13:11:33 +0000 |
commit | 9e7b37b31f29ad3b8321d15e589ed5de550c56d3 (patch) | |
tree | 45c0765ba86e10dfd9d2ad45edc64de1be7a3a31 /bfd/sunos.c | |
parent | 3f0a7f7f7351fe42312c4c960abdd0b69f1d2e0c (diff) | |
download | gdb-9e7b37b31f29ad3b8321d15e589ed5de550c56d3.zip gdb-9e7b37b31f29ad3b8321d15e589ed5de550c56d3.tar.gz gdb-9e7b37b31f29ad3b8321d15e589ed5de550c56d3.tar.bz2 |
* section.c (bfd_section_init): Remove unnecessary initialisations.
(bfd_section_list_clear): New function.
(bfd_section_list_remove, bfd_section_list_insert): New macros.
(_bfd_strip_section_from_output): Use them.
* coffcode.h (coff_set_alignment_hook): Likewise.
* elf32-mips.c (_bfd_mips_elf_final_link): Likewise.
* elf64-mips.c (mips_elf64_final_link): Likewise.
* elf64-mmix.c (mmix_elf_final_link): Likewise.
* sunos.c (sunos_add_dynamic_symbols): Likewise.
* xcofflink.c (_bfd_xcoff_bfd_final_link): Likewise.
* bfd-in2.h: Regenerate.
* netbsd-core.c (netbsd_core_file_p): Use bfd_make_section_anyway
rather than doing our own section handling. Clean up after errors
with bfd_release and bfd_section_list_clear. Handle unexpected
flags.
* aoutf1.h (sunos4_core_file_p): Likewise.
* aix386-core.c (aix386_core_file_p): Likewise.
* cisco-core.c (cisco_core_file_validate): Likewise.
* ptrace-core.c (ptrace_unix_core_file_p): Likewise.
* trad-core.c (trad_unix_core_file_p): Likewise.
* hppabsd-core.c (hppabsd_core_core_file_p): Clean up after errors
with bfd_release and bfd_section_list_clear.
* hpux-core.c (hpux_core_core_file_p): Likewise.
* irix-core.c (irix_core_core_file_p): Likewise.
* lynx-core.c (lynx_core_file_p): Likewise.
* osf-core.c (osf_core_core_file_p): Likewise.
* rs6000-core.c (rs6000coff_core_p): Likewise.
* sco5-core.c (sco5_core_file_p): Likewise.
Diffstat (limited to 'bfd/sunos.c')
-rw-r--r-- | bfd/sunos.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/bfd/sunos.c b/bfd/sunos.c index 01eb578..30fd019 100644 --- a/bfd/sunos.c +++ b/bfd/sunos.c @@ -1,5 +1,6 @@ /* BFD backend for SunOS binaries. - Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2001 + Copyright 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2001, + 2002 Free Software Foundation, Inc. Written by Cygnus Support. @@ -877,6 +878,7 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp) bfd *dynobj; struct sunos_dynamic_info *dinfo; unsigned long need; + asection **ps; /* Make sure we have all the required sections. */ if (info->hash->creator == abfd->xvec) @@ -902,17 +904,12 @@ sunos_add_dynamic_symbols (abfd, info, symsp, sym_countp, stringsp) want, because that one still implies that the section takes up space in the output file. If this is the first object we have seen, we must preserve the dynamic sections we just created. */ - if (abfd != dynobj) - abfd->sections = NULL; - else + for (ps = &abfd->sections; *ps != NULL; ) { - asection *s; - - for (s = abfd->sections; - (s->flags & SEC_LINKER_CREATED) == 0; - s = s->next) - ; - abfd->sections = s; + if (abfd != dynobj || ((*ps)->flags & SEC_LINKER_CREATED) == 0) + bfd_section_list_remove (abfd, ps); + else + ps = &(*ps)->next; } /* The native linker seems to just ignore dynamic objects when -r is |