From: Ian Lance Taylor Date: Wed, 22 Nov 1995 17:04:56 +0000 (+0000) Subject: * sunos.c (sunos_scan_dynamic_symbol): Only set written if the X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fa63d1ef2381ff6d08d7d8a04eefbcd7edd081d0;p=binutils-gdb.git * sunos.c (sunos_scan_dynamic_symbol): Only set written if the DEF_DYNAMIC flag is set. PR 8493. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f38ccaa577e..1aed409983d 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +Wed Nov 22 12:02:09 1995 Ian Lance Taylor + + * sunos.c (sunos_scan_dynamic_symbol): Only set written if the + DEF_DYNAMIC flag is set. + Tue Nov 21 13:25:29 1995 Ken Raeburn * host-aout.c: If TRAD_HEADER is defined, include it. diff --git a/bfd/sunos.c b/bfd/sunos.c index 74ab1eb0dd2..af95a24aa38 100644 --- a/bfd/sunos.c +++ b/bfd/sunos.c @@ -1155,7 +1155,7 @@ bfd_sunos_get_needed_list (abfd, info) bfd *abfd; struct bfd_link_info *info; { - if (info->hash->creator != &MY(xvec)) + if (info->hash->creator != &MY(vec)) return NULL; return sunos_hash_table (info)->needed; } @@ -1926,8 +1926,13 @@ sunos_scan_dynamic_symbol (h, data) part of the regular symbol table. This is all symbols which are not defined in a regular object file. For some reason symbols which are referenced by a regular object and defined by a dynamic - object do not seem to show up in the regular symbol table. */ + object do not seem to show up in the regular symbol table. It is + possible for a symbol to have only SUNOS_REF_REGULAR set here, it + is an undefined symbol which was turned into a common symbol + because it was found in an archive object which was not included + in the link. */ if ((h->flags & SUNOS_DEF_REGULAR) == 0 + && (h->flags & SUNOS_DEF_DYNAMIC) != 0 && strcmp (h->root.root.root.string, "__DYNAMIC") != 0) h->root.written = true;