libunwind: fix complie for PPC32 main master
authorDavid Bauer <[email protected]>
Fri, 5 Dec 2025 18:50:22 +0000 (19:50 +0100)
committerDavid Bauer <[email protected]>
Sat, 6 Dec 2025 00:49:16 +0000 (01:49 +0100)
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 <[email protected]>
package/libs/libunwind/Makefile
package/libs/libunwind/patches/004-ppc-musl.patch

index f2363116fc8e203e1302f4db342a770d6940afea..2ed8988acd35127a07d085911279137bcc4dbf0b 100644 (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)/
index 5ea79e146277fed3176990fd4dd56dd9356d19d8..22b803b7856529843e853cb7d8a89739f582a768 100644 (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;
  
      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;