Странное поведение python на машине с процессором ARM

Что может вызвать это странное поведение python?

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
>>>

Он дает тот же результат для 0.1, 0.5, 5.1, 0.0 и т.д. Целые числа вернулись обратно ко мне правильно, но все с десятичной точкой дает мне сумасшедшие цифры.

Это бинарный файл python, скомпилированный для ARM, установленный через Optware на Synology DiskStation 101j.

Кто-нибудь видел что-нибудь подобное раньше?

Ответ 1

Возможно, он скомпилирован для неправильной версии VFP.

Или ваш ARM не имеет VFP и должен использовать эмуляцию программного обеспечения, но двоичный файл python пытается использовать аппаратное обеспечение.


ИЗМЕНИТЬ

Ваш DS-101j построен на FW IXP420 BB, который Intel XScale (armv5b) (ссылка). Он не поддерживает аппаратную поддержку с плавающей запятой. И "b" в armv5b означает Big Endian. У некоторых людей есть проблемы с построением, потому что gcc по умолчанию генерирует маленький код. Возможно, это проблема вашего программного обеспечения FP lib. Для получения дополнительной информации просмотрите этот поиск.

Ответ 2

Как сказал zxcat, это звучит так, как будто вы работаете на ARM без аппаратно-плавающей точки и с испорченной библиотекой soft-float. Быстрый поиск не показывал, какой вариант ARM находится в DS101j; кто-нибудь знает?