103627 Commits

Author SHA1 Message Date
cc9ea2c21c Re: Sync libiberty and include with GCC for get_DW_UT_name
* dwarf.h (DW_FIRST_UT, DW_UT, DW_END_UT): Define.
2020-09-25 11:55:00 +09:30
09d7303523 Put together MOD_VEX_0F38* in i386-dis.c,
There are 11 MOD_VEX_0F38* inserted in MOD_0F38* group,
which should be placed in MOD_VEX_0F38* group.

opcode/
	PR 26654
	*i386-dis.c (enum): Put MOD_VEX_0F38* together.
2020-09-25 09:39:00 +08:00
bee4644aff Automatic date update in version.in 2020-09-25 00:00:09 +00:00
743f5cfc00 RISC-V: Error for relaxable branch in absolute section.
Emit an error instead of crashing in frag_new, handling this same as the
i386 port.

gas/
	PR 26400
	* config/tc-riscv.c (append_insn): If in absolute section, emit
	error before add_relaxed_insn call.
	* testsuite/gas/riscv/absolute-sec.d: New.
	* testsuite/gas/riscv/absolute-sec.l: New.
	* testsuite/gas/riscv/absolute-sec.s: New.
2020-09-24 15:16:54 -07:00
debd1a62c4 readelf: Show Unit Type for DWARF5
binutils/ChangeLog:

	* dwarf.c (process_debug_info): Print Unit Type for DWARF5.
	* testsuite/binutils-all/dw5.W: Adjust expected output.
	* testsuite/binutils-all/dwarf-attributes.W: Likewise.

gas/ChangeLog:

	* testsuite/gas/elf/dwarf-5-cu.d: Adjust expected output.
2020-09-24 23:13:13 +02:00
d7b477c541 Sync libiberty and include with GCC for get_DW_UT_name.
This adds a get_DW_UT_name function to dwarfnames using dwarf2.def
for use in binutils readelf to show the unit types in a DWARF5 header.

include/ChangeLog:

	Sync with GCC
	* dwarf2.def: Add DWARF5 Unit type header encoding macros
	DW_UT_FIRST, DW_UT and DW_UT_END.
	* dwarf2.h (enum dwarf_unit_type): Removed and define using
	DW_UT_FIRST, DW_UT and DW_UT_END macros.
	(get_DW_UT_name): New function declaration.

libiberty/ChangeLog:

	Sync with GCC
	* dwarfnames.c (get_DW_UT_name): Define using DW_UT_FIRST, DW_UT
	and DW_UT_END.
2020-09-24 22:55:24 +02:00
ec47b32a85 binutils: Handle DWARF5 DW_FORM_ref_addr and DW_UT_partial.
dwz in DWARF5 mode might produce DW_UT_partial unit types, which are
the same as DW_UT_compile unit types (but start with a DW_TAG_partial_unit)
and it might produce DW_FORM_ref_addr to create a reference between
units. Accept both constructs.

binutils/ChangeLog:

	* dwarf.c (read_and_display_attr_value): Handle DW_FORM_ref_addr
	for dwarf_version 5 just as version 3 and 4 (only 2 is different).
	(process_debug_info): Allow DW_UT_partial.
2020-09-24 22:52:57 +02:00
29363cfa40 gdb: remove file_handler typedef
Remove the typedef (unneeded with C++).  Re-format the comments to
follow the more common style.

gdbsupport/ChangeLog:

	* event-loop.c (struct file_handler): Remove typedef, re-format.

Change-Id: I3aea21fba1eb2584c507de3412da4e4c98283b2d
2020-09-24 15:19:46 -04:00
b551a89f51 Don't let TUI focus on locator
PR tui/26638 notes that the C-x o binding can put the focus on the
locator window.  However, this is not useful and did not happen
historically.  This patch changes the TUI to skip this window when
switching focus.

gdb/ChangeLog
2020-09-24  Tom Tromey  <tromey@adacore.com>

	PR tui/26638:
	* tui/tui-stack.h (struct tui_locator_window) <can_focus>: New
	method.
	* tui/tui-data.h (struct tui_win_info) <can_focus>: New method.
	* tui/tui-data.c (tui_next_win): Exclude non-focusable windows.
	(tui_prev_win): Rewrite.

gdb/testsuite/ChangeLog
2020-09-24  Tom Tromey  <tromey@adacore.com>

	PR tui/26638:
	* gdb.tui/list.exp: Check output of "focus next".
