When attempting a bootstrap including libstdc++-v3, the following error will be
encountered.

libtool: compile:  /mingw/src/gccf/./gcc/xgcc -shared-libgcc
-B/mingw/src/gccf/./gcc -nostdinc++
-L/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/src
-L/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/src/.libs
-L/mingw/src/gccf/i386-pc-mingw32/winsup/mingw
-L/mingw/src/gccf/i386-pc-mingw32/winsup/w32api/lib -isystem
/mingw/src/svn/winsup/mingw/include -isystem
/mingw/src/svn/winsup/w32api/include -B/mingw/i386-pc-mingw32/bin/
-B/mingw/i386-pc-mingw32/lib/ -isystem /mingw/i386-pc-mingw32/include -isystem
/mingw/i386-pc-mingw32/sys-include
-I/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/i386-pc-mingw32
-I/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include
-I/mingw/src/svn/libstdc++-v3/libsupc++ -fno-implicit-templates -Wall -Wextra
-Wwrite-strings -Wcast-qual -fdiagnostics-show-location=once
-ffunction-sections -fdata-sections -g -O2 -std=gnu++0x -c
../../../../svn/libstdc++-v3/src/functexcept.cc  -DDLL_EXPORT -DPIC -o
.libs/functexcept.o
In file included from
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/string:58,
                 from
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/stdexcept:44,
                 from ../../../../svn/libstdc++-v3/src/functexcept.cc:31:
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h: In
function 'std::wstring std::to_wstring(long long int)':
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h:2675:
error: no matching function for call to '__to_xstring(int (*)(wchar_t*, const
wchar_t*, char*), unsigned int, const wchar_t [5], long long int&)'
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h: In
function 'std::wstring std::to_wstring(long long unsigned int)':
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h:2681:
error: no matching function for call to '__to_xstring(int (*)(wchar_t*, const
wchar_t*, char*), unsigned int, const wchar_t [5], long long unsigned int&)'
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h: In
function 'std::wstring std::to_wstring(long double)':
/mingw/src/gccf/i386-pc-mingw32/libstdc++-v3/include/bits/basic_string.h:2689:
error: no matching function for call to '__to_xstring(int (*)(wchar_t*, const
wchar_t*, char*), const int&, const wchar_t [4], long double&)'
make[4]: *** [functexcept.lo] Error 1

The problem is that MSVCRT's prototype for vswprintf is incorrect, and differs
from the standard C version.  This may not be easy to fix in mingwrt.  However,
the _vsnwprintf function has the correct prototype and works with __to_xstring.

I guess the solution is to make libstdc++ use _vsnwprintf instead of vswprintf
on *-mingw32.


-- 
           Summary: [4.4 regression] Incorrect vswprintf prototype breaks
                    __to_xstring
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: build
          Severity: major
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: aaronavay62 at aaronwl dot com
GCC target triplet: *-mingw32


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37522

Reply via email to