aboutsummaryrefslogtreecommitdiff
path: root/bfd/sunos.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1995-11-22 17:04:56 +0000
committerIan Lance Taylor <ian@airs.com>1995-11-22 17:04:56 +0000
commitfa63d1ef2381ff6d08d7d8a04eefbcd7edd081d0 (patch)
tree6760915cfe513b427098b5d743656967f2346789 /bfd/sunos.c
parent81749575db1753e70766d4d86c55c2170ef5d67c (diff)
downloadgdb-fa63d1ef2381ff6d08d7d8a04eefbcd7edd081d0.zip
gdb-fa63d1ef2381ff6d08d7d8a04eefbcd7edd081d0.tar.gz
gdb-fa63d1ef2381ff6d08d7d8a04eefbcd7edd081d0.tar.bz2
* sunos.c (sunos_scan_dynamic_symbol): Only set written if the
DEF_DYNAMIC flag is set. PR 8493.
Diffstat (limited to 'bfd/sunos.c')
-rw-r--r--bfd/sunos.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/bfd/sunos.c b/bfd/sunos.c
index 74ab1eb..af95a24 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;