23 lines
799 B
Diff
23 lines
799 B
Diff
|
*** ../binutils-2.23.52.0.1/binutils/addr2line.c 2013-02-27 20:28:03.000000000 +0000
|
|||
|
--- binutils/addr2line.c 2013-03-13 16:46:36.109519735 +0000
|
|||
|
*************** slurp_symtab (bfd *abfd)
|
|||
|
*** 130,135 ****
|
|||
|
--- 130,146 ----
|
|||
|
symcount = bfd_canonicalize_symtab (abfd, syms);
|
|||
|
if (symcount < 0)
|
|||
|
bfd_fatal (bfd_get_filename (abfd));
|
|||
|
+
|
|||
|
+ /* If there are no symbols left after canonicalization and
|
|||
|
+ we have not tried the dynamic symbols then give them a go. */
|
|||
|
+ if (symcount == 0
|
|||
|
+ && ! dynamic
|
|||
|
+ && (storage = bfd_get_dynamic_symtab_upper_bound (abfd)) > 0)
|
|||
|
+ {
|
|||
|
+ free (syms);
|
|||
|
+ syms = xmalloc (storage);
|
|||
|
+ symcount = bfd_canonicalize_dynamic_symtab (abfd, syms);
|
|||
|
+ }
|
|||
|
}
|
|||
|
|
|||
|
/* These global variables are used to pass information between
|