diff options
Diffstat (limited to 'poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch')
-rw-r--r-- | poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch b/poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch new file mode 100644 index 000000000..e78514b81 --- /dev/null +++ b/poky/meta/recipes-devtools/rpm/files/0001-tools-Add-error.h-for-non-glibc-case.patch @@ -0,0 +1,118 @@ +From b3952bd5e28f2a4d86c7377de239db8fa7237e14 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 31 Oct 2020 22:14:05 -0700 +Subject: [PATCH] tools: Add error.h for non-glibc case + +error is glibc specific API, so this patch will mostly not accepted +upstream given that elfutils has been closely tied to glibc + +Upstream-Status: Inappropriate [workaround for musl] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + tools/debugedit.c | 6 +++++- + tools/elfdeps.c | 6 +++++- + tools/error.h | 27 +++++++++++++++++++++++++++ + tools/sepdebugcrcfix.c | 6 +++++- + 4 files changed, 42 insertions(+), 3 deletions(-) + create mode 100644 tools/error.h + +diff --git a/tools/debugedit.c b/tools/debugedit.c +index 9f8dcd0fb..852f46073 100644 +--- a/tools/debugedit.c ++++ b/tools/debugedit.c +@@ -26,7 +26,6 @@ + #include <byteswap.h> + #include <endian.h> + #include <errno.h> +-#include <error.h> + #include <limits.h> + #include <string.h> + #include <stdlib.h> +@@ -40,6 +39,11 @@ + + #include <gelf.h> + #include <dwarf.h> ++#ifdef __GLIBC__ ++#include <error.h> ++#else ++#include "error.h" ++#endif + + + /* Unfortunately strtab manipulation functions were only officially added +diff --git a/tools/elfdeps.c b/tools/elfdeps.c +index 6d9094874..f69e60997 100644 +--- a/tools/elfdeps.c ++++ b/tools/elfdeps.c +@@ -5,10 +5,14 @@ + #include <unistd.h> + #include <stdlib.h> + #include <fcntl.h> +-#include <error.h> + #include <errno.h> + #include <popt.h> + #include <gelf.h> ++#ifdef __GLIBC__ ++#include <error.h> ++#else ++#include "error.h" ++#endif + + #include <rpm/rpmstring.h> + #include <rpm/argv.h> +diff --git a/tools/error.h b/tools/error.h +new file mode 100644 +index 000000000..ef06827a0 +--- /dev/null ++++ b/tools/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/tools/sepdebugcrcfix.c b/tools/sepdebugcrcfix.c +index fba460014..2be9c1fd8 100644 +--- a/tools/sepdebugcrcfix.c ++++ b/tools/sepdebugcrcfix.c +@@ -29,9 +29,13 @@ + #include <endian.h> + #include <stdio.h> + #include <stdlib.h> +-#include <error.h> + #include <libelf.h> + #include <gelf.h> ++#ifdef __GLIBC__ ++#include <error.h> ++#else ++#include "error.h" ++#endif + + #ifndef _ + #define _(x) x +-- +2.29.2 + |