From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 3968782101 for ; Fri, 24 Feb 2017 02:31:27 -0800 (PST) Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9EDC851476; Fri, 24 Feb 2017 10:31:27 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-116-39.phx2.redhat.com [10.3.116.39]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id v1OAVQvZ017382; Fri, 24 Feb 2017 05:31:26 -0500 To: "Gao, Liming" , Ard Biesheuvel References: <1487874651-19202-1-git-send-email-ard.biesheuvel@linaro.org> <4A89E2EF3DFEDB4C8BFDE51014F606A14D6E3DFA@shsmsx102.ccr.corp.intel.com> Cc: "edk2-devel@lists.01.org" From: Laszlo Ersek Message-ID: <4b2b989b-a5f0-3902-4917-7523bbc0ef2d@redhat.com> Date: Fri, 24 Feb 2017 11:31:24 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.1 MIME-Version: 1.0 In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14D6E3DFA@shsmsx102.ccr.corp.intel.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Fri, 24 Feb 2017 10:31:27 +0000 (UTC) Subject: Re: [PATCH] BaseTools: GCC: move most AutoGen.obj contents back to .data section 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: Fri, 24 Feb 2017 10:31:27 -0000 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit On 02/24/17 04:20, Gao, Liming wrote: > Reviewed-by: Liming Gao Thank you both, pushed as 3cf41b8728a3. Laszlo > -----Original Message----- > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > Sent: Friday, February 24, 2017 6:29 AM > To: Laszlo Ersek > Cc: edk2-devel@lists.01.org ; Gao, Liming ; Zhu, Yonghong > Subject: Re: [PATCH] BaseTools: GCC: move most AutoGen.obj contents back to .data section > > On 23 February 2017 at 19:53, Laszlo Ersek wrote: >> On 02/23/17 19:30, Ard Biesheuvel wrote: >>> The generated AutoGen.c files mostly contain read-only data, but due to >>> lacking annotations, all of it is emitted into the .data section by the >>> compiler. >>> >>> Given that GUIDs are UEFI's gaffer tape, having writable GUIDs is a >>> security hazard, and this was the main rationale for putting AutoGen.obj >>> in the .text section. However, as it turns out, patchable PCDs are emitted >>> there as well, which can legally be modified at runtime. >>> >>> So update the wildcard pattern to only match g...Guid sections, and move >>> everything else back to .data (Note that this relies on -fdata-sections, >>> without that option, everything is emitted into .data) >>> >>> Contributed-under: TianoCore Contribution Agreement 1.0 >>> Signed-off-by: Ard Biesheuvel >>> --- >>> BaseTools/Scripts/GccBase.lds | 9 ++++++--- >>> 1 file changed, 6 insertions(+), 3 deletions(-) >>> >>> diff --git a/BaseTools/Scripts/GccBase.lds b/BaseTools/Scripts/GccBase.lds >>> index 900848747144..41e5c0b4a769 100644 >>> --- a/BaseTools/Scripts/GccBase.lds >>> +++ b/BaseTools/Scripts/GccBase.lds >>> @@ -32,11 +32,14 @@ SECTIONS { >>> *(.got .got.*) >>> >>> /* >>> - * The contents of AutoGen.c files are constant from the POV of the program, >>> - * but most of its contents end up in .data or .bss by default since few of >>> + * The contents of AutoGen.c files are mostly constant from the POV of the >>> + * program, but most of it ends up in .data or .bss by default since few of >>> * the variable definitions that get emitted are declared as CONST. >>> + * Unfortunately, we cannot pull it into the .text section entirely, since >>> + * patchable PCDs are also emitted here, but we can at least move all of the >>> + * emitted GUIDs here. >>> */ >>> - *:AutoGen.obj(.data .data.* .bss .bss.*) >>> + *:AutoGen.obj(.data.g*Guid) >>> } >>> >>> /* >>> >> >> Do you agree to add: >> >> Fixes: 233bd25b000f92fc4bbe181fa48edcd72808de8e >> >> to the commit message, or to reference that commit in some other form? >> > > Yes, that makes sense. > >> Either way: >> >> Tested-by: Laszlo Ersek >> >> Thank you very much for the quick fix! > > No problem. > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel >