diff --git a/compiler/elfbase.pas b/compiler/elfbase.pas index f477a12dfa..ba7585683a 100644 --- a/compiler/elfbase.pas +++ b/compiler/elfbase.pas @@ -108,6 +108,9 @@ interface SHT_PREINIT_ARRAY = 16; SHT_GROUP = 17; SHT_SYMTAB_SHNDX = 18; + SHT_GNU_ATTRIBUTES = $6ffffff5; + SHT_GNU_HASH = $6ffffff6; + SHT_GNU_LIBLIST = $6ffffff7; SHT_GNU_verdef = $6ffffffd; SHT_GNU_verneed = $6ffffffe; SHT_GNU_versym = $6fffffff; diff --git a/compiler/ogelf.pas b/compiler/ogelf.pas index 713b222e8e..1d5996248f 100644 --- a/compiler/ogelf.pas +++ b/compiler/ogelf.pas @@ -229,7 +229,6 @@ interface function AttachSection(objsec:TObjSection):TElfExeSection; function CreateSegment(atype,aflags,aalign:longword):TElfSegment; - procedure CreatePLT; procedure WriteHeader; procedure WriteDynamicSymbolsHash; procedure WriteDynamicTags; @@ -261,6 +260,7 @@ interface procedure CreateGOTSection;virtual; procedure make_dynamic_if_undefweak(exesym:TExeSymbol); procedure WriteDynRelocEntry(dataofs:aword;typ:byte;symidx:aword;addend:aword); + procedure CreatePLT;virtual; procedure WriteFirstPLTEntry;virtual;abstract; procedure WritePLTEntry(exesym:TExeSymbol);virtual; procedure WriteIndirectPLTEntry(exesym:TExeSymbol);virtual; @@ -1508,6 +1508,9 @@ implementation end else InternalError(2012110706); + + SHT_GNU_ATTRIBUTES: + { TODO: must not be ignored }; else if not (assigned(ElfTarget.loadsection) and ElfTarget.loadsection(self,objdata,shdr,index)) then