* config/obj-coff.c (fixup_segment): Make sure that symbols are
authorIan Lance Taylor <ian@airs.com>
Thu, 12 Dec 1996 22:41:22 +0000 (22:41 +0000)
committerIan Lance Taylor <ian@airs.com>
Thu, 12 Dec 1996 22:41:22 +0000 (22:41 +0000)
resolved; expression symbols may have been skipped.

gas/ChangeLog
gas/config/obj-coff.c

index 743073e700182cbb121adf7e8ca03dada52f167a..ff724643d1513d97754e70b24172f2a0ecd99306 100644 (file)
@@ -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>
 
index eea84bce1fd89b90e44c016482da4be72f910c72..d06212e510a02cd46493d57466ba9c48057df7d5 100644 (file)
@@ -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)
        {