This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: std::basic_string<A<B>, std::char_traits<A<B> >, std::allocator<A<B> > >::_Rep::_S_max_size(data)
- To: bkoz at redhat dot com (Benjamin Kosnik)
- Subject: Re: std::basic_string<A<B>, std::char_traits<A<B> >, std::allocator<A<B> > >::_Rep::_S_max_size(data)
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- Date: Sat, 9 Jun 2001 15:17:51 -0400 (EDT)
- Cc: libstdc++ at gcc dot gnu dot org, mark at codesourcery dot com
I haven't followed all the details regarding the problems on AIX but
it appeared that certain linker issues prevented a relatively simple
g++ solution from working. However, I'm not sure if the HPUX linker
has the same limitations. I think this should be poked at a bit more.
At the moment, it is my understanding that the symbol is not being output
because of the lack of weak support. Is this correct?
> yeah. I know. I hacked around it for the char, wchar_t instantiations by
> explicitly instantiating _S_max_size in string-inst.cc
>
> For the rest, ie these implicit instantiations, you'll need to get
> correct semantics from g++
>
> sorry
>
> ;(
>
> benjamin
>
> >
> > /usr/ccs/bin/ld: Unsatisfied symbols:
> > std::basic_string<A<B>, std::char_traits<A<B> >, std::allocator<A<B> > >::_Rep::_S_max_size(data)
> >
> > This causes 21_strings/capacity.cc to fail. I recall that the same problem
> > has been noted on aix. The above symbol is not in libstdc++. I see this
> > in capacity.o:
> >
> > U std::basic_string<A<B>, std::char_traits<A<B> >, std::allocator<A<B> > >::_Rep::_S_max_size
> > 00000001 C std::basic_string<A<B>, std::char_traits<A<B> >, std::allocator<A<B> > >::_Rep::_S_terminal
> >
> > It is a undefined data symbol as noted above.
>
> see bits/basic_string.tcc, it has the definition for this symbol. For
> some reason g++ doesn't actually do anything with it
>
Dave
--
J. David Anglin dave.anglin@nrc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)