[LLVMdev] Invalid relocation types for Thumb in LLVM version 2.9

Harel Cain harel.cain at gmail.com
Mon Feb 20 05:20:17 PST 2012

Hi all,

I'm trying to figure out a problem with relocation types 1 and 8 (as
observed using otool -r on ARM/Thumb object files). Earlier, when I used
LLVM 2.8 with llc to generate thumb (-march=thumb -mattr=+thumb2) assembly
listings, then assemble those using the gcc of iPhone 4.2 SDK, there wasn't
any problem.

However starting with LLVM 2.9, the same toolchain emits slightly different
assembly listings that after assembly into object files have relocation
entries of type 1 and 8 which the iPhonsOS 4.2 SDK linker doesn't like
(they produce warnings, and the linked binary crashes).

According to http://simplemachines.it/doc/aaelf.pdf, these relocation types
are called R_ARM_PC24 and R_ARM_ABS8. They simply weren't created with the
assembly listings generated with LLVM 2.8.

Anyone has any suggestion has to solve this? Is there any other toolchain
combination you can suggest in order to build Thumb object files for the
iOS/ARM platform? I'm not sure I'm even using LLVM the way I should here.

Many thanks!

Harel Cain
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120220/6ad52201/attachment.html>

More information about the llvm-dev mailing list