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
On 16/08/2015 11:39, Leo Carreon wrote:
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?
No, I can confirm there are issues, I've just fixed one in Regex (needs to define BOOST_REGEX_NO_EXTERNAL_TEMPLATES in boost/regex/config.hpp when building with Oracle C++). There are many in Log and Thread libraries that look like the compiler isn't coping with explicit conversion operators well. If you have fixes for these or any others, can you please submit bug reports (svn.boost.org) or pull-requests (on Github)? Many thanks, John.
-----Original Message----- From: John Maddock Sent: Tuesday, August 18, 2015 4:42 AM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Building Boost 1.59.0 on Solaris 11 with Solaris Studio 12.4 On 16/08/2015 11:39, Leo Carreon wrote:
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?
No, I can confirm there are issues, I've just fixed one in Regex (needs to define BOOST_REGEX_NO_EXTERNAL_TEMPLATES in boost/regex/config.hpp when building with Oracle C++).
There are many in Log and Thread libraries that look like the compiler isn't coping with explicit conversion operators well.
If you have fixes for these or any others, can you please submit bug reports (svn.boost.org) or pull-requests (on Github)?
Many thanks, John.
Hi John, I have submitted tickets #11544 to #11547 for someone to have a look if the fixes I have applied in my build make sense. Regards, Leo
So far I have: Fixes in develop: https://github.com/boostorg/config/commit/7b9e5f8d6be9334a14befc3623977bb241... https://github.com/boostorg/regex/commit/5e98fe9a6ababcc640cfcf0a76685f7ac70... https://github.com/boostorg/math/commit/ba98215010a125d845fc78cb861eb2fc8ab2... https://github.com/boostorg/math/commit/8f252f78a02cc55b726b4a0e6198be2b0a5e... https://github.com/boostorg/thread/commit/b8dbe960b7e7777cadeac2e12be80058f7... Outstanding PR's: https://github.com/boostorg/smart_ptr/pull/17 Outstanding Bug reports: https://svn.boost.org/trac/boost/ticket/11555 (thread) Probably more to follow. HTH, John.
-----Original Message----- From: John Maddock Sent: Thursday, August 20, 2015 7:33 PM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Building Boost 1.59.0 on Solaris 11 with Solaris Studio 12.4 So far I have: Fixes in develop: https://github.com/boostorg/config/commit/7b9e5f8d6be9334a14befc3623977bb241... https://github.com/boostorg/regex/commit/5e98fe9a6ababcc640cfcf0a76685f7ac70... https://github.com/boostorg/math/commit/ba98215010a125d845fc78cb861eb2fc8ab2... https://github.com/boostorg/math/commit/8f252f78a02cc55b726b4a0e6198be2b0a5e... https://github.com/boostorg/thread/commit/b8dbe960b7e7777cadeac2e12be80058f7... Outstanding PR's: https://github.com/boostorg/smart_ptr/pull/17 Outstanding Bug reports: https://svn.boost.org/trac/boost/ticket/11555 (thread) Probably more to follow. HTH, John. _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users Hi John, FYI, according to the Solaris Studio 12.4 C++ User's Guide, quote "Many system libraries are only available as dynamic libraries in the Oracle Solaris 64-bit compilation environment". Therefore, your change to use static libraries may not be feasible when compiling on Solaris 11 x86 because it is 64-bit only. Regards, Leo
FYI, according to the Solaris Studio 12.4 C++ User's Guide, quote "Many system libraries are only available as dynamic libraries in the Oracle Solaris 64-bit compilation environment". Therefore, your change to use static libraries may not be feasible when compiling on Solaris 11 x86 because it is 64-bit only.
I'm testing on Oracle x86 64-bit. Note that link=static only changes the way Boost libraries are built, it has no effect on runtime/system library usage at all which will continue to be linked as shared libraries. One more PR: https://github.com/boostorg/variant/pull/17 John.
Hi John,
I applied your seven changes and three other changes namely:
1. A work-around for std::basic_ostream::sentry's explicit operator bool()
in Boost.Log.
2. Removed usage of -xldscope=hidden in Boost.Lexical_Cast.
3. Removed usage of -xldscope=hidden in Boost.Variant.
After all the above changes, these are the remaining prevalent problems that
I have observed:
1.
"libs/thread/src/pthread/thread.cpp", line 144: Error: Overloading ambiguity
between "boost::call_once
https://github.com/boostorg/thread/commit/b8dbe960b7e7777cadeac2e12be80058f7...
Hi John, I was reviewing the change you made above. I'm not claiming that I fully understand the code. I was just curious because in this section of code there are 8 definitions of the call_once function. 4 of them do not use the BOOST_THREAD_RV_REF macro while 4 do. Your modification enclosed the last 3 functions using the BOOST_THREAD_RV_REF macro. Again out of curiosity, I moved the beginning of your #if one function upwards. When I did this, it eliminated all the remaining call_once errors that I mentioned in my previous email, i.e. problems 1 & 2 have disappeared. Only problems 3 to 5 remain. Problem #3, I reviewed the definitions of the invoke function. They seem strange to me because I can see identical function signatures and body with the only difference being the template arguments. It's even stranger because the additional template argument is not used. Problem #4, due to my lack of familiarity with the code, I'm unable to track down the missing type. Problem #5, I didn't even try to figure it out because I don't know Python. That's all I have for now, I hope this helps. Regards, Leo
participants (2)
-
John Maddock
-
Leo Carreon