From 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Mon, 2 Nov 2020 11:07:33 +0900 Subject: basesystem-jj recipes --- .../elfutils/files/0002-musl-libs.patch | 145 +++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch (limited to 'external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch') diff --git a/external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch b/external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch new file mode 100644 index 00000000..cf146838 --- /dev/null +++ b/external/poky/meta/recipes-devtools/elfutils/files/0002-musl-libs.patch @@ -0,0 +1,145 @@ +From ea908c7009de5a208383abf4bec4c6b3d9519ca3 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 23 Aug 2019 10:18:47 +0800 +Subject: [PATCH 2/4] 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 +Upstream-Status: Inappropriate [workaround for musl] + +Rebase to 0.177 +Signed-off-by: Hongxu Jia + +--- + 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 ++#include ++#include ++#include ++#include ++ ++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 + #include + #include +-#include + + #include + +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 + #include + +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 + #include + #include ++#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 + +-__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.17.1 + -- cgit 1.2.3-korg