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

H.J. Lu hjl.tools@gmail.com
Tue Dec 10 19:16:00 GMT 2013


On Tue, Dec 10, 2013 at 11:08 AM, H. Peter Anvin <hpa@zytor.com> 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@zytor.com> 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.



More information about the Binutils mailing list