diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-03-01 05:34:34 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2021-03-01 05:34:47 -0800 |
commit | ecd65684f542be614adc56321c118d8985d35409 (patch) | |
tree | f1dbd3ff9c0df14b52d30372dc3cc54f0a07b186 | |
parent | 8ee10e86093150c70360d9e26b29e6d9b6398f33 (diff) | |
download | gdb-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/ChangeLog | 8 | ||||
-rw-r--r-- | binutils/dwarf.c | 54 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/compress.exp | 15 |
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 { |