10.4.4 Addressing modes in the SysV memory model

System V (SysV) has a defined model for accessing the program and imported data and code from other modules.

If required, the linker automatically generates the required Procedure Linkage Table (PLT) and Global Offset Table (GOT) sections.

Position independent code

SysV shared libraries are compiled with position independent code using the --apcs=/fpic compiler command-line option.

You must also use the linker command-line option --fpic to declare that a shared library is position independent because this affects the construction of the PLT and GOT sections.


By default, the linker produces an error message if the command-line option --shared is given without the --fpic options. If you must create a shared library that is not position independent, you can turn the error message off by using --diag_suppress=6403.

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