Messages in this thread | | | Date | Mon, 09 Dec 2013 15:35:32 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH] binfmt_elf: fix PIE load with randomization disabled |
| |
On 12/09/2013 01:44 PM, H.J. Lu wrote: > On Mon, Dec 9, 2013 at 1:39 PM, H. Peter Anvin <hpa@zytor.com> wrote: >> On 12/09/2013 01:03 PM, H.J. Lu wrote: >>> >>> No, please don't do that. Normally, PIE has zero load address and kernel >>> can load it anywhere. There are multiple reasons why PIE has non-zero >>> load address. Saying you need to load a program above 4GB under x86-64, >>> you can't do that with normal dynamic executable. PIE with non-zero load >>> address is the only way to do that on x86-64. >>> >> >> Why does it have to be PIE? >> > > x86-64 small model is limited to 4GB in size. You can't build > a dynamic executable in small model larger than 4GB. > > There are medium and large models. But they are slower than > small models as well as small models in PIE. Also there are > no glibc run-times for medium and large models. >
Compiling for the small PIC model shouldn't automatically mean generating a PIE (ET_DYN) executable, though (and if those are inherently linked, that is a fundamental bug IMNSHO.)
-hpa
| |