From d8b84e4bc4a0cd92d6c8b3269be4b409bd95c5f5 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 1 Feb 2005 01:11:22 +0000 Subject: [PATCH] include/ * 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. --- include/ChangeLog | 4 ++++ include/bfdlink.h | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/ChangeLog b/include/ChangeLog index c4fab4bbf..43d8ddf81 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,7 @@ +2005-02-01 Alan Modra + + * bfdlink.h (bfd_link_repair_undef_list): Declare. + 2005-01-10 Andreas Schwab * dis-asm.h (struct disassemble_info): Add skip_zeroes and diff --git a/include/bfdlink.h b/include/bfdlink.h index 9950920a3..789a38a07 100644 --- a/include/bfdlink.h +++ b/include/bfdlink.h @@ -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;