From 36a9133c8e4fe693d4f172c7f0b562ef02f83531 Mon Sep 17 00:00:00 2001 From: vasilito Date: Wed, 1 Jul 2026 04:57:01 +0300 Subject: [PATCH] fix: EDK2 BaseTools build with modern GCC PCCTS parser generator uses K&R-style function pointers void (*)() which modern GCC (12+) rejects under -Werror (treats () as (void)). Build with -std=gnu89 -Wno-error for the BaseTools C toolchain. --- firmware/build_ovmf.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/firmware/build_ovmf.sh b/firmware/build_ovmf.sh index 527af22..5241b61 100755 --- a/firmware/build_ovmf.sh +++ b/firmware/build_ovmf.sh @@ -19,7 +19,11 @@ EDK2_DIR="${EDK2_DIR:-$(pwd)}" } echo "=== Building EDK2 BaseTools (C toolchain) ===" -make -C BaseTools/Source/C -j"$(nproc)" +# PCCTS parser code uses K&R-style function pointers (void (*)()) which +# modern GCC rejects with -Werror. Build with -Wno-error and gnu89. +make -C BaseTools/Source/C -j"$(nproc)" \ + CFLAGS="-MMD -MP -g -O2 -Wno-error -std=gnu89" \ + BUILD_CFLAGS="-MMD -MP -g -O2 -Wno-error -std=gnu89" echo "=== Initializing EDK2 environment ===" # shellcheck disable=SC1091