Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Mar 2004 09:19:04 -0800
From:      "David O'Brien" <obrien@FreeBSD.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        ports-committers@FreeBSD.org
Subject:   Re: cvs commit: ports/biology/pymol Makefile distinfo pkg-plist ports/biology/pymol/files patch-Rules.make patch-setup+pymol+com+linux-rh7x
Message-ID:  <20040317171904.GC93838@dragon.nuxi.com>
In-Reply-To: <20040317111525.GA62305@xor.obsecurity.org>
References:  <200403171047.i2HAlUsL048731@repoman.freebsd.org> <20040317111525.GA62305@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040317171904.GC93838>