2010-02-09 Tristan Gingold <gingold@adacore.com>

* mach-o.c (bfd_mach_o_canonicalize_one_reloc): Adjust addend for
	non-external relocation.
This commit is contained in:
Tristan Gingold 2010-02-09 13:39:22 +00:00
parent dadf0e9c7a
commit 1523fa24f7
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2010-02-09 Tristan Gingold <gingold@adacore.com>
* mach-o.c (bfd_mach_o_canonicalize_one_reloc): Adjust addend for
non-external relocation.
2010-02-09 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (merge_got_entries): Move earlier in file.

View File

@ -714,6 +714,12 @@ bfd_mach_o_canonicalize_one_reloc (bfd *abfd, char *buf,
BFD_ASSERT (num != 0);
BFD_ASSERT (num <= mdata->nsects);
sym = mdata->sections[num - 1]->bfdsection->symbol_ptr_ptr;
/* For a symbol defined in section S, the addend (stored in the
binary) contains the address of the section. To comply with
bfd conventio, substract the section address.
Use the address from the header, so that the user can modify
the vma of the section. */
res->addend = -mdata->sections[num - 1]->addr;
reloc.r_extern = 0;
}
res->sym_ptr_ptr = sym;