|
@@ -125,6 +125,9 @@ interface
|
|
|
TCoffObjData = class(TObjData)
|
|
|
private
|
|
|
win32 : boolean;
|
|
|
+{$ifdef arm}
|
|
|
+ eVCobj : boolean;
|
|
|
+{$endif arm}
|
|
|
public
|
|
|
constructor createcoff(const n:string;awin32:boolean;acObjSection:TObjSectionClass);
|
|
|
destructor destroy;override;
|
|
@@ -817,7 +820,7 @@ const pemagic : array[0..3] of byte = (
|
|
|
if (relocsec.objdata=objdata) then
|
|
|
dec(address,TCoffObjSection(relocsec).orgmempos);
|
|
|
{$ifdef arm}
|
|
|
- if (relocsec.objdata=objdata) then
|
|
|
+ if (relocsec.objdata=objdata) and not TCoffObjData(objdata).eVCobj then
|
|
|
inc(address, relocsec.MemPos)
|
|
|
else
|
|
|
{$endif arm}
|
|
@@ -880,7 +883,7 @@ const pemagic : array[0..3] of byte = (
|
|
|
dec(address,TCoffObjSection(relocsec).orgmempos);
|
|
|
end;
|
|
|
{$ifdef arm}
|
|
|
- if (relocsec.objdata=objdata) then
|
|
|
+ if (relocsec.objdata=objdata) and not TCoffObjData(objdata).eVCobj then
|
|
|
inc(address, relocsec.MemPos)
|
|
|
else
|
|
|
{$endif arm}
|
|
@@ -1763,6 +1766,9 @@ const pemagic : array[0..3] of byte = (
|
|
|
InputError('Illegal COFF Magic');
|
|
|
exit;
|
|
|
end;
|
|
|
+{$ifdef arm}
|
|
|
+ eVCobj:=header.flag=$100;
|
|
|
+{$endif arm}
|
|
|
{ Strings }
|
|
|
AReader.Seek(header.sympos+header.syms*sizeof(CoffSymbol));
|
|
|
if not AReader.Read(strsize,4) then
|