Subject: Re: addressing limit in general, or for -fpic code?
To: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
From: Richard Earnshaw <rearnsha@arm.com>
List: port-arm32
Date: 11/05/1999 16:07:50
> hello,
> 
> I noticed that the LEDA libraries are very big... 
> 
> what is the addressing limit for code generated by our compiler, in 
> general and for -fpic (and is -fPIC better?)
> 

The only limit is on the reachability of a bl or b instruction (in 
practice only bl will normally reference outside of a single compilation 
unit).  The limit there is +/-32MB, give or take 8 bytes, from the current 
address.  Assuming worst case, that means that the *code* limit for a 
module is 32MBytes.  This limit is applied to each shared library or for 
the main executable (inter-module calls are done in a way that removes the 
limit, but is less efficient).

On the arm, -fpic currently generates identical code to -fPIC, so there 
are no practical limits on the size of the GOT.

Richard.