|
@@ -215,6 +215,7 @@ implementation
|
|
procedure TOmfObjData.writeReloc(Data:aint;len:aword;p:TObjSymbol;Reloctype:TObjRelocationType);
|
|
procedure TOmfObjData.writeReloc(Data:aint;len:aword;p:TObjSymbol;Reloctype:TObjRelocationType);
|
|
var
|
|
var
|
|
objreloc: TOmfRelocation;
|
|
objreloc: TOmfRelocation;
|
|
|
|
+ symaddr: AWord;
|
|
begin
|
|
begin
|
|
{ Write('writeReloc(', data, ',', len, ',');
|
|
{ Write('writeReloc(', data, ',', len, ',');
|
|
if p<>nil then
|
|
if p<>nil then
|
|
@@ -228,8 +229,12 @@ implementation
|
|
objreloc:=nil;
|
|
objreloc:=nil;
|
|
if assigned(p) then
|
|
if assigned(p) then
|
|
begin
|
|
begin
|
|
|
|
+ { real address of the symbol }
|
|
|
|
+ symaddr:=p.address;
|
|
|
|
+
|
|
objreloc:=TOmfRelocation.CreateSymbol(CurrObjSec.Size,p,Reloctype);
|
|
objreloc:=TOmfRelocation.CreateSymbol(CurrObjSec.Size,p,Reloctype);
|
|
CurrObjSec.ObjRelocations.Add(objreloc);
|
|
CurrObjSec.ObjRelocations.Add(objreloc);
|
|
|
|
+ inc(data,symaddr);
|
|
end;
|
|
end;
|
|
CurrObjSec.write(data,len);
|
|
CurrObjSec.write(data,len);
|
|
end;
|
|
end;
|