What does -fPIC mean when building a shared library?

PIC stands for Position Independent Code.

To quote man gcc:

If supported for the target machine, emit position-independent code, suitable for dynamic linking and avoiding any limit on the size of the global offset table. This option makes a difference on AArch64, m68k, PowerPC and SPARC.

Use this when building shared objects (*.so) on those mentioned architectures.

Leave a Comment