fix build error caused by gcc 12 dangling pointer warning

This commit is contained in:
Ni Cunshu 2023-07-18 11:22:27 +08:00
parent b9de314ec7
commit b99e4d12c5
2 changed files with 63 additions and 6 deletions

View File

@ -0,0 +1,54 @@
From aea0a5cfce262ce2ab16fd96d87c12cf5e756380 Mon Sep 17 00:00:00 2001
From: Philip Prindeville <philipp@redfish-solutions.com>
Date: Wed, 12 Apr 2023 10:18:20 -0600
Subject: [PATCH] Fix GCC 12 dangling-pointer warning
We're storing a persistent pointer to an ephemeral local variable
which technically is a dangling pointer and the compiler is correct.
However, since we never indirect the pointer, this is a safe
operation and we can suppress the warning.
Also, some C run-times (like MUSL) aren't including <stdint.h>
indirectly so we must include it explicitly or we won't have the
type definition for uintptr_t.
Fixes issue #867.
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
---
source/components/utilities/utdebug.c | 5 +++++
source/include/platform/aclinux.h | 1 +
2 files changed, 6 insertions(+)
diff --git a/source/components/utilities/utdebug.c b/source/components/utilities/utdebug.c
index 0060fdf..2f60bca 100644
--- a/source/components/utilities/utdebug.c
+++ b/source/components/utilities/utdebug.c
@@ -77,7 +77,12 @@ AcpiUtInitStackPtrTrace (
ACPI_SIZE CurrentSp;
+#pragma GCC diagnostic push
+#if defined(__GNUC__) && __GNUC__ >= 12
+#pragma GCC diagnostic ignored "-Wdangling-pointer="
+#endif
AcpiGbl_EntryStackPointer = &CurrentSp;
+#pragma GCC diagnostic pop
}
diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h
index 52a3293..20680d0 100644
--- a/source/include/platform/aclinux.h
+++ b/source/include/platform/aclinux.h
@@ -198,6 +198,7 @@
#ifdef ACPI_USE_STANDARD_HEADERS
#include <unistd.h>
+#include <stdint.h>
#endif
/* Define/disable kernel-specific declarators */
--
2.33.0

View File

@ -1,6 +1,6 @@
Name: acpica-tools
Version: 20210604
Release: 2
Release: 3
Summary: Tools for OS-independent reference implementation of ACPI
License: GPLv2
@ -10,12 +10,12 @@ Source0: https://acpica.org/sites/acpica/files/acpica-unix2-%{version}.ta
Source1: https://acpica.org/sites/acpica/files/acpitests-unix-%{version}.tar.gz
Source2: COPYING
Patch0001: cve-2017-13693.patch
Patch0002: cve-2017-13694.patch
Patch0003: cve-2017-13695.patch
Patch0004: openEuler-harden.patch
Patch0001: cve-2017-13693.patch
Patch0002: cve-2017-13694.patch
Patch0003: cve-2017-13695.patch
Patch0004: openEuler-harden.patch
Patch0005: 0001-add-loongarch64-support-for-acpica-tools.patch
Patch0006: 0001-Fix-GCC-12-dangling-pointer-warning.patch
BuildRequires: bison patchutils flex gcc
Provides: acpixtract >= 20120913-7 iasl = %{version}-%{release} acpidump >= 20100513-5
Provides: pmtools = %{version}-%{release}
@ -86,6 +86,9 @@ fi
%{_docdir}/*
%changelog
* Tue Jul 18 2023 Ni Cunshu <nicunshu@huawei.com> - 20210604-3
- fix building error caused by gcc 12 dangling pointer warning
* Mon May 8 2023 Wenlong Zhang <zhangwenlong@loongson.cn> - 20210604-2
- add loongarch64 support