failed install

Hey folks,

We're upgrading to ROS Electric and Orocos 2.5. I'm the Guinea pig for getting the installation working with Xenomai. I'm running into some problems when I use rosmake to build orocos_toolchain, though.

Full details here: http://pastebin.com/KxqmE3MD

Running Ubuntu 11.10, with a vanilla kernel 2.6.38.8 patched with Xenomai 2.6.0. Xenomai was installed using the --dlopen-skins configure option. It seems to be loaded and running correctly. I installed ROS Electric using the Ubuntu packages (sudo apt-get install ros-electric-ros-base). Then I followed the instructions found at http://www.ros.org/wiki/orocos_toolchain for compiling Orocos from source. I set my OROCOS_TARGET variable to 'xenomai'. rosmake seems to find Xenomai just fine, but I get the following error:

make[3]: Entering directory `/opt/ros/electric/stacks/orocos_toolchain/rtt/build'
Linking CXX shared library librtt-typekit-xenomai.so
CMakeFiles/rtt-typekit-xenomai_plugin.dir/RealTimeTypekitTypes.cpp.o: file not recognized: File truncated
collect2: ld returned 1 exit status
make[3]: *** [rtt/typekit/librtt-typekit-xenomai.so.2.5.0] Error 1

This is probably a Xenomai 2.5 vs Xenomai 2.6 issue (given the error). Any ideas? Has this been fixed in a branch? Do I just need to bump back down to Xenomai 2.5?

--
Dustin Gooding
NASA/JSC Robotics

failed install

Hi Goeksel,

On Fri, Mar 9, 2012 at 8:10 AM, <gosonuc [..] ...> wrote:
> Hi Dustin,
>
> I had the same undefined reference errors, while trying to compile orocos
> with xenomai.
> The problem is that Ubuntu 11.10 uses --as-needed for the linking process by
> default.
> This seems to break the orocos build. I guess the proper way to fix this
> issue
> would be to rearrange the link order of the libraries.
> A quick and dirty way is to disable the flag using --no-as-needed.
>
> Hope this helps you and others who walk into the same trap.

Thanks a lot for pointing this out. I just pushed the 'clean' fix to
toolchain-2.5. Your comment saved me a lot of time figuring it out...

>
> Best regards
>
> Goeksel

Peter

failed install

2011/12/12 Gooding, Dustin R. (JSC-ER411) <dustin [dot] r [dot] gooding [..] ...>:
> Hey folks,
>
> We're upgrading to ROS Electric and Orocos 2.5.  I'm the Guinea pig for
> getting the installation working with Xenomai.   I'm running into some
> problems when I use rosmake to build orocos_toolchain, though.
>
> Full details here:  http://pastebin.com/KxqmE3MD
>
> Running Ubuntu 11.10, with a vanilla kernel 2.6.38.8 patched with Xenomai
> 2.6.0.  Xenomai was installed using the --dlopen-skins configure option.  It
> seems to be loaded and running correctly.  I installed ROS Electric using
> the Ubuntu packages (sudo apt-get install ros-electric-ros-base).  Then I
> followed the instructions found
> at http://www.ros.org/wiki/orocos_toolchain for compiling Orocos from
> source.  I set my OROCOS_TARGET variable to 'xenomai'.  rosmake seems to
> find Xenomai just fine, but I get the following error:
>
> make[3]: Entering directory
> `/opt/ros/electric/stacks/orocos_toolchain/rtt/build'
>  Linking CXX shared library librtt-typekit-xenomai.so
>  CMakeFiles/rtt-typekit-xenomai_plugin.dir/RealTimeTypekitTypes.cpp.o: file
> not recognized: File truncated
>  collect2: ld returned 1 exit status
>  make[3]: *** [rtt/typekit/librtt-typekit-xenomai.so.2.5.0] Error 1
>
> This is probably a Xenomai 2.5 vs Xenomai 2.6 issue (given the error).  Any
> ideas?  Has this been fixed in a branch?  Do I just need to bump back down
> to Xenomai 2.5?

Try removing the corrupted file. It's an artifact from a previous
build, which got aborted somehow. I compiled the toolchain under
electric on xenomai (2.6) last week as well. Make sure you have the
latest RTT master branch, as some fixes were added for Xenomai 2.6.

regards,

Steven

>
> --
> Dustin Gooding
> NASA/JSC Robotics
>
>
>

failed install

Thanks Steven. I re-ran rosmake with the --pre-clean flag and it cleared up this error I was seeing.

Now, I'm moving on to figuring out why I'm getting undefined reference errors:

/*
Linking CXX executable ../../bin/cdeployer-xenomai
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_set_current'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_current_mode_key'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_sigshadow_install_once'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_slow_get_current'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_bind_skin_opt'
/usr/xenomai/lib/libnative.so: undefined reference to `xnarch_ns_to_tsc'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_current_key'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_handle_mlock_alert'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_map_heap'
/usr/xenomai/lib/libnative.so: undefined reference to `xnarch_tsc_to_ns'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_set_current_mode'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_fault_stack'
/usr/xenomai/lib/libnative.so: undefined reference to `xeno_sem_heap'
collect2: ld returned 1 exit status
make[3]: *** [../bin/cdeployer-xenomai] Error 1
*/

My ldconfig shows I have Xenomai libraries available:

/*
dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ sudo ldconfig -p | grep 'xeno'
libxenomai.so.0 (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so.0
libxenomai.so (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so
libvxworks.so.1 (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so.1
libvxworks.so (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so
libvrtx.so.0 (libc6,x86-64) => /usr/xenomai/lib/libvrtx.so.0
libvrtx.so (libc6,x86-64) => /usr/xenomai/lib/libvrtx.so
libuitron.so.0 (libc6,x86-64) => /usr/xenomai/lib/libuitron.so.0
libuitron.so (libc6,x86-64) => /usr/xenomai/lib/libuitron.so
librtdm.so.1 (libc6,x86-64) => /usr/xenomai/lib/librtdm.so.1
librtdm.so (libc6,x86-64) => /usr/xenomai/lib/librtdm.so
libpthread_rt.so.1 (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so.1
libpthread_rt.so (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so
libpsos.so.0 (libc6,x86-64) => /usr/xenomai/lib/libpsos.so.0
libpsos.so (libc6,x86-64) => /usr/xenomai/lib/libpsos.so
libnative.so.3 (libc6,x86-64) => /usr/xenomai/lib/libnative.so.3
libnative.so (libc6,x86-64) => /usr/xenomai/lib/libnative.so
libanalogy.so.1 (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so.1
libanalogy.so (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so
*/

