Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Weird python behaviour on machine with ARM CPU

What could possibly cause this weird python behaviour?

Python 2.6.2 (r262:71600, May 31 2009, 03:55:41)
[GCC 3.3.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> .1
1251938906.2350719
>>> .1
0.23507189750671387
>>> .1
0.0
>>> .1
-1073741823.0
>>> .1
-1073741823.0
>>> .1
-1073741823.0
>>>

It gives the same output for 0.1, 0.5, 5.1, 0.0, etc.. Integers are echoed back at me correctly, but anything with a decimal point gives me the crazy numbers.

This is a python binary compiled for ARM, installed via Optware on a Synology DiskStation 101j.

Has anyone seen anything like this before?

like image 986
Blorgbeard Avatar asked Sep 03 '09 02:09

Blorgbeard


1 Answers

Maybe it's compiled for the wrong VFP version.

Or your ARM has no VFP and needs to use software emulation instead, but the python binary tries to use hardware.


EDIT

Your DS-101j build on FW IXP420 BB cpu, which is Intel XScale (armv5b) (link). It has no hardware floating-point support. And "b" in armv5b stands for Big Endian. Some people has build problems, because gcc generates little endian code by default. Maybe this is the problem of your software FP lib. Check this search for more info.

like image 182
zxcat Avatar answered Sep 23 '22 13:09

zxcat