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 .
> > >>
> > >>
> > >
> >
> >
> >
>

Reply via email to