Browse Source

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

binutils-2_13-branch
Tom Rix 25 years ago
parent
commit
789c90aa81
  1. 5
      bfd/ChangeLog
  2. 22
      bfd/xcofflink.c

5
bfd/ChangeLog

@ -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

22
bfd/xcofflink.c

@ -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;

Loading…
Cancel
Save