Change the readelf and objdump programs so that they will automatically follow links to separate debug info files.

* configure.ac (follow-debug-links): Add option to enable or
	disable the following of debug links by default.  Set the
	default for the option to be 'follow'.
	* dwarf.c (do_follow_links): Initialise with DEFAULT_FOR_FOLLOW_LINKS.
	(dwarf_select_sections_by_names): Add no-follow-links option.
	(dwarf_select_sections_by_letter): Add 'N' option.
	* objdump.c (usage): Add conditional text describing the
	follow links option.
	(slurp_symtab): Ensure that there is a NULL entry at the end
	of the symbol table.
	(slurp_dynamic_symtab): Likewise.
	(dump_bfd): When extending the symbol table, ensure that there
	is still a NULL entry at the end.
	* readelf.c (usage): Add conditional text describing the
	follow links option.
	* doc/binutils.texi: Update documentation for objcopy and
	readelf.
	* doc/debug.options.texi: Update documentation of the
	follow-links option.
	* config.in: Regenerate.
	* configure: Regenerate.
	* testsuite/binutils-all/compress.exp: Add the -WN option to
	objdump command lines that are not expecting to follow links.
	* testsuite/binutils-all/readelf.exp: Add the
	--debug-dump=no-follow-links option to tests that are not
	expecting to follow debug links.

gas	* testsuite/gas/mach-o/sections-1.d: Stop automatic debug link
        following.
	* testsuite/gas/xgate/insns-dwarf2.d: Likewise.

ld	* testsuite/ld-elf/sec64k.exp: Stop readelf from automatically
	following debug links.
This commit is contained in:
Nick Clifton
2021-02-12 14:52:22 +00:00
parent 96df3e28b8
commit c46b706620
18 changed files with 183 additions and 47 deletions

29
binutils/configure vendored
View File

@ -822,6 +822,7 @@ enable_targets
enable_deterministic_archives
enable_default_strings_all
enable_f_for_ifunc_symbols
enable_follow_debug_links
with_debuginfod
enable_libctf
enable_werror
@ -1489,6 +1490,9 @@ Optional Features:
--enable-f-for-ifunc-symbols
Have nm use F and f for global and local ifunc
symbols
--enable-follow-debug-links
Have readelf and objdump follow debug links by
default
--enable-libctf Handle .ctf type-info sections [default=yes]
--enable-werror treat compile warnings as errors
--enable-build-warnings enable build-time compiler warnings
@ -11577,7 +11581,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11580 "configure"
#line 11584 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -11683,7 +11687,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 11686 "configure"
#line 11690 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -12359,6 +12363,27 @@ _ACEOF
# Check whether --enable-follow-debug-links was given.
if test "${enable_follow_debug_links+set}" = set; then :
enableval=$enable_follow_debug_links;
if test "${enableval}" = no; then
default_for_follow_links=0
else
default_for_follow_links=1
fi
else
default_for_follow_links=1
fi
cat >>confdefs.h <<_ACEOF
#define DEFAULT_FOR_FOLLOW_LINKS $default_for_follow_links
_ACEOF