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

Reply via email to