Now committed. Thanks for pointing this out. We don't get much testing for ARMv4. :-)
12. aug. 2010 14.50 skrev Yoann <[email protected]>: > Hello Erik, > > I've just seen your new patch http://codereview.chromium.org/3161009/diff/1/2 > Thank you ! > > Yoann > > On 6 août, 16:25, Yoann <[email protected]> wrote: >> 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 > -- 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
