diff mbox series

ovmf: Don't define bool type if building in C23 mode

Message ID 20250801102912.3219302-1-mingli.yu@eng.windriver.com
State Accepted, archived
Commit 24600013b65c954bd704a6eb673197ac06b87f69
Headers show
Series ovmf: Don't define bool type if building in C23 mode | expand

Commit Message

mingli.yu@eng.windriver.com Aug. 1, 2025, 10:29 a.m. UTC
From: Mingli Yu <mingli.yu@windriver.com>

Backport a patch [1] to fix the below build failure:
 /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:17: error: two or more data types in declaration specifiers
 13 | typedef BOOLEAN bool;
 | ^~~~
  /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:1: error: useless type name in empty declaration [-Werror]
  13 | typedef BOOLEAN bool;

[1] https://github.com/tianocore/edk2/commit/772fa11ac82579a8f6fa171e6b835f68af3f64be

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
 ...t-define-bool-type-if-building-in-C2.patch | 35 +++++++++++++++++++
 meta/recipes-core/ovmf/ovmf_git.bb            |  1 +
 2 files changed, 36 insertions(+)
 create mode 100644 meta/recipes-core/ovmf/ovmf/0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch

Comments

Mathieu Dubois-Briand Aug. 4, 2025, 8:26 a.m. UTC | #1
On Fri Aug 1, 2025 at 12:29 PM CEST, Mingli via lists.openembedded.org Yu wrote:
> From: Mingli Yu <mingli.yu@windriver.com>
>
> Backport a patch [1] to fix the below build failure:
>  /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:17: error: two or more data types in declaration specifiers
>  13 | typedef BOOLEAN bool;
>  | ^~~~
>   /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:1: error: useless type name in empty declaration [-Werror]
>   13 | typedef BOOLEAN bool;
>
> [1] https://github.com/tianocore/edk2/commit/772fa11ac82579a8f6fa171e6b835f68af3f64be
>
> Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> ---

Hi,

Thanks for the patch, but it looks like the embedded patch does not
apply cleanly:

