mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-27 10:52:50 +02:00
* Made TElfExeOutput.CreatePLT method protected virtual, so CPU-specific handling can be provided by descendants.
* Handle SHT_GNU_ATTRIBUTES sections (ignore them for now). git-svn-id: trunk@23339 -
This commit is contained in:
parent
b197919953
commit
49d7448f44
@ -108,6 +108,9 @@ interface
|
|||||||
SHT_PREINIT_ARRAY = 16;
|
SHT_PREINIT_ARRAY = 16;
|
||||||
SHT_GROUP = 17;
|
SHT_GROUP = 17;
|
||||||
SHT_SYMTAB_SHNDX = 18;
|
SHT_SYMTAB_SHNDX = 18;
|
||||||
|
SHT_GNU_ATTRIBUTES = $6ffffff5;
|
||||||
|
SHT_GNU_HASH = $6ffffff6;
|
||||||
|
SHT_GNU_LIBLIST = $6ffffff7;
|
||||||
SHT_GNU_verdef = $6ffffffd;
|
SHT_GNU_verdef = $6ffffffd;
|
||||||
SHT_GNU_verneed = $6ffffffe;
|
SHT_GNU_verneed = $6ffffffe;
|
||||||
SHT_GNU_versym = $6fffffff;
|
SHT_GNU_versym = $6fffffff;
|
||||||
|
@ -229,7 +229,6 @@ interface
|
|||||||
|
|
||||||
function AttachSection(objsec:TObjSection):TElfExeSection;
|
function AttachSection(objsec:TObjSection):TElfExeSection;
|
||||||
function CreateSegment(atype,aflags,aalign:longword):TElfSegment;
|
function CreateSegment(atype,aflags,aalign:longword):TElfSegment;
|
||||||
procedure CreatePLT;
|
|
||||||
procedure WriteHeader;
|
procedure WriteHeader;
|
||||||
procedure WriteDynamicSymbolsHash;
|
procedure WriteDynamicSymbolsHash;
|
||||||
procedure WriteDynamicTags;
|
procedure WriteDynamicTags;
|
||||||
@ -261,6 +260,7 @@ interface
|
|||||||
procedure CreateGOTSection;virtual;
|
procedure CreateGOTSection;virtual;
|
||||||
procedure make_dynamic_if_undefweak(exesym:TExeSymbol);
|
procedure make_dynamic_if_undefweak(exesym:TExeSymbol);
|
||||||
procedure WriteDynRelocEntry(dataofs:aword;typ:byte;symidx:aword;addend:aword);
|
procedure WriteDynRelocEntry(dataofs:aword;typ:byte;symidx:aword;addend:aword);
|
||||||
|
procedure CreatePLT;virtual;
|
||||||
procedure WriteFirstPLTEntry;virtual;abstract;
|
procedure WriteFirstPLTEntry;virtual;abstract;
|
||||||
procedure WritePLTEntry(exesym:TExeSymbol);virtual;
|
procedure WritePLTEntry(exesym:TExeSymbol);virtual;
|
||||||
procedure WriteIndirectPLTEntry(exesym:TExeSymbol);virtual;
|
procedure WriteIndirectPLTEntry(exesym:TExeSymbol);virtual;
|
||||||
@ -1508,6 +1508,9 @@ implementation
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
InternalError(2012110706);
|
InternalError(2012110706);
|
||||||
|
|
||||||
|
SHT_GNU_ATTRIBUTES:
|
||||||
|
{ TODO: must not be ignored };
|
||||||
else
|
else
|
||||||
if not (assigned(ElfTarget.loadsection) and
|
if not (assigned(ElfTarget.loadsection) and
|
||||||
ElfTarget.loadsection(self,objdata,shdr,index)) then
|
ElfTarget.loadsection(self,objdata,shdr,index)) then
|
||||||
|
Loading…
Reference in New Issue
Block a user