similarity index 93%
rename from meta-arm/recipes-bsp/uefi/edk2-basetools-native_202502.bb
rename to meta-arm/recipes-bsp/uefi/edk2-basetools-native_202508.bb
@@ -10,7 +10,7 @@ LICENSE = "BSD-2-Clause-Patent"
SRC_URI = "git://github.com/tianocore/edk2.git;branch=master;protocol=https"
LIC_FILES_CHKSUM = "file://License.txt;md5=2b415520383f7964e96700ae12b4570a"
-SRCREV = "b158dad150bf02879668f72ce306445250838201"
+SRCREV = "d46aa46c8361194521391aa581593e556c707c6e"
UPSTREAM_CHECK_GITTAGREGEX = "^edk2-stable(?P<pver>\d+)$"
@@ -54,6 +54,7 @@ EDK2_BUILD_MODE ?= "${@bb.utils.contains('EDK2_BUILD_RELEASE', '1', 'RELEASE', '
# Baremetal, no need for a C library
DEPENDS:remove = "virtual/${TARGET_PREFIX}compilerlibs virtual/libc"
DEPENDS += "util-linux-native iasl-native"
+DEPENDS:append:toolchain-clang = " lld-native"
inherit deploy
@@ -77,7 +78,7 @@ EDK_COMPILER ?= "GCC5"
export GCC5_AARCH64_PREFIX = "${TARGET_PREFIX}"
export GCC5_ARM_PREFIX = "${TARGET_PREFIX}"
-EDK_COMPILER:toolchain-clang = "CLANG38"
+EDK_COMPILER:toolchain-clang = "CLANGDWARF"
export CLANG38_AARCH64_PREFIX = "${TARGET_PREFIX}"
export CLANG38_ARM_PREFIX = "${TARGET_PREFIX}"
deleted file mode 100644
@@ -1,9 +0,0 @@
-require recipes-bsp/uefi/edk2-firmware.inc
-
-SRCREV_edk2 ?= "6951dfe7d59d144a3a980bd7eda699db2d8554ac"
-SRCREV_edk2-platforms ?= "564f6509e89f45b25d97db2772ca9b3bec8b3ed5"
-
-# FIXME - clang is having issues with antlr
-TOOLCHAIN:aarch64 = "gcc"
-
-SRC_URI += " file://edk2_fix_epoch.patch"
new file mode 100644
@@ -0,0 +1,6 @@
+require recipes-bsp/uefi/edk2-firmware.inc
+
+SRCREV_edk2 ?= "d46aa46c8361194521391aa581593e556c707c6e"
+SRCREV_edk2-platforms ?= "d82aa92c1d360c1b53ccad4dc45bdd8164a560d5"
+
+SRC_URI += " file://edk2_fix_epoch.patch"
@@ -1,4 +1,4 @@
-From 76665f48f5a4672d8c8bed3c57822307193b2b72 Mon Sep 17 00:00:00 2001
+From da0d96f0dc5fceafa34a7cc7d4d05f6f89336a87 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 7 Apr 2021 00:16:07 -0400
Subject: [PATCH] Enforce using good old BFD linker
@@ -25,7 +25,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
-index ffeb22742142..ba24113d216c 100755
+index 0caa1c90018f..0b62fdc9ee72 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -928,7 +928,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access
@@ -34,6 +34,6 @@ index ffeb22742142..ba24113d216c 100755
DEFINE GCC_RISCV64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
-DEFINE GCC_DLINK2_FLAGS_COMMON = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
+DEFINE GCC_DLINK2_FLAGS_COMMON = -fuse-ld=bfd -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
- DEFINE GCC_IA32_X64_DLINK_COMMON = -nostdlib --pie --fatal-warnings -z,noexecstack --gc-sections
- DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map -Wl,--fatal-warnings -Wl,-z,noexecstack
+ DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC_LOONGARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
+ DEFINE GCC_ARM_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20 -Wl,--pic-veneer
@@ -1,4 +1,4 @@
-require recipes-bsp/uefi/edk2-firmware_202505.bb
+require recipes-bsp/uefi/edk2-firmware_202508.bb
PROVIDES:remove = "virtual/bootloader"
LICENSE += "& Apache-2.0"
@@ -21,6 +21,12 @@ SRCREV_libc = "caea801aac338aa60f85a7c10148ca0b4440fff3"
UPSTREAM_CHECK_URI = "https://github.com/ARM-software/sbsa-acs/releases"
+# FIXME - some weirdness here with clang. Looks like there are some
+# hardcoded assembly instructions which need feature enablement that
+# magically happens in gcc, but needs explicit enablement in clang.
+# Hardcode GCC until this can be bottomed out.
+TOOLCHAIN:aarch64 = "gcc"
+
COMPATIBLE_HOST = "aarch64.*-linux"
COMPATIBLE_MACHINE = ""
PACKAGE_ARCH = "${TUNE_PKGARCH}"
Update edk2-firmware to the latest release and update edk2-basetools to match this update (as the previous update did not do this). Also, fix clang compile issues. This change should fix any clang compile issues since edk2-stable202108 (completely untested, but that is when the relevant variables were renamed). Signed-off-by: Jon Mason <jon.mason@arm.com> --- ...-native_202502.bb => edk2-basetools-native_202508.bb} | 2 +- meta-arm/recipes-bsp/uefi/edk2-firmware.inc | 3 ++- meta-arm/recipes-bsp/uefi/edk2-firmware_202505.bb | 9 --------- meta-arm/recipes-bsp/uefi/edk2-firmware_202508.bb | 6 ++++++ .../0002-Enforce-using-good-old-BFD-linker.patch | 8 ++++---- meta-arm/recipes-bsp/uefi/sbsa-acs_7.2.2.bb | 8 +++++++- 6 files changed, 20 insertions(+), 16 deletions(-) rename meta-arm/recipes-bsp/uefi/{edk2-basetools-native_202502.bb => edk2-basetools-native_202508.bb} (93%) delete mode 100644 meta-arm/recipes-bsp/uefi/edk2-firmware_202505.bb create mode 100644 meta-arm/recipes-bsp/uefi/edk2-firmware_202508.bb