+ WebAssembly internal linker: write the export section to the linker map file

This commit is contained in:
Nikolay Nikolov 2025-02-15 23:18:24 +02:00
parent 847ae42cc1
commit 3a714774ff

View File

@ -5097,6 +5097,8 @@ implementation
i: Integer; i: Integer;
objsec: TWasmObjSection; objsec: TWasmObjSection;
begin begin
if assigned(exemap) then
exemap.AddHeader('Export section');
FunctionExportsCount:=0; FunctionExportsCount:=0;
textsec:=FindExeSection('.text'); textsec:=FindExeSection('.text');
if not assigned(textsec) then if not assigned(textsec) then
@ -5115,6 +5117,8 @@ implementation
WriteName(FWasmSections[wsiExport],'memory'); WriteName(FWasmSections[wsiExport],'memory');
WriteByte(FWasmSections[wsiExport],$02); { mem } WriteByte(FWasmSections[wsiExport],$02); { mem }
WriteUleb(FWasmSections[wsiExport],0); { memidx = 0 } WriteUleb(FWasmSections[wsiExport],0); { memidx = 0 }
if assigned(exemap) then
exemap.Add(' Memory[0] -> "memory"');
for i:=0 to textsec.ObjSectionList.Count-1 do for i:=0 to textsec.ObjSectionList.Count-1 do
begin begin
@ -5124,6 +5128,8 @@ implementation
WriteName(FWasmSections[wsiExport],objsec.MainFuncSymbol.LinkingData.ExportName); WriteName(FWasmSections[wsiExport],objsec.MainFuncSymbol.LinkingData.ExportName);
WriteByte(FWasmSections[wsiExport],$00); { func } WriteByte(FWasmSections[wsiExport],$00); { func }
WriteUleb(FWasmSections[wsiExport],objsec.MainFuncSymbol.LinkingData.ExeFunctionIndex); { funcidx } WriteUleb(FWasmSections[wsiExport],objsec.MainFuncSymbol.LinkingData.ExeFunctionIndex); { funcidx }
if assigned(exemap) then
exemap.Add(' Function['+tostr(objsec.MainFuncSymbol.LinkingData.ExeFunctionIndex)+'] -> "'+objsec.MainFuncSymbol.LinkingData.ExportName+'"');
end; end;
end; end;
end; end;