


Set to 1 for the original version of ELF. Infineon Technologies 32-bit embedded processor STMicroelectronics ST19 8-bit microcontrollerĪxis Communications 32-bit embedded processor STMicroelectronics ST7 8-bit microcontroller STMicroelectronics ST9+ 8/16 bit microcontroller Specifies target instruction set architecture. Should be filled with zeros and ignored when read. e_ident is greater than the largest known feature. Glibc 2.12+ in case e_ident = 3 treats this field as ABI version of the dynamic linker: it defines a list of dynamic linker's features, treats e_ident as a feature level requested by the shared object (executable or dynamic library) and refuses to load it if an unknown feature is requested, i.e. In that case, offset and size of EI_PAD are 8. Linux kernel (after at least 2.6) has no definition of it, so it is ignored for statically-linked executables. Its interpretation depends on the target ABI. Identifies the target operating system ABI.įurther specifies the ABI version. Set to 1 for the original and current version of ELF. This affects interpretation of multi-byte fields starting with offset 0x10. This byte is set to either 1 or 2 to signify little or big endianness, respectively. This byte is set to either 1 or 2 to signify 32- or 64-bit format, respectively. The ELF header is 52 or 64 bytes long for 32-bit and 64-bit binaries respectively.Į_ident through e_identĠx7F followed by ELF( 45 4c 46) in ASCII these four bytes constitute the magic number. The header contains three fields that are affected by this setting and offset other fields that follow them. The ELF header defines whether to use 32-bit or 64-bit addresses. This has allowed it to be adopted by many different operating systems on many different hardware platforms.Ġ0000000 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 |. For instance it supports different endiannesses and address sizes so it does not exclude any particular central processing unit (CPU) or instruction set architecture. In 1999, it was chosen as the standard binary file format for Unix and Unix-like systems on x86 processors by the 86open project.īy design, the ELF format is flexible, extensible, and cross-platform. First published in the specification for the application binary interface (ABI) of the Unix operating system version named System V Release 4 (SVR4), and later in the Tool Interface Standard, it was quickly accepted among different vendors of Unix systems.

In computing, the Executable and Linkable Format ( ELF, formerly named Extensible Linking Format), is a common standard file format for executable files, object code, shared libraries, and core dumps. An ELF file has two views: the program header shows the segments used at run time, whereas the section header lists the set of sections.
