[Paraview] dlclose assertion error with boost::regex
Andrew Ho
andrewh0 at uw.edu
Fri Jun 20 23:27:01 EDT 2014
I am trying to build a server plugin which utilizes the boost::regex
library, and for some reason when I quit paraview I get this message:
Inconsistency detected by ld.so: dl-close.c: 762: _dl_close: Assertion
`map->l_init_called' failed!
I've setup a basic project which demonstrates the issue:
CMakeLists.txt:
find_package(ParaView REQUIRED)
find_package(Boost COMPONENTS regex REQUIRED)
include(${PARAVIEW_USE_FILE})
ADD_PARAVIEW_PLUGIN(RegexProblem "1.0"
SERVER_MANAGER_XML reader.xml
SERVER_MANAGER_SOURCES main.cpp
)
target_link_libraries(RegexProblem PRIVATE
${Boost_REGEX_LIBRARY}
)
Then I added a simple regex search to the RequestData function:
#include <boost/regex.hpp>
int main::RequestData(vtkInformation *request, vtkInformationVector
**inVec, vtkInformationVector *outVec)
{
std::string base_name = "ab12cd34";
boost::regex last_num("\\d+$");
boost::match_results<std::string::iterator> match;
// The next line is the one which triggers the issue
boost::regex_search(base_name.begin(), base_name.end(), match, last_num);
return 1;
}
I don't have any issues with other libraries (filesystem, system, hdf5).
I've also tried creating a separate executable which calls dlopen/dlclose
on the library and have had no issues.
Is there something I'm doing wrong, or is a fundamental issue with
ParaView/my OS? I'm running 64-bit Ubuntu 14.04. I'm using the git master
(v4.1.0-934-g29029db)
The one thing I can do to get this message to go away is to change the
target_link_libraries to INTERFACE, but then the code will crash on trying
to run RequestData because it can't find the symbols.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/paraview/attachments/20140620/b594d1ee/attachment.html>
More information about the ParaView
mailing list