* [Xenomai-help] Xenomai on AT91SAM9260 @ 2008-04-29 11:37 Hans Søndergaard (HSO) 2008-04-29 12:18 ` Gilles Chanteperdrix 0 siblings, 1 reply; 9+ messages in thread From: Hans Søndergaard (HSO) @ 2008-04-29 11:37 UTC (permalink / raw) To: xenomai@xenomai.org [-- Attachment #1: Type: text/plain, Size: 223 bytes --] Is it possible to install Xenomai 2.4.3 together with Linux 2.6.23 on AT91SAM9260? If the answer is no, which combination of Xenomai and Linux would you recommend? Hans Sondergaard VIA University College, Denmark [-- Attachment #2: Type: text/html, Size: 2879 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-04-29 11:37 [Xenomai-help] Xenomai on AT91SAM9260 Hans Søndergaard (HSO) @ 2008-04-29 12:18 ` Gilles Chanteperdrix 2008-05-01 5:46 ` Hans Søndergaard (HSO) 0 siblings, 1 reply; 9+ messages in thread From: Gilles Chanteperdrix @ 2008-04-29 12:18 UTC (permalink / raw) To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org On Tue, Apr 29, 2008 at 1:37 PM, Hans Søndergaard (HSO) <HSO@viauc.dk> wrote: > > > > > Is it possible to install Xenomai 2.4.3 together with Linux 2.6.23 on > AT91SAM9260? > > If the answer is no, which combination of Xenomai and Linux would you > recommend? Xenomai 2.4.3 ships with two versions of the Adeos I-pipe patch: one for Linux 2.6.20, the other for Linux 2.6.24. So, I would recommend using one of these two versions. Of course, you can probably adapt one of the patches to Linux 2.6.23, but that may not be obvious. Note that you may decide to apply the AT91 patch, the I-pipe patch should apply cleanly with or without the AT91 patch. -- Gilles ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-04-29 12:18 ` Gilles Chanteperdrix @ 2008-05-01 5:46 ` Hans Søndergaard (HSO) 2008-05-01 16:04 ` Gilles Chanteperdrix 2008-05-01 16:55 ` Gilles Chanteperdrix 0 siblings, 2 replies; 9+ messages in thread From: Hans Søndergaard (HSO) @ 2008-05-01 5:46 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai@xenomai.org Hi, Thanks for the answer. We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260, but have a problem: Is it possible to disable the building of the posix skin when configuring the user space libraries for Xenomai? I have tried --disable-posix-skin, but this had no effect. The reason why I ask is that the building of src/skins/posix/init.c fails like this: [stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT -Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../.. /../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno mai-2.4.3/src/skins/posix/init.c -fPIC -DPIC -o .libs/libpthread_rt_la-init.o In file included from ../../../src/include/asm/xenomai/atomic.h:78, from ../../../../xenomai-2.4.3/include/nucleus/system.h:27, from ../../../src/include/asm/xenomai/system.h:135, from ../../../../xenomai-2.4.3/include/nucleus/types.h:40, from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25, from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30, from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27, from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26, from ../../../../xenomai-2.4.3/include/posix/pthread.h:150, from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu de/bits/uClibc_mutex.h:16, from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu de/bits/uClibc_stdio.h:120, from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu de/stdio.h:73, from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20: ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check ': ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs t use in this function) ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi er is reported only once ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe ars in.) Obviously there is something wrong with the include path used: uClibc_mutex.h should not include 'pthread.h' in the Xenomai distribution but rather the version in uClibc itself. Why this happens I'm trying to discover. The complete configure I'm using is: ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc Thanks in advance. Hans -----Original Message----- From: Gilles Chanteperdrix [mailto:gilles.chanteperdrix@xenomai.org] Sent: 29. april 2008 14:18 To: Hans Søndergaard (HSO) Cc: xenomai@xenomai.org Subject: Re: [Xenomai-help] Xenomai on AT91SAM9260 On Tue, Apr 29, 2008 at 1:37 PM, Hans Søndergaard (HSO) <HSO@viauc.dk> wrote: > > > > > Is it possible to install Xenomai 2.4.3 together with Linux 2.6.23 on > AT91SAM9260? > > If the answer is no, which combination of Xenomai and Linux would you > recommend? Xenomai 2.4.3 ships with two versions of the Adeos I-pipe patch: one for Linux 2.6.20, the other for Linux 2.6.24. So, I would recommend using one of these two versions. Of course, you can probably adapt one of the patches to Linux 2.6.23, but that may not be obvious. Note that you may decide to apply the AT91 patch, the I-pipe patch should apply cleanly with or without the AT91 patch. -- Gilles ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-05-01 5:46 ` Hans Søndergaard (HSO) @ 2008-05-01 16:04 ` Gilles Chanteperdrix 2008-05-01 17:02 ` Philippe Gerum 2008-05-01 16:55 ` Gilles Chanteperdrix 1 sibling, 1 reply; 9+ messages in thread From: Gilles Chanteperdrix @ 2008-05-01 16:04 UTC (permalink / raw) To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org Hans Søndergaard (HSO) wrote: > Hi, > > Thanks for the answer. > We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260, > but have a problem: > > Is it possible to disable the building of the posix skin when > configuring the user space libraries for Xenomai? > > I have tried --disable-posix-skin, but this had no effect. > > The reason why I ask is that the building of src/skins/posix/init.c > fails like this: > > [stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc > lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT > -Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../.. > /../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre > ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno > mai-2.4.3/src/skins/posix/init.c -fPIC -DPIC -o .libs/libpthread_rt_la-init.o > In file included from ../../../src/include/asm/xenomai/atomic.h:78, > from ../../../../xenomai-2.4.3/include/nucleus/system.h:27, > from ../../../src/include/asm/xenomai/system.h:135, > from ../../../../xenomai-2.4.3/include/nucleus/types.h:40, > from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25, > from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30, > from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27, > from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26, > from ../../../../xenomai-2.4.3/include/posix/pthread.h:150, > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > de/bits/uClibc_mutex.h:16, > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > de/bits/uClibc_stdio.h:120, > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > de/stdio.h:73, > from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20: > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check > ': > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs > t use in this function) > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi > er is reported only once > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe > ars in.) > > Obviously there is something wrong with the include path used: > uClibc_mutex.h should not include 'pthread.h' in the Xenomai > distribution but rather the version in uClibc itself. > > Why this happens I'm trying to discover. > > The complete configure I'm using is: > > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc > > Thanks in advance. Well, I understand that it may not be important to you if you do not intend to use the posix skin, but we should try and solve this issue (which seems to be a uclibc issue). Including posix skin pthread.h instead of libc pthread.h should be no problem, since posix skin pthread.h include the libc pthread.h. The problem here is due to the fact that asm-arm/syscall.h is trying to use stderr whereas we are at the very beginning of stdio.h where stderr is not defined yet. I have to admit that I have no idea here other than defining a function in init.c which calls fprintf and to call this function instead of fprintf in asm-arm/syscall.h Philippe, any better idea ? -- Gilles. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-05-01 16:04 ` Gilles Chanteperdrix @ 2008-05-01 17:02 ` Philippe Gerum 2008-05-03 8:21 ` Hans Søndergaard (HSO) 0 siblings, 1 reply; 9+ messages in thread From: Philippe Gerum @ 2008-05-01 17:02 UTC (permalink / raw) To: Gilles Chanteperdrix Cc: xenomai@xenomai.org, "Hans Søndergaard (HSO)" Gilles Chanteperdrix wrote: > Hans Søndergaard (HSO) wrote: > > Hi, > > > > Thanks for the answer. > > We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260, > > but have a problem: > > > > Is it possible to disable the building of the posix skin when > > configuring the user space libraries for Xenomai? > > > > I have tried --disable-posix-skin, but this had no effect. > > > > The reason why I ask is that the building of src/skins/posix/init.c > > fails like this: > > > > [stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc > > lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT > > -Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../.. > > /../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre > > ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno > > mai-2.4.3/src/skins/posix/init.c -fPIC -DPIC -o .libs/libpthread_rt_la-init.o > > In file included from ../../../src/include/asm/xenomai/atomic.h:78, > > from ../../../../xenomai-2.4.3/include/nucleus/system.h:27, > > from ../../../src/include/asm/xenomai/system.h:135, > > from ../../../../xenomai-2.4.3/include/nucleus/types.h:40, > > from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25, > > from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30, > > from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27, > > from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26, > > from ../../../../xenomai-2.4.3/include/posix/pthread.h:150, > > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > > de/bits/uClibc_mutex.h:16, > > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > > de/bits/uClibc_stdio.h:120, > > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > > de/stdio.h:73, > > from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20: > > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check > > ': > > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs > > t use in this function) > > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi > > er is reported only once > > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe > > ars in.) > > > > Obviously there is something wrong with the include path used: > > uClibc_mutex.h should not include 'pthread.h' in the Xenomai > > distribution but rather the version in uClibc itself. > > > > Why this happens I'm trying to discover. > > > > The complete configure I'm using is: > > > > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc > > > > Thanks in advance. > > Well, I understand that it may not be important to you if you do not > intend to use the posix skin, but we should try and solve this issue > (which seems to be a uclibc issue). Including posix skin pthread.h > instead of libc pthread.h should be no problem, since posix skin > pthread.h include the libc pthread.h. The problem here is due to the > fact that asm-arm/syscall.h is trying to use stderr whereas we are at > the very beginning of stdio.h where stderr is not defined yet. > > I have to admit that I have no idea here other than defining a function > in init.c which calls fprintf and to call this function instead of > fprintf in asm-arm/syscall.h > > Philippe, any better idea ? > No, but I do have an almost as ugly one to suggest: --- include/asm-arm/syscall.h (revision 3729) +++ include/asm-arm/syscall.h (working copy) @@ -222,7 +222,6 @@ #define XENOMAI_SYSARCH_TSCINFO 4 #ifndef __KERNEL__ -#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> @@ -230,6 +229,8 @@ #include <fcntl.h> #include <unistd.h> #include <limits.h> +#include <error.h> +#include <errno.h> __attribute__((weak)) struct __xn_tscinfo __xn_tscinfo = { type: -1 @@ -291,17 +292,15 @@ err = XENOMAI_SYSCALL2(__xn_sys_arch, XENOMAI_SYSARCH_TSCINFO, &__xn_tscinfo); if (err) { - error: - fprintf(stderr, "Xenomai: Your board/configuration does not" - " allow tsc emulation in user-space: %d\n", err); - exit(EXIT_FAILURE); + fail: + error(EXIT_FAILURE, err, + "Xenomai: Your board/configuration does not" + " allow tsc emulation in user-space\n"); } fd = open("/dev/mem", O_RDONLY | O_SYNC); - if (fd == -1) { - perror("Xenomai init: open(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (fd == -1) + error(EXIT_FAILURE, errno, "Xenomai init: open(/dev/mem)"); page_size = sysconf(_SC_PAGESIZE); @@ -313,10 +312,8 @@ phys_addr = (unsigned long) __xn_tscinfo.u.fr.counter; addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED, fd, phys_addr & ~(page_size - 1)); - if (addr == MAP_FAILED) { - perror("Xenomai init: mmap(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (addr == MAP_FAILED) + error(EXIT_FAILURE, errno, "Xenomai init: mmap(/dev/mem)"); __xn_tscinfo.u.fr.counter = ((volatile unsigned *) @@ -330,10 +327,8 @@ phys_addr = (unsigned long) __xn_tscinfo.u.dec.counter; addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED, fd, phys_addr & ~(page_size - 1)); - if (addr == MAP_FAILED) { - perror("Xenomai init: mmap(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (addr == MAP_FAILED) + error(EXIT_FAILURE, "Xenomai init: mmap(/dev/mem)"); __xn_tscinfo.u.dec.counter = ((volatile unsigned *) @@ -342,18 +337,15 @@ } #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC == __XN_TSC_TYPE_DECREMENTER */ case __XN_TSC_TYPE_NONE: - goto error; + goto fail; default: - fprintf(stderr, - "Xenomai: kernel/user tsc emulation mismatch.\n"); - exit(EXIT_FAILURE); + error(EXIT_FAILURE, err, + "Xenomai: kernel/user tsc emulation mismatch.\n"); } - if (close(fd)) { - perror("Xenomai init: close(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (close(fd)) + error(EXIT_FAILURE, errno, "Xenomai init: close(/dev/mem)"); #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC */ } #define xeno_arch_features_check() xeno_arm_features_check() -- Philippe. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-05-01 17:02 ` Philippe Gerum @ 2008-05-03 8:21 ` Hans Søndergaard (HSO) 2008-05-03 14:14 ` Gilles Chanteperdrix 0 siblings, 1 reply; 9+ messages in thread From: Hans Søndergaard (HSO) @ 2008-05-03 8:21 UTC (permalink / raw) To: rpm@xenomai.org, Gilles Chanteperdrix; +Cc: xenomai@xenomai.org Hi, The patch worked, and we are now able to compile the userspace libraries as well as the kernel. Thank you very much! Hans Sø -----Original Message----- From: Philippe Gerum [mailto:philippe.gerum@domain.hid] On Behalf Of Philippe Gerum Sent: 1. maj 2008 19:03 To: Gilles Chanteperdrix Cc: Hans Søndergaard (HSO); xenomai@xenomai.org Subject: Re: [Xenomai-help] Xenomai on AT91SAM9260 Gilles Chanteperdrix wrote: > Hans Søndergaard (HSO) wrote: > > Hi, > > > > Thanks for the answer. > > We are now trying to install Xenomai 2.4.3 using Linux 2.6.24 on AT91SAM9260, > > but have a problem: > > > > Is it possible to disable the building of the posix skin when > > configuring the user space libraries for Xenomai? > > > > I have tried --disable-posix-skin, but this had no effect. > > > > The reason why I ask is that the building of src/skins/posix/init.c > > fails like this: > > > > [stk@domain.hid posix]$ arm-linux-uclibc-gcc -DHAVE_CONFIG_H -I. -I../../../src/inc > > lude -I../../../../xenomai-2.4.3/src/skins/posix -O2 -D_GNU_SOURCE -D_REENTRANT > > -Wall -pipe -march=armv5 -D__XENO__ -D__IN_XENO__ -Wstrict-prototypes -I../../.. > > /../xenomai-2.4.3/include -I../../../../xenomai-2.4.3/include/posix -MT libpthre > > ad_rt_la-init.lo -MD -MP -MF .deps/libpthread_rt_la-init.Tpo -c ../../../../xeno > > mai-2.4.3/src/skins/posix/init.c -fPIC -DPIC -o .libs/libpthread_rt_la-init.o > > In file included from ../../../src/include/asm/xenomai/atomic.h:78, > > from ../../../../xenomai-2.4.3/include/nucleus/system.h:27, > > from ../../../src/include/asm/xenomai/system.h:135, > > from ../../../../xenomai-2.4.3/include/nucleus/types.h:40, > > from ../../../../xenomai-2.4.3/include/nucleus/queue.h:25, > > from ../../../../xenomai-2.4.3/include/nucleus/timebase.h:30, > > from ../../../../xenomai-2.4.3/include/nucleus/timer.h:27, > > from ../../../../xenomai-2.4.3/include/nucleus/thread.h:26, > > from ../../../../xenomai-2.4.3/include/posix/pthread.h:150, > > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > > de/bits/uClibc_mutex.h:16, > > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > > de/bits/uClibc_stdio.h:120, > > from /home/stk/brick/mb9200/buildroot/build_arm/staging_dir/bin > > -ccache/../lib/gcc/arm-linux-uclibc/4.1.1/../../../../arm-linux-uclibc/sys-inclu > > de/stdio.h:73, > > from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20: > > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check > > ': > > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs > > t use in this function) > > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi > > er is reported only once > > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe > > ars in.) > > > > Obviously there is something wrong with the include path used: > > uClibc_mutex.h should not include 'pthread.h' in the Xenomai > > distribution but rather the version in uClibc itself. > > > > Why this happens I'm trying to discover. > > > > The complete configure I'm using is: > > > > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc > > > > Thanks in advance. > > Well, I understand that it may not be important to you if you do not > intend to use the posix skin, but we should try and solve this issue > (which seems to be a uclibc issue). Including posix skin pthread.h > instead of libc pthread.h should be no problem, since posix skin > pthread.h include the libc pthread.h. The problem here is due to the > fact that asm-arm/syscall.h is trying to use stderr whereas we are at > the very beginning of stdio.h where stderr is not defined yet. > > I have to admit that I have no idea here other than defining a function > in init.c which calls fprintf and to call this function instead of > fprintf in asm-arm/syscall.h > > Philippe, any better idea ? > No, but I do have an almost as ugly one to suggest: --- include/asm-arm/syscall.h (revision 3729) +++ include/asm-arm/syscall.h (working copy) @@ -222,7 +222,6 @@ #define XENOMAI_SYSARCH_TSCINFO 4 #ifndef __KERNEL__ -#include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> @@ -230,6 +229,8 @@ #include <fcntl.h> #include <unistd.h> #include <limits.h> +#include <error.h> +#include <errno.h> __attribute__((weak)) struct __xn_tscinfo __xn_tscinfo = { type: -1 @@ -291,17 +292,15 @@ err = XENOMAI_SYSCALL2(__xn_sys_arch, XENOMAI_SYSARCH_TSCINFO, &__xn_tscinfo); if (err) { - error: - fprintf(stderr, "Xenomai: Your board/configuration does not" - " allow tsc emulation in user-space: %d\n", err); - exit(EXIT_FAILURE); + fail: + error(EXIT_FAILURE, err, + "Xenomai: Your board/configuration does not" + " allow tsc emulation in user-space\n"); } fd = open("/dev/mem", O_RDONLY | O_SYNC); - if (fd == -1) { - perror("Xenomai init: open(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (fd == -1) + error(EXIT_FAILURE, errno, "Xenomai init: open(/dev/mem)"); page_size = sysconf(_SC_PAGESIZE); @@ -313,10 +312,8 @@ phys_addr = (unsigned long) __xn_tscinfo.u.fr.counter; addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED, fd, phys_addr & ~(page_size - 1)); - if (addr == MAP_FAILED) { - perror("Xenomai init: mmap(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (addr == MAP_FAILED) + error(EXIT_FAILURE, errno, "Xenomai init: mmap(/dev/mem)"); __xn_tscinfo.u.fr.counter = ((volatile unsigned *) @@ -330,10 +327,8 @@ phys_addr = (unsigned long) __xn_tscinfo.u.dec.counter; addr = mmap(NULL, page_size, PROT_READ, MAP_SHARED, fd, phys_addr & ~(page_size - 1)); - if (addr == MAP_FAILED) { - perror("Xenomai init: mmap(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (addr == MAP_FAILED) + error(EXIT_FAILURE, "Xenomai init: mmap(/dev/mem)"); __xn_tscinfo.u.dec.counter = ((volatile unsigned *) @@ -342,18 +337,15 @@ } #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC == __XN_TSC_TYPE_DECREMENTER */ case __XN_TSC_TYPE_NONE: - goto error; + goto fail; default: - fprintf(stderr, - "Xenomai: kernel/user tsc emulation mismatch.\n"); - exit(EXIT_FAILURE); + error(EXIT_FAILURE, err, + "Xenomai: kernel/user tsc emulation mismatch.\n"); } - if (close(fd)) { - perror("Xenomai init: close(/dev/mem)"); - exit(EXIT_FAILURE); - } + if (close(fd)) + error(EXIT_FAILURE, errno, "Xenomai init: close(/dev/mem)"); #endif /* CONFIG_XENO_ARM_HW_DIRECT_TSC */ } #define xeno_arch_features_check() xeno_arm_features_check() -- Philippe. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-05-03 8:21 ` Hans Søndergaard (HSO) @ 2008-05-03 14:14 ` Gilles Chanteperdrix 2008-05-04 15:16 ` Hans Søndergaard (HSO) 0 siblings, 1 reply; 9+ messages in thread From: Gilles Chanteperdrix @ 2008-05-03 14:14 UTC (permalink / raw) To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org Hans Søndergaard (HSO) wrote: > Hi, > > The patch worked, and we are now able to compile the userspace libraries as well as the kernel. > > Thank you very much! Which patch, the one I sent, or the one Philippe sent ? -- Gilles. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-05-03 14:14 ` Gilles Chanteperdrix @ 2008-05-04 15:16 ` Hans Søndergaard (HSO) 0 siblings, 0 replies; 9+ messages in thread From: Hans Søndergaard (HSO) @ 2008-05-04 15:16 UTC (permalink / raw) To: Gilles Chanteperdrix; +Cc: xenomai@xenomai.org I used yours - this one (we didn't try the other): Index: include/nucleus/thread.h =================================================================== --- include/nucleus/thread.h (revision 3732) +++ include/nucleus/thread.h (working copy) @@ -22,8 +22,6 @@ #ifndef _XENO_NUCLEUS_THREAD_H #define _XENO_NUCLEUS_THREAD_H -#include <nucleus/timer.h> - /*! @ingroup nucleus @defgroup nucleus_state_flags Thread state flags. @brief Bits reporting permanent or transient states of thread. @@ -130,6 +128,7 @@ #if defined(__KERNEL__) || defined(__XENO_SIM__) #include <nucleus/stat.h> +#include <nucleus/timer.h> #ifdef __XENO_SIM__ /* Pseudo-status (must not conflict with other bits) */ Index: include/nucleus/intr.h =================================================================== --- include/nucleus/intr.h (revision 3732) +++ include/nucleus/intr.h (working copy) @@ -22,8 +22,6 @@ #ifndef _XENO_NUCLEUS_INTR_H #define _XENO_NUCLEUS_INTR_H -#include <nucleus/types.h> - /* Possible return values of ISR. */ #define XN_ISR_NONE 0x1 #define XN_ISR_HANDLED 0x2 @@ -41,6 +39,7 @@ #if defined(__KERNEL__) || defined(__XENO_SIM__) +#include <nucleus/types.h> #include <nucleus/stat.h> typedef struct xnintr { Index: src/skins/posix/rtdm.c =================================================================== --- src/skins/posix/rtdm.c (revision 3732) +++ src/skins/posix/rtdm.c (working copy) @@ -18,6 +18,7 @@ */ #include <errno.h> +#include <string.h> #include <stdarg.h> #include <pthread.h> #include <fcntl.h> Index: src/skins/posix/thread.c =================================================================== --- src/skins/posix/thread.c (revision 3732) +++ src/skins/posix/thread.c (working copy) @@ -17,6 +17,7 @@ */ #include <stddef.h> +#include <string.h> #include <errno.h> #include <signal.h> #include <unistd.h> Index: src/skins/posix/clock.c =================================================================== --- src/skins/posix/clock.c (revision 3732) +++ src/skins/posix/clock.c (working copy) @@ -18,6 +18,7 @@ #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <errno.h> #include <pthread.h> /* For pthread_setcanceltype. */ #include <posix/syscall.h> Index: src/testsuite/cyclic/cyclictest.c =================================================================== --- src/testsuite/cyclic/cyclictest.c (revision 3732) +++ src/testsuite/cyclic/cyclictest.c (working copy) @@ -35,6 +35,7 @@ #include <sys/types.h> #include <sys/time.h> #include <sys/mman.h> +#include <nucleus/trace.h> #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) Kind regards, Hans Sø and Stephan Korsholm -----Original Message----- From: Gilles Chanteperdrix [mailto:gilles.chanteperdrix@xenomai.org] Sent: 3. maj 2008 16:15 To: Hans Søndergaard (HSO) Cc: rpm@xenomai.org; xenomai@xenomai.org Subject: RE: [Xenomai-help] Xenomai on AT91SAM9260 Hans Søndergaard (HSO) wrote: > Hi, > > The patch worked, and we are now able to compile the userspace libraries as well as the kernel. > > Thank you very much! Which patch, the one I sent, or the one Philippe sent ? -- Gilles. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Xenomai-help] Xenomai on AT91SAM9260 2008-05-01 5:46 ` Hans Søndergaard (HSO) 2008-05-01 16:04 ` Gilles Chanteperdrix @ 2008-05-01 16:55 ` Gilles Chanteperdrix 1 sibling, 0 replies; 9+ messages in thread From: Gilles Chanteperdrix @ 2008-05-01 16:55 UTC (permalink / raw) To: Hans Søndergaard (HSO); +Cc: xenomai@xenomai.org [-- Attachment #1: message body and .signature --] [-- Type: text/plain, Size: 1546 bytes --] Hans Søndergaard (HSO) wrote: > from ../../../../xenomai-2.4.3/src/skins/posix/init.c:20: > ../../../src/include/asm/xenomai/syscall.h: In function 'xeno_arm_features_check > ': > ../../../src/include/asm/xenomai/syscall.h:295: error: 'stderr' undeclared (firs > t use in this function) > ../../../src/include/asm/xenomai/syscall.h:295: error: (Each undeclared identifi > er is reported only once > ../../../src/include/asm/xenomai/syscall.h:295: error: for each function it appe > ars in.) > > Obviously there is something wrong with the include path used: > uClibc_mutex.h should not include 'pthread.h' in the Xenomai > distribution but rather the version in uClibc itself. > > Why this happens I'm trying to discover. > > The complete configure I'm using is: > > ../xenomai-2.4.3/configure --build=i686-pc-linux-gnu --host=arm-linux-uclibc --enable-arm-mach=at91sam926x --enable-arm-tsc The way I see it, the problem is that posix/pthread.h includes nucleus/thread.h and nucleus/intr.h to get a few constants definitions. And since these include files include other include files, we end up with the whole stack of xenomai includes. So, I propose the following patch which basically stop including other include files in nucleus/thread.h and nucleus/intr.h when included from user-space. The only downside of this solution is that application like cyclictest who want to use the I-pipe tracer now need to include explicitely nucleus/trace.h. -- Gilles. [-- Attachment #2: xeno-fix-uclibc-includes.diff --] [-- Type: text/plain, Size: 2585 bytes --] Index: include/nucleus/thread.h =================================================================== --- include/nucleus/thread.h (revision 3732) +++ include/nucleus/thread.h (working copy) @@ -22,8 +22,6 @@ #ifndef _XENO_NUCLEUS_THREAD_H #define _XENO_NUCLEUS_THREAD_H -#include <nucleus/timer.h> - /*! @ingroup nucleus @defgroup nucleus_state_flags Thread state flags. @brief Bits reporting permanent or transient states of thread. @@ -130,6 +128,7 @@ #if defined(__KERNEL__) || defined(__XENO_SIM__) #include <nucleus/stat.h> +#include <nucleus/timer.h> #ifdef __XENO_SIM__ /* Pseudo-status (must not conflict with other bits) */ Index: include/nucleus/intr.h =================================================================== --- include/nucleus/intr.h (revision 3732) +++ include/nucleus/intr.h (working copy) @@ -22,8 +22,6 @@ #ifndef _XENO_NUCLEUS_INTR_H #define _XENO_NUCLEUS_INTR_H -#include <nucleus/types.h> - /* Possible return values of ISR. */ #define XN_ISR_NONE 0x1 #define XN_ISR_HANDLED 0x2 @@ -41,6 +39,7 @@ #if defined(__KERNEL__) || defined(__XENO_SIM__) +#include <nucleus/types.h> #include <nucleus/stat.h> typedef struct xnintr { Index: src/skins/posix/rtdm.c =================================================================== --- src/skins/posix/rtdm.c (revision 3732) +++ src/skins/posix/rtdm.c (working copy) @@ -18,6 +18,7 @@ */ #include <errno.h> +#include <string.h> #include <stdarg.h> #include <pthread.h> #include <fcntl.h> Index: src/skins/posix/thread.c =================================================================== --- src/skins/posix/thread.c (revision 3732) +++ src/skins/posix/thread.c (working copy) @@ -17,6 +17,7 @@ */ #include <stddef.h> +#include <string.h> #include <errno.h> #include <signal.h> #include <unistd.h> Index: src/skins/posix/clock.c =================================================================== --- src/skins/posix/clock.c (revision 3732) +++ src/skins/posix/clock.c (working copy) @@ -18,6 +18,7 @@ #include <stdio.h> #include <stdlib.h> +#include <string.h> #include <errno.h> #include <pthread.h> /* For pthread_setcanceltype. */ #include <posix/syscall.h> Index: src/testsuite/cyclic/cyclictest.c =================================================================== --- src/testsuite/cyclic/cyclictest.c (revision 3732) +++ src/testsuite/cyclic/cyclictest.c (working copy) @@ -35,6 +35,7 @@ #include <sys/types.h> #include <sys/time.h> #include <sys/mman.h> +#include <nucleus/trace.h> #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2008-05-04 15:16 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-04-29 11:37 [Xenomai-help] Xenomai on AT91SAM9260 Hans Søndergaard (HSO) 2008-04-29 12:18 ` Gilles Chanteperdrix 2008-05-01 5:46 ` Hans Søndergaard (HSO) 2008-05-01 16:04 ` Gilles Chanteperdrix 2008-05-01 17:02 ` Philippe Gerum 2008-05-03 8:21 ` Hans Søndergaard (HSO) 2008-05-03 14:14 ` Gilles Chanteperdrix 2008-05-04 15:16 ` Hans Søndergaard (HSO) 2008-05-01 16:55 ` Gilles Chanteperdrix
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.