This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[c++] wchar_t instantiations missing now
- To: gcc-bugs at gcc dot gnu dot org, mark at codesourcery dot com
- Subject: [c++] wchar_t instantiations missing now
- From: Benjamin Kosnik <bkoz at redhat dot com>
- Date: Mon, 20 Nov 2000 09:54:37 -0800
I'm seeing link failures for all shared objects on x86/linux right
now. This is a new failure, that I'd not seen last week, and probably
related to the ABI switch.
Here's the link failure:
/mnt/hd/ahimsa/bld-x86-gcc-3-c/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so:
undefined reference to
`_ZNSbIwSt11char_traitsIwESaIwEEC1ISt17__normal_iteratorIPwS2_EEET_S7_RKS1_'
/mnt/hd/ahimsa/bld-x86-gcc-3-c/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so:
undefined reference to
`_ZNSsC1ISt17__normal_iteratorIPcSsEEET_S3_RKSaIcE' collect2: ld
returned 1 exit status
/mnt/hd/ahimsa/bld-x86-gcc-3-c/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so:
undefined reference to
`_ZNSbIwSt11char_traitsIwESaIwEEC1ISt17__normal_iteratorIPwS2_EEET_S7_RKS1_'
/mnt/hd/ahimsa/bld-x86-gcc-3-c/i686-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so:
undefined reference to
`_ZNSsC1ISt17__normal_iteratorIPcSsEEET_S3_RKSaIcE' collect2: ld
returned 1 exit status
I'll decrypt this stuff, as it's not so obvious what's happening here...
Taking the first of these symbols and demangling it
`_ZNSbIwSt11char_traitsIwESaIwEEC1ISt17__normal_iteratorIPwS2_EEET_S7_RKS1_'
shows that it's caused by a member template constructor:
std::wstring::wstring(std::wstring::iterator, std::wstring::iterator, std::allocator const&)
(which relates to include/bits/basic_string.h: 336)
template<class _InputIterator>
basic_string(_InputIterator __begin, _InputIterator __end,
const _Alloc& __a = _Alloc());
This member function is explicitly instantiated as part of
(src/string-inst.cc: 82) with C=wchar_t as part of this:
template
S::basic_string(S::iterator, S::iterator, const allocator<C>&);
However, looking through the nm output of this file, I see:
U_ZNSbIwSt11char_traitsIwESaIwEEC1ISt17__normal_iteratorIPwS2_EEET_S7_RKS1_
Eeek. This should be weak.
-benjamin