bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/31795] ld.bfd makes ELFs of type ET_EXEC for static PIEs when lo


From: mintsuki at protonmail dot com
Subject: [Bug ld/31795] ld.bfd makes ELFs of type ET_EXEC for static PIEs when load address is non-0
Date: Tue, 28 May 2024 16:11:17 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=31795

--- Comment #56 from mintsuki <mintsuki at protonmail dot com> ---
(In reply to mintsuki from comment #54)
> (In reply to H.J. Lu from comment #52)
> > (In reply to H.J. Lu from comment #51)
> > > (In reply to mintsuki from comment #50)
> > > 
> > > > > Why can't you check DF_1_PIE for PIE?
> > > > 
> > > > That is what I do now, but to check for *relocatability*. PIE in and of
> > > > itself is not something that tells me whether I should relocate (for 
> > > > KASLR
> > > > for example) or not. That is what you just said.
> > > 
> > > If DF_1_PIE is set, the binary can be relocated to any address. What did I
> > > miss?
> > 
> > The first PT_LOAD segment has non-0 p_vaddr, the program may misbehave if
> > the load address != p_vaddr.
> 
> How is this possible? Under which circumstances? It works fine with all the
> other linkers for me.

And it has always worked fine when I simply checked DF_1_PIE and relocated to
different addresses regardless of the ELF type.

The only difference between 0 and non-0 base is that ld.bfd decides to force
the ELF type to ET_EXEC, and nothing more. I do not care about what Linux does,
nor what glibc does; this is purely between me and the linker, what some
specific OS or ELF loader does should not be of any concern to me.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]