Thank you Erik.
I've managed to cross-compile V8 !!
I've inspected every functions of platform-linux.cc and found the
guilty one, DebugBreak()
void OS::DebugBreak() {
// TODO(lrn): Introduce processor define for runtime system (!=
V8_ARCH_x,
// which is the architecture of generated code).
#if (defined(__arm__) || defined(__thumb__)) && \
defined(CAN_USE_ARMV5_INSTRUCTIONS)
asm("bkpt 0");
#elif defined(__mips__)
asm("break");
#else
asm("int $3");
#endif
}
Now it's quite logical ... I'm on armv4 architecture, then I had a
beautifull asm error. (according to the preprocessor tests)
I'have commented all the content of the function, and It builds and
works fine on my board ! It's maybe not very clean, but it works !
Great !
To answer to your questions, I'm actually interested in V8 engine
only, to develop a SDK.
I have 64 Mb of memory. Now I'm headed to bench this on my board. I
hope these 64 Mb will be enough to wrap it with my system.
Thank you !
Have a nice day
Yoann
On 6 août, 10:45, Erik Corry <[email protected]> wrote:
> 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 checkouthttp://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