2020-09-24 12:25:59 -06:00
99bb393f1d Handle 64bit breakpoints of WOW64 processes as SIGINT
When a WOW64 process triggers a breakpoint exception in 64bit code (which
happens when a 64bit gdb calls DebugBreakProcess for a 32bit target),
gdb ignores the breakpoint (because Wow64GetThreadContext can only report
the pc of 32bit code, and there is not int3 at this location).

But if these 64bit breakpoint exceptions are handled as SIGINT, gdb
doesn't check for int3, and always stops the target.

gdb/ChangeLog:

2020-09-23  Hannes Domani  <ssbssa@yahoo.de>

	* nat/windows-nat.c (handle_exception): Handle 64bit breakpoints
	in WOW64 processes as SIGINT.
	* nat/windows-nat.h: Make wow64_process a shared variable.
	* windows-nat.c: Remove static wow64_process variable.

gdbserver/ChangeLog:

2020-09-23  Hannes Domani  <ssbssa@yahoo.de>

	* win32-low.cc: Remove local wow64_process variable.
	* win32-low.h: Remove local wow64_process variable.
2020-09-24 19:01:22 +02:00
6eee0315f6 arm: Add support for Neoverse V1 CPU
This patch adds support for Arm's Neoverse V1 CPU to AArch32 binutils.

gas/ChangeLog:

2020-09-24  Alex Coplan  <alex.coplan@arm.com>

	* config/tc-arm.c (arm_cpus): Add Neoverse V1.
	* doc/c-arm.texi: Document Neoverse V1 support.
2020-09-24 15:38:30 +01:00
9e980ddcef aarch64: Add support for Neoverse V1 CPU
This adds support for Arm's Neoverse V1 CPU to AArch64 binutils.

gas/ChangeLog:

2020-09-24  Alex Coplan  <alex.coplan@arm.com>

	* config/tc-aarch64.c (aarch64_cpu_option_table): Add Neoverse V1.
	* doc/c-aarch64.texi: Document Neoverse V1 support.
2020-09-24 15:38:19 +01:00
011a045a6b csky/opcodes: enclose if body in curly braces
This commit:

  commit afdcafe89118cee761f9bf67ea1b1efc29311300
  Date:   Thu Sep 17 14:30:28 2020 +0800

      CSKY: Add objdump option -M abi-names.

cases the build of GDB (configured with --enabled-targets=all) to fail
with this error:

  libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../../src/opcodes -I. -I../../src/opcodes -I../bfd -I../../src/opcodes/../include -I../../src/opcodes/../bfd -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow -Wstack-usage=262144 -Werror -O0 -g3 -D_GLIBCXX_DEBUG=1 -MT csky-dis.lo -MD -MP -MF .deps/csky-dis.Tpo -c ../../src/opcodes/csky-dis.c -o csky-dis.o
  ../../src/opcodes/csky-dis.c: In function 'csky_output_operand':
  ../../src/opcodes/csky-dis.c:849:7: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
    849 |       if (IS_CSKY_V1 (mach_flag))
        |       ^~
  ../../src/opcodes/csky-dis.c:851:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
    851 |  strcat (str, buf);
        |  ^~~~~~

this commit adds { ... } around the if body to resolve this issue.

opcodes/ChangeLog:

	* csky-dis.c (csky_output_operand): Enclose body of if in curly
	braces.
2020-09-24 15:14:53 +01:00
a2ab58313a Document that the lower case 'c' character in nm's output is used to signify a small common.
PR 26662
	* doc/binutils.texi (nm): Document that 'c' is used for small
	common symbols.
2020-09-24 14:23:39 +01:00
f3034e25fa arm: Add support for Neoverse N2 CPU
This adds support for Arm's Neoverse N2 CPU to AArch32 binutils. The
Neoverse N2 CPU builds AArch32 at EL0 and therefore needs support in the
AArch32 assembler.

gas/ChangeLog:

2020-09-24  Alex Coplan  <alex.coplan@arm.com>

	* config/tc-arm.c (arm_cpus): Add Neoverse N2.
	* doc/c-arm.texi: Document -mcpu=neoverse-n2.
2020-09-24 10:10:52 +01:00
81d54bb7ae Add support for Intel TDX instructions.
gas/

	* NEWS: Add TDX.
	* config/tc-i386.c (cpu_arch): Add .tdx.
	(cpu_noarch): Likewise.
	* doc/c-i386.texi: Document tdx.
	* testsuite/gas/i386/i386.exp: Run tdx tests.
	* testsuite/gas/i386/tdx.d: Likewise.
	* testsuite/gas/i386/tdx.s: Likewise.
	* testsuite/gas/i386/x86-64-tdx.d: Likewise.
	* testsuite/gas/i386/x86-64-tdx.s: Likewise.

opcodes/

	* i386-dis.c (enum): Add PREFIX_0F01_REG_1_RM_5,
	PREFIX_0F01_REG_1_RM_6, PREFIX_0F01_REG_1_RM_7,
	X86_64_0F01_REG_1_RM_5_P_2, X86_64_0F01_REG_1_RM_6_P_2,
	X86_64_0F01_REG_1_RM_7_P_2.
	(prefix_table): Likewise.
	(x86_64_table): Likewise.
	(rm_table): Likewise.
	* i386-gen.c (cpu_flag_init): Add CPU_TDX_FLAGS
	and CPU_ANY_TDX_FLAGS.
	(cpu_flags): Add CpuTDX.
	* i386-opc.h (enum): Add CpuTDX.
	(i386_cpu_flags): Add cputdx.
	* i386-opc.tbl: Add TDX insns.
	* i386-init.h: Regenerate.
	* i386-tbl.h: Likewise.
2020-09-24 10:38:15 +08:00
7469ddd78f Automatic date update in version.in 2020-09-24 00:00:06 +00:00
a993d270f8 [GOLD] PowerPC64 __tls_get_addr_opt stub
This stub doesn't have the r2 store at the beginning.

	* powerpc.cc (Target_powerpc::Relocate::relocate): Don't skip
	first insn of __tls_get_addr_opt stub.
2020-09-24 07:55:48 +09:30
294338867c PR26656, power10 libstdc++.so segfault in __cxxabiv1::__cxa_throw
This adds missing support for a power10 version of the __tls_get_addr
call stub implementing DT_PPC64_OPT PPC64_OPT_TLS.  Without this,
power10 code using __tls_get_addr fails miserably at runtime unless
the --no-tls-get-addr-optimize option is given.

	PR 26656
	* elf64-ppc.c (plt_stub_size): Add "odd" param.  Use it with
	size_power10_offset rather than calculating from start of stub.
	Add size for notoc tls_get_addr_opt stub.
	(plt_stub_pad): Add "odd" param, pass to plt_stub_size.
	(build_tls_get_addr_head, build_tls_get_addr_tail): New functions.
	(build_tls_get_addr_stub): Delete.
	(ppc_build_one_stub): Use a temp for htab->params->stub_bfd.
	Emit notoc tls_get_addr_opt stub.  Move eh_frame code to
	suit.  Adjust code to use bfd_tls_get_addr_head/tail in place
	of build_tls_get_addr_stub.
	(ppc_size_one_stub): Size notoc tls_get_addr_opt stub.
	Adjust plt_stub_size and plt_stub_pad calls.  Correct "odd"
	when padding stub.  Size eh_frame for notoc stub too.
	Correct lr_restore value.
	(ppc64_elf_relocate_section): Don't skip over first insn of
	notoc tls_get_addr_opt stub.
2020-09-24 07:54:05 +09:30
c94053440e PR26655, Power10 libstdc++.so R_PPC64_NONE dynamic relocs
Some of the powerpc64 code editing functions are better run after
dynamic symbols have stabilised in order to make proper decisions
based on SYMBOL_REFERENCES_LOCAL.  The dynamic symbols are processed
early in bfd_elf_size_dynamic_sections, before the backend
always_size_sections function is called.

One function, ppc64_elf_tls_setup must run before
bfd_elf_size_dynamic_sections because it changes dynamic symbols.
ppc64_elf_edit_opd and ppc64_elf_inline_plt can run early or late, I
think.  ppc64_elf_tls_optimize and ppc64_elf_edit_toc are better run
later.

So this patch arranges to call some edit functions later via
always_size_sections.

	PR 26655
bfd/
	* elf64-ppc.c (ppc64_elf_func_desc_adjust): Rename to..
	(ppc64_elf_edit): Call params->edit.
	(ppc64_elf_tls_setup): Don't call _bfd_elf_tls_setup.  Return a
	bfd_boolean.
	* elf64-ppc.h (struct ppc64_elf_params): Add "edit".
	(ppc64_elf_tls_setup): Update declaration.
