On Fri, 2022-05-13 at 09:22 -0700, Khem Raj wrote:
> Host distros have started deploying gcc12 as well e.g. archlinux
> this build failure shows up which has been fixed upstream
> 
> In function ‘GetAlignmentFromFile’,
>     inlined from ‘main’ at GenFfs.c:816:20:
> GenFfs.c:545:5: error: pointer ‘InFileHandle’ used after ‘fclose’ 
> [-Werror=use-after-free]
>   545 |     Error(NULL, 0, 4001, "Resource", "memory cannot be allocated  of 
> %s", InFileHandle);
>       |     
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Signed-off-by: Khem Raj <[email protected]>
> ---
>  .../0001-BaseTools-fix-gcc12-warning-1.patch  | 51 +++++++++++++++++++
>  .../0001-BaseTools-fix-gcc12-warning.patch    | 49 ++++++++++++++++++
>  meta/recipes-core/ovmf/ovmf_git.bb            |  6 +++
>  3 files changed, 106 insertions(+)
>  create mode 100644 
> meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning-1.patch
>  create mode 100644 
> meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning.patch
> 
> diff --git 
> a/meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning-1.patch 
> b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning-1.patch
> new file mode 100644
> index 00000000000..23366b4d078
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning-1.patch
> @@ -0,0 +1,51 @@
> +From b0a0b7b605aeb8106e7b50d1efeb746f401498cc Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <[email protected]>
> +Date: Thu, 24 Mar 2022 20:04:35 +0800
> +Subject: [PATCH] BaseTools: fix gcc12 warning
> +
> +Sdk/C/LzmaEnc.c: In function ?LzmaEnc_CodeOneMemBlock?:
> +Sdk/C/LzmaEnc.c:2828:19: error: storing the address of local variable 
> ?outStream? in ?*p.rc.outStream? [-Werror=dangling-pointer=]
> + 2828 |   p->rc.outStream = &outStream.vt;
> +      |   ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> +Sdk/C/LzmaEnc.c:2811:28: note: ?outStream? declared here
> + 2811 |   CLzmaEnc_SeqOutStreamBuf outStream;
> +      |                            ^~~~~~~~~
> +Sdk/C/LzmaEnc.c:2811:28: note: ?pp? declared here
> +Sdk/C/LzmaEnc.c:2828:19: error: storing the address of local variable 
> ?outStream? in ?*(CLzmaEnc *)pp.rc.outStream? [-Werror=dangling-pointer=]
> + 2828 |   p->rc.outStream = &outStream.vt;
> +      |   ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
> +Sdk/C/LzmaEnc.c:2811:28: note: ?outStream? declared here
> + 2811 |   CLzmaEnc_SeqOutStreamBuf outStream;
> +      |                            ^~~~~~~~~
> +Sdk/C/LzmaEnc.c:2811:28: note: ?pp? declared here
> +cc1: all warnings being treated as errors
> +
> +Upstream-Status: Backport 
> [https://github.com/tianocore/edk2/commit/85021f8cf22d1bd4114803c6c610dea5ef0059f1]
> +Signed-off-by: Gerd Hoffmann <[email protected]>
> +Reviewed-by: Bob Feng <[email protected]>
> +---
> + BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c 
> b/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
> +index 4e9b499f8d..4b9f5fa692 100644
> +--- a/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
> ++++ b/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
> +@@ -2825,12 +2825,13 @@ SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, 
> BoolInt reInit,
> + 
> +   nowPos64 = p->nowPos64;
> +   RangeEnc_Init(&p->rc);
> +-  p->rc.outStream = &outStream.vt;
> + 
> +   if (desiredPackSize == 0)
> +     return SZ_ERROR_OUTPUT_EOF;
> + 
> ++  p->rc.outStream = &outStream.vt;
> +   res = LzmaEnc_CodeOneBlock(p, desiredPackSize, *unpackSize);
> ++  p->rc.outStream = NULL;
> + 
> +   *unpackSize = (UInt32)(p->nowPos64 - nowPos64);
> +   *destLen -= outStream.rem;
> +-- 
> +2.36.1
> +
> diff --git 
> a/meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning.patch 
> b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning.patch
> new file mode 100644
> index 00000000000..91c01647db2
> --- /dev/null
> +++ b/meta/recipes-core/ovmf/ovmf/0001-BaseTools-fix-gcc12-warning.patch
> @@ -0,0 +1,49 @@
> +From 2435c17e56652479315853cec5b91fb0ea0911a3 Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <[email protected]>
> +Date: Thu, 24 Mar 2022 20:04:34 +0800
> +Subject: [PATCH] BaseTools: fix gcc12 warning
> +
> +GenFfs.c:545:5: error: pointer ?InFileHandle? used after ?fclose? 
> [-Werror=use-after-free]
> +  545 |     Error(NULL, 0, 4001, "Resource", "memory cannot be allocated  of 
> %s", InFileHandle);
> +      |     
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +GenFfs.c:544:5: note: call to ?fclose? here
> +  544 |     fclose (InFileHandle);
> +      |     ^~~~~~~~~~~~~~~~~~~~~
> +
> +Upstream-Status: Backport 
> [https://github.com/tianocore/edk2/commit/7b005f344e533cd913c3ca05b266f9872df886d1]
> +Signed-off-by: Gerd Hoffmann <[email protected]>
> +Reviewed-by: Bob Feng <[email protected]>
> +---
> + BaseTools/Source/C/GenFfs/GenFfs.c | 2 +-
> + BaseTools/Source/C/GenSec/GenSec.c | 2 +-
> + 2 files changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/BaseTools/Source/C/GenFfs/GenFfs.c 
> b/BaseTools/Source/C/GenFfs/GenFfs.c
> +index 949025c333..d78d62ab36 100644
> +--- a/BaseTools/Source/C/GenFfs/GenFfs.c
> ++++ b/BaseTools/Source/C/GenFfs/GenFfs.c
> +@@ -542,7 +542,7 @@ GetAlignmentFromFile(char *InFile, UINT32 *Alignment)
> +   PeFileBuffer = (UINT8 *) malloc (PeFileSize);
> +   if (PeFileBuffer == NULL) {
> +     fclose (InFileHandle);
> +-    Error(NULL, 0, 4001, "Resource", "memory cannot be allocated  of %s", 
> InFileHandle);
> ++    Error(NULL, 0, 4001, "Resource", "memory cannot be allocated for %s", 
> InFile);
> +     return EFI_OUT_OF_RESOURCES;
> +   }
> +   fread (PeFileBuffer, sizeof (UINT8), PeFileSize, InFileHandle);
> +diff --git a/BaseTools/Source/C/GenSec/GenSec.c 
> b/BaseTools/Source/C/GenSec/GenSec.c
> +index d54a4f9e0a..b1d05367ec 100644
> +--- a/BaseTools/Source/C/GenSec/GenSec.c
> ++++ b/BaseTools/Source/C/GenSec/GenSec.c
> +@@ -1062,7 +1062,7 @@ GetAlignmentFromFile(char *InFile, UINT32 *Alignment)
> +   PeFileBuffer = (UINT8 *) malloc (PeFileSize);
> +   if (PeFileBuffer == NULL) {
> +     fclose (InFileHandle);
> +-    Error(NULL, 0, 4001, "Resource", "memory cannot be allocated  of %s", 
> InFileHandle);
> ++    Error(NULL, 0, 4001, "Resource", "memory cannot be allocated for %s", 
> InFile);
> +     return EFI_OUT_OF_RESOURCES;
> +   }
> +   fread (PeFileBuffer, sizeof (UINT8), PeFileSize, InFileHandle);
> +-- 
> +2.36.1
> +
> diff --git a/meta/recipes-core/ovmf/ovmf_git.bb 
> b/meta/recipes-core/ovmf/ovmf_git.bb
> index b15d40eac83..84e3360a3af 100644
> --- a/meta/recipes-core/ovmf/ovmf_git.bb
> +++ b/meta/recipes-core/ovmf/ovmf_git.bb
> @@ -15,12 +15,18 @@ PACKAGECONFIG += 
> "${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm', '', d)
>  PACKAGECONFIG[secureboot] = ",,,"
>  PACKAGECONFIG[tpm] = "-D TPM_ENABLE=TRUE,-D TPM_ENABLE=FALSE,,"
>  
> +# GCC12 trips on it
> +#see 
> https://src.fedoraproject.org/rpms/edk2/blob/rawhide/f/0032-Basetools-turn-off-gcc12-warning.patch
> +BUILD_CFLAGS += "-Wno-error=stringop-overflow"
> +
>  SRC_URI = 
> "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
>             file://0001-ovmf-update-path-to-native-BaseTools.patch \
>             
> file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
>             file://0003-ovmf-Update-to-latest.patch \
>             file://0005-debug-prefix-map.patch \
>             file://0006-reproducible.patch \
> +           file://0001-BaseTools-fix-gcc12-warning.patch \
> +           file://0001-BaseTools-fix-gcc12-warning-1.patch \
>             "
>  
>  PV = "edk2-stable202202"

I think this may cause the efi failures in:

https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/3583/steps/14/logs/stdio

(and all the other similar oe-selftest runs)

Cheers,

Richard

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165590): 
https://lists.openembedded.org/g/openembedded-core/message/165590
Mute This Topic: https://lists.openembedded.org/mt/91084527/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to