packages/utils/acpica-unix/patches/0001-ACPI_CAST_PTR-cast-through-void.patch
Florian Eckert 106330213f acpica-unix: backport pending patches to fix gcc12 build issue
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>
2023-01-10 10:11:56 +01:00

22 lines
977 B
Diff

From 0f814783ef9ed3a50e15cab08579218ec45b4640 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:15:16 +0200
Subject: [PATCH 1/3] ACPI_CAST_PTR: cast through "void *"
Not all pointer are castable to integers directly and ACPI_UINTPTR_T is
not guaranteed to be "void *".
---
source/include/actypes.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/source/include/actypes.h
+++ b/source/include/actypes.h
@@ -649,7 +649,7 @@ typedef UINT64
/* Pointer manipulation */
-#define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (p))
+#define ACPI_CAST_PTR(t, p) ((t *) (ACPI_UINTPTR_T) (void *) (p))
#define ACPI_CAST_INDIRECT_PTR(t, p) ((t **) (ACPI_UINTPTR_T) (p))
#define ACPI_ADD_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8, (a)) + (ACPI_SIZE)(b)))
#define ACPI_SUB_PTR(t, a, b) ACPI_CAST_PTR (t, (ACPI_CAST_PTR (UINT8, (a)) - (ACPI_SIZE)(b)))