Opened 8 years ago
Closed 8 years ago
#11005 closed Bugs (duplicate)
register_archive.hpp needs modification for Oralce Solaris Studio compilers.
Reported by: | Owned by: | Robert Ramey | |
---|---|---|---|
Milestone: | To Be Determined | Component: | serialization |
Version: | Boost Development Trunk | Severity: | Problem |
Keywords: | Cc: |
Description
Compiling on Solaris 11.2 with Oracle Solaris Studio 12.4 compilers, several serialization tests fail as shown.
"CC" -compat=5 -library=stlport4 -xO4 -erroff=%none -KPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_SERIALIZATION_DYN_LINK=1 -DNDEBUG -I".." -c -o "/export/home/boost_regression/boost_sparc-S2_stlport4/results/boost/bin.v2/libs/serialization/build/sun-stlport4/release/text_iarchive.o" "../libs/serialization/src/text_iarchive.cpp"
"../boost/archive/detail/register_archive.hpp", line 45: Error: The function "adjust_counter" must have a prototype.
"../boost/archive/text_iarchive.hpp", line 136: Where: While specializing "boost::archive::detail::get_counter<boost::archive::text_iarchive>"."../boost/archive/text_iarchive.hpp", line 136: Where: Specialized in non-template code.
"../boost/archive/detail/register_archive.hpp", line 46: Error: Expression must have a constant value.
"../boost/archive/text_iarchive.hpp", line 136: Where: While specializing "boost::archive::detail::get_counter<boost::archive::text_iarchive>"."../boost/archive/text_iarchive.hpp", line 136: Where: Specialized in non-template code.
"../boost/archive/detail/register_archive.hpp", line 47: Error: Expression must have a constant value.
"../boost/archive/text_iarchive.hpp", line 136: Where: While specializing "boost::archive::detail::get_counter<boost::archive::text_iarchive>"."../boost/archive/text_iarchive.hpp", line 136: Where: Specialized in non-template code.
"../boost/archive/detail/register_archive.hpp", line 48: Error: An integer constant expression is required within the array subscript operator.
"../boost/archive/text_iarchive.hpp", line 136: Where: While specializing "boost::archive::detail::get_counter<boost::archive::text_iarchive>"."../boost/archive/text_iarchive.hpp", line 136: Where: Specialized in non-template code.
"../boost/archive/text_iarchive.hpp", line 136: Error: Multiple declaration for adjust_counter.
"../boost/archive/text_iarchive.hpp", line 136: Error: Unexpected type name "get_counter<boost::archive::text_iarchive>::type" encountered.
6 Error(s) detected.
The following modification to boost/archive/detail/register_archive.hpp, resolves this issue.
diff ./register_archive.hpp_orig ./register_archive.hpp
31c31
< #ifdef SUNPRO_CC
---
#if defined(SUNPRO_CC) && (SUNPRO_CC < 0x5130)