package/powerpc-utils: fix build with musl

Backport an upstream patch that fixes the build with musl.

Fixes:

  http://autobuild.buildroot.net/results/631e74e6f7b7bc216800203acc99b6a53af266b6/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Thomas Petazzoni 2022-07-23 19:08:21 +02:00
parent 7dcd979098
commit f1fabe7461

View File

@ -0,0 +1,101 @@
From 2efa853ef04c331444c9014af108d17544d5ed1b Mon Sep 17 00:00:00 2001
From: Fabian Groffen <grobian@gentoo.org>
Date: Fri, 21 May 2021 11:25:21 +0200
Subject: [PATCH] add includes/defines for musl libc support
- add some missing includes to get proper definitions for beXXtoh and
PATH_MAX
- guard backtrace() from execinfo.h usage for it is glibc only
Signed-off-by: Fabian Groffen <grobian@gentoo.org>
Reviewed-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Tyrel Datwyler <tyreld@linux.ibm.com>
Upstream: c73206b62d6d827cbc37a10f0195b5d2cf3f2fbb
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
src/common/cpu_info_helpers.c | 1 +
src/drmgr/common.c | 6 ++++++
src/drmgr/dr.h | 1 +
src/rtas_dbg.c | 1 +
4 files changed, 9 insertions(+)
diff --git a/src/common/cpu_info_helpers.c b/src/common/cpu_info_helpers.c
index 3d08ff7..925f220 100644
--- a/src/common/cpu_info_helpers.c
+++ b/src/common/cpu_info_helpers.c
@@ -29,6 +29,7 @@
#include <errno.h>
#include <stdbool.h>
#include <dirent.h>
+#include <limits.h>
#include <sys/stat.h>
#include <sys/types.h>
#include "cpu_info_helpers.h"
diff --git a/src/drmgr/common.c b/src/drmgr/common.c
index 5e8135b..32cf805 100644
--- a/src/drmgr/common.c
+++ b/src/drmgr/common.c
@@ -28,7 +28,9 @@
#include <signal.h>
#include <errno.h>
#include <dirent.h>
+#ifdef __GLIBC__
#include <execinfo.h>
+#endif
#include <ctype.h>
#include <sys/wait.h>
#include <endian.h>
@@ -853,6 +855,7 @@ sighandler(int signo)
say(ERROR, "Received signal %d, attempting to cleanup and exit\n",
signo);
+#ifdef __GLIBC__
if (log_fd) {
void *callstack[128];
int sz;
@@ -860,6 +863,7 @@ sighandler(int signo)
sz = backtrace(callstack, 128);
backtrace_symbols_fd(callstack, sz, log_fd);
}
+#endif
dr_fini();
exit(-1);
@@ -925,8 +929,10 @@ sig_setup(void)
if (sigaction(SIGBUS, &sigact, NULL))
return -1;
+#ifdef __GLIBC__
/* dummy call to backtrace to get symbol loaded */
backtrace(callstack, 128);
+#endif
return 0;
}
diff --git a/src/drmgr/dr.h b/src/drmgr/dr.h
index f171bfe..b32d49a 100644
--- a/src/drmgr/dr.h
+++ b/src/drmgr/dr.h
@@ -26,6 +26,7 @@
#include <nl_types.h>
#include <unistd.h>
#include <stdarg.h>
+#include <limits.h>
#include "rtas_calls.h"
#include "drpci.h"
diff --git a/src/rtas_dbg.c b/src/rtas_dbg.c
index 526e78b..ebc7474 100644
--- a/src/rtas_dbg.c
+++ b/src/rtas_dbg.c
@@ -32,6 +32,7 @@
#include <getopt.h>
#include <dirent.h>
#include <string.h>
+#include <endian.h>
#include <sys/syscall.h>
#include <unistd.h>
#include <linux/unistd.h>
--
2.37.1