| | | | Browse by category |
Problems building the Rogue Wave Products with the new SunPro 5.2 compiler on Solaris 2.6. This knowledge base article does not deal with the -compat flag.
You may see error message like the following:
"../../../rw/stdex/slist.h", line 90: Error: A qualifier is not allowed for rebind.
"../../../rw/ev_cntnr.h", line 50: Where: While specializing "rw_slist<RWTraceEvent, std::allocator<RWTraceEvent>>".
"../../../rw/ev_cntnr.h", line 50: Where: Specialized in RW_VBase<rw_slist<RWTraceEvent, std::allocator<RWTraceEvent>>, RWTValSlist<RWTraceEvent>>.
Cause
Several compiler specific macros do not get set correctly.
Action
These fixes are NOT official fixes and are NOT certified. Use at your own risk.
After making the changes below, use the SPM and select the Solaris 2.6 SunPro 5.2 configuration.
Modify the following files (all changes in blue, file names are in red):
/parts/tls0711u/source/src/rw/compiler.in
931:#if (__SUNPRO_CC == 0x500) && defined(RW_RWV2X_STDLIB)
932: #define RW_3ARG_DISTANCE 1
933: #define RW_ALLOC_INTERFACE_STLV2X_HACK 1
934: #endif
Add these lines after this section
935: #if (__SUNPRO_CC == 0x520) && defined(RW_RWV2X_STDLIB)
936: #define RW_3ARG_DISTANCE 1
937: #define RW_ALLOC_INTERFACE_STLV2X_HACK 1
938: #endif
/parts/tls0711u/examples/src/dequeval.cpp:
39:# if defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500)
40:# include <functional> // STL utilities; for ptr_fun, sunpro50
41:# endif
to now read like this:
39:# if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x500)
40:# include <functional> // STL utilities; for ptr_fun, sunpro50
41:# endif
/parts/thr0201u/include/rw/thr/defs.h:
723:RW_THR_COMPILER_SUN_SUNPRO_5_0_0 "5.0.0"
2062:# elif (__SUNPRO_CC == 0x0500) || !defined(RW_THR_ENABLE_CERTIFIED_ONLY)
2062: // Sun Sunpro C++ v5.0.0 Certified
2063:# define RW_THR_COMPILER_SUN_SUNPRO_5_0_0 "5.0.0"
2064:# define RW_THR_COMPILER_VERSION_NAME RW_THR_COMPILER_SUN_SUNPRO_5_0_0
2065:# define RW_THR_WONT_INSTANTIATE_TYPEDEFS_ON_TEMPLATE_PARAMETER
2066:# define RW_THR_CANT_INLINE_TEMPLATE_FUNCTIONS
2067:# define RW_THR_SUN_BUG_4227111
2068:# define RW_THR_NAMESPACE_AMBIGUITY
2069:# else
2070:# error This version of Threads.h++ has not been certified for use with this Sun compiler!
Make the following modifications:
724:RW_THR_COMPILER_SUN_SUNPRO_5_2_0 "5.2.0"
2062:# elif (__SUNPRO_CC == 0x0500) || !defined(RW_THR_ENABLE_CERTIFIED_ONLY)
2062: // Sun Sunpro C++ v5.0.0 Certified
2063:# define RW_THR_COMPILER_SUN_SUNPRO_5_0_0 "5.0.0"
2064:# define RW_THR_COMPILER_VERSION_NAME RW_THR_COMPILER_SUN_SUNPRO_5_0_0
2065:# define RW_THR_WONT_INSTANTIATE_TYPEDEFS_ON_TEMPLATE_PARAMETER
2066:# define RW_THR_CANT_INLINE_TEMPLATE_FUNCTIONS
2067:# define RW_THR_SUN_BUG_4227111
2068:# define RW_THR_NAMESPACE_AMBIGUITY
2069:# elif (__SUNPRO_CC == 0x0520) || !defined(RW_THR_ENABLE_CERTIFIED_ONLY)
2070: // Sun Sunpro C++ v5.2.0 Certified
2071:# define RW_THR_COMPILER_SUN_SUNPRO_5_2_0 "5.2.0"
2072:# define RW_THR_COMPILER_VERSION_NAME RW_THR_COMPILER_SUN_SUNPRO_5_2_0
2073:# define RW_THR_WONT_INSTANTIATE_TYPEDEFS_ON_TEMPLATE_PARAMETER
2074:# define RW_THR_CANT_INLINE_TEMPLATE_FUNCTIONS
2075:# define RW_THR_SUN_BUG_4227111
2076:# define RW_THR_NAMESPACE_AMBIGUITY
2077:# else
2078:# error This version of Threads.h++ has not been certified for use with this Sun compiler!