* 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.
This commit is contained in:
Alan Modra
2002-01-05 13:11:33 +00:00
parent 3f0a7f7f73
commit 9e7b37b31f
22 changed files with 402 additions and 340 deletions

View File

@ -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