* bfdlink.h (bfd_link_repair_undef_list): Declare.
bfd/
	* elf64-ppc.c (ppc64_elf_check_directives): Move undefs list fixup..
	* linker.c (bfd_link_repair_undef_list): ..to new function, but don't
	remove anything but new and undefweak.
	* elflink.c (_bfd_elf_link_create_dynamic_sections): Override any
	existing _DYNAMIC.
	(_bfd_elf_create_dynamic_sections): Formatting.
	(bfd_elf_record_link_assignment): Call bfd_link_repair_undef_list.
	(_bfd_elf_merge_symbol): Don't handle as-needed syms here.
	(struct elf_smash_data): New.
	(elf_smash_syms): New function.
	(elf_link_add_object_symbols): Call elf_smash_syms.  Don't add
	unneeded dynamic objects to loaded list.
	(elf_link_output_extsym): Don't handle as-needed here.  Strip
	bfd_link_hash_new symbols.
	* elf32-cris.c (elf_cris_discard_excess_program_dynamics): Don't
	delref when dynindx is already -1.
	* elf64-alpha.c (elf64_alpha_output_extsym): Strip bfd_link_hash_new
	symbols.
	* elfxx-mips.c (mips_elf_output_extsym): Likewise.
ld/
	* ld.texinfo: Clarify --as-needed operation.
This commit is contained in:
Alan Modra 2005-02-01 01:11:22 +00:00
parent 17dc5be5e9
commit d8b84e4bc4
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,7 @@
2005-02-01 Alan Modra <amodra@bigpond.net.au>
* bfdlink.h (bfd_link_repair_undef_list): Declare.
2005-01-10 Andreas Schwab <schwab@suse.de>
* dis-asm.h (struct disassemble_info): Add skip_zeroes and

View File

@ -1,6 +1,6 @@
/* bfdlink.h -- header file for BFD link routines
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003,
2004 Free Software Foundation, Inc.
2004, 2005 Free Software Foundation, Inc.
Written by Steve Chamberlain and Ian Lance Taylor, Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@ -197,6 +197,10 @@ extern void bfd_link_hash_traverse
extern void bfd_link_add_undef
(struct bfd_link_hash_table *, struct bfd_link_hash_entry *);
/* Remove symbols from the undefs list that don't belong there. */
extern void bfd_link_repair_undef_list
(struct bfd_link_hash_table *table);
struct bfd_sym_chain
{
struct bfd_sym_chain *next;