libunwind: fix complie for PPC32

libunwind fails to compile because the include for the WORDSIZE
definition was missing when compiling with musl libc.

This lead to unw_word_t being defined as 64 bit long instead
of the correct 32 bit.

Signed-off-by: David Bauer <mail@david-bauer.net>
This commit is contained in:
David Bauer 2025-12-05 19:50:22 +01:00
parent 09e7b24ceb
commit 00c8b5c612
2 changed files with 25 additions and 3 deletions

View File

@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=libunwind
PKG_VERSION:=1.8.3
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/libunwind/libunwind/releases/download/v$(PKG_VERSION)/

View File

@ -1,6 +1,17 @@
--- a/include/libunwind-ppc32.h
+++ b/include/libunwind-ppc32.h
@@ -81,6 +81,88 @@ typedef int64_t unw_sword_t;
@@ -40,6 +40,10 @@ extern "C" {
#include <stdint.h>
#include <ucontext.h>
+#ifndef __GLIBC__
+#include <bits/reg.h>
+#endif
+
#ifndef UNW_EMPTY_STRUCT
# define UNW_EMPTY_STRUCT uint8_t unused;
#endif
@@ -81,6 +85,88 @@ typedef int64_t unw_sword_t;
typedef long double unw_tdep_fpreg_t;
@ -91,7 +102,18 @@
UNW_PPC32_R0,
--- a/include/libunwind-ppc64.h
+++ b/include/libunwind-ppc64.h
@@ -88,6 +88,88 @@ typedef struct {
@@ -40,6 +40,10 @@ extern "C" {
#include <stdint.h>
#include <ucontext.h>
+#ifndef __GLIBC__
+#include <bits/reg.h>
+#endif
+
#ifndef UNW_EMPTY_STRUCT
# define UNW_EMPTY_STRUCT uint8_t unused;
#endif
@@ -88,6 +92,88 @@ typedef struct {
uint64_t halves[2];
} unw_tdep_vreg_t;