Hello, apparently we have solved this issue, so I'm posting the solution here for future reference (even if this might not be UIMA-specific). Looking at the Debian Testing OpenCV repositiory we noticed that they use some special linker flags to build the OpenCV package, e.g. -Bsymbolic-functions. We re-built our OpenCV-version with this linker flag and now the problem seems to be solved. We aren't exactly sure why, to be honest. This might also be related to the availability of a new gcc-version in Debian 7, as I'm quite sure, that it was still a problem with earlier pre-built OpenCV-packages.
Best regards, Peter 2014-02-18 19:20 GMT+01:00 Eddie Epstein <[email protected]>: > Sorry, no idea. Web search on {OpenCV Inconsistency detected by ld.so > dl-close.c} is showing a lot of hits. > > > On Tue, Feb 18, 2014 at 10:03 AM, Peter Retzlaff <[email protected] > >wrote: > > > Hi, > > > > I already cross-referenced the ldd-output of libuima and libopencv_core. > > There are some common dependencies (I got a list on my other computer), > > but there are no version differences. > > Also, if I'm not mistaken, libs pulled in with dlopen won't even appear > > in ldd's output, right? > > Therefore, I also combed through the code to check if maybe UIMA and > > OpenCV dlopen the same libs. As far as I can tell, this is not the case. > > > > Peter > > > > On 02/18/2014 02:22 PM, Eddie Epstein wrote: > > > UIMA-C++ uses several libraries including APR, ICU and xercesc. Does > > OpenCV > > > drag in any of these at different version levels? > > > > > > Eddie > > > > > > > > > On Tue, Feb 18, 2014 at 6:34 AM, Peter Retzlaff <[email protected] > > >wrote: > > > > > >> Hello, > > >> > > >> we are working on a UIMA project with several C++-Analysis Engines > > >> (UIMA-AS 2.4 + UIMACPP 2.4). For a while now, we've been getting this > > >> error message, when one of these AEs exits: > > >> > > >> Inconsistency detected by ld.so: dl-close.c: 759: _dl_close: Assertion > > >> `map->l_init_called' > > >> > > >> In particular, this happens with AEs that use OpenCV. I have > constructed > > >> a toy example that does nothing, except defining an Annotator, linking > > >> it against OpenCV and UIMA and executing it with runAECpp. > > >> > > >> The error message seems to be related to the fact, that some calls to > > >> dlclose happen in library destructors which are called _after_ all > > >> dynamically loaded libraries have been unloaded. (see > > >> https://bugzilla.novell.com/show_bug.cgi?id=622977, for example) > > >> > > >> So this error might not be specific to UIMA, but what's baffling me is > > >> that it only occurs, when UIMA and OpenCV are both linked into the > lib. > > >> Linking either one of them on it's own doesn't produce the error > > message. > > >> > > >> Has anyone ever seen this problem with C++-AEs before? I'm desperately > > >> looking for any pointers or hints, how this problem could be resolved. > > >> > > >> Thanks and best regards > > >> Peter > > >> > > >> > > >> P.S.: This is the test code I use: > > >> TestAnnotator.cpp: > > >> "#include "uima/api.hpp" > > >> using namespace uima; > > >> > > >> class TestAnnotator: public Annotator { > > >> }; > > >> // This macro exports an entry point that is used to create the > > annotator. > > >> > > >> MAKE_AE( TestAnnotator); > > >> " > > >> > > >> Makefile: > > >> " > > >> UIMACPP_HOME=/opt/apache-uima-as/uimacpp > > >> UIMA_HOME=/opt/apache-uima-as > > >> TARGET_FILE=TestAnnotator > > >> OBJS=TestAnnotator.o > > >> USER_LINKFLAGS=/usr/local/lib/libopencv_core.so.2.4.3-1 > > >> DEBUG=1 > > >> DLL_BUILD=1 > > >> > > >> all: > > >> # include file with generic compiler instructions > > >> include $(UIMACPP_HOME)/lib/base.mak > > >> > > >> Executing it with: > > >> /opt/apache-uima-as/uimacpp/bin/runAECpp ./TestAnnotatorAE.xml -x > > >> testdata/cas.xml . > > >> > > >> > > > > > > > > > >
