cvs commit: ports/biology/pymol Makefile distinfo pkg-plist ports/biology/pymol/files patch-Rules.make patch-setup+pymol+com+linux-rh7x

David O'Brien obrien at FreeBSD.org
Wed Mar 17 09:19:13 PST 2004


On Wed, Mar 17, 2004 at 03:15:25AM -0800, Kris Kennaway wrote:
> On Wed, Mar 17, 2004 at 02:47:29AM -0800, Maho Nakata wrote:
> 
> > | +.if !defined(PICFLAG)
> > | +.if ${MACHINE_ARCH} == "sparc64"
> > | +PICFLAG=-fPIC
> > | +.else
> > | +PICFLAG=-fpic
> > | +.endif
> > | +.endif
> 
> As far as I understand, there's no need to treat these differently:
> -fPIC is appropriate on all architectures.

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


More information about the cvs-all mailing list