From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751084Ab3LIXft (ORCPT ); Mon, 9 Dec 2013 18:35:49 -0500 Received: from terminus.zytor.com ([198.137.202.10]:38246 "EHLO mail.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750723Ab3LIXfs (ORCPT ); Mon, 9 Dec 2013 18:35:48 -0500 Message-ID: <52A653C4.1050208@zytor.com> Date: Mon, 09 Dec 2013 15:35:32 -0800 From: "H. Peter Anvin" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: "H.J. Lu" CC: Jiri Kosina , LKML , Josh Boyer Subject: Re: [PATCH] binfmt_elf: fix PIE load with randomization disabled References: <52A6389E.90404@zytor.com> In-Reply-To: X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 12/09/2013 01:44 PM, H.J. Lu wrote: > On Mon, Dec 9, 2013 at 1:39 PM, H. Peter Anvin 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