# 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).