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.


Reply via email to