From 1f0aaece3ab7ab578de7e227ce46c45129b6b51e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 10 Dec 2015 14:42:01 +0200 Subject: [PATCH] lib/utils/printf: Apply workaround for static linking with uclibc. uclibc objects call __GI_vsnprintf(). --- lib/utils/printf.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/utils/printf.c b/lib/utils/printf.c index 34bf3eb0fc..51dc0a86e0 100644 --- a/lib/utils/printf.c +++ b/lib/utils/printf.c @@ -102,6 +102,12 @@ STATIC void strn_print_strn(void *data, const char *str, size_t len) { strn_print_env->remain -= len; } +#ifdef __GNUC__ +// uClibc requires this alias to be defined, or there may be link errors +// when linkings against it statically. +int __GI_vsnprintf(char *str, size_t size, const char *fmt, va_list ap) __attribute__((weak, alias ("vsnprintf"))); +#endif + int vsnprintf(char *str, size_t size, const char *fmt, va_list ap) { strn_print_env_t strn_print_env = {str, size}; mp_print_t print = {&strn_print_env, strn_print_strn};