aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1994-02-05 06:17:36 +0000
committerIan Lance Taylor <ian@airs.com>1994-02-05 06:17:36 +0000
commit9b39ed6bfa5aa39d4bfe8ddd7fb9ded74ef34847 (patch)
tree4abc163305785c2452c7b4581af1ce8c535f24eb /bfd
parent7a54cdb08f0a1865066a73531c9bf3c6f4d7905f (diff)
downloadgdb-9b39ed6bfa5aa39d4bfe8ddd7fb9ded74ef34847.zip
gdb-9b39ed6bfa5aa39d4bfe8ddd7fb9ded74ef34847.tar.gz
gdb-9b39ed6bfa5aa39d4bfe8ddd7fb9ded74ef34847.tar.bz2
* 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.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog6
-rw-r--r--bfd/aoutx.h21
2 files changed, 23 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c1d4679..fb6787c 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,9 @@
+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.
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 861ebb9..bff9b2b 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -3035,7 +3035,12 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
/* 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);
@@ -3045,9 +3050,17 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
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
@@ -3064,7 +3077,7 @@ aout_link_check_ar_symbols (abfd, info, pneeded)
return true;
}
- if (type == (N_EXT | N_UNDF))
+ if (type == (N_UNDF | N_EXT))
{
bfd_vma value;