CLFS para ARMv7 neón

Estoy siguiendo el libro de CLFS (versión GIT-20140613-arm) , y tengo un problema al comstackr GCC con la combinación de armv7 y neón. Información de destino aquí .

Mi anfitrión es un Debian 8 limpio con los packages gawk, build-essential, texinfo y libncurses5-dev. Más detalles se pueden encontrar aquí .

Hice este parche para build binutils con gcc-4.9.

Siguiendo las instrucciones, cuando se trata de comstackr GCC por primera vez, afirma que no es posible combinar estos arms.

checking for suffix of object files... configure: error: in `/mnt/clfs/sources/gcc-build/arm-linux-musleabihf/libgcc': configure: error: cannot compute suffix of object files: cannot compile See `config.log' for more details. 

En config.log podemos ver:

 conftest.c:1:0: error: target CPU does not support ARM mode 

Conecté el error completo aquí .

En mi investigación encontré esta pregunta que parece ser la misma, pero el OP estaba siguiendo una versión muy antigua del libro de CLFS, logré superar este error añadiendo --with-mode=thumb to ./configure , pero luego musl falla:

 arm-linux-musleabihf-gcc -std=c99 -nostdinc -ffreestanding -fexcess-precision=standard -frounding-math -D_XOPEN_SOURCE=700 -I./arch/arm -I./src/internal -I./include -Os -pipe -fomit-frame-pointer -fno-unwind-tables -fno-asynchronous-unwind-tables -Wa,--noexecstack -Werror=implicit-function-declaration -Werror=implicit-int -Werror=pointer-sign -Werror=pointer-arith -fno-stack-protector -c -o crt/crt1.o crt/arm/crt1.s crt/arm/crt1.s: Assembler messages: crt/arm/crt1.s:6: Error: only lo regs allowed with immediate -- `mov fp,#0' crt/arm/crt1.s:7: Error: only lo regs allowed with immediate -- `mov lr,#0' crt/arm/crt1.s:8: Error: Thumb does not support this addressing mode -- `ldr a2,[sp],#4' crt/arm/crt1.s:11: Error: lo register requinetworking -- `str fp,[sp,#-4]!' crt/arm/crt1.s:12: Error: Thumb does not support this addressing mode -- `str a1,[sp,#-4]!' crt/arm/crt1.s:13: Error: Thumb does not support this addressing mode -- `str a4,[sp,#-4]!' Makefile:112: recipe for target 'crt/crt1.o' failed make: *** [crt/crt1.o] Error 1 

También probé las combinaciones vfp y vfpv3 , y también intenté usar Linaro GCC en lugar de GNU , sin suerte.

Una vez que hice este libro con éxito hasta el final para Raspberry Pi One (hard, vfp y armv6), pero estoy en problemas con la combinación de Beaglebone.

¿Qué me estoy perdiendo? ¿Mi entorno es correcto? Si es así, ¿qué podría hacer para superar este problema?

Para BeagleBone Black, la configuration de entorno correcta es armv7-a , como podemos ver aquí y aquí , y tenemos que recoger la configuration del kernel desde aquí con bb.org_defconfig , y usar encabezados desde aquí , y parches para gcc desde aquí , y restring build el gcc final con --disable-libsanitizer .

Utilicé el siguiente command antes de build musl :

 sed -i 's/\/dev\/null\/utmp/\/var\/run\/utmp/g;s/\/dev\/null\/wtmp/\/var\/log\/wtmp/g' include/paths.h include/utmp.h 

Y lo siguiente antes de crear busybox para resolver problemas wtmp :

 sed -i 's/\(CONFIG_\)\(.*\)\(INETD\)\(.*\)=y/# \1\2\3\4 is not set/g;s/\(CONFIG_IFPLUGD\|CONFIG_ASH_HELP\|CONFIG_FEATURE_VERBOSE\|CONFIG_UEVENT\)=y/# \1 is not set/' .config sed -i '/utmpx\.h/,/endif/s/__UCLIBC__/LIBBB_H/' include/libbb.h 

Lista completa de packages:

 wget -cO bootscripts-embedded-HEAD.tar.gz -c 'http://git.clfs.org/?p=bootscripts-embedded.git;a=snapshot;h=HEAD;sf=tgz' wget -cO gcc-5.2.0-musl-1.patch 'https://raw.githubusercontent.com/GregorR/musl-cross/master/patches/gcc-5.2.0-musl.diff' wget -c \ 'http://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2' \ 'http://busybox.net/downloads/busybox-1.24.0.tar.bz2' \ 'ftp://gcc.gnu.org/pub/gcc/releases/gcc-5.2.0/gcc-5.2.0.tar.bz2' \ 'http://ftp.gnu.org/gnu/gmp/gmp-5.1.3.tar.xz' \ 'http://sethwklein.net/iana-etc-2.30.tar.bz2' \ 'http://ftp.barfooze.de/pub/sabotage/tarballs/kernel-headers-3.12.6-5.tar.xz' \ 'https://github.com/beagleboard/linux/archive/4.1.tar.gz' \ 'ftp://ftp.denx.de/pub/u-boot/u-boot-2015.10.tar.bz2' \ 'ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz' \ 'ftp://ftp.gnu.org/gnu/mpfr/mpfr-3.1.3.tar.xz' \ 'http://www.musl-libc.org/releases/musl-1.1.9.tar.gz' \ 'https://matt.ucc.asn.au/dropbear/releases/dropbear-2015.68.tar.bz2' \ 'http://www.networking-bean.com/~bos/netplug/netplug-1.2.9.2.tar.bz2' \ 'http://downloads.sourceforge.net/libpng/zlib-1.2.9.tar.gz' \ 'http://patches.clfs.org/embedded-dev/iana-etc-2.30-update-2.patch' \ 'http://patches.clfs.org/embedded-dev/netplug-1.2.9.2-fixes-1.patch' \ 'http://downloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz' 

Eso resuelve todos los problemas.