Fix problem with linking shared libstdc++-v3 on AIX.

This commit is contained in:
Tom Rix 2002-03-20 12:03:27 +00:00
parent fcf0e35b46
commit 789c90aa81
2 changed files with 16 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2002-03-19 Tom Rix <trix@redhat.com>
* xcofflink.c (_bfd_xcoff_bfd_link_add_symbols): Look through all
dynamic objects in archives.
2002-03-19 Hans-Peter Nilsson <hp@bitrange.com>
* elflink.h (NAME(bfd_elf,record_link_assignment)): Don't set

View File

@ -588,11 +588,11 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, info)
case bfd_archive:
/* If the archive has a map, do the usual search. We then need
to check the archive for stripped dynamic objects, because
they will not appear in the archive map even though they
should, perhaps, be included. If the archive has no map, we
just consider each object file in turn, since that apparently
is what the AIX native linker does. */
to check the archive for dynamic objects, because they may not
appear in the archive map even though they should, perhaps, be
included. If the archive has no map, we 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
@ -602,18 +602,18 @@ _bfd_xcoff_bfd_link_add_symbols (abfd, info)
{
bfd *member;
member = bfd_openr_next_archived_file (abfd, (bfd *) NULL);
while (member != NULL)
{
if (bfd_check_format (member, bfd_object)
&& (! bfd_has_map (abfd)
|| ((member->flags & DYNAMIC) != 0
&& (member->flags & HAS_SYMS) == 0)))
&& (info->hash->creator == member->xvec)
&& (! bfd_has_map (abfd) || (member->flags & DYNAMIC) != 0))
{
boolean needed;
if (! xcoff_link_check_archive_element (member, info, &needed))
if (! xcoff_link_check_archive_element (member, info,
&needed))
return false;
if (needed)
member->archive_pass = -1;