Appendix C: Revision History¶
First Draft (Published May 14, 1998)
Second Draft (Published May 3, 1999)
New values introduced for ELF header
e_machinefield.Revised language for
EI_OSABIandEI_ABIVERSIONfields of the ELF headere_identarray.New section flags
SHF_MERGEandSHF_STRINGSadded.New values added to a symbol table entry’s
st_otherfield to describe a symbol’s visibility.New dynamic section tags
DT_RUNPATHandDT_FLAGSadded. Deprecated dynamic section tagDT_RPATH.New semantics for shared object path searching, including new “Substitution Sequences”.
Third Draft (Published May 12, 1999)
A new symbol type,
STT_COMMON, has been added.Added language restricting the types of objects that may contain symbols with the section index
SHN_COMMON.Dynamic section entries
DT_SYMBOLIC,DT_TEXTRELandDT_BIND_NOWhave been deprecated. NewDT_FLAGSvaluesDF_SYMBOLIC,DF_TEXTRELandDF_BIND_NOWhave been added as replacements.New rules for interpreting dynamic section tag encodings have been added.
The OS and processor specific ranges for
DT_FLAGShave been removed.The language motivating the use of
DF_ORIGINhas been changed.
Fourth Draft (Published July 6, 1999)
New language has been added warning about the use of WEAK symbols in application programs.
New rules have been defined for composition of consecutive relocation entries that reference the same location.
Language has been added clarifying the order of execution for functions specified by initialization and termination arrays.
Fifth Draft (Published July 21, 1999)
New section types and section names added for init arrays, fini arrays, and pre-init arrays.
An object may now have both
DT_INITandDT_INIT_ARRAYentries (and bothDT_FINIandDT_FINI_ARRAYentries). The relative execution order is specified.The language describing the order of execution for termination functions has been revised.
A new pre-initialization mechanism has been added.
It is now up to the psABI supplement for each processor to specify whether the dynamic linker must invoke the executable file’s init and fini routines.
Sixth Draft (Published September 14, 1999)
Changed the numbering of some new section types previously added to account for type numbers already in use in particular vendor implementations.
Increased the number of section flag bits available in the OS specific range.
Seventh Draft (Published October 4, 1999)
Changed the values used for some new section attribute flags to accommodate platforms already using previously assigned values.
Added new section attribute flags
SHF_INFO_LINK,SHF_LINK_ORDER, andSHF_OS_NONCONFORMINGAdded rules for linkers when linking sections with unrecognized types or flags.
Eighth Draft (Published March 30, 2000)
Added the concept of section groups.
Removed the macros for
ELF32_ST_OTHERandELF64_ST_OTHER.
Ninth Draft (Published March 30, 2000)
Added language clarifying the semantics of symbols marked as
STV_PROTECTED.Added language clarifying the contents of the initialization and termination arrays.
Tenth Draft (Published 22 June 2000)
Added a sentence spelling out the behavior when resolving a symbol to a
STV_PROTECTEDdefinition from a shared object.Added support for more than 65,000 sections in the ELF header, and with
SHT_SYMTAB_SHNDXsections, and in symbol tables.
Eleventh Draft (Published 24 April 2001)
Updated table of EM_* entries.
Added
GRP_MASKOSandGRP_MASKPROC. Changed section group description in a few ways, clarifying some fuzzy points and rewriting the rules for symbols referencing into section groups.Changed the warning about using weak to be stronger.
Reworded the
EI_OSABIbyte description to make its use clearer.Added the table of now generic
EI_OSABIvalues.Added
SHF_TLS,PT_TLSand its contents,DF_STATIC_TLS,STT_TLS, .tbss, and .tdata.Changed the rules for
SHT_SYMTAB_SHNDXcontents to require 0 when the correspondingst_shndxfield is notSHN_XINDEX.
Twelfth Draft (Published 26 March 2007)
Updated table of EM_* entries.
Thirteenth Draft (Published 03 November 2009)
Updated table of EM_* entries.
Added
ELFOSABI_FENIXOSto theEI_OSABIvalues.Added
ELFOSABI_GNUto theEI_OSABIvalues; aliased toELFOSABI_LINUX.
Fourteenth Draft (Published 10 June 2013)
Added
SHF_COMPRESSEDto the Section Attribute Flags.Updated table of EM_* entries.
Fifteenth Draft (Published 23 July 2015)
Clarified the description of
SHT_SYMTAB_SHNDX; allow usage with any symbol table section.Added
DT_SYMTAB_SHNDXto the Dynamic Array Tags.
Version 4.2 (Published 2025)
Converted to ReStructuredText.
ELF specification is now separate from the gABI document.
Removed empty placeholders for psABI sections.
Version 4.3 (DRAFT)
Added extra requirements for
SHF_LINKORDERflag.Added relative relocation table (
Elf32_RelrandElf64_Relr).Changed the symbol visibility attribute to use the lower 3 bits of
st_other(instead of 2 bits).Added
DT_SYMTABSZentry, and madeDT_HASHoptional ifDT_SYMTABSZis provided.Changed
SHF_COMPRESSEDto allow withSHF_ALLOCsections inET_RELobjects.Added
ELFCOMPRESS_ZSTDcompression algorithm.