diff mbox series

[047/114] ovmf: upgrade 202508 -> 202511

Message ID 20251222200739.2278706-47-alex.kanavin@gmail.com
State Under Review
Headers show
Series [001/114] build-appliance-image: do not inherit setuptools | expand

Commit Message

Alexander Kanavin Dec. 22, 2025, 8:06 p.m. UTC
From: Alexander Kanavin <alex@linutronix.de>

Upstream has dropped support for 32 bit x86:
https://github.com/tianocore/edk2/commit/2a6708a786eb0f0e9b979cd93c5dc12c42e337a1

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
 ...ovmf-update-path-to-native-BaseTools.patch |  9 +++--
 ...ile-adjust-to-build-in-under-bitbake.patch | 11 ++++--
 .../ovmf/ovmf/0003-debug-prefix-map.patch     | 37 ++++++++++---------
 .../ovmf/ovmf/0004-reproducible.patch         | 17 +++++----
 ...ceptionHandlerLib-fix-push-instructi.patch |  7 +++-
 meta/recipes-core/ovmf/ovmf_git.bb            | 16 +++-----
 6 files changed, 53 insertions(+), 44 deletions(-)

Comments

Khem Raj Dec. 23, 2025, 11:07 p.m. UTC | #1
meta/recipes-core/ovmf/ovmf-shell-image.bb also needs to narrow down
COMPATIBLE_HOST to respond to this change.

On Mon, Dec 22, 2025 at 12:08 PM Alexander Kanavin via
lists.openembedded.org <alex.kanavin=gmail.com@lists.openembedded.org>
wrote:

