Den 5. aug. 2010 17.17 skrev Yoann <[email protected]>: > Hello, > > I'm trying to cross-compile V8 for an ARM 920T board (armv4) with a > toolchain generated by buildroot (based on the uclibc), 4.3.4 version. > I'm working with ubuntu 10.04. >
I wonder how much memory your 920T board has. I would guess it doesn't have enough to run Chromium. Perhaps that is not your aim. > > I definitly need some help... > > After a "svn checkout http://v8.googlecode.com/svn/trunk/ v8" I've > tried the following scons command with some exports : > > export GCC_VERSION=43 > > export CC="$BUILDROOT_PATH/output/staging/usr/bin/arm-linux-gcc -I > $BUILDROOT_PATH/output/staging/usr/include -I$BUILDROOT_PATH/output/ > staging/include --sysroot=$BUILDROOT_PATH > export CXX="$BUILDROOT_PATH/output/staging/usr/bin/arm-linux-g++" > export CXXFLAGS="-I. -march=armv4t --sysroot=$BUILDROOT_PATH/output/ > staging/ -isysroot $BUILDROOT_PATH/output/staging" > export CFLAGS="-I. -march=armv4t" > export LDFLAGS="--sysroot $BUILDROOT_PATH/output/staging/" > > scons mode=debug arch=arm library=shared prof=off os=linux > > (I know some of these scons options are optional, but I wanted to be > sure to get what I need) > > Then, i get this error : > > src/platform-linux.cc:48:56: error: execinfo.h: No such file or > This stuff isn't very important for V8. It's only used by the profiler. Just remove this include. All the uses of backtrace etc. are inside an #ifdef __GLIBC__. I guess with uclibc that macro should be undefined? So I'm not sure why you get these errors. > directory > src/platform-linux.cc: In static member function 'static int > > v8::internal::OS::StackWalk(v8::internal::Vector<v8::internal::OS::StackFrame>)': > src/platform-linux.cc:405: error: 'backtrace' was not declared in this > scope > src/platform-linux.cc:407: error: 'backtrace_symbols' was not declared > in this scope > src/platform-linux.cc: In function 'void > v8::internal::ProfilerSignalHandler(int, siginfo_t*, void*)': > src/platform-linux.cc:773: error: 'struct sigcontext' has no member > named 'gregs' > src/platform-linux.cc:774: error: 'struct sigcontext' has no member > named 'gregs' > src/platform-linux.cc:775: error: 'struct sigcontext' has no member > named 'gregs' > scons: *** [obj/debug/platform-linux.os] Error 1 > scons: building terminated because of errors. > > > I've read backtrace() was a glibc-specific function and because I'm > not interested in backtrace in my project I've created an execinfo.h > file with redefined functions. I've put it at the project root in my > case. > > #ifndef _EXECINFO_H_ > #define _EXECINFO_H_ 1 > > #include <sys/cdefs.h> > > __BEGIN_DECLS > > int backtrace(void**,int){ return 0; } > char** backtrace_symbols(void* const*,int){return NULL; } > void backtrace_symbols_fd(void* const*,int,int){} > > __END_DECLS > > #endif /* !_EXECINFO_H_ */ > > I know, it's sooo nasty ! I'm trying every kind of way to get V8 cross- > compiled ... > > Now, the backtrace error is gone, I deal whith the > ProfilerSignalHandler one by uncommenting the all function content. > Then it ends up getting this : > > /home/yoann/workspace/karotz/buildroot/buildroot-2010.05/output/ > staging/usr/bin/arm-linux-g++ -o obj/debug/platform-linux.os -c -I. - > march=armv4t --sysroot=/home/yoann/workspace/karotz/buildroot/ > buildroot-2010.05/output/staging/ -isysroot /home/yoann/workspace/ > karotz/buildroot/buildroot-2010.05/output/staging -Wall -Werror -W - > Wno-unused-parameter -Wnon-virtual-dtor -pedantic -g -O0 -ansi -fno- > rtti -fno-exceptions -fvisibility=hidden -Wall -Werror -W -Wno-unused- > parameter -Wnon-virtual-dtor -pedantic -g -O0 -ansi -fPIC - > DV8_TARGET_ARCH_ARM -DENABLE_DISASSEMBLER -DDEBUG -DV8_SHARED - > DENABLE_VMSTATE_TRACKING -DENABLE_LOGGING_AND_PROFILING - > DV8_ENABLE_CHECKS -DENABLE_DEBUGGER_SUPPORT -Isrc src/platform- > linux.cc > /tmp/ccSp2ze3.s: Assembler messages: > /tmp/ccSp2ze3.s:414: Error: bad instruction `int $3' > int3 is an x86 instruction. I can't work out how you are getting this. Could it be that your include paths are wrong so you are including system libraries from the host rather than the target? That would also explain the ifdef not working, perhaps? > scons: *** [obj/debug/platform-linux.os] Error 1 > scons: building terminated because of errors. > > I've tried several branches of V8 (trunk, bleeding_edge and 2.2) but i > get the same result. > > I think this is a flag problem. I'm missing something ... > I fear that with the armv4t + uclibc combination I'm entering in a > world of pain. > > If someone has any idea to deal with my problem. I would so pleased to > hear anything that would help me. > > Thanks in advance !! > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > -- Erik Corry, Software Engineer Google Denmark ApS. CVR nr. 28 86 69 84 c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018 Copenhagen K, Denmark. -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
