You copied the Doc URL to your clipboard.

Placing veneers with a scatter file

You can place veneers at a specific location with a linker-generated symbol.

Veneers allow switching between A32 and T32 code or allow a longer program jump than can be specified in a single instruction.


  1. To place veneers at a specific location, include the linker-generated symbol Veneer$$Code in a scatter file. At most, one execution region in the scatter file can have the *(Veneer$$Code) section selector.

    If it is safe to do so, the linker places veneer input sections into the region identified by the *(Veneer$$Code) section selector. It might not be possible for a veneer input section to be assigned to the region because of address range problems or execution region size limitations. If the veneer cannot be added to the specified region, it is added to the execution region containing the relocated input section that generated the veneer.


    Instances of *(IWV$$Code) in scatter files from earlier versions of Arm tools are automatically translated into *(Veneer$$Code). Use *(Veneer$$Code) in new descriptions.

    *(Veneer$$Code) is ignored when the amount of code in an execution region exceeds 4MB of 16-bit T32 code, 16MB of 32-bit T32 code, and 32MB of A32 code.


    There are no state-change veneers in A64.