This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: %pc relative addressing of string literals/const data
On Sun, Oct 10, 2010 at 11:20:06AM +0200, Joakim Tjernlund wrote:
> Now I have had a closer look at this and it looks much like -fpic
> on ppc32, you still use the GOT/TOC to load the address where the data is.
No, with ppc64 -mcmodel=medium you use the GOT/TOC pointer plus an
offset to address local data.
> I was looking for true %pc relative addressing of data. I guess this is really
> hard on PowerPC?
Yes, PowerPC lacks pc-relative instructions.
> I am not sure this is all it takes to make -fpic to work with -mrelocatable,
> any ideas?
You might be lucky. With -mrelocatable, .got2 only contains
addresses. No other constants. So a simple run-time loader can
relocate the entire .got2 section, plus those locations specified in
.fixup. You'll have to make sure gcc does the same for .got, and your
run-time loader will need to be modified to handle .got (watch out for
the .got header!).
--
Alan Modra
Australia Development Lab, IBM