diff mbox series

[scarthgap,37/66] ovmf: backport a fix for build with gcc-16

Message ID 7de54889b3547a94bc7c6015731ec1c099e4d629.1777064068.git.yoann.congal@smile.fr
State RFC, archived
Delegated to: Yoann Congal
Headers show
Series [scarthgap,01/66] spdx30_tasks: fix condition in create_spdx | expand

Commit Message

Yoann Congal April 24, 2026, 8:55 p.m. UTC
From: Martin Jansa <martin.jansa@gmail.com>

Fixes build on host with gcc-16:

StringFuncs.c: In function ‘SplitStringByWhitespace’:
StringFuncs.c:113:15: error: variable ‘Item’ set but not used [-Werror=unused-but-set-variable=]
  113 |   UINTN       Item;
      |               ^~~~

and

EfiRom.c: In function ‘main’:
EfiRom.c:78:17: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
   78 |       if ((Ptr0 = strstr ((CONST CHAR8 *) mOptions.FileList->FileName, DEFAULT_OUTPUT_EXTENSION)) != NULL) {
      |                 ^

and one more for older version used in scarthgap

main.c: In function ‘ProcessArgs’:
main.c:163:42: error: too many arguments to function ‘p->process’; expected 0, have 2
  163 |                                         (*p->process)( *argv, *(argv+1) );
      |                                         ~^~~~~~~~~~~~  ~~~~~
main.c:120:34: note: declared here
  120 |                         WildFunc process;
      |                                  ^~~~~~~
main.c:168:42: error: too many arguments to function ‘p->process’; expected 0, have 1
  168 |                                         (*p->process)( *argv );
      |                                         ~^~~~~~~~~~~~  ~~~~~
main.c:120:34: note: declared here
  120 |                         WildFunc process;
      |                                  ^~~~~~~

Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
[YC: upstream commit a1db482ecd2824a4ae67a3c2a8e607b607ab4a43]
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
---
 ...Tools-StringFuncs-fix-gcc-16-warning.patch | 42 ++++++++++++++++++
 ...aseTools-EfiRom-fix-compiler-warning.patch | 44 +++++++++++++++++++
 .../0008-BaseTools-Pccts-set-C-standard.patch | 44 +++++++++++++++++++
 meta/recipes-core/ovmf/ovmf_git.bb            |  3 ++
 4 files changed, 133 insertions(+)
 create mode 100644 meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch
 create mode 100644 meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch

Comments

Yoann Congal April 24, 2026, 9:15 p.m. UTC | #1
On Fri Apr 24, 2026 at 10:55 PM CEST, Yoann Congal wrote:
> From: Martin Jansa <martin.jansa@gmail.com>
>
> Fixes build on host with gcc-16:
>
> StringFuncs.c: In function ‘SplitStringByWhitespace’:
> StringFuncs.c:113:15: error: variable ‘Item’ set but not used [-Werror=unused-but-set-variable=]
>   113 |   UINTN       Item;
>       |               ^~~~
>
> and
>
> EfiRom.c: In function ‘main’:
> EfiRom.c:78:17: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
>    78 |       if ((Ptr0 = strstr ((CONST CHAR8 *) mOptions.FileList->FileName, DEFAULT_OUTPUT_EXTENSION)) != NULL) {
>       |                 ^
>
> and one more for older version used in scarthgap
>
> main.c: In function ‘ProcessArgs’:
> main.c:163:42: error: too many arguments to function ‘p->process’; expected 0, have 2
>   163 |                                         (*p->process)( *argv, *(argv+1) );
>       |                                         ~^~~~~~~~~~~~  ~~~~~
> main.c:120:34: note: declared here
>   120 |                         WildFunc process;
>       |                                  ^~~~~~~
> main.c:168:42: error: too many arguments to function ‘p->process’; expected 0, have 1
>   168 |                                         (*p->process)( *argv );
>       |                                         ~^~~~~~~~~~~~  ~~~~~
> main.c:120:34: note: declared here
>   120 |                         WildFunc process;
>       |                                  ^~~~~~~
>
> Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> [YC: upstream commit a1db482ecd2824a4ae67a3c2a8e607b607ab4a43]
> Signed-off-by: Yoann Congal <yoann.congal@smile.fr>

This patch contains weird line endings and might fail to apply when
using mails.

You will find it on my branch here:
ovmf: backport a fix for build with gcc-16 - openembedded-core-contrib - OpenEmbedded Core user contribution trees
https://git.openembedded.org/openembedded-core-contrib/commit/?h=stable/scarthgap-nut&id=7de54889b3547a94bc7c6015731ec1c099e4d629

Regards,

> ---
>  ...Tools-StringFuncs-fix-gcc-16-warning.patch | 42 ++++++++++++++++++
>  ...aseTools-EfiRom-fix-compiler-warning.patch | 44 +++++++++++++++++++
>  .../0008-BaseTools-Pccts-set-C-standard.patch | 44 +++++++++++++++++++
>  meta/recipes-core/ovmf/ovmf_git.bb            |  3 ++
>  4 files changed, 133 insertions(+)
>  create mode 100644 meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch
>  create mode 100644 meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch
>  create mode 100644 meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch
>
> diff --git a/meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch b/meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch
> new file mode 100644
> index 00000000000..a465dede9c3
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch
> @@ -0,0 +1,42 @@
> +From 015c26aea52a54e96319887ea542870b4804fb91 Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <kraxel@redhat.com>
> +Date: Thu, 29 Jan 2026 09:23:32 +0100
> +Subject: [PATCH] BaseTools/StringFuncs: fix gcc 16 warning
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +StringFuncs.c: In function ‘SplitStringByWhitespace’:
> +StringFuncs.c:113:15: error: variable ‘Item’ set but not used [-Werror=unused-but-set-variable=]
> +  113 |   UINTN       Item;
> +      |               ^~~~
> +
> +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> +
> +Upstream-Status: Backport [edk2-stable202602 https://github.com/tianocore/edk2/commit/3597306191297b504683b83fe7750e49c6a2e836]
> +Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> +---
> + BaseTools/Source/C/Common/StringFuncs.c | 3 +--
> + 1 file changed, 1 insertion(+), 2 deletions(-)
> +
> +diff --git a/BaseTools/Source/C/Common/StringFuncs.c b/BaseTools/Source/C/Common/StringFuncs.c
> +index 53e44365e9..df02d9c808 100644
> +--- a/BaseTools/Source/C/Common/StringFuncs.c
> ++++ b/BaseTools/Source/C/Common/StringFuncs.c
> +@@ -110,7 +110,6 @@ SplitStringByWhitespace (
> +   CHAR8       *EndOfSubString;
> +   CHAR8       *EndOfString;
> +   STRING_LIST *Output;
> +-  UINTN       Item;
> + 
> +   String = CloneString (String);
> +   if (String == NULL) {
> +@@ -120,7 +119,7 @@ SplitStringByWhitespace (
> + 
> +   Output = NewStringList ();
> + 
> +-  for (Pos = String, Item = 0; Pos < EndOfString; Item++) {
> ++  for (Pos = String; Pos < EndOfString;) {
> +     while (isspace ((int)*Pos)) {
> +       Pos++;
> +     }
> diff --git a/meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch b/meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch
> new file mode 100644
> index 00000000000..7aaafe6efbf
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch
> @@ -0,0 +1,44 @@
> +From 4d2bdadcd6d45f6708b1b4827b0dc9b6e4b8edd2 Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <kraxel@redhat.com>
> +Date: Mon, 8 Dec 2025 10:28:50 +0100
> +Subject: [PATCH] BaseTools/EfiRom: fix compiler warning
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +New warning after updating gcc:
> +
> +EfiRom.c: In function ‘main’:
> +EfiRom.c:78:17: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
> +
> +The assigned value is not used, so fix the warning by just removing it.
> +
> +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> +
> +Upstream-Status: Backport [edk2-stable202602 https://github.com/tianocore/edk2/commit/9af06ef3cbb052b142f9660c2c01e7aeb401300c]
> +Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> +---
> + BaseTools/Source/C/EfiRom/EfiRom.c | 3 +--
> + 1 file changed, 1 insertion(+), 2 deletions(-)
> +
> +diff --git a/BaseTools/Source/C/EfiRom/EfiRom.c b/BaseTools/Source/C/EfiRom/EfiRom.c
> +index fa7bf0e62e..6e903b3504 100644
> +--- a/BaseTools/Source/C/EfiRom/EfiRom.c
> ++++ b/BaseTools/Source/C/EfiRom/EfiRom.c
> +@@ -44,7 +44,6 @@ Returns:
> +   FILE_LIST *FList;
> +   UINT32    TotalSize;
> +   UINT32    Size;
> +-  CHAR8     *Ptr0;
> + 
> +   SetUtilityName(UTILITY_NAME);
> + 
> +@@ -75,7 +74,7 @@ Returns:
> +   //
> +   if (mOptions.DumpOption == 1) {
> +     if (mOptions.FileList != NULL) {
> +-      if ((Ptr0 = strstr ((CONST CHAR8 *) mOptions.FileList->FileName, DEFAULT_OUTPUT_EXTENSION)) != NULL) {
> ++      if (strstr ((CONST CHAR8 *) mOptions.FileList->FileName, DEFAULT_OUTPUT_EXTENSION) != NULL) {
> +         DumpImage (mOptions.FileList);
> +         goto BailOut;
> +       } else {
> diff --git a/meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch b/meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch
> new file mode 100644
> index 00000000000..de4ccb8a47d
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch
> @@ -0,0 +1,44 @@
> +From 74bc6545e72707a47dd9dae42ce33b8877b10000 Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <kraxel@redhat.com>
> +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 <kraxel@redhat.com>
> +
> +Upstream-Status: Backport [edk2-stable202502 https://github.com/tianocore/edk2/commit/e063f8b8a53861043b9872cc35b08a3dc03b0942]
> +Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
> +---
> + 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
> diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
> index 319f03a8d2a..badde30d97e 100644
> --- a/meta/recipes-core/ovmf/ovmf_git.bb
> +++ b/meta/recipes-core/ovmf/ovmf_git.bb
> @@ -26,6 +26,9 @@ SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
>             file://0004-reproducible.patch \
>             file://0001-MdePkg-Fix-overflow-issue-in-BasePeCoffLib.patch \
>             file://0001-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch \
> +           file://0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch \
> +           file://0007-BaseTools-EfiRom-fix-compiler-warning.patch \
> +           file://0008-BaseTools-Pccts-set-C-standard.patch \
>             "
>  
>  PV = "edk2-stable202402"
diff mbox series

Patch

diff --git a/meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch b/meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch
new file mode 100644
index 00000000000..a465dede9c3
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch
@@ -0,0 +1,42 @@ 
+From 015c26aea52a54e96319887ea542870b4804fb91 Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel@redhat.com>
+Date: Thu, 29 Jan 2026 09:23:32 +0100
+Subject: [PATCH] BaseTools/StringFuncs: fix gcc 16 warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+StringFuncs.c: In function ‘SplitStringByWhitespace’:
+StringFuncs.c:113:15: error: variable ‘Item’ set but not used [-Werror=unused-but-set-variable=]
+  113 |   UINTN       Item;
+      |               ^~~~
+
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+
+Upstream-Status: Backport [edk2-stable202602 https://github.com/tianocore/edk2/commit/3597306191297b504683b83fe7750e49c6a2e836]
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ BaseTools/Source/C/Common/StringFuncs.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/BaseTools/Source/C/Common/StringFuncs.c b/BaseTools/Source/C/Common/StringFuncs.c
+index 53e44365e9..df02d9c808 100644
+--- a/BaseTools/Source/C/Common/StringFuncs.c
++++ b/BaseTools/Source/C/Common/StringFuncs.c
+@@ -110,7 +110,6 @@ SplitStringByWhitespace (
+   CHAR8       *EndOfSubString;
+   CHAR8       *EndOfString;
+   STRING_LIST *Output;
+-  UINTN       Item;
+ 
+   String = CloneString (String);
+   if (String == NULL) {
+@@ -120,7 +119,7 @@ SplitStringByWhitespace (
+ 
+   Output = NewStringList ();
+ 
+-  for (Pos = String, Item = 0; Pos < EndOfString; Item++) {
++  for (Pos = String; Pos < EndOfString;) {
+     while (isspace ((int)*Pos)) {
+       Pos++;
+     }
diff --git a/meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch b/meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch
new file mode 100644
index 00000000000..7aaafe6efbf
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0007-BaseTools-EfiRom-fix-compiler-warning.patch
@@ -0,0 +1,44 @@ 
+From 4d2bdadcd6d45f6708b1b4827b0dc9b6e4b8edd2 Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel@redhat.com>
+Date: Mon, 8 Dec 2025 10:28:50 +0100
+Subject: [PATCH] BaseTools/EfiRom: fix compiler warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+New warning after updating gcc:
+
+EfiRom.c: In function ‘main’:
+EfiRom.c:78:17: error: assignment discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers]
+
+The assigned value is not used, so fix the warning by just removing it.
+
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+
+Upstream-Status: Backport [edk2-stable202602 https://github.com/tianocore/edk2/commit/9af06ef3cbb052b142f9660c2c01e7aeb401300c]
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ BaseTools/Source/C/EfiRom/EfiRom.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/BaseTools/Source/C/EfiRom/EfiRom.c b/BaseTools/Source/C/EfiRom/EfiRom.c
+index fa7bf0e62e..6e903b3504 100644
+--- a/BaseTools/Source/C/EfiRom/EfiRom.c
++++ b/BaseTools/Source/C/EfiRom/EfiRom.c
+@@ -44,7 +44,6 @@ Returns:
+   FILE_LIST *FList;
+   UINT32    TotalSize;
+   UINT32    Size;
+-  CHAR8     *Ptr0;
+ 
+   SetUtilityName(UTILITY_NAME);
+ 
+@@ -75,7 +74,7 @@ Returns:
+   //
+   if (mOptions.DumpOption == 1) {
+     if (mOptions.FileList != NULL) {
+-      if ((Ptr0 = strstr ((CONST CHAR8 *) mOptions.FileList->FileName, DEFAULT_OUTPUT_EXTENSION)) != NULL) {
++      if (strstr ((CONST CHAR8 *) mOptions.FileList->FileName, DEFAULT_OUTPUT_EXTENSION) != NULL) {
+         DumpImage (mOptions.FileList);
+         goto BailOut;
+       } else {
diff --git a/meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch b/meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch
new file mode 100644
index 00000000000..de4ccb8a47d
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0008-BaseTools-Pccts-set-C-standard.patch
@@ -0,0 +1,44 @@ 
+From 74bc6545e72707a47dd9dae42ce33b8877b10000 Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel@redhat.com>
+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 <kraxel@redhat.com>
+
+Upstream-Status: Backport [edk2-stable202502 https://github.com/tianocore/edk2/commit/e063f8b8a53861043b9872cc35b08a3dc03b0942]
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+---
+ 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
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 319f03a8d2a..badde30d97e 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -26,6 +26,9 @@  SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
            file://0004-reproducible.patch \
            file://0001-MdePkg-Fix-overflow-issue-in-BasePeCoffLib.patch \
            file://0001-MdeModulePkg-Potential-UINT32-overflow-in-S3-ResumeC.patch \
+           file://0006-BaseTools-StringFuncs-fix-gcc-16-warning.patch \
+           file://0007-BaseTools-EfiRom-fix-compiler-warning.patch \
+           file://0008-BaseTools-Pccts-set-C-standard.patch \
            "
 
 PV = "edk2-stable202402"