uClibc: "bx r6" compile error on ARM
While compiling OpenWrt for an ARM compatible processor I got the following error:
{standard input}: Assembler messages:
{standard input}:39: Error: selected processor does not support `bx r6'
I found the solution in the The definitive guide to GCC book from William Von Hagen (I don’t own it, I found it via Google Books). You have to disable the the USE_BX flag in the uClibc config file and everything will be fine.
To make it permanent, go to toolchain/uClibc/config-* (* is your used uClibc version) and copy the default arm file to arm.ARCH where ARCH is the name of the directory in target/linux/ARCH.
Thanks to William, the OpenWrt community and the uClibc folks (and all others who make this a round thing).