Opened 8 years ago

Closed 8 years ago

#11005 closed Bugs (duplicate)

register_archive.hpp needs modification for Oralce Solaris Studio compilers.

Reported by: Aparna Kumta <aparna.kumta@…> 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)

Change History (1)

comment:1 by Robert Ramey, 8 years ago

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.