Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Mar 2004 14:54:22 +1100
From:      Peter Jeremy <PeterJeremy@optushome.com.au>
To:        Maho Nakata <maho@freebsd.org>
Cc:        ports-committers@freebsd.org
Subject:   Re: cvs commit: ports/biology/pymol Makefile ports/math/atlas Makefile ports/math/atlas-devel Makefile
Message-ID:  <20040320035421.GS56509@cirb503493.alcatel.com.au>
In-Reply-To: <200403190420.i2J4KCAH015119@repoman.freebsd.org>
References:  <200403190420.i2J4KCAH015119@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Mar 18, 2004 at 08:20:12PM -0800, Maho Nakata wrote:
>  Here is the comment form obrien:
>  "-fpic" is a [minor?] optimization for machines that can handle it:

The "-fpic" limits are defined by the size of the displacement
available in the "register+displacement" memory reference format.  If
the GOT entry offset won't fit into the displacement field then you
need an extra 1 or 2 instructions (depending on the architecture) and
a work register for every GOT access.  In many (most?) cases, the GOT
reference is a load and the load target register can be used as the
work register.

This bloats both size and runtime - though the exact impact is
application dependent.  You can readily measure the impact on "small"
applications by compiling them with both "-fpic" and "-fPIC" on one
of the affected architectures and comparing.

Peter



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