> From: Alexander Kanavin <alex@linutronix.de>
>
> Upstream has dropped support for 32 bit x86:
>
> https://github.com/tianocore/edk2/commit/2a6708a786eb0f0e9b979cd93c5dc12c42e337a1
>
> Signed-off-by: Alexander Kanavin <alex@linutronix.de>
> ---
>  ...ovmf-update-path-to-native-BaseTools.patch |  9 +++--
>  ...ile-adjust-to-build-in-under-bitbake.patch | 11 ++++--
>  .../ovmf/ovmf/0003-debug-prefix-map.patch     | 37 ++++++++++---------
>  .../ovmf/ovmf/0004-reproducible.patch         | 17 +++++----
>  ...ceptionHandlerLib-fix-push-instructi.patch |  7 +++-
>  meta/recipes-core/ovmf/ovmf_git.bb            | 16 +++-----
>  6 files changed, 53 insertions(+), 44 deletions(-)
>
> diff --git
> a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
> b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
> index 890e586210..bc70c1ab91 100644
> ---
> a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
> +++
> b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
> @@ -1,7 +1,7 @@
> -From 0f859c6de2914cd984f8a0dd61471b91a2371bfa Mon Sep 17 00:00:00 2001
> +From 89a7bfe82c9dea89fa7d859eb392aa414a365578 Mon Sep 17 00:00:00 2001
>  From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
>  Date: Thu, 9 Jun 2016 02:23:01 -0700
> -Subject: [PATCH] ovmf: update path to native BaseTools
> +Subject: [PATCH 1/5] ovmf: update path to native BaseTools
>
>  BaseTools is a set of utilities to build EDK-based firmware. These
> utilities
>  are used during the build process. Thus, they need to be built natively.
> @@ -16,7 +16,7 @@ Upstream-Status: Inappropriate [oe-core cross compile
> specific]
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
>  diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
> -index 279f0d099a..285f061bf4 100755
> +index 30f4830173..ce4ffb20ab 100755
>  --- a/OvmfPkg/build.sh
>  +++ b/OvmfPkg/build.sh
>  @@ -24,7 +24,7 @@ then
> @@ -28,3 +28,6 @@ index 279f0d099a..285f061bf4 100755
>     echo $EDK_TOOLS_PATH
>     source edksetup.sh BaseTools
>   else
> +--
> +2.47.3
> +
> diff --git
> a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
> b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
> index 4a55528571..27c4324b67 100644
> ---
> a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
> +++
> b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
> @@ -1,7 +1,7 @@
> -From 9dbd082516fdd7100f99f0f389b8eef5ececab19 Mon Sep 17 00:00:00 2001
> +From 8b4941871ccc88ed8b31eb7ffc097e1fe39fe57d Mon Sep 17 00:00:00 2001
>  From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
>  Date: Fri, 26 Jul 2019 17:34:26 -0400
> -Subject: [PATCH] BaseTools: makefile: adjust to build in under bitbake
> +Subject: [PATCH 2/5] BaseTools: makefile: adjust to build in under bitbake
>
>  Prepend the build flags with those of bitbake. This is to build
>  using the bitbake native sysroot include and library directories.
> @@ -18,10 +18,10 @@ Upstream-Status: Inappropriate [needs to be converted
> to in-recipe fixups]
>   1 file changed, 7 insertions(+), 8 deletions(-)
>
>  diff --git a/BaseTools/Source/C/Makefiles/header.makefile
> b/BaseTools/Source/C/Makefiles/header.makefile
> -index 55a7307a5e..e36e6a8f04 100644
> +index 53e73abe53..0b3f9bbb2a 100644
>  --- a/BaseTools/Source/C/Makefiles/header.makefile
>  +++ b/BaseTools/Source/C/Makefiles/header.makefile
> -@@ -154,35 +154,34 @@ endif
> +@@ -151,35 +151,34 @@ endif
>
>   INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common
> -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I
> $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)
>   INCLUDE += -I $(EDK2_PATH)/MdePkg/Include
> @@ -64,3 +64,6 @@ index 55a7307a5e..e36e6a8f04 100644
>   ifeq ($(HOST_ARCH), IA32)
>   #
>   # Snow Leopard  is a 32-bit and 64-bit environment. uname -m returns
> i386, but gcc defaults
> +--
> +2.47.3
> +
> diff --git a/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
> b/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
> index 1e79c23ae9..18ea24802a 100644
> --- a/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
> +++ b/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
> @@ -1,7 +1,7 @@
> -From eb6db21ed0a845dce149d17acf8673d5188adea4 Mon Sep 17 00:00:00 2001
> +From 640b1e443a1b400d32d9af0c478abbbaebd491f1 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Mon, 14 Jun 2021 19:56:28 +0200
> -Subject: [PATCH] debug prefix map
> +Subject: [PATCH 3/5] debug prefix map
>
>  We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in
>   --debug-prefix-map to nasm (we carry a patch to nasm for this). The
> @@ -22,30 +22,30 @@ Signed-off-by: Alexander Kanavin <
> alex.kanavin@gmail.com>
>   1 file changed, 9 insertions(+), 9 deletions(-)
>
>  diff --git a/BaseTools/Conf/tools_def.template
> b/BaseTools/Conf/tools_def.template
> -index 0caa1c9001..dd86b3249d 100755
> +index 90a389bdff..1e134b299a 100755
>  --- a/BaseTools/Conf/tools_def.template
>  +++ b/BaseTools/Conf/tools_def.template
> -@@ -920,7 +920,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     =
> --add-gnu-debuglink="$(DEBUG_DIR)/$(MODULE_
> +@@ -833,7 +833,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     =
> --add-gnu-debuglink="$(DEBUG_DIR)/$(MODULE_
>   *_*_*_DTC_PATH                     = DEF(DTC_BIN)
>
>   # All supported GCC archs except LOONGARCH64 support
> -mstack-protector-guard=global, so set that on everything except LOONGARCH64
>  -DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin
> -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h
> -fno-common -fstack-protector
>  +DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin
> -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h
> -fno-common -fstack-protector ENV(GCC_PREFIX_MAP)
>   DEFINE GCC_IA32_X64_CC_FLAGS       = -mstack-protector-guard=global
> - DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS)
> -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char
> -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address
> -mthumb -fno-pic -fno-pie -mstack-protector-guard=global
>   DEFINE GCC_LOONGARCH64_CC_FLAGS    = DEF(GCC_ALL_CC_FLAGS) -mabi=lp64d
> -fno-asynchronous-unwind-tables -Wno-address -fno-short-enums -fsigned-char
> -ffunction-sections -fdata-sections
> -@@ -938,8 +938,8 @@ DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS =
> -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(GC
> - DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS)
> -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
> DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
> - DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS)
> -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
> DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
> + DEFINE GCC_AARCH64_CC_FLAGS        = DEF(GCC_ALL_CC_FLAGS)
> -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char
> -ffunction-sections -fdata-sections -Wno-address
> -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie
> -ffixed-x18 -mstack-protector-guard=global
> +@@ -845,8 +845,8 @@ DEFINE GCC_AARCH64_DLINK_FLAGS     =
> -Wl,--emit-relocs -nostdlib -Wl,--gc-sectio
> + DEFINE GCC_LOONGARCH64_DLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_COMMON)
> -z common-page-size=0x20
> + DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS)
> -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
> -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(GCC_DLINK2_FLAGS_COMMON) -z
> common-page-size=0x20
>   DEFINE GCC_LOONGARCH64_ASLDLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_FLAGS)
> -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
> --DEFINE GCC_ASM_FLAGS               = -c -x assembler -imacros AutoGen.h
> +-DEFINE GCC_ASM_FLAGS               = -c -x assembler
>  -DEFINE GCC_PP_FLAGS                = -E -x assembler-with-cpp -include
> AutoGen.h
> -+DEFINE GCC_ASM_FLAGS               = -c -x assembler -imacros AutoGen.h
> ENV(GCC_PREFIX_MAP)
> ++DEFINE GCC_ASM_FLAGS               = -c -x assembler ENV(GCC_PREFIX_MAP)
>  +DEFINE GCC_PP_FLAGS                = -E -x assembler-with-cpp -include
> AutoGen.h ENV(GCC_PREFIX_MAP)
>   DEFINE GCC_VFRPP_FLAGS             = -x c -E -DVFRCOMPILE --include
> $(MODULE_NAME)StrDefs.h
>   DEFINE GCC_ASLPP_FLAGS             = -x c -E -include AutoGen.h
> - DEFINE GCC_ASLCC_FLAGS             = -x c
> -@@ -1092,7 +1092,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS           =
> -mabi=lp64d -march=loongarch64 DEF(
> + DEFINE GCC_ASLCC_FLAGS             = -x c -include AutoGen.h
> -fshort-wchar
> +@@ -980,7 +980,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS           =
> -mabi=lp64d -march=loongarch64 DEF(
>   *_GCC48_IA32_DLINK2_FLAGS         = DEF(GCC48_IA32_DLINK2_FLAGS)
>   *_GCC48_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
>   *_GCC48_IA32_OBJCOPY_FLAGS        =
> @@ -54,7 +54,7 @@ index 0caa1c9001..dd86b3249d 100755
>
>     DEBUG_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS)
>   RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS)
> -Wno-unused-but-set-variable
> -@@ -1120,7 +1120,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       =
> DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set
> +@@ -1008,7 +1008,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       =
> DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set
>   *_GCC48_X64_DLINK2_FLAGS         = DEF(GCC48_X64_DLINK2_FLAGS)
>   *_GCC48_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
>   *_GCC48_X64_OBJCOPY_FLAGS        =
> @@ -63,7 +63,7 @@ index 0caa1c9001..dd86b3249d 100755
>
>     DEBUG_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS)
>   RELEASE_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS)
> -Wno-unused-but-set-variable
> -@@ -1229,7 +1229,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   =
> DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
> +@@ -1087,7 +1087,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   =
> DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
>   *_GCC49_IA32_DLINK2_FLAGS         = DEF(GCC49_IA32_DLINK2_FLAGS)
>   *_GCC49_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
>   *_GCC49_IA32_OBJCOPY_FLAGS        =
> @@ -72,7 +72,7 @@ index 0caa1c9001..dd86b3249d 100755
>
>     DEBUG_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS)
>   RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS)
> -Wno-unused-but-set-variable -Wno-unused-const-variable
> -@@ -1257,7 +1257,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       =
> DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set
> +@@ -1115,7 +1115,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       =
> DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set
>   *_GCC49_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS)
>   *_GCC49_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
>   *_GCC49_X64_OBJCOPY_FLAGS        =
> @@ -81,7 +81,7 @@ index 0caa1c9001..dd86b3249d 100755
>
>     DEBUG_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS)
>   RELEASE_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS)
> -Wno-unused-but-set-variable -Wno-unused-const-variable
> -@@ -1516,7 +1516,7 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20
> +@@ -1314,7 +1314,7 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z
> common-page-size=0x20
>   *_GCC5_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie
>   *_GCC5_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
>   *_GCC5_IA32_OBJCOPY_FLAGS        =
> @@ -90,7 +90,7 @@ index 0caa1c9001..dd86b3249d 100755
>
>     DEBUG_GCC5_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto
>     DEBUG_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto
> -Os -Wl,-m,elf_i386,--oformat=elf32-i386
> -@@ -1548,7 +1548,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    =
> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
> +@@ -1346,7 +1346,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    =
> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
>   *_GCC5_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)
>   *_GCC5_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
>   *_GCC5_X64_OBJCOPY_FLAGS         =
> @@ -99,3 +99,6 @@ index 0caa1c9001..dd86b3249d 100755
>
>     DEBUG_GCC5_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto
> -DUSING_LTO
>     DEBUG_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
> +--
> +2.47.3
> +
> diff --git a/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
> b/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
> index 73f242321e..b42ecde211 100644
> --- a/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
> +++ b/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
> @@ -1,7 +1,7 @@
> -From 0d22e07cd9cc35ede04c01d3141068db744d7677 Mon Sep 17 00:00:00 2001
> +From 8b218dffa0368fbc2bfb5d8051b358476266fcb4 Mon Sep 17 00:00:00 2001
>  From: Alexander Kanavin <alex.kanavin@gmail.com>
>  Date: Mon, 14 Jun 2021 19:57:30 +0200
> -Subject: [PATCH] reproducible
> +Subject: [PATCH 4/5] reproducible
>
>  This patch fixes various things which make the build more reproducible.
> Some changes
>  here only change intermediate artefacts but that means when you have two
> build trees
> @@ -35,7 +35,7 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com
> >
>   4 files changed, 24 insertions(+), 16 deletions(-)
>
>  diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c
> b/BaseTools/Source/C/GenFw/Elf64Convert.c
> -index 18594122ea..92b5f13cf6 100644
> +index 83f1b285c2..e2f582f8fb 100644
>  --- a/BaseTools/Source/C/GenFw/Elf64Convert.c
>  +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
>  @@ -15,6 +15,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> @@ -47,7 +47,7 @@ index 18594122ea..92b5f13cf6 100644
>   #endif
>   #include <assert.h>
>   #include <stdio.h>
> -@@ -990,7 +992,7 @@ ScanSections64 (
> +@@ -995,7 +997,7 @@ ScanSections64 (
>     }
>     mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) +
>                   sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) +
> @@ -56,7 +56,7 @@ index 18594122ea..92b5f13cf6 100644
>
>     //
>     // Add more space in the .debug data region for the
> DllCharacteristicsEx
> -@@ -2322,7 +2324,7 @@ WriteDebug64 (
> +@@ -2329,7 +2331,7 @@ WriteDebug64 (
>     EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY         *Nb10;
>     EFI_IMAGE_DEBUG_EX_DLLCHARACTERISTICS_ENTRY *DllEntry;
>
> @@ -65,7 +65,7 @@ index 18594122ea..92b5f13cf6 100644
>
>     NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
>     DataDir =
> &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG];
> -@@ -2355,7 +2357,7 @@ WriteDebug64 (
> +@@ -2362,7 +2364,7 @@ WriteDebug64 (
>
>     Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);
>     Nb10->Signature = CODEVIEW_SIGNATURE_NB10;
> @@ -153,7 +153,7 @@ index e5f282c4ac..27a34ef7c6 100755
>                   if T.GenFileListMacro and T.FileListMacro not in
> self.FileListMacros:
>                       self.FileListMacros[T.FileListMacro] = []
>  diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
> b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
> -index aa0b71632e..57c9cad117 100755
> +index 764c51789b..40aadbcfbc 100755
>  --- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
>  +++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
>  @@ -1429,6 +1429,9 @@ class ModuleAutoGen(AutoGen):
> @@ -175,3 +175,6 @@ index aa0b71632e..57c9cad117 100755
>
>           # Ignore generating makefile when it is a binary module
>           if self.IsBinaryModule:
> +--
> +2.47.3
> +
> diff --git
> a/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch
> b/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch
> index 43c402b91a..650e084b5b 100644
> ---
> a/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch
> +++
> b/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch
> @@ -1,7 +1,7 @@
> -From 7dcf5ed06b5a256436521f892d2579421c163902 Mon Sep 17 00:00:00 2001
> +From 7e6be0f4068a2158af3c97e873edb33fa4d5c6b8 Mon Sep 17 00:00:00 2001
>  From: Gerd Hoffmann <kraxel@redhat.com>
>  Date: Mon, 3 Nov 2025 09:56:52 +0100
> -Subject: [PATCH] UefiCpuPkg/CpuExceptionHandlerLib: fix push instructions
> +Subject: [PATCH 5/5] UefiCpuPkg/CpuExceptionHandlerLib: fix push
> instructions
>
>  Nasm 3.0 complains about 'dword' being invalid.  The comment talks about
>  a '8-byte value' so 'qword' should be correct here.
> @@ -41,3 +41,6 @@ index 3d64ac9080..671ed98f85 100644
>   VectorNum:
>       push    rax
>   %ifdef NO_ABSOLUTE_RELOCS_IN_TEXT
> +--
> +2.47.3
> +
> diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/
> ovmf_git.bb
> index 6b42041ac7..ec6c3b516c 100644
> --- a/meta/recipes-core/ovmf/ovmf_git.bb
> +++ b/meta/recipes-core/ovmf/ovmf_git.bb
> @@ -28,8 +28,8 @@ SRC_URI = "gitsm://
> github.com/tianocore/edk2.git;branch=master;protocol=https;ta
>
> file://0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch \
>             "
>
> -PV = "edk2-stable202508"
> -SRCREV = "d46aa46c8361194521391aa581593e556c707c6e"
> +PV = "edk2-stable202511"
> +SRCREV = "46548b1adac82211d8d11da12dd914f41e7aa775"
>  UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
>
>  CVE_PRODUCT = "edk2"
> @@ -58,7 +58,7 @@ EDK_TOOLS_DIR = "edk2_basetools"
>  BUILD_OPTIMIZATION = ""
>
>  # OVMF supports IA only, although it could conceivably support ARM
> someday.
> -COMPATIBLE_HOST:class-target = '(i.86|x86_64).*'
> +COMPATIBLE_HOST:class-target = '(x86_64).*'
>
>  # Additional build flags for OVMF with Secure Boot.
>  # Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD".
> @@ -178,9 +178,6 @@ do_compile:class-target() {
>      export LFLAGS="${LDFLAGS}"
>      PARALLEL_JOBS="${@oe.utils.parallel_make_argument(d, '-n %d')}"
>      OVMF_ARCH="X64"
> -    if [ "${TARGET_ARCH}" != "x86_64" ] ; then
> -        OVMF_ARCH="IA32"
> -    fi
>
>      # The build for the target uses BaseTools/Conf/tools_def.template
>      # from ovmf-native to find the compiler, which depends on
> @@ -197,9 +194,6 @@ do_compile:class-target() {
>      rm -rf ${WORKDIR}/ovmf
>      mkdir ${WORKDIR}/ovmf
>      OVMF_DIR_SUFFIX="X64"
> -    if [ "${TARGET_ARCH}" != "x86_64" ] ; then
> -        OVMF_DIR_SUFFIX="Ia32" # Note the different capitalization
> -    fi
>      FIXED_GCCVER=$(fixup_target_tools ${GCC_VER})
>      bbnote FIXED_GCCVER is ${FIXED_GCCVER}
>
>  build_dir="${S}/Build/Ovmf$OVMF_DIR_SUFFIX/${OVMF_BUILD_TYPE}_${FIXED_GCCVER}"
> @@ -231,10 +225,10 @@ do_install:class-native() {
>
>  do_install:class-target() {
>      # Content for UEFI shell iso. We install the EFI shell as
> -    # bootx64/ia32.efi because then it can be started even when the
> +    # bootx64.efi because then it can be started even when the
>      # firmware itself does not contain it.
>      install -d ${D}/efi/boot
> -    install ${WORKDIR}/ovmf/Shell.efi ${D}/efi/boot/boot${@ "ia32" if
> "${TARGET_ARCH}" != "x86_64" else "x64"}.efi
> +    install ${WORKDIR}/ovmf/Shell.efi ${D}/efi/boot/bootx64.efi
>      if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true',
> 'false', d)}; then
>          install ${WORKDIR}/ovmf/EnrollDefaultKeys.efi ${D}
>      fi
> --
> 2.47.3
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#228372):
> https://lists.openembedded.org/g/openembedded-core/message/228372
> Mute This Topic: https://lists.openembedded.org/mt/116906945/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Alexander Kanavin Dec. 29, 2025, 11:12 a.m. UTC | #2
On Wed, 24 Dec 2025 at 00:07, Khem Raj <raj.khem@gmail.com> wrote:
>
> meta/recipes-core/ovmf/ovmf-shell-image.bb also needs to narrow down COMPATIBLE_HOST to respond to this change.

I don't think that's needed, the error is already specific enough:

ERROR: Nothing RPROVIDES 'ovmf-shell-efi' (but
/srv/work/alex/openembedded-core/meta/recipes-core/ovmf/ovmf-shell-image.bb
RDEPENDS on or otherwise requires it)
ovmf RPROVIDES ovmf-shell-efi but was skipped: incompatible with host
i686-poky-linux (not in COMPATIBLE_HOST)

Alex
diff mbox series

Patch

diff --git a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
index 890e586210..bc70c1ab91 100644
--- a/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
+++ b/meta/recipes-core/ovmf/ovmf/0001-ovmf-update-path-to-native-BaseTools.patch
@@ -1,7 +1,7 @@ 
-From 0f859c6de2914cd984f8a0dd61471b91a2371bfa Mon Sep 17 00:00:00 2001
+From 89a7bfe82c9dea89fa7d859eb392aa414a365578 Mon Sep 17 00:00:00 2001
 From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
 Date: Thu, 9 Jun 2016 02:23:01 -0700
-Subject: [PATCH] ovmf: update path to native BaseTools
+Subject: [PATCH 1/5] ovmf: update path to native BaseTools
 
 BaseTools is a set of utilities to build EDK-based firmware. These utilities
 are used during the build process. Thus, they need to be built natively.
@@ -16,7 +16,7 @@  Upstream-Status: Inappropriate [oe-core cross compile specific]
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/OvmfPkg/build.sh b/OvmfPkg/build.sh
-index 279f0d099a..285f061bf4 100755
+index 30f4830173..ce4ffb20ab 100755
 --- a/OvmfPkg/build.sh
 +++ b/OvmfPkg/build.sh
 @@ -24,7 +24,7 @@ then
@@ -28,3 +28,6 @@  index 279f0d099a..285f061bf4 100755
    echo $EDK_TOOLS_PATH
    source edksetup.sh BaseTools
  else
+-- 
+2.47.3
+
diff --git a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
index 4a55528571..27c4324b67 100644
--- a/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
+++ b/meta/recipes-core/ovmf/ovmf/0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch
@@ -1,7 +1,7 @@ 
-From 9dbd082516fdd7100f99f0f389b8eef5ececab19 Mon Sep 17 00:00:00 2001
+From 8b4941871ccc88ed8b31eb7ffc097e1fe39fe57d Mon Sep 17 00:00:00 2001
 From: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
 Date: Fri, 26 Jul 2019 17:34:26 -0400
-Subject: [PATCH] BaseTools: makefile: adjust to build in under bitbake
+Subject: [PATCH 2/5] BaseTools: makefile: adjust to build in under bitbake
 
 Prepend the build flags with those of bitbake. This is to build
 using the bitbake native sysroot include and library directories.
@@ -18,10 +18,10 @@  Upstream-Status: Inappropriate [needs to be converted to in-recipe fixups]
  1 file changed, 7 insertions(+), 8 deletions(-)
 
 diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Source/C/Makefiles/header.makefile
-index 55a7307a5e..e36e6a8f04 100644
+index 53e73abe53..0b3f9bbb2a 100644
 --- a/BaseTools/Source/C/Makefiles/header.makefile
 +++ b/BaseTools/Source/C/Makefiles/header.makefile
-@@ -154,35 +154,34 @@ endif
+@@ -151,35 +151,34 @@ endif
  
  INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE)
  INCLUDE += -I $(EDK2_PATH)/MdePkg/Include
@@ -64,3 +64,6 @@  index 55a7307a5e..e36e6a8f04 100644
  ifeq ($(HOST_ARCH), IA32)
  #
  # Snow Leopard  is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults
+-- 
+2.47.3
+
diff --git a/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch b/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
index 1e79c23ae9..18ea24802a 100644
--- a/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
+++ b/meta/recipes-core/ovmf/ovmf/0003-debug-prefix-map.patch
@@ -1,7 +1,7 @@ 
-From eb6db21ed0a845dce149d17acf8673d5188adea4 Mon Sep 17 00:00:00 2001
+From 640b1e443a1b400d32d9af0c478abbbaebd491f1 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 14 Jun 2021 19:56:28 +0200
-Subject: [PATCH] debug prefix map
+Subject: [PATCH 3/5] debug prefix map
 
 We want to pass ${DEBUG_PREFIX_MAP} to gcc commands and also pass in
  --debug-prefix-map to nasm (we carry a patch to nasm for this). The
@@ -22,30 +22,30 @@  Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  1 file changed, 9 insertions(+), 9 deletions(-)
 
 diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
-index 0caa1c9001..dd86b3249d 100755
+index 90a389bdff..1e134b299a 100755
 --- a/BaseTools/Conf/tools_def.template
 +++ b/BaseTools/Conf/tools_def.template
-@@ -920,7 +920,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink="$(DEBUG_DIR)/$(MODULE_
+@@ -833,7 +833,7 @@ NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink="$(DEBUG_DIR)/$(MODULE_
  *_*_*_DTC_PATH                     = DEF(DTC_BIN)
  
  # All supported GCC archs except LOONGARCH64 support -mstack-protector-guard=global, so set that on everything except LOONGARCH64
 -DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -fstack-protector
 +DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common -fstack-protector ENV(GCC_PREFIX_MAP)
  DEFINE GCC_IA32_X64_CC_FLAGS       = -mstack-protector-guard=global
- DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -fno-pic -fno-pie -mstack-protector-guard=global
  DEFINE GCC_LOONGARCH64_CC_FLAGS    = DEF(GCC_ALL_CC_FLAGS) -mabi=lp64d -fno-asynchronous-unwind-tables -Wno-address -fno-short-enums -fsigned-char -ffunction-sections -fdata-sections
-@@ -938,8 +938,8 @@ DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(GC
- DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
- DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
+ DEFINE GCC_AARCH64_CC_FLAGS        = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char  -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18 -mstack-protector-guard=global
+@@ -845,8 +845,8 @@ DEFINE GCC_AARCH64_DLINK_FLAGS     = -Wl,--emit-relocs -nostdlib -Wl,--gc-sectio
+ DEFINE GCC_LOONGARCH64_DLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_COMMON) -z common-page-size=0x20
+ DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(GCC_DLINK2_FLAGS_COMMON) -z common-page-size=0x20
  DEFINE GCC_LOONGARCH64_ASLDLINK_FLAGS = DEF(GCC_LOONGARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
--DEFINE GCC_ASM_FLAGS               = -c -x assembler -imacros AutoGen.h
+-DEFINE GCC_ASM_FLAGS               = -c -x assembler
 -DEFINE GCC_PP_FLAGS                = -E -x assembler-with-cpp -include AutoGen.h
-+DEFINE GCC_ASM_FLAGS               = -c -x assembler -imacros AutoGen.h ENV(GCC_PREFIX_MAP)
++DEFINE GCC_ASM_FLAGS               = -c -x assembler ENV(GCC_PREFIX_MAP)
 +DEFINE GCC_PP_FLAGS                = -E -x assembler-with-cpp -include AutoGen.h ENV(GCC_PREFIX_MAP)
  DEFINE GCC_VFRPP_FLAGS             = -x c -E -DVFRCOMPILE --include $(MODULE_NAME)StrDefs.h
  DEFINE GCC_ASLPP_FLAGS             = -x c -E -include AutoGen.h
- DEFINE GCC_ASLCC_FLAGS             = -x c
-@@ -1092,7 +1092,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS           = -mabi=lp64d -march=loongarch64 DEF(
+ DEFINE GCC_ASLCC_FLAGS             = -x c -include AutoGen.h -fshort-wchar
+@@ -980,7 +980,7 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS           = -mabi=lp64d -march=loongarch64 DEF(
  *_GCC48_IA32_DLINK2_FLAGS         = DEF(GCC48_IA32_DLINK2_FLAGS)
  *_GCC48_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
  *_GCC48_IA32_OBJCOPY_FLAGS        =
@@ -54,7 +54,7 @@  index 0caa1c9001..dd86b3249d 100755
  
    DEBUG_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS)
  RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set-variable
-@@ -1120,7 +1120,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set
+@@ -1008,7 +1008,7 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set
  *_GCC48_X64_DLINK2_FLAGS         = DEF(GCC48_X64_DLINK2_FLAGS)
  *_GCC48_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
  *_GCC48_X64_OBJCOPY_FLAGS        =
@@ -63,7 +63,7 @@  index 0caa1c9001..dd86b3249d 100755
  
    DEBUG_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS)
  RELEASE_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -Wno-unused-but-set-variable
-@@ -1229,7 +1229,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
+@@ -1087,7 +1087,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
  *_GCC49_IA32_DLINK2_FLAGS         = DEF(GCC49_IA32_DLINK2_FLAGS)
  *_GCC49_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
  *_GCC49_IA32_OBJCOPY_FLAGS        =
@@ -72,7 +72,7 @@  index 0caa1c9001..dd86b3249d 100755
  
    DEBUG_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS)
  RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
-@@ -1257,7 +1257,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set
+@@ -1115,7 +1115,7 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set
  *_GCC49_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS)
  *_GCC49_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
  *_GCC49_X64_OBJCOPY_FLAGS        =
@@ -81,7 +81,7 @@  index 0caa1c9001..dd86b3249d 100755
  
    DEBUG_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS)
  RELEASE_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable
-@@ -1516,7 +1516,7 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
+@@ -1314,7 +1314,7 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
  *_GCC5_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie
  *_GCC5_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
  *_GCC5_IA32_OBJCOPY_FLAGS        =
@@ -90,7 +90,7 @@  index 0caa1c9001..dd86b3249d 100755
  
    DEBUG_GCC5_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto
    DEBUG_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386
-@@ -1548,7 +1548,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
+@@ -1346,7 +1346,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
  *_GCC5_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)
  *_GCC5_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
  *_GCC5_X64_OBJCOPY_FLAGS         =
