+Sat Feb 5 01:14:38 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
+
+ * aoutx.h (aout_link_check_ar_symbols): Correct test for whether
+ object file defines symbol. Also, if skipping a symbol, skip the
+ second symbol of a N_WARNING or N_INDR symbol as well.
+
Fri Feb 4 23:55:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
Add basic support for writing RS/6000 XCOFF files.
/* Ignore symbols that are not externally visible. */
if ((type & N_EXT) == 0)
- continue;
+ {
+ if (type == N_WARNING
+ || type == N_INDR)
+ ++p;
+ continue;
+ }
name = strings + GET_WORD (abfd, p->e_strx);
h = bfd_link_hash_lookup (info->hash, name, false, false, true);
if (h == (struct bfd_link_hash_entry *) NULL
|| (h->type != bfd_link_hash_undefined
&& h->type != bfd_link_hash_common))
- continue;
+ {
+ if (type == (N_INDR | N_EXT))
+ ++p;
+ continue;
+ }
- if ((type & (N_TEXT | N_DATA | N_BSS)) != 0)
+ if (type == (N_TEXT | N_EXT)
+ || type == (N_DATA | N_EXT)
+ || type == (N_BSS | N_EXT)
+ || type == (N_ABS | N_EXT)
+ || type == (N_INDR | N_EXT))
{
/* This object file defines this symbol. We must link it
in. This is true regardless of whether the current
return true;
}
- if (type == (N_EXT | N_UNDF))
+ if (type == (N_UNDF | N_EXT))
{
bfd_vma value;