Stuart Henderson:

> > ld: error: undefined symbol: std::__1::basic_ostream<char, 
> > std::__1::char_traits<char> >::operator<<(std::__1::basic_ostream<char, 
> > std::__1::char_traits<char> >& (*)(std::__1::basic_ostream<char, 
> > std::__1::char_traits<char> >&))
> > >>> referenced by TodoDB.cc
> > >>>               
> > >>> TodoDB.o:(TodoDB::StreamColour::veryhigh(std::__1::basic_ostream<char, 
> > >>> std::__1::char_traits<char> >&))
> 
> I'll update i386 after my current build is done and take a look there
> (got about a day to go) but if you have time could you try reordering
> the #includes in util/Strings.h please? Perhaps move "#include <string>"
> up ..

???  That doesn't have any bearing on the problem at hand.


ld complains that this is an undefined symbol:

std::__1::basic_ostream<char, std::__1::char_traits<char> 
>::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >& 
(*)(std::__1::basic_ostream<char, std::__1::char_traits<char> >&))

Which is a bit confusing, because it appears in libc++.so.3.0.
Anyway, in more human-readable form that's ...

basic_ostream::operator<<(basic_ostream& (*)(basic_ostream&))

... which brings us to this part of the libc++ diff:

     // 27.7.2.6 Formatted output:
-    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY
+    inline _LIBCPP_HIDE_FROM_ABI_AFTER_V1
     basic_ostream& operator<<(basic_ostream& (*__pf)(basic_ostream&))
     { return __pf(*this); }

c++ -E confirms that this now expands to an additional
__visibility__("hidden").

So...
(1) Is this change intentional?
(2) If so, what's required to fix the code?

-- 
Christian "naddy" Weisgerber                          na...@mips.inka.de

Reply via email to