From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io0-x22a.google.com (mail-io0-x22a.google.com [IPv6:2607:f8b0:4001:c06::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 98F2B1A1DF8 for ; Mon, 22 Aug 2016 00:10:45 -0700 (PDT) Received: by mail-io0-x22a.google.com with SMTP id 38so101642522iol.0 for ; Mon, 22 Aug 2016 00:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=qJsAChZzTmOyT0D9nD0zpZ2oJ5A3v3CKUzVVXERSSuY=; b=GwAP8lv+ScubhZku9qivotE0Bl+X9cnfQZolFobXE0NgasptlAeZdZ59+AN+jhgtGm ucStOCY1e3apZcANxwaYQTaGrbAaYws2RlZpfSdJCP2+lRhitSnDs2I+trEEvq5WJ6QT ofLCDh5EPSoZ8n9lfoRkStzvTmfEUg5BkuvXs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=qJsAChZzTmOyT0D9nD0zpZ2oJ5A3v3CKUzVVXERSSuY=; b=K93t0ZjtYvxRVhGE9DnOrmlcQE25rp8tab/qwePjy4vqP3MaTVRd+qZY/HMPTkIxll M/9qr7/hssRk6uFUb5SnmUjNZXQXJaKD/EtCS5406+mXtbbF3SRObG2HcpsAlfHyEH1k u5eBarlwp6BwHizRsPPI4YRlN5gQgnp93FQ53L4sJDY+mSSumhTathBUfSFmz4QecSNp dVzTcwNK9GdDPkoKpZ4fcJJPEZ9h3mUtXs7dOFo64UuBjSGpuLRaG8uEmbZelnEs6Qw2 6E/nXfDMt42lsHs68IsRIe/uzwTxqKBJX8vZHsw91thH6TmdQjXnbAD9J4ChFAdCs/f8 KSiA== X-Gm-Message-State: AEkoousDIz7QiLKHqSdSjKTq/CNVkhY124UIxmHJj6e0/SqrsFKNvPUo0x7nP7a9NHpsU7jTdmLNK6jwMIyAmLJi X-Received: by 10.107.41.67 with SMTP id p64mr21218525iop.130.1471849844952; Mon, 22 Aug 2016 00:10:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.204.195 with HTTP; Mon, 22 Aug 2016 00:10:44 -0700 (PDT) In-Reply-To: <1470819330-7363-1-git-send-email-ard.biesheuvel@linaro.org> References: <1470819330-7363-1-git-send-email-ard.biesheuvel@linaro.org> From: Ard Biesheuvel Date: Mon, 22 Aug 2016 09:10:44 +0200 Message-ID: To: "Shi, Steven" , "Zhu, Yonghong" , "Gao, Liming" , edk2-devel-01 Cc: Ard Biesheuvel Subject: Re: [PATCH] BaseTools/GccBase.lds: don't copy RELA section to PE/COFF X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Aug 2016 07:10:45 -0000 Content-Type: text/plain; charset=UTF-8 On 10 August 2016 at 10:55, Ard Biesheuvel wrote: > The CLANG38 toolchain creates a PIE binary at link time. This is > necessary since the LTO code generation may otherwise result in > code that cannot execute correctly when loaded above 2 GB. > > PIE executables contain a RELA section consisting of dynamic > relocation entries that are intended for consumption by the loader > at runtime. For this reason, it has the SHF_ALLOC attribute set by > default, and will be identified by GenFw as a section that needs to > be copied into the PE/COFF binary, resulting in waste of space since > the PE/COFF loader does not use this data at all. > > So mark the RELA section as informational: this will prevent the > linker from setting the SHF_ALLOC attribute, causing GenFw to > ignore it. > > DxeCore.efi before: > > Detected 'X64' type PE/COFF image consisting of 3 sections > Section alignment: 0x40 > File alignment: 0x40 > Section '.text' @ 0x00000240 > File offset: 0x240 > Virtual size: 0x21000 > Raw size: 0x21000 > Section '.data' @ 0x00021240 > File offset: 0x21240 > Virtual size: 0x3640 > Raw size: 0x3640 > Section '.reloc' @ 0x00024880 > File offset: 0x24880 > Virtual size: 0x280 > Raw size: 0x280 > > DxeCore.efi after: > > Detected 'X64' type PE/COFF image consisting of 3 sections > Section alignment: 0x40 > File alignment: 0x40 > Section '.text' @ 0x00000240 > File offset: 0x240 > Virtual size: 0x1f440 > Raw size: 0x1f440 > Section '.data' @ 0x0001f680 > File offset: 0x1f680 > Virtual size: 0x3640 > Raw size: 0x3640 > Section '.reloc' @ 0x00022cc0 > File offset: 0x22cc0 > Virtual size: 0x280 > Raw size: 0x280 > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel Steven, Liming: any comments? > --- > BaseTools/Scripts/GccBase.lds | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/BaseTools/Scripts/GccBase.lds b/BaseTools/Scripts/GccBase.lds > index 281af8a9bd33..900848747144 100644 > --- a/BaseTools/Scripts/GccBase.lds > +++ b/BaseTools/Scripts/GccBase.lds > @@ -54,7 +54,7 @@ SECTIONS { > KEEP (*(.eh_frame)) > } > > - .rela ALIGN(CONSTANT(COMMONPAGESIZE)) : { > + .rela (INFO) : { > *(.rela .rela.*) > } > > -- > 2.7.4 >