diff options
author | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-04-06 21:43:06 +0000 |
---|---|---|
committer | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2015-04-06 21:43:06 +0000 |
commit | 21ca71b6ba6c35d2a018b09a9c6cc2088048fa3f (patch) | |
tree | c2a2fb01a67f8321cd8f54621991b795f5fd667c | |
parent | b39e0013902512e02660217a95ef850711b59b44 (diff) | |
download | fpc-21ca71b6ba6c35d2a018b09a9c6cc2088048fa3f.tar.gz |
+ TOmfObjData.writeReloc: write the actual offset of the symbol in the section data
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@30473 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | compiler/ogomf.pas | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/ogomf.pas b/compiler/ogomf.pas index 3f6055f98b..17e4fe5a89 100644 --- a/compiler/ogomf.pas +++ b/compiler/ogomf.pas @@ -215,6 +215,7 @@ implementation procedure TOmfObjData.writeReloc(Data:aint;len:aword;p:TObjSymbol;Reloctype:TObjRelocationType); var objreloc: TOmfRelocation; + symaddr: AWord; begin { Write('writeReloc(', data, ',', len, ','); if p<>nil then @@ -228,8 +229,12 @@ implementation objreloc:=nil; if assigned(p) then begin + { real address of the symbol } + symaddr:=p.address; + objreloc:=TOmfRelocation.CreateSymbol(CurrObjSec.Size,p,Reloctype); CurrObjSec.ObjRelocations.Add(objreloc); + inc(data,symaddr); end; CurrObjSec.write(data,len); end; |