+ create data symbols in the wasm object reader

This commit is contained in:
Nikolay Nikolov 2023-12-27 13:14:27 +02:00
parent e569863a1a
commit ee4d77b119

View File

@ -3145,6 +3145,7 @@ implementation
ModuleVersion: array [0..3] of Byte;
i: Integer;
CurrSec: TObjSection;
objsym: TObjSymbol;
begin
FReader:=AReader;
InputFileName:=AReader.FileName;
@ -3177,6 +3178,38 @@ implementation
end;
ReadSectionContent(ObjData);
for i:=low(SymbolTable) to high(SymbolTable) do
with SymbolTable[i] do
case SymKind of
byte(SYMTAB_DATA):
if (SymFlags and WASM_SYM_UNDEFINED)<>0 then
begin
objsym:=ObjData.CreateSymbol(SymName);
objsym.bind:=AB_EXTERNAL;
objsym.typ:=AT_DATA;
objsym.objsection:=nil;
objsym.offset:=0;
objsym.size:=0;
end
else
begin
objsym:=ObjData.CreateSymbol(SymName);
objsym.bind:=AB_GLOBAL;
objsym.typ:=AT_DATA;
objsym.objsection:=TObjSection(ObjData.ObjSectionList[SymIndex]);
objsym.offset:=SymOffset;
objsym.size:=SymSize;
end;
byte(SYMTAB_FUNCTION),
byte(SYMTAB_GLOBAL),
byte(SYMTAB_SECTION),
byte(SYMTAB_EVENT),
byte(SYMTAB_TABLE):
{TODO};
else
internalerror(2023122701);
end;
Result:=True;
end;