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
