libunwind: fix complie for PPC32
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Build all core packages / Build all core packages for selected target (push) Waiting to run

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_NAME:=libunwind
PKG_VERSION:=1.8.3 PKG_VERSION:=1.8.3
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/libunwind/libunwind/releases/download/v$(PKG_VERSION)/ PKG_SOURCE_URL:=https://github.com/libunwind/libunwind/releases/download/v$(PKG_VERSION)/

View file

@ -1,6 +1,17 @@
--- a/include/libunwind-ppc32.h --- a/include/libunwind-ppc32.h
+++ b/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; typedef long double unw_tdep_fpreg_t;
@ -91,7 +102,18 @@
UNW_PPC32_R0, UNW_PPC32_R0,
--- a/include/libunwind-ppc64.h --- a/include/libunwind-ppc64.h
+++ b/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]; uint64_t halves[2];
} unw_tdep_vreg_t; } unw_tdep_vreg_t;