about -fpic/-fPIC option for gcc

Ian Lance Taylor iant@google.com
Thu Sep 14 15:49:00 GMT 2006

Lin George <george4academic@yahoo.com> writes:

> Could you provide a little more information please? I
> mean what is the different things generated by -fpic
> and -fPIC in a shared library?

To make the code position independent and to permit the executable to
override symbols defined in the shared library, all global variables
are accessed via a table of addresses (the Global Offset Table, or
GOT) and all functions are called via a table of branches (the
Procedure Linkage Table, or PLT).  The dynamic linker initializes the
GOT and PLT at runtime.  The precise details depend on the platform.


More information about the Gcc-help mailing list