aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1996-12-12 22:41:22 +0000
committerIan Lance Taylor <ian@airs.com>1996-12-12 22:41:22 +0000
commit8dd6fde3e5ea3909e3a29be820a7b12925f90329 (patch)
tree05a6867757ee8d6fb06d79c206f13af283ac80a0 /gas
parentd0d5edba84930baf71277350a33839ea42f45eac (diff)
downloadgdb-8dd6fde3e5ea3909e3a29be820a7b12925f90329.zip
gdb-8dd6fde3e5ea3909e3a29be820a7b12925f90329.tar.gz
gdb-8dd6fde3e5ea3909e3a29be820a7b12925f90329.tar.bz2
* config/obj-coff.c (fixup_segment): Make sure that symbols are
resolved; expression symbols may have been skipped.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog1
-rw-r--r--gas/config/obj-coff.c9
2 files changed, 9 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 743073e..ff72464 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -2,6 +2,7 @@ Thu Dec 12 16:40:47 1996 Ian Lance Taylor <ian@cygnus.com>
* write.c (adjust_reloc_syms): Make sure that symbols are
resolved; expression symbols may have been skipped.
+ * config/obj-coff.c (fixup_segment): Likewise.
Thu Dec 12 15:18:21 1996 Michael Meissner <meissner@tiktok.cygnus.com>
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index eea84bc..d06212e 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -22,7 +22,6 @@
#include "as.h"
#include "obstack.h"
#include "subsegs.h"
-#include "libiberty.h"
/* I think this is probably always correct. */
#ifndef KEEP_RELOC_INFO
@@ -1654,6 +1653,7 @@ do_relocs_for (abfd, h, file_cursor)
/* Turn the segment of the symbol into an offset. */
if (symbol_ptr)
{
+ resolve_symbol_value (symbol_ptr);
if (! symbol_ptr->sy_resolved)
{
char *file;
@@ -3840,6 +3840,13 @@ fixup_segment (segP, this_segment_type)
}
#endif
+ /* Make sure the symbols have been resolved; this may not have
+ happened if these are expression symbols. */
+ if (add_symbolP != NULL && ! add_symbolP->sy_resolved)
+ resolve_symbol_value (add_symbolP);
+ if (sub_symbolP != NULL && ! sub_symbolP->sy_resolved)
+ resolve_symbol_value (sub_symbolP);
+
if (add_symbolP != NULL
&& add_symbolP->sy_mri_common)
{