
Hartmut Kaiser wrote:
Ok. But in this case the names are not 'original'. They come from manual template instatiations.
I, obviously, don't know all the details, but it seems to me that the problem has to do with manual instantiations in instantiate_re2c_lexer.cpp and instantiate_re2c_lexer_str.cpp modules: instantiate_re2c_lexer.cpp: --------------------------- template struct boost::wave::cpplexer::new_lexer_gen< BOOST_WAVE_STRINGTYPE::iterator>; template struct boost::wave::cpplexer::new_lexer_gen< BOOST_WAVE_STRINGTYPE::const_iterator>; instantiate_re2c_lexer_str.cpp: ------------------------------- template struct boost::wave::cpplexer::new_lexer_gen<std::string::iterator>; template struct boost::wave::cpplexer::new_lexer_gen<std::string::const_iterator>; Assuming that BOOST_WAVE_STRINGTYPE evaluates to std::string, it results in two identical instantiations. It is OK on a platform supporting comdats, but Tru64 (and AlphaVMS for that matter) can deal with it only in local template instantiation mode. Follows an example. Thanks, Boris main.cpp -------- #include <string> #include <vector> int main() {} template class std::vector<std::string>; foo.cpp ------- #include <string> #include <vector> template class std::vector<std::string>; bash-2.03$ aCC -V aCC: HP aC++/ANSI C B3910B A.06.10 [Mar 22 2006] bash-2.03$ aCC main.cpp foo.cpp main.cpp: foo.cpp: bash-2.03$ bash-2.04$ cxx -V Compaq C++ V7.1-006 for Compaq Tru64 UNIX V5.1B (Rev. 2650) Compiler Driver V7.1-006 (cxx) cxx Driver bash-2.04$ cxx main.cpp foo.cpp main.cpp: foo.cpp: ld (prelink): foo.o compressed: std::vector<std::basic_string<char, ... multiply defined ... bash-2.04$ cxx -tlocal main.cpp foo.cpp main.cpp: foo.cpp: bash-2.04$ ----- Original Message ----- From: "Hartmut Kaiser" <hartmut.kaiser@gmail.com> To: <boost@lists.boost.org> Sent: Tuesday, January 23, 2007 4:05 PM Subject: Re: [boost] [wave] Recent check-ins broke wave onTru64/CXX/RC_1_34_0
Boris,
What do you mean by 'original names'? Names in the original C++ program?
Yes. Here's an example:
Ok. But in this case the names are not 'original'. They come from manual template instatiations.
Regards Hartmut
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost