Due to the compiler change of openwrt, from gcc version 11 to gcc version 12, we have now the following build errors. ../../../source/components/utilities/utdebug.c: In function 'AcpiUtInitStackPtrTrace': ../../../source/components/utilities/utdebug.c:188:31: error: storing the address of local variable 'CurrentSp' in 'AcpiGbl_EntryStackPointer' [-Werror=dangling-pointer=] 188 | AcpiGbl_EntryStackPointer = &CurrentSp; | ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ ../../../source/components/utilities/utdebug.c:185:29: note: 'CurrentSp' declared here 185 | ACPI_SIZE CurrentSp; | ^~~~~~~~~ In file included from ../../../source/include/acpi.h:173, from ../../../source/components/utilities/utdebug.c:154: ../../../source/include/acglobal.h:335:41: note: 'AcpiGbl_EntryStackPointer' declared here 335 | ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_EntryStackPointer); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../../../source/include/acpixf.h:188:17: note: in definition of macro 'ACPI_GLOBAL' 188 | extern type name | ^~~~ cc1: all warnings being treated as errors make[4]: *** [../Makefile.rules:20: obj/utdebug.o] Error 1 This is already issue opend in the the upstream project acpica. https://github.com/acpica/acpica/issues/771 There is already a fix available, but it has not yet been merged. https://github.com/acpica/acpica/pull/776 Signed-off-by: Florian Eckert <fe@dev.tdt.de>
85 lines
3.7 KiB
Diff
85 lines
3.7 KiB
Diff
From 2185f7d5d7a5650dbcb6a05e9de41f340cd3b865 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Thomas=20Wei=C3=9Fschuh?= <thomas@t-8ch.de>
|
|
Date: Sat, 21 May 2022 12:17:58 +0200
|
|
Subject: [PATCH 3/3] debug: use UINT_PTR_T to store stack boundaries
|
|
|
|
GCC12 complains about storing invalid pointers, store them as integers
|
|
instead.
|
|
|
|
obj/acpiexec ../../../source/components/utilities/utdebug.c
|
|
../../../source/components/utilities/utdebug.c: In function 'AcpiUtInitStackPtrTrace':
|
|
../../../source/components/utilities/utdebug.c:188:31: error: storing the address of local variable 'CurrentSp' in 'AcpiGbl_EntryStackPointer' [-Werror=dangling-pointer=]
|
|
188 | AcpiGbl_EntryStackPointer = &CurrentSp;
|
|
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
|
|
../../../source/components/utilities/utdebug.c:185:29: note: 'CurrentSp' declared here
|
|
185 | ACPI_SIZE CurrentSp;
|
|
| ^~~~~~~~~
|
|
|
|
Fixes #771
|
|
---
|
|
source/components/debugger/dbstats.c | 4 ++--
|
|
source/components/utilities/utdebug.c | 6 +++---
|
|
source/components/utilities/utinit.c | 2 +-
|
|
source/include/acglobal.h | 4 ++--
|
|
4 files changed, 8 insertions(+), 8 deletions(-)
|
|
|
|
--- a/source/components/debugger/dbstats.c
|
|
+++ b/source/components/debugger/dbstats.c
|
|
@@ -647,8 +647,8 @@ AcpiDbDisplayStatistics (
|
|
AcpiGbl_EntryStackPointer, AcpiGbl_LowestStackPointer);
|
|
|
|
AcpiOsPrintf ("\nSubsystem Stack Usage:\n\n");
|
|
- AcpiOsPrintf ("Entry Stack Pointer %p\n", AcpiGbl_EntryStackPointer);
|
|
- AcpiOsPrintf ("Lowest Stack Pointer %p\n", AcpiGbl_LowestStackPointer);
|
|
+ AcpiOsPrintf ("Entry Stack Pointer %p\n", ACPI_TO_POINTER(AcpiGbl_EntryStackPointer));
|
|
+ AcpiOsPrintf ("Lowest Stack Pointer %p\n", ACPI_TO_POINTER(AcpiGbl_LowestStackPointer));
|
|
AcpiOsPrintf ("Stack Use %X (%u)\n", Temp, Temp);
|
|
AcpiOsPrintf ("Deepest Procedure Nesting %u\n", AcpiGbl_DeepestNesting);
|
|
#endif
|
|
--- a/source/components/utilities/utdebug.c
|
|
+++ b/source/components/utilities/utdebug.c
|
|
@@ -185,7 +185,7 @@ AcpiUtInitStackPtrTrace (
|
|
ACPI_SIZE CurrentSp;
|
|
|
|
|
|
- AcpiGbl_EntryStackPointer = &CurrentSp;
|
|
+ AcpiGbl_EntryStackPointer = ACPI_TO_INTEGER(&CurrentSp);
|
|
}
|
|
|
|
|
|
@@ -208,9 +208,9 @@ AcpiUtTrackStackPtr (
|
|
ACPI_SIZE CurrentSp;
|
|
|
|
|
|
- if (&CurrentSp < AcpiGbl_LowestStackPointer)
|
|
+ if (ACPI_TO_INTEGER(&CurrentSp) < AcpiGbl_LowestStackPointer)
|
|
{
|
|
- AcpiGbl_LowestStackPointer = &CurrentSp;
|
|
+ AcpiGbl_LowestStackPointer = ACPI_TO_INTEGER(&CurrentSp);
|
|
}
|
|
|
|
if (AcpiGbl_NestingLevel > AcpiGbl_DeepestNesting)
|
|
--- a/source/components/utilities/utinit.c
|
|
+++ b/source/components/utilities/utinit.c
|
|
@@ -359,7 +359,7 @@ AcpiUtInitGlobals (
|
|
#endif
|
|
|
|
#ifdef ACPI_DEBUG_OUTPUT
|
|
- AcpiGbl_LowestStackPointer = ACPI_CAST_PTR (ACPI_SIZE, ACPI_SIZE_MAX);
|
|
+ AcpiGbl_LowestStackPointer = ACPI_SIZE_MAX;
|
|
#endif
|
|
|
|
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
|
|
--- a/source/include/acglobal.h
|
|
+++ b/source/include/acglobal.h
|
|
@@ -332,8 +332,8 @@ extern const ACPI_PREDEFINED_NAMES
|
|
ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeCount);
|
|
ACPI_GLOBAL (UINT32, AcpiGbl_CurrentNodeSize);
|
|
ACPI_GLOBAL (UINT32, AcpiGbl_MaxConcurrentNodeCount);
|
|
-ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_EntryStackPointer);
|
|
-ACPI_GLOBAL (ACPI_SIZE *, AcpiGbl_LowestStackPointer);
|
|
+ACPI_GLOBAL (ACPI_UINTPTR_T, AcpiGbl_EntryStackPointer);
|
|
+ACPI_GLOBAL (ACPI_UINTPTR_T, AcpiGbl_LowestStackPointer);
|
|
ACPI_GLOBAL (UINT32, AcpiGbl_DeepestNesting);
|
|
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_NestingLevel, 0);
|
|
#endif
|