2000-05-14 H.J. Lu (hjl@gnu.org)

* objcopy.c (filter_symbols): Don't strip global symbols in
	relocatable object files.
This commit is contained in:
H.J. Lu 2000-05-14 17:13:16 +00:00
parent 4132022df1
commit d812147943
2 changed files with 10 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2000-05-14 H.J. Lu (hjl@gnu.org)
* objcopy.c (filter_symbols): Don't strip global symbols in
relocatable object files.
2000-05-14 Alan Modra <alan@linuxcare.com.au>
* size.c (usage): Associate short options with corresponding long

View File

@ -556,6 +556,8 @@ filter_symbols (abfd, obfd, osyms, isyms, symcount)
{
register asymbol **from = isyms, **to = osyms;
long src_count = 0, dst_count = 0;
int relocatable = (abfd->flags & (HAS_RELOC | EXEC_P | DYNAMIC))
== HAS_RELOC;
for (; src_count < symcount; src_count++)
{
@ -610,6 +612,9 @@ filter_symbols (abfd, obfd, osyms, isyms, symcount)
&& ((*bfd_get_section (sym)->symbol_ptr_ptr)->flags
& BSF_KEEP) != 0))
keep = 1;
else if (relocatable /* Relocatable file. */
&& (flags & (BSF_GLOBAL | BSF_WEAK)) != 0)
keep = 1;
else if ((flags & BSF_GLOBAL) != 0 /* Global symbol. */
|| (flags & BSF_WEAK) != 0
|| bfd_is_und_section (bfd_get_section (sym))