From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from out2-smtp.messagingengine.com (out2-smtp.messagingengine.com [66.111.4.26]) by mx.groups.io with SMTP id smtpd.web11.25786.1679074217902524438 for ; Fri, 17 Mar 2023 10:30:18 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@bsdio.com header.s=fm3 header.b=hwkGvQsu; spf=pass (domain: bsdio.com, ip: 66.111.4.26, mailfrom: rebecca@bsdio.com) Received: from compute6.internal (compute6.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 337905C01A6; Fri, 17 Mar 2023 13:30:17 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Fri, 17 Mar 2023 13:30:17 -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= 1679074217; x=1679160617; bh=LfCY7cfg1UAr0HLfKbPusbrkQPtV2vNjUdY c1LakpEk=; b=hwkGvQsuHerxYJqgSy8XiasfBzyYuXs1JVgHcR+Le+Oqdfp2IYT xDXNNEZMGW5A1XNCJhvz5hXKey5VCYNZlA6aDgmlZNMDYBs5oNE2IZEz+a8xAlIW 4e4QI5Bz32dPGGP1ckkemAO45pgOiJHik3duyr944DlJm7T+aiRlDpDW7PRHnN6o dFtLG3v9wpNbI2UyfPq0VLyD8kNYcYbz+xGy4aOJUjvILWmckzqEWNTEZTb5ux22 PePP7O2yHwipCstcDvaD1+yewua6b1ry+LpOGF/XOMwFC6rjqGQ2OR1gQqhKPX8I Enpc4D/Qp34bIgKItC8Q0iOu8CQBwPnIg1Q== 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= 1679074217; x=1679160617; bh=LfCY7cfg1UAr0HLfKbPusbrkQPtV2vNjUdY c1LakpEk=; b=sBQlsXxqxryi3EAHKAdF+8QCzgAtEBsxU7pjpBNRbZQJ4OSYkZK 9HH2bHryVU4vfax/C4xkr5CwqEnPgU2h5HoTzyGN9d7rUzPsMcot4o366u84sb8n LaI7k8/hXQkuXL8EdftFTYR7nBUW0rnPaGE/twav7m59+hsBqz1ggZPyaheWOFbM 3CctThkCaSikdNLESoLmvFaFvwBtBgp0acgNFAyVIoULBUDORWjfiZa+TvORbT7u 1RnqIzrBBWbl08ZxbsfGcwxoIEjl6f8X/1ptFauF5QAZKSUQGRRYK24/ciNh7TMO FxGDrln2z9cjjiqNOs9t4Stk5+osvyl5FWw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrvdefvddguddtudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepkfffgggfuffvvehfhfgjtgfgse htjeertddtfeejnecuhfhrohhmpeftvggsvggttggrucevrhgrnhcuoehrvggsvggttggr segsshguihhordgtohhmqeenucggtffrrghtthgvrhhnpeevfffgtdffjeefudejleefud ejjeetuddvhfegudfhuddtleefgfduueejteevueenucffohhmrghinhepthhirghnohgt ohhrvgdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfh hrohhmpehrvggsvggttggrsegsshguihhordgtohhm X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 17 Mar 2023 13:30:15 -0400 (EDT) Message-ID: <425bcd67-f9b9-4915-d392-ddcd00ed69d4@bsdio.com> Date: Fri, 17 Mar 2023 11:30:14 -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.0 Subject: Re: [edk2-devel] [PATCH 1/3] BaseTools/Conf/tools_def: Fix linking using CLANGDWARF_IA32 To: devel@edk2.groups.io, patrick.rudolph@9elements.com Cc: guo.dong@intel.com, gua.guo@intel.com, james.lu@intel.com, ray.ni@intel.com, mhaeuser@posteo.de, ardb@kernel.org References: <20230317140627.1033739-1-patrick.rudolph@9elements.com> From: "Rebecca Cran" In-Reply-To: <20230317140627.1033739-1-patrick.rudolph@9elements.com> Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I've also seen that error building X64 firmware. Could you update those flags too, please? -- Rebecca Cran On 3/17/23 8:06 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