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.