Как собрать toolchain для armv7l (без vfp)?[РЕШЕТО]
Нужно собрать статический бинарник для armel. Статический т.к нужно влинковать некоторые закрытые библиотеки от Allwinner, а они есть только для armel и запустить это дело на hardfloat системе.
Собрал через crossdev
тулчейн armv7l-linux-gnueabi
.
Не линкуется:
/usr/libexec/gcc/armv7l-linux-gnueabi/ld: ошибка: simpleencoder.static использует регистровые аргументы VFP, а ./linux_lib/libcedarv_osal.a(cedarv_osal_linux.o) не использу
Добавил -mfloat-abi=soft:
In file included from /usr/armv7l-linux-gnueabi/usr/include/features.h:400:0, from /usr/armv7l-linux-gnueabi/usr/include/stdio.h:27, from matroska_ebml.c:26: /usr/armv7l-linux-gnueabi/usr/include/gnu/stubs.h:7:29: фатальная ошибка: gnu/stubs-soft.h: Нет такого файла или каталога компиляция прервана.
То есть, тулчейн очень даже не softfloat.
armv7l-softfloat-linux-gnueabi
не собирается, падает на конфигурации.
P.S: armv7a-softfloat-linux-gnueabi
:
/usr/libexec/gcc/armv7a-softfloat-linux-gnueabi/ld: Оператор контроля BFD (GNU Binutils) 2.23.2 обнаружил ошибку /var/tmp/portage/cross-armv7a-softfloat-linux-gnueabi/binutils-2.23.2/work/binutils-2.23.2/bfd/elf32-arm.c:7363
При этом динамически бинарник линкуется и даже запускается на hardfloat-системе. получил кодировщик видео 50 кадров в секунду при почти отсутствующей нагрузке на процессор.
Осталось слинковать его статически.
P.S
Похоже, известный баг gcc.
http://lists.gnu.org/archive/html/bug-binutils/2013-06/msg00110.html
Нативный компилятор, запущенный в минимальном chroot'е (только gcc) успешно создал статический бинарник.
- Для комментирования войдите или зарегистрируйтесь