The Library format defines four chunk classes: Directory, Time stamp, Version and Data. There may be many Data chunks in a library.
The Object Library Format defines two additional chunks: Symbol table and Symbol table time stamp.
These chunks are described in detail later in this document.
-------------------------------------------------------- byte |8 bits, considered unsigned unless otherwise |stated, usually used to store flag bits or |characters; -------------------------------------------------------- half word|16 bits, or 2 bytes, usually considered |unsigned; -------------------------------------------------------- word |32 bits, or 4 bytes, usually considered |unsigned; -------------------------------------------------------- string |a sequence of bytes terminated by a NUL (0x00) |byte. The NUL byte is part of the string but |is not counted in the string's length. --------------------------------------------------------
There is no guarantee that the endian-ness of an ALF file will be the same as the endian-ness of the system used to process it, (the endian-ness of the file is always the same as the endian-ness of the target ARM system).
The two sorts of ALF cannot, meaningfully, be mixed (the target system cannot have mixed endian-ness: it must have one or the other). Thus the ARM linker will accept inputs of either sex and produce an output of the same sex, but will reject inputs of mixed endian-ness.
ALF fields defined in this document do not use half-words, and align words on 4-byte boundaries.
Within the contents of an ALF file (within the data contained in OBJ_AREA chunks - see below), the alignment of words and half-words is defined by the use to which ALF is being put. For all current ARM-based systems, alignment is strict, as described immediately above.