Re: RFC: binutils PATCH: Set e_type to ET_EXEC for -pie -Ttext-segment=

From: H.J. Lu
Date: Tue Dec 10 2013 - 14:16:01 EST


On Tue, Dec 10, 2013 at 11:08 AM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
> On 12/10/2013 04:20 AM, H.J. Lu wrote:
>> On Mon, Dec 9, 2013 at 8:57 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote:
>>> Where do the _32 and _32S relocations come from? Are we mixing multiple things inside -pie?
>>
>> They come from crt1.o and crtbegin.o. -pie uses Scrt1.o and crtbeginS.o.
>>
>
> OK, so this is fundamentally an issue with the gcc wrapper... there
> isn't a way to get the relocatable crt files without telling the linker
> to link PIE (except perhaps using some -Wl option, maybe "-Wl,-no-pie"?)
>
> Either way, if the *only* goal is to get the file above a certain point,
> like 4 GiB, then there is no reason not to randomize upward.
>

I agree that kernel should load ET_DYN binary anywhere. I will
change linker to set type to ET_EXEC if p_vaddr != 0.

--
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/