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 models.
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
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