Bug 98374 - No #include <langinfo.h> on windows. Bootstrapping failure
Summary: No #include <langinfo.h> on windows. Bootstrapping failure
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 11.0
: P3 normal
Target Milestone: ---
Assignee: Patrick Palka
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-12-18 14:57 UTC by cqwrteur
Modified: 2020-12-21 00:02 UTC (History)
4 users (show)

See Also:
Host: x86_64-mingw-w64, windows 10
Target: x86_64-mingw-w64, windows 10
Build:
Known to work:
Known to fail:
Last reconfirmed: 2020-12-18 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description cqwrteur 2020-12-18 14:57:54 UTC
libtool: compile:  /home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc/xgcc -shared-libgcc -B/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc -nostdinc++ -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src/.libs -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/../libgcc -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include/x86_64-w64-mingw32 -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/libsupc++ -I/mingw64/include -I/mingw64/include -std=gnu++17 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=cow-fs_dir.lo -fimplicit-templates -g -march=x86-64 -mtune=generic -O2 -pipe -c ../../../../../gcc-git/libstdc++-v3/src/c++17/cow-fs_dir.cc -o cow-fs_dir.o
../../../../../gcc-git/libstdc++-v3/src/c++17/floating_to_chars.cc:36:10: fatal error: langinfo.h: No such file or directory
   36 | #include <langinfo.h>
      |          ^~~~~~~~~~~~
libtool: compile:  /home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc/xgcc -shared-libgcc -B/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc -nostdinc++ -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src/.libs -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/../libgcc -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include/x86_64-w64-mingw32 -I/home/unlvs/mingw-gcc-mcf-gthrecompilation terminated.
ad/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/libsupc++ -I/mingw64/include -I/mingw64/include -std=gnu++17 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=cow-fs_ops.lo -fimplicit-templates -g -march=x86-64 -mtune=generic -O2 -pipe -c ../../../../../gcc-git/libstdc++-v3/src/c++17/cow-fs_ops.cc -o cow-fs_ops.o
libtool: compile:  /home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc/xgcc -shared-libgcc -B/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc -nostdinc++ -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src/.libs -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/../libgcc -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include/x86_64-w64-mingw32 -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/libsupc++ -I/mingw64/include -I/mingw64/include -std=gnu++17 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=ostream-inst.lo -fimplicit-templates -g -march=x86-64 -mtune=generic -O2 -pipe -c ../../../../../gcc-git/libstdc++-v3/src/c++17/ostream-inst.cc -o ostream-inst.o
libtool: compile:  /home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc/xgcc -shared-libgcc -B/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc -nostdinc++ -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src/.libs -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/../libgcc -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include/x86_64-w64-mingw32 -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/libsupc++ -I/mingw64/include -I/mingw64/include -std=gnu++17 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=string-inst.lo -fimplicit-templates -g -march=x86-64 -mtune=generic -O2 -pipe -c ../../../../../gcc-git/libstdc++-v3/src/c++17/string-inst.cc -o string-inst.o
libtool: compile:  /home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc/xgcc -shared-libgcc -B/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc -nostdinc++ -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src/.libs -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/../libgcc -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include/x86_64-w64-mingw32 -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/libsupc++ -I/mingw64/include -I/mingw64/include -std=gnu++17 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=cow-fs_path.lo -fimplicit-templates -g -march=x86-64 -mtune=generic -O2 -pipe -c ../../../../../gcc-git/libstdc++-v3/src/c++17/cow-fs_path.cc -o cow-fs_path.o
libtool: compile:  /home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc/xgcc -shared-libgcc -B/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/./gcc -nostdinc++ -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src/.libs -L/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/libsupc++/.libs -L/mingw64/x86_64-w64-mingw32/lib -L/mingw64/lib -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/include -B/mingw64/x86_64-w64-mingw32/bin/ -B/mingw64/x86_64-w64-mingw32/lib/ -isystem /mingw64/x86_64-w64-mingw32/include -isystem /mingw64/x86_64-w64-mingw32/sys-include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/../libgcc -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include/x86_64-w64-mingw32 -I/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/include -I/home/unlvs/mingw-gcc-mcf-gthread/src/gcc-git/libstdc++-v3/libsupc++ -I/mingw64/include -I/mingw64/include -std=gnu++17 -D_GLIBCXX_SHARED -fno-implicit-templates -Wall -Wextra -Wwrite-strings -Wcast-qual -Wabi=2 -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -frandom-seed=cow-string-inst.lo -fimplicit-templates -g -march=x86-64 -mtune=generic -O2 -pipe -c ../../../../../gcc-git/libstdc++-v3/src/c++17/cow-string-inst.cc -o cow-string-inst.o
make[5]: *** [Makefile:577: floating_to_chars.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
make[5]: Leaving directory '/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src/c++17'
make[4]: *** [Makefile:764: all-recursive] Error 1
make[4]: Leaving directory '/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3/src'
make[3]: *** [Makefile:568: all-recursive] Error 1
make[3]: Leaving directory '/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3'
make[2]: *** [Makefile:493: all] Error 2
make[2]: Leaving directory '/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32/x86_64-w64-mingw32/libstdc++-v3'
make[1]: *** [Makefile:12181: all-target-libstdc++-v3] Error 2
make[1]: Leaving directory '/home/unlvs/mingw-gcc-mcf-gthread/src/build-x86_64-w64-mingw32'
make: *** [Makefile:973: all] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
Comment 1 Patrick Palka 2020-12-18 16:04:32 UTC
Patch posted: https://gcc.gnu.org/pipermail/gcc-patches/2020-December/562283.html
Comment 2 GCC Commits 2020-12-18 16:55:22 UTC
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 '.'.
Comment 3 cqwrteur 2020-12-19 02:01:25 UTC
(In reply to CVS Commits from comment #2)
> 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 '.'.

Fixed
Comment 4 Jonathan Wakely 2020-12-20 18:58:34 UTC
Please stop adding random unrelated people to the CC list of your bugs.
Comment 5 cqwrteur 2020-12-21 00:02:01 UTC
(In reply to Jonathan Wakely from comment #4)
> Please stop adding random unrelated people to the CC list of your bugs.

bugs for libstdc++. CC you. What's wrong with it?