libstdc++/2568: libstdc++ build failure on sparcv9: "character constant too long"

lucier@math.purdue.edu lucier@math.purdue.edu
Tue Apr 17 06:36:00 GMT 2001


>Number:         2568
>Category:       libstdc++
>Synopsis:       libstdc++ build failure on sparcv9: "character constant too long"
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Apr 17 06:36:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     B. Lucier
>Release:        gcc-3.1
>Organization:
>Environment:
sparcv9-sun-solaris2.8
>Description:
When configured with

env CC='cc -xarch=v9 -xildoff' ../configure --prefix=/pkgs/gcc-2.96 --enable-checking=no --enable-shared=no sparcv9-sun-solaris2.8

and using Sun's as and ld, with the 04/16 CVS source,
I get a good compare after stage2 of the bootstrap (cc is
the Sun compiler), but I get the following failures when
trying to build libstdc++ (as reported from a

make -i install

command):

/export/home/lucier/gcc/gcc-3.1/objdir/gcc/xgcc -B/export/home/lucier/gcc/gcc-3.1/objdir/gcc/ -nostdinc++ -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src/.libs -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/bin/ -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/lib/ -isystem /pkgs/gcc-2.96/sparcv9-sun-solaris2.8/include -nostdinc++ -I../../../../libstdc++-v3/include -I../../../../libstdc++-v3/include/std -I../../../../libstdc++-v3/include/c_std -I../include -I../../../../libstdc++-v3/libsupc++ -I../libio -I../../../../libstdc++-v3/libio -I../../../../libstdc++-v3/libmath -g -O2 -fno-implicit-templates -D_GLIBCPP_NO_CONCEPT_CHECKS -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c c++locale.cc -o c++locale.o
c++locale.cc: In member function `void 
   std::numpunct<_CharT>::_M_initialize_numpunct(int*) [with _CharT = 
   wchar_t]':
c++locale.cc:66: character constant too long
c++locale.cc:67: character constant too long
c++locale.cc: In member function `void std::moneypunct<_CharT, 
   _Intl>::_M_initialize_moneypunct(int*) [with _CharT = wchar_t, bool _Intl = 
   false]':
c++locale.cc:96: character constant too long
c++locale.cc:97: character constant too long

and

/export/home/lucier/gcc/gcc-3.1/objdir/gcc/xgcc -B/export/home/lucier/gcc/gcc-3.1/objdir/gcc/ -nostdinc++ -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src/.libs -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/bin/ -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/lib/ -isystem /pkgs/gcc-2.96/sparcv9-sun-solaris2.8/include -nostdinc++ -I../../../../libstdc++-v3/include -I../../../../libstdc++-v3/include/std -I../../../../libstdc++-v3/include/c_std -I../include -I../../../../libstdc++-v3/libsupc++ -I../libio -I../../../../libstdc++-v3/libio -I../../../../libstdc++-v3/libmath -g -O2 -fno-implicit-templates -D_GLIBCPP_NO_CONCEPT_CHECKS -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c ../../../../libstdc++-v3/src/locale.cc -o locale.o
../../../../libstdc++-v3/src/locale.cc: In constructor 
   `std::_Format_cache<_CharT>::_Format_cache() [with _CharT = wchar_t]':
../../../../libstdc++-v3/src/locale.cc:624: character constant too long
../../../../libstdc++-v3/src/locale.cc:624: character constant too long

and

/export/home/lucier/gcc/gcc-3.1/objdir/gcc/xgcc -B/export/home/lucier/gcc/gcc-3.1/objdir/gcc/ -nostdinc++ -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src/.libs -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/bin/ -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/lib/ -isystem /pkgs/gcc-2.96/sparcv9-sun-solaris2.8/include -nostdinc++ -I../../../../libstdc++-v3/include -I../../../../libstdc++-v3/include/std -I../../../../libstdc++-v3/include/c_std -I../include -I../../../../libstdc++-v3/libsupc++ -I../libio -I../../../../libstdc++-v3/libio -I../../../../libstdc++-v3/libmath -g -O2 -fno-implicit-templates -D_GLIBCPP_NO_CONCEPT_CHECKS -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c c++locale.cc -o c++locale.o
c++locale.cc: In member function `void 
   std::numpunct<_CharT>::_M_initialize_numpunct(int*) [with _CharT = 
   wchar_t]':
c++locale.cc:66: character constant too long
c++locale.cc:67: character constant too long
c++locale.cc: In member function `void std::moneypunct<_CharT, 
   _Intl>::_M_initialize_moneypunct(int*) [with _CharT = wchar_t, bool _Intl = 
   false]':
c++locale.cc:96: character constant too long
c++locale.cc:97: character constant too long

and

/export/home/lucier/gcc/gcc-3.1/objdir/gcc/xgcc -B/export/home/lucier/gcc/gcc-3.1/objdir/gcc/ -nostdinc++ -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src -L/export/home/lucier/gcc/gcc-3.1/objdir/sparcv9-sun-solaris2.8/libstdc++-v3/src/.libs -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/bin/ -B/pkgs/gcc-2.96/sparcv9-sun-solaris2.8/lib/ -isystem /pkgs/gcc-2.96/sparcv9-sun-solaris2.8/include -nostdinc++ -I../../../../libstdc++-v3/include -I../../../../libstdc++-v3/include/std -I../../../../libstdc++-v3/include/c_std -I../include -I../../../../libstdc++-v3/libsupc++ -I../libio -I../../../../libstdc++-v3/libio -I../../../../libstdc++-v3/libmath -g -O2 -fno-implicit-templates -D_GLIBCPP_NO_CONCEPT_CHECKS -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c ../../../../libstdc++-v3/src/locale.cc -o locale.o
../../../../libstdc++-v3/src/locale.cc: In constructor 
   `std::_Format_cache<_CharT>::_Format_cache() [with _CharT = wchar_t]':
../../../../libstdc++-v3/src/locale.cc:624: character constant too long
../../../../libstdc++-v3/src/locale.cc:624: character constant too long

which occurs in the following code:

#ifdef _GLIBCPP_USE_WCHAR_T
  template<>
    _Format_cache<wchar_t>::_Format_cache()
    : _M_valid(true),
    _M_decimal_point(L'.'), _M_thousands_sep(L','), // <<<<<<<<<<<<<<<<<
    _M_truename(L"true"), _M_falsename(L"false"), _M_use_grouping(false)
    { }
#endif

All the problem code is of the same form.

This is the closest I've ever gottent to a successful
bootstrap that supports 64-bit code generation on Solaris,
so if would be very nice if this could be fixed.

Brad
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-bugs mailing list