From: Leo Carreon
Sent: Sunday, August 16, 2015 8:39 PM
Subject: Building Boost 1.59.0 on Solaris 11 with Solaris Studio 12.4
 
>>Hi Boosters,
 
>>I have been attempting to build Boost 1.59.0 on Solaris 11 using Solaris Studio 12.4 in C++11 mode.
 
>>So far, I have managed to locate on the web solutions to 3 issues.
 
>>Now I’m down to 22 targets failing to build.
 
>>Has anyone else attempted to do the same?  I would appreciate it if you could share some of your fixes if you have any.
 
>>Has anyone reported that they have been able to cleanly build in this environment?
 
>>Kind regards,
>>Leo
 
 
This is an update of my previous mail.
 
I now have fixed 4 issues instead of 3.
 
I also had a look at the build log generated from the above.  It appears that the following issues are the cause of the remaining build problems which I haven’t figured out how to resolve yet:
 
1. )
"libs/thread/src/pthread/thread.cpp", line 103: Error: The operation "boost::shared_ptr<boost::detail::tss_cleanup_function> && bool" is illegal.
"libs/thread/src/pthread/thread.cpp", line 144: Error: Overloading ambiguity between "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
"libs/thread/src/pthread/thread.cpp", line 150: Error: Overloading ambiguity between "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
"libs/thread/src/pthread/thread.cpp", line 803: Error: The operation "bool && boost::shared_ptr<boost::detail::tss_cleanup_function>" is illegal.
"libs/thread/src/pthread/thread.cpp", line 807: Error: The operation "boost::shared_ptr<boost::detail::tss_cleanup_function> || bool" is illegal.
"libs/thread/src/pthread/thread.cpp", line 817: Error: The operation "boost::shared_ptr<boost::detail::tss_cleanup_function> || bool" is illegal.
 
 
2.)
"./boost/thread/detail/nullary_function.hpp", line 125: Error: Cannot use std::shared_ptr<boost::detail::nullary_function<void()>::impl_base> to initialize bool.
"./boost/thread/detail/nullary_function.hpp", line 125: Error: An expression of scalar type was expected.
 
3.)
"libs/coroutine/src/posix/stack_traits.cpp", line 56: Error: Overloading ambiguity between "boost::call_once<void(&)(unsigned long*), unsigned long*>(boost::once_flag&, void(&)(unsigned long*), unsigned long*&&)" and "boost::call_once<void(*)(unsigned long*), unsigned long*>(boost::once_flag&, void(*)(unsigned long*), unsigned long*)".
"libs/coroutine/src/posix/stack_traits.cpp", line 64: Error: Overloading ambiguity between "boost::call_once<void(&)(rlimit*), rlimit*>(boost::once_flag&, void(&)(rlimit*), rlimit*&&)" and "boost::call_once<void(*)(rlimit*), rlimit*>(boost::once_flag&, void(*)(rlimit*), rlimit*)".
 
4.)
"./boost/proto/detail/preprocessed/make_expr_.hpp", line 73: Error: type is not a member of boost::proto::transform<boost::proto::switch_<boost::phoenix::phoenix_generator, boost::proto::tag_of<boost::proto::_>()>, void>::result<boost::phoenix::phoenix_generator(boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::assign, boost::proto::argsns_::list2<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<1>>, 0>, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::phoenix::argument<1>>, 0>>>, 2>)>.
 
5.)
"libs/python/src/converter/builtin_converters.cpp", line 474: Error: Overloading ambiguity between "std::complex<double>::complex(double, double)" and "std::complex<double>::complex(complex double[2])".
"libs/python/src/converter/builtin_converters.cpp", line 474: Error: Cannot return long from a function that should return std::complex<double>.
2 Error(s) detected.
 
6.)
"./boost/thread/once.hpp", line 38: Error: Overloading ambiguity between "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and "boost::call_once<void(*)()&>(boost::once_flag&, void(*)()&)".
 
7.)
"./boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp", line 145: Error: Overloading ambiguity between "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 
8.)
"./boost/spirit/home/classic/phoenix/closures.hpp", line 427: Error: Overloading ambiguity between "boost::call_once<void(*)()>(boost::once_flag&, void(*)())" and "boost::call_once<void(&)()>(boost::once_flag&, void(&)())".
 
These remaining issues are preventing me from building my own library because it depends on some of the Boost libraries that are still failing to build.