ld/
	* emultempl/ppc64elf.em (params): Add ppc_edit.
	(ppc_before_allocation): Split off some edit functions to..
	(ppc_edit): ..this, new function.
2020-09-24 07:52:53 +09:30
afdcafe891 CSKY: Add objdump option -M abi-names.
Add option parser for disassembler, and refine the codes of
parse register operand and disassemble register operand.
While strengthen the operands legality check of some instructions.

Co-Authored-By: Lifang Xia <lifang_xia@c-sky.com>

gas/
	* config/tc-csky.c (parse_type_ctrlreg): Use function
	csky_get_control_regno to operand.
	(csky_get_reg_val): Likewise.
	(is_reg_sp_with_bracket): Use function csky_get_reg_val
	to parse operand.
	(is_reg_sp): Refine.
	(is_oimm_within_range): Fix, report error when operand
	is not constant.
	(parse_type_cpreg): Refine.
	(parse_type_cpcreg): Refine.
	(get_operand_value): Add handle of OPRND_TYPE_IMM5b_LS.
	(md_assemble): Fix no error reporting somtimes when
	operands number are not fit.
	(csky_addc64): Refine.
	(csky_subc64): Refine.
	(csky_or64): Refine.
	(v1_work_fpu_fo): Refine.
	(v1_work_fpu_read): Refine.
	(v1_work_fpu_writed): Refine.
	(v1_work_fpu_readd): Refine.
	(v2_work_addc): New function, strengthen the operands legality
	check of addc.
	* gas/testsuite/gas/csky/all.d : Use register number format when
	disassemble register name by default.
	* gas/testsuite/gas/csky/cskyv2_all.d : Likewise.
	* gas/testsuite/gas/csky/trust.d: Likewise.
	* gas/testsuite/gas/csky/cskyv2_ck860.d : Fix.
	* gas/testsuite/gas/csky/trust.s : Fix.

opcodes/
	* csky-dis.c (using_abi): New.
	(parse_csky_dis_options): New function.
	(get_gr_name): New function.
	(get_cr_name): New function.
	(csky_output_operand): Use get_gr_name and get_cr_name to
	disassemble and add handle of OPRND_TYPE_IMM5b_LS.
	(print_insn_csky): Parse disassembler options.
	* opcodes/csky-opc.h (OPRND_TYPE_IMM5b_LS): New enum.
	(GENARAL_REG_BANK): Define.
	(REG_SUPPORT_ALL): Define.
	(REG_SUPPORT_ALL): New.
	(ASH): Define.
	(REG_SUPPORT_A): Define.
	(REG_SUPPORT_B): Define.
	(REG_SUPPORT_C): Define.
	(REG_SUPPORT_D): Define.
	(REG_SUPPORT_E): Define.
	(csky_abiv1_general_regs): New.
	(csky_abiv1_control_regs): New.
	(csky_abiv2_general_regs): New.
	(csky_abiv2_control_regs): New.
	(get_register_name): New function.
	(get_register_number): New function.
	(csky_get_general_reg_name): New function.
	(csky_get_general_regno): New function.
	(csky_get_control_reg_name): New function.
	(csky_get_control_regno): New function.
	(csky_v2_opcodes): Prefer two oprerans format for bclri and
	bseti, strengthen the operands legality check of addc, zext
	and sext.
2020-09-23 23:55:36 +08:00
20a5fcbd5b Handle bit offset and bit size in base types
PR symtab/25470 points out that the Zig programming language allows
integers of various bit sizes (including zero), not just sizes that
are a multiple of 8.

This is supported in DWARF by applying both a byte size and a
DW_AT_bit_size.

This patch adds support for this feature to integer and boolean types.
Other base types are not handled -- for floating-point types, this
didn't seem to make sense, and for character types I didn't see much
need.  (These can be added later if desired.)

I've also added support for DW_AT_data_bit_offset at the same time.  I
don't know whether the Zig compiler requires this, but it was
described in the same section in the DWARF standard and was easy to
add.

A new test case is supplied, using the DWARF assembler.

