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