* xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): Do the regular

archive search before looking for stripped dynamic objects.
PR 10187.
This commit is contained in:
Ian Lance Taylor 1996-07-30 17:39:33 +00:00
parent 368f1e773b
commit fb4dc1eb5f
2 changed files with 21 additions and 12 deletions

View File

@ -1,3 +1,8 @@
Tue Jul 30 13:31:27 1996 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): Do the regular
archive search before looking for stripped dynamic objects.
Fri Jul 26 17:51:39 1996 Ian Lance Taylor <ian@cygnus.com> Fri Jul 26 17:51:39 1996 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (xcoff_build_ldsyms): Make exporting an undefined * xcofflink.c (xcoff_build_ldsyms): Make exporting an undefined

View File

@ -1061,12 +1061,21 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, info)
{ {
case bfd_object: case bfd_object:
return xcoff_link_add_object_symbols (abfd, info); return xcoff_link_add_object_symbols (abfd, info);
case bfd_archive: case bfd_archive:
/* We need to look through the archive for stripped dynamic /* If the archive has a map, do the usual search. We then need
objects, because they will not appear in the archive map even to check the archive for stripped dynamic objects, because
though they should, perhaps, be included. Also, if the they will not appear in the archive map even though they
linker has no map, we just consider each object file in turn, should, perhaps, be included. If the archive has no map, we
since that apparently is what the AIX native linker does. */ just consider each object file in turn, since that apparently
is what the AIX native linker does. */
if (bfd_has_map (abfd))
{
if (! (_bfd_generic_link_add_archive_symbols
(abfd, info, xcoff_link_check_archive_element)))
return false;
}
{ {
bfd *member; bfd *member;
@ -1087,15 +1096,10 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, info)
} }
member = bfd_openr_next_archived_file (abfd, member); member = bfd_openr_next_archived_file (abfd, member);
} }
if (! bfd_has_map (abfd))
return true;
/* Now do the usual search. */
return (_bfd_generic_link_add_archive_symbols
(abfd, info, xcoff_link_check_archive_element));
} }
return true;
default: default:
bfd_set_error (bfd_error_wrong_format); bfd_set_error (bfd_error_wrong_format);
return false; return false;