!139 solving the compilation failure problem of gcc 12.3.0
From: @JiaboFeng Reviewed-by: @caojinhuahw Signed-off-by: @caojinhuahw
This commit is contained in:
commit
6277244371
89
0030-brotli-Fix-VLA-parameter-warning-893.patch
Normal file
89
0030-brotli-Fix-VLA-parameter-warning-893.patch
Normal file
@ -0,0 +1,89 @@
|
||||
From 0a3944c8c99b8d10cc4325f721b7c273d2b41f7b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Adri=C3=A1n=20Herrera=20Arcila?= <adr.her.arc.95@gmail.com>
|
||||
Date: Wed, 23 Jun 2021 08:53:59 +0100
|
||||
Subject: [PATCH] Fix VLA parameter warning (#893)
|
||||
|
||||
Make VLA buffer types consistent in declarations and definitions.
|
||||
Resolves build crash when using -Werror due to "vla-parameter" warning.
|
||||
|
||||
Signed-off-by: Adrian Herrera <adr.her.arc.95@gmail.com>
|
||||
|
||||
reference: https://github.com/google/brotli/pull/893
|
||||
Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
|
||||
---
|
||||
BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c | 6 ++++--
|
||||
BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c | 5 +++--
|
||||
.../Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c | 6 ++++--
|
||||
.../Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c | 5 +++--
|
||||
4 files changed, 14 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c
|
||||
index ae5a3d3..7eee968 100644
|
||||
--- a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c
|
||||
+++ b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/dec/decode.c
|
||||
@@ -2030,8 +2030,10 @@ static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(
|
||||
}
|
||||
|
||||
BrotliDecoderResult BrotliDecoderDecompress(
|
||||
- size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
|
||||
- uint8_t* decoded_buffer) {
|
||||
+ size_t encoded_size,
|
||||
+ const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
|
||||
+ size_t* decoded_size,
|
||||
+ uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]) {
|
||||
BrotliDecoderState s;
|
||||
BrotliDecoderResult result;
|
||||
size_t total_out = 0;
|
||||
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c
|
||||
index 8d90937..0c49c64 100644
|
||||
--- a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c
|
||||
+++ b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/c/enc/encode.c
|
||||
@@ -1470,8 +1470,9 @@ static size_t MakeUncompressedStream(
|
||||
|
||||
BROTLI_BOOL BrotliEncoderCompress(
|
||||
int quality, int lgwin, BrotliEncoderMode mode, size_t input_size,
|
||||
- const uint8_t* input_buffer, size_t* encoded_size,
|
||||
- uint8_t* encoded_buffer) {
|
||||
+ const uint8_t input_buffer[BROTLI_ARRAY_PARAM(input_size)],
|
||||
+ size_t* encoded_size,
|
||||
+ uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(*encoded_size)]) {
|
||||
BrotliEncoderState* s;
|
||||
size_t out_size = *encoded_size;
|
||||
const uint8_t* input_start = input_buffer;
|
||||
|
||||
diff --git a/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c b/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
index ae5a3d3..7eee968 100644
|
||||
--- a/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
+++ b/BaseTools/Source/C/BrotliCompress/brotli/c/dec/decode.c
|
||||
@@ -2030,8 +2030,10 @@ static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(
|
||||
}
|
||||
|
||||
BrotliDecoderResult BrotliDecoderDecompress(
|
||||
- size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,
|
||||
- uint8_t* decoded_buffer) {
|
||||
+ size_t encoded_size,
|
||||
+ const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],
|
||||
+ size_t* decoded_size,
|
||||
+ uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]) {
|
||||
BrotliDecoderState s;
|
||||
BrotliDecoderResult result;
|
||||
size_t total_out = 0;
|
||||
diff --git a/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c b/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
index 8d90937..0c49c64 100644
|
||||
--- a/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
+++ b/BaseTools/Source/C/BrotliCompress/brotli/c/enc/encode.c
|
||||
@@ -1470,8 +1470,9 @@ static size_t MakeUncompressedStream(
|
||||
|
||||
BROTLI_BOOL BrotliEncoderCompress(
|
||||
int quality, int lgwin, BrotliEncoderMode mode, size_t input_size,
|
||||
- const uint8_t* input_buffer, size_t* encoded_size,
|
||||
- uint8_t* encoded_buffer) {
|
||||
+ const uint8_t input_buffer[BROTLI_ARRAY_PARAM(input_size)],
|
||||
+ size_t* encoded_size,
|
||||
+ uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(*encoded_size)]) {
|
||||
BrotliEncoderState* s;
|
||||
size_t out_size = *encoded_size;
|
||||
const uint8_t* input_start = input_buffer;
|
||||
--
|
||||
2.41.0
|
||||
|
||||
48
0031-MdeModulePkg-UsbBusDxe-fix-NOOPT-build-error.patch
Normal file
48
0031-MdeModulePkg-UsbBusDxe-fix-NOOPT-build-error.patch
Normal file
@ -0,0 +1,48 @@
|
||||
From ae8272ef787d80950803c521a13a308651bdc62e Mon Sep 17 00:00:00 2001
|
||||
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Date: Mon, 20 Dec 2021 22:32:38 +0800
|
||||
Subject: [PATCH] MdeModulePkg/UsbBusDxe: fix NOOPT build error
|
||||
|
||||
gcc-11 (fedora 35):
|
||||
|
||||
/home/kraxel/projects/edk2/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c: In function ?UsbIoBulkTransfer?:
|
||||
/home/kraxel/projects/edk2/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c:277:12: error: ?UsbHcBulkTransfer? accessing 80 bytes in a region of size 8 [-Werror=stringop-overflow=]
|
||||
|
||||
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
|
||||
|
||||
reference: https://github.com/tianocore/edk2/pull/2347
|
||||
Signed-off-by: Jiabo Feng <fengjiabo1@huawei.com>
|
||||
---
|
||||
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c | 2 +-
|
||||
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c
|
||||
index 12d08c0b74..740e7babb0 100644
|
||||
--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c
|
||||
+++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.c
|
||||
@@ -285,7 +285,7 @@ UsbHcBulkTransfer (
|
||||
IN UINT8 DevSpeed,
|
||||
IN UINTN MaxPacket,
|
||||
IN UINT8 BufferNum,
|
||||
- IN OUT VOID *Data[EFI_USB_MAX_BULK_BUFFER_NUM],
|
||||
+ IN OUT VOID *Data[],
|
||||
IN OUT UINTN *DataLength,
|
||||
IN OUT UINT8 *DataToggle,
|
||||
IN UINTN TimeOut,
|
||||
diff --git a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h
|
||||
index 04cf36d3c8..d93370a6c2 100644
|
||||
--- a/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h
|
||||
+++ b/MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h
|
||||
@@ -149,7 +149,7 @@ UsbHcBulkTransfer (
|
||||
IN UINT8 DevSpeed,
|
||||
IN UINTN MaxPacket,
|
||||
IN UINT8 BufferNum,
|
||||
- IN OUT VOID *Data[EFI_USB_MAX_BULK_BUFFER_NUM],
|
||||
+ IN OUT VOID *Data[],
|
||||
IN OUT UINTN *DataLength,
|
||||
IN OUT UINT8 *DataToggle,
|
||||
IN UINTN TimeOut,
|
||||
--
|
||||
2.41.0
|
||||
50
0032-BaseTools-GenEfs-GenSec-fix-gcc12-warning.patch
Normal file
50
0032-BaseTools-GenEfs-GenSec-fix-gcc12-warning.patch
Normal file
@ -0,0 +1,50 @@
|
||||
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 1/3] 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);
|
||||
| ^~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
|
||||
|
||||
reference: https://github.com/tianocore/edk2/pull/2694
|
||||
Signed-off-by: Jiabo Feng <fengjiabo1@huawei.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 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.41.0
|
||||
53
0033-BaseTools-LzmaCompress-fix-gcc12-warning.patch
Normal file
53
0033-BaseTools-LzmaCompress-fix-gcc12-warning.patch
Normal file
@ -0,0 +1,53 @@
|
||||
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 2/3] 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
|
||||
|
||||
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
|
||||
|
||||
reference: https://github.com/tianocore/edk2/pull/2694
|
||||
Signed-off-by: Jiabo Feng <fengjiabo1@huawei.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 4e9b499f8d..4b9f5fa692 100644
|
||||
--- a/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
|
||||
+++ b/BaseTools/Source/C/LzmaCompress/Sdk/C/LzmaEnc.c
|
||||
@@ -2638,12 +2638,13 @@ SRes LzmaEnc_CodeOneMemBlock(CLzmaEncHandle pp, Bool 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.41.0.windows.1
|
||||
|
||||
43
0034-Basetools-turn-off-gcc12-warning.patch
Normal file
43
0034-Basetools-turn-off-gcc12-warning.patch
Normal file
@ -0,0 +1,43 @@
|
||||
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 3/3] 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.
|
||||
| ^~~~
|
||||
|
||||
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
|
||||
|
||||
reference: https://github.com/tianocore/edk2/pull/2694
|
||||
Signed-off-by: Jiabo Feng <fengjiabo1@huawei.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 7ca08af966..b05d2bddfa 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
|
||||
--
|
||||
2.41.0
|
||||
|
||||
12
edk2.spec
12
edk2.spec
@ -5,7 +5,7 @@
|
||||
|
||||
Name: edk2
|
||||
Version: %{stable_date}
|
||||
Release: 12
|
||||
Release: 13
|
||||
Summary: EFI Development Kit II
|
||||
License: BSD-2-Clause-Patent
|
||||
URL: https://github.com/tianocore/edk2
|
||||
@ -53,6 +53,13 @@ Patch0028: 0028-CVE-2023-0286-Fix-GENERAL_NAME_cmp-for-x400Address-1.patch
|
||||
# for CVE-2022-4304
|
||||
Patch0029: 0029-Fix-Timing-Oracle-in-RSA-decryption.patch
|
||||
|
||||
# solving the compilation failure problem of gcc 12.3.0
|
||||
Patch0030: 0030-brotli-Fix-VLA-parameter-warning-893.patch
|
||||
Patch0031: 0031-MdeModulePkg-UsbBusDxe-fix-NOOPT-build-error.patch
|
||||
Patch0032: 0032-BaseTools-GenEfs-GenSec-fix-gcc12-warning.patch
|
||||
Patch0033: 0033-BaseTools-LzmaCompress-fix-gcc12-warning.patch
|
||||
Patch0034: 0034-Basetools-turn-off-gcc12-warning.patch
|
||||
|
||||
BuildRequires: acpica-tools gcc gcc-c++ libuuid-devel python3 bc nasm python3-unversioned-command
|
||||
|
||||
%description
|
||||
@ -253,6 +260,9 @@ chmod +x %{buildroot}%{_bindir}/Rsa2048Sha256GenerateKeys
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jul 13 2023 Jiabo Feng<fengjiabo1@huawei.com> - 202011-13
|
||||
- solving the compilation failure problem of gcc 12.3.0
|
||||
|
||||
* Fri March 10 2023 yexiao<yexiao7@huawei.com> - 202011-12
|
||||
- fix CVE-2022-4304
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user