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
--no_piveneer, the linker generates an error when a call from PI code
to absolute code is detected.