problems with std::wstring on Solaris
Anthony Feick
afeick@hotmail.com
Thu Aug 22 10:36:00 GMT 2002
I assume you're talking about PR 6702 :
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=6702
When I did that and tried to recompile libstdc++, I had problems with
iswblank, vfwscanf, vswscanf, vwscanf, and wcstof. (Probably the reason
GLIBCPP_USE_WCHAR_T was off.) After I commented those out in
gcc-3.2/libstdc++-v3/include/c_std/std_cwchar.h and
gcc-3.2/libstdc++-v3/include/c_std/std_cwctype.h libstdc++ compiled and
installed fine.
Unfortunately, now basic_string::push_back gives a Segfault wmemset () from
/usr/lib/libc.so.1. I assume this means I am now doing something
incompatible with the system libraries.
This just seems unusual. I had been using gcc 3.0.4 and libstdc++-v3.0.96
perfectly on Solaris once I commented out iswblank. Would I be better using
ibstdc++-v3.0.96 with gcc 3.2?? The reason I'm doing the upgrade anyway is
to get a standard release, and have the same gcc on all of the (UNIX) OSes
we use.
$ gcc -v
Reading specs from
/users/afeick/local/lib/gcc-lib/sparc-sun-solaris2.8/3.2/specs
Configured with: ../gcc-3.2/configure --prefix=/users/afeick/local
--enable-threads=posix --enable-shared --enab
le-cxx-flags=-fshort-wchar --disable-multilib --disable-nls --with-gnu-ld
--with-ld=/users/afeick/local/bin/ld -
-with-gnu-as --with-as=/users/afeick/local/bin/as --disable-libgcj
Thread model: posix
gcc version 3.2
>From: Benjamin Kosnik <bkoz@redhat.com>
>To: "Anthony Feick" <afeick@hotmail.com>
>CC: libstdc++@gcc.gnu.org
>Subject: Re: problems with std::wstring on Solaris
>Date: Wed, 21 Aug 2002 11:14:33 -0700
>
> > $ g++ test.cpp
> > /var/tmp//ccNdHTuR.o: In function `main':
> > /var/tmp//ccNdHTuR.o(.text+0xf4): undefined reference to
> > `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocato
> > r<wchar_t> >::basic_string[in-charge]()'
> > /var/tmp//ccNdHTuR.o(.text+0x100): undefined reference to
> > `std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocat
> > or<wchar_t> >::~basic_string [in-charge]()'
> > collect2: ld returned 1 exit status
> >
> > "std:string" works, but "std::wstring" and "std::basic_string<wchar_t>"
> > don't link.
>
>look for GLIBCPP_USE_WCHAR_T in c++config.h
>
>It will be off on solaris. There's a bug in GNATS about this.
>
>-benjamin
_________________________________________________________________
Send and receive Hotmail on your mobile device: http://mobile.msn.com
More information about the Libstdc++
mailing list