[Patch] Fix libstdc++ build when using uclibc instead of glibc
Steve Ellcey
sellcey@imgtec.com
Thu Jan 7 21:37:00 GMT 2016
On Thu, 2016-01-07 at 20:56 +0100, Bernhard Reutner-Fischer wrote:
> On January 7, 2016 12:23:49 PM GMT+01:00, Jonathan Wakely <jwakely@redhat.com> wrote:
> >On 07/01/16 07:28 +0100, Marc Glisse wrote:
> >>On Wed, 6 Jan 2016, Jonathan Wakely wrote:
> >>
> >>>On 06/01/16 12:45 -0800, Steve Ellcey wrote:
> >>>>On Wed, 2016-01-06 at 20:34 +0000, Jonathan Wakely wrote:
> >>>>>On 05/01/16 14:43 -0800, Steve Ellcey wrote:
> >>>>>>While trying to build GCC with uclibc instead of glibc I ran into
> >a build
> >>>>>>failure in libstdc++. uclibc doesn't seem to provide the
> >>>>>isfinite function
>
> uClibc provides an infinite macro. Make sure to enable C99 math though.
>
> OK?
>
> TIA,
But is there any reason to use the infinite macro instead of the
__builtin_isfinite function? I think that if I used the infinite macro
I would also have to check for NAN since NAN is neither finite nor
infinite. Here is what I tested last night with no failures. Is this
version OK to checkin?
Steve Ellcey
sellcey@imgtec.com
2016-01-07 Steve Ellcey <sellcey@imgtec.com>
* include/ext/random.tcc: Use __builtin_isfinite instead of
std::isfinite.
diff --git a/libstdc++-v3/include/ext/random.tcc b/libstdc++-v3/include/ext/random.tcc
index a9c5a2b..52350e8 100644
--- a/libstdc++-v3/include/ext/random.tcc
+++ b/libstdc++-v3/include/ext/random.tcc
@@ -1570,7 +1570,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
return __t; });
__norm = std::sqrt(__sum);
}
- while (__norm == _RealType(0) || ! std::isfinite(__norm));
+ while (__norm == _RealType(0) || ! __builtin_isfinite(__norm));
std::transform(__ret.begin(), __ret.end(), __ret.begin(),
[__norm](_RealType __val){ return __val / __norm; });
More information about the Libstdc++
mailing list