* 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.
This commit is contained in:
Jakub Jelinek 2002-01-28 13:34:39 +00:00
parent 4867be4168
commit 00e6e13d12
2 changed files with 16 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2002-01-28 Jakub Jelinek <jakub@redhat.com>
* 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 <drow@mvista.com>
* configure: Regenerated.

View file

@ -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);
}
}
}