Wow That was fast! Thanks a lot! The patch works for me. On Fri, Apr 29, 2011 at 1:03 PM, Gilles Chanteperdrix <[email protected]> wrote: > martin mangard wrote: >> Hello, >> >> I installed xenomai Version 2.5.6 on a x86 machine. I use dlopen in >> order to use the xenomai libraries. >> >> >> hXenomai=dlopen("/usr/lib/libxenocalls-2.5.6.so",RTLD_NOW); >> if(!hXenomai) >> { >> fprintf (stderr, "%s\n", dlerror()); >> fflush(stderr); >> } >> >> >> dlopen aborts with the error: "/usr/lib/libnative.so.3: undefined >> symbol: xeno_current_mode_key" >> >> I configured xenomai with the option " --enable-dlopen-skins " >> >> What do I have to change in order be able to dlopen the libnative.so.3 >> library? > > xeno_current_mod_key is defined in the libxenomai.so library. So, we > have two solutions: > > either we make explicit the dependence between libnative.so and > libxenomai.so, as in the following patch: > > index 3497f90..23beb50 100644 > --- a/src/skins/native/Makefile.am > +++ b/src/skins/native/Makefile.am > @@ -2,6 +2,8 @@ lib_LTLIBRARIES = libnative.la > > libnative_la_LDFLAGS = @XENO_DLOPEN_CONSTRAINT@ -version-info 3:0:0 -lpthread > > +libnative_la_LIBADD = ../common/libxenomai.la > + > libnative_la_SOURCES = \ > alarm.c \ > buffer.c \ > diff --git a/src/skins/native/Makefile.in b/src/skins/native/Makefile.in > index 2775661..011f380 100644 > --- a/src/skins/native/Makefile.in > +++ b/src/skins/native/Makefile.in > @@ -58,7 +58,7 @@ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; > am__installdirs = "$(DESTDIR)$(libdir)" > libLTLIBRARIES_INSTALL = $(INSTALL) > LTLIBRARIES = $(lib_LTLIBRARIES) > -libnative_la_LIBADD = > +libnative_la_DEPENDENCIES = ../common/libxenomai.la > am_libnative_la_OBJECTS = libnative_la-alarm.lo libnative_la-buffer.lo \ > libnative_la-cond.lo libnative_la-event.lo \ > libnative_la-heap.lo libnative_la-init.lo libnative_la-intr.lo \ > @@ -249,6 +249,7 @@ top_builddir = @top_builddir@ > top_srcdir = @top_srcdir@ > lib_LTLIBRARIES = libnative.la > libnative_la_LDFLAGS = @XENO_DLOPEN_CONSTRAINT@ -version-info 3:0:0 -lpthread > +libnative_la_LIBADD = ../common/libxenomai.la > libnative_la_SOURCES = \ > alarm.c \ > buffer.c \ > > I am not sure it will not break the parallel build though it does not > seem to break on a core i7 (make -j 8). > > Or you explicitly dlopen libxenomai.so with RTLD_GLOBAL before dlopening > libnative.so. The drawback being that you pollute the process namespace > with libxenomai symbols. > > -- > Gilles. > > _______________________________________________ > Xenomai-help mailing list > [email protected] > https://mail.gna.org/listinfo/xenomai-help >
_______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
