All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jon Mason <jdmason@kudzu.us>
To: Maciej Borzecki <maciek@thing.com>
Cc: meta-arm@lists.yoctoproject.org, Ross Burton <Ross.Burton@arm.com>
Subject: Re: [PATCH v2] arm/edk2-firmware: cherry pick gcc 12.x compatibility patches
Date: Fri, 29 Jul 2022 13:52:35 -0400	[thread overview]
Message-ID: <YuQeY0ZhY7c7eG7A@kudzu.us> (raw)
In-Reply-To: <0a972044b11f7e469f122f3dc7b6778145b60133.1659090751.git.maciek@thing.com>

On Fri, Jul 29, 2022 at 12:34:46PM +0200, Maciej Borzecki wrote:
> Cherry pick gcc 12.x compatibility patches from the upstream.
> 
> Signed-off-by: Maciej Borzecki <maciek@thing.com>
> ---
>  meta-arm/recipes-bsp/uefi/edk2-firmware.inc   |  3 ++
>  ...001-Basetools-turn-off-gcc12-warning.patch | 39 +++++++++++++++
>  .../0002-BaseTools-fix-gcc12-warning.patch    | 49 +++++++++++++++++++
>  .../0003-BaseTools-fix-gcc12-warning.patch    | 47 ++++++++++++++++++
>  4 files changed, 138 insertions(+)
>  create mode 100644 meta-arm/recipes-bsp/uefi/files/0001-Basetools-turn-off-gcc12-warning.patch
>  create mode 100644 meta-arm/recipes-bsp/uefi/files/0002-BaseTools-fix-gcc12-warning.patch
>  create mode 100644 meta-arm/recipes-bsp/uefi/files/0003-BaseTools-fix-gcc12-warning.patch
> 
> diff --git a/meta-arm/recipes-bsp/uefi/edk2-firmware.inc b/meta-arm/recipes-bsp/uefi/edk2-firmware.inc
> index e0dfa28b22fca06807cbdc5034618ede3c53a8f2..2219cae76ee79ee23b75b225dd489413f03ed224 100644
> --- a/meta-arm/recipes-bsp/uefi/edk2-firmware.inc
> +++ b/meta-arm/recipes-bsp/uefi/edk2-firmware.inc
> @@ -19,6 +19,9 @@ SRC_URI = "\
>      ${EDK2_PLATFORMS_SRC_URI};name=edk2-platforms;destsuffix=edk2/edk2-platforms;nobranch=1 \
>      file://unaligned.patch \
>      file://default.patch;patchdir=edk2-platforms \
> +    file://0001-Basetools-turn-off-gcc12-warning.patch \
> +    file://0002-BaseTools-fix-gcc12-warning.patch \
> +    file://0003-BaseTools-fix-gcc12-warning.patch \

All 3 of these patches are in the version of edk2 that the master
branch is using.  Was your intention to send these for the kirkstone
branch?  If so, it does not apply cleanly.

Thanks,
Jon