ERROR: ovmf-native-edk2-stable202502-r0 do_patch: Applying patch '0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch' on target directory '/srv/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/x86_64-linux/ovmf-native/edk2-stable202502/sources/ovmf-edk2-stable202502'
CmdError('quilt --quiltrc /srv/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/x86_64-linux/ovmf-native/edk2-stable202502/recipe-sysroot-native/etc/quiltrc push', 0, 'stdout: Applying patch 0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch
patching file SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
Hunk #1 FAILED at 10 (different line endings).
1 out of 1 hunk FAILED -- rejects in file SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
Patch 0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch does not apply (enforce with -f)

https://autobuilder.yoctoproject.org/valkyrie/#/builders/17/builds/1998

Can you have a look at this issue please?
Mikko Rapeli Aug. 4, 2025, 9:14 a.m. UTC | #2
Hi,

On Mon, Aug 04, 2025 at 10:26:23AM +0200, Mathieu Dubois-Briand via lists.openembedded.org wrote:
> On Fri Aug 1, 2025 at 12:29 PM CEST, Mingli via lists.openembedded.org Yu wrote:
> > From: Mingli Yu <mingli.yu@windriver.com>
> >
> > Backport a patch [1] to fix the below build failure:
> >  /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:17: error: two or more data types in declaration specifiers
> >  13 | typedef BOOLEAN bool;
> >  | ^~~~
> >   /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:1: error: useless type name in empty declaration [-Werror]
> >   13 | typedef BOOLEAN bool;
> >
> > [1] https://github.com/tianocore/edk2/commit/772fa11ac82579a8f6fa171e6b835f68af3f64be
> >
> > Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
> > ---
> 
> Hi,
> 
> Thanks for the patch, but it looks like the embedded patch does not
> apply cleanly:
> 
> ERROR: ovmf-native-edk2-stable202502-r0 do_patch: Applying patch '0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch' on target directory '/srv/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/x86_64-linux/ovmf-native/edk2-stable202502/sources/ovmf-edk2-stable202502'
> CmdError('quilt --quiltrc /srv/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/x86_64-linux/ovmf-native/edk2-stable202502/recipe-sysroot-native/etc/quiltrc push', 0, 'stdout: Applying patch 0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch
> patching file SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
> Hunk #1 FAILED at 10 (different line endings).
> 1 out of 1 hunk FAILED -- rejects in file SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
> Patch 0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch does not apply (enforce with -f)
> 
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/17/builds/1998
> 
> Can you have a look at this issue please?

ovmf and edk2 are notorious for using Windows newlines so patches over
mailing lists may break when applying. I suggest using git to pull the
changes or manually applying simple changes.

Cheers,

-Mikko
Mathieu Dubois-Briand Aug. 4, 2025, 11:16 a.m. UTC | #3
On Mon Aug 4, 2025 at 11:14 AM CEST, Mikko Rapeli wrote:
> Hi,
>
> On Mon, Aug 04, 2025 at 10:26:23AM +0200, Mathieu Dubois-Briand via lists.openembedded.org wrote:
>> On Fri Aug 1, 2025 at 12:29 PM CEST, Mingli via lists.openembedded.org Yu wrote:
>> > From: Mingli Yu <mingli.yu@windriver.com>
>> >
>> > Backport a patch [1] to fix the below build failure:
>> >  /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:17: error: two or more data types in declaration specifiers
>> >  13 | typedef BOOLEAN bool;
>> >  | ^~~~
>> >   /buildarea/tmp/work/corei7-64-wrs-linux/ovmf/edk2-stable202502/sources/ovmf-edk2-stable202502/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h:13:1: error: useless type name in empty declaration [-Werror]
>> >   13 | typedef BOOLEAN bool;
>> >
>> > [1] https://github.com/tianocore/edk2/commit/772fa11ac82579a8f6fa171e6b835f68af3f64be
>> >
>> > Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
>> > ---
>> 
>> Hi,
>> 
>> Thanks for the patch, but it looks like the embedded patch does not
>> apply cleanly:
>> 
>> ERROR: ovmf-native-edk2-stable202502-r0 do_patch: Applying patch '0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch' on target directory '/srv/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/x86_64-linux/ovmf-native/edk2-stable202502/sources/ovmf-edk2-stable202502'
>> CmdError('quilt --quiltrc /srv/pokybuild/yocto-worker/qemux86-world-alt/build/build/tmp/work/x86_64-linux/ovmf-native/edk2-stable202502/recipe-sysroot-native/etc/quiltrc push', 0, 'stdout: Applying patch 0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch
>> patching file SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
>> Hunk #1 FAILED at 10 (different line endings).
>> 1 out of 1 hunk FAILED -- rejects in file SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
>> Patch 0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch does not apply (enforce with -f)
>> 
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/17/builds/1998
>> 
>> Can you have a look at this issue please?
>
> ovmf and edk2 are notorious for using Windows newlines so patches over
> mailing lists may break when applying. I suggest using git to pull the
> changes or manually applying simple changes.
>
> Cheers,
>
> -Mikko

Makes sense. I believe I managed to fix the new line issues, so the
patch is back in testing queue.
Alexander Kanavin Aug. 7, 2025, 10:01 a.m. UTC | #4
On Fri, 1 Aug 2025 at 12:29, Yu, Mingli via lists.openembedded.org
<mingli.yu=eng.windriver.com@lists.openembedded.org> wrote:
> +Upstream-Status: Backport [https://github.com/tianocore/edk2/commit/772fa11ac82579a8f6fa171e6b835f68af3f64be]
> +           file://0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch \
>  PV = "edk2-stable202502"

There's already a newer 202505 version (and 202508 will come out
soon). Can you work on the version update please? Yocto master can
take backports up to a point, but not for much longer.

Alex
diff mbox series

Patch

diff --git a/meta/recipes-core/ovmf/ovmf/0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch b/meta/recipes-core/ovmf/ovmf/0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch
new file mode 100644
index 00000000000..a555070ca59
--- /dev/null
+++ b/meta/recipes-core/ovmf/ovmf/0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch
@@ -0,0 +1,35 @@ 
+From 772fa11ac82579a8f6fa171e6b835f68af3f64be Mon Sep 17 00:00:00 2001
+From: Rebecca Cran <rebecca@bsdio.com>
+Date: Mon, 26 May 2025 08:01:39 -0600
+Subject: [PATCH] SecurityPkg: Don't define bool type if building in C23 mode
+
+In C23 bool is a built-in type, so it's not necessary to typedef
+bool in LibspdmStdBoolAlt.h.
+
+Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
+
+Upstream-Status: Backport [https://github.com/tianocore/edk2/commit/772fa11ac82579a8f6fa171e6b835f68af3f64be]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ .../DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h     | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h b/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
+index 08af7296d0..395ef22d43 100644
+--- a/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
++++ b/SecurityPkg/DeviceSecurity/SpdmLib/Include/hal/LibspdmStdBoolAlt.h
+@@ -10,7 +10,10 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
+ #ifndef LIBSPDM_STDBOOL_ALT_H
+ #define LIBSPDM_STDBOOL_ALT_H
+ 
++// In C23, bool is a built-in type
++#if __STDC_VERSION__ < 202311L
+ typedef BOOLEAN bool;
++#endif
+ 
+ #ifndef true
+ #define true  TRUE
+-- 
+2.34.1
+
diff --git a/meta/recipes-core/ovmf/ovmf_git.bb b/meta/recipes-core/ovmf/ovmf_git.bb
index 08879966c34..a8efcc2a462 100644
--- a/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/meta/recipes-core/ovmf/ovmf_git.bb
@@ -30,6 +30,7 @@  SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
            file://CVE-2024-38797-2.patch \
            file://CVE-2024-38797-3.patch \
            file://CVE-2024-38797-4.patch \
+           file://0001-SecurityPkg-Don-t-define-bool-type-if-building-in-C2.patch \
            "
 
 PV = "edk2-stable202502"