LINUX.ORG.RU

Сборка ядра кросс-компилятором GCC под ARM


0

1

При сборке ядра кросс-компилятором под ARM выдаются ошибки. Вот какие команды подавались:

niagara@stend1-h11 linux-3.2.1]$ make clean
[niagara@stend1-h11 linux-3.2.1]$ make ARCH=arm defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
*** Default configuration is based on 'versatile_defconfig'
#
# configuration written to .config
#
[niagara@stend1-h11 linux-3.2.1]$ make ARCH="arm" CROSS_COMPILE="arm-eabi-" zImage modules
Вот какая ошибка выдается:
Kernel: arch/arm/boot/Image is ready
AS arch/arm/boot/compressed/head.o
GZIP arch/arm/boot/compressed/piggy.gzip
AS arch/arm/boot/compressed/piggy.gzip.o
CC arch/arm/boot/compressed/misc.o
CC arch/arm/boot/compressed/decompress.o
CC arch/arm/boot/compressed/string.o
AS arch/arm/boot/compressed/lib1funcs.o
LD arch/arm/boot/compressed/vmlinux
arm-eabi-ld: ERROR: arch/arm/boot/compressed/misc.o uses VFP instructions, whereas arch/arm/boot/compressed/vmlinux does not
arm-eabi-ld: failed to merge target specific data of file arch/arm/boot/compressed/misc.o
arm-eabi-ld: ERROR: arch/arm/boot/compressed/decompress.o uses VFP instructions, whereas arch/arm/boot/compressed/vmlinux does not
arm-eabi-ld: failed to merge target specific data of file arch/arm/boot/compressed/decompress.o
arm-eabi-ld: ERROR: arch/arm/boot/compressed/string.o uses VFP instructions, whereas arch/arm/boot/compressed/vmlinux does not
arm-eabi-ld: failed to merge target specific data of file arch/arm/boot/compressed/string.o
make[2]: *** [arch/arm/boot/compressed/vmlinux] Error 1
make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2
make: *** [zImage] Error 2
Собственно вопрос как избежать этой ошибки:) Компилятор собирал сам с использованием newlib Конфигурация для сборки компилятора:
$DST/$SRCNAME/$GCC_SRC/configure --target=$TARGET --prefix=$PREFIX --enable-languages=c,c++ --without-fp --with-softfloat-support=internal --enable-multilib --with-float=soft --with-gnu-as --with-gnu-ld --with-newlib --with-gxx-include-dir=$PREFIX/$TARGET/include --with-mpfr-lib=/usr/local/lib --with-gmp-lib=/usr/local/lib
где TARGET=arm-eabi (если в качестве цели выбрать arm-elf ошибка таже)

Компилятор собирал сам

зачем? есть готовые, с которыми все работает.

для начала попробуй взять архив с собранным гцц под армы и собрать ведро им. ведро собралось --- значит что-то не так собрал ты. не собралось --- значит что-то не так с ведром.

Rastafarra ★★★ ()
Ответ на: комментарий от Rastafarra

Про компилятор - это требование такое. Про ядро - собирается иногда, в зависомости от такого какое семейство или контроллер выбрать при установке. Все дело, насколько я понимаю, в поддерже операций с флоат числами на уровне ядра контроллера...

Impossibility ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.