From 458d7df7985f0b04e672a53e6c947f7ef1abb3f3 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 6 Apr 2016 20:47:32 +0200
Subject: for std::round we need to add __UCLIBC__ detection

---
 .../gcc/patches/5.3.0/libstdcxx-uclibc-c99.patch   | 62 +++++++++++++++-------
 1 file changed, 43 insertions(+), 19 deletions(-)

diff --git a/toolchain/gcc/patches/5.3.0/libstdcxx-uclibc-c99.patch b/toolchain/gcc/patches/5.3.0/libstdcxx-uclibc-c99.patch
index fcf2af8d5..965584cfb 100644
--- a/toolchain/gcc/patches/5.3.0/libstdcxx-uclibc-c99.patch
+++ b/toolchain/gcc/patches/5.3.0/libstdcxx-uclibc-c99.patch
@@ -1,6 +1,6 @@
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/config/locale/generic/c_locale.h gcc-5.3.0/libstdc++-v3/config/locale/generic/c_locale.h
 --- gcc-5.3.0.orig/libstdc++-v3/config/locale/generic/c_locale.h	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/config/locale/generic/c_locale.h	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/config/locale/generic/c_locale.h	2016-04-05 16:01:00.873639884 +0200
 @@ -70,7 +70,7 @@
      __builtin_va_list __args;
      __builtin_va_start(__args, __fmt);
@@ -12,7 +12,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/config/locale/generic/c_locale.h gcc-5.3.0
      const int __ret = __builtin_vsprintf(__out, __fmt, __args);
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/config/locale/gnu/c_locale.h gcc-5.3.0/libstdc++-v3/config/locale/gnu/c_locale.h
 --- gcc-5.3.0.orig/libstdc++-v3/config/locale/gnu/c_locale.h	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/config/locale/gnu/c_locale.h	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/config/locale/gnu/c_locale.h	2016-04-05 16:01:00.873639884 +0200
 @@ -88,7 +88,7 @@
      __builtin_va_list __args;
      __builtin_va_start(__args, __fmt);
@@ -24,7 +24,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/config/locale/gnu/c_locale.h gcc-5.3.0/lib
      const int __ret = __builtin_vsprintf(__out, __fmt, __args);
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/bits/basic_string.h gcc-5.3.0/libstdc++-v3/include/bits/basic_string.h
 --- gcc-5.3.0.orig/libstdc++-v3/include/bits/basic_string.h	2015-11-25 17:11:33.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/bits/basic_string.h	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/bits/basic_string.h	2016-04-05 16:01:00.873639884 +0200
 @@ -5246,7 +5246,7 @@
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
@@ -36,7 +36,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/bits/basic_string.h gcc-5.3.0/libs
  
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc gcc-5.3.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc
 --- gcc-5.3.0.orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc	2016-04-05 16:01:00.873639884 +0200
 @@ -578,7 +578,7 @@
      {
        const locale __loc = __io.getloc();
@@ -48,7 +48,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/bits/locale_facets_nonio.tcc gcc-5
        char* __cs = static_cast<char*>(__builtin_alloca(__cs_size));
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/bits/locale_facets.tcc gcc-5.3.0/libstdc++-v3/include/bits/locale_facets.tcc
 --- gcc-5.3.0.orig/libstdc++-v3/include/bits/locale_facets.tcc	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/bits/locale_facets.tcc	2015-12-06 09:10:32.189186155 +0100
++++ gcc-5.3.0/libstdc++-v3/include/bits/locale_facets.tcc	2016-04-05 16:01:00.873639884 +0200
 @@ -992,7 +992,7 @@
  	char __fbuf[16];
  	__num_base::_S_format_float(__io, __fbuf, __mod);
@@ -60,7 +60,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/bits/locale_facets.tcc gcc-5.3.0/l
  	  (__io.flags() & ios_base::floatfield) != ios_base::floatfield;
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_compatibility/math.h gcc-5.3.0/libstdc++-v3/include/c_compatibility/math.h
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_compatibility/math.h	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_compatibility/math.h	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_compatibility/math.h	2016-04-05 16:01:00.873639884 +0200
 @@ -56,7 +56,7 @@
  using std::floor;
  using std::fmod;
@@ -72,7 +72,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_compatibility/math.h gcc-5.3.0/l
  using std::isinf;
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_compatibility/wchar.h gcc-5.3.0/libstdc++-v3/include/c_compatibility/wchar.h
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_compatibility/wchar.h	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_compatibility/wchar.h	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_compatibility/wchar.h	2016-04-05 16:01:00.873639884 +0200
 @@ -103,7 +103,7 @@
  using std::wmemset;
  using std::wcsftime;
@@ -82,9 +82,21 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_compatibility/wchar.h gcc-5.3.0/
  using std::wcstold;
  using std::wcstoll;
  using std::wcstoull;
+diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_global/cmath gcc-5.3.0/libstdc++-v3/include/c_global/cmath
+--- gcc-5.3.0.orig/libstdc++-v3/include/c_global/cmath	2015-11-24 14:25:07.000000000 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_global/cmath	2016-04-05 22:51:12.105067127 +0200
+@@ -947,7 +947,7 @@
+ 
+ #if __cplusplus >= 201103L
+ 
+-#ifdef _GLIBCXX_USE_C99_MATH_TR1
++#if defined(_GLIBCXX_USE_C99_MATH_TR1) || defined(__UCLIBC__)
+ 
+ #undef acosh
+ #undef acoshf
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_global/cstdio gcc-5.3.0/libstdc++-v3/include/c_global/cstdio
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_global/cstdio	2015-02-01 16:11:08.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_global/cstdio	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_global/cstdio	2016-04-05 16:01:00.873639884 +0200
 @@ -146,7 +146,7 @@
    using ::vsprintf;
  } // namespace
