PLEASE REPLY TO [EMAIL PROTECTED] ONLY, *NOT* [EMAIL PROTECTED] 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)