From: Nick Clifton Date: Wed, 27 Jun 2001 08:49:42 +0000 (+0000) Subject: Do not set finalize_syms until after the segments have been sized. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=38b87a1b807c1caeee3e66f67fa94d89962bbfb4;p=binutils-gdb.git 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. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 936969d1c39..291f4365462 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 2beb1d7731c..f17a6fa8e2a 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