Reference
Output Section description:
section [address] [(type)] :
[AT(lma)]
[ALIGN(section_align) | ALIGN_WITH_INPUT]
[SUBALIGN(subsection_align)]
[constraint]
{
output-section-command
output-section-command
...
} [>region] [AT>lma_region] [:phdr :phdr ...] [=fillexp] [,]
Every section has a virtual memory address (VMA) and a load memory address (LMA), see baseic script concepts.
address
in a linker script is virtual address (VMA). This address is optional, but if it is provided then the output address will be set exactly as specified. If the output address is not specified, a virtual address will be choosen. The heuristic below will be used to choose the VMA:
MEMORY
command has been used to create a list of memory regions then the first region which has attributes compatible with the section is selected to contain it. The section’s output address will be the next free address in that region;AT
or AT>
keywords. Specifying a load address is optional.
AT
or AT>
:
If you could revise
the fundmental principles of
computer system design
to improve security...
... what would you change?