This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

CM3 linker issues

Note: This was originally posted on 26th July 2012 at http://forums.arm.com

Found this while doing some asm coding inside c files.

  

  1.    CM3 was not able to insert  veneer for function symbol + offset. ( BNE   FuncName + 184)

  //Error: L6416E: Relocation R_ARM_THM_JUMP19 at REL:1 in Section .emb_text from //uhe_dev_HidCustomPackFilter.o cannot be veneered as it has an offset 184  from its target.

  

  2.    Linker is trying to create veneer even though the address range is less than 1MB.( BNE      FuncName)

  // $Ven$TT$S$ FuncName

                  // 0x000d27cc: f751bbdc Q...    B     FuncName; 0x23f88  (Diff is less than 1MB)

  

  Major issue:

  Procedure to find:

              When we compile the BNE instruction with a function symbol (BNE      FuncName) it compiles successfully .

   Linker  inserts veneer  for this instruction. Now when I change the instruction (BNE      FuncName + offset) just added  offset.  And then recompiled  and linked only that file . Now  it links successfully without any error. But when I see the assembly code it has just taken the old veneer(not updated) without adding  the offset .

    This error is more critical and difficult to trace it out.




Can somebody help me to solve this issues while linking.