[U-Boot] Beaglebone Black U-boot won't buid - THUMB instruction issue

Hello - I am trying to work through the book "Mastering Embedded Linux Programming" by Chris Simmonds, and trying to work through building u-boot after having built the cross toolchain. I am running into an error when I try to build u-boot, any ideas?
johann@mars:~/uboot-work/u-boot$ make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- am335x_evm_defconfig # # configuration written to .config # johann@mars:~/uboot-work/u-boot$ make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config.h UPD include/config.h CFG u-boot.cfg GEN include/autoconf.mk GEN include/autoconf.mk.dep CFG spl/u-boot.cfg GEN spl/include/autoconf.mk CHK include/config/uboot.release CHK include/generated/version_autogenerated.h CHK include/generated/timestamp_autogenerated.h UPD include/generated/timestamp_autogenerated.h * CC lib/asm-offsets.s* *cc1: warning: target CPU does not support THUMB instructions* * CHK include/generated/generic-asm-offsets.h* * CC arch/arm/lib/asm-offsets.s* *cc1: warning: target CPU does not support THUMB instructions* CHK include/generated/asm-offsets.h HOSTCC scripts/dtc/dtc.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/checks.o HOSTCC scripts/dtc/util.o SHIPPED scripts/dtc/dtc-lexer.lex.c SHIPPED scripts/dtc/dtc-parser.tab.h HOSTCC scripts/dtc/dtc-lexer.lex.o SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/dtc/dtc-parser.tab.o HOSTLD scripts/dtc/dtc HOSTCC tools/mkenvimage.o HOSTCC tools/lib/crc32.o HOSTLD tools/mkenvimage HOSTCC tools/common/bootm.o HOSTCC tools/lib/fdtdec.o HOSTCC tools/fit_image.o HOSTCC tools/image-host.o HOSTCC tools/dumpimage.o HOSTLD tools/dumpimage HOSTCC tools/mkimage.o HOSTLD tools/mkimage CC arch/arm/cpu/armv7/cache_v7.o *cc1: warning: target CPU does not support THUMB instructions* *{standard input}: Assembler messages:* *{standard input}:42: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:46: Error: selected processor does not support `isb sy' in ARM mode* *{standard input}:240: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:244: Error: selected processor does not support `isb sy' in ARM mode* *{standard input}:368: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:460: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:464: Error: selected processor does not support `isb sy' in ARM mode* *{standard input}:594: Error: selected processor does not support `dsb sy' in ARM mode* *scripts/Makefile.build:278: recipe for target 'arch/arm/cpu/armv7/cache_v7.o' failed* make[1]: *** [arch/arm/cpu/armv7/cache_v7.o] Error 1 Makefile:1363: recipe for target 'arch/arm/cpu/armv7' failed

Hi John,
On Friday 11 May 2018 07:10 AM, John Babrick wrote:
Hello - I am trying to work through the book "Mastering Embedded Linux Programming" by Chris Simmonds, and trying to work through building u-boot after having built the cross toolchain. I am running into an error when I try to build u-boot, any ideas?
johann@mars:~/uboot-work/u-boot$ make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- am335x_evm_defconfig #
The correct cross compiler is arm-linux-gnueabihf-. I'm not sure about yours. Also, you should give ARCH=arm option in your build.
Check here for more details: https://elinux.org/Building_for_BeagleBone
Thanks, Faiz

On Thu, May 10, 2018 at 09:40:44PM -0400, John Babrick wrote:
Hello - I am trying to work through the book "Mastering Embedded Linux Programming" by Chris Simmonds, and trying to work through building u-boot after having built the cross toolchain. I am running into an error when I try to build u-boot, any ideas?
You did not build an appropriate cross toolchain, which is in turn why you're getting those errors.

John Babrick johnbabrick@gmail.com writes:
Hello - I am trying to work through the book "Mastering Embedded Linux Programming" by Chris Simmonds, and trying to work through building u-boot after having built the cross toolchain. I am running into an error when I try to build u-boot, any ideas?
johann@mars:~/uboot-work/u-boot$ make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- am335x_evm_defconfig # # configuration written to .config # johann@mars:~/uboot-work/u-boot$ make CROSS_COMPILE=arm-cortex_a8-linux-gnueabihf- scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config.h UPD include/config.h CFG u-boot.cfg GEN include/autoconf.mk GEN include/autoconf.mk.dep CFG spl/u-boot.cfg GEN spl/include/autoconf.mk CHK include/config/uboot.release CHK include/generated/version_autogenerated.h CHK include/generated/timestamp_autogenerated.h UPD include/generated/timestamp_autogenerated.h
- CC lib/asm-offsets.s*
*cc1: warning: target CPU does not support THUMB instructions*
- CHK include/generated/generic-asm-offsets.h*
- CC arch/arm/lib/asm-offsets.s*
*cc1: warning: target CPU does not support THUMB instructions* CHK include/generated/asm-offsets.h HOSTCC scripts/dtc/dtc.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/checks.o HOSTCC scripts/dtc/util.o SHIPPED scripts/dtc/dtc-lexer.lex.c SHIPPED scripts/dtc/dtc-parser.tab.h HOSTCC scripts/dtc/dtc-lexer.lex.o SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/dtc/dtc-parser.tab.o HOSTLD scripts/dtc/dtc HOSTCC tools/mkenvimage.o HOSTCC tools/lib/crc32.o HOSTLD tools/mkenvimage HOSTCC tools/common/bootm.o HOSTCC tools/lib/fdtdec.o HOSTCC tools/fit_image.o HOSTCC tools/image-host.o HOSTCC tools/dumpimage.o HOSTLD tools/dumpimage HOSTCC tools/mkimage.o HOSTLD tools/mkimage CC arch/arm/cpu/armv7/cache_v7.o *cc1: warning: target CPU does not support THUMB instructions* *{standard input}: Assembler messages:* *{standard input}:42: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:46: Error: selected processor does not support `isb sy' in ARM mode* *{standard input}:240: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:244: Error: selected processor does not support `isb sy' in ARM mode* *{standard input}:368: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:460: Error: selected processor does not support `dsb sy' in ARM mode* *{standard input}:464: Error: selected processor does not support `isb sy' in ARM mode* *{standard input}:594: Error: selected processor does not support `dsb sy' in ARM mode* *scripts/Makefile.build:278: recipe for target 'arch/arm/cpu/armv7/cache_v7.o' failed* make[1]: *** [arch/arm/cpu/armv7/cache_v7.o] Error 1 Makefile:1363: recipe for target 'arch/arm/cpu/armv7' failed
I get a deluge of such errors with gcc-8. Use gcc-7 or earlier until someone fixes it (or fix it yourself and send a patch).
participants (4)
-
Faiz Abbas
-
John Babrick
-
Måns Rullgård
-
Tom Rini