id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 11544,Error: Linker scopes may not change after symbol definition.,lcarreon@…,,"I compiled Boost 1.59.0 with Solaris Studio 12.4 in C++11 mode and I get the following error messages: ""./boost/regex/v4/instances.hpp"", line 172: Error: Linker scopes may not change after symbol definition. ""./boost/regex/v4/instances.hpp"", line 174: Error: Linker scopes may not change after symbol definition. ""libs/serialization/src/basic_archive.cpp"", line 45: Error: Linker scopes may only be more restrictive. ""libs/serialization/src/basic_archive.cpp"", line 79: Error: Linker scopes may only be more restrictive. ""libs/serialization/src/basic_xml_archive.cpp"", line 18: Error: Linker scopes may only be more restrictive. ""libs/serialization/src/basic_xml_archive.cpp"", line 22: Error: Linker scopes may only be more restrictive. ""libs/serialization/src/void_cast.cpp"", line 315: Error: Linker scopes may only be more restrictive. ""libs/serialization/src/void_cast.cpp"", line 349: Error: Linker scopes may only be more restrictive. dmr195 on stackoverflow.com suggested the temporary fix of removing the following lines in boost/config/compiler/sunpro_cc.hpp: // // Dynamic shared object (DSO) and dynamic-link library (DLL) support // #if __SUNPRO_CC > 0x500 # define BOOST_SYMBOL_EXPORT __global # define BOOST_SYMBOL_IMPORT __global # define BOOST_SYMBOL_VISIBLE __global #endif For now I agree with him that everything works even without symbol scoping. It just means that the linker has to deal with a lot more symbols than it needs to. According to the Solaris Studio 12.4 C++ User's Guide, to achieve linker scoping equivalent to Visual Studio's scoping the compiler option -xldscope=hidden must be used in combination with the following: __symbolic (equivalent to __declspec(dllexport)) __global (equivalent to __declspec(dllimport)) The above user's guide also specifically warned to use __global only on symbol declarations, not symbol definitions. This warning is most likely the reason why the errors in regex are happening. BTW, I tried simply changing __global to __symbolic in the definition of BOOST_SYMBOL_EXPORT without any luck. This may mean that either BOOST_SYMBOL_EXPORT or BOOST_SYMBOL_IMPORT is not used correctly. ",Bugs,closed,To Be Determined,Building Boost,Boost 1.59.0,Problem,fixed,"regex, serialization",