ELF
ELF is the abreviation for Execute and Link Format and is the binary format used by most Linux and UNIX systems today. Originally invented for the System V the format has superceeded prior binary formats such as a.out and ECOFF and is today's defacto standard binary format. Linux/MIPS uses the GNU ELF variant supported by GNU Binutils.
Contents
ABI ELF
Inside binutils also known as trad-elf or by the full name of the ELF variants as elf32-tradbigmips, elf32-tradlittlemips, elf32-ntradbigmips, elf64-tradbigmips, elf32-ntradlittlemips or elf64-tradlittlemips is what Linux/MIPS is using. See MIPS ABI History for details.
IRIX ELF
Old binutils used to default to IRIX ELF instead of ABI ELF. IRIX ELF has a number of subtle differences to ABI ELF. In general these don't cause any problems however modutils for Linux 2.4 and older kernels assume ABI ELF and as the result may throw error messages as the following:
somemodule.o: local symbol gcc2_compiled. with index 10 exceeds local_symtab_size 10 somemodule.o: local symbol __gnu_compiled_c with index 11 exceeds local_symtab_size 10 somemodule.o: local symbol __module_kernel_version with index 12 exceeds local_symtab_size 10
If you get these, it's really time to upgrade to newer binutils.
See also
- ELF Documentation Generic and MIPS-specific ABI and ELF Specifications
External links
- ELF at Wikipedia
- Linux Standard Base archive, ELF Specifications and Linux extensions