@@ -99,3 +99,6 @@  index 0caa1c9001..dd86b3249d 100755
  
    DEBUG_GCC5_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO
    DEBUG_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
+-- 
+2.47.3
+
diff --git a/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch b/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
index 73f242321e..b42ecde211 100644
--- a/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
+++ b/meta/recipes-core/ovmf/ovmf/0004-reproducible.patch
@@ -1,7 +1,7 @@ 
-From 0d22e07cd9cc35ede04c01d3141068db744d7677 Mon Sep 17 00:00:00 2001
+From 8b218dffa0368fbc2bfb5d8051b358476266fcb4 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 14 Jun 2021 19:57:30 +0200
-Subject: [PATCH] reproducible
+Subject: [PATCH 4/5] reproducible
 
 This patch fixes various things which make the build more reproducible. Some changes
 here only change intermediate artefacts but that means when you have two build trees
@@ -35,7 +35,7 @@  Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
  4 files changed, 24 insertions(+), 16 deletions(-)
 
 diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c
-index 18594122ea..92b5f13cf6 100644
+index 83f1b285c2..e2f582f8fb 100644
 --- a/BaseTools/Source/C/GenFw/Elf64Convert.c
 +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c
 @@ -15,6 +15,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -47,7 +47,7 @@  index 18594122ea..92b5f13cf6 100644
  #endif
  #include <assert.h>
  #include <stdio.h>
