Application Binary Interface

Documentation and references for the NetBSD ABI.

XXX TBD:

  1. NetBSD Application Binary Interface
    1. ELF
    2. Thread-local storage
    3. Exception handling and unwinding
    4. Debug data: DWARF, CTF
    5. Library versioning and compatibility
    6. Processor supplements
      1. aarch64
      2. alpha
      3. amd64
      4. arm (32-bit)
      5. hppa
      6. i386
      7. ia64
      8. m68k
      9. mips
      10. powerpc
      11. riscv
      12. sh3
      13. sparc/sparc64
      14. vax
  2. External Links

NetBSD Application Binary Interface

ELF

XXX link gABI

Thread-local storage

Exception handling and unwinding

XXX

Debug data: DWARF, CTF

XXX

Library versioning and compatibility

Processor supplements

aarch64

alpha

ELF Alpha support may be bespoke to NetBSD, or GNU gcc/binutils; it appears neither DEC nor SCO nor anyone else never published an Alpha psABI.

XXX (add refs to libexec/ld.elf_so/arch/alpha/alpha_reloc.c too)

amd64

arm (32-bit)

hppa

ELF and TLS:

PA-RISC 1.1 ABI:

PA-RISC 2.0 ABI:

i386

Note: Intel and SuSE have published a 2015 revision (archive, source code) to the SysV ELF supplement, which NetBSD does not implement—for example, the original SysV ABI from SCO only mandates 4-byte alignment of the stack pointer, which is all that NetBSD/i386 guarantees, while the updated one has been incompatibly modified to guarantee 16-byte alignment.

ia64

m68k

XXX (add refs to libexec/ld.elf_so/arch/alpha/alpha_reloc.c too)

mips

XXX Applicable? MIPSpro 64-bit, MIPSpro N32 ABI Handbook

powerpc

riscv

sh3

sparc/sparc64

Encompasses the SysV SPARC psABI (System V Application Binary Interface: SPARC Processor Supplement, 3rd ed., 1996, The Santa Cruz Operation, Inc., archive).

vax

ELF VAX support is bespoke to NetBSD, courtesy of Matt Thomas (matt@); there is no VAX psABI.

External Links

Relevant information and further references, not necessarily applicable to NetBSD: