From 38b87a1b807c1caeee3e66f67fa94d89962bbfb4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 27 Jun 2001 08:49:42 +0000 Subject: 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. --- gas/ChangeLog | 5 +++++ gas/write.c | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 936969d..291f436 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 2001-06-27 Nick Clifton + * 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. 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 -- cgit v1.1