From: Jakub Jelinek Date: Mon, 28 Jan 2002 13:34:39 +0000 (+0000) Subject: * config/obj-elf.c (elf_frob_file_before_adjust): Remove symbols X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=00e6e13d12377b6463072a112eb1f58b701abd6e;p=binutils-gdb.git * config/obj-elf.c (elf_frob_file_before_adjust): Remove symbols made because of .weak, if they are neither defined nor used in any way. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 9696d64a7c9..9d98f75ed3f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2002-01-28 Jakub Jelinek + + * config/obj-elf.c (elf_frob_file_before_adjust): Remove symbols + made because of .weak, if they are neither defined nor used in any + way. + 2002-01-27 Daniel Jacobowitz * configure: Regenerated. diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c index 6ec08820242..13c748211c4 100644 --- a/gas/config/obj-elf.c +++ b/gas/config/obj-elf.c @@ -1995,9 +1995,9 @@ elf_frob_file_before_adjust () symbolS *symp; for (symp = symbol_rootP; symp; symp = symbol_next (symp)) - if (symbol_get_obj (symp)->versioned_name) + if (!S_IS_DEFINED (symp)) { - if (!S_IS_DEFINED (symp)) + if (symbol_get_obj (symp)->versioned_name) { char *p; @@ -2017,6 +2017,14 @@ elf_frob_file_before_adjust () && symbol_used_in_reloc_p (symp) == 0) symbol_remove (symp, &symbol_rootP, &symbol_lastP); } + + /* If there was .weak foo, but foo was neither defined nor + used anywhere, remove it. */ + + else if (S_IS_WEAK (symp) + && symbol_used_p (symp) == 0 + && symbol_used_in_reloc_p (symp) == 0) + symbol_remove (symp, &symbol_rootP, &symbol_lastP); } } }