>  "
>  
>  SRCREV_FORMAT         = "edk2_edk2-platforms"
> diff --git a/meta-arm/recipes-bsp/uefi/files/0001-Basetools-turn-off-gcc12-warning.patch b/meta-arm/recipes-bsp/uefi/files/0001-Basetools-turn-off-gcc12-warning.patch
> new file mode 100644
> index 0000000000000000000000000000000000000000..1a530f3d076b0802daaa3b8512226e44352c9ceb
> --- /dev/null
> +++ b/meta-arm/recipes-bsp/uefi/files/0001-Basetools-turn-off-gcc12-warning.patch
> @@ -0,0 +1,39 @@
> +From 22130dcd98b4d4b76ac8d922adb4a2dbc86fa52c Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <kraxel@redhat.com>
> +Date: Thu, 24 Mar 2022 20:04:36 +0800
> +Subject: [PATCH] Basetools: turn off gcc12 warning
> +
> +In function ?SetDevicePathEndNode?,
> +    inlined from ?FileDevicePath? at DevicePathUtilities.c:857:5:
> +DevicePathUtilities.c:321:3: error: writing 4 bytes into a region of size 1 [-Werror=stringop-overflow=]
> +  321 |   memcpy (Node, &mUefiDevicePathLibEndDevicePath, sizeof (mUefiDevicePathLibEndDevicePath));
> +      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +In file included from UefiDevicePathLib.h:22,
> +                 from DevicePathUtilities.c:16:
> +../Include/Protocol/DevicePath.h: In function ?FileDevicePath?:
> +../Include/Protocol/DevicePath.h:51:9: note: destination object ?Type? of size 1
> +   51 |   UINT8 Type;       ///< 0x01 Hardware Device Path.
> +      |         ^~~~
> +
> +Upstream-Status: Backport
> +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> +Reviewed-by: Bob Feng <bob.c.feng@intel.com>
> +Signed-off-by: Maciej Borzecki <maciek@thing.com>
> +---
> + BaseTools/Source/C/DevicePath/GNUmakefile | 3 +++
> + 1 file changed, 3 insertions(+)
> +
> +diff --git a/BaseTools/Source/C/DevicePath/GNUmakefile b/BaseTools/Source/C/DevicePath/GNUmakefile
> +index 7ca08af9662d..b05d2bddfa68 100644
> +--- a/BaseTools/Source/C/DevicePath/GNUmakefile
> ++++ b/BaseTools/Source/C/DevicePath/GNUmakefile
> +@@ -13,6 +13,9 @@ OBJECTS = DevicePath.o UefiDevicePathLib.o DevicePathFromText.o  DevicePathUtili
> + 
> + include $(MAKEROOT)/Makefiles/app.makefile
> + 
> ++# gcc 12 trips over device path handling
> ++BUILD_CFLAGS += -Wno-error=stringop-overflow
> ++
> + LIBS = -lCommon
> + ifeq ($(CYGWIN), CYGWIN)
> +   LIBS += -L/lib/e2fsprogs -luuid
> diff --git a/meta-arm/recipes-bsp/uefi/files/0002-BaseTools-fix-gcc12-warning.patch b/meta-arm/recipes-bsp/uefi/files/0002-BaseTools-fix-gcc12-warning.patch
> new file mode 100644
> index 0000000000000000000000000000000000000000..8a095a0c2ea5e59f01360fa26414042f84f0445f
> --- /dev/null
> +++ b/meta-arm/recipes-bsp/uefi/files/0002-BaseTools-fix-gcc12-warning.patch
> @@ -0,0 +1,49 @@
> +From 85021f8cf22d1bd4114803c6c610dea5ef0059f1 Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <kraxel@redhat.com>
> +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
> +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> +Reviewed-by: Bob Feng <bob.c.feng@intel.com>
> +Signed-off-by: Maciej Borzecki <maciek@thing.com>
> +---
> + 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 4e9b499f8d80..4b9f5fa69248 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;
> diff --git a/meta-arm/recipes-bsp/uefi/files/0003-BaseTools-fix-gcc12-warning.patch b/meta-arm/recipes-bsp/uefi/files/0003-BaseTools-fix-gcc12-warning.patch
> new file mode 100644
> index 0000000000000000000000000000000000000000..a9f1ccf2152a00094fe99fd01bcfd885d3ca6ba9
> --- /dev/null
> +++ b/meta-arm/recipes-bsp/uefi/files/0003-BaseTools-fix-gcc12-warning.patch
> @@ -0,0 +1,47 @@
> +From 7b005f344e533cd913c3ca05b266f9872df886d1 Mon Sep 17 00:00:00 2001
> +From: Gerd Hoffmann <kraxel@redhat.com>
> +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
> +Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> +Reviewed-by: Bob Feng <bob.c.feng@intel.com>
> +Signed-off-by: Maciej Borzecki <maciek@thing.com>
> +---
> + 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 949025c33325..d78d62ab3689 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 d54a4f9e0a7d..b1d05367ec0b 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.37.1
> 
> 


  reply	other threads:[~2022-07-29 17:52 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-29 10:34 [PATCH v2] arm/edk2-firmware: cherry pick gcc 12.x compatibility patches Maciej Borzecki
2022-07-29 17:52 ` Jon Mason [this message]
2022-07-29 18:03   ` Maciej Borzęcki
2022-07-31  3:05 ` Jon Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YuQeY0ZhY7c7eG7A@kudzu.us \
    --to=jdmason@kudzu.us \
    --cc=Ross.Burton@arm.com \
    --cc=maciek@thing.com \
    --cc=meta-arm@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.