|
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.
[Prev in Thread] | Current Thread | [Next in Thread] |