This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: ARM/thumb interworking confuses unwinder
- From: Daniel Jacobowitz <drow at false dot org>
- To: Christophe LYON <christophe dot lyon at st dot com>
- Cc: binutils at sourceware dot org
- Date: Mon, 11 Aug 2008 18:52:26 -0400
- Subject: Re: ARM/thumb interworking confuses unwinder
- References: <4887E088.3050401@eCosCentric.com> <48887952.5090801@st.com> <48887B21.3070804@eCosCentric.com> <20080724130500.GA23244@caradoc.them.org> <489AF5D7.5070608@st.com>
On Thu, Aug 07, 2008 at 03:17:11PM +0200, Christophe LYON wrote:
>> I don't know about the non-interworking-aware ones. I suspect they're
>> just broken; we'd have to generate new unwind information for them.
>
> I don't know how to do that; are there other examples in GNU ld that
> could serve me as a basis?
Paul pointed out that these are only used in non-EABI binaries. Those
typically use SJLJ exception handling on ARM; so unwinding tables
aren't necessary. If someone's got a DWARF-2 EH port they may have
troubles.
I have a question. Have you tried any of the Thumb stubs on a
big-endian target? I worry that your trick of using a 32-bit
word with two 16-bit Thumb instructions in it is going to leave them
in the wrong order.
> @@ -2755,7 +2764,10 @@
> const Elf_Internal_Rela *rel,
> unsigned char st_type,
> struct elf32_arm_link_hash_entry *hash,
> - bfd_vma destination)
> + bfd_vma destination,
> + asection* sym_sec,
> + bfd* input_bfd,
> + const char* name)
Space before the *, not afterwards, please.
> + " first occurrence: %B: thumb call to arm"),
"Thumb", "ARM".
Otherwise OK; the big-endian question isn't new with this patch.
--
Daniel Jacobowitz
CodeSourcery