mirror of
https://git.yoctoproject.org/poky
synced 2026-02-21 17:09:42 +01:00
- Update Debian patches http://ftp.de.debian.org/debian/pool/main/e/elfutils/elfutils_0.176-1.debian.tar.xz - Rebase Debian patches to 0.177 debian/hppa_backend.diff debian/mips_backend.diff debian/arm_backend.diff debian/mips_readelf_w.patch debian/testsuite-ignore-elflint.diff debian/mips_cfi.patch - Fix build failure while applying debian patches 0001-fix-compile-failure-with-debian-patches.patch - Rebase musl patches (From OE-Core rev: 35143611034758cc670e9d88bc93f97fe33c52fc) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
145 lines
3.6 KiB
Diff
145 lines
3.6 KiB
Diff
From d5a1651df9884fcf57ed320bc2f866538af2f420 Mon Sep 17 00:00:00 2001
|
|
From: Hongxu Jia <hongxu.jia@windriver.com>
|
|
Date: Fri, 23 Aug 2019 10:18:47 +0800
|
|
Subject: [PATCH 2/3] musl-libs
|
|
|
|
Collection of fixes needed to compile libelf and other libraries
|
|
provided by elfutils for musl targets
|
|
|
|
error is glibc specific API, so this patch will mostly not accepted
|
|
upstream given that elfutils has been closely tied to glibc
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Upstream-Status: Inappropriate [workaround for musl]
|
|
|
|
Rebase to 0.177
|
|
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
|
---
|
|
lib/error.h | 27 +++++++++++++++++++++++++++
|
|
lib/fixedsizehash.h | 1 -
|
|
lib/libeu.h | 1 +
|
|
libdwfl/dwfl_error.c | 9 +++++++++
|
|
libdwfl/linux-kernel-modules.c | 1 +
|
|
libelf/elf.h | 9 ++++++---
|
|
6 files changed, 44 insertions(+), 4 deletions(-)
|
|
create mode 100644 lib/error.h
|
|
|
|
diff --git a/lib/error.h b/lib/error.h
|
|
new file mode 100644
|
|
index 0000000..ef06827
|
|
--- /dev/null
|
|
+++ b/lib/error.h
|
|
@@ -0,0 +1,27 @@
|
|
+#ifndef _ERROR_H_
|
|
+#define _ERROR_H_
|
|
+
|
|
+#include <stdarg.h>
|
|
+#include <stdio.h>
|
|
+#include <stdlib.h>
|
|
+#include <string.h>
|
|
+#include <errno.h>
|
|
+
|
|
+static unsigned int error_message_count = 0;
|
|
+
|
|
+static inline void error(int status, int errnum, const char* format, ...)
|
|
+{
|
|
+ va_list ap;
|
|
+ fprintf(stderr, "%s: ", program_invocation_name);
|
|
+ va_start(ap, format);
|
|
+ vfprintf(stderr, format, ap);
|
|
+ va_end(ap);
|
|
+ if (errnum)
|
|
+ fprintf(stderr, ": %s", strerror(errnum));
|
|
+ fprintf(stderr, "\n");
|
|
+ error_message_count++;
|
|
+ if (status)
|
|
+ exit(status);
|
|
+}
|
|
+
|
|
+#endif /* _ERROR_H_ */
|
|
diff --git a/lib/fixedsizehash.h b/lib/fixedsizehash.h
|
|
index dac2a5f..43016fc 100644
|
|
--- a/lib/fixedsizehash.h
|
|
+++ b/lib/fixedsizehash.h
|
|
@@ -30,7 +30,6 @@
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
-#include <sys/cdefs.h>
|
|
|
|
#include <system.h>
|
|
|
|
diff --git a/lib/libeu.h b/lib/libeu.h
|
|
index ecb4d01..edc85e3 100644
|
|
--- a/lib/libeu.h
|
|
+++ b/lib/libeu.h
|
|
@@ -29,6 +29,7 @@
|
|
#ifndef LIBEU_H
|
|
#define LIBEU_H
|
|
|
|
+#include "system.h"
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
diff --git a/libdwfl/dwfl_error.c b/libdwfl/dwfl_error.c
|
|
index 7bcf61c..11dcc8b 100644
|
|
--- a/libdwfl/dwfl_error.c
|
|
+++ b/libdwfl/dwfl_error.c
|
|
@@ -154,7 +154,16 @@ dwfl_errmsg (int error)
|
|
switch (error &~ 0xffff)
|
|
{
|
|
case OTHER_ERROR (ERRNO):
|
|
+#if defined(__GLIBC__)
|
|
return strerror_r (error & 0xffff, "bad", 0);
|
|
+#else
|
|
+ {
|
|
+ static __thread char buf[128] = "";
|
|
+ if (strerror_r (error & 0xffff, buf, sizeof(buf)) == 0)
|
|
+ return buf;
|
|
+ }
|
|
+ return "strerror_r() failed";
|
|
+#endif
|
|
case OTHER_ERROR (LIBELF):
|
|
return elf_errmsg (error & 0xffff);
|
|
case OTHER_ERROR (LIBDW):
|
|
diff --git a/libdwfl/linux-kernel-modules.c b/libdwfl/linux-kernel-modules.c
|
|
index d46ab5a..1c3faee 100644
|
|
--- a/libdwfl/linux-kernel-modules.c
|
|
+++ b/libdwfl/linux-kernel-modules.c
|
|
@@ -50,6 +50,7 @@
|
|
#include <sys/utsname.h>
|
|
#include <fcntl.h>
|
|
#include <unistd.h>
|
|
+#include "system.h"
|
|
|
|
/* If fts.h is included before config.h, its indirect inclusions may not
|
|
give us the right LFS aliases of these functions, so map them manually. */
|
|
diff --git a/libelf/elf.h b/libelf/elf.h
|
|
index bed273d..be228e6 100644
|
|
--- a/libelf/elf.h
|
|
+++ b/libelf/elf.h
|
|
@@ -21,7 +21,9 @@
|
|
|
|
#include <features.h>
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
|
|
/* Standard ELF types. */
|
|
|
|
@@ -4029,6 +4031,7 @@ enum
|
|
#define R_NDS32_TLS_TPOFF 102
|
|
#define R_NDS32_TLS_DESC 119
|
|
|
|
-__END_DECLS
|
|
-
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
#endif /* elf.h */
|
|
--
|
|
2.7.4
|
|
|