111184 Commits

Author SHA1 Message Date
a47a2d45bd Fix hardware watchpoint check in test gdb.base/watchpoint-reuse-slot.exp
This test generates 48 failures on Power 9 when testing with HW watchpoints
enabled.  Note HW watchpoint support is disabled on Power 9 due to a HW bug.
The skip_hw_watchpoint_tests proc must be used to correctly determine
if the processor supports HW watchpoints.

This patch replaces the [target_info exists gdb,no_hardware_watchpoints]
with the skip_hw_watchpoint_tests check.

This patch was tested on Power 9, Power 10 and X86-64 with no regressions.
2022-09-08 15:13:03 +00:00
0ee31dffb8 Gas generated incorrect debug info (top-level DW_TAG_unspecified_type DIE)
PR 29559
	* dwarf2dbg.c (out_debug_info): Place DW_TAG_unspecified_type at
	the end of the list of children, not at the start of the CU
	information.
	* testsuite/gas/elf/dwarf-3-func.d: Update expected output.
	* testsuite/gas/elf/dwarf-5-func-global.d: Likewise.
	* testsuite/gas/elf/dwarf-5-func-local.d: Likewise.
	* testsuite/gas/elf/dwarf-5-func.d: Likewise.
2022-09-08 12:43:33 +01:00
39eedb20b7 gdbsupport: Fix config.status dependency
Commit 171fba11ab27 ("Make GDBserver abort on internal error in development mode")
created a new substitution CONFIG_STATUS_DEPENDENCIES but this is used by
Makefile.in (which is not regenerated by that commit).  After regenerating
it, it is found that CONFIG_STATUS_DEPENDENCIES value is not valid, making
gdbsupport fail to build.

Since the CONFIG_STATUS_DEPENDENCIES value is used in the Makefile, macro
substitution must have a Makefile format but commit 171fba11ab27 used shell
format "$srcdir/../bfd/development.sh".

This commit fixes this issue by substituting "$srcdir" (shell format) to
"$(srcdir)" (Makefile format).  It preserves the dependency as Pedro
intended and fixes the build problem.

It also regenerates corresponding files with the maintainer mode.

gdbsupport/ChangeLog:

	* configure.ac: Fix config.status dependency.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
2022-09-08 11:03:12 +00:00
a88ad4917a Maintainer mode: wrong gettext version?
* README-maintainer-mode: Update minimum version  of gettext
	required.
2022-09-08 10:03:04 +01:00
2caffd34df i686-w64-mingw32-objdump -WL returns incorrect file paths
PR 29523
	* dwarf.c (display_debug_lines_decoded): Correctly handle DWARF-5
	directory and filename tables.
2022-09-08 09:56:39 +01:00
f42546b6cc Automatic date update in version.in 2022-09-08 00:00:07 +00:00
d6398d6713 [gdb/testsuite] xfail gdb.ada/O2_float_param.exp for aarch64 and gcc 7.5.0
On aarch64-linux, with gcc 7.5.0, we run into:
...
 (gdb) frame^M
 #0  callee.increment (val=99.0, val@entry=9.18340949e-41, msg=...) at \
   callee.adb:21^M
 21            if Val > 200.0 then^M
 (gdb) FAIL: gdb.ada/O2_float_param.exp: scenario=all: frame
...

The problem is a GCC bug, filed as "PR98148 - [AArch64] Wrong location
expression for function entry values" (
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98148 ).

Xfail the test for aarch64 and gcc 7.

Tested on x86_64-linux and aarch64-linux.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29418
2022-09-07 19:14:17 +02:00
154f2735ad [gdb/testsuite] Fix gdb.ada/access_tagged_param.exp for aarch64
On aarch64-linux, I run into:
...
Breakpoint 2, pck.inspect (obj=0x430eb0 \
  <system.pool_global.global_pool_object>, <objL>=0) at pck.adb:17^M