It looks like a prior post (http://lists.mech.kuleuven.be/pipermail/orocos-users/2010-May/001909.html) mentions a similar problem, and a work around is discussed (adjusting CMAKE_MODULE_LINKER_FLAGS) and Peter mentioned fixed the FindXenomai.cmake macro… but I'm guessing those haven't made it into the repo yet.

--
Dustin Gooding
NASA/JSC Robotics

Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety. - Ben Franklin, 1759

On Dec 12, 2011, at 12:18 PM, Steven Bellens wrote:

> 2011/12/12 Gooding, Dustin R. (JSC-ER411) <dustin [dot] r [dot] gooding [..] ...>:
>> Hey folks,
>>
>> We're upgrading to ROS Electric and Orocos 2.5. I'm the Guinea pig for
>> getting the installation working with Xenomai. I'm running into some
>> problems when I use rosmake to build orocos_toolchain, though.
>>
>> Full details here: http://pastebin.com/KxqmE3MD
>>
>> Running Ubuntu 11.10, with a vanilla kernel 2.6.38.8 patched with Xenomai
>> 2.6.0. Xenomai was installed using the --dlopen-skins configure option. It
>> seems to be loaded and running correctly. I installed ROS Electric using
>> the Ubuntu packages (sudo apt-get install ros-electric-ros-base). Then I
>> followed the instructions found
>> at http://www.ros.org/wiki/orocos_toolchain for compiling Orocos from
>> source. I set my OROCOS_TARGET variable to 'xenomai'. rosmake seems to
>> find Xenomai just fine, but I get the following error:
>>
>> make[3]: Entering directory
>> `/opt/ros/electric/stacks/orocos_toolchain/rtt/build'
>> Linking CXX shared library librtt-typekit-xenomai.so
>> CMakeFiles/rtt-typekit-xenomai_plugin.dir/RealTimeTypekitTypes.cpp.o: file
>> not recognized: File truncated
>> collect2: ld returned 1 exit status
>> make[3]: *** [rtt/typekit/librtt-typekit-xenomai.so.2.5.0] Error 1
>>
>> This is probably a Xenomai 2.5 vs Xenomai 2.6 issue (given the error). Any
>> ideas? Has this been fixed in a branch? Do I just need to bump back down
>> to Xenomai 2.5?
>
> Try removing the corrupted file. It's an artifact from a previous
> build, which got aborted somehow. I compiled the toolchain under
> electric on xenomai (2.6) last week as well. Make sure you have the
> latest RTT master branch, as some fixes were added for Xenomai 2.6.
>
> regards,
>
> Steven
>
>>
>> --
>> Dustin Gooding
>> NASA/JSC Robotics
>>
>>
>>

failed install

On Mon, Dec 12, 2011 at 9:26 PM, Gooding, Dustin R. (JSC-ER411)
<dustin [dot] r [dot] gooding [..] ...> wrote:
> Thanks Steven.    I re-ran rosmake with the --pre-clean flag and it cleared up this error I was seeing.
>
> Now, I'm moving on to figuring out why I'm getting undefined reference errors:
>
> /*
> Linking CXX executable ../../bin/cdeployer-xenomai
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_set_current'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_current_mode_key'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_sigshadow_install_once'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_slow_get_current'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_bind_skin_opt'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xnarch_ns_to_tsc'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_current_key'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_handle_mlock_alert'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_map_heap'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xnarch_tsc_to_ns'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_set_current_mode'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_fault_stack'
>  /usr/xenomai/lib/libnative.so: undefined reference to `xeno_sem_heap'
>  collect2: ld returned 1 exit status
>  make[3]: *** [../bin/cdeployer-xenomai] Error 1
> */
>
> My ldconfig shows I have Xenomai libraries available:
>
> /*
> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ sudo ldconfig -p | grep 'xeno'
>        libxenomai.so.0 (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so.0
>        libxenomai.so (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so
>        libvxworks.so.1 (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so.1
>        libvxworks.so (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so
>        libvrtx.so.0 (libc6,x86-64) => /usr/xenomai/lib/libvrtx.so.0
>        libvrtx.so (libc6,x86-64) => /usr/xenomai/lib/libvrtx.so
>        libuitron.so.0 (libc6,x86-64) => /usr/xenomai/lib/libuitron.so.0
>        libuitron.so (libc6,x86-64) => /usr/xenomai/lib/libuitron.so
>        librtdm.so.1 (libc6,x86-64) => /usr/xenomai/lib/librtdm.so.1
>        librtdm.so (libc6,x86-64) => /usr/xenomai/lib/librtdm.so
>        libpthread_rt.so.1 (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so.1
>        libpthread_rt.so (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so
>        libpsos.so.0 (libc6,x86-64) => /usr/xenomai/lib/libpsos.so.0
>        libpsos.so (libc6,x86-64) => /usr/xenomai/lib/libpsos.so
>        libnative.so.3 (libc6,x86-64) => /usr/xenomai/lib/libnative.so.3
>        libnative.so (libc6,x86-64) => /usr/xenomai/lib/libnative.so
>        libanalogy.so.1 (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so.1
>        libanalogy.so (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so
> */
>
> It looks like a prior post (http://lists.mech.kuleuven.be/pipermail/orocos-users/2010-May/001909.html) mentions a similar problem, and a work around is discussed (adjusting CMAKE_MODULE_LINKER_FLAGS) and Peter mentioned fixed the FindXenomai.cmake macro…  but I'm guessing those haven't made it into the repo yet.

The FindXenomai.cmake macro is correct and search for both libraries.
You can verify this by looking at rtt/orocos-rtt-xenomai.pc which is
being picked up by OCL. So it's something else. The only obvious error
you could make is that there is a mixup of Xenomai versions. For
example including Xenomai 2.6 headers and linking with 2.5 (or the
other way around).

Peter

failed install

On Dec 12, 2011, at 4:18 PM, Peter Soetens wrote:

> On Mon, Dec 12, 2011 at 9:26 PM, Gooding, Dustin R. (JSC-ER411)
> <dustin [dot] r [dot] gooding [..] ...> wrote:
>> Thanks Steven. I re-ran rosmake with the --pre-clean flag and it cleared up this error I was seeing.
>>
>> Now, I'm moving on to figuring out why I'm getting undefined reference errors:
>>
>> /*
>> Linking CXX executable ../../bin/cdeployer-xenomai
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_set_current'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_current_mode_key'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_sigshadow_install_once'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_slow_get_current'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_bind_skin_opt'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xnarch_ns_to_tsc'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_current_key'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_handle_mlock_alert'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_map_heap'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xnarch_tsc_to_ns'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_set_current_mode'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_fault_stack'
>> /usr/xenomai/lib/libnative.so: undefined reference to `xeno_sem_heap'
>> collect2: ld returned 1 exit status
>> make[3]: *** [../bin/cdeployer-xenomai] Error 1
>> */
>>
>> My ldconfig shows I have Xenomai libraries available:
>>
>> /*
>> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ sudo ldconfig -p | grep 'xeno'
>> libxenomai.so.0 (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so.0
>> libxenomai.so (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so
>> libvxworks.so.1 (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so.1
>> libvxworks.so (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so
>> libvrtx.so.0 (libc6,x86-64) => /usr/xenomai/lib/libvrtx.so.0
>> libvrtx.so (libc6,x86-64) => /usr/xenomai/lib/libvrtx.so
>> libuitron.so.0 (libc6,x86-64) => /usr/xenomai/lib/libuitron.so.0
>> libuitron.so (libc6,x86-64) => /usr/xenomai/lib/libuitron.so
>> librtdm.so.1 (libc6,x86-64) => /usr/xenomai/lib/librtdm.so.1
>> librtdm.so (libc6,x86-64) => /usr/xenomai/lib/librtdm.so
>> libpthread_rt.so.1 (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so.1
>> libpthread_rt.so (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so
>> libpsos.so.0 (libc6,x86-64) => /usr/xenomai/lib/libpsos.so.0
>> libpsos.so (libc6,x86-64) => /usr/xenomai/lib/libpsos.so
>> libnative.so.3 (libc6,x86-64) => /usr/xenomai/lib/libnative.so.3
>> libnative.so (libc6,x86-64) => /usr/xenomai/lib/libnative.so
>> libanalogy.so.1 (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so.1
>> libanalogy.so (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so
>> */
>>
>> It looks like a prior post (http://lists.mech.kuleuven.be/pipermail/orocos-users/2010-May/001909.html) mentions a similar problem, and a work around is discussed (adjusting CMAKE_MODULE_LINKER_FLAGS) and Peter mentioned fixed the FindXenomai.cmake macro… but I'm guessing those haven't made it into the repo yet.
>
> The FindXenomai.cmake macro is correct and search for both libraries.
> You can verify this by looking at rtt/orocos-rtt-xenomai.pc which is
> being picked up by OCL. So it's something else. The only obvious error
> you could make is that there is a mixup of Xenomai versions. For
> example including Xenomai 2.6 headers and linking with 2.5 (or the
> other way around).

This is a brand new machine, installed from scratch. There's never been a Xenomai 2.5 instance on it. My coworker has been shadowing my work on his brand new box and is getting the same error. So it's very likely a configuration error on my part, I just don't know where to start looking.

You're correct in that orocos_toolchain/rtt/build/rtt/orocos-rtt-xenomai.pc has both -lxenomai and -lnative listed in it's Libs variable, along with a good -Lpath.

I don't know if this helps at all, but here's some output from xeno-config:

/*
dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ xeno-config --verbose
xeno-config --verbose
--version="2.6.0"
--cc="gcc"
--arch="x86"
--prefix="/usr/xenomai"
--xeno-cflags="-I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -Wall -Werror-implicit-function-declaration -pipe -D__XENO__"
--xeno-ldflags="-L/usr/xenomai/lib -lxenomai -lpthread -lrt "
--posix-cflags=""
--posix-ldflags="-Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt "
--library-dir="/usr/xenomai/lib"
*/

To me, it looks like the .pc file is using the same linker settings that xeno-config is suggesting.

I've attached the full log from running "rosmake --pre-clean orocos_toolchain". Hopefully there's a secret nugget of info in there that can help.

--
Dustin Gooding
NASA/JSC Robotics

Ruben Smits's picture

failed install

Hi Dustin,

On Monday 12 December 2011 17:19:47 Gooding, Dustin R. wrote:
> On Dec 12, 2011, at 4:18 PM, Peter Soetens wrote:
> > On Mon, Dec 12, 2011 at 9:26 PM, Gooding, Dustin R. (JSC-ER411)
> >
> > <dustin [dot] r [dot] gooding [..] ...> wrote:
> >> Thanks Steven. I re-ran rosmake with the --pre-clean flag and it
> >> cleared up this error I was seeing.
> >>
> >> Now, I'm moving on to figuring out why I'm getting undefined reference
> >> errors:
> >>
> >> /*
> >> Linking CXX executable ../../bin/cdeployer-xenomai
> >>
> >> /usr/xenomai/lib/libnative.so: undefined reference to
> >> `xeno_set_current' /usr/xenomai/lib/libnative.so: undefined
> >> reference to `xeno_current_mode_key' /usr/xenomai/lib/libnative.so:
> >> undefined reference to `xeno_sigshadow_install_once'
> >> /usr/xenomai/lib/libnative.so: undefined reference to
> >> `xeno_slow_get_current' /usr/xenomai/lib/libnative.so: undefined
> >> reference to `xeno_bind_skin_opt' /usr/xenomai/lib/libnative.so:
> >> undefined reference to `xnarch_ns_to_tsc'
> >> /usr/xenomai/lib/libnative.so: undefined reference to
> >> `xeno_current_key' /usr/xenomai/lib/libnative.so: undefined
> >> reference to `xeno_handle_mlock_alert'
> >> /usr/xenomai/lib/libnative.so: undefined reference to
> >> `xeno_map_heap' /usr/xenomai/lib/libnative.so: undefined reference
> >> to `xnarch_tsc_to_ns' /usr/xenomai/lib/libnative.so: undefined
> >> reference to `xeno_set_current_mode' /usr/xenomai/lib/libnative.so:
> >> undefined reference to `xeno_fault_stack'
> >> /usr/xenomai/lib/libnative.so: undefined reference to
> >> `xeno_sem_heap' collect2: ld returned 1 exit status
> >> make[3]: *** [../bin/cdeployer-xenomai] Error 1
> >>
> >> */
> >>
> >> My ldconfig shows I have Xenomai libraries available:
> >>
> >> /*
> >> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ sudo
> >> ldconfig -p | grep 'xeno'>>
> >> libxenomai.so.0 (libc6,x86-64) =>
> >> /usr/xenomai/lib/libxenomai.so.0 libxenomai.so
> >> (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so
> >> libvxworks.so.1 (libc6,x86-64) =>
> >> /usr/xenomai/lib/libvxworks.so.1 libvxworks.so
> >> (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so
> >> libvrtx.so.0 (libc6,x86-64) =>
> >> /usr/xenomai/lib/libvrtx.so.0 libvrtx.so (libc6,x86-64)
> >> => /usr/xenomai/lib/libvrtx.so libuitron.so.0
> >> (libc6,x86-64) => /usr/xenomai/lib/libuitron.so.0
> >> libuitron.so (libc6,x86-64) =>
> >> /usr/xenomai/lib/libuitron.so librtdm.so.1
> >> (libc6,x86-64) => /usr/xenomai/lib/librtdm.so.1
> >> librtdm.so (libc6,x86-64) =>
> >> /usr/xenomai/lib/librtdm.so libpthread_rt.so.1
> >> (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so.1
> >> libpthread_rt.so (libc6,x86-64) =>
> >> /usr/xenomai/lib/libpthread_rt.so libpsos.so.0
> >> (libc6,x86-64) => /usr/xenomai/lib/libpsos.so.0
> >> libpsos.so (libc6,x86-64) =>
> >> /usr/xenomai/lib/libpsos.so libnative.so.3
> >> (libc6,x86-64) => /usr/xenomai/lib/libnative.so.3
> >> libnative.so (libc6,x86-64) =>
> >> /usr/xenomai/lib/libnative.so libanalogy.so.1
> >> (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so.1
> >> libanalogy.so (libc6,x86-64) =>
> >> /usr/xenomai/lib/libanalogy.so>>
> >> */
> >>
> >> It looks like a prior post
> >> (http://lists.mech.kuleuven.be/pipermail/orocos-users/2010-May/001909
> >> .html) mentions a similar problem, and a work around is discussed
> >> (adjusting CMAKE_MODULE_LINKER_FLAGS) and Peter mentioned fixed the
> >> FindXenomai.cmake macro… but I'm guessing those haven't made it into
> >> the repo yet.>
> > The FindXenomai.cmake macro is correct and search for both libraries.
> > You can verify this by looking at rtt/orocos-rtt-xenomai.pc which is
> > being picked up by OCL. So it's something else. The only obvious error
> > you could make is that there is a mixup of Xenomai versions. For
> > example including Xenomai 2.6 headers and linking with 2.5 (or the
> > other way around).
>
> This is a brand new machine, installed from scratch. There's never been a
> Xenomai 2.5 instance on it. My coworker has been shadowing my work on his
> brand new box and is getting the same error. So it's very likely a
> configuration error on my part, I just don't know where to start looking.
>
> You're correct in that orocos_toolchain/rtt/build/rtt/orocos-rtt-xenomai.pc
> has both -lxenomai and -lnative listed in it's Libs variable, along with a
> good -Lpath.
>
> I don't know if this helps at all, but here's some output from xeno-config:
>
> /*
> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ xeno-config
> --verbose xeno-config --verbose
> --version="2.6.0"
> --cc="gcc"
> --arch="x86"
> --prefix="/usr/xenomai"
> --xeno-cflags="-I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT
> -Wall -Werror-implicit-function-declaration -pipe -D__XENO__"
> --xeno-ldflags="-L/usr/xenomai/lib -lxenomai -lpthread -lrt "
> --posix-cflags=""
> --posix-ldflags="-Wl,@/usr/xenomai/lib/posix.wrappers
> -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt "
> --library-dir="/usr/xenomai/lib"
> */
>
> To me, it looks like the .pc file is using the same linker settings that
> xeno-config is suggesting.

I don't see -lnative in this list, maybe it's not needed??

> I've attached the full log from running "rosmake --pre-clean
> orocos_toolchain". Hopefully there's a secret nugget of info in there that
> can help.

Could you rerun only the rtt build with 'make VERBOSE=1' that will give us a
lot more information.

Ruben

> --
> Dustin Gooding
> NASA/JSC Robotics

failed install

On Dec 13, 2011, at 2:34 AM, Ruben Smits wrote:

> Hi Dustin,
>
> On Monday 12 December 2011 17:19:47 Gooding, Dustin R. wrote:
>> On Dec 12, 2011, at 4:18 PM, Peter Soetens wrote:
>>> On Mon, Dec 12, 2011 at 9:26 PM, Gooding, Dustin R. (JSC-ER411)
>>>
>>> <dustin [dot] r [dot] gooding [..] ...> wrote:
>>>> Thanks Steven. I re-ran rosmake with the --pre-clean flag and it
>>>> cleared up this error I was seeing.
>>>>
>>>> Now, I'm moving on to figuring out why I'm getting undefined reference
>>>> errors:
>>>>
>>>> /*
>>>> Linking CXX executable ../../bin/cdeployer-xenomai
>>>>
>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>> `xeno_set_current' /usr/xenomai/lib/libnative.so: undefined
>>>> reference to `xeno_current_mode_key' /usr/xenomai/lib/libnative.so:
>>>> undefined reference to `xeno_sigshadow_install_once'
>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>> `xeno_slow_get_current' /usr/xenomai/lib/libnative.so: undefined
>>>> reference to `xeno_bind_skin_opt' /usr/xenomai/lib/libnative.so:
>>>> undefined reference to `xnarch_ns_to_tsc'
>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>> `xeno_current_key' /usr/xenomai/lib/libnative.so: undefined
>>>> reference to `xeno_handle_mlock_alert'
>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>> `xeno_map_heap' /usr/xenomai/lib/libnative.so: undefined reference
>>>> to `xnarch_tsc_to_ns' /usr/xenomai/lib/libnative.so: undefined
>>>> reference to `xeno_set_current_mode' /usr/xenomai/lib/libnative.so:
>>>> undefined reference to `xeno_fault_stack'
>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>> `xeno_sem_heap' collect2: ld returned 1 exit status
>>>> make[3]: *** [../bin/cdeployer-xenomai] Error 1
>>>>
>>>> */
>>>>
>>>> My ldconfig shows I have Xenomai libraries available:
>>>>
>>>> /*
>>>> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ sudo
>>>> ldconfig -p | grep 'xeno'>>
>>>> libxenomai.so.0 (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libxenomai.so.0 libxenomai.so
>>>> (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so
>>>> libvxworks.so.1 (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libvxworks.so.1 libvxworks.so
>>>> (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so
>>>> libvrtx.so.0 (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libvrtx.so.0 libvrtx.so (libc6,x86-64)
>>>> => /usr/xenomai/lib/libvrtx.so libuitron.so.0
>>>> (libc6,x86-64) => /usr/xenomai/lib/libuitron.so.0
>>>> libuitron.so (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libuitron.so librtdm.so.1
>>>> (libc6,x86-64) => /usr/xenomai/lib/librtdm.so.1
>>>> librtdm.so (libc6,x86-64) =>
>>>> /usr/xenomai/lib/librtdm.so libpthread_rt.so.1
>>>> (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so.1
>>>> libpthread_rt.so (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libpthread_rt.so libpsos.so.0
>>>> (libc6,x86-64) => /usr/xenomai/lib/libpsos.so.0
>>>> libpsos.so (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libpsos.so libnative.so.3
>>>> (libc6,x86-64) => /usr/xenomai/lib/libnative.so.3
>>>> libnative.so (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libnative.so libanalogy.so.1
>>>> (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so.1
>>>> libanalogy.so (libc6,x86-64) =>
>>>> /usr/xenomai/lib/libanalogy.so>>
>>>> */
>>>>
>>>> It looks like a prior post
>>>> (http://lists.mech.kuleuven.be/pipermail/orocos-users/2010-May/001909
>>>> .html) mentions a similar problem, and a work around is discussed
>>>> (adjusting CMAKE_MODULE_LINKER_FLAGS) and Peter mentioned fixed the
>>>> FindXenomai.cmake macro… but I'm guessing those haven't made it into
>>>> the repo yet.>
>>> The FindXenomai.cmake macro is correct and search for both libraries.
>>> You can verify this by looking at rtt/orocos-rtt-xenomai.pc which is
>>> being picked up by OCL. So it's something else. The only obvious error
>>> you could make is that there is a mixup of Xenomai versions. For
>>> example including Xenomai 2.6 headers and linking with 2.5 (or the
>>> other way around).
>>
>> This is a brand new machine, installed from scratch. There's never been a
>> Xenomai 2.5 instance on it. My coworker has been shadowing my work on his
>> brand new box and is getting the same error. So it's very likely a
>> configuration error on my part, I just don't know where to start looking.
>>
>> You're correct in that orocos_toolchain/rtt/build/rtt/orocos-rtt-xenomai.pc
>> has both -lxenomai and -lnative listed in it's Libs variable, along with a
>> good -Lpath.
>>
>> I don't know if this helps at all, but here's some output from xeno-config:
>>
>> /*
>> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ xeno-config
>> --verbose xeno-config --verbose
>> --version="2.6.0"
>> --cc="gcc"
>> --arch="x86"
>> --prefix="/usr/xenomai"
>> --xeno-cflags="-I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT
>> -Wall -Werror-implicit-function-declaration -pipe -D__XENO__"
>> --xeno-ldflags="-L/usr/xenomai/lib -lxenomai -lpthread -lrt "
>> --posix-cflags=""
>> --posix-ldflags="-Wl,@/usr/xenomai/lib/posix.wrappers
>> -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt "
>> --library-dir="/usr/xenomai/lib"
>> */
>>
>> To me, it looks like the .pc file is using the same linker settings that
>> xeno-config is suggesting.
>
> I don't see -lnative in this list, maybe it's not needed??
>
>> I've attached the full log from running "rosmake --pre-clean
>> orocos_toolchain". Hopefully there's a secret nugget of info in there that
>> can help.
>
> Could you rerun only the rtt build with 'make VERBOSE=1' that will give us a
> lot more information.
>
>
> Ruben

Hi Ruben,

I did a bit more poking and found that "xeno-config --verbose" isn't the best way to find what the recommended flags are. Here's potentially a better result.

/*
dgooding@wall-e:~$ xeno-config --skin=native --ldflags
-lnative -L/usr/xenomai/lib -lxenomai -lpthread -lrt

dgooding@wall-e:~$ xeno-config --skin=posix --ldflags
-Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt
*/

I've also attached the full log of making RTT with verbosity. The "make clean" step shown first has an error, but only because that's the second time I ran it. It's just evidence that the RTT directory is *really* clean before I started building. ;)

Hope it helps.

-dustin

failed install

Hi Dustin,

On Tue, Dec 13, 2011 at 4:01 PM, Gooding, Dustin R. (JSC-ER411)
<dustin [dot] r [dot] gooding [..] ...> wrote:
> On Dec 13, 2011, at 2:34 AM, Ruben Smits wrote:
>
>> Hi Dustin,
>>
>> On Monday 12 December 2011 17:19:47 Gooding, Dustin R. wrote:
>>> On Dec 12, 2011, at 4:18 PM, Peter Soetens wrote:
>>>> On Mon, Dec 12, 2011 at 9:26 PM, Gooding, Dustin R. (JSC-ER411)
>>>>
>>>> <dustin [dot] r [dot] gooding [..] ...> wrote:
>>>>> Thanks Steven.    I re-ran rosmake with the --pre-clean flag and it
>>>>> cleared up this error I was seeing.
>>>>>
>>>>> Now, I'm moving on to figuring out why I'm getting undefined reference
>>>>> errors:
>>>>>
>>>>> /*
>>>>> Linking CXX executable ../../bin/cdeployer-xenomai
>>>>>
>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>> `xeno_set_current' /usr/xenomai/lib/libnative.so: undefined
>>>>> reference to `xeno_current_mode_key' /usr/xenomai/lib/libnative.so:
>>>>> undefined reference to `xeno_sigshadow_install_once'
>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>> `xeno_slow_get_current' /usr/xenomai/lib/libnative.so: undefined
>>>>> reference to `xeno_bind_skin_opt' /usr/xenomai/lib/libnative.so:
>>>>> undefined reference to `xnarch_ns_to_tsc'
>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>> `xeno_current_key' /usr/xenomai/lib/libnative.so: undefined
>>>>> reference to `xeno_handle_mlock_alert'
>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>> `xeno_map_heap' /usr/xenomai/lib/libnative.so: undefined reference
>>>>> to `xnarch_tsc_to_ns' /usr/xenomai/lib/libnative.so: undefined
>>>>> reference to `xeno_set_current_mode' /usr/xenomai/lib/libnative.so:
>>>>> undefined reference to `xeno_fault_stack'
>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>> `xeno_sem_heap' collect2: ld returned 1 exit status
>>>>> make[3]: *** [../bin/cdeployer-xenomai] Error 1
>>>>>
>>>>> */
>>>>>
>>>>> My ldconfig shows I have Xenomai libraries available:
>>>>>
>>>>> /*
>>>>> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ sudo
>>>>> ldconfig -p | grep 'xeno'>>
>>>>>       libxenomai.so.0 (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libxenomai.so.0 libxenomai.so
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so
>>>>>       libvxworks.so.1 (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libvxworks.so.1 libvxworks.so
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so
>>>>>       libvrtx.so.0 (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libvrtx.so.0 libvrtx.so (libc6,x86-64)
>>>>>       => /usr/xenomai/lib/libvrtx.so libuitron.so.0
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/libuitron.so.0
>>>>>       libuitron.so (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libuitron.so librtdm.so.1
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/librtdm.so.1
>>>>>       librtdm.so (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/librtdm.so libpthread_rt.so.1
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so.1
>>>>>       libpthread_rt.so (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libpthread_rt.so libpsos.so.0
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/libpsos.so.0
>>>>>       libpsos.so (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libpsos.so libnative.so.3
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/libnative.so.3
>>>>>       libnative.so (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libnative.so libanalogy.so.1
>>>>>       (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so.1
>>>>>       libanalogy.so (libc6,x86-64) =>
>>>>>       /usr/xenomai/lib/libanalogy.so>>
>>>>> */
>>>>>
>>>>> It looks like a prior post
>>>>> (http://lists.mech.kuleuven.be/pipermail/orocos-users/2010-May/001909
>>>>> .html) mentions a similar problem, and a work around is discussed
>>>>> (adjusting CMAKE_MODULE_LINKER_FLAGS) and Peter mentioned fixed the
>>>>> FindXenomai.cmake macro…  but I'm guessing those haven't made it into
>>>>> the repo yet.>
>>>> The FindXenomai.cmake macro is correct and search for both libraries.
>>>> You can verify this by looking at rtt/orocos-rtt-xenomai.pc which is
>>>> being picked up by OCL. So it's something else. The only obvious error
>>>> you could make is that there is a mixup of Xenomai versions. For
>>>> example including Xenomai 2.6 headers and linking with 2.5 (or the
>>>> other way around).
>>>
>>> This is a brand new machine, installed from scratch.  There's never been a
>>> Xenomai 2.5 instance on it.  My coworker has been shadowing my work on his
>>> brand new box and is getting the same error.  So it's very likely a
>>> configuration error on my part, I just don't know where to start looking.
>>>
>>> You're correct in that orocos_toolchain/rtt/build/rtt/orocos-rtt-xenomai.pc
>>> has both -lxenomai and -lnative listed in it's Libs variable, along with a
>>> good -Lpath.
>>>
>>> I don't know if this helps at all, but here's some output from xeno-config:
>>>
>>> /*
>>> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ xeno-config
>>> --verbose xeno-config --verbose
>>>        --version="2.6.0"
>>>        --cc="gcc"
>>>        --arch="x86"
>>>        --prefix="/usr/xenomai"
>>>        --xeno-cflags="-I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT
>>> -Wall -Werror-implicit-function-declaration -pipe -D__XENO__"
>>> --xeno-ldflags="-L/usr/xenomai/lib -lxenomai -lpthread -lrt "
>>> --posix-cflags=""
>>>        --posix-ldflags="-Wl,@/usr/xenomai/lib/posix.wrappers
>>> -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt "
>>> --library-dir="/usr/xenomai/lib"
>>> */
>>>
>>> To me, it looks like the .pc file is using the same linker settings that
>>> xeno-config is suggesting.
>>
>> I don't see -lnative in this list, maybe it's not needed??
>>
>>> I've attached the full log from running "rosmake --pre-clean
>>> orocos_toolchain".  Hopefully there's a secret nugget of info in there that
>>> can help.
>>
>> Could you rerun only the rtt build with 'make VERBOSE=1' that will give us a
>> lot more information.
>>
>>
>> Ruben
>
> Hi Ruben,
>
> I did a bit more poking and found that "xeno-config --verbose" isn't the best way to find what the recommended flags are.  Here's potentially a better result.
>
> /*
> dgooding@wall-e:~$ xeno-config --skin=native --ldflags
> -lnative -L/usr/xenomai/lib -lxenomai -lpthread -lrt
>
> dgooding@wall-e:~$ xeno-config --skin=posix --ldflags
> -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt
> */
>
> I've also attached the full log of making RTT with verbosity.  The "make clean" step shown first has an error, but only because that's the second time I ran it.  It's just evidence that the RTT directory is *really* clean before I started building.  ;)
>
> Hope it helps.

Sorry we couldn't help you further out. Did you find a fix in the mean time ?

Peter

failed install

On Feb 6, 2012, at 3:58 PM, Peter Soetens wrote:

> Hi Dustin,
>
> On Tue, Dec 13, 2011 at 4:01 PM, Gooding, Dustin R. (JSC-ER411)
> <dustin [dot] r [dot] gooding [..] ...> wrote:
>> On Dec 13, 2011, at 2:34 AM, Ruben Smits wrote:
>>
>>> Hi Dustin,
>>>
>>> On Monday 12 December 2011 17:19:47 Gooding, Dustin R. wrote:
>>>> On Dec 12, 2011, at 4:18 PM, Peter Soetens wrote:
>>>>> On Mon, Dec 12, 2011 at 9:26 PM, Gooding, Dustin R. (JSC-ER411)
>>>>>
>>>>> <dustin [dot] r [dot] gooding [..] ...> wrote:
>>>>>> Thanks Steven. I re-ran rosmake with the --pre-clean flag and it
>>>>>> cleared up this error I was seeing.
>>>>>>
>>>>>> Now, I'm moving on to figuring out why I'm getting undefined reference
>>>>>> errors:
>>>>>>
>>>>>> /*
>>>>>> Linking CXX executable ../../bin/cdeployer-xenomai
>>>>>>
>>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>>> `xeno_set_current' /usr/xenomai/lib/libnative.so: undefined
>>>>>> reference to `xeno_current_mode_key' /usr/xenomai/lib/libnative.so:
>>>>>> undefined reference to `xeno_sigshadow_install_once'
>>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>>> `xeno_slow_get_current' /usr/xenomai/lib/libnative.so: undefined
>>>>>> reference to `xeno_bind_skin_opt' /usr/xenomai/lib/libnative.so:
>>>>>> undefined reference to `xnarch_ns_to_tsc'
>>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>>> `xeno_current_key' /usr/xenomai/lib/libnative.so: undefined
>>>>>> reference to `xeno_handle_mlock_alert'
>>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>>> `xeno_map_heap' /usr/xenomai/lib/libnative.so: undefined reference
>>>>>> to `xnarch_tsc_to_ns' /usr/xenomai/lib/libnative.so: undefined
>>>>>> reference to `xeno_set_current_mode' /usr/xenomai/lib/libnative.so:
>>>>>> undefined reference to `xeno_fault_stack'
>>>>>> /usr/xenomai/lib/libnative.so: undefined reference to
>>>>>> `xeno_sem_heap' collect2: ld returned 1 exit status
>>>>>> make[3]: *** [../bin/cdeployer-xenomai] Error 1
>>>>>>
>>>>>> */
>>>>>>
>>>>>> My ldconfig shows I have Xenomai libraries available:
>>>>>>
>>>>>> /*
>>>>>> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ sudo
>>>>>> ldconfig -p | grep 'xeno'>>
>>>>>> libxenomai.so.0 (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libxenomai.so.0 libxenomai.so
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/libxenomai.so
>>>>>> libvxworks.so.1 (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libvxworks.so.1 libvxworks.so
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/libvxworks.so
>>>>>> libvrtx.so.0 (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libvrtx.so.0 libvrtx.so (libc6,x86-64)
>>>>>> => /usr/xenomai/lib/libvrtx.so libuitron.so.0
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/libuitron.so.0
>>>>>> libuitron.so (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libuitron.so librtdm.so.1
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/librtdm.so.1
>>>>>> librtdm.so (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/librtdm.so libpthread_rt.so.1
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/libpthread_rt.so.1
>>>>>> libpthread_rt.so (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libpthread_rt.so libpsos.so.0
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/libpsos.so.0
>>>>>> libpsos.so (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libpsos.so libnative.so.3
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/libnative.so.3
>>>>>> libnative.so (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libnative.so libanalogy.so.1
>>>>>> (libc6,x86-64) => /usr/xenomai/lib/libanalogy.so.1
>>>>>> libanalogy.so (libc6,x86-64) =>
>>>>>> /usr/xenomai/lib/libanalogy.so>>
>>>>>> */
>>>>>>
>>>>>> It looks like a prior post
>>>>>> (http://lists.mech.kuleuven.be/pipermail/orocos-users/2010-May/001909
>>>>>> .html) mentions a similar problem, and a work around is discussed
>>>>>> (adjusting CMAKE_MODULE_LINKER_FLAGS) and Peter mentioned fixed the
>>>>>> FindXenomai.cmake macro… but I'm guessing those haven't made it into
>>>>>> the repo yet.>
>>>>> The FindXenomai.cmake macro is correct and search for both libraries.
>>>>> You can verify this by looking at rtt/orocos-rtt-xenomai.pc which is
>>>>> being picked up by OCL. So it's something else. The only obvious error
>>>>> you could make is that there is a mixup of Xenomai versions. For
>>>>> example including Xenomai 2.6 headers and linking with 2.5 (or the
>>>>> other way around).
>>>>
>>>> This is a brand new machine, installed from scratch. There's never been a
>>>> Xenomai 2.5 instance on it. My coworker has been shadowing my work on his
>>>> brand new box and is getting the same error. So it's very likely a
>>>> configuration error on my part, I just don't know where to start looking.
>>>>
>>>> You're correct in that orocos_toolchain/rtt/build/rtt/orocos-rtt-xenomai.pc
>>>> has both -lxenomai and -lnative listed in it's Libs variable, along with a
>>>> good -Lpath.
>>>>
>>>> I don't know if this helps at all, but here's some output from xeno-config:
>>>>
>>>> /*
>>>> dgooding@wall-e:/opt/ros/electric/stacks/orocos_toolchain$ xeno-config
>>>> --verbose xeno-config --verbose
>>>> --version="2.6.0"
>>>> --cc="gcc"
>>>> --arch="x86"
>>>> --prefix="/usr/xenomai"
>>>> --xeno-cflags="-I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT
>>>> -Wall -Werror-implicit-function-declaration -pipe -D__XENO__"
>>>> --xeno-ldflags="-L/usr/xenomai/lib -lxenomai -lpthread -lrt "
>>>> --posix-cflags=""
>>>> --posix-ldflags="-Wl,@/usr/xenomai/lib/posix.wrappers
>>>> -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt "
>>>> --library-dir="/usr/xenomai/lib"
>>>> */
>>>>
>>>> To me, it looks like the .pc file is using the same linker settings that
>>>> xeno-config is suggesting.
>>>
>>> I don't see -lnative in this list, maybe it's not needed??
>>>
>>>> I've attached the full log from running "rosmake --pre-clean
>>>> orocos_toolchain". Hopefully there's a secret nugget of info in there that
>>>> can help.
>>>
>>> Could you rerun only the rtt build with 'make VERBOSE=1' that will give us a
>>> lot more information.
>>>
>>>
>>> Ruben
>>
>> Hi Ruben,
>>
>> I did a bit more poking and found that "xeno-config --verbose" isn't the best way to find what the recommended flags are. Here's potentially a better result.
>>
>> /*
>> dgooding@wall-e:~$ xeno-config --skin=native --ldflags
>> -lnative -L/usr/xenomai/lib -lxenomai -lpthread -lrt
>>
>> dgooding@wall-e:~$ xeno-config --skin=posix --ldflags
>> -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt
>> */
>>
>> I've also attached the full log of making RTT with verbosity. The "make clean" step shown first has an error, but only because that's the second time I ran it. It's just evidence that the RTT directory is *really* clean before I started building. ;)
>>
>> Hope it helps.
>
> Sorry we couldn't help you further out. Did you find a fix in the mean time ?
>
> Peter

Thanks for checking, Peter. No, I never did. We're currently just using stock Ubuntu 11.10. When we get further along in our codebase, we'll revisit migrating to Xenomai. So far, so good though, codebase-wise. We've been rewriting stuff from the ground up (kernel drivers, etc) for our hardware and re-imagining the user interface to our serial data bus. We haven't had the time to do any real performance tests, but even if we had, I'm not sure how useful they'd be without Xenomai in the mix. And on the other end, some other folks have been wrapping our older codebase with ROS and getting some interesting new functionality. I hope we meet in the middle soon.

Peter, has anyone from NASA or Jacobs contacted you or SourceWorks about the Orocos training program? Let me know if not, and I'll go push harder.

-dustin

failed install

Hi Dustin,

I had the same undefined reference errors, while trying to compile orocos with xenomai. The problem is that Ubuntu 11.10 uses --as-needed for the linking process by default. This seems to break the orocos build. I guess the proper way to fix this issue would be to rearrange the link order of the libraries. A quick and dirty way is to disable the flag using --no-as-needed.

Hope this helps you and others who walk into the same trap.

Best regards

Goeksel

failed install

Hi,

I have a working Ros Electric, Orocos 2.5 xenomai workspace on a 2.6.38.8
kernel. The only bad I had was the --dlopen-skins configure option. I did
not test it strongly, but I think your problem is solvable. Anyway, I don't
know how ;p

2011/12/12 Gooding, Dustin R. (JSC-ER411) <dustin [dot] r [dot] gooding [..] ...>

> Hey folks,
>
> We're upgrading to ROS Electric and Orocos 2.5. I'm the Guinea pig for
> getting the installation working with Xenomai. I'm running into some
> problems when I use rosmake to build orocos_toolchain, though.
>
> Full details here: http://pastebin.com/KxqmE3MD
>
> Running Ubuntu 11.10, with a vanilla kernel 2.6.38.8 patched with Xenomai
> 2.6.0. Xenomai was installed using the --dlopen-skins configure option.
> It seems to be loaded and running correctly. I installed ROS Electric
> using the Ubuntu packages (sudo apt-get install ros-electric-ros-base).
> Then I followed the instructions found at
> http://www.ros.org/wiki/orocos_toolchain for compiling Orocos from
> source. I set my OROCOS_TARGET variable to 'xenomai'. rosmake seems to
> find Xenomai just fine, but I get the following error:
>
> make[3]: Entering directory
> `/opt/ros/electric/stacks/orocos_toolchain/rtt/build'
> Linking CXX shared library librtt-typekit-xenomai.so
> CMakeFiles/rtt-typekit-xenomai_plugin.dir/RealTimeTypekitTypes.cpp.o:
> file not recognized: File truncated
> collect2: ld returned 1 exit status
> make[3]: *** [rtt/typekit/librtt-typekit-xenomai.so.2.5.0] Error 1
>
> This is probably a Xenomai 2.5 vs Xenomai 2.6 issue (given the error).
> Any ideas? Has this been fixed in a branch? Do I just need to bump back
> down to Xenomai 2.5?
>
> --
> *Dustin Gooding*
> NASA/JSC Robotics
>
>
>
>
> --
> Orocos-Users mailing list
> Orocos-Users [..] ...
> http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users
>
>