From: Stefan Videv <videvstefan@gmail.com>
To: Gilles Chanteperdrix <gilles.chanteperdrix@xenomai.org>
Cc: xenomai@xenomai.org
Subject: Re: [Xenomai] Compiling the Xenomai examples
Date: Thu, 01 Nov 2012 17:30:27 +0000 [thread overview]
Message-ID: <5092B1B3.1000902@gmail.com> (raw)
In-Reply-To: <a81ced276a31df626d584233b83aeb10.squirrel@www.xenomai.org>
On 11/01/2012 05:04 PM, Gilles Chanteperdrix wrote:
>
> Stefan Videv wrote:
>> On 11/01/2012 04:32 PM, Gilles Chanteperdrix wrote:
>>> Stefan Videv wrote:
>>>> Hi All,
>>>>
>>>> I've been following this:
>>>>
>>>> http://www.xenomai.org/index.php/Examples
>>>>
>>>> on how to cross-compile the examples that come with Xenomai.
>>>>
>>>> However, running:
>>>>
>>>> make XENO=/media/rootfs/usr/xenomai/ ARCH=arm-linux-gnueabi-
>>>> KSRC=/media/rootfs/usr/include
>>>>
>>>> where /media/rootfs/usr/xenomai is where xenomai is installed on the
> SD card that "powers" my embedded system, arm-linux-gnueabi- is the
> cross compiler chain I have running on my virtual box, and finally
>>>> /media/rootfs/usr/include is where I installed the header files for
> the kernel that is running on my embedded board.
>>>> To me it seems that the XENO parameter is ignored altogether (same for
> the KSRC it seems) which results in the particular included .h files
> not
>>>> being found on the path. Do I have any options rather than compiling
> manually?
>>> The problem is that you are cross-compiling, the instructions apply to
> native compilation. The XENO parameter is not ignored, but as explained
> on
>>> the page you linked its role is to locate the xeno-config script. But
> in order for this script to produce the correct flags (and as explained
> if you
>>> read xeno-config help) the DESTDIR environment variable needs to be set
> (to
>>> /media/rootfs if I understand correctly).
>> After a quick attempt, things are looking better with DESTDIR. However,
> it still gives errors:
>> arm-linux-gnueabi-gcc -I/media/rootfs/usr/xenomai/include -D_GNU_SOURCE
> -D_REENTRANT -D__XENO__ -lnative -L/media/rootfs/usr/xenomai/lib
> -lxenomai -lpthread -lrt -Xlinker -rpath -Xlinker
>> /media/rootfs/usr/xenomai/lib trivial-periodic.c -o trivial-periodic
> /tmp/ccZ8pOKK.o: In function `demo':
>> trivial-periodic.c:(.text+0x1e): undefined reference to
>> `rt_task_set_periodic'
>> trivial-periodic.c:(.text+0x22): undefined reference to `rt_timer_read'
> trivial-periodic.c:(.text+0x2e): undefined reference to
>> `rt_task_wait_period'
>> trivial-periodic.c:(.text+0x32): undefined reference to `rt_timer_read'
> /tmp/ccZ8pOKK.o: In function `main':
>> trivial-periodic.c:(.text+0x10c): undefined reference to
> `rt_task_create' trivial-periodic.c:(.text+0x124): undefined reference
> to `rt_task_start' trivial-periodic.c:(.text+0x134): undefined reference
> to `rt_task_delete' collect2: ld returned 1 exit status
>> make[1]: *** [trivial-periodic] Error 1
>> make[1]: Leaving directory
>> `/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/native'
>>
>> However, if the above command is modified to look like this:
>>
>> arm-linux-gnueabi-gcc -I/media/rootfs/usr/xenomai/include -D_GNU_SOURCE
> -D_REENTRANT -D__XENO__ -lnative -L/media/rootfs/usr/xenomai/lib
> -lxenomai -lpthread -lrt -Xlinker -rpath -Xlinker
>> /media/rootfs/usr/xenomai/lib trivial-periodic.c -o trivial-periodic
> -lnative -lpthread -lxenomai
>> It works just fine. How can I fix this in the Makefile, or am I still
> doing something wrong?
>
> This has been reported several times. I proposed a patch in the following
> mail:
> http://www.xenomai.org/pipermail/xenomai/2012-October/026561.html
> But since nobody reported whether it fixes anything, it is not merged yet.
>
>
Just to illustrate my last email, the rest of the compilation produces this:
make[1]: Entering directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/native'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/native'
make[1]: Entering directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/profiles/can'
arm-linux-gnueabi-gcc -I/media/rootfs/usr/xenomai/include -D_GNU_SOURCE
-D_REENTRANT -D__XENO__ -I/media/rootfs/usr/xenomai/include/posix
-I/usr/arm-linux-gnueabi/include
-Wl,@/media/rootfs/usr/xenomai/lib/posix.wrappers
-L/media/rootfs/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt
-L/usr/arm-linux-gnueabi/lib -lrtdm -Xlinker -rpath -Xlinker
/media/rootfs/usr/xenomai/lib rtcan_rtt.c -o rtcan_rtt
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld:
/tmp/cc3mnvp0.o: undefined reference to symbol 'pthread_join@@GLIBC_2.4'
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld:
note: 'pthread_join@@GLIBC_2.4' is defined in DSO
/usr/arm-linux-gnueabi/lib/libpthread.so.0 so try adding it to the
linker command line
/usr/arm-linux-gnueabi/lib/libpthread.so.0: could not read symbols:
Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [rtcan_rtt] Error 1
make[1]: Leaving directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/profiles/can'
make[1]: Entering directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/profiles/ipc'
arm-linux-gnueabi-gcc -I/media/rootfs/usr/xenomai/include -D_GNU_SOURCE
-D_REENTRANT -D__XENO__ -I/media/rootfs/usr/xenomai/include/posix
-Wl,@/media/rootfs/usr/xenomai/lib/posix.wrappers
-L/media/rootfs/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt
-lrtdm -Xlinker -rpath -Xlinker /media/rootfs/usr/xenomai/lib
xddp-echo.c -o xddp-echo
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld:
/tmp/ccR4Aszs.o: undefined reference to symbol 'pthread_join@@GLIBC_2.4'
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld:
note: 'pthread_join@@GLIBC_2.4' is defined in DSO
/usr/arm-linux-gnueabi/lib/libpthread.so.0 so try adding it to the
linker command line
/usr/arm-linux-gnueabi/lib/libpthread.so.0: could not read symbols:
Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [xddp-echo] Error 1
make[1]: Leaving directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/profiles/ipc'
make[1]: Entering directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/profiles/serial'
arm-linux-gnueabi-gcc -I/media/rootfs/usr/xenomai/include -D_GNU_SOURCE
-D_REENTRANT -D__XENO__ -lnative -L/media/rootfs/usr/xenomai/lib
-lxenomai -lpthread -lrt -lrtdm -Xlinker -rpath -Xlinker
/media/rootfs/usr/xenomai/lib cross-link.c -o cross-link
/tmp/ccEmQmfT.o: In function `close_file':
cross-link.c:(.text+0x1a): undefined reference to `rt_dev_close'
cross-link.c:(.text+0x46): undefined reference to `rt_task_sleep'
/tmp/ccEmQmfT.o: In function `cleanup_all':
cross-link.c:(.text+0x15a): undefined reference to `rt_task_delete'
cross-link.c:(.text+0x19c): undefined reference to `rt_task_delete'
/tmp/ccEmQmfT.o: In function `write_task_proc':
cross-link.c:(.text+0x200): undefined reference to `rt_timer_ns2ticks'
cross-link.c:(.text+0x218): undefined reference to `rt_task_set_periodic'
cross-link.c:(.text+0x24a): undefined reference to `rt_task_wait_period'
cross-link.c:(.text+0x276): undefined reference to `rt_timer_read'
cross-link.c:(.text+0x298): undefined reference to `rt_dev_write'
/tmp/ccEmQmfT.o: In function `read_task_proc':
cross-link.c:(.text+0x3b2): undefined reference to `rt_dev_ioctl'
cross-link.c:(.text+0x404): undefined reference to `rt_dev_read'
cross-link.c:(.text+0x412): undefined reference to `rt_timer_read'
/tmp/ccEmQmfT.o: In function `main':
cross-link.c:(.text+0x550): undefined reference to `rt_dev_open'
cross-link.c:(.text+0x5de): undefined reference to `rt_dev_ioctl'
cross-link.c:(.text+0x622): undefined reference to `rt_dev_open'
cross-link.c:(.text+0x6b0): undefined reference to `rt_dev_ioctl'
cross-link.c:(.text+0x706): undefined reference to `rt_task_create'
cross-link.c:(.text+0x774): undefined reference to `rt_task_create'
cross-link.c:(.text+0x7e4): undefined reference to `rt_task_start'
cross-link.c:(.text+0x830): undefined reference to `rt_task_start'
collect2: ld returned 1 exit status
make[1]: *** [cross-link] Error 1
make[1]: Leaving directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/profiles/serial'
sed: can't read /media/rootfs/usr/include/Makefile: No such file or
directory
make[1]: Entering directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/driver-api'
arm-linux-gnueabi-gcc -I/media/rootfs/usr/xenomai/include -D_GNU_SOURCE
-D_REENTRANT -D__XENO__ -lnative -L/media/rootfs/usr/xenomai/lib
-lxenomai -lpthread -lrt -lrtdm -Xlinker -rpath -Xlinker
/media/rootfs/usr/xenomai/lib tut01-skeleton-app.c -o tut01-skeleton-app
/tmp/ccUJnMmo.o: In function `main':
tut01-skeleton-app.c:(.text+0x30): undefined reference to `rt_dev_open'
tut01-skeleton-app.c:(.text+0x96): undefined reference to `rt_dev_read'
tut01-skeleton-app.c:(.text+0xee): undefined reference to `rt_dev_write'
tut01-skeleton-app.c:(.text+0x124): undefined reference to `rt_dev_read'
tut01-skeleton-app.c:(.text+0x158): undefined reference to `rt_dev_read'
tut01-skeleton-app.c:(.text+0x184): undefined reference to `rt_dev_close'
collect2: ld returned 1 exit status
make[1]: *** [tut01-skeleton-app] Error 1
make[1]: Leaving directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/rtdm/driver-api'
sed: can't read /media/rootfs/usr/include/Makefile: No such file or
directory
make[1]: Entering directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/posix'
arm-linux-gnueabi-gcc -DCONSUMER -I/media/rootfs/usr/xenomai/include
-D_GNU_SOURCE -D_REENTRANT -D__XENO__
-I/media/rootfs/usr/xenomai/include/posix
-Wl,@/media/rootfs/usr/xenomai/lib/posix.wrappers
-L/media/rootfs/usr/xenomai/lib -lpthread_rt -lxenomai -lpthread -lrt
-Xlinker -rpath -Xlinker /media/rootfs/usr/xenomai/lib satch.c -o satch
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld:
/tmp/ccjJ80DW.o: undefined reference to symbol 'pthread_join@@GLIBC_2.4'
/usr/lib/gcc/arm-linux-gnueabi/4.6/../../../../arm-linux-gnueabi/bin/ld:
note: 'pthread_join@@GLIBC_2.4' is defined in DSO
/usr/arm-linux-gnueabi/lib/libpthread.so.0 so try adding it to the
linker command line
/usr/arm-linux-gnueabi/lib/libpthread.so.0: could not read symbols:
Invalid operation
collect2: ld returned 1 exit status
make[1]: *** [satch] Error 1
make[1]: Leaving directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/posix'
make[1]: Entering directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/common'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory
`/home/stefan/roosenXenomaiBone/xenomai-2.6.1/examples/common'
next prev parent reply other threads:[~2012-11-01 17:30 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-01 17:04 [Xenomai] Compiling the Xenomai examples Gilles Chanteperdrix
2012-11-01 17:17 ` Stefan Videv
2012-11-01 18:25 ` Gilles Chanteperdrix
2012-11-02 16:48 ` Stefan Videv
2012-11-02 17:13 ` Gilles Chanteperdrix
2012-11-02 17:35 ` Stefan Videv
2012-11-02 17:44 ` Stefan Videv
2012-11-02 17:47 ` Gilles Chanteperdrix
2012-11-02 17:58 ` Stefan Videv
2012-11-02 18:46 ` Gilles Chanteperdrix
2012-11-05 15:58 ` Stefan Videv
2012-11-05 18:09 ` Stefan Videv
2012-11-01 17:30 ` Stefan Videv [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-11-01 15:42 Stefan Videv
2012-11-01 16:32 ` Gilles Chanteperdrix
2012-11-01 16:39 ` Stefan Videv
2012-11-01 17:00 ` Stefan Videv
2012-11-01 17:03 ` Gilles Chanteperdrix
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5092B1B3.1000902@gmail.com \
--to=videvstefan@gmail.com \
--cc=gilles.chanteperdrix@xenomai.org \
--cc=xenomai@xenomai.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.