iOS Linker Error ld: b/bl/blx thumb2 branch out of range (16777216 max is +/-16MB): from

Q:

Hi,

I am getting the following linker error when using Xcode 5.1:

ld: b/bl/blx thumb2 branch out of range (16777216 max is +/-16MB): from

How can I resolve this?

A:

This is a known linker bug (rdar://16186742). The problem is with the armv7 compiler, when it needs to synthesize branch islands to jump further than 16 MB, and the jump happens to be exactly 16 MB. The work around is to rearrange the source files in the project build phases and/or libraries in the Link Binary with Libraries section. With a few re-arrangements this problem should go away.