PR10957, Missing option to really print section+offset
authorAlan Modra <amodra@gmail.com>
Sat, 15 Jul 2023 10:17:10 +0000 (19:47 +0930)
committerAlan Modra <amodra@gmail.com>
Sun, 16 Jul 2023 22:47:44 +0000 (08:17 +0930)
Many of the reloc error messages have already been converted from
using %C to using %H in ld.bfd, to print section+offset as well as
file/line/function.  This catches a few remaining, and changes gold to
do the same.

PR 10957
bfd/
* elf32-sh.c (sh_elf_relocate_section): Use %H in error messages.
gold/
* object.cc (Relocate_info::location): Always report section+offset.
* testsuite/debug_msg.sh: Adjust to suit.
* testsuite/x32_overflow_pc32.sh: Likewise.
* testsuite/x86_64_overflow_pc32.sh: Likewise.
ld/
* emultempl/pe.em (read_addend): Use %H in error message.
* emultempl/pep.em (read_addend): Likewise.
* ldcref.c (check_reloc_refs): Likewise.
* ldmain.c (warning_find_reloc, undefined_symbol): Likewise.
* pe-dll.c (pe_create_import_fixup): Likewise.
* testsuite/ld-cris/undef2.d: Adjust expected output to suit.
* testsuite/ld-cris/undef3.d: Likewise.
* testsuite/ld-elf/shared.exp: Likewise.
* testsuite/ld-i386/compressed1.d: Likewise.
* testsuite/ld-ia64/line.exp: Likewise.
* testsuite/ld-plugin/lto.exp: Likewise.
* testsuite/ld-undefined/undefined.exp: Likewise.
* testsuite/ld-x86-64/compressed1.d: Likewise.
* testsuite/ld-x86-64/line.exp: Likewise.
* testsuite/ld-x86-64/pr27587.err: Likewise.

20 files changed:
bfd/elf32-sh.c
gold/object.cc
gold/testsuite/debug_msg.sh
gold/testsuite/x32_overflow_pc32.sh
gold/testsuite/x86_64_overflow_pc32.sh
ld/emultempl/pe.em
ld/emultempl/pep.em
ld/ldcref.c
ld/ldmain.c
ld/pe-dll.c
ld/testsuite/ld-cris/undef2.d
ld/testsuite/ld-cris/undef3.d
ld/testsuite/ld-elf/shared.exp
ld/testsuite/ld-i386/compressed1.d
ld/testsuite/ld-ia64/line.exp
ld/testsuite/ld-plugin/lto.exp
ld/testsuite/ld-undefined/undefined.exp
ld/testsuite/ld-x86-64/compressed1.d
ld/testsuite/ld-x86-64/line.exp
ld/testsuite/ld-x86-64/pr27587.err

index 499233d1355107b228a650c8cea02caf514e1fb5..cba3529e2a5e4ef22a61ea26d96d456f49e57fc7 100644 (file)
@@ -5010,14 +5010,14 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
                {
                  info->callbacks->einfo
                    /* xgettext:c-format */
-                   (_("%X%C: relocation to \"%s\" references a different segment\n"),
+                   (_("%X%H: relocation to \"%s\" references a different segment\n"),
                     input_bfd, input_section, rel->r_offset, symname);
                  return false;
                }
              else
                info->callbacks->einfo
                  /* xgettext:c-format */
-                 (_("%C: warning: relocation to \"%s\" references a different segment\n"),
+                 (_("%H: warning: relocation to \"%s\" references a different segment\n"),
                   input_bfd, input_section, rel->r_offset, symname);
            }
 
index ccb74057275724f2bd336ef8512d8fec42bc567d..77b2690c38144973fe203a68138ea30bdebd3237 100644 (file)
@@ -3358,7 +3358,7 @@ Relocate_info<size, big_endian>::location(size_t, off_t offset) const
       if (info.enclosing_symbol_type == elfcpp::STT_FUNC)
        ret += _("function ");
       ret += info.enclosing_symbol_name;
-      return ret;
+      ret += ":";
     }
 
   ret += "(";
index b808fb8a6e06c40aadcf1a0052d6866c91b87e6d..51e8a83e1d46469d47864f904d27cfb5b5377142 100755 (executable)
@@ -55,9 +55,9 @@ check_missing()
 
 # We don't know how the compiler might order these variables, so we
 # can't test for the actual offset from .data, hence the regexp.
-check debug_msg.err "debug_msg.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn1()'"
-check debug_msg.err "debug_msg.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn2()'"
-check debug_msg.err "debug_msg.o:debug_msg.cc:badref1: error: undefined reference to 'undef_int'"
+check debug_msg.err "debug_msg.o:debug_msg.cc:fn_array:(.*): error: undefined reference to 'undef_fn1()'"
+check debug_msg.err "debug_msg.o:debug_msg.cc:fn_array:(.*): error: undefined reference to 'undef_fn2()'"
+check debug_msg.err "debug_msg.o:debug_msg.cc:badref1:(.*): error: undefined reference to 'undef_int'"
 
 # These tests check only for the source file's file name (not the complete
 # path) because use of -fdebug-prefix-map may change the path to the source
@@ -93,9 +93,9 @@ check debug_msg.err "odr_violation2.cc:3[0-7]"
 # Check for the same error messages when using --compressed-debug-sections.
 if test -r debug_msg_cdebug.err
 then
-  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn1()'"
-  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:fn_array: error: undefined reference to 'undef_fn2()'"
-  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:badref1: error: undefined reference to 'undef_int'"
+  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:fn_array:(.*): error: undefined reference to 'undef_fn1()'"
+  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:fn_array:(.*): error: undefined reference to 'undef_fn2()'"
+  check debug_msg_cdebug.err "debug_msg_cdebug.o:debug_msg.cc:badref1:(.*): error: undefined reference to 'undef_int'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:50: error: undefined reference to 'undef_fn1()'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:55: error: undefined reference to 'undef_fn2()'"
   check debug_msg_cdebug.err ".*/debug_msg.cc:4[356]: error: undefined reference to 'undef_fn1()'"
index d0a4cf0374aa8cebd1bc3f6f5e847afcb049459c..6da575e8f2ffc4086959adb8a0436d3fa83e3451 100755 (executable)
@@ -37,6 +37,6 @@ check()
 
 # We don't know how the compiler might order these variables, so we
 # can't test for the actual offset from .data, hence the regexp.
-check x86_64_overflow_pc32.err "function bar: error: relocation overflow"
+check x86_64_overflow_pc32.err "function bar:(.*): error: relocation overflow"
 
 exit 0
index d0a4cf0374aa8cebd1bc3f6f5e847afcb049459c..6da575e8f2ffc4086959adb8a0436d3fa83e3451 100755 (executable)
@@ -37,6 +37,6 @@ check()
 
 # We don't know how the compiler might order these variables, so we
 # can't test for the actual offset from .data, hence the regexp.
-check x86_64_overflow_pc32.err "function bar: error: relocation overflow"
+check x86_64_overflow_pc32.err "function bar:(.*): error: relocation overflow"
 
 exit 0
index 7d956bf555ceb165b1b5bdaed159ca745533065c..cd2abe460b9c5372c040c794e633593716a7ca74 100644 (file)
@@ -1270,7 +1270,7 @@ read_addend (arelent *rel, asection *s)
   bfd_vma addend = 0;
 
   if (!bfd_get_section_contents (s->owner, s, buf, rel->address, sizeof (buf)))
-    einfo (_("%P: %C: cannot get section contents - auto-import exception\n"),
+    einfo (_("%P: %H: cannot get section contents - auto-import exception\n"),
           s->owner, s, rel->address);
   else
     addend = bfd_get_32 (s->owner, buf);
index 99e71951b8a0b7ea5446be1d6800c487ef0cf9db..28d8c8decb31b7e73de8bb11462402400700c0e0 100644 (file)
@@ -1269,7 +1269,7 @@ read_addend (arelent *rel, asection *s)
       break;
     }
   if (!ok)
-    einfo (_("%P: %C: cannot get section contents - auto-import exception\n"),
+    einfo (_("%P: %H: cannot get section contents - auto-import exception\n"),
           s->owner, s, rel->address);
   return addend;
 }
index da4a4217c20be23d13b798e4cd31b33f34e9c01e..cf4eba30bdc543c659bcbda4325388d230a4cb75 100644 (file)
@@ -721,7 +721,7 @@ check_reloc_refs (bfd *abfd, asection *sec, void *iarg)
             in OUTSECNAME.  This reloc is from a section which is
             mapped into a section from which references to OUTSECNAME
             are prohibited.  We must report an error.  */
-         einfo (_("%X%P: %C: prohibited cross reference from %s to `%pT' in %s\n"),
+         einfo (_("%X%P: %H: prohibited cross reference from %s to `%pT' in %s\n"),
                 abfd, sec, q->address, outsecname,
                 bfd_asymbol_name (*q->sym_ptr_ptr), outdefsecname);
        }
index 25cc89b72f90aaafacbba4ab1111a5c90fd7470a..06ac2c64fa848c29f6773210d145acddee67e223 100644 (file)
@@ -1394,7 +1394,7 @@ warning_find_reloc (bfd *abfd, asection *sec, void *iarg)
          && strcmp (bfd_asymbol_name (*q->sym_ptr_ptr), info->symbol) == 0)
        {
          /* We found a reloc for the symbol we are looking for.  */
-         einfo ("%P: %C: %s%s\n", abfd, sec, q->address, _("warning: "),
+         einfo ("%P: %H: %s%s\n", abfd, sec, q->address, _("warning: "),
                 info->warning);
          info->found = true;
          break;
@@ -1484,10 +1484,10 @@ undefined_symbol (struct bfd_link_info *info,
       if (error_count < MAX_ERRORS_IN_A_ROW)
        {
          if (error)
-           einfo (_("%X%P: %C: undefined reference to `%pT'\n"),
+           einfo (_("%X%P: %H: undefined reference to `%pT'\n"),
                   abfd, section, address, name);
          else
-           einfo (_("%P: %C: warning: undefined reference to `%pT'\n"),
+           einfo (_("%P: %H: warning: undefined reference to `%pT'\n"),
                   abfd, section, address, name);
        }
       else if (error_count == MAX_ERRORS_IN_A_ROW)
index 371915ac1cb0e38984f7163f3fd19b47e32770de..02e03d169489259818e2e45f034b1ee44890b4d4 100644 (file)
@@ -2911,7 +2911,7 @@ pe_create_import_fixup (arelent *rel, asection *s, bfd_vma addend, char *name,
     }
 
   else if (addend != 0)
-    einfo (_("%X%P: %C: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"),
+    einfo (_("%X%P: %H: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"),
           s->owner, s, rel->address, (*rel->sym_ptr_ptr)->name);
 }
 
index 46015c00add87162a6d9a1977517013c4ba566cc..cd2c43eee4f356962a9bb6a17d244974fde6c91d 100644 (file)
@@ -1,6 +1,6 @@
-# source: start1.s
-# source: stabs1.s
-# target: cris-*-*elf* cris-*-*aout*
-# as: --em=crisaout
-# ld: -mcrisaout
-# error: .o:/blah/foo.c:96: undefined reference to `globsym1'$
+#source: start1.s
+#source: stabs1.s
+#target: cris-*-*elf* cris-*-*aout*
+#as: --em=crisaout
+#ld: -mcrisaout
+#error: .o:/blah/foo.c:96:\(.*\): undefined reference to `globsym1'$
index e7bca10caf78cb55aa706dc983ea5dde1d6858dd..e21456b2bae17e0b168884e38f62f87bdf6b554d 100644 (file)
@@ -3,4 +3,4 @@
 #target: cris-*-*elf* cris-*-*aout*
 #as: --em=criself
 #ld: -mcriself
-#error: .o:/blah/foo.c:96: undefined reference to `globsym1'$
+#error: .o:/blah/foo.c:96:\(.*\): undefined reference to `globsym1'$
index 1eef9f456678daaaa2c7d0d269e2347d87c2c100..cf010e5b0e59576a047476ecaa2d9a74c8cc7ed0 100644 (file)
@@ -554,7 +554,7 @@ set build_tests {
    "-shared" "-fPIC"
   {beginwarn.c end.c}
   {{readelf {-S --wide} libbarw.rd}
-   {warning "^.*beginwarn.c:7: warning: function foo is deprecated\n?$"}}
+   {warning {^.*beginwarn.c:7:\(.*\): warning: function foo is deprecated\n?$}}}
   "libbarw.so" "c"}
   {"Build hidden libbar.so"
    "-shared" "-fPIC"
@@ -1017,7 +1017,7 @@ set run_tests [list \
     [list "Run warn with versioned libfoo.so" \
      "-Wl,--no-as-needed tmpdir/beginwarn.o tmpdir/libfoov.so" "" \
      {main.c} "warn" "warn.out" \
-     "" "c" {^.*beginwarn.c:7: warning: function foo is deprecated\n?$} ] \
+     "" "c" {^.*beginwarn.c:7:\(.*\): warning: function foo is deprecated\n?$} ] \
     [list "Run protected with versioned libfoo.so" \
      "-Wl,--no-as-needed tmpdir/begin.o tmpdir/libfoov.so tmpdir/endprotected.o" "" \
      {main.c} "protected" "normal.out" ] \
index e9eeef9ae2a5b8d2beed91031bbb753ebf41d768..a4294784daa062183c1d067d85018a10db1737cc 100644 (file)
@@ -1,7 +1,7 @@
 #name: undefined symbol with compressed debug sections
 #as: --32
 #ld: -e foo -melf_i386 --noinhibit-exec
-#warning: .*/compressed1.c:13: undefined reference to .bar.
+#warning: .*/compressed1.c:13:\(.*\): undefined reference to .bar.
 #nm: -n
 
 #failif
index d39e3ac249dc7730d373c0cfba89da44088d756a..1fe32cdab9de66e9752cfff3397263a0b98e6aa6 100644 (file)
@@ -52,6 +52,6 @@ proc checkund { string testname } {
     }
 }
 
-set ml "undefined.c:9: undefined reference to `*this_function_is_not_defined'"
+set ml {undefined.c:9:(*): undefined reference to `*this_function_is_not_defined'}
 
 checkund $ml $testline
index 9a11de315b8ca832093c4770904dd29de7fb7d6e..6f728d7744852c4df3e4208a78df4671810c13cb 100644 (file)
@@ -304,7 +304,7 @@ set lto_link_elf_tests [list \
    {pr12760b.c} {} "libpr12760.a"] \
   [list "PR ld/12760" \
    "-O2 -Wl,-e,foo -nostdlib -flto -fuse-linker-plugin tmpdir/pr12760a.o -Wl,--start-group tmpdir/libpr12760.a -Wl,--end-group" "" \
-   {dummy.c} {{warning "pr12760a.c:6: warning: Bad \\.?bar"}} \
+   {dummy.c} {{warning {pr12760a.c:6:\(.*\): warning: Bad \.?bar}}} \
    "pr12760.exe" "c"] \
   [list "PR ld/12975" \
    "-shared -O2 -fPIC -flto -fuse-linker-plugin -nostdlib -Wl,-version-script,pr12975.t" "-O2 -flto" \
index 69a8f9bf6a9d0ec68539423f9fbc75b890b9c62f..05b1131d5b4476a4830a65c17d9539e6d4a76c37 100644 (file)
@@ -89,7 +89,7 @@ if { ![check_compiler_available] } {
        #setup_xfail "arm*-*-pe*"
     }
 
-    set ml "undefined.c:9: undefined reference to `*this_function_is_not_defined'"
+    set ml {undefined.c:9:(*): undefined reference to `*this_function_is_not_defined'}
     # With targets that use elf/dwarf2, such as the arm-elf toolchain,
     # the code in bfd/elf.c:_bfd_elf_find_nearest_line() is called in
     # order to locate the file name/line number where the undefined
index f97c9ad7da63d34fabedccba82fba110d93801d2..8b92278d7b057086da3c4ee71a6d364fd9e1ba60 100644 (file)
@@ -1,7 +1,7 @@
 #name: undefined symbol with compressed debug sections
 #as: --64
 #ld: -e foo -melf_x86_64 --noinhibit-exec
-#warning: .*/compressed1.c:13: undefined reference to .bar.
+#warning: .*/compressed1.c:13:\(.*\): undefined reference to .bar.
 #nm: -n
 
 #failif
index f5163998862e872cee6035ed62acce83f8f04839..af01ea227b798d47c907747ba39d7c41994d308a 100644 (file)
@@ -52,6 +52,6 @@ proc checkund { string testname } {
     }
 }
 
-set ml "undefined.c:9: undefined reference to `*this_function_is_not_defined'"
+set ml {undefined.c:9:(*): undefined reference to `*this_function_is_not_defined'}
 
 checkund $ml $testline
index 807750ca9d3c4d87808b4e9d96fca73ff85d114d..9ccca0aec382516a7d5a19f1e7a682a2150c1813 100644 (file)
@@ -1,3 +1,3 @@
 #...
-.*pr27587/<artificial>:4: undefined reference to `stack_size'
+.*pr27587/<artificial>:4:\(.*\): undefined reference to `stack_size'
 #...