Hello,

For training purpose I'm setting up embedded and real time linux on a qemu
emulated arm integrator board. I understand I can't demonstrate latency
performance on an emulator, yet I can teach my students about all the tools
and steps involved to build a running embedded linux system.

I'm using buildroot-2010.02 (stable) to get a cross compilation tool chain
and an arm file system. After tweaking the kernel I can get the kernel and
file system to work fine (qemu-system-arm -M integratorcp -kernel zImage
-initrd rootfs.arm.ext2 -append 'console=tty1 root=/dev/ram0')

Then I'm trying to get xenomai working.
I did not encounter any pb as far as the kernel side is concerned but I run
into several pbs on the user side.
* configure
To configure I use:
./configure --host=arm-linux --enable-arm-mach=integrator
--enable-arm-arch=5

This first failed with
configure: error: C compiler cannot create executables
The pb comes from the fact that some object necessary for the compile
process (crt1.o) is not found. So I set CFLAGS and LDFLAGS to
--sysroot=/path/to/arm-linux-binaries and ran configure again.

Then it failed with
checking for ARM architecture version... configure: error: Invalid
architecture choose, only 4, 5, xscale3, 6 and 7 are supported
It seems like a bug to me since the arch I specify is not taken into
account. So I changed line 11767 of configure from "case "$arch" in" to
"case "$enable_arm_arch" in" and configure runs smoothly

* make
Then I type make and compilation starts. .c files are compiled smootly into
.o files but it fails on first shared object creation with
/bin/bash ../../libtool --tag=CC   --mode=link arm-linux-gcc
--sysroot=/home/gbayard/MI03_2010/TP/buildroot-2010.02/output/staging
-version-info 0:0:0 -lpthread -lrt
--sysroot=/home/gbayard/MI03_2010/TP/buildroot-2010.02/output/staging -o
librtdk.la -rpath /usr/xenomai/lib librtdk_la-init.lo librtdk_la-rt_print.lo
librtdk_la-assert_context.lo librtdk_la-wrappers.lo
libtool: link: arm-linux-gcc -shared  .libs/librtdk_la-init.o
.libs/librtdk_la-rt_print.o .libs/librtdk_la-assert_context.o
.libs/librtdk_la-wrappers.o   -lpthread -lrt    -Wl,-soname -Wl,librtdk.so.0
-o .libs/librtdk.so.0.0.0
/home/gbayard/MI03_2010/TP/buildroot-2010.02/output/staging/usr/bin/../lib/gcc/arm-linux-uclibcgnueabi/4.3.4/../../../../arm-linux-uclibcgnueabi/bin/ld:
crti.o: No such file: No such file or directory
libtool is given the --sysroot parameter but decides to ignore it... If I
manually add it to the arm-linux-gcc command it works well. This seems to me
like a libtool problem.
To go around this problem I looked into libtool file and changed line 260
from "CC="arm-linux-gcc"" to "CC="arm-linux-gcc
--sysroot=/home/gbayard/MI03_2010/TP/buildroot-2010.02/output/staging "". As
ugly as it is it worked (but I've got a lot of "sem_heap.c:1: warning:
target CPU does not support interworking")

Compilation goes on but fails to compile every testsuite binaries (except
latency) with
../../skins/posix/.libs/libpthread_rt.so: undefined reference to `mmap64'
../../skins/posix/.libs/libpthread_rt.so: undefined reference to
`ftruncate64'
There might be a problem with my PC system which runs x86_64 linux.

Here I am. Xenomai is sort of built but it's not clean so I probably did
mistakes on the way. Could you guys tell me what is wrong in my build steps?

Best regards,
Gildas
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to