From 3e7d7abe9161886a7c1bc732d047237ba2ff8a79 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Sat, 19 Dec 2015 23:37:14 +0000 Subject: util-linux: Fix ptest builds on musl musl doesnt implement error() API, hence provide one (From OE-Core rev: 4c7cb1f34bdb030333d83e445b5df5d06bef478f) Signed-off-by: Khem Raj Signed-off-by: Richard Purdie --- .../util-linux/uuid-test-error-api.patch | 92 ++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch (limited to 'meta/recipes-core/util-linux/util-linux') diff --git a/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch b/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch new file mode 100644 index 0000000000..1b0ff79d42 --- /dev/null +++ b/meta/recipes-core/util-linux/util-linux/uuid-test-error-api.patch @@ -0,0 +1,92 @@ +This patch adds error() API implementation for non-glibc system C libs + +Upstream-Status: Pending +Signed-off-by: Khem Raj + +Index: util-linux-2.27.1/tests/helpers/test_uuidd.c +=================================================================== +--- util-linux-2.27.1.orig/tests/helpers/test_uuidd.c ++++ util-linux-2.27.1/tests/helpers/test_uuidd.c +@@ -23,7 +23,6 @@ + * + * make uuidd uuidgen localstatedir=/var + */ +-#include + #include + #include + #include +@@ -39,6 +38,17 @@ + #include "xalloc.h" + #include "strutils.h" + ++#ifdef __GLIBC__ ++#include ++#else ++extern void (*error_print_progname)(void); ++extern unsigned int error_message_count; ++extern int error_one_per_line; ++ ++void error(int, int, const char *, ...); ++void error_at_line(int, int, const char *, unsigned int, const char *, ...); ++#endif ++ + #define LOG(level,args) if (loglev >= level) { fprintf args; } + + size_t nprocesses = 4; +@@ -257,6 +267,56 @@ static void object_dump(size_t idx, obje + fprintf(stderr, "}\n"); + } + ++#ifndef __GLIBC__ ++extern char *__progname; ++ ++void (*error_print_progname)(void) = 0; ++unsigned int error_message_count = 0; ++int error_one_per_line = 0; ++ ++static void eprint(int status, int e, const char *file, unsigned int line, const char *fmt, va_list ap) ++{ ++ if (file && error_one_per_line) { ++ static const char *oldfile; ++ static unsigned int oldline; ++ if (line == oldline && strcmp(file, oldfile) == 0) ++ return; ++ oldfile = file; ++ oldline = line; ++ } ++ if (error_print_progname) ++ error_print_progname(); ++ else ++ fprintf(stderr, "%s: ", __progname); ++ if (file) ++ fprintf(stderr, "%s:%u: ", file, line); ++ vfprintf(stderr, fmt, ap); ++ if (e) ++ fprintf(stderr, ": %s", strerror(e)); ++ putc('\n', stderr); ++ fflush(stderr); ++ error_message_count++; ++ if (status) ++ exit(status); ++} ++ ++void error(int status, int e, const char *fmt, ...) ++{ ++ va_list ap; ++ va_start(ap,fmt); ++ eprint(status, e, 0, 0, fmt, ap); ++ va_end(ap); ++} ++ ++void error_at_line(int status, int e, const char *file, unsigned int line, const char *fmt, ...) ++{ ++ va_list ap; ++ va_start(ap,fmt); ++ eprint(status, e, file, line, fmt, ap); ++ va_end(ap); ++} ++#endif /* __GLIBC__ */ ++ + int main(int argc, char *argv[]) + { + size_t i, nfailed = 0, nignored = 0; -- cgit v1.2.3-54-g00ecf