gdb/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	PR symtab/25470:
	* value.c (unpack_long, pack_long, pack_unsigned_long): Handle bit
	offset and bit size.
	* printcmd.c (print_scalar_formatted): Handle zero-length
	integer.
	(print_scalar_formatted): Use bit_size_differs_p.
	* gdbtypes.h (enum type_specific_kind) <TYPE_SPECIFIC_INT>: New
	constant.
	(union type_specific): <int_stuff>: New member.
	(struct type) <bit_size_differs_p, bit_size, bit_offset>: New
	methods.
	* gdbtypes.c (init_integer_type, init_boolean_type): Initialize
	TYPE_SPECIFIC_FIELD.
	(recursive_dump_type, copy_type_recursive): Update.
	* dwarf2/read.c (read_base_type): Handle DW_AT_bit_size and
	DW_AT_data_bit_offset.

gdb/testsuite/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	* gdb.dwarf2/intbits.exp: New file.
	* gdb.dwarf2/intbits.c: New file.
2020-09-23 09:39:24 -06:00
bac51ab78d Avoid manual memory management of argv arrays in gdb/compile
This changes gdb/compile to use gdb_argv directly, rather than
manually managing the arrays itself.  A few new helpers are added to
gdb_argv.

gdb/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	* utils.h (class gdb_argv): Add move operators.
	<append>: New methods.
	* compile/compile.c (build_argc_argv): Remove.
	(compile_args_argc): Remove.
	(compile_args_argv): Change type.
	(set_compile_args): Simplify.
	(append_args): Remove.
	(filter_args): Remove argcp parameter.
	(get_args): Return gdb_argv.  Simplify.
	(compile_to_object): Update.
2020-09-23 09:32:57 -06:00
92677124d9 Simplify compile_module cleanup
This simplifies compile_module cleanup by removing the need to
explicitly free anything.  struct setup_sections_data is also cleaned
up a bit.

gdb/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	* compile/compile-object-run.c (do_module_cleanup)
	<~do_module_cleanup> :Remove.
	(do_module_cleanup): Update.
	* compile/compile-object-load.h (struct munmap_list): Add move
	assignment operator.
	<source_file>: Now a std::string.
	<munmap_list>: Rename.  No longer a pointer.
	* compile/compile-object-load.c (struct setup_sections_data): Add
	constructor.
	<setup_one_section>: Declare.
	<munmap_list>: Move earlier.
	<m_bfd>: New member.
	<m_last_size, m_last_section_first, m_last_prot,
	m_last_max_alignment>: Rename, add initializers where needed.
	(setup_sections_data::setup_one_section): Rename from
	setup_sections.  Update.
	(compile_object_load): Update.  Don't use bfd_map_over_sections.
2020-09-23 09:32:56 -06:00
e616f60a6b Transfer module ownership to do_module_cleanup
This changes the do_module_cleanup structure to simply hold on to the
module itself.  This lets us remove most members from
do_module_cleanup.

gdb/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	* compile/compile-object-run.c (struct do_module_cleanup): Add
	parameters to constructor.  Update destructor.
	<source_file, scope, scope_data, out_value_type, out_value_addr,
	munmap_list_head, objfile_name_string>: Remove.
	<module>: New member.
	(do_module_cleanup): Update.
	(compile_object_run): Update.
2020-09-23 09:32:56 -06:00
e947a8482a Introduce and use compile_module_up
This introduces compile_module_up, a unique pointer for
compile_module, and changes a few spots to use it.

gdb/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	* compile/compile.c (eval_compile_command): Update.
	* compile/compile-object-run.h (compile_object_run): Take a
	compile_module_up.
	* compile/compile-object-run.c (compile_object_run): Take a
	compile_module_up.
	* compile/compile-object-load.h (struct compile_module): Add
	constructor, destructor.
	(compile_module_up): New typedef.
	(compile_object_load): Return compile_object_up.
	* compile/compile-object-load.c (compile_object_load): Return
	compile_module_up.
2020-09-23 09:32:55 -06:00
0dbf6ee6a0 Use new/delete for do_module_cleanup
This changes do_module_cleanup to use new and delete.  It also removes
the use of the struct hack from this object -- this requires more
allocations for now, but this will be removed in a subsequent patch.

gdb/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	* compile/compile-object-run.c (struct do_module_cleanup): Add
	constructor, destructor.
	<objfile_name_string>: Don't use struct hack.
	(do_module_cleanup): Use delete.
	(compile_object_run): Use new.
2020-09-23 09:32:55 -06:00
ebe824f5dc Remove some manual memory management from compile interface
This changes gdb's compile code to use std::vector in a couple of
places, rather than manual memory management.

gdb/ChangeLog
2020-09-23  Tom Tromey  <tom@tromey.com>

	* compile/compile-cplus-types.c
	(compile_cplus_convert_struct_or_union): Use std::vector.
	(compile_cplus_convert_func): Likewise.
	* compile/compile-c-types.c (convert_func): Use std::vector.