@@ -96,7 +108,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_global/cstdio gcc-5.3.0/libstdc+
  #undef vfscanf
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_global/cstdlib gcc-5.3.0/libstdc++-v3/include/c_global/cstdlib
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_global/cstdlib	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_global/cstdlib	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_global/cstdlib	2016-04-05 16:01:00.873639884 +0200
 @@ -195,7 +195,7 @@
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
@@ -108,7 +120,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_global/cstdlib gcc-5.3.0/libstdc
  #undef llabs
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_global/cwchar gcc-5.3.0/libstdc++-v3/include/c_global/cwchar
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_global/cwchar	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_global/cwchar	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_global/cwchar	2016-04-05 16:01:00.885640349 +0200
 @@ -232,7 +232,7 @@
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
@@ -129,7 +141,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_global/cwchar gcc-5.3.0/libstdc+
    using std::wcstoull;
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_std/cstdio gcc-5.3.0/libstdc++-v3/include/c_std/cstdio
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_std/cstdio	2015-02-01 16:11:08.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_std/cstdio	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_std/cstdio	2016-04-05 16:01:00.885640349 +0200
 @@ -144,7 +144,7 @@
    using ::vsprintf;
  } // namespace std
@@ -141,7 +153,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_std/cstdio gcc-5.3.0/libstdc++-v
  #undef vfscanf
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_std/cstdlib gcc-5.3.0/libstdc++-v3/include/c_std/cstdlib
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_std/cstdlib	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_std/cstdlib	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_std/cstdlib	2016-04-05 16:01:00.885640349 +0200
 @@ -192,7 +192,7 @@
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
@@ -153,7 +165,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_std/cstdlib gcc-5.3.0/libstdc++-
  #undef llabs
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_std/cwchar gcc-5.3.0/libstdc++-v3/include/c_std/cwchar
 --- gcc-5.3.0.orig/libstdc++-v3/include/c_std/cwchar	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/c_std/cwchar	2015-12-06 09:10:01.383992311 +0100
++++ gcc-5.3.0/libstdc++-v3/include/c_std/cwchar	2016-04-05 16:01:00.889640505 +0200
 @@ -228,7 +228,7 @@
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
@@ -165,7 +177,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/c_std/cwchar gcc-5.3.0/libstdc++-v
  #undef wcstoll
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/ext/vstring.h gcc-5.3.0/libstdc++-v3/include/ext/vstring.h
 --- gcc-5.3.0.orig/libstdc++-v3/include/ext/vstring.h	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/ext/vstring.h	2015-12-06 09:10:01.387992466 +0100
++++ gcc-5.3.0/libstdc++-v3/include/ext/vstring.h	2016-04-05 16:01:00.889640505 +0200
 @@ -2680,7 +2680,7 @@
  _GLIBCXX_END_NAMESPACE_VERSION
  } // namespace
