ld/x86: Update -z report-relative-reloc
authorH.J. Lu <hjl.tools@gmail.com>
Tue, 4 Jan 2022 19:07:50 +0000 (11:07 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Tue, 4 Jan 2022 19:12:01 +0000 (11:12 -0800)
Use 0x%v, instead of bfd_sprintf_vma, to report relative relocations.
Change linker relative relocations report from

tmpdir/dump: R_X86_64_IRELATIVE (offset: 0x0000000000002000, info: 0x0000000000000025, addend: 0x0000000000001007) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o

to

tmpdir/dump: R_X86_64_IRELATIVE (offset: 0x2000, info: 0x25, addend: 0x1007) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o

bfd/

* elfxx-x86.c (_bfd_x86_elf_link_report_relative_reloc): Use
0x%v instead of bfd_sprintf_vma.

ld/

* testsuite/ld-i386/report-reloc-1.l: Updated.
* testsuite/ld-x86-64/report-reloc-1.l: Likewise.

bfd/elfxx-x86.c
ld/testsuite/ld-i386/report-reloc-1.l
ld/testsuite/ld-x86-64/report-reloc-1.l

index ca5b624cd6c3b39c0f2d71613eb9c85c4c6eba3e..ca4b90e22cc3da41e17c53d946dc5f4adebe28b1 100644 (file)
@@ -1754,7 +1754,6 @@ _bfd_x86_elf_link_report_relative_reloc
   const char *name;
   bfd *abfd;
   const Elf_Internal_Rela *rel = (const Elf_Internal_Rela *) reloc;
-  char r_offset[30], r_info[30];
 
   /* Use the output BFD for linker created sections.  */
   if ((asect->flags & SEC_LINKER_CREATED) != 0)
@@ -1767,26 +1766,17 @@ _bfd_x86_elf_link_report_relative_reloc
   else
     name = bfd_elf_sym_name (abfd, &elf_symtab_hdr (abfd), sym, NULL);
 
-  bfd_sprintf_vma (abfd, r_offset, rel->r_offset);
-  bfd_sprintf_vma (abfd, r_info, rel->r_info);
-
   if (asect->use_rela_p)
-    {
-      char r_addend[30];
-
-      bfd_sprintf_vma (abfd, r_addend, rel->r_addend);
-
-      info->callbacks->einfo
-       (_("%pB: %s (offset: 0x%s, info: 0x%s, addend: 0x%s) against "
-          "'%s' " "for section '%pA' in %pB\n"),
-        info->output_bfd, reloc_name, r_offset, r_info, r_addend,
-        name, asect, abfd);
-    }
+    info->callbacks->einfo
+      (_("%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against "
+        "'%s' " "for section '%pA' in %pB\n"),
+       info->output_bfd, reloc_name, rel->r_offset, rel->r_info,
+       rel->r_addend, name, asect, abfd);
   else
     info->callbacks->einfo
-      (_("%pB: %s (offset: 0x%s, info: 0x%s) against '%s' for section "
+      (_("%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section "
         "'%pA' in %pB\n"),
-       info->output_bfd, reloc_name, r_offset, r_info, name,
+       info->output_bfd, reloc_name, rel->r_offset, rel->r_info, name,
        asect, abfd);
 }
 
index d141e06e08dd1fd3680f6995879b64b1f24b3c16..75e7330708b9647059c11f21caee60f5983aa05b 100644 (file)
@@ -1,2 +1,2 @@
-tmpdir/dump: R_386_IRELATIVE \(offset: 0x[0-9a-f]+, info: 0x0+2a\) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
-tmpdir/dump: R_386_RELATIVE \(offset: 0x[0-9a-f]+, info: 0x0+8\) against '_start' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
+tmpdir/dump: R_386_IRELATIVE \(offset: 0x[0-9a-f]+, info: 0x2a\) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
+tmpdir/dump: R_386_RELATIVE \(offset: 0x[0-9a-f]+, info: 0x8\) against '_start' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
index 21e9b1ee87092c2af4bcadcbba34de7a9a2e7035..35653794e328b0f03cd4490e0553826837b2fc9e 100644 (file)
@@ -1,2 +1,2 @@
-tmpdir/dump: R_X86_64_IRELATIVE \(offset: 0x[0-9a-f]+, info: 0x0+25, addend: 0x[0-9a-f]+\) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
-tmpdir/dump: R_X86_64_RELATIVE \(offset: 0x[0-9a-f]+, info: 0x0+8, addend: 0x[0-9a-f]+\) against '_start' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
+tmpdir/dump: R_X86_64_IRELATIVE \(offset: 0x[0-9a-f]+, info: 0x25, addend: 0x[0-9a-f]+\) against 'ifunc' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o
+tmpdir/dump: R_X86_64_RELATIVE \(offset: 0x[0-9a-f]+, info: 0x8, addend: 0x[0-9a-f]+\) against '_start' for section '.data.rel.ro.local' in tmpdir/report-reloc-1.o