2020-09-23 09:32:54 -06:00
c4694f172b Enable support to Intel Keylocker instructions
gas/
	* NEWS: Add Key Locker.
	* config/tc-i386.c (cpu_arch): Add .kl and .wide_kl.
	(cpu_noarch): Likewise.
	* doc/c-i386.texi: Document kl and wide_kl.
	* testsuite/gas/i386/i386.exp: Run keylocker tests.
	* testsuite/gas/i386/keylocker-intel.d: New test.
	* testsuite/gas/i386/keylocker.d: Likewise.
	* testsuite/gas/i386/keylocker.s: Likewise.
	* testsuite/gas/i386/x86-64-keylocker-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-keylocker.d: Likewise.
	* testsuite/gas/i386/x86-64-keylocker.s: Likewise.
	* testsuite/gas/i386/x86-64-property-10.d: Likewise.
	* testsuite/gas/i386/property-10.d: Likewise.
	* testsuite/gas/i386/property-10.s: Likewise.

opcodes/
	* i386-dis.c (enum): Add REG_0F38D8_PREFIX_1,
	MOD_0F38FA_PREFIX_1, MOD_0F38FB_PREFIX_1,
	MOD_0F38DC_PREFIX_1, MOD_0F38DD_PREFIX_1,
	MOD_0F38DE_PREFIX_1, MOD_0F38DF_PREFIX_1,
	PREFIX_0F38D8, PREFIX_0F38FA, PREFIX_0F38FB.
	(reg_table): New instructions (see prefixes above).
	(prefix_table): Likewise.
	(three_byte_table): Likewise.
	(mod_table): Likewise
	* i386-gen.c (cpu_flag_init): Add CPU_KL_FLAGS, CPU_WIDE_KL_FLAGS,
	CPU_ANY_KL_FLAGS and CPU_ANY_WIDE_KL_FLAGS.
	(cpu_flags): Likewise.
	(operand_type_init): Likewise.
	* i386-opc.h (enum): Add CpuKL and CpuWide_KL.
	(i386_cpu_flags): Add cpukl and cpuwide_kl.
	* i386-opc.tbl: Add KL and WIDE_KL insns.
	* i386-init.h: Regenerate.
	* i386-tbl.h: Likewise.
2020-09-23 10:47:44 +08:00
9fcff41582 Automatic date update in version.in 2020-09-23 00:00:07 +00:00
307f2595dd Linker: If the type is pie the results should be an executable which entry point should be an executable entry point, not a DLL one.
* emultempl/pe.em (set_entry_point): Only use the DLL entry point
	for DLLs.
	* emultempl/pep.em (set_entry_point): Likewise.
2020-09-22 12:48:04 +01:00
db47f2458f Automatic date update in version.in 2020-09-22 00:00:06 +00:00
427234c78b Update the binutils documentation to make it clear the the --strip-unneeded option of objcopy and strip implies the --strip-debug option.
* doc/binutils.texi (objcopy, strip): Say that
        '--strip-unneeded' implies '--strip-debug'.
2020-09-21 16:08:55 +01:00
5dd918d980 Fix sparc prologue skipping
sparc can fail at inline prologue skipping.  Andrew Burgess tracked
this down to sparc32_skip_prologue, which should use
skip_prologue_using_sal rather than its hand-rolled variant.

I don't have a good way to test this with the gdb test suite (is there
a board file for using qemu?  That would help), but it fixes a
regression in the internal AdaCore test suite.  We've had this patch
internally at AdaCore for a while, but I just now finally got around
to making sure that backing it out reintroduces the problem.

gdb/ChangeLog
2020-09-21  Tom Tromey  <tromey@adacore.com>

	* sparc-tdep.c (sparc32_skip_prologue): Use
	skip_prologue_using_sal.
2020-09-21 07:09:10 -06:00
c73eac969a rx-dis.c:103:3: suspicious concatenation of string literals
* rx-dis.c (flag_names): Add missing comma.
	(register_names, flag_names, double_register_names),
	(double_register_high_names, double_register_low_names),
	(double_control_register_names, double_condition_names): Remove
	trailing commas.
