mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-21 20:09:25 +02:00
* Pass ExeOutput as argument to TObjSection.fixuprelocs, needed for ELF targets to relocate the complex GOT stuff.
* TExeSection.AddObjSection made virtual. - TExeSymbol.ExeSection is nowhere used, removed. git-svn-id: trunk@21626 -
This commit is contained in:
parent
ac2de2c188
commit
7cda919547
@ -42,6 +42,7 @@ interface
|
||||
|
||||
TExeSection = class;
|
||||
TExeSymbol = class;
|
||||
TExeOutput = class;
|
||||
|
||||
TObjRelocationType = (
|
||||
{ Relocation to absolute address }
|
||||
@ -215,7 +216,7 @@ interface
|
||||
procedure addsymReloc(ofs:aword;p:TObjSymbol;Reloctype:TObjRelocationType);
|
||||
procedure addsectionReloc(ofs:aword;aobjsec:TObjSection;Reloctype:TObjRelocationType);
|
||||
procedure AddSymbolDefine(p:TObjSymbol);
|
||||
procedure FixupRelocs;virtual;
|
||||
procedure FixupRelocs(Exe: TExeOutput);virtual;
|
||||
procedure ReleaseData;
|
||||
function FullName:string;
|
||||
property Data:TDynamicArray read FData;
|
||||
@ -350,7 +351,6 @@ interface
|
||||
|
||||
TExeSymbol = class(TFPHashObject)
|
||||
ObjSymbol : TObjSymbol;
|
||||
ExeSection : TExeSection;
|
||||
State : TSymbolState;
|
||||
{ Used for vmt references optimization }
|
||||
VTable : TExeVTable;
|
||||
@ -368,7 +368,7 @@ interface
|
||||
SecOptions : TObjSectionOptions;
|
||||
constructor create(AList:TFPHashObjectList;const AName:string);virtual;
|
||||
destructor destroy;override;
|
||||
procedure AddObjSection(objsec:TObjSection);
|
||||
procedure AddObjSection(objsec:TObjSection);virtual;
|
||||
property ObjSectionList:TFPObjectList read FObjSectionList;
|
||||
property SecSymIdx:longint read FSecSymIdx write FSecSymIdx;
|
||||
end;
|
||||
@ -756,7 +756,7 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure TObjSection.FixupRelocs;
|
||||
procedure TObjSection.FixupRelocs(Exe:TExeOutput);
|
||||
begin
|
||||
end;
|
||||
|
||||
@ -2841,7 +2841,7 @@ implementation
|
||||
objsec:=TObjSection(exesec.ObjSectionlist[j]);
|
||||
if not objsec.Used then
|
||||
internalerror(200603301);
|
||||
objsec.FixupRelocs;
|
||||
objsec.FixupRelocs(Self);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
@ -110,7 +110,7 @@ interface
|
||||
secidx : longword;
|
||||
constructor create(AList:TFPHashObjectList;const Aname:string;Aalign:shortint;Aoptions:TObjSectionOptions);override;
|
||||
procedure addsymsizereloc(ofs:aword;p:TObjSymbol;symsize:aword;reloctype:TObjRelocationType);
|
||||
procedure fixuprelocs;override;
|
||||
procedure fixuprelocs(Exe:TExeOutput);override;
|
||||
end;
|
||||
|
||||
TDJCoffObjSection = class(TCoffObjSection)
|
||||
@ -846,7 +846,7 @@ const pemagic : array[0..3] of byte = (
|
||||
end;
|
||||
|
||||
|
||||
procedure TCoffObjSection.fixuprelocs;
|
||||
procedure TCoffObjSection.fixuprelocs(Exe:TExeOutput);
|
||||
var
|
||||
i,zero,address_size : longint;
|
||||
objreloc : TObjRelocation;
|
||||
|
Loading…
Reference in New Issue
Block a user