From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) by mx.groups.io with SMTP id smtpd.web10.23103.1683737545915951843 for ; Wed, 10 May 2023 09:52:26 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="signature has expired" header.i=@bsdio.com header.s=fm1 header.b=f19KXsMl; spf=pass (domain: bsdio.com, ip: 64.147.123.24, mailfrom: rebecca@bsdio.com) Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id D55783200906; Wed, 10 May 2023 12:52:24 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Wed, 10 May 2023 12:52:25 -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=fm1; t= 1683737544; x=1683823944; bh=zaIdPQgi8sh9EEsc+J9HHO9fZgvgwyOKHiN hp1D1uOA=; b=f19KXsMls9svYqn1Zp3tMaAX+1u+aon6loAdy7Cb0KEOO6Pd8vD LcPKaolKCydOB1RDIVZDq3c7mSVMmPxLpMP85FtRyu233JCMun5dYK3D0og7+kp1 b0dc9Mm9yW51lq5eBw0mFoWZZSnSpbQ05VJPtCXPklGlzEgt0sWIFFnmky9wHnOt dYuSfob+TFm3QMpHvwVeakXZaqe2oBX/Yv6X14Le7Ssq+NejnDiW3egj5RaMKaPz pzVb5O5XV7ObDvLeYtnol53u2DsD70QIl9uNqc025syXCaR+SygSs/5eWttapWzM NVujoKmSl1RZ29427bE5PYSV2no3gPxW3BQ== 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=fm3; t= 1683737544; x=1683823944; bh=zaIdPQgi8sh9EEsc+J9HHO9fZgvgwyOKHiN hp1D1uOA=; b=MOmBNn296KmVVYh2pVPBBIOyeWqExN5bJZXowXZ3SnM7gRZIGiG b6w8z83Hw7XW6Q7E1bNzo5MsqfHW9OTuiFBWFOGYXYlt1IhdHLgSipc+Y/FmRUl6 jCqFIaftauPjdZu/or+7YzYPZhfnPDvBx44/K8ISno/CP6W5IfEggkqYVtsEwZeQ d/heh8VVjlmXNPGe6vWkYKUPeI+lJnuyqt71DnrrEDZywQ4Yv8U0Xm3fUxbv8AH0 AdYV7tNjcggorUX44m1dAHyQrII3JV3UNXcTq6qEPD7GdOADoVhfoAU14L7i/zkr PlFY5bUXMyP7q1x0v4RArbAAc5aPHE0ZkgQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrfeegiedgkeegucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvvehfhfgjtgfgsehtkeertddtfeejnecuhfhrohhmpeftvggs vggttggrucevrhgrnhcuoehrvggsvggttggrsegsshguihhordgtohhmqeenucggtffrrg htthgvrhhnpeetvedtheejgefhiedtheejgffgjeduveeludeivdehhefgveeiffdufefh leejueenucffohhmrghinhepphhivhhothdrshgsnecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomheprhgvsggvtggtrgessghsughiohdrtghomh X-ME-Proxy: Feedback-ID: i5b994698:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 10 May 2023 12:52:23 -0400 (EDT) Message-ID: Date: Wed, 10 May 2023 10:52:22 -0600 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: JunoPkg ARM build breakage: "Error: bad instruction `aarch64_bti(c)'" To: Ard Biesheuvel Cc: Ard Biesheuvel , Thomas Abraham , Sami Mujawar , "devel@edk2.groups.io" References: <45c61530-3cf4-f1bf-4ff1-b7bf242dbddb@bsdio.com> From: "Rebecca Cran" In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Thanks. Yes, that fixes it. I also tried running the build script with CLANGDWARF, and it seems to have found some valid problems with Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:216:11: error: variable 'FileSize' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]       if (FileHandle != NULL) {           ^~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:281:38: note: uninitialized use occurs here   WriteBackDataCacheRange (FileData, FileSize);                                      ^~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:216:7: note: remove the 'if' if its condition is always true       if (FileHandle != NULL) {       ^~~~~~~~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:179:9: error: variable 'FileSize' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]     if ((ShellCommandLineGetFlag (ParamPackage, L"-?")) ||         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:281:38: note: uninitialized use occurs here   WriteBackDataCacheRange (FileData, FileSize);                                      ^~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:179:5: note: remove the 'if' if its condition is always false     if ((ShellCommandLineGetFlag (ParamPackage, L"-?")) ||     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:179:9: error: variable 'FileSize' is used uninitialized whenever '||' condition is true [-Werror,-Wsometimes-uninitialized]     if ((ShellCommandLineGetFlag (ParamPackage, L"-?")) ||         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:281:38: note: uninitialized use occurs here   WriteBackDataCacheRange (FileData, FileSize);                                      ^~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:179:9: note: remove the '||' if its condition is always false     if ((ShellCommandLineGetFlag (ParamPackage, L"-?")) ||         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:172:7: error: variable 'FileSize' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]   if (EFI_ERROR (Status)) {       ^~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2/MdePkg/Include/Uefi/UefiBaseType.h:159:23: note: expanded from macro 'EFI_ERROR' #define EFI_ERROR(A)  RETURN_ERROR(A)                       ^~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2/MdePkg/Include/Base.h:1061:35: note: expanded from macro 'RETURN_ERROR' #define RETURN_ERROR(StatusCode) (((INTN)(RETURN_STATUS)(StatusCode)) < 0) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:281:38: note: uninitialized use occurs here   WriteBackDataCacheRange (FileData, FileSize);                                      ^~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:172:3: note: remove the 'if' if its condition is always false   if (EFI_ERROR (Status)) {   ^~~~~~~~~~~~~~~~~~~~~~~~~ /home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/RunAxf.c:136:39: note: initialize the variable 'FileSize' to silence this warning   UINTN                       FileSize;                                       ^                                        = 0 4 errors generated. make: *** [GNUmakefile:342: /home/bcran/src/uefi/Build/ArmJuno/RELEASE_CLANGDWARF/AARCH64/Platform/ARM/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf/OUTPUT/RunAxf.obj] Error 1 -- Rebecca Cran On 5/10/23 10:27, Ard Biesheuvel wrote: > Hi Rebecca, > > On Wed, 10 May 2023 at 18:23, Rebecca Cran wrote: >> I ran my script that tries to build all Arm platforms in edk2-platforms >> (with the exception of known broken ones) with the GCC5/GCC toolchain, >> and noticed a new breakage since I last ran it a few months ago. >> >> Building JunoPkg for ARM doesn't work. >> >> I also noticed it passes both -march=armv7-a and -march=armv8-a. >> > This looks like a bug in the Juno package - if I grep for aarch64_bti > in edk2, every single hit is in a aarch64 specific source or header > file, but it is getting pulled into an ARM build. > > Does the below help? > > diff --git a/Platform/ARM/Library/ArmShellCmdRunAxf/Arm/Pivot.S > b/Platform/ARM/Library/ArmShellCmdRunAxf/Arm/Pivot.S > index 50efcfacdfe6..7d5eed94b25f 100644 > --- a/Platform/ARM/Library/ArmShellCmdRunAxf/Arm/Pivot.S > +++ b/Platform/ARM/Library/ArmShellCmdRunAxf/Arm/Pivot.S > @@ -4,7 +4,7 @@ > // SPDX-License-Identifier: BSD-2-Clause-Patent > // > > -#include > +#include > > // VOID > // RunAxfPivot ( > > > >> "arm-none-eabi-gcc" -march=armv7-a -mfloat-abi=soft -march=armv8-a -c -x >> assembler -imacros AutoGen.h -mlittle-endian -o >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/Platform/ARM/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf/OUTPUT/Arm/Pivot.obj >> -I/home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf/Arm >> -I/home/bcran/src/uefi/edk2-platforms/Platform/ARM/Library/ArmShellCmdRunAxf >> -I/home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/Platform/ARM/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf/DEBUG >> -I/home/bcran/src/uefi/edk2/ArmPkg >> -I/home/bcran/src/uefi/edk2/ArmPkg/Include >> -I/home/bcran/src/uefi/edk2/MdeModulePkg >> -I/home/bcran/src/uefi/edk2/MdeModulePkg/Test/Mock/Include >> -I/home/bcran/src/uefi/edk2/MdeModulePkg/Include >> -I/home/bcran/src/uefi/edk2/MdePkg >> -I/home/bcran/src/uefi/edk2/MdePkg/Include >> -I/home/bcran/src/uefi/edk2/MdePkg/Test/UnitTest/Include >> -I/home/bcran/src/uefi/edk2/MdePkg/Test/Mock/Include >> -I/home/bcran/src/uefi/edk2/MdePkg/Include/Arm >> -I/home/bcran/src/uefi/edk2-platforms/Platform/ARM >> -I/home/bcran/src/uefi/edk2-platforms/Platform/ARM/Include >> -I/home/bcran/src/uefi/edk2/ShellPkg >> -I/home/bcran/src/uefi/edk2/ShellPkg/Include >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/Platform/ARM/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf/OUTPUT/Arm/Pivot.iiii >> Trim --trim-long --source-code -o >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe/OUTPUT/Arm/CopyMem.iiii >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe/OUTPUT/Arm/CopyMem.ii >> Trim --trim-long --source-code -o >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib/OUTPUT/Arm/ctzsi2.iiii >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib/OUTPUT/Arm/ctzsi2.ii >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/Platform/ARM/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf/OUTPUT/Arm/Pivot.iiii: >> Assembler messages: >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/Platform/ARM/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf/OUTPUT/Arm/Pivot.iiii:17: >> Error: bad instruction `aarch64_bti(c)' >> make: *** [GNUmakefile:363: >> /home/bcran/src/uefi/Build/ArmJuno/RELEASE_GCC5/ARM/Platform/ARM/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf/OUTPUT/Arm/Pivot.obj] >> Error 1 >> >> >> -- >> Rebecca Cran >>