The fpu (vfp, neon) and float abi (soft, softfp, hard) are two distinct things: * the fpu setting will affect the C++ code, the V8 JIT will detect at runtime if you can use vfp or not. Since your platform supports vfpv3 this setting should have no effect on your crash. * the abi defines amongst other things how values are passed between functions: soft and softfp require floating point values to be passed in integer register, hard use floating point register So even if your platform has vfp, it will likely crash if you have an abi mismatch.
When you type make arm.release the makefile will use your compiler default for abi, cpu and fpu. If there is a mismatch between your compiler defaults and your platform then you need to explicitly set the parameter. Can you try make arm.debug armfloatabi=hard armv7=true armfpu=vfp and see if you still get the error. On 4 July 2013 16:45, Benedikt Naessens <[email protected]> wrote: > Rodolphe, > > My platform (Zynq) has Neon and vfp (see /proc/cpuinfo in the first > post). My first post contains the different configurations I tried for > building V8. If nothing special is specified (except arm.release or > arm.debug), isn't vfp enabled automatically ? Or do I need to specify this > explicitly ? > > Shouldn't soft fp work anyway, regardless of the fact that hard fp is > possible ? > > Op donderdag 4 juli 2013 16:06:45 UTC+2 schreef Rodolph Perfetta het > volgende: > >> Hi Benedikt, >> >> The exact command which triggered the failure would be useful, usually it >> is just above the "# Fatal ..." comment. >> >> Have you tried make arm.debug armfloatabi=hard armv7=true armfpu=vfp (in >> other word is your platform hard fp?) >> >> >> >> On 4 July 2013 12:06, Ben Noordhuis <[email protected]> wrote: >> >>> On Thu, Jul 4, 2013 at 12:07 PM, Benedikt Naessens <[email protected]> >>> wrote: >>> > I have a hard time finding the core dump (for some reason, apport >>> doesn't >>> > copy the core dump to /var/crash and in case apport is disabled no >>> core dump >>> > is made at all). >>> > >>> > Anyway, I've built V8 with the arm.debug configuration (make arm.debug >>> -j4 >>> > OUTDIR=./my-output-folder snapshot=off armv7=true armfloatabi=soft >>> > armfpu=vfp) and get the following stack trace: >>> > # >>> > # Fatal error in ../src/cached-powers.cc, line 159 >>> > # CHECK(cached_power.binary_**exponent <= max_exponent) failed >>> > # >>> > ==== C stack trace ==============================**= >>> > 1: V8_Fatal >>> > 2: >>> > v8::internal::**PowersOfTenCache::**GetCachedPowerForBinaryExponen** >>> tRange(int, >>> > int, v8::internal::DiyFp*, int*) >>> > 3: ?? >>> > 4: v8::internal::FastDtoa(double, v8::internal::FastDtoaMode, int, >>> > v8::internal::Vector<char>, int*, int*) >>> > 5: v8::internal::DoubleToAscii(**double, v8::internal::DtoaMode, int, >>> > v8::internal::Vector<char>, int*, int*, int*) >>> > 6: v8::internal::DoubleToCString(**double, >>> v8::internal::Vector<char>) >>> > 7: v8::internal::Heap::**NumberToString(v8::internal::**Object*, >>> bool, >>> > v8::internUnhandled prefetch abort: breakpoint debug exception (0x002) >>> at >>> > 0x0070ab2c >>> > al::PretenureFlag) >>> > 8: ?? >>> > 9: v8::internal::Runtime_**NumberToStringSkipCache(int, >>> > v8::internal::Object**, v8::internal::Isolate*) >>> > ==== JS stack trace ==============================**=========== >>> > Security context: 0x4060a271 <JS Object>#0# >>> > 1: ToString [native runtime.js:563] (this=0x4060abf1 <JS >>> > Object>#1#,a=0x2dc1a92d <Number: 10.89>) >>> > 5: /* anonymous */ [(shell):1] (this=0x4060a311 <JS Global >>> Object>#2#) >>> > ==== Details ==============================**================== >>> > [1]: ToString [native runtime.js:563] (this=0x4060abf1 <JS >>> > Object>#1#,a=0x2dc1a92d <Number: 10.89>) { >>> > // expression stack (top to bottom) >>> > [00] : 0x2dc1a92d <Number: 10.89> >>> > --------- s o u r c e c o d e --------- >>> > function ToString(a){?if((typeof(a)==='**string'))return >>> > a;?if((typeof(a)==='number'))**return >>> > %_NumberToString(a);?if((**typeof(a)==='boolean'))return >>> > a?'true':'false';?if((typeof(**a)==='undefined'))return'** >>> undefined';?return((a===null))**?'null':%ToString(%** >>> DefaultString(a));?} >>> > ------------------------------**----------- >>> > } >>> > [5]: /* anonymous */ [(shell):1] (this=0x4060a311 <JS Global >>> Object>#2#) { >>> > // stack-allocated locals >>> > var .result = 0x40608091 <undefined> >>> > // expression stack (top to bottom) >>> > [03] : 0x4061f285 <JS Function print (SharedFunctionInfo >>> 0x4061f225)>#3# >>> > [02] : 0x2dc1a92d <Number: 10.89> >>> > [01] : 0x4060a311 <JS Global Object>#2# >>> > --------- s o u r c e c o d e --------- >>> > print(3.3*3.3);? >>> > ------------------------------**----------- >>> > } >>> > ==== Key ==============================**============== >>> > #0# 0x4060a271: 0x4060a271 <JS Object> >>> > #1# 0x4060abf1: 0x4060abf1 <JS Object> >>> > #2# 0x4060a311: 0x4060a311 <JS Global Object> >>> > #3# 0x4061f285: 0x4061f285 <JS Function print (SharedFunctionInfo >>> > 0x4061f225)> >>> > ===================== >>> > Trace/breakpoint trap (core dumped) >>> > >>> > Is this enough info ? >>> >>> Ah, so it's failing on a CHECK. You may want to file a bug report for >>> that. >>> >>> You mentioned a floating point exception in your original post. I >>> thought you meant that d8 got killed with a SIGFPU or a SIGILL. >>> >>> -- >>> -- >>> v8-users mailing list >>> [email protected] >>> >>> http://groups.google.com/**group/v8-users<http://groups.google.com/group/v8-users> >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "v8-users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to v8-users+u...@**googlegroups.com. >>> >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>> . >>> >>> >>> >> -- > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
