All of lore.kernel.org
 help / color / mirror / Atom feed
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'



  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.