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.web11.136647.1680714960170587700 for ; Wed, 05 Apr 2023 10:16:00 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@bsdio.com header.s=fm3 header.b=CqmnxGbr; 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 866435C0246; Wed, 5 Apr 2023 13:15:59 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Wed, 05 Apr 2023 13:15:59 -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= 1680714959; x=1680801359; bh=nHRXoJD21x5aB/ZzmdEM3hYYOE8UiVTjA0X Vk1l9Y5M=; b=CqmnxGbrWGPAUClHwgzEmMH3ivFyBAwFbhjJKHErFti3X7mc0ir YxcVMpSwa4VCawaMbpOeMXmj/3m3g/pZK0u/jS8Nmze8azxvB23LQtgz9x0jxMep B2j8wi8FFAI0HZOHTuNgIroVRwh15d7XFUnMVzJr0oMfAIS+D2z6oDOzuuQU14bl x6vl+qLsPIxlUAcyZetM9JysgKNn8k7BPWn/6AoOSsJUJVNuTFQwcVBxCkoGnk2/ 7Mp/npGXq11ugfyeroPdd2fOUDMoT9wVV5q24xhAJgPKf+Ny3NGN4rCbI3jeYlA2 pbRii9t8W9q0ublYivPD4DNCd4GURxjVGdw== 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= 1680714959; x=1680801359; bh=nHRXoJD21x5aB/ZzmdEM3hYYOE8UiVTjA0X Vk1l9Y5M=; b=CXwd1b5+ffp/fyL10/JEC0icU1dSQW2aZsDZHuZX5nUkxjk9J6D VvB7LqBMhT7bF6EsPyyfw1P7YLUchK9Du7JsY2zd4kuHvZ5fp64Yy712DrZlw+Ym w2V7m4nX1C4r0gwodK7gbVPQFvsReQYdtFcDbjyt/4lLOo9Cs5colyKyXm5HT8/7 ATOlrJIIdNWCfznoFozVnK6O0TfYFxxRFt3s3jqWaRealT6ivXelplGmkO+ZDiw9 2y0olw66WAzLg5PtaNsGNOLBqvZSnezLMk1l1L0apTbJoyc+zD4cR0j1sPCAsxxJ p9Gzl4SCN/U53SJT2rpdSfGqnOc40UYs/0A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdejuddgudduvdcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepkfffgggfuffvvehfhfgjtgfgse htjeertddtfeejnecuhfhrohhmpeftvggsvggttggrucevrhgrnhcuoehrvggsvggttggr segsshguihhordgtohhmqeenucggtffrrghtthgvrhhnpeevfffgtdffjeefudejleefud ejjeetuddvhfegudfhuddtleefgfduueejteevueenucffohhmrghinhepthhirghnohgt ohhrvgdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehrvggsvggttggrsegsshguihhordgtohhm X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 5 Apr 2023 13:15:57 -0400 (EDT) Message-ID: <95ad15d4-42a5-ca6a-8834-9b159356c6d8@bsdio.com> Date: Wed, 5 Apr 2023 11:15:57 -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: [edk2-devel] [PATCH 1/1] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32 To: devel@edk2.groups.io, patrick.rudolph@9elements.com Cc: gaoliming@byosoft.com.cn, bob.c.feng@intel.com, yuwei.chen@intel.com, gua.guo@intel.com, james.lu@intel.co, ardb@kernel.org References: <20230330094803.978890-1-patrick.rudolph@9elements.com> From: "Rebecca Cran" In-Reply-To: <20230330094803.978890-1-patrick.rudolph@9elements.com> Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Reviewed-by: Rebecca Cran On 3/30/23 3:48 AM, Patrick Rudolph wrote: > The clang toolchain might default to fPIE/fPIC, which prevents > lld from linking the objects into a binary. > > Specify -fno-pie -fno-pic as done on GCC to fix linking. > > Test: > Building the Universal Payload using the command > 'python UefiPayloadPkg/UniversalPayloadBuild.py -a IA32' actually > works. > > Signed-off-by: Patrick Rudolph > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=4356 > --- > BaseTools/Conf/tools_def.template | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template > index 471eb67c0c..9b59bd75c3 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -2888,7 +2888,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > *_CLANGDWARF_IA32_RC_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc > > *_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET) > -*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld > +*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld -no-pie > *_CLANGDWARF_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET) > *_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS) > *_CLANGDWARF_IA32_OBJCOPY_FLAGS = > @@ -2897,17 +2897,17 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x22 > *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET) > *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET) > > -DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > +DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 > -DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > +DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > -RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double > +RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -malign-double > RELEASE_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 > -RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld > +RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld -no-pie > > -NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > +NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -fno-pic -fno-pie -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g -malign-double > NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat,elf32-i386 > -NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld > +NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld -no-pie > > ########################## > # CLANGDWARF X64 definitions