diff options
author | Ian Lance Taylor <ian@airs.com> | 1994-02-05 06:17:36 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1994-02-05 06:17:36 +0000 |
commit | 9b39ed6bfa5aa39d4bfe8ddd7fb9ded74ef34847 (patch) | |
tree | 4abc163305785c2452c7b4581af1ce8c535f24eb /bfd/aoutx.h | |
parent | 7a54cdb08f0a1865066a73531c9bf3c6f4d7905f (diff) | |
download | gdb-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/aoutx.h')
-rw-r--r-- | bfd/aoutx.h | 21 |
1 files changed, 17 insertions, 4 deletions
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; |