From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12899 invoked by alias); 17 Feb 2011 23:00:18 -0000 Received: (qmail 12816 invoked by uid 22791); 17 Feb 2011 23:00:16 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from terminus.zytor.com (HELO mail.zytor.com) (198.137.202.10) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 17 Feb 2011 23:00:14 +0000 Received: from anacreon.sc.intel.com (hpa@localhost [127.0.0.1]) (authenticated bits=0) by mail.zytor.com (8.14.4/8.14.3) with ESMTP id p1HMxqwB030997 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 17 Feb 2011 14:59:53 -0800 Message-ID: <4D5DA868.1050905@zytor.com> Date: Thu, 17 Feb 2011 23:00:00 -0000 From: "H. Peter Anvin" User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc13 Thunderbird/3.1.7 MIME-Version: 1.0 To: Jan Hubicka CC: Jakub Jelinek , "H.J. Lu" , Jan Beulich , GCC Development , x32-abi@googlegroups.com, Binutils , GNU C Library Subject: Re: x32 psABI draft version 0.2 References: <4D5C2DD2.10608@zytor.com> <4D5CEBDE02000078000325A2@vpn.id2.novell.com> <20110217142916.GI13037@sunsite.ms.mff.cuni.cz> <20110217152233.GB11346@atrey.karlin.mff.cuni.cz> <20110217154452.GA18799@kam.mff.cuni.cz> <20110217180646.GB30899@tyan-ft48-01.lab.bos.redhat.com> <20110217224956.GA20055@kam.mff.cuni.cz> In-Reply-To: <20110217224956.GA20055@kam.mff.cuni.cz> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00235.txt.bz2 On 02/17/2011 02:49 PM, Jan Hubicka wrote: >> On Thu, Feb 17, 2011 at 04:44:53PM +0100, Jan Hubicka wrote: >>>>> According to Mozilla folks however REL+RELA scheme used by EABI leads >>>>> to significandly smaller libxul.so size >>>>> >>>>> According to http://glandium.org/blog/?p=1177 the difference is about 4-5MB >>>>> (out of approximately 20-30MB shared lib) >>>> >>>> This is orthogonal to x32 psABI. >>> >>> Understood. I am just pointing out that x86-64 Mozilla suffers from startup >>> problems (extra 5MB of disk read needed) compared to both x86 and ARM EABI >>> because x86-64 ABI is RELA only. If x86-64 ABI was REL+RELA like EABI is, we >>> would not have this problem here. >> >> libxul.so has < 200000 relocs, so 5MB is total size of .rela section in >> 64-bit ELF, you don't magically save those 5MB by using REL. You save >> just 1.5MB. And for x32 we'd be talking about 2.5MB for RELA vs. 1.6MB for > > The blog claims > Architecture libxul.so size relocations size % > x86 21,869,684 1,884,864 8.61% > x86-64 29,629,040 5,751,984 19.41% > > The REL encoding also grows twice for 64bit target? > REL would be twice the size for a 64-bit target (which x32 is not, from an ELF point of view). Keep in mind that REL cannot do error handing very well, especially not on a 64-bit platform. Elf32_Rel: 8 bytes Elf32_Rela: 12 bytes Elf64_Rel: 16 bytes Elf64_Rela: 24 bytes So 1,884,864 to 5,751,984 indicates a (very) small increase in relocation count, the exactly equivalent numbers would be: Elf32_Rel: 1,884,864 bytes Elf32_Rela: 2,827,296 bytes Elf64_Rel: 3,769,728 bytes Elf64_Rela: 5,654,592 bytes -hpa