Re: [PATCH] binfmt_elf: fix PIE load with randomization disabled

From: H.J. Lu
Date: Mon Dec 09 2013 - 16:59:55 EST


On Mon, Dec 9, 2013 at 1:53 PM, H. Peter Anvin <hpa@xxxxxxxxx> 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/