@@ -175,9 +187,21 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/ext/vstring.h gcc-5.3.0/libstdc++-
  
  #include <ext/string_conversions.h>
  
+diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/cmath gcc-5.3.0/libstdc++-v3/include/tr1/cmath
+--- gcc-5.3.0.orig/libstdc++-v3/include/tr1/cmath	2015-11-24 14:25:07.000000000 +0100
++++ gcc-5.3.0/libstdc++-v3/include/tr1/cmath	2016-04-05 16:01:54.523720108 +0200
+@@ -33,7 +33,7 @@
+ 
+ #include <cmath>
+ 
+-#ifdef _GLIBCXX_USE_C99_MATH_TR1
++#if defined(_GLIBCXX_USE_C99_MATH_TR1) || defined(__UCLIBC__)
+ 
+ #undef acosh
+ #undef acoshf
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/cstdio gcc-5.3.0/libstdc++-v3/include/tr1/cstdio
 --- gcc-5.3.0.orig/libstdc++-v3/include/tr1/cstdio	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/tr1/cstdio	2015-12-06 09:10:01.395992777 +0100
++++ gcc-5.3.0/libstdc++-v3/include/tr1/cstdio	2016-04-05 16:01:00.889640505 +0200
 @@ -33,7 +33,7 @@
  
  #include <cstdio>
@@ -189,7 +213,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/cstdio gcc-5.3.0/libstdc++-v3/
  {
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/cstdlib gcc-5.3.0/libstdc++-v3/include/tr1/cstdlib
 --- gcc-5.3.0.orig/libstdc++-v3/include/tr1/cstdlib	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/tr1/cstdlib	2015-12-06 09:10:01.395992777 +0100
++++ gcc-5.3.0/libstdc++-v3/include/tr1/cstdlib	2016-04-05 16:01:00.889640505 +0200
 @@ -35,7 +35,7 @@
  
  #if _GLIBCXX_HOSTED
@@ -201,7 +225,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/cstdlib gcc-5.3.0/libstdc++-v3
  {
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/cwchar gcc-5.3.0/libstdc++-v3/include/tr1/cwchar
 --- gcc-5.3.0.orig/libstdc++-v3/include/tr1/cwchar	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/tr1/cwchar	2015-12-06 09:10:01.395992777 +0100
++++ gcc-5.3.0/libstdc++-v3/include/tr1/cwchar	2016-04-05 16:01:00.889640505 +0200
 @@ -52,7 +52,7 @@
    using std::vwscanf;
  #endif
@@ -213,7 +237,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/cwchar gcc-5.3.0/libstdc++-v3/
    using std::wcstoull;
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/stdlib.h gcc-5.3.0/libstdc++-v3/include/tr1/stdlib.h
 --- gcc-5.3.0.orig/libstdc++-v3/include/tr1/stdlib.h	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/include/tr1/stdlib.h	2015-12-06 09:10:01.395992777 +0100
++++ gcc-5.3.0/libstdc++-v3/include/tr1/stdlib.h	2016-04-05 16:01:00.889640505 +0200
 @@ -33,7 +33,7 @@
  
  #if _GLIBCXX_HOSTED
@@ -225,7 +249,7 @@ diff -Nur gcc-5.3.0.orig/libstdc++-v3/include/tr1/stdlib.h gcc-5.3.0/libstdc++-v
  using std::tr1::strtoll;
 diff -Nur gcc-5.3.0.orig/libstdc++-v3/src/c++11/debug.cc gcc-5.3.0/libstdc++-v3/src/c++11/debug.cc
 --- gcc-5.3.0.orig/libstdc++-v3/src/c++11/debug.cc	2015-01-05 13:33:28.000000000 +0100
-+++ gcc-5.3.0/libstdc++-v3/src/c++11/debug.cc	2015-12-06 09:10:01.395992777 +0100
++++ gcc-5.3.0/libstdc++-v3/src/c++11/debug.cc	2016-04-05 16:01:00.889640505 +0200
 @@ -788,7 +788,7 @@
  				     int __n __attribute__ ((__unused__)), 
  				     const char* __fmt, _Tp __s) const throw ()
-- 
cgit v1.2.3