I am following CLFS book (GIT-20140613-arm version), and I have a issue when building GCC with armv7 and neon combination. Target info here.
My host is a clean Debian 8 with gawk, build-essential, texinfo and libncurses5-dev packages. More details can be found here.
I made this patch to build binutils with gcc-4.9.
Following the instructions, when it comes to compile GCC for the very first time it claims not to be possible to these arm combination.
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.
On config.log we can see:
conftest.c:1:0: error: target CPU does not support ARM mode
I linked the complete error here.
In my research I found this question which sounds to be the same, but the OP was following a very old version of CLFS book, I managed to surpass this bug by appending --with-mode=thumb to ./configure, but then
musl fails:
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 required -- `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
I have also tried vfp and vfpv3 combinations, and I have also tried to use Linaro GCC instead of GNU one, no luck at all.
Once I made this book successfully till the end for Raspberry Pi One (hard, vfp and armv6), but I am in trouble with the Beaglebone combination.
What am I missing? Is my environment correct? If so, what could I do to overcome this issue?