diff --git a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202408.bb b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202408.bb index ea03d47b..fa44e28f 100644 --- a/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202408.bb +++ b/meta-arm-bsp/recipes-bsp/uefi/edk2-firmware_202408.bb @@ -1,9 +1,12 @@ SRCREV_edk2 ?= "b158dad150bf02879668f72ce306445250838201" SRCREV_edk2-platforms ?= "a3c898956a4d48dc5980336fa6ce6eeb23c4f72b" -SRC_URI += "file://0001-Platform-StMmRpmb-Fix-build.patch;patchdir=edk2-platforms" +SRC_URI += "file://0001-Platform-StMmRpmb-Fix-build.patch;patchdir=edk2-platforms \ + file://0001-BaseTools-Pccts-set-C-standard.patch" -# FIXME - clang is having issues with antlr +# FIXME: +# ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type03/MiscChassisManufacturerFunction.c:146:37: +# error: variable 'ContainedElements' is uninitialized when passed as a const pointer argument here [-Werror,-Wuninitialized-const-pointer] TOOLCHAIN:aarch64 = "gcc" require recipes-bsp/uefi/edk2-firmware.inc diff --git a/meta-arm-bsp/recipes-bsp/uefi/files/0001-BaseTools-Pccts-set-C-standard.patch b/meta-arm-bsp/recipes-bsp/uefi/files/0001-BaseTools-Pccts-set-C-standard.patch new file mode 100644 index 00000000..058073c9 --- /dev/null +++ b/meta-arm-bsp/recipes-bsp/uefi/files/0001-BaseTools-Pccts-set-C-standard.patch @@ -0,0 +1,47 @@ +From e063f8b8a53861043b9872cc35b08a3dc03b0942 Mon Sep 17 00:00:00 2001 +From: Gerd Hoffmann +Date: Mon, 20 Jan 2025 09:40:31 +0100 +Subject: [PATCH] BaseTools/Pccts: set C standard + +The prehistoric code base doesn't build with ISO C23. Set the C +standard to C11 (for both clang and gcc) so it continues to build with +gcc 15 (which uses C23 by default). + +Signed-off-by: Gerd Hoffmann + +Upstream-Status: Backport [e063f8b8a53861043b9872cc35b08a3dc03b0942] +Signed-off-by: Ross Burton +--- + BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile | 2 +- + BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile b/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile +index 746d58b5e2..b47c8a37af 100644 +--- a/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile ++++ b/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile +@@ -169,7 +169,7 @@ ANTLR=${BIN_DIR}/antlr + DLG=${BIN_DIR}/dlg + OBJ_EXT=o + OUT_OBJ = -o +-CFLAGS= $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN $(COTHER) -DZZLEXBUFSIZE=65536 ++CFLAGS= $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN $(COTHER) -DZZLEXBUFSIZE=65536 -std=gnu11 + CPPFLAGS= + # + # SGI Users, use this CFLAGS +diff --git a/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile b/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile +index e45ac98e04..d72bee3d70 100644 +--- a/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile ++++ b/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile +@@ -123,7 +123,7 @@ endif + COPT=-O + ANTLR=${BIN_DIR}/antlr + DLG=${BIN_DIR}/dlg +-CFLAGS= $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN -DZZLEXBUFSIZE=65536 ++CFLAGS= $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN -DZZLEXBUFSIZE=65536 -std=gnu11 + CPPFLAGS= + OBJ_EXT=o + OUT_OBJ = -o +-- +2.43.0 +