17         procedure Inspect (Obj: access Top_T'Class) is^M
(gdb) FAIL: gdb.ada/access_tagged_param.exp: continue
...
while on x86_64-linux, I see:
...
Breakpoint 2, pck.inspect (obj=0x62b2a0, <objL>=2) at pck.adb:19^M
19            null;^M
(gdb) PASS: gdb.ada/access_tagged_param.exp: continue
...
Note the different line numbers, 17 vs 19.

The difference comes from the gdbarch_skip_prologue implementation.

The amd64_skip_prologue implementation doesn't use gcc line numbers, and falls
back to the architecture-specific prologue analyzer, which correctly skips
past the prologue, to address 0x4022f7:
...
00000000004022ec <pck__inspect>:
  4022ec:       55                      push   %rbp
  4022ed:       48 89 e5                mov    %rsp,%rbp
  4022f0:       48 89 7d f8             mov    %rdi,-0x8(%rbp)
  4022f4:       89 75 f4                mov    %esi,-0xc(%rbp)
  4022f7:       90                      nop
  4022f8:       90                      nop
  4022f9:       5d                      pop    %rbp
  4022fa:       c3                      ret
...

The aarch64_skip_prologue implementation does use gcc line numbers, which are:
...
File name                    Line number    Starting address    View    Stmt
pck.adb                               17            0x402580               x
pck.adb                               17            0x402580       1       x
pck.adb                               19            0x40258c               x
pck.adb                               20            0x402590               x
...
and which are represented like this internally in gdb:
...
INDEX  LINE   ADDRESS            IS-STMT PROLOGUE-END
0      17     0x0000000000402580 Y
1      17     0x0000000000402580 Y
2      19     0x000000000040258c Y
3      20     0x0000000000402590 Y
4      END    0x00000000004025a0 Y
...

The second entry is interpreted as end-of-prologue, so 0x402580 is used, while
the actual end of the prologue is at 0x40258c:
...
0000000000402580 <pck__inspect>:
  402580:       d10043ff        sub     sp, sp, #0x10
  402584:       f90007e0        str     x0, [sp, #8]
  402588:       b90007e1        str     w1, [sp, #4]
  40258c:       d503201f        nop
  402590:       d503201f        nop
  402594:       910043ff        add     sp, sp, #0x10
  402598:       d65f03c0        ret
  40259c:       d503201f        nop
...

Note that the architecture-specific prologue analyzer would have gotten this
right:
...
(gdb) p /x aarch64_analyze_prologue (gdbarch, pc, pc + 128, 0)
$2 = 0x40258c
...

Fix the FAIL by making the test-case more robust against problems in prologue
skipping, by setting the breakpoint on line 19 instead.

Likewise in a few similar test-cases.

Tested on x86_64-linux and aarch64-linux.
2022-09-07 11:29:11 +02:00
0833fb8f4b Fix endianness handling for arm record self tests
v2:

- Add 32-bit Arm instruction selftest
- Refactored abstract memory reader into abstract instruction reader
- Adjusted code to use templated type and to use host endianness as
  opposed to target endianness.

The arm record tests handle 16-bit and 32-bit thumb instructions, but the
code is laid out in a way that handles the 32-bit thumb instructions as
two 16-bit parts.

This is fine, but it is prone to host-endianness issues given how the two
16-bit parts are stored and how they are accessed later on. Arm is
little-endian by default, so running this test with a GDB built with
--enable-targets=all and on a big endian host will run into the following:

Running selftest arm-record.
Process record and replay target doesn't support syscall number -2036195
Process record does not support instruction 0x7f70ee1d at address 0x0.
Self test failed: self-test failed at ../../binutils-gdb/gdb/arm-tdep.c:14482

It turns out the abstract memory reader class is more generic than it needs to
be, and we can simplify the code a bit by assuming we have a simple instruction
reader that only reads up to 4 bytes, which is the length of a 32-bit
instruction.

Instead of returning a bool, we return instead the instruction that has been
read. This way we avoid having to deal with the endianness conversion, and use
the host endianness instead. The Arm selftests can be executed on non-Arm
hosts.

While at it, Tom suggested adding a 32-bit Arm instruction selftest to increase
the coverage of the selftests.

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

Co-authored-by: Tom de Vries <tdevries@suse.de>
2022-09-07 09:17:32 +01:00
6d0aebbcff [gdb/testsuite] Use prototype to call libc functions
On openSUSE Tumbleweed (using glibc 2.36), I run into:
...
(gdb) print /d (int) munmap (4198400, 4096)^M
Invalid cast.^M
(gdb) FAIL: gdb.base/break-main-file-remove-fail.exp: cmdline: \
  get integer valueof "(int) munmap (4198400, 4096)"
...

The problem is that after starting the executable, the symbol has type
"void (*) (void)":
...
(gdb) p munmap
$1 = {<text variable, no debug info>} 0x401030 <munmap@plt>
(gdb) start
  ...
(gdb) p munmap
$2 = {void (void)} 0x7ffff7feb9a0 <__GI_munmap>
...
which causes the "Invalid cast" error.

Looking at the debug info for glibc for symbol __GI_munmap:
...
 <0><189683>: Abbrev Number: 1 (DW_TAG_compile_unit)
    <189691>   DW_AT_name        : ../sysdeps/unix/syscall-template.S
    <189699>   DW_AT_producer    : GNU AS 2.39.0
<1><1896ae>: Abbrev Number: 2 (DW_TAG_subprogram)
    <1896af>   DW_AT_name        : __GI___munmap
    <1896b3>   DW_AT_external    : 1
    <1896b4>   DW_AT_low_pc      : 0x10cad0
    <1896bc>   DW_AT_high_pc     : 37
...
that's probably caused by this bit (or similar bits for other munmap aliases).

This is fixed in gas on trunk by commit 5578fbf672e ("GAS: Add a return type
tag to DWARF DIEs generated for function symbols").

Work around this (for say gas 2.39) by explicitly specifying the prototype for
munmap.

Likewise for getpid in a couple of other test-cases.

Tested on x86_64-linux.
2022-09-07 09:59:12 +02:00
f555b327d4 LoongArch: fix gas BFD_RELOC_8/16/24 bug
If fixP->fx_subsy is NULL, BFD_RELOC_8/16/24 can't convert to
BFD_RELOC_LARCH_xxx.

gas/config/tc-loongarch.c
2022-09-07 11:19:38 +08:00
3c4e228256 Automatic date update in version.in 2022-09-07 00:00:08 +00:00
d647c797b7 Add debuginfod support for objdump -S
Currently objdump -S is not able to make use files downloaded from debuginfod.
This is due to bfd_find_nearest_line_discriminator being unable to locate any
separate debuginfo files in the debuginfod cache. Additionally objdump lacked
a call to debuginfod_find_source in order to download missing source files.

Fix this by using bfd_find_nearest_line_with_alt instead of
bfd_find_nearest_line_discriminator. Also add a call to
debuginfod_find_source in order to download missing source files.

Co-authored-by: Nick Clifton <nickc@redhat.com>
2022-09-06 10:43:07 -04:00
6e7a29c7de bfd: Add bfd_find_nearest_line_with_alt
bfd_find_nearest_line_with_alt functions like bfd_find_nearest_line with
the addition of a parameter for specifying the filename of a supplementary
debug file such as one referenced by .gnu_debugaltlink or .debug_sup.

This patch focuses on implementing bfd_find_nearest_line_with_alt
support for ELF/DWARF2 .gnu_debugaltlink. For other targets this
function simply sets the invalid_operation bfd_error.
2022-09-06 10:42:50 -04:00
cb21dd0c59 gdb: add Tsukasa Oi to gdb/MAINTAINERS 2022-09-06 08:57:25 +00:00
0908f111fc gdb: move a write after approval entry into the correct place
Noticed in passing that an entry in the MAINTAINERS write after
approval list was in the wrong place.
2022-09-06 09:47:04 +01:00
f202889269 gdb: Add non-enum disassembler options
This is paired with "opcodes: Add non-enum disassembler options".

There is a portable mechanism for disassembler options and used on some
architectures:

-   ARC
-   Arm
-   MIPS
-   PowerPC
-   RISC-V
-   S/390

However, it only supports following forms:

-   [NAME]
-   [NAME]=[ENUM_VALUE]

Valid values for [ENUM_VALUE] must be predefined in
disasm_option_arg_t.values. For instance, for -M cpu=[CPU] in ARC
architecture, opcodes/arc-dis.c builds valid CPU model list from
include/elf/arc-cpu.def.

In this commit, it adds following format:

-   [NAME]=[ARBITRARY_VALUE] (cannot contain "," though)

This is identified by NULL value of disasm_option_arg_t.values
(normally, this is a non-NULL pointer to a NULL-terminated list).

gdb/ChangeLog:

	* gdb/disasm.c (set_disassembler_options): Add support for
	non-enum disassembler options.
	(show_disassembler_options_sfunc): Likewise.
2022-09-06 08:26:59 +00:00
d878bb39e4 [gdb/symtab] Support .debug_names section with TUs in .debug_info
When running test-case gdb.cp/cpexprs-debug-types.exp on target board
cc-with-debug-names/gdb:debug_flags=-gdwarf-5, we get an executable with
a .debug_names section, but no .debug_types section.  For dwarf-5, the TUs
are no longer put in a separate unit, but instead they're put in the
.debug_info section.

When loading the executable, the .debug_names section is silently ignored
because of this check in dwarf2_read_debug_names:
...
  if (map->tu_count != 0)
    {
      /* We can only handle a single .debug_types when we have an
         index.  */
      if (per_bfd->types.size () != 1)
        return false;
...
which triggers because per_bfd->types.size () == 0.

The intention of the check is to make sure we don't have more that one
.debug_types section, as can happen in a object file (see PR12984):
...
$ grep "\.debug_types" 11.s
        .section        .debug_types,"G",@progbits,wt.75c042c23a9a07ee,comdat
        .section        .debug_types,"G",@progbits,wt.c59c413bf50a4607,comdat
...

Fix this by:
- changing the check condition to "per_bfd->types.size () > 1", and
- handling per_bfd->types.size () == 0.

Tested on x86_64-linux.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29385
2022-09-06 10:15:01 +02:00
a4fac33dc3 [gdb/testsuite] Add gdb.dwarf2/debug-names-bad-cu-index.exp
Add test-case gdb.dwarf2/debug-names-bad-cu-index.exp, a regression test for
commit 2fe9a3c41fa ("[gdb/symtab] Fix bad compile unit index complaint").

Tested on x86_64-linux.
2022-09-06 10:15:00 +02:00
4c146f5d60 [gdb/testsuite] Add gdb.dwarf2/debug-names-tu.exp
Add a test-case gdb.dwarf2/debug-names-tu.exp, that uses the dwarf assembler
to specify a .debug_names index with the TU list referring to a TU from the
.debug_types section.

This is intended to produce something similar to:
...
$ gcc -g -fdebug-types-section ~/hello.c -gdwarf-4
$ gdb-add-index -dwarf-5 a.out
...

Tested on x86_64-linux.
2022-09-06 10:15:00 +02:00
9869e2e5c7 opcodes: Add non-enum disassembler options
This is paired with "gdb: Add non-enum disassembler options".

There is a portable mechanism for disassembler options and used on some
architectures:

-   ARC
-   Arm
-   MIPS
-   PowerPC
-   RISC-V
-   S/390

However, it only supports following forms:

-   [NAME]
-   [NAME]=[ENUM_VALUE]

Valid values for [ENUM_VALUE] must be predefined in
disasm_option_arg_t.values. For instance, for -M cpu=[CPU] in ARC
architecture, opcodes/arc-dis.c builds valid CPU model list from
include/elf/arc-cpu.def.

In this commit, it adds following format:

-   [NAME]=[ARBITRARY_VALUE] (cannot contain "," though)

This is identified by NULL value of disasm_option_arg_t.values
(normally, this is a non-NULL pointer to a NULL-terminated list).

include/ChangeLog:

	* dis-asm.h (disasm_option_arg_t): Update comment of values
	to allow non-enum disassembler options.

opcodes/ChangeLog:

	* riscv-dis.c (print_riscv_disassembler_options): Support
	non-enum disassembler options on printing disassembler help.
	* arc-dis.c (print_arc_disassembler_options): Likewise.
	* mips-dis.c (print_mips_disassembler_options): Likewise.
2022-09-06 02:23:21 +00:00
a49fdb49c8 Automatic date update in version.in 2022-09-06 00:00:07 +00:00
b9593cb705 sim/riscv: Complete tidying up with SBREAK
This commit removes SBREAK-related references on the simulator as it's
renamed to EBREAK in 2016 (the RISC-V ISA, version 2.1).

sim/ChangeLog:

	* riscv/sim-main.c (execute_i): Use "ebreak" instead of "sbreak".
2022-09-05 09:42:06 +01:00
06c00d5fea Automatic date update in version.in 2022-09-05 00:00:07 +00:00
a411a714f3 sim/erc32: fix gdb with simulator build
In commit:

  commit 7b01c1cc1d111ba0afa51e60fa9842d3b971e2d1
  Date:   Mon Apr 4 22:38:04 2022 +0100

      sim: fixes for libopcodes styled disassembler

changes were made to the simulator source to handle the new libopcodes
disassembler styling API.

Unfortunately, these changes broke building GDB with the erc32 (sparc)
simulator, like this:

  ../src/configure --target=sparc-linux
  make all-gdb
  ....
  /usr/bin/ld: ../sim/erc32/libsim.a(interf.o): in function `sim_open':
  /tmp/build/sim/../../src/sim/erc32/interf.c:247: undefined reference to `fprintf_styled'
  collect2: error: ld returned 1 exit status

The problem is that in commit 7b01c1cc1d11 the fprintf_styled function
was added into sis.c.  This file is only used when building the 'run'
binary, that is, the standalone simulator, and is not included in the
libsim.a library.

Now, the obvious fix would be to move fprintf_styled into libsim.a,
however, that turns out to be tricky.

The erc32 simulator currently has two copies of the function run_sim,
one in sis.c, and one in interf.c, both of these copies are global.

Currently, the 'run' binary links fine, though I suspect this might be
pure luck.  When I tried moving fprintf_styled into interf.c, I ran
into multiple-definition (of run_sim) errors.  I suspect that by
requiring the linker to pull in fprintf_styled from libsim.a I was
changing the order in which symbols were loaded, and the linker was
now seeing both copies of run_sim, while currently we only see one
copy.

The ideal solution of course, would be to merge the two similar, but
slightly different copies of run_sim, and just use the one copy.  Then
we could safely move fprintf_styled into interf.c too, and all would
be good.

But I don't have time right now to start debugging the erc32
simulator, so I wanted a solution that fixes the build without
introducing multiple definition errors.

The easiest solution I think is to just have two copies of
fprintf_styled, one in sis.c, and one in interf.c.  Unlike run_sim,
these two copies are both static, so we will not run into multiple
definition issues with this function.  The functions themselves are
not very big, so it's not a huge amount of duplicate code.

I am very aware that this is not an ideal solution, and I would
welcome anyone who wants to take on fixing the run_sim problem
properly, and then cleanup the fprintf_styled duplication.
2022-09-04 18:02:15 +01:00
d236680ae9 Automatic date update in version.in 2022-09-04 00:00:07 +00:00
148b68a56c Automatic date update in version.in 2022-09-03 00:00:08 +00:00
658ba81aef xtensa: bfd: fix TLS relocations generated for PIE
When generating TLS dynamic relocations the existing xtensa BFD code
treats linking to a PIE exactly as linking to a shared object, resulting
in generation of wrong relocations for TLS entries. Fix that and add
tests.

bfd/
	* elf32-xtensa.c (elf_xtensa_check_relocs): Use bfd_link_dll
	instead of bfd_link_pic. Add elf_xtensa_dynamic_symbol_p test
	when generating GOT entries.
	(elf_xtensa_relocate_section): Use bfd_link_dll instead of
	bfd_link_pic.
ld/
	* testsuite/ld-xtensa/tlspie.dd: New file.
	* testsuite/ld-xtensa/tlspie.rd: New file.
	* testsuite/ld-xtensa/tlspie.sd: New file.
	* testsuite/ld-xtensa/tlspie.td: New file.
	* testsuite/ld-xtensa/xtensa-linux.exp (TLS PIE transitions):
	New test.
2022-09-02 09:54:49 -07:00
1a51864b46 xtensa: adjust expected output in ld TLS tests
objdump output for l32r opcode was changed in commit b3ea76397a07
("opcodes: xtensa: display loaded literal value"), but xtensa linker TLS
relaxation tests weren't adjusted accordingly.
readelf output was changed in commit 23356397449a ("Adjust readelf's
output so that section symbols without a name as shown with their
section name."), but xtensa linker TLS relaxation tests weren't adjusted
accordingly.
Fix expected output changes in xtensa ld TLS relaxation tests.

ld/
	* testsuite/ld-xtensa/tlsbin.dd: Adjust expected output for l32r
	opcodes.
	* testsuite/ld-xtensa/tlsbin.rd: Adjust expected output to allow
	for named section symbols.
	* testsuite/ld-xtensa/tlspic.dd: Adjust expected output for l32r
	opcodes.
	* testsuite/ld-xtensa/tlspic.rd: Adjust expected output to allow
	for named section symbols.
2022-09-02 09:54:22 -07:00
d0a122d311 Add OpenBSD ARM Little Endian BFD support.
* config.bfd (arm-*-openbsd*): Restore target.
2022-09-02 11:29:54 +01:00
8fe1be5fab RISC-V: Print highest address (-1) on the disassembler
This patch makes possible to print the highest address (-1) and the addresses
related to gp which value is -1.  This is particularly useful if the highest
address space is used for I/O registers and corresponding symbols are defined.
Besides, despite that it is very rare to have GP the highest address, it would
be nice because we enabled highest address printing on regular cases.

gas/ChangeLog:

	* testsuite/gas/riscv/dis-addr-topaddr.s: New test for the top
	address (-1) printing.
	* testsuite/gas/riscv/dis-addr-topaddr-32.d: Likewise.
	* testsuite/gas/riscv/dis-addr-topaddr-64.d: Likewise.
	* testsuite/gas/riscv/dis-addr-topaddr-gp.s: New test for
	GP-relative addressing when GP is the highest address (-1).
	* testsuite/gas/riscv/dis-addr-topaddr-gp-32.d: Likewise.
	* testsuite/gas/riscv/dis-addr-topaddr-gp-64.d: Likewise.

opcodes/ChangeLog:

	* riscv-dis.c (struct riscv_private_data): Add `to_print_addr' to
	enable printing the highest address.
	(maybe_print_address): Utilize `to_print_addr'.
	(riscv_disassemble_insn): Likewise.
2022-09-02 14:03:28 +08:00
48525554d5 RISC-V: PR29342, Fix RV32 disassembler address computation
If either the base register is `zero', `tp' or `gp' and XLEN is 32, an
incorrectly sign-extended address is produced when printing.  This commit
fixes this by fitting an address into a 32-bit value on RV32.

Besides, H. Peter Anvin discovered that we have wrong address computation
for JALR instruction (the initial bug is back in 2018).  This commit also
fixes that based on the idea of Palmer Dabbelt.

gas/
	pr29342
	* testsuite/gas/riscv/lla32.d: Reflect RV32 address computation fix.
	* testsuite/gas/riscv/dis-addr-overflow.s: New testcase.
	* testsuite/gas/riscv/dis-addr-overflow-32.d: Likewise.
	* testsuite/gas/riscv/dis-addr-overflow-64.d: Likewise.
opcodes/
	pr29342
	* riscv-dis.c (maybe_print_address): Fit address into 32-bit on RV32.
	(print_insn_args): Fix JALR address by adding EXTRACT_ITYPE_IMM.
2022-09-02 12:06:27 +08:00
e9f7ba21f0 RISC-V: Add address printer tests with ADDIW
Address sequences involving ADDIW/C.ADDIW instructions require special
handling to sign-extend lower 32-bits of the original result.

This commit tests whether this sign-extension works.

gas/ChangeLog:

	* testsuite/gas/riscv/dis-addr-addiw.s: New to test the address
	computation with sign extension as used in ADDIW/C.ADDIW.
	* testsuite/gas/riscv/dis-addr-addiw-a.d: Test PC sign bit 0.
	* testsuite/gas/riscv/dis-addr-addiw-b.d: Test PC sign bit 1.

gas/ChangeLog:

	* testsuite/gas/riscv/dis-addr-addiw-a.d: New test.
	* testsuite/gas/riscv/dis-addr-addiw-b.d: New test.
	* testsuite/gas/riscv/dis-addr-addiw.s: New test.
2022-09-02 09:40:04 +08:00
5edf42b635 Automatic date update in version.in 2022-09-02 00:00:13 +00:00
ca6d5a55e7 sim: Update mailing list address
The commit bf1102165389 "* MAINTAINERS: Perform some obvious fixups."
back in 2009 changed the mailing list address gdb-patches@sources.redhat.com
to gdb-patches@sourceware.org.

This commit does the same to sim/MAINTAINERS.

sim/ChangeLog:

	* MAINTAINERS: Update mailing list address.

Change-Id: I56c6bf21a4bddfb35ffc3336ffcba7ff9b39926e
2022-09-01 10:15:09 -04:00
f4492fb683 dllwrap, windres and dlltools use mktemp, which should be avoided
PR 29534
	* dllwrap.c: Replace uses of choose_temp_base() with
	make_temp_file().
	* dlltool.c: Likewise.
	* resrc.c: Likewise.
2022-09-01 14:51:50 +01:00
7b0d7ede79 GDB/doc: Document the Guile `#:unlimited' keyword
Document the Guile `#:unlimited' keyword and deprecate the internal
integer representation it corresponds to for integer parameters.
2022-09-01 11:30:18 +01:00
be2057b902 gdb/python-config: replace deprecated distutils.sysconfig
When running the gdb/configure script on ubuntu 22.04 with
python-3.10.4, I see:

    checking for python... no
    checking for python3... /usr/bin/python3
    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
      from distutils import sysconfig
    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
      from distutils import sysconfig
    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
      from distutils import sysconfig
    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
      from distutils import sysconfig
    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives
      from distutils import sysconfig
    [...]/gdb/python/python-config.py:7: DeprecationWarning: The distutils.sysconfig module is deprecated, use sysconfig instead
      from distutils import sysconfig
    checking for python... yes

The distutils module is deprecated as per the PEP 632[1] and will be
removed in python-3.12.

This patch migrates gdb/python/python-config.py from distutils.sysconfig
to the sysconfig module[2].

The sysconfig module has has been introduced in the standard library in
python 3.2.  Given that support for python < 3.2 has been removed by
edae3fd6600f: "gdb/python: remove Python 2 support", this patch does not
need to support both implementations for backward compatibility.

Tested on ubuntu-22.04 and ubuntu 20.04.

[1] https://peps.python.org/pep-0632/
[2] https://docs.python.org/3/library/sysconfig.html

Change-Id: Id0df2baf3ee6ce68bd01c236b829ab4c0a4526f6
2022-09-01 04:51:33 -04:00
a651b117e1 Automatic date update in version.in 2022-09-01 00:00:07 +00:00
058dc2c959 Fix interpreter-exec crash
PR mi/10347 points out that using interpreter-exec inside of a
"define" command will crash gdb.  The bug here is that
gdb_setup_readline doesn't check for the case where instream==nullptr.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=10347
2022-08-31 11:03:40 -06:00
1e28eebbbc Fix "source" with interpreter-exec
PR mi/15811 points out that "source"ing a file that uses
interpreter-exec will put gdb in a weird state, where the CLI stops
working.  The bug is that tui_interp::suspend does not unregister the
event file descriptor.

The test case is from Andrew Burgess.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=15811
2022-08-31 11:03:40 -06:00
610f8c6339 Remove a call to clear_interpreter_hooks
mi_interp::resume does not need to call clear_interpreter_hooks,
because this is already done by interp_set.
2022-08-31 11:03:40 -06:00
90621f6922 TUI stdout buffering cleanup
The TUI checks against gdb_stdout to decide when to buffer.  It seems
much cleaner to me to simply record this as an attribute of the stream
itself.
2022-08-31 11:03:40 -06:00
b8043d2721 Remove a ui-related memory leak
gdb_setup_readline makes new streams and assigns to the various stream
members of struct ui.  However, these assignments cause the previous
values to leak.  As far as I can, this code is simply unnecessary and
can be removed -- with the exception of the assignment to gdb_stdtarg,
which is not initialized anywhere else.
2022-08-31 11:03:40 -06:00
4311c583a6 Remove tui_out_new
tui_out_new is just a simple wrapper for 'new' and can be removed,
simplifying gdb a tiny bit.
2022-08-31 11:03:40 -06:00
c3d4b6a6d9 Use scoped_restore in safe_parse_type
This changes safe_parse_type to use scoped_restore rather than
explicit assignments.
2022-08-31 11:03:40 -06:00
d9f9581186 Use member initialization in 'struct ui'
This changes 'struct ui' to use member initialization.  This is
simpler to understand.
2022-08-31 11:03:40 -06:00
5a09f12056 Remove two unused members from mi_interp
These members of mi_interp aren't used and can be removed.
2022-08-31 11:03:40 -06:00
334c30c253 Remove obsolete filtering comment
top.h has an obsolete comment about the use of _unfiltered.
2022-08-31 11:03:40 -06:00
8dc84baf2e Remove the "for moment" comments
A few spots setting some gdb output stream variables have a "for
moment" comment.  These comments aren't useful and I think the moment
has passed -- these are permanent now.
2022-08-31 11:03:40 -06:00