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