Хочется попробовать собрать какой-нибудь софт для linux-кпк с процессором xscale, нашел кучу доков, манов и описаний, но не могу понять, как устроена поддержка плавающей точки. Как следует из даташитов на процессор, у xscale нет сопроцессора для аппаратной ее поддержки, следовательно, нужно собирать компилятор и софт с soft-float. Собрал из сорцов кросс-gcc (arm-linux-gcc 4.2.2), как и должно, с включенной soft-float по-дефолту. Потом взял готовый дистр familiar, вытащил из него все либы, сделал доступными для кросс-компилера и пытался чего-нибудь собрать. Получил ряд ошибок линкера на все либы типа "libc.so.6 uses hardware FP, whereas hello.o uses software FP". Т.е. либы из дистра каким-то образом собраны для hardware FP. Начал копать - сделал arm-linux-objdump -d libc.so.6 и получил дизассемблерный код. В нем, как ни странно, действительно нашлись команды типа "ldfs, flts" и т.д. (команды для работы с hardware FP). Как такое может быть - решительно не понимаю, хотя дистр этот на реальной машинке работает (грузит opie). Пробовал сделать самодельную glibc (2.3.5 собралась, 2.7 совсем не захотела, сказала, для arm не предназначена). После сборки вылезло нечто под 9 метров ростом и работать отказалось (по невыясненым пока причинам), хотя софт собирался и линковался с этой самодельной glibc ней на ура. Для справки - glibc из familiar весит порядка 1Мб. Как я понял по ассемблерному листингу, soft-float компилер заменяет все аппаратные ассемблерные команды типа fmls на вызовы аналогичных по действию функций, например __mulsf3. Остается еще вопрос, где должна быть расположена реализация самих этих функций. Вроде бы можно запихать как в glibc (не от этого ли она так распухла?), а можно в отдельную libfloat. Итак... хотелось бы услышать какой-нибудь ликбез по поводу устройства плавающей точки, а то я уже совсем запутался и ничего не понимаю. Только не нужно предлагать взять кросстул или готовые компилеры. Так не интересно.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от farisey
Ответ на:
комментарий
от farisey
Ответ на:
комментарий
от bon
Ответ на:
комментарий
от farisey
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум floating point exception (2007)
- Форум Неправильная сборка кросс-компилятора под thumb2 (armv7) (2015)
- Форум chroot: floating point exception (2009)
- Форум luajit + mips soft float (2016)
- Форум [ядро][-soft-float]Производительность (2010)
- Форум arm : decimal floating point not supported for this target (2020)
- Форум Floating point exception, как избавиться? (2008)
- Форум [mesa][патенты]Floating Point Textures (2011)
- Форум перевод float из IEEE в IBM floating-point format? (2013)
- Форум В ksh93 перестал работать floating point (2018)