On Mon, Jan 24, 2011 at 16:06, Stefano Bonifazi wrote:
I don't understand.. what is the difference between pie binary for pcc and
for your architecture?
as i said, i think this is all irrelevant to what you want to do. but
since you asked and i feel like writing ...
i have no idea what "pcc" is. there are really two stark differences
between FDPIC ELF and a PIE ELF on say x86. since the data/text
sections can be relocated independently of each other, the PIC cannot
assume a fixed offset between its text and GOT. so every PLT entry is
actually two sets of addresses -- the function address and the
function's GOT address. the other big difference is that an FDPIC ELF
app must first do a little relocation processing of itself as soon as
it starts ... in order to do so, the kernel provides a loadmap (made
up of multiple loadsegs) which describes the executable's PT_LOADs
(the addr encoded in the program header and the addr the chunk was
actually relocated to) as well as the (optional) executable's
interpreter's PT_LOADs.
As far as I understood pie code is independent from addresses, so it should
not care if the OS running them would have an mmu at all.. it should be just
the task of the dynamic linker to relocate it properly, am I wrong?
but the PIE code still has fixed offsets between its text and its
data. so FDPIC ELF is even more flexible than a PIE ELF.
-mike