On Wed Jul 25, 2007 at 17:15:40 +0800, kashin Lin wrote:
2007/7/24, Adam Lackorzynski adam@os.inf.tu-dresden.de:
On Sun Jul 22, 2007 at 23:24:10 +0800, kashin Lin wrote:
2007/7/22, Adam Lackorzynski adam@os.inf.tu-dresden.de:
On Sat Jul 21, 2007 at 17:15:39 +0800, kashin Lin wrote:
last problem was fixed, but there is another error message now:
/home/kashin08/L4Linux/L4_ARM/build/include/l4/log/log_printf.h:16:20:
error: st darg.h: No such file or directory
but it seems there is a such file in my computer, why it says it
can't
find
that?
This stdarg.h must be provided by your cross-compiler. Which type of cross-compiler are you using? (arm-linux-gcc -v)
arm-linux-gcc -v :
Using built-in specs. Target: arm-unknown-linux-gnu Configured with: /home/pgauth/tmp/crosstool-0.38 /build/arm-unknown-linux-gnu/gcc-4.0.2-glibc-2.3.3/gcc-4.0.2/configure --target=arm-unknown-linux-gnu --host=i686-host_pc-linux-gnu --prefix=/usr/local/arm/gcc-4.0.2-glibc-2.3.3/arm-unknown-linux-gnu --with-headers=/usr/local/arm/gcc-4.0.2-glibc-2.3.3
/arm-unknown-linux-gnu/arm-unknown-linux-gnu/include
--with-local-prefix=/usr/local/arm/gcc-4.0.2-glibc-2.3.3
/arm-unknown-linux-gnu/arm-unknown-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared
--enable-c99
--enable-long-long Thread model: posix gcc version 4.0.2
this cross compiler is provided by the manufacturer of my target board (xscale).
Ok, but lets hope 4.0 will do.
i use " locate stdarg.h " in command line. there is a such header file-stdarg.h in cross compiler's directory.
You should check the following. In your l4env build directory, there's a file Makeconf.bid.local, which should contain a line GCCDIR=/path/to/gcc/things
Now, please check if /path/to/gcc/things/include/stdarg.h exists, or at least the include directory in there if stdarg.h should not happen to be there. It should.
the original GCCDIR pointed to wrong directory, and i correct it now.
A 'make oldconfig' directly in the build directory should also detect this properly. If not then this gcc-version is doing something different.
There should also be a -I/path/to/gcc/things/include line on every
arm-linux-gcc call when building.
how to do it? after i modify GCCDIR, it can find stdarg.h now. so should i still add "-I/path/to/gcc/things/include" ?
No, the build system will add the right option for you automatically.
there is a new problem :
/home/kashin08/L4Linux/L4_ARM/build/include/arm/l4/sys/syscalls_impl.h: In function 'l4_threadid_t l4_myself()': /home/kashin08/L4Linux/L4_ARM/build/include/arm/l4/sys/syscalls_impl.h:69: error: address of explicit register variable 'id' requested /home/kashin08/L4Linux/L4_ARM/build/include/arm/l4/sys/syscalls_impl.h:69: error: initializing argument 1 of 'static l4_threadid_t l4_threadid_t::_convert(l4_threadid_t)' /home/kashin08/L4Linux/L4_ARM/build/include/arm/l4/sys/syscalls_impl.h: In function 'l4_threadid_t l4_myself_noprof()': /home/kashin08/L4Linux/L4_ARM/build/include/arm/l4/sys/syscalls_impl.h:99: error: address of explicit register variable 'id' requested /home/kashin08/L4Linux/L4_ARM/build/include/arm/l4/sys/syscalls_impl.h:99: error: initializing argument 1 of 'static l4_threadid_t l4_threadid_t::_convert(l4_threadid_t)' make[6]: *** [thread.o] Error 1 make[6]: Leaving directory `/home/kashin08/L4Linux/L4_ARM/build/pkg/cxx/lib/thread/src/OBJ-arm_xScale-l4v2' make[5]: *** [/home/kashin08/L4Linux/L4_ARM/build/pkg/cxx/lib/thread/src/OBJ-arm_xScale-l4v2]
This is strange, seems that this gcc-4.0 does not like this code. On the other side I'm successfully compiling with 3.4 and 4.1. Can you try another ARM cross-compiler? Is there something special about your version for your hw?
Adam