Boost C++ Libraries: Ticket #11547: Symbol referencing errors https://svn.boost.org/trac10/ticket/11547 <p> Due to the changes from Tickets <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/11544" title="#11544: Bugs: Error: Linker scopes may not change after symbol definition. (closed: fixed)">#11544</a> and <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/11546" title="#11546: Bugs: Incorrect use of __declspec (closed: fixed)">#11546</a>, the following errors have appeared: </p> <p> std::string::basic_string (const std::string &amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::append(const char*,unsigned long) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::append(const std::string &amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::swap(std::string &amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::find(char,unsigned long)const bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) const std::ctype&lt;char&gt;&amp; std::use_facet&lt;std::ctype&lt;char&gt; &gt;(const std::locale&amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::ios::imbue(const std::locale&amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::append(unsigned long,char) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::_M_leak_hard() bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::basic_string (const char*,const std::allocator&lt;char&gt;&amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::replace(unsigned long,unsigned long,const char*,unsigned long) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::ostream &amp; std::ostream::_M_insert&lt;long double&gt;(long double) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::reserve(unsigned long) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::ios::clear(std::_Ios_Iostate) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::resize(unsigned long,char) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::_Rep::_M_destroy(const std::allocator&lt;char&gt;&amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::assign(const char*,unsigned long) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::string::assign(const std::string &amp;) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::ostream &amp; std::<span class="underline">ostream_insert&lt;char, std::char_traits&lt;char&gt; &gt;(std::ostream &amp;,const char*,long) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) std::ios::init(std::streambuf *) bin.v2/libs/math/build/sun/release/address-model-64/threading-multi/comp_ellint_1.o (symbol scope specifies local binding) ld: fatal: symbol referencing errors </span></p> <p> The temporary fix for this problem is to delete line <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/19" title="#19: Bugs: Problems building on NT &amp; Linux (closed: Out of Date)">#19</a> in libs/math/build/Jamfile.v2. This line contains this: </p> <blockquote> <p> &lt;toolset&gt;sun:&lt;cxxflags&gt;-xldscope=hidden </p> </blockquote> <p> This indicates that a review of symbol scoping on Solaris has to be performed. It needs to follow the recommendations from the Solaris Studio 12.4 User's Guide as mentioned in ticket <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/11544" title="#11544: Bugs: Error: Linker scopes may not change after symbol definition. (closed: fixed)">#11544</a>. The changes have to be applied across the board all the Boost libraries that generated a shared object. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/11547 Trac 1.4.3 John Maddock Thu, 20 Aug 2015 08:04:52 GMT <link>https://svn.boost.org/trac10/ticket/11547#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/11547#comment:1</guid> <description> <p> Actually I believe we do follow that guide - the issue in this case is quite different and not related to Boost as such: if you build with hidden visibility and your shared object references std lib symbols, then you get the linker errors shown above. I don't think there's anything we can do to fix this, as it's the C++ std lib that needs marking up as <code>__global</code>. </p> <p> I've disabled use of hidden builds for now in <a class="ext-link" href="https://github.com/boostorg/math/commit/8f252f78a02cc55b726b4a0e6198be2b0a5e0814"><span class="icon">​</span>https://github.com/boostorg/math/commit/8f252f78a02cc55b726b4a0e6198be2b0a5e0814</a> </p> </description> <category>Ticket</category> </item> <item> <dc:creator>John Maddock</dc:creator> <pubDate>Thu, 03 Sep 2015 17:44:55 GMT</pubDate> <title>status, milestone changed; resolution set https://svn.boost.org/trac10/ticket/11547#comment:2 https://svn.boost.org/trac10/ticket/11547#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">fixed</span> </li> <li><strong>milestone</strong> <span class="trac-field-old">To Be Determined</span> → <span class="trac-field-new">Boost 1.60.0</span> </li> </ul> <p> Merged to develop, targeting 1.60. </p> Ticket