aboutsummaryrefslogtreecommitdiff
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
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.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/sunos.c9
2 files changed, 12 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f38ccaa..1aed409 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+Wed Nov 22 12:02:09 1995 Ian Lance Taylor <ian@cygnus.com>
+
+ * 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 <raeburn@cygnus.com>
* host-aout.c: If TRAD_HEADER is defined, include it.
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;