File: libtool.info, Node: Compilers, Next: Reloadable objects, Up: Platform quirks 15.3.1 Compilers ---------------- The only compiler characteristics that affect libtool are the flags needed (if any) to generate PIC objects. In general, if a C compiler supports certain PIC flags, then any derivative compilers support the same flags. Until there are some noteworthy exceptions to this rule, this section will document only C compilers. The following C compilers have standard command line options, regardless of the platform: ‘gcc’ This is the GNU C compiler, which is also the system compiler for many free operating systems (FreeBSD, GNU/Hurd, GNU/Linux, Lites, NetBSD, and OpenBSD, to name a few). The ‘-fpic’ or ‘-fPIC’ flags can be used to generate position-independent code. ‘-fPIC’ is guaranteed to generate working code, but the code is slower on m68k, m88k, and SPARC chips. However, using ‘-fpic’ on those chips imposes arbitrary size limits on the shared libraries. The rest of this subsection lists compilers by the operating system that they are bundled with: ‘aix3*’ ‘aix4*’ Most AIX compilers have no PIC flags, since AIX (with the exception of AIX for IA-64) runs on PowerPC and RS/6000 chips. (1) ‘hpux10*’ Use ‘+Z’ to generate PIC. ‘osf3*’ Digital/UNIX 3.x does not have PIC flags, at least not on the PowerPC platform. ‘solaris2*’ Use ‘-KPIC’ to generate PIC. ‘sunos4*’ Use ‘-PIC’ to generate PIC. ---------- Footnotes ---------- (1) All code compiled for the PowerPC and RS/6000 chips (‘powerpc-*-*’, ‘powerpcle-*-*’, and ‘rs6000-*-*’) is position-independent, regardless of the operating system or compiler suite. So, "regular objects" can be used to build shared libraries on these systems and no special PIC compiler flags are required.