aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-02-07Move gdbserver to top levelTom Tromey118-215/+652
This patch moves gdbserver to the top level. This patch is as close to a pure move as possible -- gdbserver still builds its own variant of gnulib and gdbsupport. Changing this will be done in a separate patch. [v2] Note that, per Simon's review comment, this patch changes the tree so that gdbserver is not built for or1k or score. This makes sense, because there is apparently not actually a gdbserver port here. [v3] This version of the patch also splits out some configury into a new file, gdbserver/configure.host, so that the top-level configure script can simply rely on it in order to decide whether gdbserver should be built. [v4] This version adds documentation and removes some unnecessary top-level dependencies. [v5] Update docs to mention "make all-gdbserver" and change how top-level configure decides whether to build gdbserver, switching to a single, shared script. Tested by the buildbot. ChangeLog 2020-02-07 Tom Tromey <tom@tromey.com> Pedro Alves <palves@redhat.com> * src-release.sh (GDB_SUPPORT_DIRS): Add gdbserver. * gdbserver: New directory, moved from gdb/gdbserver. * configure.ac (host_tools): Add gdbserver. Only build gdbserver on certain systems. * Makefile.in, configure: Rebuild. * Makefile.def (host_modules, dependencies): Add gdbserver. * MAINTAINERS: Add gdbserver. gdb/ChangeLog 2020-02-07 Tom Tromey <tom@tromey.com> * README: Update gdbserver documentation. * gdbserver: Move to top level. * configure.tgt (build_gdbserver): Remove. * configure.ac: Remove --enable-gdbserver. * configure: Rebuild. * Makefile.in (distclean): Don't mention gdbserver. Change-Id: I826b7565b54604711dc7a11edea0499cd51ff39e
2020-02-07Update release making notes.Nick Clifton2-0/+8
* README-how-to-make-a-release: Add note about updating the GAS/NEWS URL in the next release.
2020-02-07Add support for the GBZ80 and Z80N variants of the Z80 architecture, and add ↵Sergey Belyashov42-464/+4860
DWARF debug info support to the Z80 assembler. PR 25469 bfd * archures.c: Add GBZ80 and Z80N machine values. * reloc.c: Add BFD_RELOC_Z80_16_BE. * coff-z80.c: Add support for new reloc. * coffcode.h: Add support for new machine values. * cpu-z80.c: Add support for new machine names. * elf32-z80.c: Add support for new reloc. * bfd-in2.h: Regenerate. * libbfd.h: Regenerate. binutils* readelf.c (get_machine_flags): Add support for Z80N machine number. gas * config/tc-z80.c: Add -gbz80 command line option to generate code for the GameBoy Z80. Add support for generating DWARF. * config/tc-z80.h: Add support for DWARF debug information generation. * doc/c-z80.texi: Document new command line option. * testsuite/gas/z80/gbz80_all.d: New file. * testsuite/gas/z80/gbz80_all.s: New file. * testsuite/gas/z80/z80.exp: Run the new tests. * testsuite/gas/z80/z80n_all.d: New file. * testsuite/gas/z80/z80n_all.s: New file. * testsuite/gas/z80/z80n_reloc.d: New file. include * coff/internal.h (R_IMM16BE): Define. * elf/z80.h (EF_Z80_MACH_Z80N): Define. (R_Z80_16_BE): New reloc. ld * emulparams/elf32z80.sh: Use z80 emulation. * emultempl/z80.em: Make generic to both COFF and ELF Z80 emulations. * emultempl/z80elf.em: Delete. * testsuite/ld-elf/pr22450.d: Expect to fail for the Z80. * testsuite/ld-elf/sec64k.exp: Fix Z80 assembly. * testsuite/ld-unique/pr21529.s: Avoid register name conflict. * testsuite/ld-unique/unique.s: Likewise. * testsuite/ld-unique/unique_empty.s: Likewise. * testsuite/ld-unique/unique_shared.s: Likewise. * testsuite/ld-unique/unique.d: Updated expected output. * testsuite/ld-z80/arch_z80n.d: New file. * testsuite/ld-z80/comb_arch_z80_z80n.d: New file. * testsuite/ld-z80/labels.s: Add more labels. * testsuite/ld-z80/relocs.s: Add more reloc tests. * testsuite/ld-z80/relocs_f_z80n.d: New file opcodes * z80-dis.c: Add support for GBZ80 opcodes.
2020-02-07pr25022.d: Xfail more targets without ldelf_before_place_orphansH.J. Lu2-2/+9
PR ld/25022 * testsuite/ld-elf/pr25022.d: Xfail more targets which don't use ldelf_before_place_orphans.
2020-02-07Stop the BFD library from complaining if a segment has no sections attached ↵Nick Clifton2-8/+15
to it. PR 23932 * elf.c (rewrite_elf_program_header): Do not complain if no sections are mapped to a segment.
2020-02-07Silcence a compile time warning message building the binutils with gcc-10 on ↵Nick Clifton2-0/+10
an s390 host. * dwarf.c (display_debug_lines_decoded): Force a NUL termination of the truncated file name.
2020-02-06ELF: Discard a section if any of its linked-to sections has been discardedH.J. Lu20-0/+111
Add ldelf_before_place_orphans to call before lang_place_orphans to discard a section if any of its linked-to sections has been discarded. PR ld/25022 * emultempl/aix.em (ld_${EMULATION_NAME}_emulation): Add before_place_orphans_default. * emultempl/armcoff.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/beos.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/generic.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/linux.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/msp430.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/pe.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/pep.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/ticoff.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/vanilla.em (ld_${EMULATION_NAME}_emulation): Likewise. * emultempl/elf.em (ld_${EMULATION_NAME}_emulation): Use ldelf_before_place_orphans. * ldelf.c (ldelf_before_place_orphans): New. * ldelf.h (ldelf_before_place_orphans): Likewise. * ldemul.c (ldemul_before_place_orphans): Likewise. (before_place_orphans_default): Likewise. * ldemul.h (ldemul_before_place_orphans): Likewise. (before_place_orphans_default): Likewise. (ld_emulation_xfer_struct): Add before_place_orphans. * ldlang.c (lang_process): Call ldemul_before_place_orphans before lang_place_orphans. * testsuite/ld-elf/pr25022.d: New file. * testsuite/ld-elf/pr25022.s: Likewise. * testsuite/ld-elf/pr25022.t: Likewise.
2020-02-06ld: Issue an error for GC on __patchable_function_entries sectionH.J. Lu5-0/+32
__patchable_function_entries section is generated by a compiler with -fpatchable-function-entry=XX. The assembly code looks like this: --- .text .globl _start .type _start, %function _start: .section __patchable_function_entries,"aw",%progbits .dc.a .LPFE1 .text .LPFE1: .byte 0 --- But --gc-sections will silently remove __patchable_function_entries section and generate corrupt result. This patch disallows garbage collection on __patchable_function_entries section without linked-to section. bfd/ PR ld/25490 * elflink.c (_bfd_elf_gc_mark_extra_sections): Issue an error for garbage collection on __patchable_function_entries section without linked-to section. ld/ PR ld/25490 * testsuite/ld-elf/pr25490-1.d: New file. * testsuite/ld-elf/pr25490-1.s: Likewise.
2020-02-06ELF: Support the section flag 'o' in .section directiveH.J. Lu44-11/+578
As shown in https://sourceware.org/bugzilla/show_bug.cgi?id=25490 --gc-sections will silently remove __patchable_function_entries section and generate corrupt result. This patch adds the section flag 'o' to .section directive: .section __patchable_function_entries,"awo",@progbits,foo .section __patchable_function_entries,"awoG",@progbits,foo,foo,comdat .section __patchable_function_entries,"awo",@progbits,bar,unique,4 .section __patchable_function_entries,"awoG",@progbits,foo,foo,comdat,unique,1 which specifies the symbol name which the section references. Assmebler will set its elf_linked_to_section to a local section where the symbol is defined. Linker is updated to call mark_hook if gc_mark of any of its linked-to sections is set after all sections, except for backend specific ones, have been garbage collected. bfd/ PR gas/25381 * bfd-in2.h: Regenerated. * elflink.c (_bfd_elf_gc_mark_extra_sections): Call mark_hook on section if gc_mark of any of its linked-to sections is set and don't set gc_mark again. * section.c (asection): Add linked_to_symbol_name to map_head union. gas/ PR gas/25381 * config/obj-elf.c (get_section): Also check linked_to_symbol_name. (obj_elf_change_section): Also set map_head.linked_to_symbol_name. (obj_elf_parse_section_letters): Handle the 'o' flag. (build_group_lists): Renamed to ... (build_additional_section_info): This. Set elf_linked_to_section from map_head.linked_to_symbol_name. (elf_adjust_symtab): Updated. * config/obj-elf.h (elf_section_match): Add linked_to_symbol_name. * doc/as.texi: Document the 'o' flag. * testsuite/gas/elf/elf.exp: Run PR gas/25381 tests. * testsuite/gas/elf/section18.d: New file. * testsuite/gas/elf/section18.s: Likewise. * testsuite/gas/elf/section19.d: Likewise. * testsuite/gas/elf/section19.s: Likewise. * testsuite/gas/elf/section20.d: Likewise. * testsuite/gas/elf/section20.s: Likewise. * testsuite/gas/elf/section21.d: Likewise. * testsuite/gas/elf/section21.l: Likewise. * testsuite/gas/elf/section21.s: Likewise. ld/ PR ld/24526 PR ld/25021 PR ld/25490 * testsuite/ld-elf/elf.exp: Run PR ld/25490 tests. * testsuite/ld-elf/pr24526.d: New file. * testsuite/ld-elf/pr24526.s: Likewise. * testsuite/ld-elf/pr25021.d: Likewise. * testsuite/ld-elf/pr25021.s: Likewise. * testsuite/ld-elf/pr25490-2-16.rd: Likewise. * testsuite/ld-elf/pr25490-2-32.rd: Likewise. * testsuite/ld-elf/pr25490-2-64.rd: Likewise. * testsuite/ld-elf/pr25490-2.s: Likewise. * testsuite/ld-elf/pr25490-3-16.rd: Likewise. * testsuite/ld-elf/pr25490-3-32.rd: Likewise. * testsuite/ld-elf/pr25490-3-64.rd: Likewise. * testsuite/ld-elf/pr25490-3.s: Likewise. * testsuite/ld-elf/pr25490-4-16.rd: Likewise. * testsuite/ld-elf/pr25490-4-32.rd: Likewise. * testsuite/ld-elf/pr25490-4-64.rd: Likewise. * testsuite/ld-elf/pr25490-4.s: Likewise. * testsuite/ld-elf/pr25490-5-16.rd: Likewise. * testsuite/ld-elf/pr25490-5-32.rd: Likewise. * testsuite/ld-elf/pr25490-5-64.rd: Likewise. * testsuite/ld-elf/pr25490-5.s: Likewise. * testsuite/ld-elf/pr25490-6-16.rd: Likewise. * testsuite/ld-elf/pr25490-6-32.rd: Likewise. * testsuite/ld-elf/pr25490-6-64.rd: Likewise. * testsuite/ld-elf/pr25490-6.s: Likewise.
2020-02-07Automatic date update in version.inGDB Administrator1-1/+1
2020-02-06sim/aarch64: Fix register ordering bug in blr (PR sim/25318)Carlo Bramini2-4/+9
A comment in the implementation of blr says: /* The pseudo code in the spec says we update LR before fetching. the value from the rn. */ With 'rn' being the register holding the destination address. This may have been true at one point, but the ISA manual now clearly shows the destination register being read before the link register is written. This commit updates the implementation of blr to match. sim/aarch64/ChangeLog: PR sim/25318 * simulator.c (blr): Read destination register before calling aarch64_save_LR. Change-Id: Icb1c556064e3d9c807ac28440475caa205ab1064
2020-02-06gdb: Catch exceptions if the source file is not foundShahab Vahedi5-19/+133
The source_cache::ensure method may throw an exception through the invocation of source_cache::get_plain_source_lines. This happens when the source file is not found. The expected behaviour of "ensure" is only returning "true" or "false" according to the documentation in the header file. So far, if gdb is in source layout and a file is missing, you see some outputs like below: ,---------------------------------------------. | test.c file is loaded in the source window. | | | | int main() | | ... | |---------------------------------------------| | Remote debugging using :1234 | | __start () at /path/to/crt0.S:141 | | /path/to/crt0.S: No such file or directory. | | (gdb) p/x $pc | | $1 = 0x124 | | (gdb) n | | /path/to/crt0.S: No such file or directory. | | (gdb) p/x $pc | | $2 = 0x128 | | (gdb) [pressing arrow-down key] | | (gdb) terminate called after throwing an | | instance of 'gdb_exception_error' | `---------------------------------------------' Other issues have been encountered as well [1]. The patch from Pedro [2] which is about preventing exceptions from crossing the "readline" mitigates the situation by not causing gdb crash, but still there are lots of errors printed: ,---------------------------------------------. | test.c file is loaded in the source window. | | | | int main() | | ... | |---------------------------------------------| | Remote debugging using :1234 | | __start () at /path/to/crt0.S:141 | | /path/to/crt0.S: No such file or directory. | | (gdb) [pressing arrow-down key] | | /path/to/crt0.S: No such file or directory. | | (gdb) [pressing arrow-down key] | | /path/to/crt0.S: No such file or directory. | | (gdb) [pressing arrow-up key] | | /path/to/crt0.S: No such file or directory. | `---------------------------------------------' With the changes of this patch, the behavior is like: ,---------------------------------------------. | initially, source window is empty because | | crt0.S is not found and according to the | | program counter that is the piece of code | | being executed. | | | | later, when we break at main (see commands | | below), this window will be filled with the | | the contents of test.c file. | |---------------------------------------------| | Remote debugging using :1234 | | __start () at /path/to/crt0.S:141 | | (gdb) p/x $pc | | $1 = 0x124 | | (gdb) n | | (gdb) p/x $pc | | $2 = 0x128 | | (gdb) b main | | Breakpoint 1 at 0x334: file test.c, line 8. | | (gdb) cont | | Continuing. | | Breakpoint 1, main () at hello.c:8 | | (gdb) n | | (gdb) | `---------------------------------------------' There is no crash and the error message is completely gone. Maybe it is good practice that the error is shown inside the source window. I tested this change against gdb.base/list-missing-source.exp and there was no regression. [1] It has also been observed in the past that the register values are not transferred from qemu's gdb stub, see: https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/issues/226 [2] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=2f267673f0fdee9287e6d404ecd4f2d29da0d2f2 gdb/ChangeLog: * source-cache.c (source_cache::ensure): Surround get_plain_source_lines with a try/catch. (source_cache::get_line_charpos): Get rid of try/catch and only check for the return value of "ensure". * tui/tui-source.c (tui_source_window::set_contents): Simplify "nlines" calculation. gdb/testsuite/ChangeLog: * gdb.tui/tui-missing-src.exp: Add the "missing source file" test for the TUI.
2020-02-06gdb/testsuite: Avoid leaking a port number into results summaryAndrew Burgess2-1/+7
Give a test a real name in order to avoid including a port number in the results summary file - which makes comparing test results between runs hard. gdb/testsuiteChangeLog: * gdb.server/multi-ui-errors.exp: Give a test a real name to avoid including a port number in the output. Change-Id: I19334e176ac15aee2a9732a6060c58153d9fb793
2020-02-06gdb: Add myself as one of GDB maintainerShahab Vahedi2-0/+5
May this be the beginning of a great flow of patches. 2020-02-06 Shahab Vahedi <shahab@synopsys.com> * MAINTAINERS (Write After Approval): Add myself.
2020-02-06[2.34] Mention x86 assembler options to align branchesH.J. Lu2-0/+10
* NEWS: Mention x86 assembler options to align branches for binutils 2.34.
2020-02-06check_gc_sections_available: Mark z80 as not supportedH.J. Lu2-1/+7
[hjl@gnu-cfl-2 tmpdir]$ ../ld-new -V --gc-sections pr22319.o GNU ld (GNU Binutils) 2.34.50.20200206 Supported emulations: elf32z80 ../ld-new: warning: gc-sections option ignored ../ld-new: warning: cannot find entry symbol _start; defaulting to 0000000000000100 [hjl@gnu-cfl-2 tmpdir]$ * testsuite/lib/ld-lib.exp (check_gc_sections_available): Mark z80 as not supported.
2020-02-06V850/BFD: Fix uninitialized `insn[4]' with R_V850_LONGJUMP warningMaciej W. Rozycki2-1/+6
Correctly point at `insn[2]' rather than `insn[4]' in determining that the third instruction from where an R_V850_LONGJUMP relocation points at is not a recognized one, fixing a problem with commit 86aba9dbfa7e ("Add linker relaxation to v850 toolchain") resulting in a build failure like: .../bfd/elf32-v850.c: In function 'v850_elf_relax_section': .../bfd/elf32-v850.c:3854:5: error: 'insn[4]' may be used uninitialized in this function [-Werror=maybe-uninitialized] 3854 | _bfd_error_handler | ^~~~~~~~~~~~~~~~~~ 3855 | /* xgettext:c-format */ | ~~~~~~~~~~~~~~~~~~~~~~~ 3856 | (_("%pB: %#" PRIx64 ": warning: %s points to " | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3857 | "unrecognized insn %#x"), | ~~~~~~~~~~~~~~~~~~~~~~~~~ 3858 | abfd, | ~~~~~ 3859 | (uint64_t) (irel->r_offset + no_match), | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3860 | "R_V850_LONGJUMP", | ~~~~~~~~~~~~~~~~~~ 3861 | insn[no_match]); | ~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors Makefile:1608: recipe for target 'elf32-v850.lo' failed make[4]: *** [elf32-v850.lo] Error 1 with GCC 10. bfd/ * elf32-v850.c (v850_elf_relax_section): Fix the index used for reporting an unrecognized instruction with R_V850_LONGJUMP.
2020-02-06Fix attributation of previous deltaNick Clifton1-1/+1
2020-02-06Jump visualization: Handle the case where the disassembled bytes occupy two ↵Thomas Troeger2-37/+53
lines. * objdump.c (print_jump_visualisation): New function. (disassemble_bytes): Call new function.
2020-02-06x86: Run unique tests only for ELF targetsH.J. Lu4-4/+9
* testsuite/gas/i386/i386.exp: Run unique and x86-64-unique only for ELF targets. * testsuite/gas/i386/unique.d: Don't xfail. * testsuite/gas/i386/x86-64-unique.d: Likewise.
2020-02-06Enable ld-ifunc tests for more targetsAlan Modra48-56/+128
Also fix some ix86 fails. * testsuite/ld-ifunc/ifunc.exp: Enable for more targets, specifying targets that don't support ifunc rather than ones that do. (contains_irelative_reloc): Match R_PARISC_IPLT. * testsuite/ld-ifunc/lib.c: Don't use .set in asm. * testsuite/ld-ifunc/ifunc-23-x86.s, * testsuite/ld-ifunc/ifunc-24-x86.s, * testsuite/ld-ifunc/ifunc-25-x86.s, * testsuite/ld-ifunc/ifunc-4-local-x86.s, * testsuite/ld-ifunc/ifunc-4-x86.s: Define _main. * testsuite/ld-ifunc/ifunc-10-i386.d, * testsuite/ld-ifunc/ifunc-11-i386.d, * testsuite/ld-ifunc/ifunc-12-i386.d, * testsuite/ld-ifunc/ifunc-13-i386.d, * testsuite/ld-ifunc/ifunc-14a-i386.d, * testsuite/ld-ifunc/ifunc-14b-i386.d, * testsuite/ld-ifunc/ifunc-14c-i386.d, * testsuite/ld-ifunc/ifunc-14d-i386.d, * testsuite/ld-ifunc/ifunc-14e-i386.d, * testsuite/ld-ifunc/ifunc-14f-i386.d, * testsuite/ld-ifunc/ifunc-15-i386.d, * testsuite/ld-ifunc/ifunc-16-i386-now.d, * testsuite/ld-ifunc/ifunc-16-i386.d, * testsuite/ld-ifunc/ifunc-17a-i386.d, * testsuite/ld-ifunc/ifunc-17b-i386.d, * testsuite/ld-ifunc/ifunc-18a-i386.d, * testsuite/ld-ifunc/ifunc-18b-i386.d, * testsuite/ld-ifunc/ifunc-19a-i386.d, * testsuite/ld-ifunc/ifunc-19b-i386.d, * testsuite/ld-ifunc/ifunc-2-i386-now.d, * testsuite/ld-ifunc/ifunc-2-i386.d, * testsuite/ld-ifunc/ifunc-2-local-i386-now.d, * testsuite/ld-ifunc/ifunc-2-local-i386.d, * testsuite/ld-ifunc/ifunc-20-i386.d, * testsuite/ld-ifunc/ifunc-21-i386.d, * testsuite/ld-ifunc/ifunc-22-i386.d, * testsuite/ld-ifunc/ifunc-26.d, * testsuite/ld-ifunc/ifunc-5a-i386.d, * testsuite/ld-ifunc/ifunc-5a-local-i386.d, * testsuite/ld-ifunc/ifunc-5b-i386.d, * testsuite/ld-ifunc/ifunc-5b-local-i386.d, * testsuite/ld-ifunc/ifunc-5r-local-i386.d, * testsuite/ld-ifunc/ifunc-6a-i386.d, * testsuite/ld-ifunc/ifunc-6b-i386.d, * testsuite/ld-ifunc/ifunc-7a-i386.d, * testsuite/ld-ifunc/ifunc-7b-i386.d, * testsuite/ld-ifunc/ifunc-8-i386.d, * testsuite/ld-ifunc/ifunc-9-i386.d, * testsuite/ld-ifunc/pr17154-i386-now.d, * testsuite/ld-ifunc/pr17154-i386.d: xfail lynxos, nto, and solaris.
2020-02-06xfail x86 gas unique testAlan Modra3-0/+7
* testsuite/gas/i386/unique.d: xfail for non-elf targets. * testsuite/gas/i386/x86-64-unique.d: Likewise.
2020-02-06mbind gas tests and supports_gnu_osabi testsuite infrastructureAlan Modra10-43/+71
With the addition of section16 tests we have multiple tests advertising themselves as "mbind sections" and "mbind section contents". This patch fixes that, and fails on quite a few targets that force an OSABI value. It's a pain specifying all the relevant arm targets on an xfail line, so I wrote supports_gnu_osabi. binutils/ * testsuite/lib/binutils-common.exp (match_target): Accept '!' before TCL procedure. (supports_gnu_osabi): New procedure. (is_generic): New, from ld-lib.exp. (supports_gnu_unique): Use the above. gas/ * testsuite/gas/elf/section12a.d: Use supports_gnu_osabi in xfail, and rename test. * testsuite/gas/elf/section12b.d: Likewise. * testsuite/gas/elf/section16a.d: Likewise. * testsuite/gas/elf/section16b.d: Likewise. ld/ * testsuite/lib/ld-lib.exp (is_generic): Delete. * testsuite/ld-unique/unique.exp: Exclude tic6x.
2020-02-06i386-moss and i386-openbsd ld configAlan Modra2-3/+9
i386-moss is an ELF target needing ldelf.c. x86 openbsd wouldn't even build, so I added entries to do the same as netbsd. Quite likely this isn't ideal but if the openbsd folk don't contribute their changes this is what they get. * configure.tgt (i[3-7]86-*-moss*): Don't clear targ_extra_ofiles. (i[3-7]86-*-openbsd*, x86_64-*-openbsd*): Add.
2020-02-05Disambiguate info_print_optionsAli Tamur1-22/+24
struct info_print_options is defined in both symtab.c and stack.c, which is an ODR violation. So, I am renaming info_print_options and related structs/functions in symtab.c: info_print_options ==> info_vars_funcs_options info_print_options_defs ==> info_vars_funcs_options_defs make_info_print_options_def_group ==> make_info_vars_funcs_options_def_group info_print_command_completer ==> info_vars_funcs_command_completer gdb/ChangeLog: * symtab.c (info_print_options): Rename to info_vars_funcs_options. (info_print_options_defs): Rename to info_vars_funcs_options_defs. (make_info_print_options_def_group): Rename to make_info_vars_funcs_options_def_group. (info_print_command_completer): Rename to info_vars_funcs_command_completer. (info_variables_command): Apply name changes. (info_functions_command): Likewise. (_initialize_symtab): Likewise.
2020-02-06Automatic date update in version.inGDB Administrator1-1/+1
2020-02-05Fix base class function callChristian Biesinger2-2/+7
This was a typo introduced in f6ac5f3d63e03a81c4ff3749aba234961cc9090e. Found by looking through NetBSD's GDB patches: https://github.com/NetBSD/pkgsrc-wip/blob/master/gdb-netbsd/patches/patch-gdb_sparc-nat.h This patch can't be tested on Linux because Linux does not use the sparc_target template. gdb/ChangeLog: 2020-02-05 Christian Biesinger <cbiesinger@google.com> * sparc-nat.h (struct sparc_target) <xfer_partial>: Fix base class function call. Change-Id: I4fa88cbdc365efe89b84cc0619b60db38718d9ce
2020-02-05Fix header guard name in #endif commentChristian Biesinger2-1/+5
Makes the comment match the macro name in the #define/#ifdef. gdb/ChangeLog: 2020-02-05 Christian Biesinger <cbiesinger@google.com> * ppc-nbsd-tdep.h: Fix macro name in #endif comment. Change-Id: If7b2e49e65495b8eb9ed7b6c9a11277579a93a05
2020-02-05RISC-V/Linux/native: Factor out target description determinationMaciej W. Rozycki5-49/+124
In preparation for RISC-V/Linux `gdbserver' support factor out parts of native target description determination code that can be shared between the programs. gdb/ * nat/riscv-linux-tdesc.h: New file. * nat/riscv-linux-tdesc.c: New file, taking code from... * riscv-linux-nat.c (riscv_linux_nat_target::read_description): ... here. * configure.nat <linux> <riscv*>: Add nat/riscv-linux-tdesc.o to NATDEPFILES.
2020-02-05Automatic date update in version.inGDB Administrator1-1/+1
2020-02-05Re: Support fusion for ELFv2 stubsAlan Modra2-4/+8
git commit 397998fc32a3 changed the stubs but not the comments. * elf64-ppc.c (ppc_stub_plt_branch): Match comment with reality.
2020-02-04gdb/fortran: Allow for using Flang in Fortran testingAlok Kumar Sharma2-7/+24
In lib/fortran.exp, in the helper function fortran_int4, there is currently no support for the LLVM Fortran compiler, Flang. As a result we return the default pattern 'unknown' to match against all 4-byte integer types, which causes many tests to fail. The same is true for all of the other helper functions related to finding a suitable type pattern. This commit adds support for Flang. There should be no change when testing with gfortran. gdb/testsuite/ChangeLog: * lib/fortran.exp (fortran_int4): Handle clang. (fortran_int8): Likewise. (fortran_real4): Likewise. (fortran_real8): Likewise. (fortran_complex4): Likewise. (fortran_logical4): Likewise. (fortran_character1): Likewise. Change-Id: Ife0d9828f78361fbd992bf21af746042b017dafc
2020-02-04gdb/sim: Assert that the simulator ptid is not null_ptidAndrew Burgess2-0/+6
We assign the simulator inferior a fake ptid. If this ptid is ever set to null_ptid then we are going to run into problems - the simulator ptid is what we return from gdbsim_target::wait, and this in turn is used to look up the inferior data with a call to find_inferior_pid, which asserts the pid is not 0 (which it is in null_pid). This commit adds an assert that the simulator's fake pid is not null_ptid. There should be no user visible changes after this commit. gdb/ChangeLog: * remote-sim.c (sim_inferior_data::sim_inferior_data): Assert that we don't set the fake simulator ptid to the null_ptid. Change-Id: I6e08effe70e70855aea13c9caf4fd6913d5af56d
2020-02-04[gdb/testsuite] Add note to 'Race detection' entry in READMETom de Vries2-0/+11
Add note to 'Race detection' entry in README about the possibility that check-read1 makes failing tests pass. gdb/testsuite/ChangeLog: 2020-02-04 Tom de Vries <tdevries@suse.de> * README (Race detection): Add note. Change-Id: I12ef2f0ec35abc5a0221585bf30e5f4f0616aa7c
2020-02-04[gdb/testsuite] Make inferior_exited_re match a single lineTom de Vries2-1/+5
The current inferior_exited_re regexp contains a '.*': ... set inferior_exited_re "(?:\\\[Inferior \[0-9\]+ \\(.*\\) exited)" ... This means that while matching a single line: ... $ tclsh % set re "(?:\\\[Inferior \[0-9\]+ \\(.*\\) exited)" (?:\[Inferior [0-9]+ \(.*\) exited) % set line "\[Inferior 1 (process 33) exited\]\n" [Inferior 1 (process 33) exited] % regexp $re $line 1 ... it also matches more than one line: ... $ tclsh % set re "(?:\\\[Inferior \[0-9\]+ \\(.*\\) exited)" (?:\[Inferior [0-9]+ \(.*\) exited) % set line "\[Inferior 1 (process 33) exited\]\n\[Inferior 2 (process 44) exited\]\n" [Inferior 1 (process 33) exited] [Inferior 2 (process 44) exited] % regexp $re $line 1 ... Fix this by using "\[^\n\r\]*" instead of ".*". Build and reg-tested on x86_64-linux. gdb/testsuite/ChangeLog: 2020-02-04 Tom de Vries <tdevries@suse.de> * lib/gdb.exp (inferior_exited_re): Use "\[^\n\r\]*" instead of ".*". Change-Id: Id7b1dcecd8c7fda3d1ab34b4fa1364d301748333
2020-02-04Minor fix for R_PPC_VLE_ADDR20Alan Modra2-1/+6
It is incorrect to "continue" in the ppc_elf_relocate_section reloc processing loop except when editing or deleting relocs. The normal loop processing arranges to write the relocs if shuffling them over a deleted entry. Deleting only happens for debug sections currently and those sections won't contain R_PPC_VLE_ADDR20 relocs, so this patch doesn't fix a bug that would trigger with any normal object file. * elf32-ppc.c (ppc_elf_relocate_section): After applying R_PPC_VLE_ADDR20, goto copy_reloc.
2020-02-04Missing objdump dependency od-elf32_avrAlan Modra4-2/+10
* Makefile.am (CFILES): Add od-elf32_avr.c. * Makefile.in: Regenerate. * po/POTFILES.in: Regenerate.
2020-02-04[gdb/testsuite] Use non-capturing parentheses for inferior_exited_reTom de Vries2-1/+5
The inferior_exited_re regexp uses capturing parentheses by default: ... set inferior_exited_re "(\\\[Inferior \[0-9\]+ \\(.*\\) exited)" ... The parentheses are there to be able to use the expression as an atom, f.i., to have '+' apply to the whole regexp in "${inferior_exited_re}+". But the capturing is not necessary, and it can be confusing because it's not obvious in a regexp using "$inferior_exited_re (bla|bli)" that the first captured expression is in $inferior_exited_re. Replace by non-capturing parentheses. If we still want to capture the expression, we can simply (and more clearly) use "($inferior_exited_re)". Build and reg-tested on x86_64-linux. gdb/testsuite/ChangeLog: 2020-02-04 Tom de Vries <tdevries@suse.de> * lib/gdb.exp (inferior_exited_re): Use non-capturing parentheses. Change-Id: I7640c6129b1ada617424d6a63730d4b119c58ef3
2020-02-03Change ints to bools around thread_info executing/resumedSimon Marchi10-30/+50
Switch thread_info::resumed to bool (thread_info::executing already is a bool), and try to change everything more or less related to that to consistently use true/false instead of 1/0. gdb/ChangeLog: * fork-child.c (gdb_startup_inferior): Use bool instead of int. * gdbthread.h (class thread_info) <resumed>: Likewise. * infrun.c (resume_1): Likewise. (proceed): Likewise. (infrun_thread_stop_requested): Likewise. (stop_all_threads): Likewise. (handle_inferior_event): Likewise. (restart_threads): Likewise. (finish_step_over): Likewise. (keep_going_stepped_thread): Likewise. * linux-nat.c (attach_proc_task_lwp_callback): Likewise. (linux_handle_extended_wait): Likewise. * record-btrace.c (get_thread_current_frame_id): Likewise. * record-full.c (record_full_wait_1): Likewise. * remote.c (remote_target::process_initial_stop_replies): Likewise. * target.c (target_resume): Likewise. * thread.c (set_running_thread): Likewise.
2020-02-04ubsan: d30v: negation of -2147483648Alan Modra4-3/+11
include/ * opcode/d30v.h (struct pd_reg): Make value field unsigned. opcodes/ * d30v-dis.c (print_insn): Make "val" and "opnum" unsigned.
2020-02-03gdb: fix powerpc disassembly testsRogerio Alves5-19/+27
This patch fixes test failures power8 and power9 caused by changes on opcodes: The dissasembler does not emit whitespace for instructions anymore (c2b1c2754526acff8aae2fe8f5a56c2dd11d0b7f) The dissasembler generates extended mnemonics for some instructions instead (aae9718e4d4e8d01dcee22684e82b000203d3e52) The ldmx instruction was removed. This instruction was never implemented (6fbc939cfdbdf02f205c20925583738b0f835e62) gdb/testsuite/ChangeLog: 2020-02-03 Rogerio A. Cardoso <rcardoso@linux.ibm.com> * gdb.arch/powerpc-power8.exp: Delete trailing whitespace of tbegin., tend. instructions. Replace bctar-, bctar+, bctarl-, bctarl+ extended mnemonics when avaliable by bgttar, bnstarl, blttar, bnetarl. * gdb.arch/powerpc-power8.s: Fix comments. Fix instructions binary for blttar, bnetarl. * gdb.arch/powerpc-power9.exp: Delete trailing whitespace of wait instruction. Delete ldmx test. * gdb.arch/powerpc-power9.s: Delete ldmx instruction.
2020-02-03Fixed gdb to print arrays with very high indexesAlok Kumar Sharma5-1/+74
In the function f77_print_array_1, the variable 'i' which holds the index is of datatype 'int', while bounds are of datatype LONGEST. Due to size of int being smaller than LONGEST, the variable 'i' stores incorrect values for high indexes (higher than max limit of int). Due to this issue in sources, two abnormal behaviors are seen while printing arrays with high indexes (please check array-bounds-high.f90) For high indexes with negative sign, gdb prints empty array even if the array has elements. (gdb) p arr $1 = () For high indexes with positive sign, gdb crashes. We have now changed the datatype of 'i' to LONGEST which is same as datatype of bounds. gdb/ChangeLog: * f-valprint.c (f77_print_array_1): Changed datatype of index variable to LONGEST from int to enable it to contain bound values correctly. gdb/testsuite/ChangeLog: * gdb.fortran/array-bounds-high.exp: New file. * gdb.fortran/array-bounds-high.f90: New file. Change-Id: Ie2dce9380a249e634e2684b9c90f225e104369b7
2020-02-04Automatic date update in version.inGDB Administrator1-1/+1
2020-02-03readelf: add missing newlines to error messagesAndreas Schwab2-6/+16
* readelf.c (dump_relocations, dump_relocations) (decode_arm_unwind_bytecode, process_dynamic_section) (get_symbol_visibility, get_alpha_symbol_other): Add newline to error message.
2020-02-03RISC-V/Linux/native: Determine FLEN dynamicallyMaciej W. Rozycki2-26/+97
Fix RISC-V native Linux support to handle a 64-bit FPU (FLEN == 64) with both RV32 and RV64 systems, which is a part of the current Linux ABI for hard-float systems, rather than assuming that (FLEN == XLEN) in target description determination and that (FLEN == 64) in register access. We can do better however and not rely on any particular value of FLEN and probe for it dynamically, by observing that the PTRACE_GETREGSET ptrace(2) call will only accept an exact regset size, and that will reflect FLEN. Therefore iterate over the call in target description determination with a geometrically increasing regset size until a match is marked by a successful ptrace(2) call completion or we run beyond the maximum size we can support. Update register accessors accordingly, using FLEN determined to size the buffer used for NT_PRSTATUS requests and then to exchange data with the regcache. Also handle a glibc bug where ELF_NFPREG is defined in terms of NFPREG, however NFPREG is nowhere defined. gdb/ * riscv-linux-nat.c [!NFPREG] (NFPREG): New macro. (supply_fpregset_regnum, fill_fpregset): Handle regset buffer offsets according to FLEN determined. (riscv_linux_nat_target::read_description): Determine FLEN dynamically. (riscv_linux_nat_target::fetch_registers): Size regset buffer according to FLEN determined. (riscv_linux_nat_target::store_registers): Likewise.
2020-02-03Fix compilation error with musl in gdb/testsuite/gdb.base/fileio.cLukas Durfina2-2/+6
Musl is giving warnings about these includes in this way: warning: #warning redirecting incorrect #include <sys/errno.h> to <errno.h> warning: #warning redirecting incorrect #include <sys/fcntl.h> to <fcntl.h> gdb/testsuite/Changelog: * gdb.base/fileio.c: Remove #include of <sys/errno.h>. Replace #include of <sys/fcntl.h> by <fcntl.h>.
2020-02-03binutils: drop redundant 'program_name' definition (-fno-common)Sergei Trofimovich4-6/+6
* coffdump.c (program_name): Drop redundant definition. * srconv.c (program_name): Likewise * sysdump.c (program_name): Likewise Signed-off-by: Sergei Trofimovich <siarheit@google.com>
2020-02-03ubsan: m32c: left shift of negative valueAlan Modra4-6/+14
cpu/ * m32c.cpu (f-dsp-64-s16): Mask before shifting signed value. opcodes/ * m32c-ibld.c: Regenerate.
2020-02-02section.c: Fix typo in comments (withe -> with)H.J. Lu3-2/+7
* bfd-in2.h: Regenerated. * section.c (SEC_ASSEMBLER_SECTION_ID): Fix a typo in comments.
2020-02-02ELF: Add support for unique section ID to assemblerH.J. Lu34-64/+551
Clang's integrated assembler supports multiple section with the same name: .section .text,"ax",@progbits,unique,1 nop .section .text,"ax",@progbits,unique,2 nop "unique,N" assigns the number, N, as the section ID, to a section. The valid values of the section ID are between 0 and 4294967295. It can be used to distinguish different sections with the same section name. This is useful with -fno-unique-section-names -ffunction-sections. -ffunction-sections by default generates .text.foo, .text.bar, etc. Using the same string can save lots of space in .strtab. This patch adds section_id to bfd_section and reuses the linker internal bit in BFD section flags, SEC_LINKER_CREATED, for assmebler internal use to mark valid section_id. It also updates objdump to compare section pointers if 2 sections comes from the same file since 2 different sections can have the same section name. bfd/ PR gas/25380 * bfd-in2.h: Regenerated. * ecoff.c (bfd_debug_section): Add section_id. * section.c (bfd_section): Add section_id. (SEC_ASSEMBLER_SECTION_ID): New. (BFD_FAKE_SECTION): Add section_id. binutils/ PR gas/25380 * objdump.c (sym_ok): Return FALSE if 2 sections are in the same file with different section pointers. gas/ PR gas/25380 * config/obj-elf.c (section_match): Removed. (get_section): Also match SEC_ASSEMBLER_SECTION_ID and section_id. (obj_elf_change_section): Replace info and group_name arguments with match_p. Also update the section ID and flags from match_p. (obj_elf_section): Handle "unique,N". Update call to obj_elf_change_section. * config/obj-elf.h (elf_section_match): New. (obj_elf_change_section): Updated. * config/tc-arm.c (start_unwind_section): Update call to obj_elf_change_section. * config/tc-ia64.c (obj_elf_vms_common): Likewise. * config/tc-microblaze.c (microblaze_s_data): Likewise. (microblaze_s_sdata): Likewise. (microblaze_s_rdata): Likewise. (microblaze_s_bss): Likewise. * config/tc-mips.c (s_change_section): Likewise. * config/tc-msp430.c (msp430_profiler): Likewise. * config/tc-rx.c (parse_rx_section): Likewise. * config/tc-tic6x.c (tic6x_start_unwind_section): Likewise. * doc/as.texi: Document "unique,N" in .section directive. * testsuite/gas/elf/elf.exp: Run "unique,N" tests. * testsuite/gas/elf/section15.d: New file. * testsuite/gas/elf/section15.s: Likewise. * testsuite/gas/elf/section16.s: Likewise. * testsuite/gas/elf/section16a.d: Likewise. * testsuite/gas/elf/section16b.d: Likewise. * testsuite/gas/elf/section17.d: Likewise. * testsuite/gas/elf/section17.l: Likewise. * testsuite/gas/elf/section17.s: Likewise. * testsuite/gas/i386/unique.d: Likewise. * testsuite/gas/i386/unique.s: Likewise. * testsuite/gas/i386/x86-64-unique.d: Likewise. * testsuite/gas/i386/i386.exp: Run unique and x86-64-unique. ld/ PR gas/25380 * testsuite/ld-i386/pr22001-1c.S: Use "unique,N" in .section directives. * testsuite/ld-i386/tls-gd1.S: Likewise. * testsuite/ld-x86-64/pr21481b.S: Likewise.