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.
This commit is contained in:
Nick Clifton 2001-06-27 08:49:42 +00:00
parent 9f22353f5b
commit 38b87a1b80
2 changed files with 11 additions and 3 deletions

View file

@ -1,5 +1,10 @@
2001-06-27 Nick Clifton <nickc@cambridge.redhat.com> 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 * config/tc-arm.c (do_ldst): Use MVN to build simple inverted
constants. constants.

View file

@ -1574,15 +1574,18 @@ write_object_file ()
if (!changed) if (!changed)
break; 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); bfd_map_over_sections (stdoutput, size_seg, (char *) 0);
#else #else
relax_and_size_all_segments (); relax_and_size_all_segments ();
finalize_syms = 1;
#endif /* BFD_ASSEMBLER */ #endif /* BFD_ASSEMBLER */
/* Relaxation has completed. Freeze all syms. */
finalize_syms = 1;
#if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && defined (TE_GO32) #if defined (BFD_ASSEMBLER) && defined (OBJ_COFF) && defined (TE_GO32)
/* Now that the segments have their final sizes, run through the /* 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 sections and set their vma and lma. !BFD gas sets them, and BFD gas