This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch ob] Disallow -pie and -static


Mike Frysinger <vapier@gentoo.org> writes:

> On Monday 27 February 2012 18:38:44 Ian Lance Taylor wrote:
>> Mike Frysinger <vapier@gentoo.org> writes:
>> > if an ELF is linked with -static, then there's no ldso and thus no
>> > PT_INTERP needed.
>> 
>> And then, on current GNU/Linux systems, it is not a PIE.
>
> i don't think so.  a PIE is a Position Independent Executable.  that doesn't 
> mean it needs an interpreter.  just that its loadable sections can get loaded 
> at any address and still work.

Try it.  The resulting executable will only work at a single fixed
address.  It will not be possible to move it to a different address and
run it there.


>> > i don't see why -pie should require PT_DYNAMIC or PT_INTERP.
>> 
>> Because without PT_DYNAMIC and PT_INTERP, on current GNU/Linux systems,
>> the executable won't work.
>
> you're correct about PT_DYNAMIC, but i don't think PT_INTERP.  as Joseph said, 
> we pretty much do this today with the ldso (ignoring the lack of pre-packaged 
> startup objects for any PIE to utilize).

Because the dynamic linker is written specially.


>> You seem to be speaking at some sort of conceptual level.  At the
>> conceptual level, you are correct.  It is possible to define some sort
>> of static PIE.  But there is no such thing today, and implementing it
>> will require changes to the linker.  When it is implemented, we will
>> change the linker such that -pie -static is not an error.
>
> and i'm asking, what are those changes that the linker needs ?

It needs a definition of what a static PIE should look like, including
what program segments should be created, how all input relocations
should be handled, and what the exec-type of the output should be.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]