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]

[PATCH] Fix addr2line and -msym32 and mips64 (Linux kernel)


Hi,
  After
	2011-03-30  Catherine Moore  <clm@codesourcery.com>

	* addr2line.c (translate_addresses): Sign extend the pc
	if sign_extend_vma is enabled.

Using addr2line is broken on mips64-linux-gnu with the Linux kernel (-msym32).
The pc becomes all -1.  The reason is ((bfd_vma) -1) <<
bed->s->arch_size produces an undefined value as bed->s->arch_size is
64 so shifting by left by more than 63 is undefined.
The attached patch fixes the problem by not doing the sign extending
if the size of bfd_vma is equal to or less than the arch size.

OK?  Tested on mips64-linux-gnu and x86_64-linux-gnu.

Thanks,
Andrew Pinski

2012-04-31  Andrew Pinski  <apinski@cavium.com>

	* addr2line.c (translate_addresses): Don't try to
	sign extend the pc if the sizeof vma is less or equal
	to the arch_size.

Attachment: fixmipsaddr2line.diff.txt
Description: Text document


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