Commit Graph

3140 Commits

Author SHA1 Message Date
Maciej W. Rozycki
2d6dda7161 MIPS/BFD: Correctly report unsupported `.reginfo' section size
Report an error when an unsupported `.reginfo' section size is found in
`_bfd_mips_elf_section_processing', removing an assertion that triggers
at elfxx-mips.c:7105 in GAS when assembling input like:

	.section	.reginfo
	.word		0xdeadbeef

and in `objcopy --rename-section' when renaming an incorrectly sized
section to `.reginfo'.

	bfd/
	* elfxx-mips.c (_bfd_mips_elf_section_processing): For
	SHT_MIPS_REGINFO sections don't assert the correct size and
	report an error instead.

	binutils/
	* testsuite/binutils-all/mips/mips-reginfo.d: New test.
	* testsuite/binutils-all/mips/mips-reginfo-n32.d: New test.
	* testsuite/binutils-all/mips/mips-reginfo.s: New test source.
	* testsuite/binutils-all/mips/mips.exp: Run the new tests.

	gas/
	* testsuite/gas/mips/reginfo-2.d: New test.
	* testsuite/gas/mips/reginfo-2-n32.d: New test.
	* testsuite/gas/mips/reginfo-2.l: New test stderr output.
	* testsuite/gas/mips/reginfo-2.s: New test source.
	* testsuite/gas/mips/mips.exp: Run the new tests.
2018-02-05 14:00:21 +00:00
Maciej W. Rozycki
78c8836415 binutils/testsuite: Support stderr options with `run_dump_test'
Add support for the `error', `error_output', `warning' and
`warning_output' options for `run_dump_test' input files, based on the
version of the procedure in ld/testsuite/lib/ld-lib.exp and providing
compatible semantics.  These options apply to PROG under test and let
test cases specify output expected on stderr as well as express a
requirement for PROG to exit unsuccessfully.  Messages to match against
can be supplied either inline or fetched from a named file.  Update
procedure description in the introductory comment accordingly.

