-
Notifications
You must be signed in to change notification settings - Fork 271
Elfobject
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 provides support of most basic ELF features. Several advanced features are still lacking, such as the ability to provide one's own hashing function.
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'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.
- ELF for x86 (pdf) (from x86.org's Tools Interface Standards)
- ELF 64bit (pdf) (includes HP and HP-UX extensions)
For Future reference: