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: hjl.tools at gmail 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:19:32 +0000

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

--- Comment #45 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to mintsuki from comment #44)
> (In reply to H.J. Lu from comment #43)
> > (In reply to mintsuki from comment #42)
> > > (In reply to H.J. Lu from comment #40)
> > > > -Ttext-segment=0x600000000000 should create a binary which is 
> > > > guaranteed to
> > > > be
> > > > loaded at 0x600000000000.
> > > 
> > > ...as long as it's not a PIE.
> > 
> > Please read x86-64 psABI:
> > 
> > https://gitlab.com/x86-psABIs/x86-64-ABI
> > 
> > PIE is the only way to create a small mode executable loaded at
> > 0x600000000000.
> 
> Can you not use -mcmodel=large? In any case even if that was the case, it

There are 2 issues with -mcmodel=large:

1. Since there are no -mcmodel=large run-time libraries, you can't use
-mcmodel=large
to create any meaningful binaries.
2. -mcmodel=large performance is much slower.

> should be opt-in to make the ELF ET_EXEC, rather than automatic and not
> explicitly mentioned in a warning or anything.

Opt-in to ET_EXEC will be wrong.

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