aboutsummaryrefslogtreecommitdiff
path: root/gas/write.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2001-06-27 08:49:42 +0000
committerNick Clifton <nickc@redhat.com>2001-06-27 08:49:42 +0000
commit38b87a1b807c1caeee3e66f67fa94d89962bbfb4 (patch)
tree462965a4b79e234fa8a4305750d7a39ec9a01ba5 /gas/write.c
parent9f22353f5ba698d6ca4a42697b47f973607c814a (diff)
downloadgdb-38b87a1b807c1caeee3e66f67fa94d89962bbfb4.zip
gdb-38b87a1b807c1caeee3e66f67fa94d89962bbfb4.tar.gz
gdb-38b87a1b807c1caeee3e66f67fa94d89962bbfb4.tar.bz2
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.
Diffstat (limited to 'gas/write.c')
-rw-r--r--gas/write.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gas/write.c b/gas/write.c
index 2beb1d7..f17a6fa 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -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