* write.c (write_object_file): In non BFD_ASSEMBLER code, as we

step through the frags calling cvt_frag_to_fill, switch to
	SEG_DATA when we reach data_frag_root.
PR 12580.
This commit is contained in:
Ian Lance Taylor 1997-06-12 16:17:53 +00:00
parent bb2a6cfbfd
commit 7799bb2c27
2 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,9 @@
Thu Jun 12 12:16:20 1997 Ian Lance Taylor <ian@cygnus.com>
* write.c (write_object_file): In non BFD_ASSEMBLER code, as we
step through the frags calling cvt_frag_to_fill, switch to
SEG_DATA when we reach data_frag_root.
Tue Jun 10 17:08:34 1997 Jeffrey A Law (law@cygnus.com)
* config/tc-mn10300.c (md_assemble): Allow an empty register

View File

@ -1460,6 +1460,13 @@ write_object_file ()
for (fragP = text_frag_root; fragP; fragP = fragP->fr_next)
{
/* At this point we have linked all the frags into a single
chain. However, cvt_frag_to_fill may call md_convert_frag
which may call fix_new. We need to ensure that fix_new adds
the fixup to the right section. */
if (fragP == data_frag_root)
subseg_change (SEG_DATA, 0);
cvt_frag_to_fill (&headers, SEG_TEXT, fragP);
/* Some assert macros don't work with # directives mixed in. */
@ -1886,7 +1893,6 @@ write_object_file ()
#ifdef TC_GENERIC_RELAX_TABLE
static int is_dnrange PARAMS ((fragS *, fragS *));
static long relax_frag PARAMS ((fragS *, long));
/* Subroutines of relax_segment. */
static int
@ -1902,7 +1908,7 @@ is_dnrange (f1, f2)
/* Relax a fragment by scanning TC_GENERIC_RELAX_TABLE. */
static long
long
relax_frag (fragP, stretch)
fragS *fragP;
long stretch;