3.6.4 Generation of position independent to absolute veneers

Calling from position independent code to absolute code requires a veneer.

The normal call instruction encodes the address of the target as an offset from the calling address. When calling from position independent (PI) code to absolute code the offset cannot be calculated at link time, so the linker must insert a long-branch veneer.

The generation of PI to absolute veneers can be controlled using the --piveneer option, that is set by default. When this option is turned off using --no_piveneer, the linker generates an error when a call from PI code to absolute code is detected.

Non-ConfidentialPDF file icon PDF versionARM DUI0474M
Copyright © 2010-2016 ARM Limited or its affiliates. All rights reserved.