diff options
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/mach-o.c | 6 |
2 files changed, 10 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f9ca746..6e07ae3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2010-02-08 Tristan Gingold <gingold@adacore.com> + + * mach-o.c (bfd_mach_o_canonicalize_one_reloc): Set reloc.r_extern + for non-scattered relocations. + 2010-02-08 Nathan Sidwell <nathan@codesourcery.com> * elf32-ppc.c (ppc_elf_begin_write_processing): Allow empty diff --git a/bfd/mach-o.c b/bfd/mach-o.c index 20279c4..57d774b 100644 --- a/bfd/mach-o.c +++ b/bfd/mach-o.c @@ -705,12 +705,16 @@ bfd_mach_o_canonicalize_one_reloc (bfd *abfd, char *buf, res->addend = 0; res->address = addr; if (symnum & BFD_MACH_O_R_EXTERN) - sym = syms + num; + { + sym = syms + num; + reloc.r_extern = 1; + } else { BFD_ASSERT (num != 0); BFD_ASSERT (num <= mdata->nsects); sym = mdata->sections[num - 1]->bfdsection->symbol_ptr_ptr; + reloc.r_extern = 0; } res->sym_ptr_ptr = sym; reloc.r_type = BFD_MACH_O_GET_R_TYPE (symnum); |