Controls the sorting order of sections in large execution regions to minimize the distance between sections that call each other.
Usage
If the execution region contains more code than the range of a branch
instruction then the linker switches to large region mode. In this mode the linker sorts
according to the approximated average call depth of each section in ascending order. The
linker might also distribute veneers amongst the code sections to minimize the number of
veneers.
Note:
Large region mode can result in large changes to the layout of an image even when small
changes are made to the input.
To disable large region mode and revert to lexical order, use --no_largeregions. Section placement is then predictable and
image comparisons are more predictable. The linker automatically switches on
--veneerinject if it is needed for a branch to reach the veneer.
The default is --no_largeregions. The linker automatically switches to
--largeregions if at least one execution region contains more code than
the smallest inter-section branch. The smallest inter-section branch depends on the code in
the region and the target processor:
128MB
Execution region contains only A64 instructions.
32MB
Execution region contains only A32 instructions.
16MB
Execution region contains T32 instructions, 32-bit T32 instructions are
supported.
4MB
Execution region contains T32 instructions, no 32-bit T32 instructions are
supported.
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers of your data.