From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mx.groups.io with SMTP id smtpd.web10.23149.1683737658642004995 for ; Wed, 10 May 2023 09:54:18 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=RAEkDi8w; spf=pass (domain: kernel.org, ip: 139.178.84.217, mailfrom: ardb@kernel.org) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1954463D0A for ; Wed, 10 May 2023 16:54:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74968C433EF for ; Wed, 10 May 2023 16:54:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1683737657; bh=6/qfJhQH6YAYPlG+Iz/ZJ9h1QqCYKGz8JHgmmvYRysU=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=RAEkDi8wv/9lBOb39xM/beKoXhZ1GqqpbmLxru25AGTCbJEjF6jWOdToGyeqdR/pR yPQtFuxP+Iq93zsstVA/Cy0f2QN2H92FpwHOSnH7OZF2289eUe2lvWrJWkdmSdsnSL TLVGVa+MNS+isfS60Rp1rYWDA2Y3XoN9oIe3qcEbNUpQKO5A29Pj5/C//N6rsTHKdb h+j565M5si4XdG1Sb6+RkLZNJqG8YjSo7u0gvwWIUEVDY1BafRdVAsY8HW0y4nizA+ iXsWHgj5ioBqrBeKuM5qlhjPcs2un0/MDxgAnynd/KSMahv+lNqB4jaC0pYWry5Pj9 jW6PvcQG4w9Bg== Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-2ad714536cfso52578701fa.0 for ; Wed, 10 May 2023 09:54:17 -0700 (PDT) X-Gm-Message-State: AC+VfDzFyvJeZLqOXZ6a+LXFaPybtBTDznM/4YcxS1+KJWNzGjjayKY0 DKPU7BLoy+xg64iwUDS0u7ESlLeTJM1zhfJ7ir4= X-Google-Smtp-Source: ACHHUZ4Tce2x+UqrcPkilwuR47ne/7BAH0c0ShTueNeruLbydxSSvNmWiOMkE8b7w7fiCmOhPP/a1xt4+FYCBouEO/k= X-Received: by 2002:a2e:b002:0:b0:2ab:4ca0:e19c with SMTP id y2-20020a2eb002000000b002ab4ca0e19cmr2084036ljk.51.1683737655443; Wed, 10 May 2023 09:54:15 -0700 (PDT) MIME-Version: 1.0 References: <45c61530-3cf4-f1bf-4ff1-b7bf242dbddb@bsdio.com> In-Reply-To: From: "Ard Biesheuvel" Date: Wed, 10 May 2023 18:54:04 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: JunoPkg ARM build breakage: "Error: bad instruction `aarch64_bti(c)'" To: Rebecca Cran , Leif Lindholm Cc: Ard Biesheuvel , Thomas Abraham , Sami Mujawar , "devel@edk2.groups.io" Content-Type: text/plain; charset="UTF-8" (cc Leif) On Wed, 10 May 2023 at 18:52, Rebecca Cran wrote: > > 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 > Seems to me like an excellent opportunity to rip that thing out completely. > > /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 > >>