[Bug c++/12476] New: ARM/THUMB thunk calls broken

thomas at koeller dot dyndns dot org gcc-bugzilla@gcc.gnu.org
Wed Oct 1 11:27:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12476

           Summary: ARM/THUMB thunk calls broken
           Product: gcc
           Version: 3.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: thomas at koeller dot dyndns dot org
                CC: gcc-bugs at gcc dot gnu dot org,thomas dot koeller at
                    baslerweb dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: arm-ecos-elf

When compiling ARM programs in THUMB mode, thunks use a 'b' instruction to branch to 
the target function. Since the 'b' instruction has a very limited adressing range (+/- 256 
bytes), and the thunk and its target function are placed in different sections, linking errors 
are very common: 
 
csr_camerastatus.o: In function `non-virtual thunk [nv:-24] to 
CSR_CAMERASTATUS::SetProtocolError(ProtocolErrorHandler::EPROT_ERR_VAL)': 
csr_camerastatus.o(.gnu.linkonce.t._ZThn24_N16CSR_CAMERASTATUS16SetProtocolErrorEN20ProtocolErrorHandler13EPROT_ERR_VALE+0x2): 
relocation truncated to fit: R_ARM_THM_PC11 
CSR_CAMERASTATUS::SetProtocolError(ProtocolErrorHandler::EPROT_ERR_VAL)



More information about the Gcc-bugs mailing list