From 9b39ed6bfa5aa39d4bfe8ddd7fb9ded74ef34847 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sat, 5 Feb 1994 06:17:36 +0000 Subject: [PATCH] * 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. --- bfd/ChangeLog | 6 ++++++ bfd/aoutx.h | 21 +++++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c1d46791652..fb6787c3235 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 861ebb98c1e..bff9b2bb568 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; -- 2.30.2