1. Jul 02, 2020
    • H.J. Lu's avatar
      x86: Add SwapSources · c2ecccb3
      H.J. Lu authored
      We check register-only source operand to decide if two source operands of
      VEX encoded instructions should be swapped.  But source operands in AMX
      instructions with two source operands swapped are all register-only
      operand.  Add SwapSources to indicate two source operands should be
      swapped.
      
      gas/
      
      	* config/tc-i386.c (build_modrm_byte): Check vexswapsources to
      	swap two source operands.
      
      opcodes/
      
      	* i386-gen.c (opcode_modifiers): Add VexSwapSources.
      	* i386-opc.h (VexSwapSources): New.
      	(i386_opcode_modifier): Add vexswapsources.
      	* i386-opc.tbl: Add VexSwapSources to BMI2 and BMI instructions
      	with two source operands swapped.
      	* i386-tbl.h: Regenerated.
      c2ecccb3
    • Nick Clifton's avatar
      Skip fill-1 gas test for MeP targets. · f436f38e
      Nick Clifton authored
      	* testsuite/gas/all/fill-1.d: Skip for MeP targets.
      f436f38e
    • Alex Coplan's avatar
      aarch64: Fix segfault on unicode symbols · f405494f
      Alex Coplan authored
      This patch fixes a segfault which occurs when the AArch64 backend parses
      a symbol operand that begins with a register name and ends with a
      unicode byte (byte value > 127).
      
      For example, the following input causes the crash:
      
      x0é: udf x0é
      
      gas/ChangeLog:
      
      2020-07-02  Alex Coplan  <alex.coplan@arm.com>
      
      	* config/tc-aarch64.c (reg_name_p): Fix cast so that we don't
      	segfault on negative chars.
      	* testsuite/gas/aarch64/reglike-label-unicode-segv.d: New test.
      	* testsuite/gas/aarch64/reglike-label-unicode-segv.s: Input.
      f405494f
    • Simon Marchi's avatar
      gdb: remove unused fetch_inferior_event and inferior_event_handler parameters · b1a35af2
      Simon Marchi authored
      I noticed that fetch_inferior_event receives the client_data parameter
      from its caller, inferior_event_handler, but doesn't actually need it.
      This patch removes it.  In turn, inferior_event_handler doesn't use its
      parameter, so remove it too.
      
      The `data` argument used when registering
      remote_async_inferior_event_handler is changed to NULL, to avoid
      confusion.  It could make people think that the value passed is used
      somewhere, when in fact it's not.
      
      gdb/ChangeLog:
      
      	* inf-loop.c (inferior_event_handler): Remove client_data param.
      	* inf-loop.h (inferior_event_handler): Likewise.
      	* infcmd.c (step_1): Adjust.
      	* infrun.c (proceed): Adjust.
      	(fetch_inferior_event): Remove client_data param.
      	(infrun_async_inferior_event_handler): Adjust.
      	* infrun.h (fetch_inferior_event): Remove `void *` param.
      	* linux-nat.c (handle_target_event): Adjust.
      	* record-btrace.c (record_btrace_handle_async_inferior_event):
      	Adjust.
      	* record-full.c (record_full_async_inferior_event_handler):
      	Adjust.
      	* remote.c (remote_async_inferior_event_handler): Adjust.
      
      Change-Id: I3c2aa1eb0ea3e0985df096660d2dcd794674f2ea
      b1a35af2
    • Nick Clifton's avatar
      Change readelf's display of symbol names (when not in --wide mode) so that if... · 0942c7ab
      Nick Clifton authored
      Change readelf's display of symbol names (when not in --wide mode) so that if they are going to be truncated then "[...]" is displayed at the end.  Add a comment line option to disable this enhancement and restore the old behaviour.
      
      	PR 26028
      binutils* readelf.c (print_symbol): Handle truncation of symbol names.
      	(options): Add -T/--silent-truncation option.
      	(parse_args): Handle the option.
      	(print_dynamic_symbol): Correct calculation of width available to
      	display symbol name.
      	* doc/binutils.texi: Document the -T option to readelf.
      	* NEWS: Mention the new feature.
      
      gas	* testsuite/gas/ia64/group-2.d: Add -T option to readelf
      	command line.
      	* testsuite/gas/ia64/unwind.d: Likewise.
      	* testsuite/gas/mmix/bspec-1.d: Likewise.
      	* testsuite/gas/mmix/bspec-2.d: Likewise.
      	* testsuite/gas/mmix/comment-1.d: Likewise.
      	* testsuite/gas/tic6x/scomm-directive-4.d: Likewise.
      
      ld	* testsuite/ld-powerpc/powerpc.exp: Add -T option to readelf
      	command line when running some tests.
      	* testsuite/ld-arm/arm-elf.exp: Likewise.
      	* testsuite/ld-mips-elf/mips-elf.exp: Likewise.
      	* testsuite/ld-mmix/local1.d: Likewise.
      	* testsuite/ld-mmix/local3.d: Likewise.
      	* testsuite/ld-mmix/local5.d: Likewise.
      	* testsuite/ld-mmix/local7.d: Likewise.
      	* testsuite/ld-powerpc/powerpc.exp: Likewise.
      0942c7ab
    • Tom Tromey's avatar
      Make tui_win_info::name pure virtual · 1cdf9e33
      Tom Tromey authored
      It seemed cleaner to me for tui_win_info::name to be pure virtual.
      This meant adding a name method to the locator window; but this too
      seems like an improvement.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-data.h (struct tui_win_info) <name>: Now pure virtual.
      	* tui/tui-stack.h (struct tui_locator_window) <name>: New method.
      1cdf9e33
    • Tom Tromey's avatar
      Remove tui_gen_win_info · 32c1e210
      Tom Tromey authored
      This merges the tui_gen_win_info base class with tui_win_info;
      renaming the resulting class to tui_win_info.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-wingeneral.c (tui_win_info::refresh_window): Move from
      	tui_gen_win_info.
      	(tui_win_info::make_window): Merge with
      	tui_gen_win_info::make_window.
      	(tui_win_info::make_visible): Move from tui_gen_win_info.
      	* tui/tui-win.c (tui_win_info::max_width): Move from
      	tui_gen_win_info.
      	* tui/tui-layout.h (class tui_layout_window) <m_window>: Change
      	type.
      	<window_factory>: Likewise.
      	* tui/tui-layout.c (tui_win_info::resize): Move from
      	tui_gen_win_info.
      	(make_standard_window): Change return type.
      	(get_locator_window, tui_get_window_by_name): Likewise.
      	(tui_layout_window::apply): Remove a cast.
      	* tui/tui-data.h (MIN_WIN_HEIGHT): Move earlier.
      	(struct tui_win_info): Merge with tui_gen_win_info.
      	(struct tui_gen_win_info): Remove.
      32c1e210
    • Tom Tromey's avatar
      Derive tui_locator_window from tui_win_info · a30cb6da
      Tom Tromey authored
      tui_locator_window is the last remaining concrete child class of
      tui_gen_win_info.  It seems a bit cleaner to me to flatten the
      hierarchy a bit; this patch prepares for that by changing
      tui_locator_window to derive from tui_win_info.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-stack.h (struct tui_locator_window): Derive from
      	tui_win_info.
      	<do_scroll_horizontal, do_scroll_vertical>: New methods.
      	<can_box>: New method.
      a30cb6da
    • Tom Tromey's avatar
      Remove body of tui_locator_window constructor · 1eb2161f
      Tom Tromey authored
      The tui_locator_window constructor initializes the first character of
      two of its members.  However, this is actually an error, since these
      were changed to be std::string.  This removes the erroneous code.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-stack.h (struct tui_locator_window): Remove body.
      1eb2161f
    • Tom Tromey's avatar
      Don't derive tui_data_item_window from tui_gen_win_info · 7134f2eb
      Tom Tromey authored
      There's no deep reason that tui_data_item_window should derive from
      tui_gen_win_info -- it currently uses a curses window to render, but
      that isn't truly needed, and it adds some hacks to other parts of the
      TUI.
      
      This patch changes tui_data_item_window so that it doesn't have a base
      class, and updates the register window.  This simplifies the code and
      enables a subsequent cleanup.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-regs.c (tui_data_window::display_registers_from)
      	(tui_data_window::display_registers_from)
      	(tui_data_window::first_data_item_displayed)
      	(tui_data_window::delete_data_content_windows): Update.
      	(tui_data_window::refresh_window, tui_data_window::no_refresh):
      	Remove.
      	(tui_data_window::check_register_values): Update.
      	(tui_data_item_window::rerender): Add parameters.  Update.
      	(tui_data_item_window::refresh_window): Remove.
      	* tui/tui-data.h (struct tui_gen_win_info) <no_refresh>: No longer
      	virtual.
      	* tui/tui-regs.h (struct tui_data_item_window): Don't derive from
      	tui_gen_win_info.
      	<refresh_window, max_height, min_height>: Remove.
      	<rerender>: Add parameters.
      	<x, y, visible>: New members.
      	(struct tui_data_window) <refresh_window, no_refresh>: Remove.
      	<m_item_width>: New member.
      7134f2eb
    • Tom Tromey's avatar
      Rename tui_data_item_window::item_no · 22b7b041
      Tom Tromey authored
      tui_data_item_window::item_no is misnamed -- it only can be used for a
      register, but it references a "display" number as well.  (Based on
      other comments I've seen in the past -- most since deleted -- I think
      there were plans at one point to display variables in this window as
      well.  However, this was never implemented.)
      
      This patch renames this member to be more correct.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-regs.c (tui_data_window::show_register_group)
      	(tui_data_window::check_register_values): Update.
      	* tui/tui-regs.h (struct tui_data_item_window) <regno>: Rename
      	from item_no.
      22b7b041
    • Tom Tromey's avatar
      Remove useless "if' from tui-regs.c · c9753adb
      Tom Tromey authored
      tui_data_window::show_register_group had a useless "if" -- the
      condition could never be false.  This patch removes it.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-regs.c (tui_data_window::show_register_group): Remove
      	useless "if".
      c9753adb
    • Tom Tromey's avatar
      Remove tui_data_window::name · 9ab26b4a
      Tom Tromey authored
      The "name" member of tui_data_window was set, but never used.  This
      removes it.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-regs.c (tui_data_window::show_register_group): Update.
      	* tui/tui-regs.h (struct tui_data_item_window) <name>: Remove.
      9ab26b4a
    • Tom Tromey's avatar
      Move some code out of tui-data.h · e555083f
      Tom Tromey authored
      This moves some code out of tui-data.h, to more closely related
      places.  Some unused forward declarations are also removed.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-stack.c (SINGLE_KEY): Move from tui-data.h
      	* tui/tui-winsource.h (enum tui_line_or_address_kind)
      	(struct tui_line_or_address): Move from tui-data.h.
      	* tui/tui-win.c (DEFAULT_TAB_LEN): Move from tui-data.h.
      	* tui/tui-data.h (DEFAULT_TAB_LEN): Move to tui-win.c.
      	(tui_cmd_window, tui_source_window_base, tui_source_window)
      	(tui_disasm_window): Don't declare.
      	(enum tui_line_or_address_kind, struct tui_line_or_address): Move
      	to tui-winsource.h.
      	(SINGLE_KEY): Move to tui-stack.c.
      e555083f
    • Tom Tromey's avatar
      Remove tui_expand_tabs · 7a02bab7
      Tom Tromey authored
      tui_expand_tabs only has a single caller.  This patch removes this
      function, in favor of a tab-expanding variant of string_file.  This
      simplifies the code somewhat.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-regs.h (struct tui_data_item_window) <content>: Now a
      	std::string.
      	* tui/tui-regs.c (class tab_expansion_file): New.
      	(tab_expansion_file::write): New method.
      	(tui_register_format): Change return type.  Use
      	tab_expansion_file.
      	(tui_get_register, tui_data_window::display_registers_from)
      	(tui_data_item_window::rerender): Update.
      	* tui/tui-io.h (tui_expand_tabs): Don't declare.
      	* tui/tui-io.c (tui_expand_tabs): Remove.
      7a02bab7
    • Tom Tromey's avatar
      Use complete_on_enum in tui_reggroup_completer · ea68593b
      Tom Tromey authored
      tui_reggroup_completer has an "XXXX" comment suggesting the use of
      complete_on_enum.  This patch implements this suggestion.
      
      gdb/ChangeLog
      2020-07-01  Tom Tromey  <tom@tromey.com>
      
      	* tui/tui-regs.c (tui_reggroup_completer): Use complete_on_enum.
      ea68593b
    • GDB Administrator's avatar
      Automatic date update in version.in · 0ac05360
      GDB Administrator authored
      0ac05360
    • Fangrui Song's avatar
      Recognize -1 as a tombstone value in .debug_line · a8caed5d
      Fangrui Song authored
      LLD from 11 onwards (https://reviews.llvm.org/D81784) uses -1 to
      represent a relocation in .debug_line referencing a discarded symbol.
      Recognize -1 to fix gdb.base/break-on-linker-gcd-function.exp when the
      linker is a newer LLD.
      
      gdb/ChangeLog:
      
      	* dwarf2/read.c (lnp_state_machine::check_line_address): Test -1.
      a8caed5d
  2. Jul 01, 2020
  3. Jun 30, 2020
    • H.J. Lu's avatar
      Remove x86 NaCl target support · bbd19b19
      H.J. Lu authored
      NaCl has been deprecated:
      
      https://developer.chrome.com/native-client/migration
      
      and NaCl will completely disappear in 2021:
      
      https://lists.llvm.org/pipermail/llvm-dev/2020-April/141107.html
      
      Remove x86 NaCl target support from bfd, binutils, gas and ld.
      
      bfd/
      
      	* archures.c (bfd_mach_i386_nacl): Removed.
      	(bfd_mach_i386_i386_nacl): Likewise.
      	(bfd_mach_x86_64_nacl): Likewise.
      	(bfd_mach_x64_32_nacl): Likewise.
      	* config.bfd: Remove *-*-nacl* targets.
      	* configure.ac: Remove x86 NaCl target vectors.
      	* cpu-i386.c (bfd_arch_i386_onebyte_nop_fill): Removed.
      	(bfd_x64_32_nacl_arch): Likewise.
      	(bfd_x86_64_nacl_arch): Likewise.
      	(bfd_i386_nacl_arch): Likewise.
      	(bfd_x64_32_arch_intel_syntax): Updated.
      	* elf32-i386.c: Don't include "elf-nacl.h".
      	(elf_i386_nacl_plt): Removed.
      	(elf_i386_nacl_plt0_entry): Likewise.
      	(elf_i386_nacl_plt_entry): Likewise.
      	(elf_i386_nacl_pic_plt0_entry): Likewise.
      	(elf_i386_nacl_pic_plt_entry): Likewise.
      	(elf_i386_nacl_eh_frame_plt): Likewise.
      	(elf_i386_nacl_plt): Likewise.
      	(elf32_i386_nacl_elf_object_p): Likewise.
      	(elf_i386_get_synthetic_symtab): Updated.
      	(elf_i386_link_setup_gnu_properties): Likewise.
      	* elf64-x86-64.c: Don't include "elf-nacl.h".
      	(elf_x86_64_nacl_plt): Removed.
      	(elf64_x86_64_nacl_elf_object_p): Likewise.
      	(elf_x86_64_nacl_plt0_entry): Likewise.
      	(elf_x86_64_nacl_plt_entry): Likewise.
      	(elf_x86_64_nacl_eh_frame_plt): Likewise.
      	(elf_x86_64_nacl_plt): Likewise.
      	(elf32_x86_64_nacl_elf_object_p): Likewise.
      	(elf_x86_64_get_synthetic_symtab): Updated.
      	(elf_x86_64_link_setup_gnu_properties): Likewise.
      	* elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Likewise.
      	* targets.c: Remove x86 NaCl target vectors.
      	* bfd-in2.h: Regenerated.
      	* configure: Likewise.
      
      binutils/
      
      	* NEWS: Mention x86 NaCl target support removal.
      	* dwarf.c (init_dwarf_regnames_by_bfd_arch_and_mach): Remove
      	x86 NaCl target support.
      	* testsuite/binutils-all/elfedit-1.d: Likewise.
      	* testsuite/binutils-all/i386/i386.exp: Likewise.
      	* testsuite/binutils-all/x86-64/objects.exp: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494a-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494a.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494b-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494b.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494c-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494c.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494d-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494d.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494e-x32.d: Likewise.
      	* testsuite/binutils-all/x86-64/pr23494e.d: Likewise.
      	* testsuite/binutils-all/x86-64/x86-64.exp: Likewise.
      
      gas/
      
      	* NEWS: Mention x86 NaCl target support removal.
      	* config/tc-i386.c: Remove x86 NaCl target support.
      	* config/tc-i386.h: Likewise.
      	* configure.tgt: Likewise.
      	* testsuite/gas/i386/i386.exp: Likewise.
      	* testsuite/gas/i386/iamcu-1.d: Likewise.
      	* testsuite/gas/i386/iamcu-2.d: Likewise.
      	* testsuite/gas/i386/iamcu-3.d: Likewise.
      	* testsuite/gas/i386/iamcu-4.d: Likewise.
      	* testsuite/gas/i386/iamcu-5.d: Likewise.
      	* testsuite/gas/i386/k1om.d: Likewise.
      	* testsuite/gas/i386/l1om.d: Likewise.
      
      ld/
      
      	* Makefile.am (ALL_EMULATION_SOURCES): Remove eelf_i386_nacl.c,
      	eelf32_x86_64_nacl.c, eelf_x86_64_nacl.c.
      	Remove x86 NaCl dep files.
      	* NEWS: Mention x86 NaCl target support removal.
      	* configure.tgt: Remove x86 NaCl target support.
      	* testsuite/ld-elf/binutils.exp: Likewise.
      	* testsuite/ld-elf/elf.exp: Likewise.
      	* testsuite/ld-elfvers/vers.exp: Likewise.
      	* testsuite/ld-i386/align-branch-1.d: Likewise.
      	* testsuite/ld-i386/export-class.exp: Likewise.
      	* testsuite/ld-i386/i386.exp: Likewise.
      	* testsuite/ld-i386/load1.d: Likewise.
      	* testsuite/ld-i386/pie1.d: Likewise.
      	* testsuite/ld-i386/pr12570a.d: Likewise.
      	* testsuite/ld-i386/pr12570b.d: Likewise.
      	* testsuite/ld-i386/pr19636-1d.d: Likewise.
      	* testsuite/ld-i386/pr19636-1l.d: Likewise.
      	* testsuite/ld-i386/pr19636-2c.d: Likewise.
      	* testsuite/ld-i386/pr19636-2d.d: Likewise.
      	* testsuite/ld-i386/pr19636-2e.d: Likewise.
      	* testsuite/ld-i386/pr20244-1a.d: Likewise.
      	* testsuite/ld-i386/pr20244-1b.d: Likewise.
      	* testsuite/ld-i386/pr20244-2a.d: Likewise.
      	* testsuite/ld-i386/pr20244-2b.d: Likewise.
      	* testsuite/ld-i386/pr20244-2c.d: Likewise.
      	* testsuite/ld-i386/pr20244-4a.d: Likewise.
      	* testsuite/ld-i386/pr20244-4b.d: Likewise.
      	* testsuite/ld-i386/pr21884.d: Likewise.
      	* testsuite/ld-ifunc/binutils.exp: Likewise.
      	* testsuite/ld-ifunc/ifunc-10-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-10-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-11-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-11-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-12-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-12-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-13-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-13-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14a-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14a-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14b-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14b-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14c-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14c-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14d-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14d-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14e-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14e-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14f-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-14f-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-15-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-15-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-16-i386-now.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-16-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-16-x86-64-now.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-16-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-17a-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-17a-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-17b-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-17b-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-18a-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-18a-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-18b-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-18b-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-19a-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-19a-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-19b-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-19b-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-i386-now.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-local-i386-now.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-local-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-local-x86-64-now.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-local-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-x86-64-now.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-2-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-20-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-20-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-21-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-21-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-22-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-22-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5a-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5a-local-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5a-local-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5a-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5b-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5b-local-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5b-local-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5b-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5r-local-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-5r-local-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-6a-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-6a-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-6b-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-6b-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-7a-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-7a-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-7b-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-7b-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-8-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-8-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-9-i386.d: Likewise.
      	* testsuite/ld-ifunc/ifunc-9-x86-64.d: Likewise.
      	* testsuite/ld-ifunc/pr17154-i386-now.d: Likewise.
      	* testsuite/ld-ifunc/pr17154-i386.d: Likewise.
      	* testsuite/ld-ifunc/pr17154-x86-64-now.d: Likewise.
      	* testsuite/ld-ifunc/pr17154-x86-64.d: Likewise.
      	* testsuite/ld-plugin/lto.exp: Likewise.
      	* testsuite/ld-x86-64/align-branch-1.d: Likewise.
      	* testsuite/ld-x86-64/dwarfreloc.exp: Likewise.
      	* testsuite/ld-x86-64/line.exp: Likewise.
      	* testsuite/ld-x86-64/load1a.d: Likewise.
      	* testsuite/ld-x86-64/load1b.d: Likewise.
      	* testsuite/ld-x86-64/load1c.d: Likewise.
      	* testsuite/ld-x86-64/load1d.d: Likewise.
      	* testsuite/ld-x86-64/pie3.d: Likewise.
      	* testsuite/ld-x86-64/pr18160.d: Likewise.
      	* testsuite/ld-x86-64/pr19013-x32.d: Likewise.
      	* testsuite/ld-x86-64/pr19013.d: Likewise.
      	* testsuite/ld-x86-64/pr19636-2d.d: Likewise.
      	* testsuite/ld-x86-64/pr19636-2l.d: Likewise.
      	* testsuite/ld-x86-64/pr20253-1b.d: Likewise.
      	* testsuite/ld-x86-64/pr20253-1d.d: Likewise.
      	* testsuite/ld-x86-64/pr20253-1f.d: Likewise.
      	* testsuite/ld-x86-64/pr20253-1h.d: Likewise.
      	* testsuite/ld-x86-64/pr20253-1j.d: Likewise.
      	* testsuite/ld-x86-64/pr20253-1l.d: Likewise.
      	* testsuite/ld-x86-64/pr21884.d: Likewise.
      	* testsuite/ld-x86-64/pr22393-3a.rd: Likewise.
      	* testsuite/ld-x86-64/pr22393-3b.rd: Likewise.
      	* testsuite/ld-x86-64/tlsgd10.dd: Likewise.
      	* testsuite/ld-x86-64/tlsgd5.dd: Likewise.
      	* testsuite/ld-x86-64/tlsgd8.dd: Likewise.
      	* testsuite/ld-x86-64/x86-64.exp: Likewise.
      	* emulparams/elf32_x86_64_nacl.sh: Removed.
      	* emulparams/elf_i386_nacl.sh: Likewise.
      	* emulparams/elf_x86_64_nacl.sh: Likewise.
      	* testsuite/ld-i386/emit-relocs-nacl.rd: Likewise.
      	* testsuite/ld-i386/load1-nacl.d: Likewise.
      	* testsuite/ld-i386/pie1-nacl.d: Likewise.
      	* testsuite/ld-i386/plt-nacl.pd: Likewise.
      	* testsuite/ld-i386/plt-pic-nacl.pd: Likewise.
      	* testsuite/ld-i386/pr17709-nacl.rd: Likewise.
      	* testsuite/ld-i386/pr19636-1d-nacl.d: Likewise.
      	* testsuite/ld-i386/pr19636-2c-nacl.d: Likewise.
      	* testsuite/ld-i386/pr19636-2d-nacl.d: Likewise.
      	* testsuite/ld-i386/pr19636-2e-nacl.d: Likewise.
      	* testsuite/ld-i386/pr19827-nacl.rd: Likewise.
      	* testsuite/ld-i386/pr21884-nacl.d: Likewise.
      	* testsuite/ld-i386/pr21884-nacl.t: Likewise.
      	* testsuite/ld-i386/tlsbin-nacl.rd: Likewise.
      	* testsuite/ld-i386/tlsbin2-nacl.rd: Likewise.
      	* testsuite/ld-i386/tlsbindesc-nacl.rd: Likewise.
      	* testsuite/ld-i386/tlsdesc-nacl.rd: Likewise.
      	* testsuite/ld-i386/tlsgdesc-nacl.rd: Likewise.
      	* testsuite/ld-i386/tlsnopic-nacl.rd: Likewise.
      	* testsuite/ld-i386/tlspic-nacl.rd: Likewise.
      	* testsuite/ld-i386/tlspic2-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/ilp32-4-nacl.d: Likewise.
      	* testsuite/ld-x86-64/load1a-nacl.d: Likewise.
      	* testsuite/ld-x86-64/load1b-nacl.d: Likewise.
      	* testsuite/ld-x86-64/load1c-nacl.d: Likewise.
      	* testsuite/ld-x86-64/load1d-nacl.d: Likewise.
      	* testsuite/ld-x86-64/pie3-nacl.d: Likewise.
      	* testsuite/ld-x86-64/plt-nacl.pd: Likewise.
      	* testsuite/ld-x86-64/pr17709-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/pr19013-nacl.d: Likewise.
      	* testsuite/ld-x86-64/pr19636-2d-nacl.d: Likewise.
      	* testsuite/ld-x86-64/pr19827-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/pr21884-nacl.d: Likewise.
      	* testsuite/ld-x86-64/pr21884-nacl.t: Likewise.
      	* testsuite/ld-x86-64/split-by-file-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/tlsbin-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/tlsbin2-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/tlsbindesc-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/tlsdesc-nacl.pd: Likewise.
      	* testsuite/ld-x86-64/tlsdesc-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/tlsgdesc-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/tlspic-nacl.rd: Likewise.
      	* testsuite/ld-x86-64/tlspic2-nacl.rd: Likewise.
      	* Makefile.in: Regenerated.
      	* po/BLD-POTFILES.in: Likewise.
      bbd19b19
    • Tom Tromey's avatar
      Fix bug in quirk_rust_enum · a1520ad8
      Tom Tromey authored
      Tom de Vries pointed out that some Rust tests were failing after the
      variant part rewrite.  He sent an executable, which helped track down
      this bug.
      
      quirk_rust_enum was passing 1 to alloc_rust_variant in one case.
      However, a comment earlier says:
      
            /* We don't need a range entry for the discriminant, but we do
      	 need one for every other field, as there is no default
      	 variant.  */
      
      In this case, we must pass -1 for this parameter.  That is what this
      patch implements.
      
      gdb/ChangeLog
      2020-06-30  Tom Tromey  <tromey@adacore.com>
      
      	* dwarf2/read.c (quirk_rust_enum): Correctly call
      	alloc_rust_variant for default-less enum.
      a1520ad8
    • Tom Tromey's avatar
      Do not define basic_string_view::to_string · 5ac58899
      Tom Tromey authored
      gdb's copy of basic_string_view includes a to_string method.  However,
      according to cppreference, this is not a method on the real
      std::basic_string_view:
      
      https://en.cppreference.com/w/cpp/string/basic_string_view
      
      This difference matters because gdb_string_view.h will use the
      standard implementation when built with a C++17 or later.  This caused
      PR build/26183.
      
      This patch fixes the problem by changing the method to be a standalone
      helper function, and then rewriting the uses.  Tested by rebuilding
      with a version of GCC that defaults to C++17.
      
      (Note that the build still is not clean; and also I noticed that the
      libstdc++ string_view forbids the use of nullptr ... I wonder if gdb
      violates that.)
      
      gdb/ChangeLog
      2020-06-30  Tom Tromey  <tromey@adacore.com>
      
      	PR build/26183:
      	* ada-lang.c (ada_lookup_name_info::ada_lookup_name_info): Use
      	gdb::to_string.
      
      gdbsupport/ChangeLog
      2020-06-30  Tom Tromey  <tromey@adacore.com>
      
      	PR build/26183:
      	* gdb_string_view.h (basic_string_view::to_string): Remove.
      	(gdb::to_string): New function.
      5ac58899
    • Nick Clifton's avatar
      Add support for attributes using DW_FORM_GNU_strp_alt · 5568cc9e
      Nick Clifton authored
      	* dwarf.c (read_and_display_attr_value): Support
      	DW_FORM_GNU_strp_alt when used with DW_AT_dwo_name and
      	DW_AT_comp_dir.
      5568cc9e
    • Tom de Vries's avatar
      [gdb/testsuite] Handle early_flags in gdb_default_target_compile · b011fe1a
      Tom de Vries authored
      In gdb_default_target_compile, we use dejagnu's default_target_compile, unless
      we need support for languages that are not yet support in the used dejagnu
      version, in which case we use a local default_target_compile:
      gdb_default_target_compile_1.
      
      However, there's another reason to use the local default_target_compile: when
      early_flags is used, because there's no dejagnu release available yet
      supporting this.
      
      Fix this by detecting and handling early_flags in gdb_default_target_compile.
      
      Tested on x86_64-linux.
      
      gdb/testsuite/ChangeLog:
      
      2020-06-30  Tom de Vries  <tdevries@suse.de>
      
      	PR testsuite/26175
      	* lib/future.exp (gdb_default_target_compile): Detect and handle
      	early_flags.
      b011fe1a
    • Alan Modra's avatar
      solaris XPASS ld-elf/group1 · fb4a044b
      Alan Modra authored
      	* testsuite/ld-elf/group1.d: Don't xfail all solaris targets, just
      	ix86 and x86_64.
      fb4a044b
    • Alan Modra's avatar
      Don't xfail nds32 for ld-elf/reloc-discard test · b9b9b0ef
      Alan Modra authored
      	* testsuite/ld-elf/reloc-discard.d: Don't xfail nds32.
      b9b9b0ef
    • Alan Modra's avatar
      Fix nds32*-elf XPASS readelf -wiaoRlL dw5 · d74b88ed
      Alan Modra authored
      The underlying fail was probably fixed with git commit fbaf61ad.
      
      	* testsuite/binutils-all/readelf.exp (readelf_dump_test): Remove
      	xfail for nds32.
      d74b88ed
    • Alan Modra's avatar
      microblaze-linux XPASS ld-elf/var1 · 39d050ee
      Alan Modra authored
      microblaze-linux uses the standard ELF script, microblaze-elf its own
      script lacking an input section pattern needed to make this test pass.
      Add the missing pattern for .data, in line with most other sections
      that do have .* patterns.
      
      	* scripttempl/elfmicroblaze.sc (.data): Add .data.* entry.
      	* testsuite/ld-elf/var1.d: Don't xfail microblaze.
      39d050ee
    • Nelson Chu's avatar
      RISC-V: Support debug and float CSR as the unprivileged ones. · 08ccfccf
      Nelson Chu authored
      The unprivileged CSR should be controlled by other specific specs rather
      than the privileged spec.  For example, the debug CSR should be controlled
      by the debug spec, and the float CSR should be controlled by the float
      spec.  User may use assembler options to choose what the debug and other
      specs they want, or may encode the versions of specs into the architecture
      string directly.  Since we haven't decided which one is better, we set the
      defined and aborted versions of unprivileged CSR to PRIV_SPEC_CLASS_NONE
      in the include/opcode/riscv-opc.h, to tell assembler don't check priv spec
      versions for them.  However, these PRIV_SPEC_CLASS_NONE will be changed
      to FLOAT_SPEC_CLASS_* and DEBUG_SPEC_CLASS_* in the future.
      
      	gas/
      	* config/tc-riscv.c (riscv_csr_class_check): Removed.  Move the
      	checking into riscv_csr_address.
      	(riscv_csr_version_check): Likewise.
      	(riscv_csr_address): New function.  Return the suitable CSR address
      	after checking the ISA dependency and versions.  Issue warnings	if
      	we find any conflict and -mcsr-check is set.  CSR_CLASS_F and
      	CSR_CLASS_DEBUG are unprivileged CSR for now, so don't check the
      	priv spec versions for them.
      	(reg_csr_lookup_internal): Call riscv_csr_address to find the
      	suitable CSR address.
      
      	* testsuite/gas/riscv/priv-reg-fail-fext.d: Remove -mpriv-spec=1.11.
      	* testsuite/gas/riscv/priv-reg-fail-read-only-01.d: Likewise.
      	* testsuite/gas/riscv/priv-reg-fail-rv32-only.d: Likewise.
      	* testsuite/gas/riscv/priv-reg-fail-fext.l:  We don't care the
      	priv spec warnings here.  These warnings are added by accident.
      	Remove them and only focus on the ISA dependency warnings.
      	* testsuite/gas/riscv/priv-reg-fail-rv32-only.l: Likewise.
      	* testsuite/gas/riscv/priv-reg-fail-read-only-01.l: Likewise.
      	* testsuite/gas/riscv/priv-reg-fail-version-1p9.l: Updated since
      	dscratch0 and dscratch1 are regarded as the unprivileged CSR rather
      	than the privileged ones.
      	* testsuite/gas/riscv/priv-reg-fail-version-1p9p1.l: Likewise.
      	* testsuite/gas/riscv/priv-reg-fail-version-1p10.l: Likewise.
      	* testsuite/gas/riscv/priv-reg-fail-version-1p11.l: Likewise.
      	* testsuite/gas/riscv/priv-reg.s: Likewise.  Add missing debug CSR.
      	* testsuite/gas/riscv/priv-reg-version-1p9.d: Likewise.
      	* testsuite/gas/riscv/priv-reg-version-1p9p1.d: Likewise.
      	* testsuite/gas/riscv/priv-reg-version-1p10.d: Likewise.
      	* testsuite/gas/riscv/priv-reg-version-1p11.d: Likewise.
      	* testsuite/gas/riscv/csr-dw-regnums.d: Likewise.
      	* testsuite/gas/riscv/csr-dw-regnums.s: Likewise.
      
      	include/
      	* opcode/riscv-opc.h: Support the unprivileged CSR.  The versions
      	of the unprivileged CSR should be PRIV_SPEC_CLASS_NONE for now.
      	* opcode/riscv.h (enum riscv_csr_class): Add CSR_CLASS_DEBUG.
      
      	opcodes/
      	* riscv-dis.c (print_insn_args, case 'E'): Updated.  Let the
      	unprivileged CSR can also be initialized.
      08ccfccf