[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