Do not set finalize_syms until after the segments have been sized.
authorNick Clifton <nickc@redhat.com>
Wed, 27 Jun 2001 08:49:42 +0000 (08:49 +0000)
committerNick Clifton <nickc@redhat.com>
Wed, 27 Jun 2001 08:49:42 +0000 (08:49 +0000)
Some backends may still need to access the syms's frags in order to
adjust relaxed frags.

gas/ChangeLog
gas/write.c

index 936969d1c3988bed4e98ec1372e5496f84fd469d..291f436546231124f4e24d3dc5a4268b713bbf43 100644 (file)
@@ -1,5 +1,10 @@
 2001-06-27  Nick Clifton  <nickc@cambridge.redhat.com>
 
+       * write.c (write_object_file): Do not set finalize_syms until
+       after the segments have been sized.  Some backends may still
+       need to access the syms's frags in order to adjust relaxed
+       frags.
+
        * config/tc-arm.c (do_ldst): Use MVN to build simple inverted
        constants.
 
index 2beb1d7731c3513c20a0c08cbd791b29049e4d9f..f17a6fa8e2a3ef6b9aee38664b77ab380b1e170f 100644 (file)
@@ -1574,15 +1574,18 @@ write_object_file ()
       if (!changed)
        break;
     }
-  /* Relaxation has completed.  Freeze all syms.  */
-  finalize_syms = 1;
 
+  /* Note - we do not set finalize_syms here because some targets
+     do not finish sizing all of their frags until after size_seg
+     has completed.  */
   bfd_map_over_sections (stdoutput, size_seg, (char *) 0);
 #else
   relax_and_size_all_segments ();
-  finalize_syms = 1;
 #endif /* BFD_ASSEMBLER  */
 
+  /* Relaxation has completed.  Freeze all syms.  */
+  finalize_syms = 1;
+
 #if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && defined (TE_GO32)
   /* Now that the segments have their final sizes, run through the
      sections and set their vma and lma. !BFD gas sets them, and BFD gas