From LinuxMIPS
Jump to: navigation, search

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.


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.


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

External links