1. 20 Sep, 2019 2 commits
  2. 19 Sep, 2019 4 commits
    • Matthew Malcomson's avatar
      [gas][news] NEWS (2.33) note new SVE2 and TME instructions for AArch64 · 21ce4806
      Matthew Malcomson authored
      These NEWS entries had been missed when the instructions were added.
      2019-09-19  Matthew Malcomson  <matthew.malcomson@arm.com>
      	* NEWS: Add SVE2 and TME entries.
    • Tamar Christina's avatar
      AArch64: Fix objdump tests · 7bfaf478
      Tamar Christina authored
      The newly added objdump -S tests check for source line mapping of a static
      variable.  But the test doesn't dump any data sections so this should never
      This changes the test to dump all sections so the source mapping can be found.
      	* testsuite/binutils-all/objdump.exp (objdump -S): Update testcases.
      (cherry picked from commit 4e28d4cc)
    • Alan Modra's avatar
      PR24981, Hit assertion failure in ld/ldlang.c:7504 · 722b8231
      Alan Modra authored
      This fixes a problem with commit 128bf1fe, a patch I made
      2019-08-06.   Apparently it is possible to trigger the assertion I
      added during an LTO bootstrap, something I haven't reproduced.
      However, I did find a case triggered by an odd linker script feature
      that allows a file to be loaded from the script without specifying
      that file on the command line.  Regarding input sections:
        "When you use a file name which is not an archive:file specifier
         and does not contain any wild card characters, the linker will
         first see if you also specified the file name on the linker command
         line or in an INPUT command.  If you did not, the linker will
         attempt to open the file as an input file, as though it appeared on
         the command line."
      So putting
        .foo : { foo.a(*) }
      into a script supposedly extracts foo.a into .foo.  Except it doesn't,
      since this feature is meant for object files only.  Well anyway,
      assuming --whole-archive was given on the command line, foo.a contains
      a -flto object and no other objects involved were -flto then we'll hit
      the assert due to files added like foo.a here *not* having their input
      statement put on the general statement list.  Why these are not put on
      the statement list isn't obvious but it has been that way since commit
      193c5f93 in 1994.
      	PR 24981
      	* ldlang.c (lang_process): Remove assertion.  Comment.
      (cherry picked from commit a19826f4)
    • GDB Administrator's avatar
      Automatic date update in version.in · 0ebd6330
      GDB Administrator authored
  3. 18 Sep, 2019 2 commits
    • H.J. Lu's avatar
      i386: Adjust for new output format from readelf · 758440d4
      H.J. Lu authored
      	PR binutils/24887
      	* testsuite/ld-i386/property-1.r: Adjust for new output format
      	from readelf.
      	* testsuite/ld-i386/property-1a.r: Likewise.
      	* testsuite/ld-i386/property-2.r: Likewise.
      	* testsuite/ld-i386/property-2a.r: Likewise.
      	* testsuite/ld-i386/property-3.r: Likewise.
      	* testsuite/ld-i386/property-3a.r: Likewise.
      	* testsuite/ld-i386/property-4.r: Likewise.
      	* testsuite/ld-i386/property-4a.r: Likewise.
      	* testsuite/ld-i386/property-5.r: Likewise.
      	* testsuite/ld-i386/property-5a.r: Likewise.
      	* testsuite/ld-i386/property-6.r: Likewise.
      	* testsuite/ld-i386/property-7.r: Likewise.
      	* testsuite/ld-i386/property-7a.r: Likewise.
      	* testsuite/ld-i386/property-1.r: Likewise.
      	* testsuite/ld-i386/property-1a.r: Likewise.
      	* testsuite/ld-i386/property-2.r: Likewise.
      	* testsuite/ld-i386/property-2a.r: Likewise.
      	* testsuite/ld-i386/property-3.r: Likewise.
      	* testsuite/ld-i386/property-3a.r: Likewise.
      	* testsuite/ld-i386/property-4.r: Likewise.
      	* testsuite/ld-i386/property-4a.r: Likewise.
      	* testsuite/ld-i386/property-5.r: Likewise.
      	* testsuite/ld-i386/property-5a.r: Likewise.
      	* testsuite/ld-i386/property-6.r: Likewise.
      	* testsuite/ld-i386/property-7.r: Likewise.
      	* testsuite/ld-i386/property-7a.r: Likewise.
      (cherry picked from commit 6715fe29)
    • GDB Administrator's avatar
      Automatic date update in version.in · a58bfdb3
      GDB Administrator authored
  4. 17 Sep, 2019 1 commit
  5. 16 Sep, 2019 2 commits
  6. 15 Sep, 2019 1 commit
  7. 09 Sep, 2019 2 commits
  8. 08 Sep, 2019 2 commits
    • Tom Tromey's avatar
      Truncate long TUI window titles · 8634b462
      Tom Tromey authored
      If a TUI window has a long title, it can overflow the title line.
      This changes the TUI to use just the tail part of the title in this
      2019-09-08  Tom Tromey  <tom@tromey.com>
      	* tui/tui-wingeneral.c (box_win): Truncate long window titles.
      2019-09-08  Tom Tromey  <tom@tromey.com>
      	* gdb.tui/resize.exp: Remove setup_xfail.
      	* gdb.tui/regs.exp: Remove setup_xfail.
      	* gdb.tui/basic.exp: Remove setup_xfail.
    • GDB Administrator's avatar
      Automatic date update in version.in · b26b24e0
      GDB Administrator authored
  9. 07 Sep, 2019 2 commits
    • Simon Marchi's avatar
      Change lookup_symbol's block_index parameter type to block_enum · c7f839cb
      Simon Marchi authored
      The only two values valid to pass to the block_index parameter of
      quick_symbol_functions::lookup_symbol are GLOBAL_BLOCK and STATIC_BLOCK,
      part of enum block_enum.  Change the type of that parameter to
      Change also the block_index field of dw2_symtab_iterator in the same
      way..  This makes it consistent with dw2_debug_names_iterator, which
      already uses block_enum for its block_index field.
      This is a follow-up to this thread:
      	* dwarf2read.c (struct dw2_symtab_iterator) <block_index>:
      	Change type to gdb::optional<block_enum>.
      	(dw2_symtab_iter_init): Change block_index parameter type
      	to gdb::optional<block_enum>.
      	(dw2_lookup_symbol): Change block_index parameter
      	type to block_enum.c
      	(dw2_debug_names_lookup_symbol): Likewise.
      	* psymtab.c (psym_lookup_symbol): Likewise.
      	* symfile-debug.c (debug_qf_lookup_symbol): Likewise.
      	* symfile.h (struct quick_symbol_functions) <lookup_symbol>:
    • GDB Administrator's avatar
      Automatic date update in version.in · deccd150
      GDB Administrator authored
  10. 06 Sep, 2019 5 commits
    • David Blaikie's avatar
      un-XFAIL under Clang tests using labels · 736b0f76
      David Blaikie authored
      	* gdb.base/label.exp: un-XFAIL label related tests under Clang.
      	* gdb.cp/cplabel.exp: Ditto.
      	* gdb.linespec/ls-errs.exp: Ditto.
    • Christian Biesinger's avatar
      Change int to bool for the relocate_* functions · ead0e69a
      Christian Biesinger authored
      These parameters are only used as bools. This also
      renames "flag" to "relocatable" to make it clearer
      what it does.
      2019-09-06  Christian Biesinger  <cbiesinger@google.com>
      	* defs.h (relocate_gdb_directory): Change int to bool in
      	signature and rename flag to relocatable.
      	* main.c (relocate_path): Likewise.
      	(relocate_gdb_directory): Likewise.
    • Alan Modra's avatar
      beos.em qsort predicate tidy · f5c3a9e3
      Alan Modra authored
      lang_input_section_type** is better than lang_statement_union_type**
      here since that is in fact the type passed to the qsort predicate,
      and I think it's worth factoring out the common indirections.
      	* emultempl/beos.em (sort_by_file_name): Use appropriate
      	intermediary variables.
      	(sort_by_section_name): Likewise.
    • Alan Modra's avatar
      bfd_get_filename · b16c44de
      Alan Modra authored
      This macro says:
      /* Cast from const char * to char * so that caller can assign to
         a char * without a warning.  */
      I reckon that isn't such a good idea since it can result in char*
      variables where const char* is appropriate.  Not very many places
      need the char* cast.
      	* aout-target.h (object_p): Formatting.
      	* bfd-in.h (bfd_get_filename): Don't cast to char*.
      	* corefile.c (generic_core_file_matches_executable_p): Constify
      	variables and remove cast.
      	* bfd-in2.h: Regenerate.
      	* nm.c (print_object_filename_bsd, print_object_filename_sysv),
      	(print_object_filename_posix, print_archive_filename_bsd),
      	(print_archive_filename_sysv, print_archive_filename_posix),
      	(print_archive_member_bsd, print_archive_member_sysv),
      	(print_archive_member_posix): Constify parameter.
      	(struct output_fns <print_object_filename, print_archive_filename>),
      	(<print_archive_member>): Likewise.
      	* objcopy.c (copy_archive): Add cast for make_tempdir.
      	* emultempl/elf32.em (gld${EMULATION_NAME}_search_needed): Constify
      	* emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
      	* emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
      	* coffread.c (coff_symfile_read): Constify filename variable.
      	* dbxread.c (dbx_symfile_init, coffstab_build_psymtabs),
      	(elfstab_build_psymtabs, stabsect_build_psymtabs): Likewise.
      	* gdb_bfd.c (gdb_bfd_close_or_warn): Likewise.
      	* solib.c (reload_shared_libraries_1): Likewise.
      	* symfile.c (reread_symbols): Likewise.
      	* solib-aix.c (solib_aix_bfd_open): Add cast for xfree of filename.
      	* solib-darwin.c (darwin_bfd_open): Likewise.
      	* symfile-mem.c (symbol_file_add_from_memory): Likewise.
      	* sim-if.c (sim_open): Constify filename variable.
    • GDB Administrator's avatar
      Automatic date update in version.in · 6ade8373
      GDB Administrator authored
  11. 05 Sep, 2019 7 commits
    • Eric Botcazou's avatar
      Fix PR ld/24574 · de07a745
      Eric Botcazou authored
      This restores a line that has been dropped when the auto-import feature
      of the PE-COFF linker was overhauled about one year.  It is necessary
      for GDB to properly resolve extern symbol in DLLs.
      	* pe-dll.c (pe_find_data_imports): Replace again the original name
      	of the undefined symbol with the __imp_ prefixed one after it is
    • Tom de Vries's avatar
      [gdb/testsuite] Restore breakpoint command in ui-redirect.exp · 30331a6c
      Tom de Vries authored
      In gdb.base/ui-redirect.exp, the "save breakpoint" command is used to write
      the current breakpoints to a file, but the actual output is not verified.
      Consequently, the test has regressed in that the "print 1" command associated
      with a breakpoint on main is removed by a subsequent runto_main, which first
      deletes all breakpoints:
      (gdb) break main
      Breakpoint 1 at 0x4004d7: file start.c, line 34.
      (gdb) commands
      Type commands for breakpoint(s) 1, one per line.
      End with a line saying just "end".
      > PASS: gdb.base/ui-redirect.exp: commands
      print 1
      > PASS: gdb.base/ui-redirect.exp: print 1
      (gdb) PASS: gdb.base/ui-redirect.exp: end
      delete breakpoints
      Delete all breakpoints? (y or n) y
      and consequently the "save breakpoint" output is missing the breakpoint
      command for main:
       break main
      -  commands
      -    print 1
      -  end
       break foo
       break bar
      Fix this by replacing "gdb_breakpoint main" with runto_main, and verifying the
      "save breakpoints" output.
      Tested on x86_64-linux.
      2019-09-05  Tom de Vries  <tdevries@suse.de>
      	* lib/gdb.exp (cmp_file_string): New proc.
      	* gdb.base/ui-redirect.exp: Replace "gdb_breakpoint main" with
      	runto_main.  Verify save breakpoints output.
    • Alan Modra's avatar
      PowerPC warning on symbol+offset@got · e47d413a
      Alan Modra authored
      	* config/tc-ppc.c (ppc_elf_suffix): Display the relocation
      	operator on GOT reloc warnings/errors.
    • Alan Modra's avatar
      PowerPC64 GOT_PCREL relocs · 133a1f60
      Alan Modra authored
      PC-relative relocs typically use the addend in adjusting what they are
      relative to.  For example:
      	bcl 20,31,1f
      1:	mflr 12
      	addi 12,12,xxx-1b
      generates "R_PPC64_REL16 xxx+0x4" for the addi (when little-endian).
      The addend reflects the fact that you want the offset relative to the
      previous insn not the current one in this case.
      So the question is, will we ever want to do something like that for an
      instruction using R_PPC64_GOT_PCREL34?  I thought so at the time I
      first implemented support in ld but at the time I think the hardware
      was possibly going to support pcrel+offset+reg addressing.  In which
      case you might want something like:
      	pld 3,sym-big_offset@got@pcrel(2)
      which would be a way of supporting more than 8G offsets from code to
      the GOT.  We could do the same with
      	pla 9,sym-big_offset@got@pcrel
      	ldx 3,9,2
      However, this is really a poor version of TOC-pointer relative code.
      So let's go with an addend on R_PPC64_GOT_PCREL34 meaning that
      sym+addend should be put in a GOT entry, and the relocation calculate
      the pc-relative offset to that GOT entry.
      Note that this is an extension to the ABI, which says (by the
      expression given for GOT relocs) that non-zero addends on GOT and PLT
      relocs are ignored.  This is true for all GOT/PLT relocs, not just the
      pcrel ones.
      	* elf64-ppc.c (ppc64_elf_check_relocs): Interpret an addend in
      	GOT_PCREL and PLT_PCREL relocs as affecting the value stored
      	in the GOT/PLT entry rather than affecting the offset to that
      	GOI/PLT entry.
      	(ppc64_elf_edit_toc, ppc64_elf_relocate_section): Likewise.
    • Alan Modra's avatar
      R_PPC64_PCREL_OPT · 77486630
      Alan Modra authored
      The loads and stores handled in the second instruction of a sequence
      marked by R_PPC64_PCREL_OPT may be a prefix instruction.  For example:
       pld ra,symbol@got@pcrel
       pld rt,off(ra)
       .reloc 0b-8,R_PPC64_PCREL_OPT,(.-8)-(0b-8)
      can be optimised to
       pld rt,symbol+off@pcrel
      	* elf64-ppc.c (xlate_pcrel_opt): Handle prefix loads and stores
      	in second instruction.
      	(ppc64_elf_relocate_section): Likewise.
    • Alan Modra's avatar
      PR24955, libbfd terminating program on out of memory · 89bdc77e
      Alan Modra authored
      This patch fixes the worst of the cases where libbfd might terminate
      a program due to calling xstrdup or xmalloc.  I've also fixed some
      error paths that didn't clean up properly.
      	PR 24955
      	* libbfd-in.h (bfd_strdup): New inline function.
      	* archive.c (_bfd_get_elt_at_filepos): Use bfd_strdup.  Close
      	bfd on error.
      	* elfcode.h (_bfd_elf_bfd_from_remote_memory): Use bfd_strdup.
      	* opncls.c (bfd_fopen): Use bfd_strdup.  Close fd and stream
      	on error.
      	(bfd_openstreamr): Use bfd_strdup.
      	(bfd_openr_iovec, bfd_openw, bfd_create): Likewise.
      	* plugin.c (try_load_plugin): Use bfd_malloc.
      	* libbfd.h: Regenerate.
    • GDB Administrator's avatar
      Automatic date update in version.in · 809f9153
      GDB Administrator authored
  12. 04 Sep, 2019 2 commits
    • Philippe Waroquiers's avatar
      Avoid expect's buffer overflow in info-var.exp test. · 98b0ebab
      Philippe Waroquiers authored
      Once the executable is started, info variables can show thousands
      of variables belonging to glibc (see below).
      This long list of variables then causes the test to fail, due
      to expect's buffer overflow:
        Running /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var.exp ...
        ERROR: internal buffer is full.
        ERROR: internal buffer is full.
        ERROR: internal buffer is full.
      Fix this by testing 'info variables' without running the executable.
      gdb ./info-var
      Reading symbols from ./info-var...
      (gdb) |info variables|wc
           27      54     971
      (gdb) start
      Temporary breakpoint 1 at 0x1129: file /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var-f1.c, line 23.
      Starting program: /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/outputs/gdb.base/info-var/info-var
      Temporary breakpoint 1, main ()
          at /bd/home/philippe/gdb/git/build_binutils-gdb/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/info-var-f1.c:23
      23	  return global_var + get_offset() + f1_var;
      (gdb) |info variables|wc
         4334   14581  130738
      2019-09-04  Philippe Waroquiers  <philippe.waroquiers@skynet.be>
      	* gdb.base/info-var.exp: Test info variables without running
      	to main, to avoid expect's buffer overflow.
    • GDB Administrator's avatar
      Automatic date update in version.in · ee6d9557
      GDB Administrator authored
  13. 03 Sep, 2019 5 commits
    • Andrew Burgess's avatar
      gdb: Handle missing domain types in: maintenance print psymbols · 06ff036e
      Andrew Burgess authored
      Some domain_enum values were not handled in print_partial_symbols
      which means that 'maintenance print psymbols' would print '<invalid
      domain>' when it shouldn't have.
      	* psymtab.c (print_partial_symbols): Handle missing domain_enum
    • Tom Tromey's avatar
      Handle biased types · 4e962e74
      Tom Tromey authored
      In Ada, the programmer can request that a range type with a non-zero
      base be stored in the minimal number of bits required for the range.
      This is done by biasing the values; so, for example, a range of -7..-4
      may be stored as two bits with a bias of -7.
      This patch implements this for gdb.  It is done by adding a bias to
      struct range_bounds and then adjusting a few spots to handle this.
      The test case is written to use -fgnat-encodings=minimal, but a future
      compiler patch will change the compiler to emit DW_AT_GNU_bias with
      -fgnat-encodings=gdb.  It seemed good to get the gdb patch in first.
      Tested on x86-64 Fedora 29; plus a variety of targets using AdaCore's
      internal test suite.
      2019-09-03  Tom Tromey  <tromey@adacore.com>
      	* ada-valprint.c (ada_val_print_num): Don't recurse for range
      	(has_negatives): Unbias a range type bound.
      	* dwarf2read.c (read_subrange_type): Handle DW_AT_GNU_bias.
      	* gdbtypes.c (operator==): Handle new field.
      	(create_range_type): Add "bias" parameter.
      	(create_static_range_type, resolve_dynamic_range): Update.
      	* gdbtypes.h (struct range_bounds) <bias>: New member.
      	(create_range_type): Add bias parameter.
      	* printcmd.c (print_scalar_formatted): Unbias range types.
      	* value.c (unpack_long): Unbias range types.
      	(pack_long): Bias range types.
      2019-09-03  Tom Tromey  <tromey@adacore.com>
      	* gdb.ada/bias.exp: New file.
      	* gdb.ada/bias/bias.adb: New file.
      	* gdb.ada/print_chars.exp: Add regression test.
      	* gdb.ada/print_chars/foo.adb (My_Character): New type.
      	(MC): New variable.
    • Nick Clifton's avatar
      Fix buffer underrun bug in the TI C30 disassembler. · f44b758d
      Nick Clifton authored
      	PR 24961
      	* tic30-dis.c (get_indirect_operand): Check for bufcnt being
      	greater than zero before indexing via (bufcnt -1).
    • Nick Clifton's avatar
      Fix a potential buffer overrun in the MMIX disassembler when processing a corrupt input file. · 1e4b5e7d
      Nick Clifton authored
      	PR 24958
      	* mmix-dis.c (MAX_REG_NAME_LEN): Define.
      	(MAX_SPEC_REG_NAME_LEN): Define.
      	(struct mmix_dis_info): Use defined constants for array lengths.
      	(get_reg_name): New function.
      	(get_sprec_reg_name): New function.
      	(print_insn_mmix): Use new functions.
    • GDB Administrator's avatar
      Automatic date update in version.in · 6591bf01
      GDB Administrator authored
  14. 02 Sep, 2019 3 commits
    • Alan Hayward's avatar
      Check arguments for all probes before using them · d90b8f26
      Alan Hayward authored
      There is a long standing bug in the Arm toolchain where invalid
      stap probes get created due to the probes referring to symbols which
      have been resolved away.
      More details are here:
      When these invalid probes are present, GDB will create the breakpoints
      and then fail to stop. The errors are only spotted the first time
      GDB stops, which is too late.
      The solution is to ensure the arguments for all the probes are
      resolved before using them.
      This fixes >100 timeouts when running break-interp.exp when using
      bad probes.
      	* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Check all
      	probe arguments.
    • Alan Hayward's avatar
      Use gdbarch for probe::get_argument_count · fe01123e
      Alan Hayward authored
      The probe function get_argument_count does not need a frame, only
      the current gdbarch.  Switch the code to pass gdbarch instead.
      No functional changes.
      	* break-catch-throw.c (fetch_probe_arguments): Use gdbarch.
      	* dtrace-probe.c (dtrace_probe::get_argument_count): Likewise.
      	* probe.c (probe_safe_evaluate_at_pc) (compute_probe_arg)
      	(compile_probe_arg): Likewise.
      	* probe.h (get_argument_count): Likewise.
      	* solib-svr4.c (solib_event_probe_action): Likewise.
      	* stap-probe.c (stap_probe::get_argument_count): Likewise.
    • Alan Hayward's avatar
      Refactor svr4_create_solib_event_breakpoints · e661ef01
      Alan Hayward authored
      Move the bulk of svr4_create_solib_event_breakpoints into a new
      function to simplify the logic. No functional changes.
      	* solib-svr4.c (svr4_find_and_create_probe_breakpoints): Move
      	code to here...
      	(svr4_create_solib_event_breakpoints): ...from here.