-@@ -990,7 +992,7 @@ ScanSections64 (
+@@ -995,7 +997,7 @@ ScanSections64 (
    }
    mCoffOffset = mDebugOffset + sizeof(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY) +
                  sizeof(EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY) +
@@ -56,7 +56,7 @@  index 18594122ea..92b5f13cf6 100644
  
    //
    // Add more space in the .debug data region for the DllCharacteristicsEx
-@@ -2322,7 +2324,7 @@ WriteDebug64 (
+@@ -2329,7 +2331,7 @@ WriteDebug64 (
    EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY         *Nb10;
    EFI_IMAGE_DEBUG_EX_DLLCHARACTERISTICS_ENTRY *DllEntry;
  
@@ -65,7 +65,7 @@  index 18594122ea..92b5f13cf6 100644
  
    NtHdr = (EFI_IMAGE_OPTIONAL_HEADER_UNION *)(mCoffFile + mNtHdrOffset);
    DataDir = &NtHdr->Pe32Plus.OptionalHeader.DataDirectory[EFI_IMAGE_DIRECTORY_ENTRY_DEBUG];
-@@ -2355,7 +2357,7 @@ WriteDebug64 (
+@@ -2362,7 +2364,7 @@ WriteDebug64 (
  
    Nb10 = (EFI_IMAGE_DEBUG_CODEVIEW_NB10_ENTRY*)(Dir + 1);
    Nb10->Signature = CODEVIEW_SIGNATURE_NB10;
@@ -153,7 +153,7 @@  index e5f282c4ac..27a34ef7c6 100755
                  if T.GenFileListMacro and T.FileListMacro not in self.FileListMacros:
                      self.FileListMacros[T.FileListMacro] = []
 diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
-index aa0b71632e..57c9cad117 100755
+index 764c51789b..40aadbcfbc 100755
 --- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
 +++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py
 @@ -1429,6 +1429,9 @@ class ModuleAutoGen(AutoGen):
@@ -175,3 +175,6 @@  index aa0b71632e..57c9cad117 100755
  
          # Ignore generating makefile when it is a binary module
          if self.IsBinaryModule:
+-- 
+2.47.3
+
diff --git a/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch b/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch
index 43c402b91a..650e084b5b 100644
--- a/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch
+++ b/meta/recipes-core/ovmf/ovmf/0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch
@@ -1,7 +1,7 @@ 
-From 7dcf5ed06b5a256436521f892d2579421c163902 Mon Sep 17 00:00:00 2001
+From 7e6be0f4068a2158af3c97e873edb33fa4d5c6b8 Mon Sep 17 00:00:00 2001
 From: Gerd Hoffmann <kraxel@redhat.com>
 Date: Mon, 3 Nov 2025 09:56:52 +0100
-Subject: [PATCH] UefiCpuPkg/CpuExceptionHandlerLib: fix push instructions
+Subject: [PATCH 5/5] UefiCpuPkg/CpuExceptionHandlerLib: fix push instructions
 
 Nasm 3.0 complains about 'dword' being invalid.  The comment talks about
 a '8-byte value' so 'qword' should be correct here.
@@ -41,3 +41,6 @@  index 3d64ac9080..671ed98f85 100644
  VectorNum:
      push    rax
  %ifdef NO_ABSOLUTE_RELOCS_IN_TEXT
+-- 
+2.47.3
+
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 6b42041ac7..ec6c3b516c 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -28,8 +28,8 @@  SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https;ta
            file://0005-UefiCpuPkg-CpuExceptionHandlerLib-fix-push-instructi.patch \
            "
 
-PV = "edk2-stable202508"
-SRCREV = "d46aa46c8361194521391aa581593e556c707c6e"
+PV = "edk2-stable202511"
+SRCREV = "46548b1adac82211d8d11da12dd914f41e7aa775"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
 
 CVE_PRODUCT = "edk2"
@@ -58,7 +58,7 @@  EDK_TOOLS_DIR = "edk2_basetools"
 BUILD_OPTIMIZATION = ""
 
 # OVMF supports IA only, although it could conceivably support ARM someday.
-COMPATIBLE_HOST:class-target = '(i.86|x86_64).*'
+COMPATIBLE_HOST:class-target = '(x86_64).*'
 
 # Additional build flags for OVMF with Secure Boot.
 # Fedora also uses "-D SMM_REQUIRE -D EXCLUDE_SHELL_FROM_FD".
@@ -178,9 +178,6 @@  do_compile:class-target() {
     export LFLAGS="${LDFLAGS}"
     PARALLEL_JOBS="${@oe.utils.parallel_make_argument(d, '-n %d')}"
     OVMF_ARCH="X64"
-    if [ "${TARGET_ARCH}" != "x86_64" ] ; then
-        OVMF_ARCH="IA32"
-    fi
 
     # The build for the target uses BaseTools/Conf/tools_def.template
     # from ovmf-native to find the compiler, which depends on
@@ -197,9 +194,6 @@  do_compile:class-target() {
     rm -rf ${WORKDIR}/ovmf
     mkdir ${WORKDIR}/ovmf
     OVMF_DIR_SUFFIX="X64"
-    if [ "${TARGET_ARCH}" != "x86_64" ] ; then
-        OVMF_DIR_SUFFIX="Ia32" # Note the different capitalization
-    fi
     FIXED_GCCVER=$(fixup_target_tools ${GCC_VER})
     bbnote FIXED_GCCVER is ${FIXED_GCCVER}
     build_dir="${S}/Build/Ovmf$OVMF_DIR_SUFFIX/${OVMF_BUILD_TYPE}_${FIXED_GCCVER}"
@@ -231,10 +225,10 @@  do_install:class-native() {
 
 do_install:class-target() {
     # Content for UEFI shell iso. We install the EFI shell as
-    # bootx64/ia32.efi because then it can be started even when the
+    # bootx64.efi because then it can be started even when the
     # firmware itself does not contain it.
     install -d ${D}/efi/boot
-    install ${WORKDIR}/ovmf/Shell.efi ${D}/efi/boot/boot${@ "ia32" if "${TARGET_ARCH}" != "x86_64" else "x64"}.efi
+    install ${WORKDIR}/ovmf/Shell.efi ${D}/efi/boot/bootx64.efi
     if ${@bb.utils.contains('PACKAGECONFIG', 'secureboot', 'true', 'false', d)}; then
         install ${WORKDIR}/ovmf/EnrollDefaultKeys.efi ${D}
     fi