behaviour of -fPIC and -fpic are different.
Here is the comment form obrien:
--
"-fpic" is a [minor?] optimization for machines that can handle it:
-fpic
Generate position-independent code (PIC) suitable for use in a shared
library, if supported for the target machine. Such code accesses all
constant addresses through a global offset table (GOT). The dynamic
loader resolves the GOT entries when the program starts (the dynamic
loader is not part of GCC; it is part of the operating system). If
the GOT size for the linked executable exceeds a machine-specific
maximum size, you get an error message from the linker indicating
that -fpic does not work; in that case, recompile with -fPIC instead.
(These maximums are 16k on the m88k, 8k on the SPARC, and 32k on the
m68k and RS/6000. The 386 has no such limit.)
-fPIC
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 the m68k,
m88k, and the SPARC.
Thanks to: obrien
a) newer version build fails like:
/usr/local/lib/libatlas.so: undefined reference to `ATL_dpKBmm_b1'
/usr/local/lib/libatlas.so: undefined reference to `ATL_dpKBmm_b0'
b) Define PORTEPOCH=1
Reported by: Pedro F. Giffuni <giffunip@yahoo.com>
kris
Thierry Thomas <thierry@pompo.net>
Jonathan <j.e.drews@worldnet.att.net>