Messages in this thread | | | Date | Mon, 9 Dec 2013 13:59:48 -0800 | Subject | Re: [PATCH] binfmt_elf: fix PIE load with randomization disabled | From | "H.J. Lu" <> |
| |
On Mon, Dec 9, 2013 at 1:53 PM, H. Peter Anvin <hpa@zytor.com> wrote: > On 12/09/2013 01:52 PM, H.J. Lu wrote: >>> >>> Why is that? It would seem to be a big difference between a relocatable >>> binary (PIE) and one with a load address fixed at link time. >>> >> >> PIE with non-zero vaddr should be loaded at non-zero >> vaddr. Otherwise, PIE may not work as expected. >> > > Please explain why that is the case, as it seems to be implying that PIE > isn't actually relocatable in that case... >
A Linux/x86-64 user came to me at the end of 2008. He needed to load an executable above 4GB. I added -Ttext-segment option to linker:
https://sourceware.org/ml/binutils/2009-01/msg00173.html
so that he could load his program compiled as PIE above 4GB. If kernel is changed not to honor it, his program won't work any more. In normal case, PIE has zero vaddr and this doesn't apply.
-- H.J.
| |