+ webassembly internal linker: create separate exe sections for .rodata and .bss

This commit is contained in:
Nikolay Nikolov 2024-01-01 14:56:33 +02:00
parent dc4689ba1b
commit b361b41a86
2 changed files with 6 additions and 2 deletions

View File

@ -4257,7 +4257,7 @@ implementation
begin
{ WebAssembly is a Harvard architecture.
Data lives in a separate address space, so start addressing back from 0. }
if aname='.data' then
if aname='.rodata' then
CurrMemPos:=0;
inherited MemPos_ExeSection(aname);
end;

View File

@ -303,9 +303,13 @@ begin
LinkScript.Concat(' OBJSECTION .text.*');
LinkScript.Concat('ENDEXESECTION');
LinkScript.Concat('EXESECTION .data');
LinkScript.Concat('EXESECTION .rodata');
LinkScript.Concat(' OBJSECTION .rodata.*');
LinkScript.Concat('ENDEXESECTION');
LinkScript.Concat('EXESECTION .data');
LinkScript.Concat(' OBJSECTION .data.*');
LinkScript.Concat('ENDEXESECTION');
LinkScript.Concat('EXESECTION .bss');
LinkScript.Concat(' OBJSECTION .bss');
LinkScript.Concat('ENDEXESECTION');