Site Tools


documentation:development:opera:pf25:tktfldr:arrfldr:3arrf

ARM object format


An object file written in ARM Object Format (AOF) consists of any number of named, attributed areas. Attributes include: read-only; reentrant; code; data; position independent; etc. (for details see Attributes + Alignment of the Technical Specifications). Typically, a compiled AOF file contains a read-only code area, and a read-write data area, (a 0-initialised data area is also common, and reentrant code uses a separate based area for address constants).

Associated with each area is a (possibly empty) list of relocation directives which describe locations that the linker will have to update when:

  • a non-zero base address is assigned to the area;
  • a symbolic reference is resolved.

Each relocation directive may be given relative to the (not yet assigned) base address of an area in the same AOF file, or relative to a symbol in the symbol table. Each symbol may:

  • have a definition within its containing object file which is local to the object file;
  • have a definition within the object file which is visible globally (to all object files in the link step);
  • be a reference to a symbol defined in some other object file.

When AOF is used as an output format, the linker does the following with its input object files:

  • merges similarly named and attributed areas;
  • performs PC-relative relocations between merged areas;
  • re-writes symbol-relative relocation directives between merged areas, as area-based relocation directives belonging to the merged area;
  • minimises the symbol table.

Unresolved references remain unresolved, and the output AOF file may be used as the input to a further link step.

documentation/development/opera/pf25/tktfldr/arrfldr/3arrf.txt · Last modified: 2022/10/10 16:54 by 127.0.0.1