RE: [Boost-users] Problems with compiling Filesystem library on Solaris

Hi, I get the following error from the Filesystem library when building boost 1_31 on Solaris with sunpro compiler:
"/db/pub/eq/build/src/boost_1_31_0/boost/iterator/iterator_fac ade.hpp", line 622: Error: Could not find a match for boost::iterator_core_access::equal<boost::iterator_core_access ::Facade1, boost::iterator_core_access::Facade2>(const boost::filesystem::directory_iterator, const boost::filesystem::directory_iterator, boost::is_convertible<boost::filesystem::directory_iterator, boost::filesystem::directory_iterator>).
"/db/pub/eq/build/src/boost_1_31_0/libs/filesystem/build/../sr c/operations_posix_windows.cpp", line 176: Where: While instantiating > "boost::operator==<boost::filesystem::directory_iterator, boost::filesystem::path, boost::single_pass_traversal_tag, boost::filesystem::path&, int, boost::filesystem::directory_iterator, boost::filesystem::path, boost::single_pass_traversal_tag, boost::filesystem::path&, int>(const boost::iterator_facade<boost::filesystem::directory_iterator, boost::filesystem::path, boost::single_pass_traversal_tag, boost::filesystem::path&, int>&, const boost::iterator_facade<boost::filesystem::directory_iterator, boost::filesystem::path, boost::single_pass_traversal_tag, boost::filesystem::path&, int>&)".
"/db/pub/eq/build/src/boost_1_31_0/libs/filesystem/build/../sr c/operations_posix_windows.cpp", line 176: Where: Instantiated from non-template code.
It looks suspiciously similar to bug "[ 976241 ] Compiler error for tokenizer on Solaris" from 2004-06-20, with the difference that I am using version 5.3 of sunpro rather than 5.5.
I have submitted a similar problem and the proposed fix recently. I am just waiting on our developers to confirm that it works before submitting it to boost, but it seems to fix the tokenizer problem, too. For a quick workaround (before the patch is applied) do this: At the top of boost/type_traits/detail/bool_trait_def.hpp you will see something like this: #if defined(__SUNPRO_CC) # define BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \ typedef mpl::bool_< C > type; \ enum { value = type::value }; \ /**/ # define BOOST_TT_AUX_BOOL_C_BASE(C) //1 Comment out the line marked with //1. That seems to have fixed my problems with both 5.3 and 5.5. HTH, Tom -------------------------------------------------------- NOTICE: If received in error, please destroy and notify sender. Sender does not waive confidentiality or privilege, and use is prohibited.
participants (1)
-
Puverle, Tomas (IT)