As the exit status from `remote_exec' is regrettably lost in our default
implementation of `binutils_run', which is user-overridable, avoid
changing this procedure's API and use a global `binutils_run_status'
variable to pass the status up to the caller, similarly to how
`binutils_run_failed' is handled.  Document the new variable in the
respective introductory comments.

	binutils/
	* testsuite/config/default.exp (binutils_run): Document
	`binutils_run_status'.
	* testsuite/lib/utils-lib.exp (default_binutils_run): Likewise,
	and set it.
	(run_dump_test): Add `error', `error_output', `warning' and
	`warning_output' options.  Update documentation accordingly.
2018-02-05 14:00:21 +00:00
Andrew Burgess
5bb0830d10 binutils/riscv: Register names in DWARF output
Adds a register name table for RiscV so that objdump and readelf can
both use better register names.

binutils/ChangeLog:

	* dwarf.c (dwarf_regnames_riscv): New register name table.
	(init_dwarf_regnames_riscv): New function.
	(init_dwarf_regnames): Add call to initialise RiscV register
	names.
	* dwarf.h (init_dwarf_regnames_riscv): Declare.
	* objdump.c (dump_dwarf): Add call to initialise RiscV register
	names.
2018-02-02 18:50:40 +00:00
Alan Modra
f2023ce7e8 PR22769, crash when running 32-bit objdump on corrupted file
PR 22769
	* objdump.c (load_specific_debug_section): Check for overflow
	when adding one to section size for a string section terminator.
2018-02-01 21:38:02 +10:30
Nick Clifton
fcabedd5cb Update description of nm's symbol bss type letters.
PR 22734
	* doc/binutils.texi (nm): Update description to point out that
	zero-initialized values can also be shown as type B, b, S or s
	since they can be stored in the BSS section.
2018-01-30 17:22:41 +00:00
Alan Modra
f49db8befa 32-bit objcopy build fail
* objcopy.c (merge_gnu_build_notes): Use (bfd_vma) -1 as
	"artificially large" end address.
2018-01-30 10:51:20 +10:30
Nick Clifton
a8d6d6acff Update release notes with a reminder to check the gpg key being used.
* README-how-to-make-a-release: Add note about checking gpg key
	and the results of gnupload.
2018-01-28 16:35:37 +00:00
Nick Clifton
9a5db26e6d Update documentation on making a release 2018-01-27 16:38:17 +00:00
Nick Clifton
94c2436bb8 Update notes on making a release 2018-01-26 11:14:26 +00:00
Maciej W. Rozycki
1ea332d693 binutils/doc: Fix a "using" typo in `objcopy --rename-section' description
binutils/
	* doc/binutils.texi (objcopy): Fix a typo in `--rename-section'
	option description.
2018-01-22 21:08:26 +00:00
Maciej W. Rozycki
d65ce302ab MAINTAINERS: Update my company e-mail address
Following my recent transition from Imagination Technologies to the
reincarnated MIPS company update MAINTAINERS entries accordingly.

	binutils/
	* MAINTAINERS: Update my company e-mail address.

	gdb/
	* MAINTAINERS: Update my company e-mail address.

	sim/
	* MAINTAINERS: Update my company e-mail address.
2018-01-22 15:39:18 +00:00
Nick Clifton
f433138f1f Update Swedish translation for the binutils sub-directory 2018-01-22 13:48:15 +00:00
Nick Clifton
7ab8203798 Update Bulgarian translation of the binutils sub-directory 2018-01-18 09:38:59 +00:00
Joel Brobecker
0dd86f32bc binutils release procedure: Add AI to update branch name in crontab
binutils/ChangeLog:

        * README-how-to-make-a-release: Add reminder to update the
        branch name in gdbadmin's crontab on sourceware.
2018-01-16 14:19:37 +01:00
Nick Clifton
f6efed019b Update translations for various binutils components.
ld      * po/pt_BR.po: Updated Brazilian Portugese translation.

opcodes * po/pt_BR.po: Updated Brazilian Portugese translation.
        * po/de.po: Updated German translation.

gas     * po/fr.po: Updated French translation.

binutils* po/fr.po: Updated French translation.
2018-01-16 12:45:44 +00:00
Joel Brobecker
a960d29fb7 Remove trailing spaces in binutils/README-how-to-make-a-release
binutils/ChangeLog:

        * README-how-to-make-a-release: Remove trailing spaces.
2018-01-16 12:20:01 +01:00
Nick Clifton
616dcb87ab Update Ukranian translations for bfd, binutils, gas, gold, ld and opcodes 2018-01-15 12:09:11 +00:00
Nick Clifton
19e2900bd3 Update notes on how to make a release 2018-01-13 14:29:27 +00:00
Nick Clifton
3957a4963f Update pot files 2018-01-13 13:56:48 +00:00
Nick Clifton
769c7ea507 Bump version number to 2.30.51
bfd/
	* version.m4: Bump version to 2.30.51
	* configure: Regenerate.

binutils/
	* configure: Regenerate.

gas/
	* configure: Regenerate.

gprof/
	* configure: Regenerate.

ld/
	* configure: Regenerate.

opcodes/
	* configure: Regenerate.
2018-01-13 13:31:12 +00:00
Nick Clifton
faf766e317 Add note about 2.30 branch creation to changelogs 2018-01-13 13:26:38 +00:00
Nick Clifton
9176ac5bfc Add 2.30 markers to NEWS files.
binutils/
	* NEWS: Add marker for 2.30.

gas/
	* NEWS: Add marker for 2.30.

ld/
	* NEWS: Add marker for 2.30.
2018-01-13 13:20:55 +00:00
Nick Clifton
98ab9e9603 Add notes on how to make a branch and a pre-release snapshot.
* README-how-to-make-a-release: Add notes on how to make the
	branch and prelease snapshot.
	* BRANCHES: Add binutils-2_29-branch.
2018-01-12 17:52:38 +00:00
Nick Clifton
bf41f30dde Update top level configure files by synchronizing them with gcc.
.	* config-ml.in: Sync with gcc sources.
	* config.guess: Likewise.
	* config.sub: Likewise.
	* configure.ac: Likewise.
	* configure: Regenerate.

config	* Sync with GCC sources:

	2017-11-14 Boris Kolpackov  <boris@codesynthesis.com>

	* gcc-plugin.m4: Add support for MinGW.

	2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>

	* cet.m4: New file.

	2017-11-15  Alexandre Oliva <aoliva@redhat.com>

	* bootstrap-debug-lean.mk (do-compare): Use the
	contrib/compare-debug script.

	2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>

	* bootstrap-cet.mk: New file.

	2017-06-19  Martin Liska  <mliska@suse.cz>

	* bootstrap-lto-noplugin.mk: Enable -flto in all PGO stages.
	* bootstrap-lto.mk: Likewise.

	2017-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* mt-android: New file.

	2017-02-13  Richard Biener  <rguenther@suse.de>

	* isl.m4: Remove support for ISL 0.14.

	2017-01-19  Uros Bizjak  <ubizjak@gmail.com>

	PR target/78478
	* ax_check_define.m4: New file.

	2017-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR other/79046
	* acx.m4 (GCC_BASE_VER): New m4 function.
	(ACX_TOOL_DIRS): Require GCC_BASE_VER, for
	--with-gcc-major-version-only use just major number from BASE-VER.

	2017-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR go/78978
	* hwcaps.m4 (GCC_CHECK_ASSEMBLER_HWCAP): New macro.
2018-01-10 15:29:21 +00:00
Nick Clifton
f13974bda3 Fix compile time warning introduced by previous delta.
* objcopy.c (merge_gnu_build_notes): Add cast to maximum address
	constants.
2018-01-03 17:32:59 +00:00
Nick Clifton
6f156d7a4a Add support for v3 binary annotation notes.
I am checking in the attached patch which updates the binutils
  support for version 3 binary annotation notes.  (Version 3 adds
  an end address to the ranges covered by the notes, so that it
  is possible to detect gaps in the coverage).

  This patch also stops the note merging feature of objcopy from
  executing if the notes have relocations against them.  This makes the
  code simpler, and prevents the problems with architectures which have
  unusual relocation management issues.

	* objcopy.c (objcopy_internal_note): New structure.
	(gap_exists): New function.
	(is_open_note): New function.
	(is_func_note): New function.
	(is_64bit): New function.
	(merge_gnu_build_notes): Handle v3 notes.  Do not merge
	if there are relocations against the notes.
	* readelf.c (get_note_type): Use short names for build attribute
	notes.
	(print_symbol_for_build_attribute): Rename to
	get_symbol_for_build_attribute.  Returns the found symbol rather
	than printing it.
	(print_gnu_build_attribute_description): Maintain address ranges
	for function notes as well as global notes.  Handle v3 notes.
	(print_gnu_build_attribute_name): Use more space for printing the
	name in wide mode.
	* testsuite/binutils-all/note-2-32.s: Use .dc.l instead of .word.
	Eliminate symbol references in order to remove the need for
	relocations.
	* testsuite/binutils-all/note-2-64.s: Likewise.
	* testsuite/binutils-all/note-3-32.s: Add a size to the note_1
	symbol.
	* testsuite/binutils-all/note-3-64.s: Likewise.
	* testsuite/binutils-all/mips/mips-note-2r-n32.d: Update expected
	output.
	* testsuite/binutils-all/mips/mips-note-2r-n64.d: Likewise.
	* testsuite/binutils-all/mips/mips-note-2r.d: Likewise.
	* testsuite/binutils-all/note-2-32.d: Likewise.
	* testsuite/binutils-all/note-2-64.d: Likewise.
	* testsuite/binutils-all/note-3-32.d: Likewise.
	* testsuite/binutils-all/note-3-64.d: Likewise.
	* testsuite/binutils-all/note-4-64.s: New test.  Checks v3 notes.
	* testsuite/binutils-all/note-4-32.s: New test.
	* testsuite/binutils-all/note-4-64.d: New test result file.
	* testsuite/binutils-all/note-4-32.d: New test result file.
2018-01-03 10:30:07 +00:00
Alan Modra
219d1afa89 Update year range in copyright notice of binutils files 2018-01-03 17:49:56 +10:30
Alan Modra
1e56386871 ChangeLog rotation 2018-01-03 17:49:42 +10:30
Nick Clifton
bef7475fbd Stop readelf from complaining about relocation sections with an sh_info field of 0 in dynamic executables.
PR 22587
	* readelf.c (process_section_headers): Do not complain about an
	sh_info field of 0 in relocation sections of ET_EXEC or ET_DYN
	type executables.
2017-12-19 09:48:40 +00:00
Alan Modra
f795c49463 Test binutils_assemble return value
This is a followup to "binutils nm testsuite tidy".  Since the perror
in binutils_assemble has been removed, we need to take more care in
failure paths.

The patch also fixed a number of .exp files that have multiple tests,
where an assembly failure returns from the .exp file.  In most cases
it is nicer to attempt all tests.

	* testsuite/binutils-all/ar.exp (unique_symbol): Don't run AR
	if assembly fails.
	* testsuite/binutils-all/arc/objdump.exp (check_assembly): If
	objfile is empty, fail test.
	* testsuite/binutils-all/arm/objdump.exp: Don't return if assembly
	fails for a test, continue on to other tests.
	* testsuite/binutils-all/bfin/objdump.exp: Likewise.
	* testsuite/binutils-all/hppa/objdump.exp: Likewise.
	* testsuite/binutils-all/m68k/objdump.exp: Likewise.
	* testsuite/binutils-all/vax/objdump.exp: Likewise.
	* testsuite/binutils-all/size.exp: Likewise.
	* testsuite/binutils-all/nm.exp: Likewise.  Move PR12753 test.
	* testsuite/binutils-all/objcopy.exp: Don't perror on assembly fail.
	* testsuite/binutils-all/objdump.exp: Report assembly fails.
2017-12-19 06:51:33 +10:30
Nick Clifton
c54207d326 Decode expression lists used with DW_AT_byte_size and other DWARF attributes.
PR 22532
	* dwarf.c (read_and_display_attr_value): Add attributes that might
	use the DW_FORM_exprloc form, and if so, display the decoded
	location expression list.
2017-12-18 17:57:18 +00:00
Alan Modra
4baeffab22 binutils nm testsuite tidy
We can run the gnu_unique_object symbol test  on all ELF targets.
Those that don't support the symbol type and fail to assemble can just
be resolved as "unsupported".  This means binutils_assemble can't
report an error on assembly failure, but it probably should never have
done that anyway.

	* testsuite/lib/utils-lib.exp (default_binutils_assemble_flags):
	Don't perror on assembler diagnostic output.
	* testsuite/binutils-all/nm.exp: Run unique symbol test on all
	ELF targets.  Resolve as "unsupported" on assembly failure.
2017-12-14 22:29:42 +10:30
Renlin Li
4c5ae11b42 [Binutils][Objdump]Check symbol section information while search a mapping symbol backward.
When checking mapping symbols backwardly, the section which defines the symbol
is not considerted. This patch fixes this by moving the section checking code
into get_sym_code_type () function which is shared by forward and backword
mapping symbol searching.

opcodes/

2017-12-11  Petr Pavlu  <petr.pavlu@arm.com>
	    Renlin Li  <renlin.li@arm.com>

	* aarch64-dis.c (print_insn_aarch64): Move symbol section check ...
	(get_sym_code_type): Here.

binutils/

2017-12-11  Renlin Li  <renlin.li@arm.com>

	* testsuite/binutils-all/aarch64/objdump.d: New.
	* testsuite/binutils-all/aarch64/objdump.s: New.
2017-12-11 15:42:47 +00:00
Nick Clifton
2d054e6bfd Fix stripping relocs in a file with mergeable notes.
A recent Fedora bug (1520805) exposed a problem with objcopy's reloc
  copying code, when a binary also contains mergeable notes.  The note
  merging code would delete some relocs, but then the reloc copying code
  would try to put them back again, which did not work.

  So I am checking in the patch below to fix the problem.  The patch
  also tweaks one of the binutils note merging tests so that it is
  skipped for the Sparc64 target, since this has funky relocs.

binutils	* objcopy.c (copy_relocations_in_section): Use the orelocations
	field of the input section, if it has been initialised.
	* testsuite/binutils-all/note-2-64.d: Skip test on Sparc64.

bfd	* elfcode.h (elf_write_relocs): Check for an empty howto field.
2017-12-08 10:07:14 +00:00
Jim Wilson
1c9c7ce078 Objcopy interleave fails if section address not multiple of interleave.
PR 22465
	binutils/
	* objcopy.c (copy_section): New local extra.  If isection->lma not
	exactly divisible by interleave, then bias from.  Also adjust
	osection->lma if necessary.

	ld/
	* testsuite/ld-elf/interleave-0.d, testsuite/ld-elf/interleave-4.d,
	* testsuite/ld-elf/interleave.ld, testsuite/ld-elf/interleave.s: New.
2017-12-06 10:34:36 -08:00
Alan Modra
9c1ce10850 PR22552, readelf heap buffer overflow in load_debug_section
PR 22552
	* readelf.c (process_file_header): Don't assume XINDEX case
	value for e_shstrndx is within bounds.
	(load_debug_section): Sanity test e_shstrndx before attempting
	to read .shstrtab.  Wrap long lines.
2017-12-06 18:05:18 +10:30
Oleksandr Pikozh
0fbdde9429 Add --strip-unneeded to objcopy synopsis
* doc/binutils.texi: Add --strip-unneeded to objcopy synopsis.
2017-12-01 19:08:42 +10:30
Nick Clifton
f425ec6600 Prevent an illegal memory access in readelf when attempting to parse a corrupt ELF file.
PR 22510
	* readelf.c (load_debug_section): Fail if there are no section
	headers available.
2017-11-30 10:25:01 +00:00
Nick Clifton
d785b7d4b8 Stop objdump from attempting to allocate a huge chunk of memory when parsing relocs in a corrupt file.
PR 22508
	* objdump.c (dump_relocs_in_section): Also check the section's
	relocation count to make sure that it is reasonable before
	attempting to allocate space for the relocs.
2017-11-29 12:40:43 +00:00
Stefan Stroe
ca39c2f4dd Support --localedir, --datarootdir and --datadir
bfd/
	* po/Make-in (datadir): Define as @datadir@.
	(localedir): Define as @localedir@.
	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
binutils/
	* po/Make-in (datadir): Define as @datadir@.
	(localedir): Define as @localedir@.
	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
gas/
	* po/Make-in (datadir): Define as @datadir@.
	(localedir): Define as @localedir@.
	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
gold/
	* po/Make-in (datadir): Define as @datadir@.
	(localedir): Define as @localedir@.
	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
gprof/
	* po/Make-in (datadir): Define as @datadir@.
	(localedir): Define as @localedir@.
	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
ld/
	* po/Make-in (datadir): Define as @datadir@.
	(localedir): Define as @localedir@.
	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
opcodes/
	* po/Make-in (datadir): Define as @datadir@.
	(localedir): Define as @localedir@.
	(gnulocaledir, gettextsrcdir): Use @datarootdir@.
2017-11-29 20:10:52 +10:30
H.J. Lu
82ed9683ec Properly handle note sections and segments
When dumping notes, get note alignment from either note section or note
segment.  To support notes generated by assemblers with

https://sourceware.org/bugzilla/show_bug.cgi?id=22492

we treate alignment as 4 bytes if it is less than 4.  Otherwise, we skip
notes if alignment isn't 4 nor 8 bytes.

We should call load_separate_debug_file only if e_shstrndx != SHN_UNDEF.

	PR binutils/22490
	* readelf.c (process_notes_at): Add an argument for note
	alignment.  If note alignment is less than 4, use 4 byte
	alignment.  Otherwise, skip notes if alignment isn't 4 nor
	8 bytes.
	(process_corefile_note_segments): Pass segment alignment to
	process_notes_at.
	(process_note_sections): Pass section alignment to
	process_notes_at.
	(process_object): Call load_separate_debug_file only if
	e_shstrndx != SHN_UNDEF.
2017-11-28 08:18:46 -08:00
Nick Clifton
4dff97b2ce Fix a seg-fault when displaying notes from a prorgam segment. Check for a NULL string section before attempting compute the name of a separate debug info file.
PR 22490
	* readelf.c (dump_section_as_bytes): Check for a NULL string
	section pointer.
	(process_notes_at): Compute the alignment to use if displaying
	notes from a segment.
2017-11-27 11:05:39 +00:00
H.J. Lu
2b63c337d9 Rename argument name from link to xlink
This fixed the build with GCC 4.2:

cc1: warnings being treated as errors
binutils-gdb/binutils/dwarf.c: In function ‘load_separate_debug_info’:
binutils-gdb/binutils/dwarf.c:9650: warning: declaration of ‘link’ shadows a global declaration
/usr/include/unistd.h:757: warning: shadowed declaration is here

	* dwarf.c (load_separate_debug_info): Rename argument name from
	link to xlink.
2017-11-26 10:12:35 -08:00
H.J. Lu
276da9b31b Re-apply "elf: Properly compute offsets of note descriptor and next note"
CORE PT_NOTE segments may have p_align values of 0 or 1.  gABI specifies
that PT_NOTE alignment should be aligned to 4 bytes for 32-bit objects
and to 8 bytes for 64-bit objects.  If segment alignment is less than 4,
we use 4 byte alignment.
2017-11-24 14:52:15 -08:00
Simon Marchi
4e25ac038e Revert "elf: Properly compute offsets of note descriptor and next note"
This reverts commit 650444eb54.

With this patch, running the GDB test case gdb.base/auxv.exp is stuck in
an infinite loop, consuming memory to the point that it renders the
machine unusable. I am reverting it so we can take our time to
investigate while not killing all the developers' machines.
2017-11-24 15:43:51 -05:00
H.J. Lu
650444eb54 elf: Properly compute offsets of note descriptor and next note
According to gABI, in a note entry, the note name field, not note name
size, is padded for the note descriptor.  And the note descriptor field,
not note descriptor size, is padded for the next note entry.  Also notes
are aligned to 4 bytes in 32-bit objects and 8 bytes in 64-bit objects.
Since on Linux, .note.ABI-tag and .note.gnu.build-id notes are always
aligned to 4 bytes, we need to use alignment of note section or note
segment, instead of assuming alignment based on ELF file class.

Tested on i686 and x86-64.

bfd/

	PR binutils/22444
	* elf.c (elf_read_notes): Add an argument for note aligment.
	(elf_parse_notes): Likewise.
	(_bfd_elf_make_section_from_shdr): Pass section aligment to
	elf_parse_notes.
	(bfd_section_from_phdr): Pass segment aligment to elf_read_notes.
	(elf_parse_notes): Add an argument for note aligment.  Use
	ELF_NOTE_DESC_OFFSET to get the offset of the note descriptor.
	Use ELF_NOTE_NEXT_OFFSET to get the offset of the next note
	entry.
	(elf_read_notes): Add an argument for note aligment and pass it
	to elf_parse_notes.

binutils/

	PR binutils/22444
	* readelf.c (process_notes_at): Use ELF_NOTE_DESC_OFFSET to get
	the offset of the note descriptor.  Use ELF_NOTE_NEXT_OFFSET to
	get the offset of the next note entry.

include/

	PR binutils/22444
	* elf/external.h (ELF_ALIGN_UP): New.
	(ELF_NOTE_DESC_OFFSET): Likewise.
	(ELF_NOTE_NEXT_OFFSET): Likewise.
2017-11-24 06:41:52 -08:00
Pavel I. Kryukov
eb02c04dc3 Avoid bogus compile time warning from clang by initialising local data structure using memset.
PR 22485
	* readelf.c (process_archive): Use memset to initiaise
	thin_filedata structure.
2017-11-23 15:53:04 +00:00
H.J. Lu
d6251545e2 Add a test for PR binutils/22451
Check in the object file generated from the older assembler as a
compressed file.

	PR binutils/22451
	* testsuite/binutils-all/x86-64/objects.exp: New file.
	* testsuite/binutils-all/x86-64/pr22451.o.bz2: Likewise.
2017-11-21 13:41:51 -08:00
claziss
bd560f571f [ARC] [COMMITTED] Update test pattern patching.
2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>

	* testsuite/binutils-all/arc/objdump.exp: Update pattern matching
	expression.
2017-11-21 15:04:22 +01:00
Nick Clifton
d85bf2ba86 Add ability to follow dwo links to readelf/objdump.
* dwarf.c (dwo_name, dwo_dir, dwo_id, dwo_id_len): New variables.
	(read_and_display_attr_value): Record dwo variables if requested.
	(display_augmentation_data): Rename to display_data and make
	generic.
	(load_dwo_file): New function.  Loads a separate dwarf object
	file.
	(load_separate_debug_file): Add reporting and loading of separate
	dwarf objet files.
	* readelf.c (process_section_headers): Add do_debug_links to list
	of flags requiring a debug dump.
	(display_debug_section): Tidy up code.
	* doc/debug.options.texi: Add note that dwo links will also be
	followed.
	* testsuite/binutils-all/debuglink.s: Tidy code.
	* testsuite/binutils-all/dwo.s: New test file.
	* testsuite/binutils-all/readelf.wk2: New file - expected output
	from readelf.
	* testsuite/binutils-all/readelf.exp: Run the new test.
2017-11-21 13:12:04 +00:00