+ create relocation objects for R_WASM_MEMORY_ADDR_LEB relocations in the wasm object reader

This commit is contained in:
Nikolay Nikolov 2023-12-28 21:04:13 +02:00
parent 118e093c97
commit 3e14d47b92

View File

@ -3640,6 +3640,7 @@ implementation
i, j, FirstDataSegmentIdx, SegI: Integer;
CurrSec, ObjSec: TObjSection;
BaseSectionOffset: UInt32;
ObjReloc: TWasmObjRelocation;
begin
FReader:=AReader;
InputFileName:=AReader.FileName;
@ -3849,6 +3850,22 @@ implementation
else
Writeln('Warning! No object symbol created for ', SymbolTable[RelocIndex].SymName);
end;
R_WASM_MEMORY_ADDR_LEB:
begin
if RelocIndex>high(SymbolTable) then
begin
InputError('Symbol index in relocation too high');
exit;
end;
if Assigned(SymbolTable[RelocIndex].ObjSym) then
begin
ObjReloc:=TWasmObjRelocation.CreateSymbol(RelocOffset-BaseSectionOffset,SymbolTable[RelocIndex].ObjSym,RELOC_MEMORY_ADDR_LEB);
ObjReloc.Addend:=RelocAddend;
ObjSec.ObjRelocations.Add(ObjReloc);
end
else
Writeln('Warning! No object symbol created for ', SymbolTable[RelocIndex].SymName);
end;
end;
end;