Subject: Re: [Boost-bugs] [Boost C++ Libraries] #11784: basic_xml_grammar.hpp
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-11-05 23:52:24
#11784: basic_xml_grammar.hpp
-------------------------------+---------------------------
Reporter: epsilonomega2k@⦠| Owner: ramey
Type: Bugs | Status: closed
Milestone: To Be Determined | Component: serialization
Version: Boost 1.59.0 | Severity: Problem
Resolution: invalid | Keywords:
-------------------------------+---------------------------
Comment (by epsilonomega2k@â¦):
This actually is a subtle problem on my platform and by extension I expect
it to be a problem for some other people, so here are the details:
The compiler/linker does not make the symbols created by the instantiation
of basic_xml_grammar<char> inside xml_grammar.cpp available in
libboost_serialization.so.1.59.0. They are available in
libboost_serialization.a, so static linking is unaffected. I observed this
by running nm -g -C on both libraries.
To correct the problem for my local copy I just placed
{{{
#!c++
__attribute__ ((visibility ("default")))
}}}
in the definitions of the member functions of basic_xml_grammar inside
basic_xml_grammar.ipp . This forces the symbols to be placed inside the
dynamic shared object library in the case of g++ (I am using g++ (Ubuntu
4.8.4-2ubuntu1~14.04) 4.8.4).
I am not versed enough in compilers, pragmas and such to recommend a
solution in the generic case, but I suggest that someone at least manually
check that these dynamic libraries export the symbols for the members of
basic_xml_grammar<char> when the compilation is made with the latest
versions of g++. One does not run into this problem until one tries link
versus the dynamic libraries and I am not certain that anyone ever tested
this before making the release, especially if this happens only on some
compilers and not others.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/11784#comment:2> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:19 UTC