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 15:57:09 +0000

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

--- Comment #50 from mintsuki <mintsuki at protonmail dot com> ---
(In reply to H.J. Lu from comment #49)
> (In reply to mintsuki from comment #48)
> > (In reply to H.J. Lu from comment #47)
> > > (In reply to mintsuki from comment #46)
> > > g.
> > > > > 
> > > > > Opt-in to ET_EXEC will be wrong.
> > > > 
> > > > Why will it be wrong? What if someone (me) wants to make a PIE that 
> > > > loads at
> > > 
> > > It is wrong because -Ttext-segment=0x600000000000 no longer works.
> > > 
> > > > a minimum at the specified address, but can be relocated above it? 
> > > > Currently
> > > > ld makes this impossible by simply checking the ELF type, forcing my ELF
> > > > loader to additionally check for the presence of the DF_1_PIE flag to 
> > > > decide
> > > > whether an ELF file is relocatable or not...
> > > > 
> > > > ...but Linux doesn't do that, apparently, but instead forces the load
> > > > address to be the one specified, due to the ELF type being ET_EXEC.
> > > > 
> > > > Earlier you said I should check DF_1_PIE to determine relocatability... 
> > > > so
> > > 
> > > No, that was not what I said.  DF_1_PIE can be used to determine if a 
> > > binary
> > > is PIE.
> > 
> > Okay, then how can I make a *relocatable* aka ET_DYN (?) ELF file which is
> > PIE and has a non-0 text segment load address using ld? This is, as far as
> > my knowledge goes, *impossible* using GNU ld.bfd. Why?
> 
> 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.

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