[Bug libstdc++/98374] No #include <langinfo.h> on windows. Bootstrapping failure
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Dec 18 16:55:22 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98374
--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppalka@gcc.gnu.org>:
https://gcc.gnu.org/g:d7bab388b818fc21dbb9111311e114ae33e11fff
commit r11-6259-gd7bab388b818fc21dbb9111311e114ae33e11fff
Author: Patrick Palka <ppalka@redhat.com>
Date: Fri Dec 18 11:52:17 2020 -0500
libstdc++: Fix build failure due to missing <langinfo.h> [PR98374]
This should fix a build failure on Windows which lacks <langinfo.h>,
from which we use nl_langinfo() to obtain the radix character of the
current locale. (We can't use the more portable localeconv() from
<clocale> to obtain the radix character of the current locale here
because it's not thread-safe, unfortunately.)
This change means that on Windows and other such platforms, we'll just
always assume the radix character used by printf is '.' when formatting
a long double through it.
libstdc++-v3/ChangeLog:
PR libstdc++/98374
* src/c++17/floating_to_chars.cc: Guard include of <langinfo.h>
with __has_include.
(__floating_to_chars_precision) [!defined(RADIXCHAR)]: Don't
attempt to obtain the radix character of the current locale,
just assume it's '.'.
More information about the Gcc-bugs
mailing list