This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ARM/thumb interworking confuses unwinder


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]