Next: , Previous: References, Up: Platform quirks


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