2020-09-21 18:20:58 +09:30
b1b11e922b PR26569, R_RISCV_RVC_JUMP results in buffer overflow
This patch corrects "size" and "bitsize" in R_RISCV_RVC_* reloc howtos
so that elfnn-riscv.c:perform_relocation doesn't access past the end
of a section.  I've also corrected "size" in the R_RISCV_CALL* reloc
howtos since these relocs apply to two consecutive instructions.  That
caused fallout in the assembler with complaints about "fixup not
contained within frag" due to tc-riscv.c:append_insn finishing off a
frag after the auipc insn making up a "call" macro.  Which is a little
rude since the CALL reloc also relocates the following jalr.  Fixed by
changing the frag handling a little.

I've also changed R_RISCV_ALIGN and R_RISCV_TPREL_ADD marker reloc
howtos to look like R_RISCV_NONE, and corrected dst_mask for numerous
relocs, not that it matters very much.

bfd/
	PR 26569
	* elfxx-riscv.c (howto_table): Correct size and bitsize of
	R_RISCV_RVC_BRANCH, R_RISCV_RVC_JUMP, and R_RISCV_RVC_LUI.
	Correct size for R_RISCV_TLS_DTPMOD32, R_RISCV_TLS_DTPREL32,
	R_RISCV_CALL, and R_RISCV_CALL_PLT.  Make R_RISCV_TPREL_ADD and
	R_RISCV_ALIGN like R_RISCV_NONE.  Correct dst_mask many relocs.
gas/
	* config/tc-riscv.c (append_insn): Don't tie off frags at CALL
	relocs.
	(riscv_call): Tie them off after the jalr.
	(md_apply_fix): Zero fx_size of RELAX fixup.
2020-09-21 09:41:05 +09:30
4f94229e83 Automatic date update in version.in 2020-09-21 00:00:07 +00:00
b167e53f05 Fix mi_gdb_exit with secondary MI channels
Tests that use a secondary MI channel (i.e., either tests that call
mi_gdb_start with separate-mi-tty, or all tests when
FORCE_SEPARATE_MI_TTY=1 is specified on the make check command line),
don't close GDB correctly.

E.g., if you run gdb.mi/mi-exec-run.exp in a loop:

  while true; do make check TESTS="gdb.mi/mi-exec-run.exp"; done

you can see more than one gdb running at the same time:

  $ ps -ef | grep -v grep | grep "gdb/gdb"
  pedro      40507       1  7 15:47 ?        00:00:00 /home/pedro/gdb/build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /home/pedro/gdb/build/gdb/testsuite/../data-directory
  pedro      40562       1  0 15:47 ?        00:00:00 /home/pedro/gdb/build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /home/pedro/gdb/build/gdb/testsuite/../data-directory
  pedro      40727       1  0 15:47 ?        00:00:00 /home/pedro/gdb/build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /home/pedro/gdb/build/gdb/testsuite/../data-directory
  pedro      40786       1  0 15:47 ?        00:00:00 /home/pedro/gdb/build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory /home/pedro/gdb/build/gdb/testsuite/../data-directory

This commit fixes it.

gdb/testsuite/ChangeLog:

	* lib/mi-support.exp (mi_uncatched_gdb_exit) Switch to the main
	spawn_id before calling remote_close.  Close secondary MI channel.
2020-09-20 16:02:24 +01:00
dbc49e9ffa Robustify gdb.base/testenv.exp:find_env
If printing 'envp[$i]' in find_env fails, the testcase goes into an
infinite loop:

 Running /home/pedro/rocm/gdb/build/gdb/testsuite/../../../src/gdb/testsuite/gdb.base/testenv.exp ...
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[0] ? envp[0] : ""
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[1] ? envp[1] : ""
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2] ? envp[2] : ""
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[3] ? envp[3] : ""
 ...
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2519] ? envp[2519] : ""
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2520] ? envp[2520] : ""
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[2521] ? envp[2521] : ""
 ..
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[5128] ? envp[5128] : ""
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[5129] ? envp[5129] : ""
 FAIL: gdb.base/testenv.exp: test_inherit_env_var: test1: printf "var1: %s\n", envp[5130] ? envp[5130] : ""
 ...

Fix that by bailing out of the loop on failure.

gdb/testsuite/ChangeLog:

	* gdb.base/testenv.exp (find_env): Bail out if printing 'envp[$i]'
	fails.
