Skip to content
PeterJohnson edited this page Jun 24, 2011 · 1 revision

ELF Object Format

The Executable and Linkable Object Format is the primary object format for many Unix-type operating systems including FreeBSD and GNU/Linux. It appears in three forms:

  • Shared object files (.so)
  • Relocatable files (.o)
  • Executable files (no convention)

Yasm only directly supports relocatable object files. Other tools, such as the GNU Linker "ld", help turn object files into the other formats.

Yasm ELF Support

Yasm provides support of most basic ELF features. Several advanced features are still lacking, such as the ability to provide one's own hashing function.

YASM Integration

ELF supports the x86 architecture in its x86 and AMD64 machine variations.

ELF supports STABS and DWARF debugging formats.

As other architectures, machines, and debugging formats that can work with ELF are added to Yasm, expect to see ELF support for them.

ELF Sections

ELF's section-based output supports attributes on a per-section basis. These attributes include "alloc", "exec", "write", "progbits", and "align". Except for align, they can each be negated by prepending "no", e.g., "noexec". They are later read by the operating system to select the proper behavior for each section. For more information, see the Yasm manual section on ELF Sections.

Key Links

For Future reference: