CFLAGS+= -fPIC per default?
peter at wemm.org
Sun Feb 22 21:35:27 PST 2004
On Sunday 22 February 2004 10:52 am, Marcel Moolenaar wrote:
> On Sun, Feb 22, 2004 at 12:33:01AM -0800, Peter Wemm wrote:
> > On Saturday 21 February 2004 07:43 pm, Hendrik Scholz wrote:
> > > On Feb 21, 2004, at 9:59 PM, Christian Weisgerber wrote:
> > > > Why are these shared objects not built with -fPIC in the first
> > > > place?
> > >
> > > Ask the authors of the third party applications :)
> > > Most architectures don't need -fPIC and/or it slows them down
> > > (thanks for the
> > > comment Peter!).
> > Yes, exactly. Some folks thought it would be an idea to add a flag
> > to libtool to force it to link non-pic code into shared libraries.
> > Essentially this reduces the sharability since we do relocations on
> > the text segment, but the flipside is that its faster on i386 and
> > on some libraries they figured it was worth burning extra memory
> > that would be wasted by not using -fPIC.
> Not to mention that people generally attach -fPIC to the kind of
> library they are making and thus do not build with -fPIC if they
> create an archive library (the BSD make infrastructure has this
> too). This most of the time works, but not when the archive library
> is subsequently linked *into* a shared library later on. So, the
> use of -fPIC is determined by how the object files are eventually
> used to make up a process and that's not always known to the person
> writing the libraries, let alone some (in)convenience tools like
> libtool or automake/autoconf.
Since you mentioned the BSD make infrastructure.. thats what we produce
the _pic.a files for. eg: libc_pic.a, libgcc_pic.a etc. We even have
a Makefile knob for it.. INSTALL_PIC_ARCHIVE.. if I remember the name
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5
More information about the freebsd-amd64