* ldlang.c (wild): Handle foo.a(.text) by mapping each included
member of foo.a separately. From Jouke Numan <jnuman@bazis.nl>.
This commit is contained in:
parent
cb84f0284f
commit
3d0c8fa1d4
2 changed files with 33 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Mon Mar 4 14:11:17 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* ldlang.c (wild): Handle foo.a(.text) by mapping each included
|
||||||
|
member of foo.a separately. From Jouke Numan <jnuman@bazis.nl>.
|
||||||
|
|
||||||
Fri Mar 1 10:24:59 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
Fri Mar 1 10:24:59 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||||
|
|
||||||
* emultempl/elf32.em (gld${EMULATION_NAME}_find_exp_assignment):
|
* emultempl/elf32.em (gld${EMULATION_NAME}_find_exp_assignment):
|
||||||
|
|
29
ld/ldlang.c
29
ld/ldlang.c
|
@ -881,7 +881,34 @@ wild (s, section, file, target, output)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Perform the iteration over a single file */
|
/* Perform the iteration over a single file */
|
||||||
wild_section (s, section, lookup_name (file), output);
|
f = lookup_name (file);
|
||||||
|
if (f->the_bfd == NULL
|
||||||
|
|| ! bfd_check_format (f->the_bfd, bfd_archive))
|
||||||
|
wild_section (s, section, f, output);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bfd *member;
|
||||||
|
|
||||||
|
/* This is an archive file. We must map each member of the
|
||||||
|
archive separately. */
|
||||||
|
member = bfd_openr_next_archived_file (f->the_bfd, (bfd *) NULL);
|
||||||
|
while (member != NULL)
|
||||||
|
{
|
||||||
|
/* When lookup_name is called, it will call the
|
||||||
|
add_symbols entry point for the archive. For each
|
||||||
|
element of the archive which is included, BFD will
|
||||||
|
call ldlang_add_file, which will set the usrdata
|
||||||
|
field of the member to the lang_input_statement. */
|
||||||
|
if (member->usrdata != NULL)
|
||||||
|
{
|
||||||
|
wild_section (s, section,
|
||||||
|
(lang_input_statement_type *) member->usrdata,
|
||||||
|
output);
|
||||||
|
}
|
||||||
|
|
||||||
|
member = bfd_openr_next_archived_file (f->the_bfd, member);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (section != (char *) NULL
|
if (section != (char *) NULL
|
||||||
&& strcmp (section, "COMMON") == 0
|
&& strcmp (section, "COMMON") == 0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue