aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2021-03-01 05:34:34 -0800
committerH.J. Lu <hjl.tools@gmail.com>2021-03-01 05:34:47 -0800
commitecd65684f542be614adc56321c118d8985d35409 (patch)
treef1dbd3ff9c0df14b52d30372dc3cc54f0a07b186
parent8ee10e86093150c70360d9e26b29e6d9b6398f33 (diff)
downloadgdb-ecd65684f542be614adc56321c118d8985d35409.zip
gdb-ecd65684f542be614adc56321c118d8985d35409.tar.gz
gdb-ecd65684f542be614adc56321c118d8985d35409.tar.bz2
Warn for missing separate debug files only if needed
We shouldn't warn missing separate debug files when debug info isn't needed. PR binutils/27486 * dwarf.c (load_separate_debug_info): Issue warning only if do_debug_links is set. * testsuite/binutils-all/compress.exp: Run objdump and readelf with missing debug file.
-rw-r--r--binutils/ChangeLog8
-rw-r--r--binutils/dwarf.c54
-rw-r--r--binutils/testsuite/binutils-all/compress.exp15
3 files changed, 54 insertions, 23 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 419be64..3aec667 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,11 @@
+2021-03-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/27486
+ * dwarf.c (load_separate_debug_info): Issue warning only if
+ do_debug_links is set.
+ * testsuite/binutils-all/compress.exp: Run objdump and readelf
+ with missing debug file.
+
2021-03-01 Alan Modra <amodra@gmail.com>
PR 27128
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 555e5e0..f50b7ee 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -11210,44 +11210,52 @@ load_separate_debug_info (const char * main_filename,
}
#endif
- /* Failed to find the file. */
- warn (_("could not find separate debug file '%s'\n"), separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ if (do_debug_links)
+ {
+ /* Failed to find the file. */
+ warn (_("could not find separate debug file '%s'\n"),
+ separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
#ifdef EXTRA_DEBUG_ROOT2
- sprintf (debug_filename, "%s/%s", EXTRA_DEBUG_ROOT2, separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ sprintf (debug_filename, "%s/%s", EXTRA_DEBUG_ROOT2,
+ separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
#endif
#ifdef EXTRA_DEBUG_ROOT1
- sprintf (debug_filename, "%s/%s/%s", EXTRA_DEBUG_ROOT1, canon_dir, separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ sprintf (debug_filename, "%s/%s/%s", EXTRA_DEBUG_ROOT1,
+ canon_dir, separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
- sprintf (debug_filename, "%s/%s", EXTRA_DEBUG_ROOT1, separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ sprintf (debug_filename, "%s/%s", EXTRA_DEBUG_ROOT1,
+ separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
#endif
- sprintf (debug_filename, "%s.debug/%s", canon_dir, separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ sprintf (debug_filename, "%s.debug/%s", canon_dir,
+ separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
- sprintf (debug_filename, "%s%s", canon_dir, separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ sprintf (debug_filename, "%s%s", canon_dir, separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
- sprintf (debug_filename, ".debug/%s", separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ sprintf (debug_filename, ".debug/%s", separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
- sprintf (debug_filename, "%s", separate_filename);
- warn (_("tried: %s\n"), debug_filename);
+ sprintf (debug_filename, "%s", separate_filename);
+ warn (_("tried: %s\n"), debug_filename);
#if HAVE_LIBDEBUGINFOD
- {
- char *urls = getenv (DEBUGINFOD_URLS_ENV_VAR);
- if (urls == NULL)
- urls = "";
+ {
+ char *urls = getenv (DEBUGINFOD_URLS_ENV_VAR);
+ if (urls == NULL)
+ urls = "";
- warn (_("tried: DEBUGINFOD_URLS=%s\n"), urls);
- }
+ warn (_("tried: DEBUGINFOD_URLS=%s\n"), urls);
+ }
#endif
+ }
free (canon_dir);
free (debug_filename);
diff --git a/binutils/testsuite/binutils-all/compress.exp b/binutils/testsuite/binutils-all/compress.exp
index 98daf67..88fef269 100644
--- a/binutils/testsuite/binutils-all/compress.exp
+++ b/binutils/testsuite/binutils-all/compress.exp
@@ -676,6 +676,7 @@ proc test_gnu_debuglink {} {
global STRIP
global OBJCOPY
global OBJDUMP
+ global READELF
global gcc_gas_flag
set test "gnu-debuglink"
@@ -757,6 +758,20 @@ proc test_gnu_debuglink {} {
} else {
pass "$test (objdump 2)"
}
+
+ remote_file host delete tmpdir/testprog.compress
+ set got [remote_exec host [concat sh -c [list "$OBJDUMP --syms tmpdir/testprog > /dev/null"]]]
+ if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+ fail "$test (objdump with missing link)"
+ } else {
+ pass "$test (objdump with missing link)"
+ }
+ set got [remote_exec host [concat sh -c [list "$READELF -S tmpdir/testprog > /dev/null"]]]
+ if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+ fail "$test (readelf with missing link)"
+ } else {
+ pass "$test (readelf with missing link)"
+ }
}
if {[is_elf_format]} then {