* ldlang.c (walk_wild_section): Exclude object file if enclosing

archive is excluded.
This commit is contained in:
Alexandre Oliva 2002-01-08 14:56:09 +00:00
parent c25b74acfa
commit 34efb44947
2 changed files with 21 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2002-01-08 Alexandre Oliva <aoliva@redhat.com>
* ldlang.c (walk_wild_section): Exclude object file if enclosing
archive is excluded.
2002-01-07 Jason Thorpe <thorpej@wasabisystems.com> 2002-01-07 Jason Thorpe <thorpej@wasabisystems.com>
* Makefile.am (ALL_EMULATIONS): Add eshelf_nbsd.o and eshlelf_nbsd.o. * Makefile.am (ALL_EMULATIONS): Add eshelf_nbsd.o and eshlelf_nbsd.o.

View File

@ -1,6 +1,6 @@
/* Linker command language support. /* Linker command language support.
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001 2001, 2002
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GLD, the Gnu Linker. This file is part of GLD, the Gnu Linker.
@ -270,6 +270,21 @@ walk_wild_section (ptr, file, callback, data)
else else
skip = strcmp (list_tmp->name, file->filename) == 0; skip = strcmp (list_tmp->name, file->filename) == 0;
/* If this file is part of an archive, and the archive is
excluded, exclude this file. */
if (! skip && file->the_bfd != NULL
&& file->the_bfd->my_archive != NULL
&& file->the_bfd->my_archive->filename != NULL)
{
if (wildcardp (list_tmp->name))
skip = fnmatch (list_tmp->name,
file->the_bfd->my_archive->filename,
0) == 0;
else
skip = strcmp (list_tmp->name,
file->the_bfd->my_archive->filename) == 0;
}
if (skip) if (skip)
break; break;
} }