From 8ecd77a8f1b8c7fade3b6fd08d640c1e1017c41e Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 1 Aug 2021 21:53:46 +0200 Subject: [PATCH] Use a temp symbol for RomStart/RomEnd symbols, makes the map show the right value for actual RomStart/RomEnd symbols (#880) --- tools/mkldscript.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/mkldscript.c b/tools/mkldscript.c index ca66156d72..f0606392cc 100644 --- a/tools/mkldscript.c +++ b/tools/mkldscript.c @@ -328,8 +328,9 @@ static void write_ld_script(void) //if (seg->fields & (1 << STMT_increment)) //fprintf(fout, " . += 0x%08X;\n", seg->increment); - fprintf(fout, " _%sSegmentRomStart = _RomSize;\n" - " ..%s ", seg->name, seg->name); + fprintf(fout, " _%sSegmentRomStartTemp = _RomSize;\n" + " _%sSegmentRomStart = _%sSegmentRomStartTemp;\n" + " ..%s ", seg->name, seg->name, seg->name, seg->name); if (seg->fields & (1 << STMT_after)) fprintf(fout, "_%sSegmentEnd ", seg->after); @@ -410,7 +411,9 @@ static void write_ld_script(void) //fprintf(fout, " _RomSize += ( _%sSegmentDataEnd - _%sSegmentTextStart );\n", seg->name, seg->name); fprintf(fout, " _RomSize += ( _%sSegmentOvlEnd - _%sSegmentTextStart );\n", seg->name, seg->name); - fprintf(fout, " _%sSegmentRomEnd = _RomSize;\n\n", seg->name); + fprintf(fout, " _%sSegmentRomEndTemp = _RomSize;\n" + "_%sSegmentRomEnd = _%sSegmentRomEndTemp;\n\n", + seg->name, seg->name, seg->name); // algn end of ROM segment if (seg->fields & (1 << STMT_romalign))