From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by mx.groups.io with SMTP id smtpd.web10.136553.1680714691196245770 for ; Wed, 05 Apr 2023 10:11:31 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@bsdio.com header.s=fm3 header.b=Ydhv9W9Q; spf=pass (domain: bsdio.com, ip: 66.111.4.29, mailfrom: rebecca@bsdio.com) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 266045C010A; Wed, 5 Apr 2023 13:11:30 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 05 Apr 2023 13:11:30 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdio.com; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm3; t= 1680714690; x=1680801090; bh=mN6bXcNSU5e9GQQ5J3H9Xgns+6i7kzZfRN8 g4Bt+rDk=; b=Ydhv9W9Q11W3NCl4oy/wo19FlyFdP9/frwDwjHePSG426RyUi1Z NGZDZoKofkZ+eCC802Xx8YQgS6ssnCfgotALg/hX0UDw4JVq/q8Eq3GTUF7Zhaul 2Z8Q59ngQ5E57esPhFg2r2/KJyIQ5qFV9uypWUKbUWBSCPUFwNTq6A8FQMesn9p/ ijKZWzcDjzwI/IQZvZCQebCXZggB2LV+oW4bXXAz1zwul+yTX/PZXknu807GLzg+ QeRswShWRi5EBib4aeYB8RA8WceP0FlWSAKcGm1COoPYkdqSNIwmLMrgxZejkfe6 kmmnDD7Aj2DNiA4QSFGMRAoqnbhhqjMxSbw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1680714690; x=1680801090; bh=mN6bXcNSU5e9GQQ5J3H9Xgns+6i7kzZfRN8 g4Bt+rDk=; b=Y/ZH3xg07i4Ks94rTx2jq9/1Fd3enhBp44qc4lb0CqXJk965Sn3 gomCc1TJJrlHbmEpYhctk5coI4BfrnDHqb8ZJ1XxecIsTNzIlkOr0tTj6BvtGUUt Nu0e4TRGrP2/rSmjTFkzTwpRwchF71ByBFpUhvK1SsrFiYIWmRQgE3/gSpmDoFRV tdI0OInjRefDseoa6rUiRzzssCrdYkubkP8TdPSffZwf3vhLLRA6Est0fvphMAR1 wT7xBxi8/Gg7HJ2WwohtAWW5n9ibBXWcoYb2GQHIHfM7nzWHgiqtGfWcrFqdrvzG 8RCMQAlPLOVPAqyeIeQALrg8mz6UWepnnqA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdejuddgudduudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttdefjeenucfhrhhomheptfgv sggvtggtrgcuvehrrghnuceorhgvsggvtggtrgessghsughiohdrtghomheqnecuggftrf grthhtvghrnhepheelkefgudetudegheegfffghfetfefhhfetteefveehgfdvjeehtdfh ffeiffelnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh eprhgvsggvtggtrgessghsughiohdrtghomh X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 5 Apr 2023 13:11:29 -0400 (EDT) Message-ID: <09b29d31-2522-1674-d365-76561bd1b2e1@bsdio.com> Date: Wed, 5 Apr 2023 11:11:27 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [PATCH v4 1/6] BaseTools/tools_def CLANGDWARF: Permit text relocations To: Ard Biesheuvel , devel@edk2.groups.io Cc: "Ni, Ray" , Andrew Fish , "Kinney, Michael D" , "Liu, Zhiguang" , Tom Lendacky , =?UTF-8?Q?Marvin_H=c3=a4user?= References: <20230403142920.1921619-1-ardb@kernel.org> <20230403142920.1921619-2-ardb@kernel.org> From: "Rebecca Cran" In-Reply-To: <20230403142920.1921619-2-ardb@kernel.org> Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Reviewed-by: Rebecca Cran -- Rebecca Cran On 4/3/23 8:29 AM, Ard Biesheuvel wrote: > We rely on PIE executables to get the codegen that is suitable for > PE/COFF conversion where the resulting executables can be loaded > anywhere in the address space. > > However, ELF linkers may default to disallowing text relocations in PIE > executables, as this would require text segments to be updated at > runtime, which is bad for security and increases the copy-on-write > footprint of ELF executables and shared libraries. > > However, none of those concerns apply to PE/COFF executables in the > context of EFI, which are copied into memory rather than mmap()'ed, and > fixed up by the loader before launch. > > So pass -z notext to the LLD linker to permit runtime relocations in > read-only sections. > > Signed-off-by: Ard Biesheuvel > --- > BaseTools/Conf/tools_def.template | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template > index ae43101853870c6d..5a3af55bfb09d753 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -2870,7 +2870,7 @@ DEFINE CLANGDWARF_X64_PREFIX = ENV(CLANG_BIN) > DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-q,--gc-sections -z max-page-size=0x40 > DEFINE CLANGDWARF_DLINK2_FLAGS_COMMON = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/ClangBase.lds > DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable > -DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive > +DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive -Wl,-z,notext > DEFINE CLANGDWARF_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) > DEFINE CLANGDWARF_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) >