anchor.diff:    Elf64_Sxword = Int64;  // Signed long integer
   
   const
  -  EINDENT = 16;  
  -
  -type 
  +  EINDENT = 16;
  +
  +type
     elf_ident = packed record
     case byte of
      0: (e_ident: array [0..EINDENT-1] of byte);
  -   1: (id_mag        : array[0..3] of Char;          
  -       id_class      : Byte;               
  -       id_data       : Byte;               
  -       id_version    : Byte;              
  -       id_OSABI      : Byte;              
  -       id_AbiVersion : Byte;              
  +   1: (id_mag        : array[0..3] of Char;
  +       id_class      : Byte;
  +       id_data       : Byte;
  +       id_version    : Byte;
  +       id_OSABI      : Byte;
  +       id_AbiVersion : Byte;
         );
     end;
   
  -const  
  +const
     EI_MAG0       = 0; // $7F
     EI_MAG1       = 1; // E
     EI_MAG2       = 2; // L
  
positive.code:     st_Size    : Elf64_Xword   // Size of object (e.g., common)
    end;
    PElf64_Sym = ^Elf64_Sym;
    
    
  const
    //symbol bindings
    STB_LOCAL  = 0;    // Not visible outside the object ﬁle
  
negative.code:   STT_LOOS           = 10; // Environment-speciﬁc use
    STT_HIOS           = 12;
    STT_LOPROC         = 13; // Processor-speciﬁc use
    STT_SPARC_REGISTER = 13;
    STT_HIPROC         = 15;
  
  
  
  {
    Relocation
  
    Relocation is the process of connecting symbolic references with symbolic
    deﬁnitions. For example, when a program calls a function, the associated call
    instruction must transfer control to the proper destination address at execution.
    In other words, relocatable ﬁles must have information that describes how
    to modify their section contents, thus allowing executable and shared object
    ﬁles to hold the right information for a process’s program image.
    Relocation entriesare these data.
  }
  
  