[LLVMdev] [Patch] Let MC/ELF generate Thumb/Thumb-2 are properly

Jim Grosbach grosbach at apple.com
Fri May 13 08:04:42 PDT 2011


Hi Koan,

In general, this looks OK to me. Please split the patch into separate pieces, one for each issue you're addressing, though. From your description, it sounds like this should be 4 patches. That way we have a cleaner revision history in svn.

-Jim

On May 12, 2011, at 10:42 PM, Koan-Sin Tan wrote:

> Hi,
> 
> We are trying to use clang as a drop-in replacement for the gcc come with
> Android NDK. I found that MC/ELF doesn't not handle Thumb functions properly,
> e.g., bit 0 of the function name in the .symtab is not set to 1, and some thumb
> instructions are not generated correctly, e.g., the addresses for tBL/tBLX are
> not calculated right.
> 
> With that attached patch, we can compile and run some (not all) Android
> NDK samples without problem.
> 
> The attached initial patch
> 1. sets bit 0 of the function address of thumb function in .symtab
>   ("T is 1 if the target symbol S has type STT_FUNC and the
>   symbol addresses a Thumb instruction ;it is 0 otherwise."
>   from "ELF for the ARM Architecture" 4.7.1.2)
> 
> 2. fixes target address tBL and tBLX
> 3. sets relocation type of tBL/tBLX to R_ARM_THM_CALL
>    (4.7.1.6)
> 4. adds some attributes to attribute section when cpu is "xscale"
>   (this is what used in Android NDK, when architecture is ARMv5)
> 
> --
> // koan-sin tan
> <llvm-thumb-elf-hack.diff3>_______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list