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 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
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'
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

Reply via email to