See https://bugs.gentoo.org/show_bug.cgi?id=577238 diff -Naur gcc-4.8.5.orig/libstdc++-v3/config/locale/generic/c_locale.h gcc-4.8.5/libstdc++-v3/config/locale/generic/c_locale.h --- gcc-4.8.5.orig/libstdc++-v3/config/locale/generic/c_locale.h 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/config/locale/generic/c_locale.h 2016-03-12 22:33:21.704000000 +0000 @@ -70,7 +70,7 @@ __builtin_va_list __args; __builtin_va_start(__args, __fmt); -#ifdef _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); #else const int __ret = __builtin_vsprintf(__out, __fmt, __args); diff -Naur gcc-4.8.5.orig/libstdc++-v3/config/locale/gnu/c_locale.h gcc-4.8.5/libstdc++-v3/config/locale/gnu/c_locale.h --- gcc-4.8.5.orig/libstdc++-v3/config/locale/gnu/c_locale.h 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/config/locale/gnu/c_locale.h 2016-03-12 22:33:21.704000000 +0000 @@ -88,7 +88,7 @@ __builtin_va_list __args; __builtin_va_start(__args, __fmt); -#ifdef _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) const int __ret = __builtin_vsnprintf(__out, __size, __fmt, __args); #else const int __ret = __builtin_vsprintf(__out, __fmt, __args); diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/bits/basic_string.h gcc-4.8.5/libstdc++-v3/include/bits/basic_string.h --- gcc-4.8.5.orig/libstdc++-v3/include/bits/basic_string.h 2013-05-15 22:00:48.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/bits/basic_string.h 2016-03-12 22:35:30.648000000 +0000 @@ -2809,7 +2809,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99) \ +#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) \ && !defined(_GLIBCXX_HAVE_BROKEN_VSWPRINTF)) #include diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/bits/basic_string.h.rej gcc-4.8.5/libstdc++-v3/include/bits/basic_string.h.rej --- gcc-4.8.5.orig/libstdc++-v3/include/bits/basic_string.h.rej 1970-01-01 00:00:00.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/bits/basic_string.h.rej 2016-03-12 22:33:21.704000000 +0000 @@ -0,0 +1,11 @@ +--- libstdc++-v3/include/bits/basic_string.h 2015-05-28 16:27:46.000000000 +0000 ++++ libstdc++-v3/include/bits/basic_string.h 2016-03-12 19:21:06.416000000 +0000 +@@ -2844,7 +2844,7 @@ + _GLIBCXX_END_NAMESPACE_VERSION + } // namespace + +-#if __cplusplus >= 201103L && defined(_GLIBCXX_USE_C99) ++#if __cplusplus >= 201103L && (defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__)) + + #include + diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/bits/locale_facets.tcc gcc-4.8.5/libstdc++-v3/include/bits/locale_facets.tcc --- gcc-4.8.5.orig/libstdc++-v3/include/bits/locale_facets.tcc 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/bits/locale_facets.tcc 2016-03-12 22:33:21.704000000 +0000 @@ -987,7 +987,7 @@ char __fbuf[16]; __num_base::_S_format_float(__io, __fbuf, __mod); -#ifdef _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) // First try a buffer perhaps big enough (most probably sufficient // for non-ios_base::fixed outputs) int __cs_size = __max_digits * 3; diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc gcc-4.8.5/libstdc++-v3/include/bits/locale_facets_nonio.tcc --- gcc-4.8.5.orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/bits/locale_facets_nonio.tcc 2016-03-12 22:33:21.708000000 +0000 @@ -572,7 +572,7 @@ { const locale __loc = __io.getloc(); const ctype<_CharT>& __ctype = use_facet >(__loc); -#ifdef _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) // First try a buffer perhaps big enough. int __cs_size = 64; char* __cs = static_cast(__builtin_alloca(__cs_size)); @@ -745,7 +745,7 @@ case 'S': // Seconds. [tm_sec] // [00, 60] in C99 (one leap-second), [00, 61] in C89. -#ifdef _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) __beg = _M_extract_num(__beg, __end, __tm->tm_sec, 0, 60, 2, #else __beg = _M_extract_num(__beg, __end, __tm->tm_sec, 0, 61, 2, diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_compatibility/math.h gcc-4.8.5/libstdc++-v3/include/c_compatibility/math.h --- gcc-4.8.5.orig/libstdc++-v3/include/c_compatibility/math.h 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_compatibility/math.h 2016-03-12 22:33:21.708000000 +0000 @@ -56,7 +56,7 @@ using std::floor; using std::fmod; -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) using std::fpclassify; using std::isfinite; using std::isinf; diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.8.5/libstdc++-v3/include/c_compatibility/wchar.h --- gcc-4.8.5.orig/libstdc++-v3/include/c_compatibility/wchar.h 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_compatibility/wchar.h 2016-03-12 22:33:21.708000000 +0000 @@ -103,7 +103,7 @@ using std::wmemset; using std::wcsftime; -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) using std::wcstold; using std::wcstoll; using std::wcstoull; diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_global/cstdio gcc-4.8.5/libstdc++-v3/include/c_global/cstdio --- gcc-4.8.5.orig/libstdc++-v3/include/c_global/cstdio 2016-03-12 22:30:28.980000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_global/cstdio 2016-03-12 22:33:21.708000000 +0000 @@ -139,7 +139,7 @@ using ::vsprintf; } // namespace -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) #undef snprintf #undef vfscanf diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_global/cstdlib gcc-4.8.5/libstdc++-v3/include/c_global/cstdlib --- gcc-4.8.5.orig/libstdc++-v3/include/c_global/cstdlib 2013-02-11 23:42:43.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_global/cstdlib 2016-03-12 22:33:21.708000000 +0000 @@ -182,7 +182,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) #undef _Exit #undef llabs diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_global/cwchar gcc-4.8.5/libstdc++-v3/include/c_global/cwchar --- gcc-4.8.5.orig/libstdc++-v3/include/c_global/cwchar 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_global/cwchar 2016-03-12 22:33:21.708000000 +0000 @@ -232,7 +232,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) #undef wcstold #undef wcstoll @@ -289,7 +289,7 @@ using std::vwscanf; #endif -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) using std::wcstold; using std::wcstoll; using std::wcstoull; diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_std/cstdio gcc-4.8.5/libstdc++-v3/include/c_std/cstdio --- gcc-4.8.5.orig/libstdc++-v3/include/c_std/cstdio 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_std/cstdio 2016-03-12 22:33:21.712000000 +0000 @@ -139,7 +139,7 @@ using ::vsprintf; } // namespace std -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) #undef snprintf #undef vfscanf diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_std/cstdlib gcc-4.8.5/libstdc++-v3/include/c_std/cstdlib --- gcc-4.8.5.orig/libstdc++-v3/include/c_std/cstdlib 2013-02-12 12:01:14.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_std/cstdlib 2016-03-12 22:33:21.712000000 +0000 @@ -180,7 +180,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) #undef _Exit #undef llabs diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/c_std/cwchar gcc-4.8.5/libstdc++-v3/include/c_std/cwchar --- gcc-4.8.5.orig/libstdc++-v3/include/c_std/cwchar 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/c_std/cwchar 2016-03-12 22:33:21.712000000 +0000 @@ -228,7 +228,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) #undef wcstold #undef wcstoll diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/ext/vstring.h gcc-4.8.5/libstdc++-v3/include/ext/vstring.h --- gcc-4.8.5.orig/libstdc++-v3/include/ext/vstring.h 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/ext/vstring.h 2016-03-12 22:33:21.712000000 +0000 @@ -2571,7 +2571,7 @@ _GLIBCXX_END_NAMESPACE_VERSION } // namespace -#if ((__cplusplus >= 201103L) && defined(_GLIBCXX_USE_C99)) +#if ((__cplusplus >= 201103L) && (defined(_GLIBCXX_USE_C99) || definied(__UCLIBC__))) #include diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/tr1/cstdio gcc-4.8.5/libstdc++-v3/include/tr1/cstdio --- gcc-4.8.5.orig/libstdc++-v3/include/tr1/cstdio 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/tr1/cstdio 2016-03-12 22:33:21.712000000 +0000 @@ -33,7 +33,7 @@ #include -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) namespace std _GLIBCXX_VISIBILITY(default) { diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/tr1/cstdlib gcc-4.8.5/libstdc++-v3/include/tr1/cstdlib --- gcc-4.8.5.orig/libstdc++-v3/include/tr1/cstdlib 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/tr1/cstdlib 2016-03-12 22:33:21.712000000 +0000 @@ -35,7 +35,7 @@ #if _GLIBCXX_HOSTED -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) namespace std _GLIBCXX_VISIBILITY(default) { diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/tr1/cwchar gcc-4.8.5/libstdc++-v3/include/tr1/cwchar --- gcc-4.8.5.orig/libstdc++-v3/include/tr1/cwchar 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/tr1/cwchar 2016-03-12 22:33:21.712000000 +0000 @@ -52,7 +52,7 @@ using std::vwscanf; #endif -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) using std::wcstold; using std::wcstoll; using std::wcstoull; diff -Naur gcc-4.8.5.orig/libstdc++-v3/include/tr1/stdlib.h gcc-4.8.5/libstdc++-v3/include/tr1/stdlib.h --- gcc-4.8.5.orig/libstdc++-v3/include/tr1/stdlib.h 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/include/tr1/stdlib.h 2016-03-12 22:33:21.716000000 +0000 @@ -33,7 +33,7 @@ #if _GLIBCXX_HOSTED -#if _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) using std::tr1::atoll; using std::tr1::strtoll; diff -Naur gcc-4.8.5.orig/libstdc++-v3/src/c++11/debug.cc gcc-4.8.5/libstdc++-v3/src/c++11/debug.cc --- gcc-4.8.5.orig/libstdc++-v3/src/c++11/debug.cc 2013-02-03 17:54:05.000000000 +0000 +++ gcc-4.8.5/libstdc++-v3/src/c++11/debug.cc 2016-03-12 22:33:21.716000000 +0000 @@ -787,7 +787,7 @@ int __n __attribute__ ((__unused__)), const char* __fmt, _Tp __s) const throw () { -#ifdef _GLIBCXX_USE_C99 +#if defined(_GLIBCXX_USE_C99) || defined(__UCLIBC__) std::snprintf(__buf, __n, __fmt, __s); #else std::sprintf(__buf, __fmt, __s);