diff options
-rw-r--r-- | bfd/elf32-ppc.c | 12 | ||||
-rw-r--r-- | ld/ld.texi | 11 |
2 files changed, 20 insertions, 3 deletions
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 5622aaa..bdbd1b4 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -6169,7 +6169,7 @@ ppc_elf_relax_section (bfd *abfd, asection *tsec; struct one_branch_fixup *f; size_t insn_offset = 0; - bfd_vma max_branch_offset = 0, val; + bfd_vma max_branch_offset = 0, val, reladdr; bfd_byte *hit_addr; unsigned long t0; struct elf_link_hash_entry *h; @@ -6415,6 +6415,7 @@ ppc_elf_relax_section (bfd *abfd, continue; roff = irel->r_offset; + reladdr = isec->output_section->vma + isec->output_offset + roff; /* Avoid creating a lot of unnecessary fixups when relocatable if the output section size is such that a @@ -6433,10 +6434,9 @@ ppc_elf_relax_section (bfd *abfd, final link, so do not presume they remain in range. */ || tsec->output_section == isec->output_section)) { - bfd_vma symaddr, reladdr; + bfd_vma symaddr; symaddr = tsec->output_section->vma + tsec->output_offset + toff; - reladdr = isec->output_section->vma + isec->output_offset + roff; if (symaddr - reladdr + max_branch_offset < 2 * max_branch_offset) continue; @@ -6507,6 +6507,12 @@ ppc_elf_relax_section (bfd *abfd, irel->r_info = ELF32_R_INFO (0, R_PPC_NONE); } + link_info->callbacks->minfo + (_("%pB: Adjusting branch at 0x%V towards \"%s\" in section %s\n"), + abfd, reladdr, + (h && h->root.root.string? h->root.root.string : "<unknown>"), + f->tsec->name); + /* Get the section contents. */ if (contents == NULL) { @@ -920,6 +920,17 @@ Updated property 0xc0010001 (0x1) to merge foo.o (0x1) and bar.o (0x1) This indicates that property 0xc0010001 value is updated to 0x1 in output when merging properties in @file{foo.o}, whose 0xc0010001 property value is 0x1, and @file{bar.o}, whose 0xc0010001 property value is 0x1. + +@item +On some ELF targets, a list of fixups inserted by @option{--relax} + +@smallexample +foo.o: Adjusting branch at 0x00000008 towards "far" in section .text +@end smallexample + +This indicates that the branch at 0x00000008 in foo.o, targeting +the symbol "far" in section .text, has been replaced by a trampoline. + @end itemize @cindex link map discarded |