2020-09-20 15:58:09 +01:00
851257b5fc Automatic date update in version.in 2020-09-20 00:00:06 +00:00
5486c51748 Use gdb_bfd_sections in generic_load
This changes generic_load to avoid bfd_map_over_sections, in favor of
iteration.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* symfile.c (add_section_size_callback): Remove.
	(load_one_section): Rename from load_section_callback.  Change
	parameters.
	(generic_load): Use foreach.
2020-09-19 11:54:55 -06:00
8a6bb1d130 Use gdb_bfd_sections in build_section_table
This changes build_section_table to avoid bfd_map_over_sections, in
favor of iteration.  In this situation it seemed simple to just remove
the helper function entirely.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* exec.c (add_to_section_table): Remove.
	(build_section_table): Use foreach.
2020-09-19 11:54:54 -06:00
08f93a1a93 Use gdb_bfd_sections in elf_symfile_read
This changes elf_symfile_read to avoid bfd_map_over_sections, in favor
of iteration.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* elfread.c (elf_locate_sections): Change parameters.
	(elf_symfile_read): Use foreach.
2020-09-19 11:54:54 -06:00
03cd72b810 Use gdb_bfd_sections in restore_command
This changes restore_command to avoid bfd_map_over_sections, in favor
of iteration.  A helper data structure can also be removed by this
patch.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* cli/cli-dump.c (struct callback_data): Remove.
	(restore_one_section): Rename from restore_section_callback.
	Change parameters.
	(restore_binary_file): Change parameters.
	(restore_command): Use foreach.
2020-09-19 11:54:53 -06:00
f4f2b85fb2 Use gdb_bfd_sections in gcore_memory_sections
This changes gcore_memory_sections to avoid bfd_map_over_sections, in
favor of iteration.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* gcore.c (make_output_phdrs): Remove 'ignored' parameter.
	(gcore_copy_callback): Likewise.
	(gcore_memory_sections): Use foreach.
2020-09-19 11:54:53 -06:00
b35c1d1cf4 Use gdb_bfd_sections in ELF osabi tag sniffing
This changes some ELF osabi tag-sniffing functions to avoid
bfd_map_over_sections, in favor of iteration.  I could only readily
test the generic one.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* osabi.h (generic_elf_osabi_sniff_abi_tag_sections): Update.
	* osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Change
	parameters.
	(generic_elf_osabi_sniffer): Use foreach.
	* mips-sde-tdep.c (mips_sde_elf_osabi_sniffer): Use foreach.
	* arm-tdep.c (arm_elf_osabi_sniffer): Use foreach.
2020-09-19 11:54:52 -06:00
5bb6e9dd70 Use gdb_bfd_sections in dwarf2/read.c
This changes some functions in dwarf2/read.c to avoid
bfd_map_over_sections, in favor of iteration.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* dwarf2/read.c (locate_dwz_sections): Change parameters.
	(dwarf2_get_dwz_file): Use foreach.
	(dwarf2_locate_dwo_sections): Change parameters.
	(open_and_init_dwo_file): Use foreach.
	(dwarf2_locate_common_dwp_sections): Change parameters.
	(open_and_init_dwp_file): Use foreach.
2020-09-19 11:54:52 -06:00
ad7277dab9 Use gdb_bfd_sections in symfile.c
This changes some functions in symfile.c to avoid
bfd_map_over_sections, in favor of iteration.  Some helper types can
also be removed due to this change.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* symfile.h: (find_lowest_section): Don't declare.
	* symfile.c (find_lowest_section): Now static.  Change
	parameters.
	(struct place_section_arg): Remove.
	(place_section): Change parameters.
	(addr_info_make_relative): Use foreach.
	(symfile_dummy_outputs): Remove.
	(default_symfile_relocate): Use foreach.
2020-09-19 11:54:51 -06:00
cb814f2e30 Use gdb_bfd_sections in build_objfile_section_table
This changes build_objfile_section_table to avoid
bfd_map_over_sections, in favor of iteration.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* objfiles.c (add_to_objfile_sections): Rename from
	add_to_objfile_sections_full.
	(add_to_objfile_sections): Remove.
	(build_objfile_section_table): Use foreach.
2020-09-19 11:54:51 -06:00
3cabfd268b Use gdb_bfd_sections in get_stap_base_address
This changes get_stap_base_address to avoid bfd_map_over_sections, in
favor of iteration.

gdb/ChangeLog
2020-09-19  Tom Tromey  <tom@tromey.com>

	* stap-probe.c (get_stap_base_address_1): Remove.
	(get_stap_base_address): Use foreach.
2020-09-19 11:54:50 -06:00