Csound Csound-dev Csound-tekno Search About

Re: [Cs-dev] An SConstruct question

Date2007-08-13 01:11
FromFelipe Sateler
SubjectRe: [Cs-dev] An SConstruct question
jpff wrote:

> b) Is there any reason why -fPIC is not always used?  It is really
> needed for 64bit machines but does it harm 32bit?

GCC does nothing on architectures where it is not possible to do PIC, so it
should be possible to use it always[1]. Also, -fPIC is actually _needed_ on
some architectures when building a shared library. On the other hand, PIC
usually gives a performance penalty on the resulting code, so maybe it
would be wise to not use -fPIC when building a static library.


[1]  Quote from the GCC info manual:
> '-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 8k on the SPARC and 32k on the m68k and RS/6000.  The
>       386 has no such limit.)
> 
> 
>       Position-independent code requires special support, and therefore
>       works only on certain machines.  For the 386, GCC supports PIC for
>       System V but not for the Sun 386i.  Code generated for the IBM
>       RS/6000 is always position-independent.
> 
> 
> '-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, PowerPC and SPARC.
> 
> 
>       Position-independent code requires special support, and therefore
>       works only on certain machines.


-- 

  Felipe Sateler


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net