2.41 Release sources
diff --git a/ChangeLog b/ChangeLog
index 356ac16..3f6fa84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2023-07-30  Nick Clifton  <nickc@redhat.com>
+
+	This is the 2.41 release.
+	* src-release.sh: Add Changelog.git.
+	* ChangeLog.git: New file.
+
 2023-07-03  Nick Clifton  <nickc@redhat.com>
 
 	2.41 Branch Point.
diff --git a/ChangeLog.git b/ChangeLog.git
new file mode 100644
index 0000000..41394cc5
--- /dev/null
+++ b/ChangeLog.git
@@ -0,0 +1,142648 @@
+2023-07-30  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-29  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-28  Jan Beulich  <jbeulich@suse.com>
+
+	gas: amend X_unsigned uses
+	PR gas/30688
+
+	X_unsigned being clear does not indicate a negative number; it merely
+	indicates a signed one (whose sign may still be clear). Amend two uses
+	by an actual value check.
+
+2023-07-28  Tsukasa OI  <research_trasio@irq.a4lg.com>
+
+	RISC-V: Add actual 'Zvkt' extension support
+	The 'Zvkt' extension is listed on the added extensions in the GNU Binutils
+	version 2.41 (see binutils/NEWS).  However, the support of this extension
+	was actually missing.
+
+	This commit adds actual support of this extension and adds implications
+	from 'Zvkn' and 'Zvks' superset extensions.
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_implicit_subsets) Add implications from
+		'Zvkn' and 'Zvks'.  (riscv_supported_std_z_ext): Add 'Zvkt' to
+		the supported extension list.
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: Support `-gnuabi64' target triplet suffix for 64-bit Linux targets
+	Make the n64 ABI the default for 64-bit Linux targets specified with
+	`-gnuabi64' suffix included in the target triplet, for configurations
+	such as the Debian mips64el and mips64r6el ports.  Adjust testsuite
+	configuration accordingly.
+
+	There are the following regressions with the new target triplet:
+
+	mips64-linux-gnuabi64  +FAIL: readelf -S bintest
+	mips64-linux-gnuabi64  +FAIL: MIPS reloc estimation 1
+	mips64el-linux-gnuabi64  +FAIL: readelf -S bintest
+	mips64el-linux-gnuabi64  +FAIL: MIPS reloc estimation 1
+
+	The `readelf' issue comes from a difference in section headers produced
+	that the `binutils/testsuite/binutils-all/readelf.s-64' pattern template
+	does not match.  While there has been a precedent it does not appear to
+	me that there is a clear advantage from adding more and more variations
+	to the template rather than forking the existing template into multiple
+	ones for a more exact match.  So this is best deferred to a separate
+	discussion.
+
+	The MIPS reloc estimation issue is an actual bug in `objdump', which
+	discards a number of trailing entries from output here for n64 composed
+	relocations:
+
+	DYNAMIC RELOCATION RECORDS
+	OFFSET           TYPE              VALUE
+	0000000000000000 R_MIPS_NONE       *ABS*
+	0000000000000000 R_MIPS_NONE       *ABS*
+
+	and consequently `ld/testsuite/ld-mips-elf/reloc-estimate-1.d' does not
+	match even though ELF output produced is correct according to `readelf':
+
+	Relocation section '.rel.dyn' at offset 0x10400 contains 2 entries:
+	  Offset          Info           Type           Sym. Value    Sym. Name
+	000000000000  000000000000 R_MIPS_NONE
+	                    Type2: R_MIPS_NONE
+	                    Type3: R_MIPS_NONE
+	000000010000  000300001203 R_MIPS_REL32      0000000000010010 foo@@V2
+	                    Type2: R_MIPS_64
+	                    Type3: R_MIPS_NONE
+
+	As a genuine bug this has to be handled separately.
+
+	Co-Authored by: Maciej W. Rozycki <macro@orcam.me.uk>
+
+		bfd/
+		* config.bfd: Add `mips64*el-*-linux*-gnuabi64' and
+		`mips64*-*-linux*-gnuabi64' targets.
+
+		binutils/
+		* testsuite/binutils-all/mips/mips.exp: Handle `*-*-*-gnuabi64'
+		targets.
+		* testsuite/binutils-all/objcopy.exp: Handle
+		`mips64*-*-*-gnuabi64' targets.
+		* testsuite/binutils-all/remove-relocs-01.d: Likewise.
+		* testsuite/binutils-all/remove-relocs-04.d: Likewise.
+		* testsuite/binutils-all/remove-relocs-05.d: Likewise.
+		* testsuite/binutils-all/remove-relocs-06.d: Likewise.
+
+		gas/
+		* configure.ac: Handle `mips64*-linux-gnuabi64' targets.
+		* configure: Regenerate.
+		* testsuite/gas/mips/compact-eh-eb-7.d: Handle
+		`mips64*-*-*-gnuabi64' targets.
+		* testsuite/gas/mips/compact-eh-el-7.d: Likewise.
+
+		ld/
+		* configure.tgt: Add `mips64*el-*-linux-gnuabi64' and
+		`mips64*-*-linux-gnuabi64' targets.
+		* testsuite/ld-undefined/undefined.exp: Handle
+		`mips64*-*-*-gnuabi64' targets.
+		* testsuite/ld-mips-elf/attr-gnu-4-10.d: Likewise.
+		* testsuite/ld-mips-elf/compact-eh6.d: Likewise.
+		* testsuite/ld-mips-elf/mips-elf.exp: Handle `*-*-*-gnuabi64'
+		targets.
+
+	(cherry picked from commit 29c108c9610640439daa5244a573348b7c47d994)
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS/GAS/testsuite: Fix n64 compact EH failures
+	Expect a `.MIPS.options' section alternatively to `.reginfo' and ignore
+	contents of either as irrelevant for all the affected compact EH tests,
+	removing these regressions:
+
+	mips64-openbsd  -FAIL: Compact EH EB #1 with personality ID and FDE data
+	mips64-openbsd  -FAIL: Compact EH EB #2 with personality routine and FDE data
+	mips64-openbsd  -FAIL: Compact EH EB #3 with personality id and large FDE data
+	mips64-openbsd  -FAIL: Compact EH EB #4 with personality id, FDE data and LSDA
+	mips64-openbsd  -FAIL: Compact EH EB #5 with personality routine, FDE data and LSDA
+	mips64-openbsd  -FAIL: Compact EH EB #6 with personality id, LSDA and large FDE data
+	mips64-openbsd  -FAIL: Compact EH EL #1 with personality ID and FDE data
+	mips64-openbsd  -FAIL: Compact EH EL #2 with personality routine and FDE data
+	mips64-openbsd  -FAIL: Compact EH EL #3 with personality id and large FDE data
+	mips64-openbsd  -FAIL: Compact EH EL #4 with personality id, FDE data and LSDA
+	mips64-openbsd  -FAIL: Compact EH EL #5 with personality routine, FDE data and LSDA
+	mips64-openbsd  -FAIL: Compact EH EL #6 with personality id, LSDA and large FDE data
+	mips64el-openbsd  -FAIL: Compact EH EB #1 with personality ID and FDE data
+	mips64el-openbsd  -FAIL: Compact EH EB #2 with personality routine and FDE data
+	mips64el-openbsd  -FAIL: Compact EH EB #3 with personality id and large FDE data
+	mips64el-openbsd  -FAIL: Compact EH EB #4 with personality id, FDE data and LSDA
+	mips64el-openbsd  -FAIL: Compact EH EB #5 with personality routine, FDE data and LSDA
+	mips64el-openbsd  -FAIL: Compact EH EB #6 with personality id, LSDA and large FDE data
+	mips64el-openbsd  -FAIL: Compact EH EL #1 with personality ID and FDE data
+	mips64el-openbsd  -FAIL: Compact EH EL #2 with personality routine and FDE data
+	mips64el-openbsd  -FAIL: Compact EH EL #3 with personality id and large FDE data
+	mips64el-openbsd  -FAIL: Compact EH EL #4 with personality id, FDE data and LSDA
+	mips64el-openbsd  -FAIL: Compact EH EL #5 with personality routine, FDE data and LSDA
+	mips64el-openbsd  -FAIL: Compact EH EL #6 with personality id, LSDA and large FDE data
+
+	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
+
+		gas/
+		* testsuite/gas/mips/compact-eh-eb-1.d: Accept `.MIPS.options'
+		section as an alternative to `.reginfo' and ignore contents of
+		either.
+		* testsuite/gas/mips/compact-eh-eb-2.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-3.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-4.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-5.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-6.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-1.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-2.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-3.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-4.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-5.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-6.d: Likewise.
+
+	(cherry picked from commit 316be2b229f5bd07ebef48fd1d7b8cb103e4d815)
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	testsuite: Handle composed R_MIPS_NONE relocations
+	MIPS n64 ABI has a peculiarity where all relocations are composed of
+	three, with subsequent relocation types set to R_MIPS_NONE if further
+	calculation is not required.  Example output produced by `readelf' and
+	`objdump' for such relocations is:
+
+	  Offset          Info           Type           Sym. Value    Sym. Name + Addend
+	000000000000  000800000002 R_MIPS_32         0000000000000000 foo + 0
+	                    Type2: R_MIPS_NONE
+	                    Type3: R_MIPS_NONE
+
+	and:
+
+	OFFSET           TYPE              VALUE
+	0000000000000000 R_MIPS_32         foo
+	0000000000000000 R_MIPS_NONE       *ABS*
+	0000000000000000 R_MIPS_NONE       *ABS*
+
+	respectively.  The presence of these extra R_MIPS_NONE entries is not
+	relevant for generic or even some MIPS tests, so optionally match them
+	with the respective dump patterns, also discarding `xfail' annotation
+	for MIPS/OpenBSD targets from gas/elf/missing-build-notes.d, removing
+	these regressions:
+
+	mips64-openbsd  -FAIL: readelf -r bintest
+	mips64-openbsd  -FAIL: forward expression
+	mips64-openbsd  -FAIL: assignment tests
+	mips64-openbsd  -FAIL: gas/all/none
+	mips64-openbsd  -XFAIL: gas/elf/missing-build-notes
+	mips64-openbsd  -FAIL: macro test 2
+	mips64-openbsd  -FAIL: macro irp
+	mips64-openbsd  -FAIL: macro rept
+	mips64-openbsd  -FAIL: nested irp/irpc/rept
+	mips64-openbsd  -FAIL: macro vararg
+	mips64-openbsd  -FAIL: mips jalx
+	mips64-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of Jump Instruction issue
+	mips64el-openbsd  -FAIL: readelf -r bintest
+	mips64el-openbsd  -FAIL: forward expression
+	mips64el-openbsd  -FAIL: assignment tests
+	mips64el-openbsd  -FAIL: gas/all/none
+	mips64el-openbsd  -XFAIL: gas/elf/missing-build-notes
+	mips64el-openbsd  -FAIL: macro test 2
+	mips64el-openbsd  -FAIL: macro irp
+	mips64el-openbsd  -FAIL: macro rept
+	mips64el-openbsd  -FAIL: nested irp/irpc/rept
+	mips64el-openbsd  -FAIL: macro vararg
+	mips64el-openbsd  -FAIL: mips jalx
+	mips64el-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of Jump Instruction issue
+
+	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
+
+		binutils/
+		* testsuite/binutils-all/readelf.r-64: Optionally match extra
+		R_MIPS_NONE pairs.
+
+		gas/
+		* testsuite/gas/all/assign.d: Optionally match extra
+		R_MIPS_NONE pairs.
+		* testsuite/gas/all/fwdexp.d: Likewise.
+		* testsuite/gas/all/none.d: Likewise.
+		* testsuite/gas/macros/irp.d: Likewise.
+		* testsuite/gas/macros/repeat.d: Likewise.
+		* testsuite/gas/macros/rept.d: Likewise.
+		* testsuite/gas/macros/test2.d: Likewise.
+		* testsuite/gas/macros/vararg.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-1.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-2.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-3.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-4.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-5.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-6.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-1.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-2.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-3.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-4.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-5.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-6.d: Likewise.
+		* testsuite/gas/mips/loongson-2f-3.d: Likewise.
+		* testsuite/gas/mips/mips-jalx.d: Likewise.
+		* testsuite/gas/elf/missing-build-notes.d: Likewise.  Remove
+		the `xfail' tag.
+
+		ld/
+		* testsuite/ld-mips-elf/reloc-estimate-1.d: Optionally match
+		extra R_MIPS_NONE pairs.
+
+	(cherry picked from commit ed4dca900c0dbc1317917cb289255d2f8d03f732)
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS/testsuite: Handle 64-bit addresses
+	Several MIPS test cases are suitable for the n64 ABI if not for the
+	extra leading zeros or spaces in addresses not handled by dump patterns.
+	Match the characters then, removing these regressions:
+
+	mips64-openbsd  -FAIL: .set arch=FOO
+	mips64-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of nop issue
+	mips64-openbsd  -FAIL: MIPS DSP ASE for MIPS64
+	mips64-openbsd  -FAIL: gas/mips/align2
+	mips64-openbsd  -FAIL: gas/mips/align2-el
+	mips64-openbsd  -FAIL: Locally-resolvable PC-relative code references
+	mips64-openbsd  -FAIL: MIPS jalx-1
+	mips64-openbsd  -FAIL: JAL overflow 2
+	mips64el-openbsd  -FAIL: .set arch=FOO
+	mips64el-openbsd  -FAIL: ST Microelectronics Loongson-2F workarounds of nop issue
+	mips64el-openbsd  -FAIL: MIPS DSP ASE for MIPS64
+	mips64el-openbsd  -FAIL: gas/mips/align2
+	mips64el-openbsd  -FAIL: gas/mips/align2-el
+	mips64el-openbsd  -FAIL: Locally-resolvable PC-relative code references
+	mips64el-openbsd  -FAIL: MIPS jalx-1
+	mips64el-openbsd  -FAIL: JAL overflow 2
+
+	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
+
+		gas/
+		* testsuite/gas/mips/align2-el.d: Match extra leading zeros
+		with addresses.
+		* testsuite/gas/mips/align2.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-1.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-2.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-3.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-4.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-5.d: Likewise.
+		* testsuite/gas/mips/compact-eh-eb-6.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-1.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-2.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-3.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-4.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-5.d: Likewise.
+		* testsuite/gas/mips/compact-eh-el-6.d: Likewise.
+		* testsuite/gas/mips/loongson-2f-2.d: Likewise.
+		* testsuite/gas/mips/loongson-2f-3.d: Likewise.
+		* testsuite/gas/mips/mips-jalx.d: Likewise.
+		* testsuite/gas/mips/mips64-dsp.d: Likewise.
+		* testsuite/gas/mips/pcrel-1.d: Likewise.
+		* testsuite/gas/mips/set-arch.d: Likewise.
+
+		ld/
+		* testsuite/ld-mips-elf/jaloverflow-2.d: Match extra leading
+		zeros and spaces with addresses as appropriate.
+		* testsuite/ld-mips-elf/jalx-1.d: Likewise.
+		* testsuite/ld-mips-elf/reloc-estimate-1.d: Likewise.
+
+	(cherry picked from commit ec76a6172f7b6d61f7d76c2bcf766122132116b8)
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	testsuite: Also discard the `.MIPS.options' section
+	Also discard the `.MIPS.options' section, used with n64 MIPS binaries,
+	along with similar other MIPS sections (`.reginfo', `.MIPS.abiflags')
+	not relevant for the test cases concerned, fixing these regressions:
+
+	mips64-openbsd  -FAIL: ld-elf/group3a
+	mips64-openbsd  -FAIL: ld-elf/group3b
+	mips64-openbsd  -FAIL: Place orphan sections (map file check)
+	mips64-openbsd  -FAIL: ld-elf/orphan-region
+	mips64-openbsd  -FAIL: ld-elf/orphan
+	mips64-openbsd  -FAIL: overlay size (map file check)
+	mips64-openbsd  -FAIL: overlay size
+	mips64el-openbsd  -FAIL: ld-elf/group3a
+	mips64el-openbsd  -FAIL: ld-elf/group3b
+	mips64el-openbsd  -FAIL: Place orphan sections (map file check)
+	mips64el-openbsd  -FAIL: ld-elf/orphan-region
+	mips64el-openbsd  -FAIL: ld-elf/orphan
+	mips64el-openbsd  -FAIL: overlay size (map file check)
+	mips64el-openbsd  -FAIL: overlay size
+
+	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
+
+		binutils/
+		* testsuite/binutils-all/strip-3.d: Add `-R .MIPS.options' to
+		the `strip' tag.
+
+		ld/
+		* testsuite/ld-elf/group.ld: Also discard `.MIPS.options'.
+		* testsuite/ld-elf/orphan-region.ld: Likewise.
+		* testsuite/ld-elf/orphan.ld: Likewise.
+		* testsuite/ld-mips-elf/got-page-1.ld: Likewise.
+		* testsuite/ld-scripts/overlay-size.t: Likewise.
+
+	(cherry picked from commit 60ec8306db150e687fc05870949056bae6c8d635)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/LD/testsuite: Fix MIPS16 interlinking test IRIX 6 regressions
+	IRIX 6 does not have MIPS16 stub section support in its n32 linker
+	scripts, causing such input sections to be propagated to the respective
+	output sections rather than `.text', causing dump pattern mismatches.
+
+	Expect IRIX 6 to fail with n32 testing then, removing this regression:
+
+	mips-sgi-irix6  -FAIL: MIPS16 interlinking for local functions 1 (n32)
+
+	We may choose to update IRIX 6 n32 linker scripts sometime, as it seems
+	a harmless change.
+
+		ld/
+		* testsuite/ld-mips-elf/mips-elf.exp: Expect IRIX 6 to fail with
+		n32 `mips16-local-stubs-1' testing.
+
+	(cherry picked from commit ec3205bbc6f2018c9907bfd6e6c6ae51a2e01432)
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS/LD/testsuite: Fix MIPS16 interlinking test n64 regressions
+	The MIPS16 interlinking test for local functions expects to be assembled
+	with 32-bit addressing, otherwise causing assembly warnings:
+
+	.../ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s: Assembler messages:
+	.../ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s:16: Warning: la used to load 64-bit address; recommend using dla instead
+
+	Use the per-ABI framework then to run the test explicitly for o32 and
+	n32 ABIs only, replacing the `-mips4' option from the `as' tag with
+	`.module mips4' pseudo-op within the source itself so as to avoid
+	assembly errors:
+
+	Assembler messages:
+	Error: -mips4 conflicts with the other architecture options, which imply -mips3
+
+	with n32 testing for some targets, and ultimately removing these
+	regressions:
+
+	mips64-openbsd  -FAIL: MIPS16 interlinking for local functions 1
+	mips64el-openbsd  -FAIL: MIPS16 interlinking for local functions 1
+
+	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
+
+		ld/
+		* testsuite/ld-mips-elf/mips16-local-stubs-1.d: Remove `-mips4'
+		from the `as' tag.
+		* testsuite/ld-mips-elf/mips16-local-stubs-1.s: Add `.module
+		mips4'.
+		* testsuite/ld-mips-elf/mips-elf.exp: Run `mips16-local-stubs-1'
+		for o32 and n32 ABIs only.
+
+	(cherry picked from commit 3c8ed624caf3317b2155a8c00a7af6a8bb6a3c10)
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS/GAS/testsuite: Force o32 for tests expecting 32-bit addressing
+	A few GAS tests expect to be assembled with 32-bit addressing, otherwise
+	causing an assembly warning:
+
+	.../gas/testsuite/gas/mips/fix-rm7000-2.s:11: Warning: la used to load 64-bit address; recommend using dla instead
+
+	or pattern dump mismatches against 32-bit address calculations, however
+	these tests do not enforce their expectation in any.  For none of them
+	the specific ABI used is of any relevance however, so select the o32 ABI
+	unconditionally, removing these failures with OpenBSD targets:
+
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (micromips)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips3)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips4)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips5)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r2)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r3)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r5)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon2)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon3)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeonp)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (r4000)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (sb1)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (vr5400)
+	mips64-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (xlr)
+	mips64-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon2)
+	mips64-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon3)
+	mips64-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeonp)
+	mips64-openbsd  -FAIL: Full MIPS R5900
+	mips64-openbsd  -FAIL: MIPS R5900 VU0
+	mips64-openbsd  -FAIL: Paired LL/SC for mips64r6 (mips64r6)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (micromips)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips3)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips4)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips5)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r2)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r3)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (mips64r5)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon2)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeon3)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (octeonp)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (r4000)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (sb1)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (vr5400)
+	mips64el-openbsd  -FAIL: MIPS RM7000 workarounds test 2 (xlr)
+	mips64el-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon2)
+	mips64el-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeon3)
+	mips64el-openbsd  -FAIL: MIPS-OCTEON octeon_saa_saad (octeonp)
+	mips64el-openbsd  -FAIL: Full MIPS R5900
+	mips64el-openbsd  -FAIL: MIPS R5900 VU0
+	mips64el-openbsd  -FAIL: Paired LL/SC for mips64r6 (mips64r6)
+
+	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
+
+		gas/
+		* testsuite/gas/mips/fix-rm7000-2.d: Add `-32' to the `as' tag.
+		* testsuite/gas/mips/micromips@fix-rm7000-2.d: Likewise.
+		* testsuite/gas/mips/r5900-full.d: Likewise.
+		* testsuite/gas/mips/r5900-vu0.d: Likewise.
+		* testsuite/gas/mips/llpscp-64.d: Add `as' tag with `-32'.
+		* testsuite/gas/mips/octeon-saa-saad.d: Likewise.
+
+	(cherry picked from commit ce0077a2e724146285c282037a41c68de6c0608d)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/LD/testsuite: Run `got-dump-1' for o32/n32 ABIs
+	The `got-dump-1' test case uses 32-bit addressing, so it makes no sense
+	to run it with the n64 ABI.  And there is a corresponding `got-dump-2'
+	test already for the n64 ABI.
+
+	Use the per-ABI framework then to run the `got-dump-1' test explicitly
+	for o32 and n32 ABIs only.
+
+		ld/
+		* testsuite/ld-mips-elf/mips-elf.exp: Run `got-dump-1' for o32
+		and n32 ABIs only.
+
+	(cherry picked from commit 70116eb5e6c74f9b526b1fec4e39f11238cb6a34)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/LD/testsuite: Fix `attr-gnu-4-10' failures with OpenBSD targets
+	OpenBSD targets produce ELF64 files while the pattern dump expects ELF32
+	output and specific header sizes.  Disable it for `mips64*-*-openbsd*'
+	for these targets then, removing these failures:
+
+	mips64-openbsd  -FAIL: ld-mips-elf/attr-gnu-4-10
+	mips64el-openbsd  -FAIL: ld-mips-elf/attr-gnu-4-10
+
+		ld/
+		* testsuite/ld-mips-elf/attr-gnu-4-10.d: Add `notarget' tag with
+		`mips64*-*-openbsd*'.
+
+	(cherry picked from commit b50c220d179d239eacd7d7e120f7466e2ea47170)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/LD/testsuite: Fix `attr-gnu-4-10' failures with IRIX targets
+	IRIX targets do not enable the production of a `.pdr' section in GAS by
+	default, which causes a failure with the `attr-gnu-4-10' test case due
+	to a difference resulting in the number and indices of sections produced
+	in linker output.
+
+	As the presence or absence of this section is not relevant to this test
+	case, just enable it unconditionally, fixing these regressions:
+
+	mips-sgi-irix5  -FAIL: ld-mips-elf/attr-gnu-4-10
+	mips-sgi-irix6  -FAIL: ld-mips-elf/attr-gnu-4-10
+
+		ld/
+		* testsuite/ld-mips-elf/attr-gnu-4-10.d: Add `as' tag with
+		`-mpdr'.
+
+	(cherry picked from commit d4e5281f03764a985b1229e9417a4fd1bebcea17)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/LD/testsuite: Fix JALR relaxation test failure with IRIX 6
+	The `mips-sgi-irix6' target only supports IRIX linker emulations, but
+	most JALR relaxation tests request the relevant traditional emulation
+	instead, causing a link failure:
+
+	./ld-new: unrecognised emulation mode: elf32btsmipn32
+	Supported emulations: elf32bmipn32 elf32bsmip elf64bmip
+
+	This is clearly an omission from the conversion to use the per-ABI
+	framework made with commit 78da84f99405 ("MIPS/LD/testsuite: Correct
+	mips-elf.exp test ABI/emul/endian arrangement").  These tests are also
+	endianness agnostic, which was missed in the conversion as well.
+
+	Remove the unnecessary explicit ABI and endianness options then and rely
+	on the per-ABI framework to get things right, removing this regression:
+
+	mips-sgi-irix6  -FAIL: MIPS relax-jalr-shared n32
+
+		ld/
+		* testsuite/ld-mips-elf/relax-jalr-n32-shared.d: Remove flags
+		related to ABI and endianness selection from the `as' and `ld'
+		tags.
+		* testsuite/ld-mips-elf/relax-jalr-n64.d: Likewise.
+		* testsuite/ld-mips-elf/relax-jalr-n64-shared.d: Likewise.
+		* testsuite/ld-mips-elf/mips-elf.exp: Remove `as' and `ld' tag
+		additions from the invocation of JALR relaxation tests.
+
+	(cherry picked from commit 94052ee4ccf0ac64b5f55da59878f13d567ef3cf)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/LD/testsuite: Fix unaligned JALX failures with OpenBSD targets
+	There are only n64 linker emulations included with `mips64*-*-openbsd*'
+	targets, however the unaligned JALX tests insist on running across all
+	targets and force the n32 ABI, causing link errors with the targets
+	concerned, e.g.:
+
+	./ld-new: tmpdir/unaligned-jalx-0.o: ABI is incompatible with that of the selected emulation
+	./ld-new: failed to merge target specific data of file tmpdir/unaligned-jalx-0.o
+	./ld-new: tmpdir/unaligned-insn.o: ABI is incompatible with that of the selected emulation
+	./ld-new: failed to merge target specific data of file tmpdir/unaligned-insn.o
+
+	Convert the tests then to use the per-ABI framework and run them for the
+	o32 and n32 ABIs, removing these regressions:
+
+	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 0
+	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 1
+	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 2
+	mips64-openbsd  -FAIL: MIPS JALX to unaligned symbol 3
+	mips64-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 0
+	mips64-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 1
+	mips64-openbsd  -FAIL: microMIPS JALX to unaligned symbol 0
+	mips64-openbsd  -FAIL: microMIPS JALX to unaligned symbol 1
+	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 0
+	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 1
+	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 2
+	mips64el-openbsd  -FAIL: MIPS JALX to unaligned symbol 3
+	mips64el-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 0
+	mips64el-openbsd  -FAIL: MIPS16 JALX to unaligned symbol 1
+	mips64el-openbsd  -FAIL: microMIPS JALX to unaligned symbol 0
+	mips64el-openbsd  -FAIL: microMIPS JALX to unaligned symbol 1
+
+	Similar tests for the n64 ABI can be added separately, using suitable
+	dump patterns.
+
+		ld/
+		* testsuite/ld-mips-elf/unaligned-jalx-0.d: Remove `-32' from
+		the `as' tag.
+		* testsuite/ld-mips-elf/unaligned-jalx-1.d: Likewise.
+		* testsuite/ld-mips-elf/unaligned-jalx-2.d: Likewise.
+		* testsuite/ld-mips-elf/unaligned-jalx-3.d: Likewise.
+		* testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d: Likewise.
+		* testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d: Likewise.
+		* testsuite/ld-mips-elf/unaligned-jalx-micromips-0.d: Likewise.
+		* testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d: Likewise.
+		* testsuite/ld-mips-elf/mips-elf.exp: Run unaligned JALX tests
+		with `run_dump_test_o32' and `run_dump_test_n32' rather than
+		`run_dump_test'.
+
+	(cherry picked from commit 67e789ae32fadc540c10839f08ad53ff01e2d732)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/GAS/testsuite: Disable compact EH #7 tests with OpenBSD targets
+	Compact EH #7 tests use output templates that are not suitable for the
+	n64 ABI, which `mips64*-*-openbsd*' targets use by default, because the
+	contents of the sections examined are expected to be differnt.  Disable
+	the tests then, removing these regressions:
+
+	mips64-openbsd  -FAIL: Compact EH EB #7 with personality id and fallback FDE
+	mips64-openbsd  -FAIL: Compact EH EL #7 with personality id and fallback FDE
+	mips64el-openbsd  -FAIL: Compact EH EB #7 with personality id and fallback FDE
+	mips64el-openbsd  -FAIL: Compact EH EL #7 with personality id and fallback FDE
+
+	Suitable corresponding tests for the n64 ABI can be added separately.
+
+		gas/
+		* testsuite/gas/mips/compact-eh-eb-7.d: Exclude for
+		`mips64*-*-openbsd*'.
+		* testsuite/gas/mips/compact-eh-el-7.d: Likewise.
+
+	(cherry picked from commit 2b4a60ab59f14a8fc1039c0cea41d22674447c1e)
+
+2023-07-28  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS/LD: Include n64 `.interp' with INITIAL_READONLY_SECTIONS
+	In ld/emulparams/elf64bmip-defs.sh there is no explicit handling of the
+	`.interp' section, which causes it to be positioned in output at an odd
+	place.
+
+	Let's include it with INITIAL_READONLY_SECTIONS, just like o32/n32 do,
+	fixing a regression from commit 5a8e7be242f3 ("INITIAL_READONLY_SECTIONS
+	in elf.sc"), where the handling of n64 was missed due to an unfortunate
+	sequence of events where ld/emulparams/elf64bmip-defs.sh was only added
+	with commit 94bb04b3c611 ("Use .reginfo rather than .MIPS.options in n32
+	linker scripts") the day before.
+
+	Add test cases covering section ordering across the three ABIs.  This
+	change also fixes ld/pr23658-2:
+
+	FAIL: Build pr23658-2
+
+	Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>
+
+	ld/ChangeLog:
+		* emulparams/elf64bmip-defs.sh: Include `.interp' with
+		INITIAL_READONLY_SECTIONS.
+		* testsuite/ld-mips-elf/pie-n64.d: Adjust addresses.
+		* testsuite/ld-mips-elf/sections-1-o32.rd: New test.
+		* testsuite/ld-mips-elf/sections-1-o32t.rd: New test.
+		* testsuite/ld-mips-elf/sections-1-n32.rd: New test.
+		* testsuite/ld-mips-elf/sections-1-n32t.rd: New test.
+		* testsuite/ld-mips-elf/sections-1-n32p.rd: New test.
+		* testsuite/ld-mips-elf/sections-1-n64.rd: New test.
+		* testsuite/ld-mips-elf/sections-1-n64t.rd: New test.
+		* testsuite/ld-mips-elf/sections-2-o32.rd: New test.
+		* testsuite/ld-mips-elf/sections-2-o32t.rd: New test.
+		* testsuite/ld-mips-elf/sections-2-n32.rd: New test.
+		* testsuite/ld-mips-elf/sections-2-n32t.rd: New test.
+		* testsuite/ld-mips-elf/sections-2-n32p.rd: New test.
+		* testsuite/ld-mips-elf/sections-2-n64.rd: New test.
+		* testsuite/ld-mips-elf/sections-2-n64t.rd: New test.
+		* testsuite/ld-mips-elf/sections.s: New test source.
+		* testsuite/ld-mips-elf/mips-elf.exp: Run the new tests.
+
+	(cherry picked from commit f625926792da741ab196ef71c16e481331965b6f)
+
+2023-07-28  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	Revert "MIPS: support mips*64 as CPU and gnuabi64 as ABI"
+	This reverts commit 32f1c80375ebe8ad25d9805ee5889f0006c51e59.  It had
+	two unrelated changes lumped together, one of which changed the meaning
+	of the `mipsisa64*-*-linux*' target triplets, which was not properly
+	evaluated.
+
+	(cherry picked from commit cc66ad2d2a63cec2eaafd7bbc6a9204490816c0b)
+
+2023-07-28  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-27  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-26  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-25  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-24  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: Fix immediate overflow check bug
+	  * elfnn-loongarch.c (RELOCATE_CALC_PC32_HI20): Redefined.
+	  (RELOCATE_CALC_PC64_HI32): Redefined.
+	  * elfxx-loongarch.c (reloc_bits_pcrel20_s2): Delete.
+	  (reloc_bits_b16): Delete.
+	  (reloc_bits_b21): Delete.
+	  (reloc_bits_b26): Delete.
+	  (reloc_sign_bits): New.
+
+2023-07-24  Nick Clifton  <nickc@redhat.com>
+
+	Updated Serbian translations for bfd, gold and opcodes
+
+2023-07-24  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-23  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-22  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-21  Alan Modra  <amodra@gmail.com>
+
+	MIPS: Don't move __gnu_lto_slim to .scommon
+		* elfxx-mips.c (_bfd_mips_elf_symbol_processing): Don't treat
+		__gnu_lto_slim as SHN_MIPS_SCOMMON.
+		(_bfd_mips_elf_add_symbol_hook): Likewise.
+
+2023-07-21  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-20  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-19  Nick Clifton  <nickc@redhat.com>
+
+	merged
+
+	Updated Romanian translation for the opcodes directory
+
+	Updated Romainian translation for the opcodes directory
+
+2023-07-19  Alan Modra  <amodra@gmail.com>
+
+	[GOLD, PowerPC64] Debug info relocation overflow
+	It is possible to build huge binaries on powerpc64, where 32-bit
+	addresses in debug info are insufficient to descibe locations in the
+	binary.  Help out the user, and only warn about debug overflows.
+
+		* powerpc.cc (Target_powerpc::Relocate::relocate): Warn on
+		relocation overflows in debug info.
+
+	(cherry picked from commit 03c02b696e90714a0ae2c0200d3c65cfffcaa1ee)
+
+2023-07-19  Alan Modra  <amodra@gmail.com>
+
+	PR10957, Missing option to really print section+offset
+	Many of the reloc error messages have already been converted from
+	using %C to using %H in ld.bfd, to print section+offset as well as
+	file/line/function.  This catches a few remaining, and changes gold to
+	do the same.
+
+		PR 10957
+	bfd/
+		* elf32-sh.c (sh_elf_relocate_section): Use %H in error messages.
+	gold/
+		* object.cc (Relocate_info::location): Always report section+offset.
+		* testsuite/debug_msg.sh: Adjust to suit.
+		* testsuite/x32_overflow_pc32.sh: Likewise.
+		* testsuite/x86_64_overflow_pc32.sh: Likewise.
+	ld/
+		* emultempl/pe.em (read_addend): Use %H in error message.
+		* emultempl/pep.em (read_addend): Likewise.
+		* ldcref.c (check_reloc_refs): Likewise.
+		* ldmain.c (warning_find_reloc, undefined_symbol): Likewise.
+		* pe-dll.c (pe_create_import_fixup): Likewise.
+		* testsuite/ld-cris/undef2.d: Adjust expected output to suit.
+		* testsuite/ld-cris/undef3.d: Likewise.
+		* testsuite/ld-elf/shared.exp: Likewise.
+		* testsuite/ld-i386/compressed1.d: Likewise.
+		* testsuite/ld-ia64/line.exp: Likewise.
+		* testsuite/ld-plugin/lto.exp: Likewise.
+		* testsuite/ld-undefined/undefined.exp: Likewise.
+		* testsuite/ld-x86-64/compressed1.d: Likewise.
+		* testsuite/ld-x86-64/line.exp: Likewise.
+		* testsuite/ld-x86-64/pr27587.err: Likewise.
+
+	(cherry picked from commit 02d2a36902c7b0fefe05e8d9bdbf11e846ac71fe)
+
+2023-07-19  Alan Modra  <amodra@gmail.com>
+
+	Fix loongarch build with gcc-4.5
+		* loongarch-opc.c (loongarch_alias_opcodes): Don't trigger
+		gcc-4.5 bug in handling of struct initialisation.
+
+	(cherry picked from commit 4993e5cc1e2e1e192f56f5788453c1b6f9cca894)
+
+2023-07-19  Alan Modra  <amodra@gmail.com>
+
+	elf_object_p load of dynamic symbols
+	This fixes an uninitialised memory access on a fuzzed file:
+	0 0xf22e9b in offset_from_vma /src/binutils-gdb/bfd/elf.c:1899:2
+	1 0xf1e90f in _bfd_elf_get_dynamic_symbols /src/binutils-gdb/bfd/elf.c:2099:13
+	2 0x10e6a54 in bfd_elf32_object_p /src/binutils-gdb/bfd/elfcode.h:851:9
+
+	Hopefully it will also stop any attempt to load dynamic symbols from
+	eu-strip debug files.
+
+		* elfcode.h (elf_object_p): Do not attempt to load dynamic
+		symbols for a file with no section headers until all the
+		program headers are swapped in.  Do not fail on eu-strip debug
+		files.
+
+	(cherry picked from commit 22e90ac5af46c01ee4972cf04e835266862bbb35)
+
+2023-07-19  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-18  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	gprofng: 30602 [2.41] gprofng test hangs on i686-linux-gnu
+	There were several problems in the gprofng testing:
+	 - we did not catch a timeout for each test.
+	 - we used exit() to stop a failed test. But this stops all other tests.
+	 - we used a time_t (long) type in smalltest.c instead of a long long type.
+
+		PR gprofng/30602
+		* configure.ac: Launch only native testing.
+		* configure: Rebuild.
+		* testsuite/config/default.exp: Set TEST_TIMEOUT.
+		* testsuite/gprofng.display/setpath_map.exp: Use return instead of exit.
+		* testsuite/gprofng.display/gp-archive.exp: Likewise.
+		* testsuite/gprofng.display/gp-collect-app_F.exp: Likewise.
+		* testsuite/gprofng.display/display.exp: Delete an unnecessary test
+		for native testing.
+		* testsuite/lib/display-lib.exp (run_native_host_cmd): Add timeout.
+		* testsuite/lib/smalltest.c: Use a long long type instead of time_t.
+
+2023-07-18  Nick Clifton  <nickc@redhat.com>
+
+	Updated Swedish translation for the binutils subdirectory
+
+2023-07-18  Pter Chubb  <peter.chubb@unsw.edu.au>
+
+	PR 30632 - ld segfaults if linker script includes a STARTUP line.
+
+2023-07-18  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-17  Mark Harmstone  <mark@harmstone.com>
+
+	ld/PDB: fix off-by-1 in add_globals_ref()
+
+2023-07-17  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-16  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-15  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-14  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-13  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-12  Alan Modra  <amodra@gmail.com>
+
+	Re: Keeping track of rs6000-coff archive element pointers
+	bfd/
+		* coff-rs6000.c (add_range): Revise comment, noting possible fail.
+		(_bfd_xcoff_openr_next_archived_file): Start with clean ranges.
+	binutils/
+		* bfdtest1.c: Enhance to catch errors on second scan.
+
+	(cherry picked from commit 1052fb3ecb1ae46bcf22634c48739c12e585196a)
+
+2023-07-12  Alan Modra  <amodra@gmail.com>
+
+	Use run_host_cmd to run $CC and other no-section-header test fixes
+	We should be using run_host_cmd everywhere we invoke a compiler in the
+	ld testsuite, if we want to use ld/ld-new just built.  run_host_cmd
+	properly inserts $gcc_B_opt in cases where a user wants to test
+	binutils with a newly built compiler, ie. when $CC specifies -B itself.
+
+	Also, it is not good practice to exclude tests when non-native except
+	of course those tests that run a target binary.  Compiling and linking
+	often shows up problems.
+
+		* testsuite/ld-elf/no-section-header.exp (binutils_run_test):
+		Use run_host_cmd to invoke $CC_FOR_TARGET.  Run all tests
+		non-native too, except for attempting to run the binaries.
+		Run tests for ELF in general, not just linux.
+		* testsuite/ld-elf/pr25617-1-no-sec-hdr.rd: Allow localentry
+		symbol decoration, and support either sorting of symbols.
+		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.rd: Likewise.
+		* testsuite/ld-elf/pr25617-1a-sec-hdr.rd: Likewise.
+		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.nd: Accept D function syms.
+		* testsuite/ld-elf/start-shared-noheader-sysv.rd: Accept
+		mips-sgi-irix symbol output.
+		* testsuite/ld-elf/start-shared-noheader.nd: Likewise.
+
+	(cherry picked from commit 46f51ac38b81df4bf890e13824427c69285fdcaa)
+
+2023-07-12  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	ld: Use run_host_cmd_yesno in indirect.exp instead of catch exec
+	Catch "exec $CC_FOR_TARGET" won't use the gas/ld that we just build,
+	and in fact run_host_cmd_yesno is a better choice for it.
+
+	ld/ChangeLog:
+
+		* testsuite/ld-elf/indirect.exp: use run_host_cmd_yesno
+		instead of handwrite catch exec $CC_FOR_TARGET.
+
+	(cherry picked from commit 0f5cb49f68ae1be4b9702e71c3a9b80ee46b310a)
+
+2023-07-12  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	ld: Use [list ] syntax to define run_tests in indirect.exp
+	Currently, the var run_tests is defined by syntax {{}},
+	while in this case, variables cannot be used.
+	Thus $NOPIE_CFLAGS and $NOPIE_LDFLAGS are passed to cmd as names
+	instead of values:
+	  gcc ... $NOPIE_CFLAGS -c .../indirect5a.c -o tmpdir/indirect5a.o
+
+	Let's use [list [list ]] syntax instead.
+
+	ld/ChangeLog:
+
+		* testsuite/ld-elf/indirect.exp(run_tests): use [list [list]]
+		syntax instead of {{}}.
+
+	(cherry picked from commit 96a73f2cb2a1b4c47e49ff194a94f7394308956b)
+
+2023-07-12  Alan Modra  <amodra@gmail.com>
+
+	Re: Stop the linker's --dependency-file option from including temporary lto files.
+		PR 30568
+		* ldfile.c (ldfile_try_open_bfd): Fix build failure when
+		!BFD_SUPPORTS_PLUGINS.
+
+	(cherry picked from commit 5f60df9974516867c02562b56c3a98cf4714a915)
+
+2023-07-12  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-11  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-10  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-09  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-08  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-07  Nick Clifton  <nickc@redhat.com>
+
+	Replace local variable called 'rename' with 'renamed'
+
+	Udated Freach and Romainian translations for various sub-directories
+
+2023-07-07  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	ld: fix plugin tests for MIPS PIC
+	On MIPS, for PIC objects, symbols may reference 2 times:
+	once from the caller, and once from GOT.
+	Thus ld may complains 2 times about "undefined reference".
+
+	So we add a new "#?" line to every effected testsuite.
+
+2023-07-07  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-06  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-05  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-04  Nick Clifton  <nickc@redhat.com>
+
+	Updated Ukranian, Romanian and German translations for various sub-directories
+
+2023-07-04  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-03  Nick Clifton  <nickc@redhat.com>
+
+	Change version number to 2.40.90 and regenerate files
+
+	Add markers for the 2.41 branch
+
+2023-07-03  WANG Xuerui  <git@xen0n.name>
+
+	gas: NEWS: Announce LoongArch changes in the 2.41 cycle
+	gas/ChangeLog:
+
+		* NEWS: Mention LoongArch changes for 2.41.
+
+2023-07-03  WANG Xuerui  <git@xen0n.name>
+
+	binutils: NEWS: Announce LoongArch changes in the 2.41 cycle
+	binutils/ChangeLog:
+
+		* NEWS: Mention LoongArch changes for 2.41.
+
+2023-07-03  WANG Xuerui  <git@xen0n.name>
+
+	LoongArch: gas: Fix shared builds
+	Formerly an include of libbfd.h was added in commit 56576f4a722
+	("LoongArch: gas: Add support for linker relaxation."), in order to
+	allow calling _bfd_read_unsigned_leb128 from gas, but doing so broke
+	shared builds. Commit d2fddb6d783 fixed this reference but did not
+	remove the now unnecessary inclusion of libbfd.h. The gas_assert macro
+	expands into a conditional call to abort(), but "abort" is re-defined to
+	_bfd_abort in libbfd.h, so the extra include breaks any gas_assert
+	usage, and should be removed.
+
+	gas/ChangeLog:
+
+		* config/tc-loongarch.c: Don't include libbfd.h.
+
+	Fixes: d2fddb6d783 ("LoongArch: Fix ld "undefined reference" error with --enable-shared")
+
+2023-07-03  WANG Xuerui  <git@xen0n.name>
+
+	opcodes/loongarch: Mark address offset operands of LVZ/LBT insns as such
+	opcodes/ChangeLog:
+
+		* loongarch-opc.c: Mark the offset operands as "so" for
+		{,x}v{ld,st}, {,x}v{ldrepl,stelm}.[bhwd], and {ld,st}[lr].[wd].
+
+2023-07-03  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-02  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-07-01  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	gprofng: fix data race
+	In our GUI project (https://savannah.gnu.org/projects/gprofng-gui), we use
+	the output of gprofng to display the data. Sometimes this data is corrupted.
+
+	gprofng/ChangeLog
+	2023-06-29  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+		* src/ipc.cc (ipc_doWork): Fix data race.
+		* src/ipcio.cc (IPCresponse::print): Fix data race.
+		Remove unused variables and functions.
+		* src/ipcio.h: Declare two variables.
+		* src/StringBuilder.cc (StringBuilder::write): New function.
+		* src/StringBuilder.h: Likewise.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	binutils: NEWS: Announce new RISC-V vector crypto extensions
+	This commit adds the recently added support of the RISC-V vector crypto
+	extensions to the NEWS file.
+
+	binutils/ChangeLog:
+
+		* NEWS: Announce new RISC-V vector crypto extensions.
+
+2023-07-01  Nathan Huckleberry  <nhuck@google.com>
+
+	RISC-V: Add support for the Zvksc ISA extension
+	Zvksc is part of the vector crypto extensions.
+
+	Zvksc is shorthand for the following set of extensions:
+	- Zvks
+	- Zvbc
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c: Define Zvksc extension.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvksc.d: New test.
+		* testsuite/gas/riscv/zvksc.s: New test.
+
+2023-07-01  Nathan Huckleberry  <nhuck@google.com>
+
+	RISC-V: Add support for the Zvknc ISA extension
+	Zvknc is part of the vector crypto extensions.
+
+	Zvknc is shorthand for the following set of extensxions:
+	- Zvkn
+	- Zvbc
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c: Define Zvknc extension.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvknc.d: New test.
+		* testsuite/gas/riscv/zvknc.s: New test.
+
+2023-07-01  Nathan Huckleberry  <nhuck@google.com>
+
+	RISC-V: Add support for the Zvksg ISA extension
+	Zvksg is part of the vector crypto extensions.
+
+	Zvksg is shorthand for the following set of extensions:
+	- Zvks
+	- Zvkg
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c: Define Zvksg extension.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvksg.d: New test.
+		* testsuite/gas/riscv/zvksg.s: New test.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvks ISA extension
+	Zvks is part of the vector crypto extensions.
+
+	Zvks is shorthand for the following set of extensions:
+	- Zvksed
+	- Zvksh
+	- Zvbb
+	- Zvkt
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c: Define Zvks extension.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvks.d: New test.
+		* testsuite/gas/riscv/zvks.s: New test.
+
+2023-07-01  Nathan Huckleberry  <nhuck@google.com>
+
+	RISC-V: Add support for the Zvkng ISA extension
+	Zvkng is part of the vector crypto extensions.
+
+	Zvkng is shorthand for the following set of extensions:
+	- Zvkn
+	- Zvkg
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c: Define Zvkng extension.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvkng.d: New test.
+		* testsuite/gas/riscv/zvkng.s: New test.
+
+2023-07-01  Nathan Huckleberry  <nhuck@google.com>
+
+	RISC-V: Allow nested implications for extensions
+	Certain extensions require two levels of implications.  For example,
+	zvkng implies zvkn and zvkn implies zvkned.  Enabling zvkng should also
+	enable zvkned.
+
+	This patch fixes this behavior.
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_parse_add_implicit_subsets): Allow nested
+		implications for extensions.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvkn ISA extension
+	Zvkn is part of the vector crypto extensions.
+
+	Zvkn is shorthand for the following set of extensions:
+	- Zvkned
+	- Zvknhb
+	- Zvbb
+	- Zvkt
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c: Define Zvkn extension.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvkn.d: New test.
+		* testsuite/gas/riscv/zvkn.s: New test.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvksh ISA extension
+	Zvksh is part of the vector crypto extensions.
+
+	This extension adds the following instructions:
+	- vsm3me.vv
+	- vsm3c.vi
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for Zvksh.
+		(riscv_multi_subset_supports_ext): Likewise.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvksh.d: New test.
+		* testsuite/gas/riscv/zvksh.s: New test.
+
+	include/ChangeLog:
+
+		* opcode/riscv-opc.h (MATCH_VSM3C_VI): New.
+		(MASK_VSM3C_VI): New.
+		(MATCH_VSM3ME_VV): New.
+		(MASK_VSM3ME_VV): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
+		support for Zvksh.
+
+	opcodes/ChangeLog:
+
+		* riscv-opc.c: Add Zvksh instructions.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvksed ISA extension
+	Zvksed is part of the vector crypto extensions.
+
+	This extension adds the following instructions:
+	- vsm4k.vi
+	- vsm4r.[vv,vs]
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for Zvksed.
+		(riscv_multi_subset_supports_ext): Likewise.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvksed.d: New test.
+		* testsuite/gas/riscv/zvksed.s: New test.
+
+	include/ChangeLog:
+
+		* opcode/riscv-opc.h (MATCH_VSM4K_VI): New.
+		(MASK_VSM4K_VI): New.
+		(MATCH_VSM4R_VS): New.
+		(MASK_VSM4R_VS): New.
+		(MATCH_VSM4R_VV): New.
+		(MASK_VSM4R_VV): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
+		support for Zvksed.
+
+	opcodes/ChangeLog:
+
+		* riscv-opc.c: Add Zvksed instructions.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvknh[a,b] ISA extensions
+	Zvknh[a,b] are parts of the vector crypto extensions.
+
+	This extension adds the following instructions:
+	- vsha2ms.vv
+	- vsha2c[hl].vv
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for Zvknh[a,b].
+		(riscv_multi_subset_supports_ext): Likewise.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvknha.d: New test.
+		* testsuite/gas/riscv/zvknha_zvknhb.s: New test.
+		* testsuite/gas/riscv/zvknhb.d: New test.
+
+	include/ChangeLog:
+
+		* opcode/riscv-opc.h (MATCH_VSHA2CH_VV): New.
+		(MASK_VSHA2CH_VV): New.
+		(MATCH_VSHA2CL_VV): New.
+		(MASK_VSHA2CL_VV): New.
+		(MATCH_VSHA2MS_VV): New.
+		(MASK_VSHA2MS_VV): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
+		support for Zvknh[a,b].
+
+	opcodes/ChangeLog:
+
+		* riscv-opc.c: Add Zvknh[a,b] instructions.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvkned ISA extension
+	Zvkned is part of the vector crypto extensions.
+
+	This extension adds the following instructions:
+	- vaesef.[vv,vs]
+	- vaesem.[vv,vs]
+	- vaesdf.[vv,vs]
+	- vaesdm.[vv,vs]
+	- vaeskf1.vi
+	- vaeskf2.vi
+	- vaesz.vs
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for Zvkned.
+		(riscv_multi_subset_supports_ext): Likewise.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvkned.d: New test.
+		* testsuite/gas/riscv/zvkned.s: New test.
+
+	include/ChangeLog:
+
+		* opcode/riscv-opc.h (MATCH_VAESDF_VS): New.
+		(MASK_VAESDF_VS): New.
+		(MATCH_VAESDF_VV): New.
+		(MASK_VAESDF_VV): New.
+		(MATCH_VAESDM_VS): New.
+		(MASK_VAESDM_VS): New.
+		(MATCH_VAESDM_VV): New.
+		(MASK_VAESDM_VV): New.
+		(MATCH_VAESEF_VS): New.
+		(MASK_VAESEF_VS): New.
+		(MATCH_VAESEF_VV): New.
+		(MASK_VAESEF_VV): New.
+		(MATCH_VAESEM_VS): New.
+		(MASK_VAESEM_VS): New.
+		(MATCH_VAESEM_VV): New.
+		(MASK_VAESEM_VV): New.
+		(MATCH_VAESKF1_VI): New.
+		(MASK_VAESKF1_VI): New.
+		(MATCH_VAESKF2_VI): New.
+		(MASK_VAESKF2_VI): New.
+		(MATCH_VAESZ_VS): New.
+		(MASK_VAESZ_VS): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
+		support for Zvkned.
+
+	opcodes/ChangeLog:
+
+		* riscv-opc.c: Add Zvkned instructions.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvkg ISA extension
+	Zvkg is part of the vector crypto extensions.
+
+	This extension adds the following instructions:
+	- vghsh.vv
+	- vgmul.vv
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for Zvkg.
+		(riscv_multi_subset_supports_ext): Likewise.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvkg.d: New test.
+		* testsuite/gas/riscv/zvkg.s: New test.
+
+	include/ChangeLog:
+
+		* opcode/riscv-opc.h (MATCH_VGHSH_VV): New.
+		(MASK_VGHSH_VV): New.
+		(MATCH_VGMUL_VV): New.
+		(MASK_VGMUL_VV): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
+		support for Zvkg.
+
+	opcodes/ChangeLog:
+
+		* riscv-opc.c: Add Zvkg instructions.
+
+2023-07-01  Nathan Huckleberry  <nhuck@google.com>
+
+	RISC-V: Add support for the Zvbc extension
+	Zvbc is part of the crypto vector extensions.
+
+	This extension adds the following instructions:
+	- vclmul.[vv,vx]
+	- vclmulh.[vv,vx]
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for Zvbc.
+		(riscv_multi_subset_supports_ext): Likewise.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/riscv/zvbc.d: New test.
+		* testsuite/gas/riscv/zvbc.s: New test.
+
+	include/ChangeLog:
+
+		* opcode/riscv-opc.h (MATCH_VCLMUL_VV): New.
+		(MASK_VCLMUL_VV): New.
+		(MATCH_VCLMUL_VX): New.
+		(MASK_VCLMUL_VX): New.
+		(MATCH_VCLMULH_VV): New.
+		(MASK_VCLMULH_VV): New.
+		(MATCH_VCLMULH_VX): New.
+		(MASK_VCLMULH_VX): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (enum riscv_insn_class): Add instruction class
+		  support for Zvbc.
+
+	opcodes/ChangeLog:
+
+		* riscv-opc.c: Add Zvbc instruction.
+
+2023-07-01  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zvbb ISA extension
+	Zvbb is part of the vector crypto extensions.
+
+	This extension adds the following instructions:
+	- vandn.[vv,vx]
+	- vbrev.v
+	- vbrev8.v
+	- vrev8.v
+	- vclz.v
+	- vctz.v
+	- vcpop.v
+	- vrol.[vv,vx]
+	- vror.[vv,vx,vi]
+	- vwsll.[vv,vx,vi]
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for Zvbb.
+		(riscv_multi_subset_supports_ext): Likewise.
+
+	gas/ChangeLog:
+
+		* config/tc-riscv.c (validate_riscv_insn): Add 'l' as new format
+		string directive.
+		(riscv_ip): Likewise.
+		* testsuite/gas/riscv/zvbb.d: New test.
+		* testsuite/gas/riscv/zvbb.s: New test.
+
+	include/ChangeLog:
+
+		* opcode/riscv-opc.h (MATCH_VANDN_VV): New.
+		(MASK_VANDN_VV): New.
+		(MATCH_VANDN_VX): New.
+		(MASK_VANDN_VX): New.
+		(MATCH_VBREV8_V): New.
+		(MASK_VBREV8_V): New.
+		(MATCH_VBREV_V): New.
+		(MASK_VBREV_V): New.
+		(MATCH_VCLZ_V): New.
+		(MASK_VCLZ_V): New.
+		(MATCH_VCPOP_V): New.
+		(MASK_VCPOP_V): New.
+		(MATCH_VCTZ_V): New.
+		(MASK_VCTZ_V): New.
+		(MATCH_VREV8_V): New.
+		(MASK_VREV8_V): New.
+		(MATCH_VROL_VV): New.
+		(MASK_VROL_VV): New.
+		(MATCH_VROL_VX): New.
+		(MASK_VROL_VX): New.
+		(MATCH_VROR_VI): New.
+		(MASK_VROR_VI): New.
+		(MATCH_VROR_VV): New.
+		(MASK_VROR_VV): New.
+		(MATCH_VROR_VX): New.
+		(MASK_VROR_VX): New.
+		(MATCH_VWSLL_VI): New.
+		(MASK_VWSLL_VI): New.
+		(MATCH_VWSLL_VV): New.
+		(MASK_VWSLL_VV): New.
+		(MATCH_VWSLL_VX): New.
+		(MASK_VWSLL_VX): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (EXTRACT_RVV_VI_UIMM6): New.
+		(ENCODE_RVV_VI_UIMM6): New.
+		(enum riscv_insn_class): Add instruction class for Zvbb.
+
+	opcodes/ChangeLog:
+
+		* riscv-dis.c (print_insn_args): Add 'l' as new format string
+		directive.
+		* riscv-opc.c: Add Zvbb instructions.
+
+2023-07-01  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-30  Tom Tromey  <tom@tromey.com>
+
+	Fix regressions caused by agent expression C++-ification
+	Simon pointed out that my agent expression C++-ification patches
+	caused a regression with the native-gdbserver target board.  The bug
+	is that append_const is supposed to write in big-endian order, but I
+	switched this by mistake.
+
+2023-06-30  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+
+	binutils: NEWS: announce new RISC-V extensions
+	We picked up support for a few new extensions over the last weeks
+	(this may need further updating prior to the next release), list them
+	in the NEWS file.
+
+	binutils/ChangeLog:
+
+		* binutils/NEWS: announce suuport for the new RISC-V
+	          extensions (Zicond, Zfa, XVentanaCondOps).
+
+2023-06-30  Christoph Müllner  <christoph.muellner@vrull.eu>
+
+	RISC-V: Add support for the Zfa extension
+	This patch adds support for the RISC-V Zfa extension,
+	which introduces additional floating-point instructions:
+	* fli (load-immediate) with pre-defined immediates
+	* fminm/fmaxm (like fmin/fmax but with different NaN behaviour)
+	* fround/froundmx (round to integer)
+	* fcvtmod.w.d (Modular Convert-to-Integer)
+	* fmv* to access high bits of FP registers in case XLEN < FLEN
+	* fleq/fltq (quiet comparison instructions)
+
+	Zfa defines its instructions in combination with the following
+	extensions:
+	* single-precision floating-point (F)
+	* double-precision floating-point (D)
+	* quad-precision floating-point (Q)
+	* half-precision floating-point (Zfh)
+
+	This patch is based on an earlier version from Tsukasa OI:
+	  https://sourceware.org/pipermail/binutils/2022-September/122939.html
+	Most significant change to that commit is the switch from the rs1-field
+	value to the actual floating-point value in the last operand of the fli*
+	instructions. Everything that strtof() can parse is accepted and
+	the '%a' printf specifier is used to output hex floating-point literals
+	in the disassembly.
+
+	The Zfa specification is frozen (and has passed public review).  It is
+	available as a chapter in "The RISC-V Instruction Set Manual: Volume 1":
+	  https://github.com/riscv/riscv-isa-manual/releases
+
+	bfd/ChangeLog:
+
+		* elfxx-riscv.c (riscv_multi_subset_supports): Add instruction
+		class support for 'Zfa' extension.
+		(riscv_multi_subset_supports_ext): Likewise.
+		(riscv_implicit_subsets): Add 'Zfa' -> 'F' dependency.
+
+	gas/ChangeLog:
+
+		* config/tc-riscv.c (flt_lookup): New helper to lookup a float value
+		in an array.
+		(validate_riscv_insn): Add 'Wfv' as new format string directive.
+		(riscv_ip): Likewise.
+		* doc/c-riscv.texi: Add floating-point chapter and describe
+		limiations of the Zfa FP literal parsing.
+		* testsuite/gas/riscv/zfa-32.d: New test.
+		* testsuite/gas/riscv/zfa-32.s: New test.
+		* testsuite/gas/riscv/zfa-64.d: New test.
+		* testsuite/gas/riscv/zfa-64.s: New test.
+		* testsuite/gas/riscv/zfa-fail.d: New test.
+		* testsuite/gas/riscv/zfa-fail.l: New test.
+		* testsuite/gas/riscv/zfa-fail.s: New test.
+		* testsuite/gas/riscv/zfa.d: New test.
+		* testsuite/gas/riscv/zfa.s: New test.
+		* testsuite/gas/riscv/zfa.s: New test.
+
+		* opcode/riscv-opc.h (MATCH_FLI_H): New.
+		(MASK_FLI_H): New.
+		(MATCH_FMINM_H): New.
+		(MASK_FMINM_H): New.
+		(MATCH_FMAXM_H): New.
+		(MASK_FMAXM_H): New.
+		(MATCH_FROUND_H): New.
+		(MASK_FROUND_H): New.
+		(MATCH_FROUNDNX_H): New.
+		(MASK_FROUNDNX_H): New.
+		(MATCH_FLTQ_H): New.
+		(MASK_FLTQ_H): New.
+		(MATCH_FLEQ_H): New.
+		(MASK_FLEQ_H): New.
+		(MATCH_FLI_S): New.
+		(MASK_FLI_S): New.
+		(MATCH_FMINM_S): New.
+		(MASK_FMINM_S): New.
+		(MATCH_FMAXM_S): New.
+		(MASK_FMAXM_S): New.
+		(MATCH_FROUND_S): New.
+		(MASK_FROUND_S): New.
+		(MATCH_FROUNDNX_S): New.
+		(MASK_FROUNDNX_S): New.
+		(MATCH_FLTQ_S): New.
+		(MASK_FLTQ_S): New.
+		(MATCH_FLEQ_S): New.
+		(MASK_FLEQ_S): New.
+		(MATCH_FLI_D): New.
+		(MASK_FLI_D): New.
+		(MATCH_FMINM_D): New.
+		(MASK_FMINM_D): New.
+		(MATCH_FMAXM_D): New.
+		(MASK_FMAXM_D): New.
+		(MATCH_FROUND_D): New.
+		(MASK_FROUND_D): New.
+		(MATCH_FROUNDNX_D): New.
+		(MASK_FROUNDNX_D): New.
+		(MATCH_FLTQ_D): New.
+		(MASK_FLTQ_D): New.
+		(MATCH_FLEQ_D): New.
+		(MASK_FLEQ_D): New.
+		(MATCH_FLI_Q): New.
+		(MASK_FLI_Q): New.
+		(MATCH_FMINM_Q): New.
+		(MASK_FMINM_Q): New.
+		(MATCH_FMAXM_Q): New.
+		(MASK_FMAXM_Q): New.
+		(MATCH_FROUND_Q): New.
+		(MASK_FROUND_Q): New.
+		(MATCH_FROUNDNX_Q): New.
+		(MASK_FROUNDNX_Q): New.
+		(MATCH_FLTQ_Q): New.
+		(MASK_FLTQ_Q): New.
+		(MATCH_FLEQ_Q): New.
+		(MASK_FLEQ_Q): New.
+		(MATCH_FCVTMOD_W_D): New.
+		(MASK_FCVTMOD_W_D): New.
+		(MATCH_FMVH_X_D): New.
+		(MASK_FMVH_X_D): New.
+		(MATCH_FMVH_X_Q): New.
+		(MASK_FMVH_X_Q): New.
+		(MATCH_FMVP_D_X): New.
+		(MASK_FMVP_D_X): New.
+		(MATCH_FMVP_Q_X): New.
+		(MASK_FMVP_Q_X): New.
+		(DECLARE_INSN): New.
+		* opcode/riscv.h (enum riscv_insn_class): Add instruction
+		classes for the Zfa extension.
+
+	opcodes/ChangeLog:
+
+		* riscv-dis.c (print_insn_args): Add support for
+		new format string directive 'Wfv'.
+		* riscv-opc.c: Add Zfa instructions.
+
+	Co-Developed-by: Tsukasa OI <research_trasio@irq.a4lg.com>
+	Co-Developed-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
+	Acked-by: Palmer Dabbelt <palmer@rivosinc.com>
+
+2023-06-30  Nick Clifton  <nickc@redhat.com>
+
+	strings: Improve code to detect excessively large minimum string lengths.
+	  PR 30598
+	  * strings.c (set_string_min): New function. (main): Use it. (print_unicode_stream): Calculate buffer size using a size_t.
+
+	Prevent an illegal memory access when running the strings program with an excessively lerge minimum string length.
+	  PR 30595
+	  * strings.c (main): Check for an excessively large minimum string length.
+
+	Fix used-before-initialized warnings when compiling elf.c with Clang-16.
+
+2023-06-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: gas: Fix code style issues
+	  Blocks of 8 spaces be replaced with tabs.
+	  Fix alignment issues.
+
+2023-06-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: gas: Add LVZ and LBT instructions support
+	gas/ChangeLog:
+		* config/tc-loongarch.c (md_parse_option): Add LARCH_opts.ase_lvz and
+		LARCH_opts.ase_lbt.
+		* testsuite/gas/loongarch/uleb128.d: Regenerated.
+		* testsuite/gas/loongarch/lvz-lbt.d: New test.
+		* testsuite/gas/loongarch/lvz-lbt.s: New test.
+
+	include/ChangeLog:
+		* opcode/loongarch.h (ase_lvz): New.
+		(ase_lbt): New.
+
+	opcodes/ChangeLog:
+		* loongarch-dis.c (set_default_loongarch_dis_options): Add
+		LARCH_opts.ase_lvz and LARCH_opts.ase_lbt.
+		* loongarch-opc.c (struct loongarch_ase): Add LVZ and LBT instructions.
+
+2023-06-30  WANG Xuerui  <git@xen0n.name>
+
+	LoongArch: Deprecate $v[01], $fv[01] and $x names per spec
+	As outlined in the LoongArch ELF psABI spec [1], it is actually already
+	2 versions after the initial LoongArch support, and the $v[01] and
+	$fv[01] names should really get sunset by now.
+
+	In addition, the "$x" name for $r21 was never included in any released
+	version of the ABI spec, and such usages are all fixed to say just $r21
+	for every project I could think of that accepted a LoongArch port.
+
+	Plus, the upcoming LSX/LASX support makes use of registers named
+	"$vrNN" and "$xrNN", so having "$vN" and "$x" alongside would almost
+	certainly create confusion for developers.
+
+	Issue warnings for such usages per the deprecation procedure detailed
+	in the spec, so we can finally remove support in the next release cycle
+	after this.
+
+	[1]: https://loongson.github.io/LoongArch-Documentation/LoongArch-ELF-ABI-EN.html
+
+	gas/ChangeLog:
+
+		* config/tc-loongarch.c: Init canonical register ABI name
+		mappings and deprecated register names.
+		(loongarch_args_parser_can_match_arg_helper): Warn in case of
+		deprecated register name usage.
+		* testsuite/gas/loongarch/deprecated_reg_aliases.d: New test.
+		* testsuite/gas/loongarch/deprecated_reg_aliases.l: Likewise.
+		* testsuite/gas/loongarch/deprecated_reg_aliases.s: Likewise.
+
+	include/ChangeLog:
+
+		* opcode/loongarch.h: Rename global variables.
+
+	opcodes/ChangeLog:
+
+		* loongarch-opc.c: Rename the alternate/deprecated register name
+		mappings, and move $x to the deprecated name map.
+
+2023-06-30  WANG Xuerui  <git@xen0n.name>
+
+	opcodes/loongarch: print unrecognized insn words with the .word directive
+	For better round-trip fidelity and readability in general.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/loongarch/uleb128.d: Update test case.
+		* testsuite/gas/loongarch/raw-insn.d: New test.
+		* testsuite/gas/loongarch/raw-insn.s: Likewise.
+
+	opcodes/ChangeLog:
+
+		* loongarch-dis.c (disassemble_one): Print ".word" if !opc.
+
+2023-06-30  WANG Xuerui  <git@xen0n.name>
+
+	opcodes/loongarch: do not print hex notation for signed immediates
+	The additional hex notation was minimally useful when one had to
+	inspect code with heavy bit manipulation, or of unclear signedness, but
+	it clutters the output, and the style is not regular assembly language
+	syntax either.
+
+	Precisely how one approaches the original use case is not taken care of
+	in this patch (maybe we want a disassembler option forcing a certain
+	style for immediates, like for example printing every immediate in
+	decimal or hexadecimal notation), but at least let's stop the current
+	practice.
+
+	ChangeLog:
+
+		* testsuite/gas/loongarch/imm_ins.d: Update test case.
+		* testsuite/gas/loongarch/imm_ins_32.d: Likewise.
+		* testsuite/gas/loongarch/imm_op.d: Likewise.
+		* testsuite/gas/loongarch/jmp_op.d: Likewise.
+		* testsuite/gas/loongarch/load_store_op.d: Likewise.
+		* testsuite/gas/loongarch/macro_op.d: Likewise.
+		* testsuite/gas/loongarch/macro_op_32.d: Likewise.
+		* testsuite/gas/loongarch/privilege_op.d: Likewise.
+		* testsuite/gas/loongarch/uleb128.d: Likewise.
+		* testsuite/gas/loongarch/vector.d: Likewise.
+
+	ld/ChangeLog:
+
+		* testsuite/ld-loongarch-elf/jmp_op.d: Update test case.
+		* testsuite/ld-loongarch-elf/macro_op.d: Likewise.
+		* testsuite/ld-loongarch-elf/macro_op_32.d: Likewise.
+
+	opcodes/ChangeLog:
+
+		* loongarch-dis.c (dis_one_arg): Remove the "(0x%x)" part from
+		disassembly output of signed immediate operands.
+
+2023-06-30  WANG Xuerui  <git@xen0n.name>
+
+	opcodes/loongarch: style disassembled address offsets as such
+	Add a modifier char 'o' telling the disassembler to print the immediate
+	using the address offset style, and mark the memory access instructions'
+	offset operands as such.
+
+	opcodes/ChangeLog:
+
+		* loongarch-dis.c (dis_one_arg): Style disassembled address
+		offsets as such when the operand has a modifier char 'o'.
+		* loongarch-opc.c: Add 'o' to operands that represent address
+		offsets.
+
+2023-06-30  WANG Xuerui  <git@xen0n.name>
+
+	opcodes/loongarch: implement style support in the disassembler
+	Update the LoongArch disassembler to supply style information to the
+	disassembler output. The output formatting remains unchanged.
+
+	opcodes/ChangeLog:
+
+		* disassemble.c: Mark LoongArch as created_styled_output=true.
+		* loongarch-dis.c (dis_one_arg): Use fprintf_styled_func
+		throughout with proper styles.
+
+2023-06-30  WANG Xuerui  <git@xen0n.name>
+
+	opcodes/loongarch: remove unused code
+	Remove some unused declarations and code.
+
+	include/ChangeLog:
+
+		* opcode/loongarch.h: Remove unused declarations.
+
+	opcodes/ChangeLog:
+
+		* loongarch-dis.c (loongarch_parse_dis_options): Remove.
+		(my_print_address_func): Likewise.
+		(loongarch_disassemble_one): Likewise.
+
+2023-06-30  WANG Xuerui  <git@xen0n.name>
+
+	LoongArch: support disassembling certain pseudo-instructions
+	Add a flag in the pinfo field for being able to mark certain specialized
+	matchers as disassembler-only, so some degree of isolation between
+	assembler-side and disassembler-side can be achieved.
+
+	This isolation is necessary, firstly because some pseudo-instructions
+	cannot be fully described in the opcode table, like `li.[wd]`, so the
+	corresponding opcode entry cannot have meaningful match/mask values.
+	Secondly, some of these pseudo-instructions can be realized in more than
+	one plausible ways; e.g. `li.w rd, <something between 0 and 0x7ff>` can
+	be realized on LA64 with any of `addi.w`, `addi.d` or `ori`. If we tie
+	disassembly of such aliases with the corresponding GAS support, only one
+	canonical form among the above would be recognized as `li.w`, and it
+	would mildly impact the readability of disassembly output.
+	People wanting the exact disassembly can always set `-M no-aliases` to
+	get the original behavior back.
+
+	In addition, in certain cases, information is irreversibly lost after
+	assembling, so perfect round-trip would not be possible in such cases.
+	For example, `li.w` and `li.d` of immediates within int32_t range
+	produce the same code; in this patch, `addi.d rd, $zero, imm` is treated
+	as `li.d`, while `addi.w` and `ori` immediate loads are shown as `li.w`,
+	due to the expressible value range well within 32 bits.
+
+	gas/ChangeLog:
+
+		* config/tc-loongarch.c (get_loongarch_opcode): Ignore
+		disassembler-only aliases.
+		* testsuite/gas/loongarch/64_pcrel.d: Update test case.
+		* testsuite/gas/loongarch/imm_ins.d: Likewise.
+		* testsuite/gas/loongarch/imm_ins_32.d: Likewise.
+		* testsuite/gas/loongarch/jmp_op.d: Likewise.
+		* testsuite/gas/loongarch/li.d: Likewise.
+		* testsuite/gas/loongarch/macro_op.d: Likewise.
+		* testsuite/gas/loongarch/macro_op_32.d: Likewise.
+		* testsuite/gas/loongarch/macro_op_large_abs.d: Likewise.
+		* testsuite/gas/loongarch/macro_op_large_pc.d: Likewise.
+		* testsuite/gas/loongarch/nop.d: Likewise.
+		* testsuite/gas/loongarch/relax_align.d: Likewise.
+		* testsuite/gas/loongarch/reloc.d: Likewise.
+
+	include/ChangeLog:
+
+		* opcode/loongarch.h (INSN_DIS_ALIAS): Add.
+
+	ld/ChangeLog:
+
+		* testsuite/ld-loongarch-elf/jmp_op.d: Update test case.
+		* testsuite/ld-loongarch-elf/macro_op.d: Likewise.
+		* testsuite/ld-loongarch-elf/macro_op_32.d: Likewise.
+		* testsuite/ld-loongarch-elf/relax-align.dd: Likewise.
+
+	opcodes/ChangeLog:
+
+		* loongarch-dis.c: Move register name map declarations to top.
+		(get_loongarch_opcode_by_binfmt): Consider aliases when
+		disassembling without the no-aliases option.
+		(parse_loongarch_dis_option): Support the no-aliases option.
+		* loongarch-opc.c: Collect pseudo instructions into a new
+		dedicated table.
+
+2023-06-30  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	binutils/NEWS: announce SFrame version 2 as the new default
+
+2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	doc: sframe: update specification for SFRAME_VERSION_2
+	Add details for the changes made from Version 1 to Version 2 of the format.
+
+	Also add details about alignment in the SFrame format.  A portion of the
+	SFrame stack trace format has an unaligned on-disk representation.  Add
+	description at relevant points in the specificatin to clarify the
+	alignment related details.
+
+2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	sframe: bfd: gas: ld: format bump to SFrame version 2
+	SFrame version 2 encodes the size of repetitive insn block explicitly
+	in the format.  Add information in the SFrame FDE to convey the size
+	of the block of repeating instructions.  This information is used only
+	for SFrame FDEs of type SFRAME_FDE_TYPE_PCMASK.
+
+	Introduce two extra bytes for padding: this ensures that the memory
+	accesses to the members of the SFrame Frame Descriptor Entry (FDE) are
+	naturally aligned.
+
+	gas generates SFrame section with version SFRAME_VERSION_2 by default.
+
+	libsframe provides two new APIs to:
+	  - get an SFrame FDE data from the decoder context, and
+	  - add an SFrame FDE to the encoder context.
+	The additional argument (for rep_block_size) is useful for SFrame FDEs
+	where FDE type is SFRAME_FDE_TYPE_PCMASK.
+
+	The linker will generate the output SFrame sections in the
+	SFRAME_VERSION_2 format.  If the input sections offered to the linker
+	are not all in the SFRAME_VERSION_2 format, the linker issues an error
+	to the user.
+
+	objdump/readelf will show the following message to the user if .sframe
+	section in SFRAME_VERSION_1 format is seen:
+
+	 "No further information can be displayed.  SFrame version not
+	 supported."
+
+	In other words, like the rest of the binutils, only the current SFrame
+	format version, i.e., SFRAME_VERSION_2 is supported by the textual dump
+	facilities.
+
+	bfd/
+		* elf-sframe.c (_bfd_elf_merge_section_sframe): Generate an
+		output SFrame section with version SFRAME_VERSION_2.  Also,
+		error out if the SFrame sections do not all have
+		SFRAME_VERSION_2.
+		* elfxx-x86.c (_bfd_x86_elf_create_sframe_plt): Generate SFrame
+		section for plt entries with version SFRAME_VERSION_2.
+	gas/
+		* gen-sframe.c (sframe_set_version): Update to SFRAME_VERSION_2.
+		(output_sframe): Likewise.
+	gas/testsuite/
+		* gas/cfi-sframe/cfi-sframe-aarch64-1.d: Use SFRAME_VERSION_2.
+		* gas/cfi-sframe/cfi-sframe-aarch64-2.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-aarch64-pac-ab-key-1.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-1.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-2.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-3.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-4.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-5.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-6.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-7.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-common-8.d: Likewise.
+		* gas/cfi-sframe/cfi-sframe-x86_64-1.d: Likewise.
+		* gas/cfi-sframe/common-empty-1.d: Likewise.
+		* gas/cfi-sframe/common-empty-2.d: Likewise.
+		* gas/cfi-sframe/common-empty-3.d: Likewise.
+	ld/testsuite/
+		* ld-aarch64/sframe-simple-1.d: Adjust for SFRAME_VERSION_2.
+		* ld-x86-64/sframe-plt-1.d: Likewise.
+		* ld-x86-64/sframe-simple-1.d: Likewise.
+	libsframe/
+		* libsframe.ver: Add the new APIs.
+		* sframe.c (sframe_decoder_get_funcdesc_v2): New definition.
+		(sframe_encoder_add_funcdesc_v2): Likewise.
+		(sframe_header_sanity_check_p): Include SFRAME_VERSION_2.
+		(sframe_fre_check_range_p): Get rep_block_size info from SFrame
+		FDE.
+		* sframe-dump.c (dump_sframe_header): Add support for
+		SFRAME_VERSION_2.
+		(dump_sframe): Inform user if SFrame section in SFRAME_VERSION_1
+		format is seen.
+	libsframe/testsuite/
+		* libsframe.decode/DATA-BE: Regenerated data file.
+		* libsframe.decode/DATA1: Likewise.
+		* libsframe.decode/DATA2: Likewise.
+		* libsframe.find/plt-findfre-1.c: Use new API in the testcase.
+	include/
+		* sframe.h: Add member to encode size of the code block of
+		repeating instructions.  Add 2 bytes of padding.
+		* sframe-api.h (sframe_decoder_get_funcdesc_v2): New
+		declaration.
+		(sframe_encoder_add_funcdesc_v2): Likewise.
+
+2023-06-30  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: add new APIs to get SFrame version
+	While the SFrame preamble is guaranteed to not change between versions,
+	providing these access APIs from the SFrame decoder and encoder APIs is
+	for convenience only.  The linker may want to use these APIs as the
+	format evolves.
+
+	include/
+		* sframe-api.h (sframe_decoder_get_version): New declaration.
+		(sframe_encoder_get_version): Likewise.
+
+	libsframe/
+		* libsframe/libsframe.ver: Add new APIs.
+		* libsframe/sframe.c (sframe_decoder_get_version): New
+		definition.
+		(sframe_encoder_get_version): Likewise.
+
+2023-06-29  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: fix sframe_find_fre for pltN entries
+	For a toy application on x86_64, for example, following is the SFrame
+	stack trace information for the 3 pltN entries of 16 bytes each:
+
+	   func idx [1]: pc = 0x401030, size = 48 bytes
+	   STARTPC[m]      CFA       FP        RA
+	   0000000000000000  sp+8      u         u
+	   000000000000000b  sp+16     u         u
+
+	The data in first column is the start_ip_offset.  Also note that the FDE
+	is of type SFRAME_FDE_TYPE_PCMASK (denoted by the [m] on LHS).
+
+	Where each pltN (note: excluding plt0 entry) entry looks like:
+
+	  401030: jmp    *0x2fca(%rip)
+	  401036: push   $0x0
+	  40103b: jmp    401020<_init+0x20>
+
+	  401040: jmp    *0x2fc2(%rip)
+	  401046: push   $0x1
+	  40104b: jmp    401020<_init+0x20>
+
+	  401050: jmp    *0x2fba(%rip)
+	  401056: push   $0x2
+	  40105b: jmp    401020<_init+0x20>
+
+	Now, to find SFrame stack trace information from an FDE of type
+	SFRAME_FDE_TYPE_PCMASK, sframe_find_fre () was doing an operation
+	like,
+	  (start_ip_offset & 0xf) >= (pc & 0xf)
+
+	This works for pltN entry of size, say, less than 16 bytes.  But if the
+	pltN entries or similar code stubs (for which SFrame FDE of type
+	SFRAME_FDE_TYPE_PCMASK may be used), evolve to be of size > 16 bytes,
+	this will cease to work.
+
+	To match the range covered by the SFrame FRE, one should instead perform
+	a modulo operation.  The constant for the modulo operation must be the
+	size of the pltN entry.  Further, this constant should ideally be
+	encoded in the format, as it may be different for each ABI.
+
+	In SFrame Version 2 of the format, we will move towards encoding it
+	explicitly in the SFrame FDE.  For now, fix up the logic to at least
+	move towards modulo operation.
+
+	libsframe/
+		* sframe.c (sframe_fre_check_range_p): New definition.
+		(sframe_find_fre): Refactor a bit and use the new definition
+		above.
+	include/
+		* sframe.h (SFRAME_FDE_TYPE_PCMASK): Update comment.
+	libsframe/doc/
+		* sframe-spec.texi: Fix the text for SFRAME_FDE_TYPE_PCMASK FDE
+		type.
+
+2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
+
+	ld: Add -z nosectionheader test to bootstrap.exp
+		PR ld/25617
+		* testsuite/ld-bootstrap/bootstrap.exp: Add -z nosectionheader
+		test.
+
+2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
+
+	ld: Add tests for -z nosectionheader and --strip-section-headers
+	Add tests to verify that the linker option, -z nosectionheader and
+	objcopy and strip option, --strip-section-headers, work correctly as well
+	as linker issues an error when dynamic symbol table from PT_DYNAMIC
+	segment is used.
+
+		PR ld/25617
+		* testsuite/ld-elf/hash-2.d: New file.
+		* testsuite/ld-elf/no-section-header.exp: Likewise.
+		* testsuite/ld-elf/pr25617-1-no-sec-hdr.nd: Likewise.
+		* testsuite/ld-elf/pr25617-1-no-sec-hdr.rd: Likewise.
+		* testsuite/ld-elf/pr25617-1-static-no-sec-hdr.rd: Likewise.
+		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.nd: Likewise.
+		* testsuite/ld-elf/pr25617-1a-no-sec-hdr.rd: Likewise.
+		* testsuite/ld-elf/pr25617-1a-sec-hdr.rd: Likewise.
+		* testsuite/ld-elf/pr25617-1a.c: Likewise.
+		* testsuite/ld-elf/pr25617-1b.c: Likewise.
+		* testsuite/ld-elf/start-noheader.rd: Likewise.
+		* testsuite/ld-elf/start-shared-noheader-gnu.rd: Likewise.
+		* testsuite/ld-elf/start-shared-noheader-sysv.rd: Likewise.
+		* testsuite/ld-elf/start-shared-noheader.nd: Likewise.
+
+2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
+
+	binutils: Add a --strip-section-headers test
+		PR ld/25617
+		* testsuite/binutils-all/objcopy.exp: Run strip-section-headers-1.
+		* testsuite/binutils-all/strip-section-headers-1.d: New file.
+
+2023-06-29  Kaylee Blake  <klkblake@gmail.com>
+
+	ld: Add simple tests for -z nosectionheader
+	2020-06-06  Kaylee Blake  <klkblake@gmail.com>
+		    H.J. Lu  <hongjiu.lu@intel.com>
+
+		PR ld/25617
+		* testsuite/ld-elf/nosectionheader-1.d: New file.
+		* testsuite/ld-elf/nosectionheader-2.d: Likewise.
+
+2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
+
+	bfd: Improve nm and objdump without section header
+	When there is no section header in an executable or shared library, we
+	reconstruct dynamic symbol table from the PT_DYNAMIC segment, which
+	contains DT_HASH/DT_GNU_HASH/DT_MIPS_XHASH, DT_STRTAB, DT_SYMTAB,
+	DT_STRSZ, and DT_SYMENT entries, to improve nm and objdump.  For DT_HASH,
+	the number of dynamic symbol table entries equals the number of chains.
+	For DT_GNU_HASH/DT_MIPS_XHASH, only defined symbols with non-STB_LOCAL
+	indings are in hash table.  Since DT_GNU_HASH/DT_MIPS_XHASH place all
+	symbols with STB_LOCAL binding before symbols with other bindings and
+	all undefined symbols defined ones in dynamic symbol table, the highest
+	symbol index in DT_GNU_HASH/DT_MIPS_XHASH is the highest dynamic symbol
+	table index.  We can also get symbol version from DT_VERSYM, DT_VERDEF
+	and DT_VERNEED entries.
+
+	dt_symtab, dt_versym, dt_verdef, dt_verneed, dt_symtab_count,
+	dt_verdef_count, dt_verneed_count and dt_strtab are added to
+	elf_obj_tdata to store dynamic symbol table information.
+
+		PR ld/25617
+		* elf-bfd.h (elf_obj_tdata): Add dt_symtab, dt_verdef, dt_verneed,
+		dt_symtab_count, dt_verdef_count, dt_verneed_count and dt_strtab.
+		(elf_use_dt_symtab_p): New.
+		(_bfd_elf_get_dynamic_symbols): Likewise.
+		(_bfd_elf_get_section_from_dynamic_symbol): Likewise.
+		* elf.c (bfd_elf_get_elf_syms): Use dynamic symbol table if
+		neeeded.
+		(_bfd_elf_get_dynamic_symtab_upper_bound): Likewise.
+		(_bfd_elf_slurp_version_tables): Likewise.
+		(offset_from_vma): New function.
+		(get_hash_table_data): Likewise.
+		(_bfd_elf_get_dynamic_symbols): Likewise.
+		(_bfd_elf_get_section_from_dynamic_symbol): Likewise.
+		(_bfd_elf_get_symbol_version_name): Likewise.
+		* elfcode.h (elf_object_p): Call _bfd_elf_get_dynamic_symbols
+		to reconstruct dynamic symbol table from PT_DYNAMIC segment if
+		there is no section header.
+		(elf_slurp_symbol_table): Use dynamic symbol table if neeeded.
+		Don't free isymbuf when dynamic symbol table is used.
+		* elflink.c (elf_link_is_defined_archive_symbol): Return wrong
+		format error when dynamic symbol table is used.
+		(elf_link_add_object_symbols): Likewise.
+
+2023-06-29  H.J. Lu  <hjl.tools@gmail.com>
+
+	ELF: Discard non-alloc sections without section header
+	Discard non-alloc sections when section headers are stripped.
+
+	bfd/
+
+		PR ld/25617
+		* elf.c (_bfd_elf_assign_file_positions_for_non_load): Skip
+		non-load sections without section header.
+		(_bfd_elf_write_object_contents): Don't set the sh_name field
+		without section header.  Write out the .shstrtab section only
+		if its sh_offset field isn't -1.
+
+	binutils/
+
+		PR ld/25617
+		* objcopy.c (is_strip_section_1): Remove non-alloc sections for
+		--strip-section-headers.
+
+	ld/
+
+		PR ld/25617
+		* ldlang.c (lang_discard_section_p): Discard non-alloc sections
+		if we are stripping section headers.
+
+2023-06-29  Kaylee Blake  <klkblake@gmail.com>
+
+	ELF: Strip section header in ELF objects
+	Section header isn't mandatory on ELF executable nor shared library.
+	This patch adds a new linker option, -z nosectionheader, to omit ELF
+	section header, a new objcopy and strip option, --strip-section-headers,
+	to remove ELF section headers.
+
+	bfd/
+
+	2023-06-06  H.J. Lu  <hongjiu.lu@intel.com>
+		    Kaylee Blake  <klkblake@gmail.com>
+
+		PR ld/25617
+		* bfd.c (BFD_NO_SECTION_HEADER): New.
+		(BFD_FLAGS_SAVED): Add BFD_NO_SECTION_HEADER.
+		(BFD_FLAGS_FOR_BFD_USE_MASK): Likewise.
+		* elfcode.h (elf_swap_ehdr_out): Omit section header with
+		BFD_NO_SECTION_HEADER.
+		(elf_write_shdrs_and_ehdr): Likewise.
+		* elfxx-target.h (TARGET_BIG_SYM): Add BFD_NO_SECTION_HEADER
+		to object_flags.
+		(TARGET_LITTLE_SYM): Likewise.
+		* bfd-in2.h: Regenerated.
+
+	binutils/
+
+	2023-06-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+		PR ld/25617
+		* NEWS: Mention --strip-section-headers for objcopy and strip.
+		* objcopy.c (strip_section_headers): New.
+		(command_line_switch): Add OPTION_STRIP_SECTION_HEADERS.
+		(strip_options): Add --strip-section-headers.
+		(copy_options): Likewise.
+		(copy_usage): Add --strip-section-headers.
+		(strip_usage): Likewise.
+		(copy_object): Handle --strip-section-headers for ELF files.
+		(strip_main): Handle OPTION_STRIP_SECTION_HEADERS.
+		(copy_main): Likewise.
+		* doc/binutils.texi: Document --strip-section-headers for objcopy
+		and strip.
+
+	ld/
+
+	2023-06-06  H.J. Lu  <hongjiu.lu@intel.com>
+		    Kaylee Blake  <klkblake@gmail.com>
+
+		PR ld/25617
+		* NEWS: Mention -z nosectionheader.
+		* emultempl/elf.em: Support -z sectionheader and
+		-z nosectionheader.
+		* ld.h (ld_config_type): Add no_section_header.
+		* ld.texi: Document -z sectionheader and -z nosectionheader.
+		* ldlang.c (ldlang_open_output): Handle
+		config.no_section_header.
+		* lexsup.c (parse_args): Enable --strip-all with
+		-z nosectionheader.  Disallow -r with -z nosectionheader.
+		(elf_static_list_options): Add -z sectionheader and
+		-z nosectionheader.
+
+2023-06-29  Matthias Klose  <doko@debian.org>
+
+	Ignore --prefix-file-map compiler option whist running testsuite.
+
+	ignore lto-wrapper warnings for lto builds.
+	  I see these warnings from time to time, when configuring a build with  --enable-pgo-build=lto, I haven't yet found out why I see these sometime, and  why not. E.g. https://gcc.gnu.org/PR109241. Just ignore these when they appear  in test cases. lto-wrapper: warning: using serial compilation of N LTRANS jobs
+
+2023-06-29  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-28  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	gprofng: Add new tests
+	gprofng/ChangeLog
+	2023-06-26  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+		* Makefile.am: Pass CLOCK_GETTIME_LINK to the testsuite
+		* Makefile.in: Rebuild.
+		* testsuite/gprofng.display/gp-archive.exp: New file.
+		* testsuite/gprofng.display/gp-collect-app_F.exp: New file.
+		* testsuite/gprofng.display/setpath_map.exp: New file.
+		* testsuite/lib/smalltest.c: New file.
+
+2023-06-28  Andrew Carlotti  <andrew.carlotti@arm.com>
+
+	aarch64: Remove version dependencies from features
+	Many instructions were enabled only when both a feature flag and a minimum
+	architecture version are specified.  This behaviour differs from GCC, which (in
+	most cases) allows features to be enabled at any architecture version.
+
+	There is no need for the toolchain to restrict combinations of unrelated
+	features in this way, so this patch removes the unnecessary dependencies.
+
+2023-06-28  Tom Tromey  <tromey@adacore.com>
+
+	Remove Python 2 from gdb documentation
+	GDB can't be built using Python 2 any more, so remove the remaining
+	vestiges of this from the documentation.
+
+	Approved-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-06-28  Michael Matz  <matz@suse.de>
+
+	section-match: Check parent archive name as well
+	rewriting the section matching routines lost a special case
+	of matching: section statements of the form
+
+	    NAME(section-glob)
+
+	normally match against NAME being an object file, but like in
+	the exclude list we happened to accept archive names as NAME
+	(undocumented).  The documented way to specify (all) archive members
+	is by using e.g.
+
+	    lib.a:(section-glob)
+
+	(that does work also with the prefix tree matcher).
+
+	But I intended to not actually change behaviour with the prefix
+	tree implementation.  So, let's also implement checking against
+	archive names with a similar FIXME comment we already have in
+	walk_wild_file_in_exclude_list.
+
+		PR 30590
+
+		ld/
+		* ldlang.c (walk_wild_section_match): Also look at archive
+		parents for a name match.
+
+2023-06-28  Tom Tromey  <tromey@adacore.com>
+
+	Fix handling of DW_TAG_unspecified_type for Ada
+	Commit 80eaec735e ("[gdb/symtab] Handle named DW_TAG_unspecified_type
+	DIE") changed the handling of DW_TAG_unspecified_type.  Before this
+	change, such types were not entered into the symbol table.
+
+	It turns out that, when such a type is in the symtab, it can cause
+	failures in Ada.  In particular, a private type in another package may
+	be seen locally as "void".
+
+	Now, it would probably be better to fix this via check_typedef.
+	However, that is somewhat difficult given the state of the DWARF
+	reader -- in particular with gdb_index, this would require expanding
+	potentially many CUs to find the correct type.
+
+	Instead, this patch changes gdb to not enter a symbol for an
+	unspecified type -- but only for Ada.
+
+2023-06-28  Tom Tromey  <tromey@adacore.com>
+
+	Remove some Python 2 code
+	I found some Python 2 compatibility code in gdb's Python library.
+	There's no need for this any more, so this removes it.  There is still
+	a bit more of this remaining in __init__.py, but I haven't tried
+	removing that yet.
+
+	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
+
+2023-06-28  Nick Clifton  <nickc@redhat.com>
+
+	Stop the linker's --dependency-file option from including temporary lto files.
+	  PR 30568
+	  * ldfile.c (ldfile_try_open_bfd): Do not track lto generated temporary files.
+
+	Updated French translation for the gold sub-directory
+
+2023-06-28  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: gas: Add LSX and LASX instructions test
+	gas/ChangeLog:
+
+		* testsuite/gas/loongarch/vector.d: New test.
+		* testsuite/gas/loongarch/vector.s: New test.
+
+2023-06-28  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: gas: Add lsx and lasx instructions support
+	gas/ChangeLog:
+
+		* config/tc-loongarch.c (md_parse_option): Add lsx and lasx option.
+		(loongarch_after_parse_args): Add lsx and lasx option.
+
+	opcodes/ChangeLog:
+
+		* loongarch-opc.c (struct loongarch_ase): Add lsx and lasx
+		instructions.
+
+2023-06-28  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: Add R_LARCH_64_PCREL relocation support
+	  Gas defaults to emit R_LARCH_ADD64/R_LARCH_SUB64 unless explcitly declared
+	  to emit R_LARCH_64_PCREL.
+
+	  The LoongArch ABI at here:
+	    https://github.com/loongson/la-abi-specs/blob/release/la-abi.adoc
+
+	bfd/ChangeLog:
+
+		* bfd-in2.h (not): Add R_LARCH_64_PCREL
+		* elfnn-loongarch.c (perform_relocation): Likewise.
+		* elfxx-loongarch.c: Likewise.
+		* libbfd.h: Likewise.
+		* reloc.c: Likewise.
+
+	gas/ChangeLog:
+
+		* config/tc-loongarch.c (loongarch_args_parser_can_match_arg_helper):
+		(md_apply_fix): Add R_LARCH_64_PCREL.
+		* testsuite/gas/loongarch/64_pcrel.d: New test.
+		* testsuite/gas/loongarch/64_pcrel.s: New test.
+
+	include/ChangeLog:
+
+		* elf/loongarch.h (RELOC_NUMBER): Add R_LARCH_64_PCREL.
+
+	ld/ChangeLog:
+
+		* testsuite/ld-loongarch-elf/ld-loongarch-elf.exp: Add test.
+		* testsuite/ld-loongarch-elf/64_pcrel.d: New test.
+		* testsuite/ld-loongarch-elf/64_pcrel.s: New test.
+
+2023-06-28  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	binutils/NEWS: add note about upcoming libsframe changes
+	Some of these changes update the ABI in an incompatible way.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: bfd: use uint32_t for return type of get_num_fidx APIs
+	Keep the data types usage in libsframe look consistent.
+
+	bfd/
+		* elf-sframe.c (_bfd_elf_merge_section_sframe): Use uint32_t
+		type alias.
+		* libsframe/sframe.c (sframe_decoder_get_funcdesc_at_index):
+		Likewise.
+		(sframe_decoder_get_num_fidx): Likewise.
+		(sframe_encoder_get_num_fidx): Likewise.
+	include/
+		* sframe-api.h (sframe_decoder_get_num_fidx): Likewise.
+		(sframe_encoder_get_num_fidx): Likewise.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: use appropriate data types for args of sframe_encode
+	include/
+		* sframe-api.h (sframe_encode): Use of uint8_t is more
+		appropriate.
+	libsframe/
+		* sframe.c (sframe_encode): Likewise.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: use uint8_t for return type of sframe_fre_get_base_reg_id
+	Use a more appropriate data type.
+
+	include/
+		* sframe-api.h (sframe_fre_get_base_reg_id): Use uint8_t as
+		return type.
+	libsframe/
+		* sframe-dump.c (dump_sframe_func_with_fres): Use uint8_t type
+		for base reg id.
+		* sframe.c (sframe_fre_get_base_reg_id): Use uin8_t as return
+		type.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: use uint8_t instead of unsigned char for abi_arch
+	Use uint8_t consistently for identifying ABI/arch in SFrame format.
+
+	bfd/
+		* elf-sframe.c (_bfd_elf_merge_section_sframe):
+	libsframe/
+		* sframe-dump.c (is_sframe_abi_arch_aarch64): Use uint8_t for
+		local variable.
+		* sframe.c (sframe_decoder_get_abi_arch): Update return type to
+		uint8_t.
+		(sframe_encoder_get_abi_arch): Likewise.
+	include/
+		* sframe-api.h (sframe_decoder_get_abi_arch): Likewise.
+		(sframe_encoder_get_abi_arch): Likewise.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: bfd: use uint32_t for return type of sframe_calc_fre_type
+	Use uint32_t type alias consistently for all APIs in libsframe.
+
+	bfd/
+		* elfxx-x86.c (_bfd_x86_elf_create_sframe_plt): Adjust for the
+		changed return type.
+	libsframe/
+		* sframe.c (sframe_calc_fre_type): Use uint32_t for return type.
+	include/
+		* sframe-api.h (sframe_calc_fre_type): Likewise.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: use uint32_t for fre_type and fde_type function args
+	The API sframe_fde_create_func_info is provided by libsframe.  Current
+	users are the bfd linker.  Adjust the argument type for the variables
+	carrying the SFrame FRE type and SFrame FDE type to consistenly use
+	uint32_t type alias.
+
+	include/
+		* sframe-api.h (sframe_fde_create_func_info): Use uint32_t
+		instead of unsigned int.
+	libsframe/
+		* sframe.c (sframe_get_fre_type): Likewise.
+		(sframe_get_fde_type): Likewise.
+		(flip_fre_start_address): Likewise.
+		(sframe_fre_start_addr_size): Likewise.
+		(sframe_fre_entry_size): Likewise.
+		(flip_fre): Likewise.
+		(flip_sframe): Likewise.
+		(sframe_fde_create_func_info): Likewise.
+		(sframe_calc_fre_type): Likewise.
+		(sframe_decode_fre_start_address): Likewise.
+		(sframe_decode_fre): Likewise.
+		(sframe_find_fre): Likewise.
+		(sframe_decoder_get_fre): Likewise.
+		(sframe_encoder_add_fre): Likewise.
+		(sframe_encoder_write_fre_start_addr): Likewise.
+		(sframe_encoder_write_fre): Likewise.
+		(sframe_encoder_write_sframe): Likewise.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: update the semantics of sframe_fre_get_fp_offset
+	Until now, sframe_fre_get_fp_offset () would return
+	SFRAME_ERR_FREOFFSET_NOPRESENT if the ABI uses fixed FP offset.  A stack
+	tracer, then, would call an explicit sframe_decoder_get_fixed_fp_offset ()
+	to get the FP offset.
+
+	On second look, it appears to make sense to hide these details of
+	whether the FP offset is fixed or not in an ABI from the consumer.  Now,
+	with the changed semantics, the call to sframe_fre_get_fp_offset () will
+	fetch the fixed FP offset if applicable, or get the FP offset from FRE
+	when there is no fixed FP offset.
+
+	This patch changes the behavior of sframe_fre_get_fp_offset (): it turns
+	an error into non-error.  This change will be included with the next
+	release of libsframe, where all the exposed symbols will be versioned
+	with version node LIBSFRAME_1.0 for the first time.
+
+	libsframe/
+		* sframe.c (sframe_fre_get_fp_offset): Return the fixed offset, if
+		applicable. Else return the FP offset from the FRE.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: update the semantics of sframe_fre_get_ra_offset
+	Until now, sframe_fre_get_ra_offset () would return
+	SFRAME_ERR_FREOFFSET_NOPRESENT if the ABI uses fixed RA offset (e.g.,
+	AMD64).  A stack tracer, then, will call an explicit
+	sframe_decoder_get_fixed_ra_offset () to get the RA offset.
+
+	On second look, it appears to make sense to hide these details of
+	whether the RA offset is fixed or not from the consumer.  Now, with the
+	changed semantics, the call to sframe_fre_get_ra_offset () will fetch
+	the fixed RA offset if applicable, or get the RA offset from FRE when
+	there is no fixed RA offset.
+
+	Adjustments need to be made to ensure the textual dump remains the same
+	as preivous.  Currently, e.g., if RA is not being tracked per FRE,
+	following is seen with objdump --sframe:
+
+	    STARTPC         CFA       FP        RA
+	    000000000000NNNN  sp+X      u         u
+
+	This patch changes the behavior of sframe_fre_get_ra_offset: it turns an
+	error into non-error.  This change will be included with the next
+	release of libsframe, where all exposed symbols will be versioned for
+	the first time.
+
+	libsframe/
+		* sframe.c (sframe_fre_get_ra_offset): Return the fixed offset,
+		if applicable.  Else return the RA offset from the FRE.
+		* sframe-dump.c (dump_sframe_func_with_fres): Make adjustments
+		to keep the textual dump same as previous.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: add symbol versioning
+	Define an empty base version LIBSFRAME_0.0 and add all symbols to
+	version LIBSFRAME_1.0.
+
+	The previous release of libsframe (libsframe.so.0) did not have
+	versioned symbols.  Adding a libsframe.ver file so that future releases
+	of the library (and its consumers) can manage the changes better.
+
+	For Solaris ld, use -M mapfile command line option.  libsframe does not
+	restrict the set of exported symbols, so at this time there is no need
+	to fall back on the libtool's -export-symbols option for platforms where
+	some other linker (with a different command line option for symbol
+	versioning) may be used.
+
+	libsframe/
+		* Makefile.am: Use symbol versioning for libsframe.
+		* Makefile.in: Regenerated.
+		* configure: Check for Solaris ld.
+		* configure.ac: Regenerated.
+		* libsframe.ver: New file.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: remove sframe_get_funcdesc_with_addr API
+	This is an incompatible ABI change in libsframe.
+
+	The interface provided by this function is not a healthy abstraction to
+	expose: the return type sframe_func_desc_entry, which is defined in
+	include/sframe.h (the SFrame binary format definition).  This ties up
+	the library in a undesirable way.  Most importantly, this function
+	should technically not be directly necessary for a stack tracer.  A
+	stack tracer will likely only need to do a sframe_find_fre ().
+
+	Rename the API to continue to use the functionality internally in the
+	library.  bfd/linker does not use this function.
+
+	Change the return type of the previous definition and make a note about
+	its planned deprecation.
+
+	include/
+		* sframe-api.h:  Change return type of sframe_get_funcdesc_with_addr.
+		Add comment for intention to deprecate.
+	libsframe/
+		*sframe.c (sframe_get_funcdesc_with_addr): Change return type
+		and set error code. This API is deprecated.
+	        (sframe_get_funcdesc_with_addr_internal): New definition for
+		internal use.
+		(sframe_find_fre): Use sframe_get_funcdesc_with_addr_internal
+		instead.
+
+2023-06-27  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: add library versioning
+	lisbframe was first released with Bintuils 2.40.  As the library
+	evolves, some changes will break the ABI.  Add library versioning for
+	users to manage these changes.
+
+	For the next release of the library (libsframe.so.1), incompatible ABI
+	changes are planned. These will include:
+	 - Deprecation of some APIs, like sframe_get_funcdesc_with_addr (), and
+	 - Change in the contract of some APIs (e.g., return type, behavior).
+
+	In libtool-version, set the current to 1 to prepare for the upcoming
+	release.  Reset revision and age to 0.
+
+	Add libtool-version file to EXTRA_DIST.
+
+	libsframe/
+		* Makefile.am: Use libtool versioning.
+		* Makefile.in: Regenerated.
+		* libtool-version: New file.
+
+2023-06-27  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+
+	    RISC-V: Support Zicond extension
+	    This implements the Zicond (conditional integer operations) extension,
+	    as of version 1.0-rc2.
+
+	    The Zicond extension acts as a building block for branchless sequences
+	    including conditional-arithmetic, conditional-logic and
+	    conditional-select/move.
+	    The following instructions constitute Zicond:
+	      - czero.eqz rd, rs1, rs2  =>  rd = (rs2 == 0) ? 0 : rs1
+	      - czero.nez rd, rs1, rs2  =>  rd = (rs2 != 0) ? 0 : rs1
+
+	    See
+	      https://github.com/riscv/riscv-zicond/releases/download/v1.0-rc2/riscv-zicond-v1.0-rc2.pdf
+	    for the proposed specification and usage details.
+
+	    bfd/ChangeLog:
+
+	            * elfxx-riscv.c (riscv_multi_subset_supports): Recognize
+	            INSN_CLASS_ZICOND.
+	            (riscv_multi_subset_supports_ext): Recognize INSN_CLASS_ZICOND.
+
+	    gas/ChangeLog:
+
+	            * testsuite/gas/riscv/zicond.d: New test.
+	            * testsuite/gas/riscv/zicond.s: New test.
+
+	    include/ChangeLog:
+
+	            * opcode/riscv-opc.h (MATCH_CZERO_EQZ): Define.
+	            (MASK_CZERO_EQZ): Define.
+	            (MATCH_CZERO_NEZ): Define,
+	            (MASK_CZERO_NEZ): Define.
+	            (DECLARE_INSN): Add czero.eqz and czero.nez.
+	            * opcode/riscv.h (enum riscv_insn_class): Add
+	            INSN_CLASS_ZICOND.
+
+	    opcodes/ChangeLog:
+
+	            * riscv-opc.c: Add czero.eqz and czero.nez.
+
+	    Signed-off-by: Philipp Tomsich <philipp.tomsich@vrull.eu>
+
+2023-06-27  Nick Clifton  <nickc@redhat.com>
+
+	Add note about adding ChangeLog.git to src-release.sh
+
+2023-06-27  Cui, Lili  <lili.cui@intel.com>
+
+	gprofng: Update intel url
+	Since the old software.intel.com has been removed, update a new one.
+
+	gprofng/ChangeLog
+	2023-06-27  Lili Cui  <lili.cui@intel.com>
+
+		* gp-display-html/gp-display-html.in: Update intel url.
+
+2023-06-27  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-26  Nick Clifton  <nickc@redhat.com>
+
+	Fix gas tests for aarch64-pe
+
+	Synchromize libiberty sources with master version in gcc repository
+
+	Sync config.guess and config.sub with upstream master versions.
+
+	Updated French translation for the gprof sub-directory
+
+2023-06-26  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-25  Feiyang Chen  <chenfeiyang@loongson.cn>
+
+	LoongArch: Support referring to FCSRs as $fcsrX
+	Previously, FCSRs were referred to as $rX, which seemed strange.
+	We refer to FCSRs as $fcsrX, which ensures compatibility with LLVM
+	IAS as well.
+
+	gas/ChangeLog:
+
+	        * config/tc-loongarch.c:
+	        (loongarch_fc_normal_name): New definition.
+	        (loongarch_fc_numeric_name): New definition.
+	        (loongarch_single_float_opcodes): Modify `movgr2fcsr` and
+	        `movfcsr2gr`.
+	        testsuite/gas/loongarch/float_op.d: Likewise.
+	        testsuite/gas/loongarch/float_op.s: Likewise.
+
+	include/ChangeLog:
+
+	        * opcode/loongarch.h:
+	        (loongarch_fc_normal_name): New extern.
+	        (loongarch_fc_numeric_name): New extern.
+
+	opcodes/ChangeLog:
+
+	        * opcodes/loongarch-dis.c (loongarch_after_parse_args): Support
+	        referring to FCSRs as $fcsrX.
+	        * opcodes/loongarch-opc.c (loongarch_args_parser_can_match_arg_helper):
+	        Likewise.
+
+2023-06-25  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-24  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-23  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>
+
+	gdb/testsuite: Avoid infinite loop in gdb.reverse/step-reverse.exp
+	This testcase sometimes gets stuck in a loop for hours when running in our
+	CI.  The problem is that due to an issue unrelated to reverse debugging the
+	inferior exits early, and because of the overly generic ".*" pattern the
+	testcase keeps sending the "next" command without noticing that the
+	inferior is gone.
+
+	gdb_test_multiple has a pattern to detect that "The program is not being
+	run.", but since it is placed after the patterns from the caller it won't
+	be triggered.  It also has a timeout pattern but because it is triggered
+	between successful matches, each time the test matches the '-re -wrap ".*"'
+	this counts as a successful match and the timeout is reset.
+
+	Since the test binary is compiled with debug information, fix by changing
+	one of the generic patterns to match entering the main function and the
+	other one to match the source code line number that is shown by GDB right
+	after the "step" command.
+
+	Also, as a precaution add a maximum number of times the "next" command will
+	be sent.
+
+	Co-Authored-By: Tom de Vries <tdevries@suse.de>
+	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
+	Approved-By: Tom de Vries <tdevries@suse.de>
+
+2023-06-23  Alan Modra  <amodra@gmail.com>
+
+	[GOLD] PowerPC64 huge branch dynamic relocs
+	PowerPC64 gold and ld.bfd implement an indirect branch trampoline,
+	used when the destination of a branch exceeds a bounce through another
+	"b" instruction.  When generating PIEs or shared libraries, the
+	addresses need dynamic relocations.  This was implemented in gold
+	using a dedicated relocation section, but this means the relative
+	relocations for these addresses are not sorted properly with other
+	dynamic relative relocations: gold doesn't support merging relocation
+	sections, then sorting.  Instead we need to use a single .rela.dyn
+	section.
+
+	This is done by increasing the size of rela_dyn_ during do_relax to
+	account for needed dynamic relocations, delaying adding the actual
+	relocations until the end of relaxation once the layout has
+	stabilised.
+
+		* powerpc.cc (Target_powerpc): Add rela_dyn_size_;
+		(update_current_size): New function.
+		(Target_powerpc::do_relax): Capture the size of rela_dyn_ at
+		the start of relaxation.  Artifically increase its size during
+		relaxation to account for needed indirect branches, and add
+		those relocations at the end.
+		(Output_data_brlt_powerpc::rel_, reset_brlt_sizes),
+		(finalize_brlt_sizes, add_reloc, set_current_size): Delete.
+		(Target_powerpc::make_brlt_section): Don't make reloc section.
+
+2023-06-23  Alan Modra  <amodra@gmail.com>
+
+	[GOLD] Support setting DT_RELACOUNT late
+	PowerPC gold adds relative dynamic relocs in do_relax.  These aren't
+	accounted for in the value set in add_target_dynamic_tags, which is
+	called before do_relax.  Provide a way of setting DT_RELCOUNT and
+	DT_RELACOUNT at the point where .dynamic is written.
+
+		* layout.cc (Layout::add_target_dynamic_tags): Add custom_relcount
+		parameter.  Emit DT_RELCOUNT/RELACOUNT as a custom target handled
+		dynamic tag if set.
+		* layout.h(Layout::add_target_dynamic_tags): Update prototype.
+		* aarch64.cc (Target_aarch64::do_finalize_sections): Adjust
+		add_target_dynamic_tags call.
+		* arm.cc (Target_arm::do_finalize_sections): Likewise.
+		* i386.cc (Target_i386::do_finalize_sections): Likewise.
+		* mips.cc (Target_mips::do_finalize_sections): Likewise.
+		* s390.cc (Target_s390::do_finalize_sections): Likewise.
+		* sparc.cc (Target_sparc::do_finalize_sections): Likewise.
+		* tilegx.cc (Target_tilegx::do_finalize_sections): Likewise.
+		* x86_64.cc (Target_x86_64::do_finalize_sections): Likewise.
+		* powerpc.cc (Target_powerpc::do_finalize_sections): Likewise.
+		(Target_powerpc::do_dynamic_tag_custom_value): New function.
+
+2023-06-23  Alan Modra  <amodra@gmail.com>
+
+	[GOLD] powerpc DT_RELACOUNT
+	DT_RELACOUNT was calculated incorrectly, and relative relocs not
+	sorted as they should be to the start of .rela.dyn, due to adding one
+	particular class of dynamic reloc using the wrong "add" method.
+
+		* powerpc.cc (Target_powerpc::Scan::global): Add relative
+		dyn relocs for ADDR64 and similar using add_global_relative.
+
+2023-06-23  Alan Modra  <amodra@gmail.com>
+
+	lto test fails with -fno-inline in CFLAGS
+	Putting -fno-inline in CFLAGS results in these failures.
+	FAIL: Build liblto-17b.so 1
+	FAIL: PR ld/12365
+	FAIL: PR ld/13183
+
+		* ld-plugin/lto.exp: Add -finline to compiler flags in some tests.
+
+2023-06-23  Tom Tromey  <tom@tromey.com>
+
+	Fix off-by-one error
+	Simon pointed out that commit a2bbca9fa5e ("Use std::vector<bool> for
+	agent_expr::reg_mask") caused a regression in libstdc++ debug mode.
+	This was due to an off-by-one error in a vector resize.  This patch
+	fixes the problem.
+
+2023-06-23  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-22  Ilya Leoshkevich  <iii@linux.ibm.com>
+
+	gdb/testsuite: fix gdb.python/py-unwind.exp with python >= 3.11
+	Python 3.11 changed the AttributeError message - see commit
+	0cb765b2cec9 ("bpo-46730: Add more info to @property AttributeError
+	messages (GH-31311)").  Add the new message to the expectations.
+
+	Approved-By: Tom Tromey <tom@tromey.com>
+	Link: https://sourceware.org/pipermail/gdb-patches/2023-June/200433.html
+
+2023-06-22  H.J. Lu  <hjl.tools@gmail.com>
+
+	Revert "x86: Don't check if AVX512 template requires AVX512VL"
+	This reverts commit c7face14225296a2f5d3ebeb8ace88c166d80c3e.
+
+2023-06-22  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Clean or check standard_output_file dir in gdb_init
+	In commit e2adba909e7 ("[gdb/testsuite] Clean up before compilation in
+	gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some
+	files at the start of the test-case:
+	...
+	remote_file host delete [standard_output_file prog.o]
+	remote_file host delete [standard_output_file prog.ali]
+	...
+
+	Then in commit b7b77500dc5 ("[gdb/testsuite] Clean standard_output_file dir in
+	gdb_init") I tried to do this more structurally, by cleaning up the entire
+	standard_output_file directory, for all test-cases.
+
+	This caused a regression when using "make check -j 2", due to the cleanup
+	removing the active gdb.log, so I reverted the commit.
+
+	Try again, this time handling the two cases separately.
+
+	If the standard_output_file directory contains an active gdb.log, check that
+	the directory contains no files other than gdb.log and gdb.sum.  This puts
+	the reponsibility for the cleanup at the callers in gdb/testsuite/Makefile.in
+	which use --outdir.
+
+	If the standard_output_file directory doesn't contain an active gdb.log, clean
+	it by removing the entire directory.
+
+	An exception is made for performance tests, where cleaning up the
+	standard_output_file dir is the wrong thing to do, because an invocation with
+	GDB_PERFTEST_MODE == run is intended to reuse binaries left there by an
+	earlier invocation with GDB_PERFTEST_MODE == compile.
+
+	Tested on x86_64-linux.
+
+	Suggested-By: Tom Tromey <tom@tromey.com>
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+	Tested-By: Luis Machado <luis.machado@arm.com>
+
+2023-06-22  Tom Tromey  <tromey@adacore.com>
+
+	Implement DAP "hover" context
+	A DAP client can request that an expression be evaluated in "hover"
+	context, meaning that it should not cause side effects.  In gdb, this
+	can be implemented by temporarily setting a few "may-" parameters to
+	"off".
+
+	In order to make this work, I had to also change "may-write-registers"
+	so that it can be changed while the program is running.  I don't think
+	there was any reason for this prohibition in the first place.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30476
+
+2023-06-22  Tom Tromey  <tromey@adacore.com>
+
+	Implement DAP logging breakpoints
+	DAP allows a source breakpoint to specify a log message.  When this is
+	done, the breakpoint acts more like gdb's dprintf: it logs a message
+	but does not cause a stop.
+
+	I looked into implement this using dprintf with the new %V printf
+	format.  However, my initial attempt at this did not work, because
+	when the inferior is continued, the dprintf output is captured by the
+	gdb.execute call.  Maybe this could be fixed by having all
+	inferior-continuation commands use the "&" form; the main benefit of
+	this would be that expressions are only parsed a single time.
+
+2023-06-22  Tom Tromey  <tromey@adacore.com>
+
+	Handle supportsVariablePaging in DAP
+	A bug report about the supportsVariablePaging capability in DAP
+	resulted in a clarification: when this capability is not present, DAP
+	implementations should ignore the paging parameters to the "variables"
+	request.  This patch implements this clarification.
+
+	Implement type checking for DAP breakpoint requests
+	I realized that with a small refactoring, it is possible to type-check
+	the parameters to the various DAP breakpoint requests.  This would
+	have caught the earlier bug involving hitCondition.
+
+	Handle exceptions when creating DAP breakpoints
+	When creating a DAP breakpoint, a failure should be returned by
+	setting "verified" to False.  gdb didn't properly implement this, and
+	there was a FIXME comment to this effect.  This patch fixes the
+	problem.
+
+	Reuse breakpoints more frequently in DAP
+	The DAP breakpoint code tries to reuse a breakpoint when possible.
+	Currently it uses the condition and the hit condition (aka ignore
+	count) when making this determination.  However, these attributes are
+	just going to be reset anyway, so this patch changes the code to
+	exclude these from the reuse decision.
+
+	Fix type of DAP hitCondition
+	DAP specifies a breakpoint's hitCondition as a string, meaning it is
+	an expression to be evaluated.  However, gdb implemented this as if it
+	were an integer instead.  This patch fixes this oversight.
+
+2023-06-22  Simon Farre  <simon.farre.cx@gmail.com>
+
+	gdb/DAP Few bug fixes & Evaluate Array Watch vars
+	v2.
+
+	EvaluateResult does not need a name, just as what Tom pointed out in
+	previous review. It's only the *children* that need to be made sure that
+	their names are valid. An identifier for a variable, can't ever have an
+	integer as a name, anyhow (not as far as I am aware, no programming
+	languages allow for that).
+
+	Removed the f-strings and use str() instead as pointed out that
+	f-strings might not be supported fully.
+
+	v1.
+
+	This patch fixes a few bugs.
+
+	First of all, name of VariableReferences must always be of string type.
+	This patch makes sure that this is the case by formatting the name. If
+	(when) the name is an integer, this will cause clients to fail or throw
+	errors.
+
+	Fixes a bug in NoOpArrayPrinter that calculated children to be N, but
+	only ever retrieves N-1 children, which makes Python at some time later
+	(during fetch_children -> fetch_one_child(N) ) raise an exception (out
+	of list index) which makes the entire request go bad.
+
+	The result[self.result_name] also f-strings the printer.to_string()
+	value, because this can potentially be a LazyString (which is a Python
+	object, not a string) and is not serializable by json.dumps.
+
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-06-22  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-21  H.J. Lu  <hjl.tools@gmail.com>
+
+	x86: Free the symbol buffer and the relocation buffer after use
+	When --no-keep-memory is used, the symbol buffer and the relocation
+	buffer aren't cached.  When packing relative relocations, we may
+	allocate a new symbol buffer and a new relocation buffer for each
+	eligible section in an object file.  If there are many sections,
+	memory may be exhausted.  In this case, we should free the symbol
+	buffer and the relocation buffer after use.  If symbol buffer entries
+	are used to track relative relocations against local symbols for later
+	use, the symbol buffer should be cached.
+
+		PR ld/30566
+		* elfxx-x86.c (elf_x86_relative_reloc_record_add): Add an
+		argument to inform caller if the symbol buffer should be kept.
+		(_bfd_x86_elf_link_relax_section): Call
+		_bfd_elf_link_info_read_relocs instead of
+		_bfd_elf_link_read_relocs.  Free the symbol buffer and the
+		relocation buffer after use.  Cache the symbol buffer if it
+		is used.
+
+2023-06-21  Tom Tromey  <tromey@adacore.com>
+
+	Add missing backslash to update-gnulib.sh
+	A user on irc noticed a missing backslash on one line in
+	update-gnulib.sh.  This patch adds it.
+
+	Re-running update-gnulib.sh causes a few copyright notices to change.
+	Presumably these are from upstream gnulib and shouldn't be touched by
+	our yearly update.  I've updated the script to account for this, but I
+	did not want to try testing it...
+
+2023-06-21  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add have_host_locale
+	With test-case gdb.tui/pr30056.exp, I run into:
+	...
+	sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)^M
+	...
+	and then subsequently into:
+	...
+	WARNING: timeout in accept_gdb_output
+	FAIL: gdb.tui/pr30056.exp: Control-C
+	...
+
+	This is on a CentOS 7 distro for powerpc64le.
+
+	Either it has no C.UTF-8 support, or it's not installed:
+	...
+	$ locale -a | grep ^C
+	C
+	$
+	...
+
+	Fix this by:
+	- adding a new proc have_host_locale, and
+	- using it in all test-cases using setenv LC_ALL.
+
+	Tested on powerpc64le-linux and x86_64-linux.
+
+2023-06-21  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.tui/wrap-line.exp
+	PR testsuite/30458 reports the following FAIL:
+	...
+	PASS: gdb.tui/wrap-line.exp: width-auto-detected: cli: wrap
+	^CQuit
+	(gdb) WARNING: timeout in accept_gdb_output
+	Screen Dump (size 50 columns x 24 rows, cursor at column 6, row 3):
+	    0 Quit
+	    1 (gdb) 7890123456789012345678901234567890123456789
+	    2 W^CQuit
+	    3 (gdb)
+	  ...
+	FAIL: gdb.tui/wrap-line.exp: width-auto-detected: cli: prompt after wrap
+	...
+
+	The problem is that the regexp doesn't account for the ^C:
+	...
+	    gdb_assert { [Term::wait_for "^WQuit"] } "prompt after wrap"
+	...
+
+	The ^C occurs occasionally.  This is something we'd like to fix.  It's
+	reported as a readline problem here (
+	https://lists.gnu.org/archive/html/bug-readline/2023-06/msg00000.html ).
+
+	For now, fix this by updating the regexp, and likewise in another place in the
+	test-case where we use ^C.
+
+	Tested on x86_64-linux.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30458
+
+2023-06-21  Alan Modra  <amodra@gmail.com>
+
+	PR30536, ppc64el gold linker produces unusable clang-16 binary
+	In commit 0961e631575b, the fix for PR30217, make_lplt_section and
+	make_brlt_section were changed to use rela_dyn_ rather than their own
+	separate dynamic reloc sections.  This fails miserably whenever brlt_
+	is needed for long branches, due to needing to iterate sizing and thus
+	reset brlt_ sizes.
+
+		PR 30536
+		PR 30217
+		* powerpc.cc (Target_powerpc::make_brlt_section): Don't use
+		rela_dyn_.
+
+2023-06-21  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Reimplement Term::command_no_prompt_prefix
+	Say we run test-case gdb.tui/basic.exp.  It calls Term::enter_tui, which does:
+	...
+		command_no_prompt_prefix "tui enable"
+	...
+
+	The proc command_no_prompt_prefix is documented as:
+	...
+	    # As proc command, but don't wait for an initial prompt.  This is used for
+	    # initial terminal commands, where there's no prompt yet.
+	...
+
+	Indeed, before the "tui enable" command, the tuiterm is empty, so there is no
+	prompt and just before switching to TUI we have in the tuiterm:
+	...
+	tui enable
+	...
+
+	The reason that there is no prompt, is that:
+	- in order for tuiterm to show something, its input processing procs need to
+	  be called, and
+	- the initial gdb prompt, and subsequent prompts generated by gdb_test-style
+	  procs, are all consumed by those procs instead.
+
+	This is in principle not a problem, but the absence of a prompt makes a
+	tuiterm session look less like a session on an actual xterm.
+
+	Add a new proc gen_prompt, that:
+	- generates a prompt using echo
+	- consumes the response before the prompt using gdb_expect
+	- consumes the prompt using Term::wait_for "".
+
+	This allows us to reimplement Term::command_no_prompt_prefix using
+	Term::command, and just before switching to TUI we have in the tuiterm:
+	...
+	(gdb) tui enable
+	...
+
+	Tested on x86_64-linux.
+
+2023-06-21  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Make Term::wait_for "" match only a prompt
+	The semantics of Term::wait_for is:
+	...
+	    # Accept some output from gdb and update the screen.  WAIT_FOR is
+	    # a regexp matching the line to wait for.  Return 0 on timeout, 1
+	    # on success.
+	    proc wait_for {wait_for} {
+	...
+
+	Note that besides the regexp, also a subsequent gdb prompt is matched.
+
+	I recently used wait_for "" in a few test-cases, thinking that this would
+	match just a prompt, but in fact that's not the case.
+
+	Fix this in wait_for, and add a corresponding test in gdb.tui/tuiterm-2.exp.
+
+	Tested on x86_64-linux.
+
+2023-06-21  Nick Clifton  <nickc@redhat.com>
+
+	Prune linker warnings about an executable stack being created with the -z execstack option.
+	  * testsuite/lib/binutils-common.exp (prune_warnings_extra): Prune warnings about -z execstack creating an executable stack.
+
+	For test for PR 29072 when the linker is configured with --enable-default-execstack=no.
+	  PR 29072
+	  * testsuite/ld-elf/elf.exp (target_defaults_to_execstack): Always return false for linkers configured with the --enable-default-execstack=no option.
+
+2023-06-21  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	gdbserver: use target_waitstatus::to_string in 'prepare_resume_reply'
+	Use the to_string method of target_waitstatus in
+	'prepare_resume_reply' for a more readable log message.
+
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-06-21  Jan Beulich  <jbeulich@suse.com>
+
+	x86: fix expansion of %XV
+	Only %LV should continue on to S handling; avoid emitting a stray 'l'
+	(typically) in suffix-always mode.
+
+2023-06-21  Alan Modra  <amodra@gmail.com>
+
+	elf32_arm_get_synthetic_symtab memory leak
+	ARM get_synthetic_symtab reads .plt and caches that data.  Caching the
+	data doesn't make a lot of sense since get_synthetic_symtab is only
+	called once per bfd, and the memory might be put to better use.  It
+	also leaks on closing the bfd.
+
+		* elf32-arm.c (elf32_arm_get_synthetic_symtab): Don't cache
+		plt contents.  Free plt data before returning.
+
+2023-06-21  Alan Modra  <amodra@gmail.com>
+
+	macho-o.c don't leak strtab
+		* mach-o.c (bfd_mach_o_write_symtab_content): Free strtab on
+		success path.
+
+2023-06-21  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Use ARRAY_SIZE in ax-general.c
+	This changes a couple of spots in ax-general.c to use ARRAY_SIZE.
+	While making this change, I noticed that one of the bounds checks was
+	incorrect.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Remove aop_last
+	aop_last is only used for an assertion.  However, due to the '.def'
+	construct in the sources, this assert could never plausibly trigger
+	(the assert predates the use of a .def file here).  This patch removes
+	the constant and the assert.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Make aop_map 'static'
+	This changes aop_map to be 'static'.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Use bool for agent_expr::tracing
+	This changese agent_expr::tracing to have type bool, allowing inline
+	initialization and cleaning up the code a little.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Simplify agent_expr constructor
+	This simplifies the agent_expr constructor a bit, and removes the
+	destructor entirely.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Use std::vector<bool> for agent_expr::reg_mask
+	agent_expr::reg_mask implements its own packed boolean vector.  This
+	patch replaces it with a std::vector<bool>, simplifying the code.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Use gdb::byte_vector in agent_expr
+	This changes agent_expr to use gdb::byte_vector rather than manually
+	reimplementing a vector.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Remove mem2hex
+	tracepoint.c has a 'mem2hex' function that is functionally equivalent
+	to bin2hex.  This patch removes the redundancy.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  H.J. Lu  <hjl.tools@gmail.com>
+
+	x86: Don't check if AVX512 template requires AVX512VL
+	If the ZMM operand in an AVX12 template also allows XMM or ZMM, this
+	template must require AVX512VL.  Drop the AVX512VL requirement check
+	on such AVX512 templates.
+
+		* config/tc-i386.c (check_VecOperands): Don't check if AVX512
+		template requires AVX512VL.
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Use std::string in do_set_command
+	do_set_command manually updates a string, only to copy it to a
+	std::string and free the working copy.  This patch changes this code
+	to use std::string for everything, simplifying the code and removing a
+	copy.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Use byte_vector in remote.c:readahead_cache
+	This patch changes the remote.c readahead_cache to use
+	gdb::byte_vector.  This simplifies the code by removing manual memory
+	management.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tom@tromey.com>
+
+	Use std::string in linux-osdata.c
+	I found some code in linux-osdata that manually managed a string.
+	Replacing this with std::string simplifies it.
+
+	Reviewed-by: John Baldwin <jhb@FreeBSD.org>
+
+2023-06-20  Tom Tromey  <tromey@adacore.com>
+
+	Use unique_xmalloc_ptr for mi_parse::command
+	This changes mi_parse::command to be a unique_xmalloc_ptr and fixes up
+	all the uses.  This avoids some manual memory management.  std::string
+	is not used here due to how the Python API works -- this approach
+	avoids an extra copy there.
+
+	Reviewed-by: Keith Seitz <keiths@redhat.com>
+
+2023-06-20  Tom Tromey  <tromey@adacore.com>
+
+	Use std::string for MI token
+	This changes the MI "token" to be a std::string, removing some manual
+	memory management.  It also makes current_token 'const' in order to
+	support this change.
+
+	Reviewed-by: Keith Seitz <keiths@redhat.com>
+
+2023-06-20  Alan Modra  <amodra@gmail.com>
+
+	Don't segfault in mips reloc special_functions
+	A symbol defined in a section from a shared library will have a NULL
+	section->output_section during linking.
+
+		* elf32-mips.c (gprel32_with_gp): Don't segfault on NULL
+		symbol->section->output_section.
+		* elf64-mips.c (mips_elf64_gprel32_reloc): Likewise.
+		* elfn32-mips.c (mips_elf_gprel16_reloc): Likewise.
+		(mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise.
+		(gprel32_with_gp, mips16_gprel_reloc): Likewise.
+		* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Likewise.
+		(_bfd_mips_elf_generic_reloc): Likewise.
+
+2023-06-20  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-19  Tom de Vries  <tdevries@suse.de>
+
+	Revert "[gdb/testsuite] Clean standard_output_file dir in gdb_init"
+	This reverts commit b7b77500dc56e5bc21473dd4f3dde2543d894557.
+
+2023-06-19  Simon Farre  <simon.farre.cx@gmail.com>
+
+	Fixes 28ab59607ef40b9571c0702ffba8f6aa6fb1b033
+	Python formatting errors fixed, introduced by this commit.
+
+	Fixes f1a614dc8f015743e9fe7fe5f3f019303f8db718
+	Fixes failure reported by buildbot regarding ill-formatted Python code.
+
+2023-06-19  Simon Farre  <simon.farre.cx@gmail.com>
+
+	gdb/Python: Added ThreadExitedEvent
+	v6:
+	Fix comments.
+	Fix copyright
+	Remove unnecessary test suite stuff. save_var had to stay, as it mutates
+	some test suite state that otherwise fails.
+
+	v5:
+	Did what Tom Tromey requested in v4; which can be found here: https://pi.simark.ca/gdb-patches/87pmjm0xar.fsf@tromey.com/
+
+	v4:
+	Doc formatting fixed.
+
+	v3:
+	Eli:
+	Updated docs & NEWS to reflect new changes. Added
+	a reference from the .ptid attribute of the ThreadExitedEvent
+	to the ptid attribute of InferiorThread. To do this,
+	I've added an anchor to that attribute.
+
+	Tom:
+	Tom requested that I should probably just emit the thread object;
+	I ran into two issues for this, which I could not resolve in this patch;
+
+	1 - The Thread Object (the python type) checks it's own validity
+	by doing a comparison of it's `thread_info* thread` to nullptr. This
+	means that any access of it's attributes may (probably, since we are
+	in "async" land) throw Python exceptions because the thread has been
+	removed from the thread object. Therefore I've decided in v3 of this
+	patch to just emit most of the same fields that gdb.InferiorThread has, namely
+	global_num, name, num and ptid (the 3-attribute tuple provided by
+	gdb.InferiorThread.ptid).
+
+	2 - A python user can hold a global reference to an exiting thread. Thus
+	in order to have a ThreadExit event that can provide attribute access
+	reliably (both as a global reference, but also inside the thread exit
+	handler, as we can never guarantee that it's executed _before_ the
+	thread_info pointer is removed from the gdbpy thread object),
+	the `thread_info *` thread pointer must not be null. However, this
+	comes at the cost of gdb.InferiorThread believing it is "valid" - which means,
+	that if a user holds takes a global reference to that
+	exiting event thread object, they can some time later do `t.switch()` at which
+	point GDB will 'explode' so to speak.
+
+	v2:
+	Fixed white space issues and NULL/nullptr stuff,
+	as requested by Tom Tromey.
+
+	v1:
+	Currently no event is emitted for a thread exit.
+
+	This adds this functionality by emitting a new gdb.ThreadExitedEvent.
+
+	It currently provides four attributes:
+	- global_num: The GDB assigned global thread number
+	- num: the per-inferior thread number
+	- name: name of the thread or none if not set
+	- ptid: the PTID of the thread, a 3-attribute tuple, identical to
+	InferiorThread.ptid attribute
+
+	Added info to docs & the NEWS file as well.
+
+	Added test to test suite.
+
+	Fixed formatting.
+
+	Feedback wanted and appreciated.
+
+2023-06-19  Simon Farre  <simon.farre.cx@gmail.com>
+
+	gdb/dap - Getting thread names
+	Renamed thread_name according to convention (_ first)
+
+	When testing firefox tests, it is apparent that
+	_get_threads returns threads with name field = None.
+
+	I had initially thought that this was due to Firefox setting the names
+	using /proc/pid/task/tid/comm, by writing directly to the proc fs the
+	names, but apparently GDB seems to catch this, because I re-wrote
+	the basic-dap.exp/c to do this specifically and it saw the changes.
+
+	So I couldn't determine right now, what operation of name change that
+	GDB does not pick up, but with this patch, GDB will pick up the thread
+	names for an applications that set the name of a thread in ways that
+	aren't obvious.
+
+2023-06-19  Nick Clifton  <nickc@redhat.com>
+
+	Fix illegal memory access implementing relocs in a fuzzed x86_64 object file.
+	  PR 30560
+	  * elf64-x86-64.c (elf_x86_64_relocate_section): Add more checks for a valid relocation offset.
+
+2023-06-19  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add shared_gnat_runtime_has_debug_info
+	Test-case gdb.ada/catch_ex_std.exp passes for me with package
+	libada7-debuginfo installed, but after removing it I get:
+	...
+	(gdb) catch exception some_kind_of_error^M
+	Your Ada runtime appears to be missing some debugging information.^M
+	Cannot insert Ada exception catchpoint in this configuration.^M
+	(gdb) FAIL: gdb.ada/catch_ex_std.exp: catch exception some_kind_of_error
+	...
+
+	The test-case contains a require gnat_runtime_has_debug_info to deal with
+	this, but the problem is that this checks the static gnat runtime, while this
+	test-case uses the shared one.
+
+	Fix this by introducing shared_gnat_runtime_has_debug_info, and requiring that
+	one instead.
+
+	Tested on x86_64-linux.
+
+	PR testsuite/30094
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30094
+
+2023-06-19  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Simplify tui_update_variables
+	Simplify tui_update_variables by using template function
+	assign_return_if_changed.
+
+	Tested on x86_64-linux.
+
+2023-06-19  Tom de Vries  <tdevries@suse.de>
+
+	[gdb] Add template functions assign_return/set_if_changed
+	Add template functions assign_return_if_changed and assign_set_if_changed in
+	gdb/utils.h:
+	...
+	template<typename T> void assign_set_if_changed (T &lval, const T &val, bool &changed)
+	{ ... }
+	template<typename T> bool assign_return_if_changed (T &lval, const T &val)
+	{ ... }
+	...
+
+	This allows us to rewrite code like this:
+	...
+	  if (tui_border_attrs != entry->value)
+	    {
+	      tui_border_attrs = entry->value;
+	      need_redraw = true;
+	    }
+	...
+	into this:
+	...
+	  need_redraw |= assign_return_if_changed<int> (tui_border_attrs, entry->value);
+	...
+	or:
+	...
+	  assign_set_if_changed<int> (tui_border_attrs, entry->value, need_redraw);
+	...
+
+	The names are a composition of the functionality.  The functions:
+	- assign VAL to LVAL, and either
+	- return true if the assignment changed LVAL, or
+	- set CHANGED to true if the assignment changed LVAL.
+
+	Tested on x86_64-linux.
+
+2023-06-19  Andreas Schwab  <schwab@suse.de>
+
+	riscv: Use run-time endianess for floating point literals
+	gas/
+		PR binutils/30551
+		* config/tc-riscv.c (md_atof): Use target_big_endian instead of
+		TARGET_BYTES_BIG_ENDIAN.
+		* testsuite/gas/riscv/float-be.d: New file.
+		* testsuite/gas/riscv/float-le.d: New file.
+		* testsuite/gas/riscv/float.s: New file.
+
+2023-06-19  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-18  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Clean standard_output_file dir in gdb_init
+	In commit e2adba909e7 ("[gdb/testsuite] Clean up before compilation in
+	gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some
+	files at the start of the test-case:
+	...
+	remote_file host delete [standard_output_file prog.o]
+	remote_file host delete [standard_output_file prog.ali]
+	...
+
+	Replace this with cleaning up the entire directory instead, for all
+	test-cases.
+
+	Tested on x86_64-linux.
+
+	Suggested-By: Tom Tromey <tom@tromey.com>
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-18  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-17  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Remove f-string in gdb.python/py-unwind.py
+	on openSUSE Leap 42.3, with python 3.4, I run into a
+	"SyntaxError: invalid syntax" due to usage of an f-string in test-case
+	gdb.python/py-unwind.py.
+
+	Fix this by using string concatenation using '+' instead.
+
+	Tested on x86_64-linux.
+
+2023-06-17  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add nopie in a few test-cases
+	When running test-case gdb.arch/i386-disp-step.exp with target board
+	unix/-m32/-fPIE/-pie we run into:
+	...
+	gdb compile failed, ld: i386-disp-step0.o: warning: relocation in read-only section `.text'
+	ld: warning: creating DT_TEXTREL in a PIE
+	...
+
+	Fix this by adding nopie in the compilation flags.
+
+	Likewise in a few other test-cases.
+
+	Tested on x86_64-linux.
+
+2023-06-17  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Use require in gdb.dwarf2/implptr.exp
+	In test-case gdb.dwarf2/implptr.exp I noticed:
+	...
+	} elseif {![is_x86_like_target]} {
+	    # This test can only be run on x86 targets.
+	    unsupported "needs x86-like target"
+	    return 0
+	}
+	...
+
+	Use instead "require is_x86_like_target".
+
+	Tested on x86_64-linux.
+
+2023-06-17  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-16  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Clean up before compilation in gdb.ada/call-no-debug.exp
+	Running test-case gdb.ada/call-no-debug.exp with target board unix/-m64 works
+	fine, but if we run it again with target board unix-m32, we run into:
+	...
+	gnatlink prog.ali -m32 -g -o prog^M
+	ld: i386:x86-64 architecture of input file `b~prog.o' is incompatible with \
+	  i386 output^M
+	...
+
+	This is due to compiling with no-force.
+
+	The test-case:
+	- first compiles pck.adb into pck.o (without debug info), and
+	- then compiles prog.adb and pck.o into prog (with debug info).
+
+	Using no-force in the second compilation make sure that pck.adb is not
+	compiled again, with debug info.
+
+	But it also means it will pick up intermediate files related to prog.adb from
+	a previous compilation.
+
+	Fix this by removing prog.o and prog.ali before compilation.
+
+	Tested on x86_64-linux.
+
+2023-06-16  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Use %progbits in gdb.arch/thumb*.S
+	In commit 0f2cd53cf4f ("[gdb/testsuite] Handle missing .note.GNU-stack") I
+	updated a gdb.arch/arm*.S test-case to use %progbits rather than @progbits,
+	but failed to do so for gdb.arch/thumb*.S.  Fix this oversight.
+
+	Tested on arm-linux-gnueabihf.
+
+2023-06-16  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: Fix ld "undefined reference" error with --enable-shared
+	  Because _bfd_read_unsigned_leb128 is hidden visibility, so it can't
+	  be referenced out of shared object.
+
+	  The new function loongarch_get_uleb128_length just used to call
+	  _bfd_read_unsigned_leb128.
+
+	bfd/ChangeLog:
+
+		* elfxx-loongarch.c (loongarch_get_uleb128_length): New function.
+		* elfxx-loongarch.h (loongarch_get_uleb128_length): New function.
+
+	gas/ChangeLog:
+
+		* config/tc-loongarch.c (md_apply_fix): Use
+		loongarch_get_uleb128_length.
+
+2023-06-16  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: update IRC reference from Freenode to Libera.Chat
+	It's been some time since the switch from Freenode to Libera.Chat,
+	however, there's still a reference to Freenode in the 'gdb --help'
+	output.  Lets update that.
+
+2023-06-16  Jan Beulich  <jbeulich@suse.com>
+
+	x86: shrink Masking insn attribute to a single bit (boolean)
+	The logic can actually be expressed with less code that way, utilizing
+	that there are common patterns of when which form of masking is
+	permitted. This then also eliminates the large set of open-codings of
+	BOTH_MASKING in the opcode table.
+
+2023-06-16  Alan Modra  <amodra@gmail.com>
+
+	Correct ld-elf/eh5 test for hppa64
+	Commit 3c0afdb78988 regressed this test for hppa64, because the test
+	had been enabled for hppa64 in the time between the mips changes and
+	their reversion.  This patch isn't just a simple reapply, I recreated
+	the testsuite change by hand for hppa64: Two lines in eh5.d might need
+	further changes for mips.
+
+2023-06-16  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	binutils/NEWS: Mention Sony Allegrex MIPS CPU support
+	Mention the addition of Sony Allegrex processor support to the MIPS port.
+
+		binutils/
+		* NEWS: Mention Sony Allegrex MIPS CPU support.
+
+2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	MIPS/GAS/testsuite: Fix `-modd-spreg'/`-mno-odd-spreg' test invocations
+	Reformat `-modd-spreg'/`-mno-odd-spreg' test invocations in mips.exp to
+	fit in 79 columns
+
+		gas/
+		* testsuite/gas/mips/mips.exp: Reformat
+		`-modd-spreg'/`-mno-odd-spreg' test invocations.
+
+2023-06-15  David Guillen Fandos  <david@davidgf.net>
+
+	Add additional missing Allegrex CPU instructions
+	Allegrex supports some MIPS32 and MIPS32r2 instructions (albeit with
+	some encoding differences) such as bit manipulation (ins/ext) and MLA
+	(madd/msub).  It also features some new instructions like wsbw and
+	min/max or device-specific ones such as mfic.
+
+	Add rotation instructions to MIPS Allegrex CPU
+	The Allegrex CPU supports bit rotation instructions as described in the
+	MIPS32 release 2 CPU (even though it is a MIPS-2 based CPU).
+
+	Add MIPS Allegrex CPU as a MIPS2-based CPU
+	The Allegrex CPU was created by Sony Interactive Entertainment to power
+	their portable console, the PlayStation Portable.
+	The pspdev organization maintains all sorts of tools to create software
+	for said device including documentation.
+
+2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	GAS/doc: Correct Tag_GNU_MIPS_ABI_MSA attribute description
+	Rewrite the paragraph to match the style of Tag_GNU_MIPS_ABI_FP text
+	immediately above, correcting grammar and formatting at the same time.
+
+		gas/
+		* doc/as.texi (MIPS Attributes): Correct Tag_GNU_MIPS_ABI_MSA
+		attribute description.
+
+2023-06-15  Maciej W. Rozycki  <macro@orcam.me.uk>
+
+	Revert "MIPS: gas: alter 64 or 32 for mipsisa triples if march is implicit"
+	This reverts commit 094025a30bb2da19df3990e0c0ff8167af823aa1.  It was
+	applied unapproved.
+
+	Revert "MIPS: default r6 if vendor is img"
+	This reverts commit be0d391f22fe6009c3be907753975a984cbbcc23.  It was
+	applied unapproved.
+
+	Revert "MIPS: fix r6 testsuites"
+	This reverts commit ffc528aed56b9e2c171137da28690a9bb6861b0b.  It was
+	applied unapproved.
+
+	Revert "MIPS: fix -gnuabi64 testsuite"
+	This reverts commit cb81e84c72933a7fad10b75b7e270d92d8d65251.  It was
+	applied unapproved.
+
+	Revert "MIPS: fix some ld testcases with compiler"
+	This reverts commit a0631c1501c113c04891c9a24a9ff5276257f28d.  It was
+	applied unapproved.
+
+	Revert "MIPS: add MT ASE support for micromips32"
+	This reverts commit acce83dacff0ce43677410c67aaae32817afe991.  It was
+	applied unapproved.
+
+	Revert "MIPS: sync oprand char usage between mips and micromips"
+	This reverts commit 5b207b919483f67311a73dfc1de8897ecfd8e776.  It was
+	applied unapproved.
+
+2023-06-15  Alan Modra  <amodra@gmail.com>
+
+	Re: Add some expected failures for bfin linker tests
+	After commit 7ade0f1582c4 I was seeing bfin-elf +XPASS: weak symbols,
+	and on looking into the bfin targets a little, discovered we have two
+	bfin-linux targets.  One, bfin-uclinux, is like bfin-elf in that
+	ld -m elf32bfin is the default, and the other, bfin-linux-uclibc where
+	ld -m elf32bfinfd is the default.  So putting bfin-*-*linux* in test
+	xfails or elsewhere is wrong.  We want bfin-*-linux* instead to just
+	select the fdpic bfin target.
+
+	This patch corrects wrong bfin target triples in the ld testsuite,
+	not just the recent change but others I'd added to xfails too.
+	It also fixes the bfin-linux-uclibc ld-elf/64ksec fail
+
+2023-06-15  Alan Modra  <amodra@gmail.com>
+
+	vms write_archive memory leaks
+	This fixes two memory leaks in the vms archive handling.
+
+		* vms-lib.c (_bfd_vms_lib_build_map): Free input symbols.
+		(_bfd_vms_lib_write_archive_contents): Free archive map symbols.
+
+2023-06-15  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-14  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.base/step-over-exit.exp with glibc debuginfo
+	In test-case gdb.base/step-over-exit.exp, we set a breakpoint on _exit and
+	continue, expecting to hit the breakpoint.
+
+	Without glibc debug info installed, we have with target board unix/-m64:
+	...
+	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, 0x00007ffff7d46aee in \
+	  _exit () from /lib64/libc.so.6^M
+	(gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
+	...
+	and with target board unix/-m32:
+	...
+	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, 0xf7d84c25 in _exit () from \
+	  /lib/libc.so.6^M
+	(gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
+	...
+
+	However after installing debug info (packages glibc-debuginfo and
+	glibc-32bit-debuginfo), we have for -m64 (note: __GI__exit instead of _exit):
+	...
+	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, \
+	  __GI__exit (status=<optimized out>) at \
+	  ../sysdeps/unix/sysv/linux/_exit.c:27^M
+	27      {^M
+	(gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
+	...
+	and -m32 (note: _Exit instead of _exit):
+	...
+	Thread 2.1 "step-over-exit" hit Breakpoint 2.2, _Exit () at \
+	  ../sysdeps/unix/sysv/linux/i386/_exit.S:24^M
+	24      ../sysdeps/unix/sysv/linux/i386/_exit.S: No such file or directory.^M
+	(gdb) FAIL: gdb.base/step-over-exit.exp: continue to exit
+	...
+
+	The gdb_test allows for both _exit and __GI__exit, but not _Exit:
+	...
+	gdb_test "continue" \
+	    "Continuing\\..*Breakpoint $decimal.*_exit \\(.*\\).*" \
+	    "continue to exit"
+	...
+
+	Fix this by allowing _Exit as well.
+
+	Tested on x86_64-linux.
+
+2023-06-14  Nick Clifton  <nickc@redhat.com>
+
+	Add some expected failures for bfin linker tests
+
+	Add --remap-inputs option to the BFD linker.
+	  PR 30374
+	  * ldfile.c (struct input_remap): New structure. (ldfile_add_remap): New function. (ldfile_remap_input_free): New function. (ldfile_add_remap_file): New function. (ldfile_possibly_remap_input): New function. (ldfile_print_input_remaps): New function. * ldfile.h: Add prototypes for new functions.
+	  * ldlang.c (new_afile): Call ldfile_possibly_remap_input. (lang_finish): Call ldfile_remap_input_free. (lang_map): Call ldfile_print_input_remaps.
+	  * ldlex.h (OPTION_REMAP_INPUTS, OPTION_REMAP_INPUTS_FILE): Define.
+	  * lexsup.c (ld_options): Add --remap-inputs-file and --remap-inputs. (parse_args): Handle new options.
+	  * NEWS: Mention the new feature.
+	  * ld.texi: Document the new options.
+	  * testsuite/ld-misc/input-remap.exp: New test driver.
+	  * testsuite/ld-misc/remaps.r: New file: Expected linker output.
+	  * testsuite/ld-misc/remaps.txt: New file.  Input remaps file.
+
+2023-06-14  Alan Modra  <amodra@gmail.com>
+
+	asprintf memory leaks
+	A number of backends want to return bfd_reloc_dangerous messaqes from
+	relocation special_function, and construct the message using asprintf.
+	Such messages are not freed anywhere, leading to small memory leaks
+	inside libbfd.  To limit the leaks, I'd implemented a static buffer in
+	the ppc backends that was freed before use in asprintf output.  This
+	patch extends that scheme to other backends using a shared static
+	buffer and goes further in freeing the buffer on any bfd_close.
+
+	The patch also fixes a few other cases where asprintf output was not
+	freed after use.
+
+	bfd/
+		* bfd.c (_input_error_msg): Make global and rename to..
+		(_bfd_error_buf): ..this.
+		(bfd_asprintf): New function.
+		(bfd_errmsg): Use bfd_asprintf.
+		* opncls.c (bfd_close_all_done): Free _buf_error_buf.
+		* elf32-arm.c (find_thumb_glue, find_arm_glue): Use bfd_asprintf.
+		* elf32-nios2.c (nios2_elf32_relocate_section): Likewise.
+		* elf32-ppc.c (ppc_elf_unhandled_reloc): Likewise.
+		* elf64-ppc.c (ppc64_elf_unhandled_reloc): Likewise.
+		* elfnn-riscv.c (riscv_resolve_pcrel_lo_relocs): Likewise.
+		(riscv_elf_relocate_section): Likewise.
+		* libbfd.h: Regenerate.
+	gas/
+		* read.c (read_end): Free current_name and current_label.
+		(do_s_func): Likewise on error path.  strdup label.
+	ld/
+		* pe-dll.c (make_head, make_tail, make_one),
+		(make_singleton_name_thunk, make_import_fixup_entry),
+		(make_runtime_pseudo_reloc),
+		(pe_create_runtime_relocator_reference: Free oname after use.
+
+2023-06-14  Alan Modra  <amodra@gmail.com>
+
+	Re: bfd/elf.c strtab memory leak
+	There are other places that leak the strtab.
+
+		* elf.c (_bfd_elf_compute_section_file_positions): Free strtab
+		on error paths.
+
+2023-06-14  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-13  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.tui/long-prompt.exp with read1
+	When running test-case gdb.tui/long-prompt.exp with check-read1, we get:
+	...
+	(gdb) FAIL: gdb.tui/long-prompt.exp: prompt size == width + 1: \
+	  end of screen: at last line
+	...
+
+	The problem is in these commands:
+	...
+	    Term::command "echo \\n"
+	    Term::command "echo \\n"
+	    Term::command "echo \\n"
+	    Term::command "echo \\n"
+	...
+
+	The last one makes the terminal scroll, and the scrolling makes the expected
+	output match on a different line.
+
+	Fix this by replacing the sequence with a single command:
+	...
+	    Term::command "echo \\n\\n\\n\\n\\n\\n"
+	...
+	which avoids scrolling.
+
+	Tested on x86_64-linux.
+
+2023-06-13  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix and add prompt anchoring in tuiterm
+	There is a test-case that contains a unit test for tuiterm:
+	gdb.tui/tuiterm.exp.
+
+	However, this only excercises the tuiterm itself, and not the functions that
+	interact with it, like Term::command.
+
+	Add a new test-case gdb.tui/tuiterm-2.exp that:
+	- overrides proc accept_gdb_output (to be able simulate incorrect responses
+	  while avoiding the timeout),
+	- overrides proc send_gdb (to be able to call Term::command without a gdb
+	  instance, such that all tuiterm input is generated by the test-case).
+	- issues Term::command calls, and
+	- checks whether they behave correctly.
+
+	This exposes a problem in Term::command.  The "prompt before command" regexp
+	starts with a bit that is supposed to anchor the prompt to the border:
+	...
+		set str "(^|\|)$gdb_prompt $str"
+	...
+	but that doesn't work due to insufficient escaping.  Fix this by adding the
+	missing escape:
+	...
+		set str "(^|\\|)$gdb_prompt $str"
+	...
+
+	Futhermore, the "prompt after command" regexp in Term::wait_for has no
+	anchoring at all:
+	...
+		set prompt_wait_for "$gdb_prompt \$"
+	...
+	so add that as well.
+
+	Tested on x86_64-linux.
+
+2023-06-13  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Allow procs with default value args in with_override
+	Currently proc with_override does not work with procs with default value args.
+
+	Fix this, and add a test-case excercising this scenario.
+
+	Tested on x86_64-linux.
+
+2023-06-13  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.dap/type_check.exp with older python
+	On openSUSE Leap 15.4 with system python 3.6, I run into:
+	...
+	(gdb) python check_everything()^M
+	(gdb) FAIL: gdb.dap/type_check.exp: type checker
+	...
+
+	In check_everything, the hasattr test fails silently:
+	...
+	def check_everything():
+	    # Older versions of Python can't really implement this.
+	    if hasattr(typing, "get_origin"):
+	...
+	and that makes the gdb_test in the test-case fail.
+
+	Fix this by emitting UNSUPPORTED instead in check_everything, and detecting
+	this in the test-case.
+
+	Tested on x86_64-linux.
+
+2023-06-13  Lancelot SIX  <lancelot.six@amd.com>
+
+	gdb/testsuite: use proper int size for gdb.dwarf2/symbol_needs_eval*.exp
+	We recently realized that symbol_needs_eval_fail.exp and
+	symbol_needs_eval_timeout.exp invalidly dereference an int (4 bytes on
+	x86_64) by reading 8 bytes (the size of a pointer).
+
+	Here how it goes:
+
+	In gdb/testsuite/gdb.dwarf2/symbol_needs_eval.c a global variable is
+	defined:
+
+	    int exec_mask = 1;
+
+	and later both tests build some DWARF using the assembler doing:
+
+	    set exec_mask_var [gdb_target_symbol exec_mask]
+	    ...
+	        DW_TAG_variable {
+	          {DW_AT_name a}
+	          {DW_AT_type :$int_type_label}
+	          {DW_AT_location {
+	            DW_OP_addr $exec_mask_var
+	            DW_OP_deref
+	            ...
+	          }
+	        }
+
+	The definition of the DW_OP_deref (from Dwarf5 2.5.1.3 Stack Operations)
+	says that "The size of the data retrieved from the dereferenced address
+	is the size of an address on the target machine."
+
+	On x86_64, the size of an int is 4 while the size of an address is 8.
+	The result is that when evaluating this expression, the debugger reads
+	outside of the `a` variable.
+
+	Fix this by using `DW_OP_deref_size $int_size` instead.  To achieve
+	this, this patch adds the necessary steps so we can figure out what
+	`sizeof(int)` evaluates to for the current target.
+
+	While at it, also change the definition of the int type in the assembled
+	DWARF information so we use the actual target's size for an int instead
+	of the literal 4.
+
+	Tested on x86_64 Linux.
+
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-06-13  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-13  Kevin Buettner  <kevinb@redhat.com>
+
+	Simplify case DW_OP_GNU_uninit in dwarf_expr_context::execute_stack_op
+	Tom Tromey pointed out that the test and call to error() for the
+	DW_OP_GNU_uninit case in dwarf_expr_context::execute_stack_op (in
+	gdb/dwarf2/expr.c)...
+
+		  if (op_ptr != op_end && *op_ptr != DW_OP_piece
+		      && *op_ptr != DW_OP_bit_piece)
+		    error (_("DWARF-2 expression error: DW_OP_GNU_uninit must always "
+			   "be the very last op in a DWARF expression or "
+			   "DW_OP_piece/DW_OP_bit_piece piece."));
+
+	...could be replaced by a call to dwarf_expr_require_composition which
+	performs a similar check and outputs a suitable error message.
+
+2023-06-12  Simon Farre  <simon.farre.cx@gmail.com>
+
+	Added self to W.A.A. maintainers
+
+2023-06-12  Richard Bunt  <richard.bunt@linaro.org>
+
+	gdb/testsuite: Testing with the armflang compiler
+	Currently the Fortran test suite does not run with armflang because the
+	compiler detection fails. This in turn means fortran_runto_main does not
+	know which main method to use to start a test case.
+
+	Fortran compiler detection was added in 44d469c5f85; however, the commit
+	message notes that it was not tested with armflang.
+
+	This commit tests and fixes up a minor issue to get the detection
+	working.
+
+	The goal here is to get the tests running and preventing further
+	regressions during future work. This change does not do anything to fix
+	existing failures.
+
+	>From what I can understand, the auto detection leverages the
+	preprocessor to extract the Fortran compiler identity from the defines.
+	This preprocessor output is then evaluated by the test suite to import
+	these defines.
+
+	In the case of armflang, this evaluation step is disrupted by the
+	presence of the following warning:
+
+	    $ armflang -E -fdiagnostics-color=never testsuite/lib/compiler.F90 -o compiler.exp
+	    $ clang-13: warning: argument unused during compilation: '-fdiagnostics-color=never' [-Wunused-command-line-argument]
+
+	The evaluation logic is already set up to filter this warning, but the
+	prefix differs.
+
+	This commit fixes the issue by updating the filter to exclude the
+	armflang flavour of warning.
+
+	gdb.fortran regression tests run with GNU, Intel and Intel LLVM. No
+	regressions detected.
+
+	The gdb.fortran test results with ACfL 23.04.1 are as follows.
+
+	Before:
+
+	 # of expected passes		560
+	 # of unexpected failures	113
+	 # of unresolved testcases	2
+	 # of untested testcases	5
+	 # of duplicate test names	2
+
+	After:
+
+	 # of expected passes		5388
+	 # of unexpected failures	628
+	 # of known failures		10
+	 # of untested testcases	8
+	 # of unsupported tests		5
+	 # of duplicate test names	5
+
+	As can be seen from the above, there are now considerably more passing
+	assertions.
+
+	Reviewed-By: Luis Machado <luis.machado@arm.com>
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Remove f-strings from DAP
+	Kévin pointed out that gdb claims a minimum Python version of 3.2, but
+	the DAP code uses f-strings, which were added in 3.6.
+
+	This patch removes the uses of f-strings from the DAP code.  I can't
+	test an older version of Python, but I did confirm that this still
+	works with the version I have.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Implement DAP conditional breakpoints
+	I realized that I had only implemented DAP breakpoint conditions for
+	exception breakpoints, and not other kinds of breakpoints.  This patch
+	corrects the oversight.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Do not report totalFrames from DAP stackTrace request
+	Currently, gdb will unwind the entire stack in response to the
+	stackTrace request.  I had erroneously thought that the totalFrames
+	attribute was required in the response.  However, the spec says:
+
+	    If omitted or if `totalFrames` is larger than the available
+	    frames, a client is expected to request frames until a request
+	    returns less frames than requested (which indicates the end of the
+	    stack).
+
+	This patch removes this from the response in order to improve
+	performance when the stack trace is very long.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Implement DAP breakpointLocations request
+	This implements the DAP breakpointLocations request.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Add "stop at main" extension to DAP launch request
+	Co-workers who work on a program that uses DAP asked for the ability
+	to have gdb stop at the main subprogram when launching.  This patch
+	implements this extension.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Add "target" parameter to DAP attach request
+	This adds a new "target" to the DAP attach request.  This is passed to
+	"target remote".  I thought "attach" made the most sense for this,
+	because in some sense gdb is attaching to a running process.  It's
+	worth noting that all DAP "attach" parameters are defined by the
+	implementation.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Handle DAP supportsVariableType capability
+	A DAP client can report the supportsVariableType capability in the
+	initialize request.  In this case, gdb can include the type of a
+	variable or expression in various results.
+
+	Implement DAP setExpression request
+	This implements the DAP setExpression request.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Add gdb.Value.assign method
+	This adds an 'assign' method to gdb.Value.  This allows for assignment
+	without requiring the use of parse_and_eval.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Add type-checking to DAP requests
+	It occurred to me recently that gdb's DAP implementation should
+	probably check the types of objects coming from the client.  This
+	patch implements this idea by reusing Python's existing type
+	annotations, and supplying a decorator that verifies these at runtime.
+
+	Python doesn't make it very easy to do runtime type-checking, so the
+	core of the checker is written by hand.  I haven't tried to make a
+	fully generic runtime type checker.  Instead, this only checks the
+	subset that is needed by DAP.  For example, only keyword-only
+	functions are handled.
+
+	Furthermore, in a few spots, it wasn't convenient to spell out the
+	type that is accepted.  I've added a couple of comments to this effect
+	in breakpoint.py.
+
+	I've tried to make this code compatible with older versions of Python,
+	but I've only been able to try it with 3.9 and 3.10.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Use tuples for default arguments in DAP
+	My co-worker Kévin taught me that using a mutable object as a default
+	argument in Python is somewhat dangerous, because the object is
+	created a single time (when the function is defined), and so if it is
+	mutated in the body of the function, the changes will stick around.
+
+	This patch changes the cases like this in DAP to use () rather than []
+	as the default.  This patch is merely preventative, as no bugs like
+	this are in the code.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Fix a latent bug in DAP request decorator
+	The 'request' decorator is intended to also ensure that the request
+	function runs in the DAP thread.  However, the unwrapped function is
+	installed in the global request map, so the wrapped version is never
+	called.  This patch fixes the bug.
+
+	Add test for DAP pause request
+	I neglected to write a test for the DAP "pause" request.  This patch
+	adds one.
+
+	Rename one DAP function
+	When I first started implementing DAP, I had some vague plan of having
+	the implementation functions use the same name as the request.  I
+	abandoned this idea, but one vestige remained.  This patch renames the
+	one remaining function to be gdb-ish.
+
+	Add singleThread support to some DAP requests
+	A few DAP requests support a "singleThread" parameter, which is
+	somewhat similar to scheduler-locking.  This patch implements support
+	for this.
+
+	Implement DAP stepOut request
+	This implements the DAP "stepOut" request.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Implement DAP attach request
+	This implements the DAP "attach" request.
+
+	Note that the copyright dates on the new test source file are not
+	incorrect -- this was copied verbatim from another directory.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Implement DAP setExceptionBreakpoints request
+	This implements the DAP setExceptionBreakpoints request for Ada.  This
+	is a somewhat minimal implementation, in that "exceptionOptions" are
+	not implemented (or advertised) -- I wasn't completely sure how this
+	feature is supposed to work.
+
+	I haven't added C++ exception handling here, but it's easy to do if
+	needed.
+
+	This patch relies on the new MI command execution support to do its
+	work.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Don't require inferior execution for Ada catchpoints
+	Currently, Ada catchpoints require that the inferior be running.
+	However, there's no deep reason for this -- for example, C++ exception
+	catchpoints do not have this requirement.  Instead, those work like
+	ordinary breakpoints: they are pending until the needed runtime
+	locations are seen.
+
+	This patch changes Ada catchpoints to work the same way.
+
+2023-06-12  Tom Tromey  <tromey@adacore.com>
+
+	Mark members of ada_catchpoint "private"
+	This changes the members of ada_catchpoint to be private.
+
+	Turn should_stop_exception into a method of ada_catchpoint
+	This turns the should_stop_exception function in ada-lang.c into a
+	method of ada_catchpoint.
+
+	Combine create_excep_cond_exprs and ada_catchpoint::re_set
+	This patch merges create_excep_cond_exprs into ada_catchpoint::re_set.
+	This is less verbose and is also a step toward making ada_catchpoint
+	work more like the other code_breakpoint-based exception catchpoints.
+
+	Transfer ownership of exception string to ada_catchpoint
+	This changes the ada_catchpoint to require an rvalue ref, so that
+	ownership of the exception string can be transferred to the catchpoint
+	object.
+
+	Pass tempflag to ada_catchpoint constructor
+	This is a minor cleanup to pass tempflag to the ada_catchpoint
+	constructor.
+
+	Use gnat_runtime_has_debug_info in Ada catchpoint tests
+	This changes the Ada catchpoint tests to use
+	gnat_runtime_has_debug_info.  This simplifies the code.
+
+	Stop gdb in gnat_runtime_has_debug_info
+	gnat_runtime_has_debug_info starts a new gdb to do its work.  However,
+	it also leaves this gdb running, which can potentially confuse the
+	calling test -- I encountered this when writing a new DAP test.  This
+	patch changes the proc to shut down gdb.
+
+2023-06-12  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Relax breakpoint count check in gdb.python/py-rbreak.exp
+	With a gdb 13.2 based package on SLE-15 aarch64,  I run into:
+	...
+	(gdb) PASS: gdb.python/py-rbreak.exp: nosharedlibrary
+	py sl = gdb.rbreak("^[^_]",minsyms=False)^M
+	Breakpoint 2 at 0x4004ac: file ../sysdeps/aarch64/crti.S, line 63.^M
+	  ...
+	(gdb) py print(len(sl))^M
+	12^M
+	(gdb) FAIL: gdb.python/py-rbreak.exp: check number of returned breakpoints is 11
+	...
+
+	The FAIL is due to:
+	- the glibc object crti.o containing debug information for function
+	  call_weak_fn, and
+	- the test-case not expecting this.
+
+	The debug information is there due to compiling glibc using a binutils which
+	contains commit 591cc9fbbfd ("gas/Dwarf: record functions").
+
+	I've run into a similar issue before, see commit 3fbbcf473a5 ("[gdb/testsuite]
+	Fix regexp in py-rbreak.exp").
+
+	The fix I applied there was to use a regexp "^[^_]" to filter out
+	__libc_csu_fini and __libc_csu_init, but that doesn't work for call_weak_fn.
+
+	Fix this by:
+	- reverting the regexp to "", and
+	- rewriting the check to require at least 11 functions, rather than a precise
+	  match.
+
+	Tested on x86_64-linux.
+
+	PR testsuite/30538
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30538
+
+2023-06-12  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix breakpoint regexp in gdb.ada/out_of_line_in_inlined.exp
+	With a gdb 13.2 based package on openSUSE Tumbleweed i586, I ran into:
+	...
+	(gdb) run ^M
+	Starting program: out_of_line_in_inlined/foo_o224_021-all ^M
+	[Thread debugging using libthread_db enabled]^M
+	Using host libthread_db library "/lib/libthread_db.so.1".^M
+	^M
+	Breakpoint 1.1, foo_o224_021.child1.child2 (s=...) at foo_o224_021.adb:26^M
+	26                  for C of S loop^M
+	(gdb) FAIL: gdb.ada/out_of_line_in_inlined.exp: scenario=all: \
+	  run to foo_o224_021.child1.child2
+	...
+
+	I can reproduce the same issue with gdb trunk on x86_64, by using optimize=-O3
+	instead of optimize=-O2.
+
+	Fix this by using $bkptno_num_re.
+
+	Tested on x86_64-linux.
+
+	PR testsuite/30539
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30539
+
+2023-06-12  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Replace macro HELP_ATTRIBUTE_MODE with std::string
+	Replace macro HELP_ATTRIBUTE_MODE with a std::string.
+
+	Tested on x86_64-linux.
+
+	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-12  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: gas: Relocations simplification when -mno-relax
+	  Gas does not emit ADD/SUB relocation pairs for label differences
+	  when -mno-relax.
+
+2023-06-12  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-11  Kevin Buettner  <kevinb@redhat.com>
+
+	Permit DW_OP_GNU_uninit to be used with DW_OP_piece
+	This commit implements a fix for a bug reported against GDB on
+	Fedora bugzilla...
+
+	https://bugzilla.redhat.com/show_bug.cgi?id=2166796
+
+	The test case in that bug report involved running gdb against the 'jq'
+	program (which is a command-line JSON processor) on Fedora 37.  Since
+	the debug info is compiler (and compile-time option) dependent, it
+	won't necessarily show up in other distributions or even past or
+	future versions of Fedora.  (E.g. when trying the example shown below
+	on Fedora 38, GDB says that the value of 'value' has been optimized
+	out.  I.e. it does not demonstrate the same DWARF error that can be
+	see when using Fedora 37.)
+
+	That said, on Fedora 37, the bug could be reproduced as follows:
+
+	[kev@f37-1 ~]$ gdb jq -q -ex 'b src/util.c:415' -ex 'r </dev/null'
+	Reading symbols from jq...
+
+	This GDB supports auto-downloading debuginfo from the following URLs:
+	  <https://debuginfod.fedoraproject.org/>
+	Enable debuginfod for this session? (y or [n]) y
+	Debuginfod has been enabled.
+	To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
+	Reading symbols from /home/kev/.cache/debuginfod_client/9d3c8b4197350a190a74972d481de32abf641aa4/debuginfo...
+	No source file named src/util.c.
+	Make breakpoint pending on future shared library load? (y or [n]) y
+	Breakpoint 1 (src/util.c:415) pending.
+	Starting program: /usr/bin/jq </dev/null
+	[Thread debugging using libthread_db enabled]
+	Using host libthread_db library "/lib64/libthread_db.so.1".
+
+	Breakpoint 1, jq_util_input_next_input (state=0x55555555d7f0) at src/util.c:416
+	416	    if (state->parser == NULL) {
+	(gdb) p value
+	DWARF-2 expression error: DW_OP_GNU_uninit must always be the very last op.
+
+	This is undesirable - rather than output an error about the DWARF
+	info, we'd prefer to see a value, even if it is uninitialized.
+
+	Examination of the debuginfo showed the following:
+
+	 <1><468f1>: Abbrev Number: 112 (DW_TAG_subprogram)
+	    <468f2>   DW_AT_external    : 1
+	    <468f2>   DW_AT_name        : (indirect string, offset: 0x4781): jq_util_input_next_input
+	    <468f6>   DW_AT_decl_file   : 10
+	    <468f6>   DW_AT_decl_line   : 411
+	    <468f8>   DW_AT_decl_column : 4
+	    <468f9>   DW_AT_prototyped  : 1
+	    <468f9>   DW_AT_type        : <0x3f2>
+	    <468fd>   DW_AT_sibling     : <0x4692e>
+	...
+	 <2><46921>: Abbrev Number: 102 (DW_TAG_variable)
+	    <46922>   DW_AT_name        : (indirect string, offset: 0x8cb): value
+	    <46926>   DW_AT_decl_file   : 10
+	    <46926>   DW_AT_decl_line   : 414
+	    <46928>   DW_AT_decl_column : 6
+	    <46929>   DW_AT_type        : <0x3f2>
+
+	Note that there's no DW_AT_location, so I looked for an abstract origin entry:
+
+	 <2><2dfa0>: Abbrev Number: 90 (DW_TAG_variable)
+	    <2dfa1>   DW_AT_abstract_origin: <0x46921>
+	    <2dfa5>   DW_AT_location    : 0x27cf1 (location list)
+	    <2dfa9>   DW_AT_GNU_locviews: 0x27ce1
+
+	(Note that the DW_AT_abstract_origin attribute's value is 0x46921 which
+	is the DIE for the local variable "value".)
+
+	Looking at the location list, I see:
+
+	    00027cf1 v000000000000000 v000000000000000 views at 00027ce1 for:
+	             000000000002f8fe 000000000002f92e (DW_OP_reg13 (r13); DW_OP_GNU_uninit; DW_OP_piece: 8; DW_OP_reg12 (r12); DW_OP_GNU_uninit; DW_OP_piece: 8)
+
+	While DW_OP_GNU_uninit is not the very last op, it is the last op
+	prior to DW_OP_piece.  The fix involved changing the DW_OP_GNU_uninit
+	case in dwarf_expr_context::execute_stack_op in gdb/dwarf2/expr.c so
+	that DW_OP_GNU_uninit may appear just before DW_OP_piece.
+
+	With the fix in place, attempting to print 'value' now looks like
+	this:
+
+	(gdb) p value
+	$1 =  [uninitialized] {kind_flags = 0 '\000', pad_ = 0 '\000', offset = 0,
+	  size = 0, u = {ptr = 0x0, number = 0}}
+
+	Note that "[uninitialized]" is part of the output.  (But also note
+	that there's an extra space character.)
+
+	I've made a new test case,
+	gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp, by adapting an
+	existing one, gdb.dwarf2/opt-out-not-implptr.exp.  Since it uses the
+	DWARF assembler, the test case does not depend on a specific compiler
+	version or compiler options.
+
+	Tested on Fedora 37 and Fedora 38.
+
+2023-06-11  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-10  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-09  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: testsuite: add sframe_find_fre tests for pltN entries
+	Add a new test plt-findfre-1 to ensure lookup of SFrame stack trace
+	information for pltN entries is correct.
+
+	In this test, a dummy SFrame FDE of type SFRAME_FDE_TYPE_PCMASK is
+	created.  The size of the 'function code block' covered by the SFrame
+	FDE is equivalent to 5 pltN entries of 16 bytes each.
+
+	The test first looks up SFrame FREs for some addresses in the first pltN
+	entry, followed by lookups for some addresses in the fourth pltN entry.
+
+	libsframe/
+		* Makefile.in: Regenerated.
+		* testsuite/libsframe.find/find.exp: Add new test.
+		* testsuite/libsframe.find/local.mk: Likewise.
+		* testsuite/libsframe.find/plt-findfre-1.c: New test.
+
+2023-06-09  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: fix sframe_find_fre for pltN entries
+	To find SFrame stack trace information from an FDE of type
+	SFRAME_FDE_TYPE_PCMASK, sframe_find_fre () was doing an operation
+	like,
+	  (start_ip_offset & 0xff) >= (pc & 0xff), etc.
+
+	This is buggy and needs correction.  The mask 0xff should be 0xf (to
+	work for a pltN entry of size say, 16 bytes).
+
+	At this time, the size of the pltN entry is implicitly assumed to be 16
+	bytes by libsframe.  In next version of the SFrame format, we can encode
+	this information explicitly in the SFrame FDE.
+
+	For now, we should fix the code to at least behave correctly for the
+	generated code and the generated SFrame stack trace information for the
+	pltN entries on x86_64.
+
+	libsframe/
+		* sframe.c (sframe_find_fre): Correct the bitmask used for
+		SFrame FDEs of type SFRAME_FDE_TYPE_PCMASK.
+
+2023-06-09  Luis Machado  <luis.machado@arm.com>
+
+	[AArch64,arm] Fix some formatting issues in the aarch64/arm codebase
+	As noted by Tom Tromey, there are some formatting issues with the ternary
+	operator in the aarch64/arm codebase.  This patch fixes those.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-09  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Simplify tui_puts_internal
+	Simplify tui_puts_internal by using continue, as per this [1] coding standard
+	rule, making the function more readable and easier to understand.
+
+	No functional changes.
+
+	Tested on x86_64-linux.
+
+	[1] https://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-09  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Delete line buffer when switching to singlekey
+	Say we're in TUI mode, and type "sun":
+	...
+	(gdb) sun
+	...
+
+	After switching to SingleKey mode using C-x s, we have just:
+	...
+	sun
+	...
+
+	After typing "d", we get:
+	...
+	sun
+	Undefined command: "sundown".  Try "help".
+	...
+
+	The SingleKey "d" is supposed run the "down" command.
+
+	Fix this by clearing the readline line buffer when switching to SingleKey
+	mode.
+
+	Tested on x86_64-linux.
+
+	PR tui/30522
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30522
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-09  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add test-case gdb.tui/single-key.exp
+	I noticed that there's no test-case excercising SingleKey mode, so add a test-case.
+
+	Tested on x86_64-linux.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-09  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/debuginfod: cleanup debuginfod earlier
+	A GDB crash was discovered on Fedora GDB that was tracked back to an
+	issue with the way that debuginfod is cleaned up.
+
+	The bug was reported on Fedora 37, 38, and 39.  Here are the steps to
+	reproduce:
+
+	1. The file /etc/ssl/openssl.cnf contains the following lines:
+
+	   [provider_sect]
+	   default = default_sect
+	   ##legacy = legacy_sect
+	   ##
+	   [default_sect]
+	   activate = 1
+
+	   ##[legacy_sect]
+	   ##activate = 1
+
+	   The bug will occur when the '##' characters are removed so that the
+	   lines in question look like this:
+
+	   [provider_sect]
+	   default = default_sect
+	   legacy = legacy_sect
+
+	   [default_sect]
+	   activate = 1
+
+	   [legacy_sect]
+	   activate = 1
+
+	2. Clean up any existing debuginfod cache data:
+
+	   > rm -rf $HOME/.cache/debuginfod_client
+
+	3. Run GDB:
+
+	   > gdb -nx -q -iex 'set trace-commands on' \
+	                -iex 'set debuginfod enabled on' \
+	                -iex 'set confirm off' \
+			-ex 'start' -ex 'quit' /bin/ls
+	   +set debuginfod enabled on
+	   +set confirm off
+	   Reading symbols from /bin/ls...
+	   Downloading separate debug info for /usr/bin/ls
+	   ... snip ...
+	   Temporary breakpoint 1, main (argc=1, argv=0x7fffffffde38) at ../src/ls.c:1646
+	   1646    {
+	   +quit
+
+	   Fatal signal: Segmentation fault
+	   ----- Backtrace -----
+	   ... snip ...
+
+	So GDB ends up crashing during exit.
+
+	What's happening is that when debuginfod is initialised
+	debuginfod_begin is called (this is in the debuginfod library), this
+	in turn sets up libcurl, which makes use of openssl.  Somewhere during
+	this setup process an at_exit function is registered to cleanup some
+	state.
+
+	Back in GDB the debuginfod_client object is managed using this code:
+
+	  /* Deleter for a debuginfod_client.  */
+
+	  struct debuginfod_client_deleter
+	  {
+	    void operator() (debuginfod_client *c)
+	    {
+	      debuginfod_end (c);
+	    }
+	  };
+
+	  using debuginfod_client_up
+	    = std::unique_ptr<debuginfod_client, debuginfod_client_deleter>;
+
+	And then a global debuginfod_client_up is created to hold a pointer to
+	the debuginfod_client object.  As a global this will be cleaned up
+	using the standard C++ global object destructor mechanism, which is
+	run after the at_exit handlers.
+
+	However, it is expected that when debuginfod_end is called the
+	debuginfod_client object will still be in a usable state, that is, we
+	don't expect the at_exit handlers to have run and started cleaning up
+	the library state.
+
+	To fix this issue we need to ensure that debuginfod_end is called
+	before the at_exit handlers have a chance to run.
+
+	This commit removes the debuginfod_client_up type, and instead has GDB
+	hold a raw pointer to the debuginfod_client object.  We then make use
+	of GDB's make_final_cleanup to register a function that will call
+	debuginfod_end.
+
+	As GDB's final cleanups are called before exit is called, this means
+	that debuginfod_end will be called before the at_exit handlers are
+	called, and the crash identified above is resolved.
+
+	It's not obvious how this issue can easily be tested for. The bug does
+	not appear to manifest when using a local debuginfod server, so we'd
+	need to setup something more involved.  For now I'm proposing this
+	patch without any associated tests.
+
+	Co-Authored-By: Mark Wielaard <mark@klomp.org>
+	Co-Authored-By: Simon Marchi <simark@simark.ca>
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+	Reviewed-By: Aaron Merey <amerey@redhat.com>
+
+2023-06-09  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: fix ASan failure after recent string changes
+	After this commit:
+
+	  commit baab375361c365afee2577c94cbbd3fdd443d6da
+	  Date:   Tue Jul 13 14:44:27 2021 -0400
+
+	      gdb: building inferior strings from within GDB
+
+	It was pointed out that a new ASan failure had been introduced which
+	was triggered by gdb.base/internal-string-values.exp:
+
+	  (gdb) PASS: gdb.base/internal-string-values.exp: test_setting: all langs: lang=ada: ptype "foo"
+	  print $_gdb_maint_setting("test-settings string")
+	  =================================================================
+	  ==80377==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000068034 at pc 0x564785cba682 bp 0x7ffd20644620 sp 0x7ffd20644610
+	  READ of size 1 at 0x603000068034 thread T0
+	      #0 0x564785cba681 in find_command_name_length(char const*) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2129
+	      #1 0x564785cbacb2 in lookup_cmd_1(char const**, cmd_list_element*, cmd_list_element**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int, bool) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2186
+	      #2 0x564785cbb539 in lookup_cmd_1(char const**, cmd_list_element*, cmd_list_element**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int, bool) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2248
+	      #3 0x564785cbbcf3 in lookup_cmd(char const**, cmd_list_element*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int, int) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2339
+	      #4 0x564785c82df2 in setting_cmd /tmp/src/binutils-gdb/gdb/cli/cli-cmds.c:2219
+	      #5 0x564785c84274 in gdb_maint_setting_internal_fn /tmp/src/binutils-gdb/gdb/cli/cli-cmds.c:2348
+	      #6 0x564788167b3b in call_internal_function(gdbarch*, language_defn const*, value*, int, value**) /tmp/src/binutils-gdb/gdb/value.c:2321
+	      #7 0x5647854b6ebd in expr::ada_funcall_operation::evaluate(type*, expression*, noside) /tmp/src/binutils-gdb/gdb/ada-lang.c:11254
+	      #8 0x564786658266 in expression::evaluate(type*, noside) /tmp/src/binutils-gdb/gdb/eval.c:111
+	      #9 0x5647871242d6 in process_print_command_args /tmp/src/binutils-gdb/gdb/printcmd.c:1322
+	      #10 0x5647871244b3 in print_command_1 /tmp/src/binutils-gdb/gdb/printcmd.c:1335
+	      #11 0x564787125384 in print_command /tmp/src/binutils-gdb/gdb/printcmd.c:1468
+	      #12 0x564785caac44 in do_simple_func /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:95
+	      #13 0x564785cc18f0 in cmd_func(cmd_list_element*, char const*, int) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2735
+	      #14 0x564787c70c68 in execute_command(char const*, int) /tmp/src/binutils-gdb/gdb/top.c:574
+	      #15 0x564786686180 in command_handler(char const*) /tmp/src/binutils-gdb/gdb/event-top.c:543
+	      #16 0x56478668752f in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /tmp/src/binutils-gdb/gdb/event-top.c:779
+	      #17 0x564787dcb29a in tui_command_line_handler /tmp/src/binutils-gdb/gdb/tui/tui-interp.c:104
+	      #18 0x56478668443d in gdb_rl_callback_handler /tmp/src/binutils-gdb/gdb/event-top.c:250
+	      #19 0x7f4efd506246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
+	      #20 0x564786683dea in gdb_rl_callback_read_char_wrapper_noexcept /tmp/src/binutils-gdb/gdb/event-top.c:192
+	      #21 0x564786684042 in gdb_rl_callback_read_char_wrapper /tmp/src/binutils-gdb/gdb/event-top.c:225
+	      #22 0x564787f1b119 in stdin_event_handler /tmp/src/binutils-gdb/gdb/ui.c:155
+	      #23 0x56478862438d in handle_file_event /tmp/src/binutils-gdb/gdbsupport/event-loop.cc:573
+	      #24 0x564788624d23 in gdb_wait_for_event /tmp/src/binutils-gdb/gdbsupport/event-loop.cc:694
+	      #25 0x56478862297c in gdb_do_one_event(int) /tmp/src/binutils-gdb/gdbsupport/event-loop.cc:264
+	      #26 0x564786df99f0 in start_event_loop /tmp/src/binutils-gdb/gdb/main.c:412
+	      #27 0x564786dfa069 in captured_command_loop /tmp/src/binutils-gdb/gdb/main.c:476
+	      #28 0x564786dff61f in captured_main /tmp/src/binutils-gdb/gdb/main.c:1320
+	      #29 0x564786dff75c in gdb_main(captured_main_args*) /tmp/src/binutils-gdb/gdb/main.c:1339
+	      #30 0x564785381b6d in main /tmp/src/binutils-gdb/gdb/gdb.c:32
+	      #31 0x7f4efbc3984f  (/usr/lib/libc.so.6+0x2384f) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
+	      #32 0x7f4efbc39909 in __libc_start_main (/usr/lib/libc.so.6+0x23909) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
+	      #33 0x564785381934 in _start (/tmp/build/binutils-gdb/gdb/gdb+0xabc5934) (BuildId: 90de353ac158646e7dab501b76a18a76628fca33)
+
+	  0x603000068034 is located 0 bytes after 20-byte region [0x603000068020,0x603000068034) allocated by thread T0 here:
+	      #0 0x7f4efcee0cd1 in __interceptor_calloc /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_malloc_linux.cpp:77
+	      #1 0x5647856265d8 in xcalloc /tmp/src/binutils-gdb/gdb/alloc.c:97
+	      #2 0x564788610c6b in xzalloc(unsigned long) /tmp/src/binutils-gdb/gdbsupport/common-utils.cc:29
+	      #3 0x56478815721a in value::allocate_contents(bool) /tmp/src/binutils-gdb/gdb/value.c:929
+	      #4 0x564788157285 in value::allocate(type*, bool) /tmp/src/binutils-gdb/gdb/value.c:941
+	      #5 0x56478815733a in value::allocate(type*) /tmp/src/binutils-gdb/gdb/value.c:951
+	      #6 0x5647854ae81c in expr::ada_string_operation::evaluate(type*, expression*, noside) /tmp/src/binutils-gdb/gdb/ada-lang.c:10675
+	      #7 0x5647854b63b8 in expr::ada_funcall_operation::evaluate(type*, expression*, noside) /tmp/src/binutils-gdb/gdb/ada-lang.c:11184
+	      #8 0x564786658266 in expression::evaluate(type*, noside) /tmp/src/binutils-gdb/gdb/eval.c:111
+	      #9 0x5647871242d6 in process_print_command_args /tmp/src/binutils-gdb/gdb/printcmd.c:1322
+	      #10 0x5647871244b3 in print_command_1 /tmp/src/binutils-gdb/gdb/printcmd.c:1335
+	      #11 0x564787125384 in print_command /tmp/src/binutils-gdb/gdb/printcmd.c:1468
+	      #12 0x564785caac44 in do_simple_func /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:95
+	      #13 0x564785cc18f0 in cmd_func(cmd_list_element*, char const*, int) /tmp/src/binutils-gdb/gdb/cli/cli-decode.c:2735
+	      #14 0x564787c70c68 in execute_command(char const*, int) /tmp/src/binutils-gdb/gdb/top.c:574
+	      #15 0x564786686180 in command_handler(char const*) /tmp/src/binutils-gdb/gdb/event-top.c:543
+	      #16 0x56478668752f in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /tmp/src/binutils-gdb/gdb/event-top.c:779
+	      #17 0x564787dcb29a in tui_command_line_handler /tmp/src/binutils-gdb/gdb/tui/tui-interp.c:104
+	      #18 0x56478668443d in gdb_rl_callback_handler /tmp/src/binutils-gdb/gdb/event-top.c:250
+	      #19 0x7f4efd506246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
+
+	The problem is in cli/cli-cmds.c, in the function setting_cmd, where
+	we do this:
+
+	  const char *a0 = (const char *) argv[0]->contents ().data ();
+
+	Here argv[0] is a value* which we know is either a TYPE_CODE_ARRAY or
+	a TYPE_CODE_STRING.  The problem is that the above line is casting the
+	value contents directly to a C-string, i.e. one that is assumed to
+	have a null-terminator at the end.
+
+	After the above commit this can no longer be assumed to be true.  A
+	string value will be represented just as it would be in the current
+	language, so for Ada and Fortran the string will be an array of
+	characters with no null-terminator at the end.
+
+	My proposed solution is to copy the string contents into a std::string
+	object, and then use the std::string::c_str() value, this will ensure
+	that a null-terminator has been added.
+
+	I had a check through GDB at places TYPE_CODE_STRING was used and
+	couldn't see any other obvious places where this type of assumption
+	was being made, so hopefully this is the only offender.
+
+	Running the above test with ASan compiled in no longer gives an error.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-09  Tom Tromey  <tromey@adacore.com>
+
+	Use scoped_value_mark in two more places
+	I found a couple of spots that could use scoped_value_mark.  One of
+	them is a spot that didn't consider the possibility that value_mark
+	can return NULL.  I tend to doubt this can be seen in this context,
+	but nevertheless this is safer.
+
+	Regression tested on x86-64 Fedora 36.
+
+2023-06-09  Tom de Vries  <tdevries@suse.de>
+
+	[gdb] Fix typos
+	Fix typos:
+	- reponse -> response
+	- inital -> initial
+	- a -> an
+
+2023-06-09  Alan Modra  <amodra@gmail.com>
+
+	readelf/objdump remember_state memory leaks
+		* dwarf.c (display_debug_frames <DW_CFA_restore_state>): Do free
+		invalid remember_state.
+
+2023-06-09  Alan Modra  <amodra@gmail.com>
+
+	ecoff find_nearest_line and final link leaks
+	Freeing ecoff_debug_info "pointers to the unswapped symbolic info"
+	isn't a simple matter, due to differing allocation strategies.  In
+	_bfd_ecoff_slurp_symbolic_info the pointers are to objalloc memory.
+	In the ecoff linker they are to separately malloc'd memory.  In gas we
+	have most (obj-elf) or all (obj-ecoff) into a single malloc'd buffer.
+
+	This patch fixes the leaks for binutils and ld, leaving the gas leaks
+	for another day.  The mips elf backend already had this covered, and
+	the ecoff backend had a pointer, raw_syments used as a flag, so most
+	of the patch is moving these around a little so they are accessible
+	for both ecoff and elf.
+
+	include/
+		* coff/ecoff.h (struct ecoff_debug_info): Add alloc_syments.
+	bfd/
+		* libecoff.h (struct ecoff_tdata): Delete raw_syments.
+		* elfxx-mips.c (free_ecoff_debug): Delete.  Replace uses with
+		_bfd_ecoff_free_ecoff_debug_info.
+		(_bfd_mips_elf_final_link): Init debug.alloc_syments.
+		* ecofflink.c (_bfd_ecoff_free_ecoff_debug_info): New function.
+		* ecoff.c (_bfd_ecoff_bfd_free_cached_info): Call
+		_bfd_ecoff_free_ecoff_debug_info.
+		(_bfd_ecoff_slurp_symbolic_info): Replace uses of raw_syments
+		with alloc_syments.
+		(ecoff_final_link_debug_accumulate): Likewise.  Use
+		_bfd_ecoff_free_ecoff_debug_info.
+		(_bfd_ecoff_bfd_copy_private_bfd_data): Set alloc_syments for
+		copied output.
+		* elf64-alpha.c (elf64_alpha_read_ecoff_info): Use
+		_bfd_ecoff_free_ecoff_debug_info.
+		* libbfd-in.h (_bfd_ecoff_free_ecoff_debug_info): Declare.
+		* libbfd.h: Regenerate.
+	gas/
+		* config/obj-ecoff.c (ecoff_frob_file): Set alloc_syments.
+		* config/obj-elf.c (elf_frob_file_after_relocs): Likewise.
+
+2023-06-09  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-08  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add test-case gdb.tui/long-prompt.exp
+	I noticed that the test-suite doesn't excercise the case in
+	tui_redisplay_readline that height (initially 1) is changed by this call:
+	...
+	    tui_puts_internal (w, prompt, &height);
+	...
+
+	Add a test-case that excercises this.
+
+	Tested on x86_64-linux.
+
+2023-06-08  Lancelot SIX  <lancelot.six@amd.com>
+
+	gdb/corelow.c: do not try to reopen a file if open failed once
+	In the current implementation, core_target::build_file_mappings will try
+	to locate and open files which were mapped in the process for which the
+	core dump was produced.  If the file cannot be found or cannot be
+	opened, GDB will re-try to open it once for each time it was mapped in
+	the process's address space.
+
+	This patch makes it so GDB recognizes that it has already failed to open
+	a given file once and does not re-try the process for each mapping.
+
+	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
+	Approved-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-06-08  Lancelot SIX  <lancelot.six@amd.com>
+
+	gdb/corelow.c: avoid repeated warnings in build_file_mappings
+	When GDB opens a coredump it tries to locate and then open all files
+	which were mapped in the process.
+
+	If a file is found but cannot be opened with BFD (bfd_open /
+	bfd_check_format fails), then a warning is printed to the user.  If the
+	same file was mapped multiple times in the process's address space, the
+	warning is printed once for each time the file was mapped.  I find this
+	un-necessarily noisy.
+
+	This patch makes it so the warning message is printed only once per
+	file.
+
+	There was a comment in the code assuming that if the file was found on
+	the system, opening it (bfd_open + bfd_check_format) should always
+	succeed.  A recent change in BFD (014a602b86f "Don't optimise bfd_seek
+	to same position") showed that this assumption is not valid.  For
+	example, it is possible to have a core dump of a process which had
+	mmaped an IO page from a DRI render node (/dev/dri/runderD$NUM).  In
+	such case the core dump does contain the information that portions of
+	this special file were mapped in the host process, but trying to seek to
+	position 0 will fail, making bfd_check_format fail.  This patch removes
+	this comment.
+
+	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
+	Approved-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-06-08  Lancelot SIX  <lancelot.six@amd.com>
+
+	gdb/corelow.c: fix use-after-free in build_file_mappings
+	In core_target::build_file_mappings, GDB tries to open files referenced
+	in the core dump.
+
+	The process goes like this:
+
+	    struct bfd *bfd = bfd_map[filename];
+	    if (bfd == nullptr)
+	      {
+	        bfd = bfd_map[filename]
+	          = bfd_openr (expanded_fname.get (), "binary");
+	        if (bfd == nullptr || !bfd_check_format (bfd, bfd_object))
+	          {
+	            if (bfd != nullptr)
+	              bfd_close (bfd);
+	            return;
+	          }
+	      }
+	    asection *sec = bfd_make_section_anyway (bfd, "load");
+	    ...
+
+	The problem is that if bfd_check_format fails, we close the bfd but keep
+	a reference to it in the bfd_map.
+
+	If the same filename appears another time in the NT_FILE note, we enter
+	this code again.  The second time, bfd_map[filename] is not nullptr and
+	we try to call bfd_make_section_anyway on an already closed BFD, which
+	is a use-after-free error.
+
+	This patch makes sure that the bfd is only saved in the bfd_map if it
+	got opened successfully.
+
+	This error got exposed by a recent change in BFD (014a602b86f "Don't
+	optimise bfd_seek to same position").  Since this change, opening a
+	coredump which contains mapping to some special files such as a DRI
+	render node (/dev/dri/renderD$NUM) exposes the issue.  This happens for
+	example for processes using AMDGPU devices to offload compute tasks.
+
+	Reviewed-By: John Baldwin <jhb@FreeBSD.org>
+	Approved-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-06-08  Alan Modra  <amodra@gmail.com>
+
+	Re: _bfd_free_cached_info
+	Oops, another leak caused by not defining the correct macro.
+
+		* elf32-mips.c: Define bfd_elf32_bfd_free_cached_info.
+		* elfn32-mips.c: Likewise.
+		* elf64-mips.c: Define bfd_elf64_bfd_free_cached_info.
+
+2023-06-08  Alan Modra  <amodra@gmail.com>
+
+	Re: _bfd_free_cached_info
+	ELF targets with target-specific free_cache_info functions need to
+	call _bfd_elf_free_cached_info, not _bfd_generic_bfd_free_cached_info.
+
+		* elf64-ppc.c (ppc64_elf_free_cached_info): Call
+		_bfd_elf_free_cached_info.
+		* elfnn-aarch64.c (elfNN_aarch64_bfd_free_cached_info): Likewise.
+
+2023-06-08  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-07  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: reuse static function sframe_decoder_get_funcdesc_at_index
+	sframe_decoder_get_funcdesc_at_index () is the function to access SFrame
+	FDEs in the SFrame decoder context.  Use it consistently.
+
+	Avoid unnecessary type cast and include minor enhancements as the code
+	is moved around.
+
+	libsframe/
+		* sframe.c (sframe_decoder_get_funcdesc_at_index): Move some
+		checks here.  Move the static function definition before the new
+		use.
+		(sframe_decoder_get_funcdesc): Use
+		sframe_decoder_get_funcdesc_at_index instead.
+
+2023-06-07  Tom Tromey  <tromey@adacore.com>
+
+	Simplify ada_lookup_struct_elt_type
+	This patch simplifies ada_lookup_struct_elt_type by changing it to
+	call find_struct_field.  The two functions were substantially similar,
+	even to the point of having identical comments.
+
+	I tested this using both the gdb test suite and the internal AdaCore
+	test suite.  Given this and the fact that it is Ada-specific, I am
+	checking it in.
+
+2023-06-07  Nick Clifton  <nickc@redhat.com>
+
+	Add extra linker warning message about discrepancies between normal and common symbols.
+	  PR 30499
+	  bfd * elflink.c (elf_link_add_object_symbols): Add a message indicating that alignment and size discrepancies between the definition of common symbols and normal symbols are serious and should be investigated.
+	  ld  * testsuite/ld-elfcomm/elfcomm.exp: Update regexps to match new output from the linker.
+
+2023-06-07  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Factor out border-mode help text
+	I noticed that the help texts for tui border-mode and tui active-border-mode
+	are similar.
+
+	Factor out the common part into macro HELP_ATTRIBUTE_MODE.
+
+	Tested on x86_64-linux.
+
+2023-06-07  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/cli] Handle pending ^C after rl_callback_read_char for readline 7
+	In commit faf01aee1d0 ("[gdb] Handle pending ^C after rl_callback_read_char")
+	we handled a problem (described in detail in that commit) for readline >= 8
+	using public readline functions rl_pending_signal and rl_check_signals.
+
+	For readline 7 (note that we require at least readline 7 so there's no need to
+	worry about readline 6), there was no fix though, because rl_check_signals was
+	not available.
+
+	Fix this by instead using the private readline function _rl_signal_handler.
+
+	There is precedent for using private readline variables and functions, but
+	it's something we want to get rid of (PR build/10723).  Nevertheless, I think
+	we can allow this specific instance because it's not used when building
+	against readline >= 8.
+
+	[ In the meanwhile, a fix was committed in the devel branch of the readline
+	repo, contained in commit 8d0c439 ("rollup of changes since readline-8.2"),
+	first proposed here (
+	https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00008.html ). ]
+
+	Tested on x86_64-linux, against system readline 7.0 on openSUSE Leap 15.4.
+
+	PR cli/27813
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27813
+
+2023-06-07  Tom de Vries  <tdevries@suse.de>
+
+	Fix PR30369 regression on aarch64/arm (PR30506)
+	The gdb.dwarf2/dw2-prologue-end-2.exp test was failing for both AArch64 and
+	Arm.
+
+	As Tom pointed out here (https://inbox.sourceware.org/gdb-patches/6663707c-4297-c2f2-a0bd-f3e84fc62aad@suse.de/),
+	there are issues with both the prologue skipper for AArch64 and Arm and an
+	incorrect assumption by the testcase.
+
+	This patch fixes both of AArch64's and Arm's prologue skippers to not skip past
+	the end of a function.  It also incorporates a fix to the testcase so it
+	doesn't assume the prologue skipper will stop at the first instruction of the
+	functions/labels.
+
+	Regression-tested on aarch64-linux/arm-linux Ubuntu 20.04/22.04 and
+	x86_64-linux Ubuntu 20.04.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30506
+
+	Co-Authored-By: Tom de Vries <tdevries@suse.de>
+	Co-Authored-By: Luis Machado <luis.machado@arm.com>
+
+2023-06-07  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add missing wait in gdb.python/tui-window-disabled.exp
+	While working on PR tui/30526, I noticed a bug in test-case
+	gdb.python/tui-window-disabled.exp.
+
+	Here we send "tui enable" to gdb, but don't wait for it to arrive before
+	checking for a window box:
+	...
+	    send_gdb "tui enable\n"
+	    Term::check_box "check for python window" 0 0 80 16
+	...
+
+	Fix this by waiting for the prompt to be issued in TUI before doing the check.
+
+	Tested on x86_64-linux.
+
+2023-06-07  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix two typos in gdb.python/tui-window-disabled.exp
+	Fix two typos in test-case gdb.python/tui-window-disabled.exp.
+
+2023-06-07  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Handle output after prompt in gdb.threads/step-N-all-progress.exp
+	Using "taskset -c 0" I run into this timeout:
+	...
+	(gdb) PASS: gdb.threads/step-N-all-progress.exp: non-stop=on: \
+	  target-non-stop=on: continue to breakpoint: break here
+	next 3^M
+	[New Thread 0x7ffff7dbd6c0 (LWP 10202)]^M
+	50        return 0;^M
+	(gdb) [Thread 0x7ffff7dbd6c0 (LWP 10202) exited]^M
+	FAIL: gdb.threads/step-N-all-progress.exp: non-stop=on: target-non-stop=on: \
+	  next 3 (timeout)
+	...
+
+	The problem is that this test:
+	...
+	    gdb_test "next 3" "return 0;"
+	...
+	expects no output after the prompt.
+
+	Fix this by using -no-prompt-anchor.
+
+	Tested on x86_64-linux.
+
+2023-06-07  Alan Modra  <amodra@gmail.com>
+
+	ld-elf/eh5 remove xfail hppa64
+	Commit cb81e84c72 resulted in an xpass for hppa64-hp-hpux11, but the
+	test still fails on hpp64-linux.  Let's make it pass for hppa64-linux
+	too, by accepting pcrel sdata8 encoding in the augmentation data.
+
+2023-06-07  Luis Machado  <luis.machado@arm.com>
+
+	Fix gdb.base/memtag.exp failure
+	While running this test on an emulator, I noticed we're failing to match the
+	output message when "memory-tag check" is issued with no arguments.  That's
+	because I coded the message using "error" and missed a period at the end.  Other
+	similar messages are issued with error_no_arg.
+
+	This patch changes that call to use error_no_arg.
+
+	Tested on aarch64-linux Ubuntu 20.04/22.04.
+
+2023-06-07  Alan Modra  <amodra@gmail.com>
+
+	_bfd_free_cached_info
+	doc/bfdint.texi and comments in the aout and som code about this
+	function are just wrong, and its name is not very apt.  Better would
+	be _bfd_mostly_destroy, and we certainly should not be saying anything
+	about the possibility of later recreating anything lost by this
+	function.  What's more, if _bfd_free_cached_info is called when
+	creating an archive map to reduce memory usage by throwing away
+	symbols, the target _close_and_cleanup function won't have access to
+	tdata or section bfd_user_data to tidy memory.  This means most of the
+	target _close_and_cleanup function won't do anything, and therefore
+	sometimes will result in memory leaks.
+
+	This patch fixes the documentation problems and moves most of the
+	target _close_and_cleanup code to target _bfd_free_cached_info.
+	Another notable change is that bfd_generic_bfd_free_cached_info is now
+	defined as _bfd_free_cached_info rather than _bfd_bool_bfd_true,
+	ie. the default now frees objalloc memory.
+
+2023-06-07  Alan Modra  <amodra@gmail.com>
+
+	Memory leaks in bfd/vms-lib.c
+		* vms-lib.c (vms_lib_read_index): Free malloc'd memory on error
+		return paths.
+		(vms_write_index, _bfd_vms_lib_write_archive_contents): Likewise.
+
+	bfd/elf.c strtab memory leak
+		* elf.c (_bfd_elf_compute_section_file_positions): Free strtab
+		on set_group_contents failure return path.
+
+2023-06-07  Alan Modra  <amodra@gmail.com>
+
+	objcopy memory leaks after errors
+	These aren't important at all, but tidy them in case they obscure
+	other more important leaks.
+
+		* objcopy (copy_file): Close input bfd after errors.
+
+2023-06-07  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-06  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: fix cosmetic issues and typos
+	include/
+		* sframe-api.h (sframe_decoder_get_num_fidx): Use extern.
+	libsframe/
+		* sframe-dump.c (dump_sframe_func_with_fres): Fix line length.
+		* sframe.c (sframe_frame_row_entry_copy): Likewise.
+		(sframe_decode_fre_start_address): Use the intended type uint32_t.
+
+2023-06-06  Alan Modra  <amodra@gmail.com>
+
+	Re: loongarch readelf support
+	Commit 89c70cd358b8 apparently results in a bogus "value may be used
+	uninitialized" warning with some combination of compiler and
+	optimisation options.
+
+		* readelf.c (target_specific_reloc_handling): Init value.
+
+2023-06-06  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-05  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: avoid unnecessary type casts
+	Change the data type of some of the members of the sframe_decoder_ctx
+	and sframe_encoder_ctx data structures to use the applicable data types
+	explicitly. Current implementation in libsframe does type casts, which
+	seem unnecessary.
+
+	libsframe/
+		* libsframe/sframe-impl.h (struct sframe_decoder_ctx): Use
+		applicable data type explicitly.
+		(struct sframe_encoder_ctx): Likewise. Use same style of
+		comments consistently.
+		* libsframe/sframe.c (struct sf_fde_tbl): Define without
+		typedef.
+		(struct sf_fre_tbl): Likewise.
+		(sframe_decode): Remove unnecessary type casts.
+		(sframe_encoder_get_funcdesc_at_index): Likewise.
+		(sframe_encoder_add_fre): Likewise.
+		(sframe_encoder_add_funcdesc): Likewise.
+		(sframe_sort_funcdesc): Likewise.
+		(sframe_encoder_write_sframe): Likewise.
+
+2023-06-05  H.J. Lu  <hjl.tools@gmail.com>
+
+	ELF: Add "#pass" to ld-elf/pr30508.d
+	Add "#pass" to ld-elf/pr30508.d to allow extra segments.
+
+		PR binutils/30508
+		* testsuite/ld-elf/pr30508.d: Add "#pass".
+
+2023-06-05  Tom Tromey  <tromey@adacore.com>
+
+	Use unrelocated_addr in dwarf2_fde
+	This changes dwarf2_fde to use the unrelocated_addr type.  This
+	pointed out a latent bug in dwarf2_frame_cache, where a relocated
+	address is compared to an unrelocated address.
+
+2023-06-05  Tom Tromey  <tromey@adacore.com>
+
+	Use local "text offset" variable in dwarf2_frame_cache
+	A few spots in dwarf2_frame_cache use:
+
+	    cache->per_objfile->objfile->text_section_offset ()
+
+	... and a subsequent patch will add more, so move this into a local
+	variable.
+
+2023-06-05  Tom Tromey  <tromey@adacore.com>
+
+	Constify dwarf2_cie::augmentation
+	I noticed that dwarf2_cie::augmentation could be 'const'.
+
+	Use "unrelocated" terminology in linetable_entry
+	I forgot to convert struct linetable_entry to use the "unrelocated"
+	(as opposed to "raw") terminology.  This patch corrects the oversight.
+
+	Fix comment in address_class
+	enum address_class has a stale comment referring to
+	MSYMBOL_VALUE_RAW_ADDRESS, which no longer exists.  This patch updates
+	the comment.
+
+	Use unrelocated_addr in dwarf_decode_lines
+	This changes dwarf_decode_lines to accept an unrelocated_addr and
+	fixes up the fallout.
+
+	Use unrelocated_addr in the DWARF reader
+	This changes various spots in the DWARF reader to use
+	unrelocated_addr.
+
+	Move unrelocated_addr to common-types.h
+	unrelocated_addr is currently defined in symtab.h, but in order to
+	avoid having to include that in more places, I wanted to move the type
+	elsewhere.  I considered defs.h, but it seemed reasonable to have it
+	next to CORE_ADDR, which is what this patch does.
+
+	Minor cleanup in loclist_describe_location
+	loclist_describe_location already has a per_objfile local variable, so
+	use it consistently.
+
+	Remove baseaddr parameter from dwarf2_record_block_ranges
+	dwarf2_record_block_ranges is only ever called with the text section
+	offset, so this patch removes the parameter entirely.  This makes a
+	subsequent patch a little simpler.
+
+2023-06-05  H.J. Lu  <hjl.tools@gmail.com>
+
+	ELF: Don't warn an empty PT_LOAD with the program headers
+	When rewriting the program headers, don't warn an empty PT_LOAD with the
+	program headers.
+
+	bfd/
+
+		PR binutils/30508
+		* elf.c (rewrite_elf_program_header): Don't warn if an empty
+		PT_LOAD contains the program headers.
+
+	ld/
+
+		PR binutils/30508
+		* testsuite/ld-elf/pr30508.d: New file.
+		* testsuite/ld-elf/pr30508.s: Likewise.
+
+2023-06-05  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: building inferior strings from within GDB
+	History Of This Patch
+	=====================
+
+	This commit aims to address PR gdb/21699.  There have now been a
+	couple of attempts to fix this issue.  Simon originally posted two
+	patches back in 2021:
+
+	  https://sourceware.org/pipermail/gdb-patches/2021-July/180894.html
+	  https://sourceware.org/pipermail/gdb-patches/2021-July/180896.html
+
+	Before Pedro then posted a version of his own:
+
+	  https://sourceware.org/pipermail/gdb-patches/2021-July/180970.html
+
+	After this the conversation halted.  Then in 2023 I (Andrew) also took
+	a look at this bug and posted two versions:
+
+	  https://sourceware.org/pipermail/gdb-patches/2023-April/198570.html
+	  https://sourceware.org/pipermail/gdb-patches/2023-April/198680.html
+
+	The approach taken in my first patch was pretty similar to what Simon
+	originally posted back in 2021.  My second attempt was only a slight
+	variation on the first.
+
+	Pedro then pointed out his older patch, and so we arrive at this
+	patch.  The GDB changes here are mostly Pedro's work, but updated by
+	me (Andrew), any mistakes are mine.
+
+	The tests here are a combinations of everyone's work, and the commit
+	message is new, but copies bits from everyone's earlier work.
+
+	Problem Description
+	===================
+
+	Bug PR gdb/21699 makes the observation that using $_as_string with
+	GDB's printf can cause GDB to print unexpected data from the
+	inferior.  The reproducer is pretty simple:
+
+	  #include <stddef.h>
+	  static char arena[100];
+
+	  /* Override malloc() so value_coerce_to_target() gets a known
+	     pointer, and we know we"ll see an error if $_as_string() gives
+	     a string that isn't null terminated. */
+	  void
+	  *malloc (size_t size)
+	  {
+	      memset (arena, 'x', sizeof (arena));
+	      if (size > sizeof (arena))
+	          return NULL;
+	      return arena;
+	  }
+
+	  int
+	  main ()
+	  {
+	    return 0;
+	  }
+
+	And then in a GDB session:
+
+	  $ gdb -q test
+	  Reading symbols from /tmp/test...
+	  (gdb) start
+	  Temporary breakpoint 1 at 0x4004c8: file test.c, line 17.
+	  Starting program: /tmp/test
+
+	  Temporary breakpoint 1, main () at test.c:17
+	  17        return 0;
+	  (gdb) printf "%s\n", $_as_string("hello")
+	  "hello"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
+	  (gdb) quit
+
+	The problem above is caused by how value_cstring is used within
+	py-value.c, but once we understand the issue then it turns out that
+	value_cstring is used in an unexpected way in many places within GDB.
+
+	Within py-value.c we have a null-terminated C-style string.  We then
+	pass a pointer to this string, along with the length of this
+	string (so not including the null-character) to value_cstring.
+
+	In value_cstring GDB allocates an array value of the given character
+	type, and copies in requested number of characters.  However
+	value_cstring does not add a null-character of its own.  This means
+	that the value created by calling value_cstring is only
+	null-terminated if the null-character is included in the passed in
+	length.  In py-value.c this is not the case, and indeed, in most uses
+	of value_cstring, this is not the case.
+
+	When GDB tries to print one of these strings the value contents are
+	pushed to the inferior, and then read back as a C-style string, that
+	is, GDB reads inferior memory until it finds a null-terminator.  For
+	the py-value.c case, no null-terminator is pushed into the inferior,
+	so GDB will continue reading inferior memory until a null-terminator
+	is found, with unpredictable results.
+
+	Patch Description
+	=================
+
+	The first thing this patch does is better define what the arguments
+	for the two function value_cstring and value_string should represent.
+	The comments in the header file are updated to describe whether the
+	length argument should, or should not, include a null-character.
+	Also, the data argument is changed to type gdb_byte.  The functions as
+	they currently exist will handle wide-characters, in which case more
+	than one 'char' would be needed for each character.  As such using
+	gdb_byte seems to make more sense.
+
+	To avoid adding casts throughout GDB, I've also added an overload that
+	still takes a 'char *', but asserts that the character type being used
+	is of size '1'.
+
+	The value_cstring function is now responsible for adding a null
+	character at the end of the string value it creates.
+
+	However, once we start looking at how value_cstring is used, we
+	realise there's another, related, problem.  Not every language's
+	strings are null terminated.  Fortran and Ada strings, for example,
+	are just an array of characters, GDB already has the function
+	value_string which can be used to create such values.
+
+	Consider this example using current GDB:
+
+	  (gdb) set language ada
+	  (gdb) p $_gdb_setting("arch")
+	  $1 = (97, 117, 116, 111)
+	  (gdb) ptype $
+	  type = array (1 .. 4) of char
+	  (gdb) p $_gdb_maint_setting("test-settings string")
+	  $2 = (0)
+	  (gdb) ptype $
+	  type = array (1 .. 1) of char
+
+	This shows two problems, first, the $_gdb_setting and
+	$_gdb_maint_setting functions are calling value_cstring using the
+	builtin_char character, rather than a language appropriate type.  In
+	the first call, the 'arch' case, the value_cstring call doesn't
+	include the null character, so the returned array only contains the
+	expected characters.  But, in the $_gdb_maint_setting example we do
+	end up including the null-character, even though this is not expected
+	for Ada strings.
+
+	This commit adds a new language method language_defn::value_string,
+	this function takes a pointer and length and creates a language
+	appropriate value that represents the string.  For C, C++, etc this
+	will be a null-terminated string (by calling value_cstring), and for
+	Fortran and Ada this can be a bounded array of characters with no null
+	terminator.  Additionally, this new language_defn::value_string
+	function is responsible for selecting a language appropriate character
+	type.
+
+	After this commit the only calls to value_cstring are from the C
+	expression evaluator and from the default language_defn::value_string.
+
+	And the only calls to value_string are from Fortan, Ada, and ObjectC
+	related code.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=21699
+
+	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
+	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
+	Co-Authored-By: Pedro Alves <pedro@palves.net>
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-06-05  Tom de Vries  <tdevries@suse.de>
+
+	[gdb] Fix grammar in comments and docs
+	Fix grammar in some comments and docs:
+	- machines that doesn't -> machines that don't
+	- its a -> it's a
+	- its the -> it's the
+	- if does its not -> if it does it's not
+	- one more instructions if doesn't match ->
+	  one more instruction if it doesn't match
+	- it's own -> its own
+	- it's first -> its first
+	- it's pointer -> its pointer
+
+	I also came across "it's performance" in gdb/stubs/*-stub.c in the HP public
+	domain notice, I've left that alone.
+
+	Tested on x86_64-linux.
+
+2023-06-05  Tom de Vries  <tdevries@suse.de>
+
+	[gdb] Fix more typos
+	Fix some more typos:
+	- distinquish -> distinguish
+	- actualy -> actually
+	- singe -> single
+	- frash -> frame
+	- chid -> child
+	- dissassembler -> disassembler
+	- uninitalized -> uninitialized
+	- precontidion -> precondition
+	- regsiters -> registers
+	- marge -> merge
+	- sate -> state
+	- garanteed -> guaranteed
+	- explictly -> explicitly
+	- prefices (nonstandard plural) -> prefixes
+	- bondary -> boundary
+	- formated -> formatted
+	- ithe -> the
+	- arrav -> array
+	- coresponding -> corresponding
+	- owend -> owned
+	- fials -> fails
+	- diasm -> disasm
+	- ture -> true
+	- tpye -> type
+
+	There's one code change, the name of macro SIG_CODE_BONDARY_FAULT changed to
+	SIG_CODE_BOUNDARY_FAULT.
+
+	Tested on x86_64-linux.
+
+2023-06-05  Alan Modra  <amodra@gmail.com>
+
+	bfd_error_on_input messages
+	bfd_errmsg uses asprintf for bfd_error_on_input, which means we
+	currently leak memory.  Keep a static pointer to the message and free
+	it in various places to minimise the leaks.
+	bfd_set_input_error (NULL, bfd_error_no_error) is a way to free up the
+	last string if that matters.
+
+		* bfd.c (input_error_msg): New static var.
+		(bfd_set_input_error): Free it here..
+		(bfd_init): ..and here..
+		(bfd_errmsg): ..and here.  Use it for asprintf output.
+
+2023-06-05  Alan Modra  <amodra@gmail.com>
+
+	Yet another ecoff fuzzed object fix
+		* ecoff.c (_bfd_ecoff_slurp_symbol_table): Sanity check fdr_ptr
+		csym against remaining space for symbols.  Error on out of bounds
+		fdr_ptr fields.
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: sync oprand char usage between mips and micromips
+	We should try our best to make mips32 using the same
+	oprand char with micromips. So for mips32, we use:
+
+	  ^  is added for 5bit sa oprand for some new DSPr2 instructions:
+		APPEND, PREPEND, PRECR_SRA[_R].PH.W
+		the LSB bit is 11, like RD.
+	  +t is removed for coprocessor 0 destination register.
+		'E' does the samething.
+	  +t is now used for RX oprand for MFTR/MTTR (MT ASE)
+	  ?  is added for sel oprand for MFTR/MTTR (MT ASE)
+		For mips32, the position of sel in MFTR/MTTR is same with mfc0 etc,
+		while for micromips, they are different.
+
+	We also add an extesion format of cftc2/cttc2/mftc2/mfthc2/mttc2/mtthc2:
+		concatenating rs with rx as the index of control or data.
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: add MT ASE support for micromips32
+	These instructions are descripted in MD00768.
+
+	MIPS® Architecture for Programmers
+	Volume IV-f: The MIPS® MT Module for
+	the microMIPS32™ Architecture
+
+	Document Number: MD00768
+	Revision 1.12
+	July 16, 2013
+
+	https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00768-1C-microMIPS32MT-AFP-01.12.pdf
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	Revert "MIPS: add MT ASE support for micromips32"
+	This reverts commit 783a5f46b0583e9ed3a63acd3361009f46de5c17.
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: add MT ASE support for micromips32
+	These instructions are descripted in MD00768.
+
+	MIPS® Architecture for Programmers
+	Volume IV-f: The MIPS® MT Module for
+	the microMIPS32™ Architecture
+
+	Document Number: MD00768
+	Revision 1.12
+	July 16, 2013
+
+	https://s3-eu-west-1.amazonaws.com/downloads-mips/documents/MD00768-1C-microMIPS32MT-AFP-01.12.pdf
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: fix some ld testcases with compiler
+	1. config/default.exp:
+		use -mabi=32 not for -gnuabi64
+		xfail_from_runlist: remove an element and mark it xfail.
+	2. ld-elf/indirect.exp: xfail
+		indirect5a indirect5b indirect6a indirect6b
+		indirect5c indirect5d indirect6c indirect6d
+	3. ld-elf/pr23658-2: mips output is not common
+	4. ld-elf/shared.exp: non-run on mips: Build libpr16496b.so
+	5. ld-elfvers/vers.exp:
+		xfail vers4, vers4b
+		no-run on mips: vers24a, vers24b, vers24c
+	6. ld-gc/gc.exp: add -KPIC into asflags for pr13683, pr14265, pr19161
+	7. ld-mips-elf/mips-elf.exp:
+		use noarch for mips16-local-stubs-1, since it use -mips4
+	8. ld-plugin/lto.exp:
+		no-run on mips/linux: PR ld/12982
+		add -KPIC into asflags for lto-3r, lto-5r, PR ld/19317 (2)
+		xfail PR ld/15323 (4), PR ld/19317 (3)
+	9. ld-plugin/plugin.exp: xfail
+		plugin claimfile lost symbol
+		plugin claimfile replace symbol
+		plugin claimfile replace symbol
+		plugin claimfile lost symbol with source
+		plugin claimfile replace symbol with source
+		plugin claimfile resolve symbol with source
+		plugin 2 with source lib
+		load plugin 2 with source
+		plugin 3 with source lib
+		load plugin 3 with source
+	11. ld-selective/selective.exp: add -fno-PIC, which is needed for -mno-abicalls
+	12. ld-shared/shared.exp: xfail shared (non PIC), shared (PIC main, non PIC so)
+
+	MIPS: fix -gnuabi64 testsuite
+	Test on:
+		mips64-linux-gnuabi64
+		mips64el-linux-gnuabi64
+		mipsisa64-linux-gnuabi64
+		mipsisa64el-linux-gnuabi64
+		mipsisa64r2-linux-gnuabi64
+		mipsisa64r2el-linux-gnuabi64
+		mipsisa64r6-linux-gnuabi64
+		mipsisa64r6el-linux-gnuabi64
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: fix r6 testsuites
+	Introduce
+		run_dump_test_o32l
+		run_dump_test_n32l
+		run_dump_test_n64l
+	Which use `-march=from-abi` for pre-R6 testcases,
+	like micromips/mips16e etc.
+
+	For cases doesn't use run_dump_test_*, we use
+		-mips32r2 for micromips32
+		-mips1 for mips16-32
+		-march=from-abi for testcases to o32/n32/n64 both/all.
+
+	Replace `addi` with `addiu` for some cases for both r6 and pre-R6.
+
+	Introduce some new testcases for r6 with FPXX/FP64.
+	Introduce new testcase: comdat-reloc-r6.
+
+	Skip `default` in mips_arch_list_matching if triple is mipsisa*, due to:
+	  1)it will cannot match mipsr6@*.d: since mips32rN/mips64rN
+	    will always be used, it won't be a problem.
+	  2)some test think -march=mips64rN will alway true for mipsisa64rN,
+	    which is not true now.
+
+	This patch fix testsuite for all r6-default gnu triples:
+	  mipsisa32r6-linux-gnu
+	  mipsisa32r6el-linux-gnu
+	  mips-img-linux-gnu
+	  mipsel-img-linux-gnu
+	  mipsisa64r6-linux-gnu
+	  mipsisa64r6el-linux-gnu
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: default r6 if vendor is img
+	This behavior is used by downstream toolchain since 2014.
+	We also set the default ABI for mips*-img-elf to O32.
+	The previous value is NO_ABI, which is not good default ABI.
+
+	We don't support mips64*-img* due to GCC doesn't support it,
+	and We believe that the multilib should be used for this case.
+
+2023-06-05  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: gas: alter 64 or 32 for mipsisa triples if march is implicit
+	When configure with triples mipsisa[32,64]rN[el,], the march value
+	is pinned to a fix value if not given explicitly. for example
+	   1) mipsisa32r6-linux-gnu -n32 xx.s will complains that:
+	      -march=mips32r6 is not compatible with the selected ABI
+	   2) mipsisa64r2el-linux-gnu -o32 generates objects with 64bit CPU:
+	      ELF 32-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV)
+	They are not good default behaviors: Let's alter the CPU info
+
+	Since we are using these triples as a regular linux distributions,
+	let's alter march according to ABI.
+
+2023-06-05  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-04  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb] Fix typos
+	Fix a few typos:
+	- implemention -> implementation
+	- convertion(s) -> conversion(s)
+	- backlashes -> backslashes
+	- signoring -> ignoring
+	- (un)ambigious -> (un)ambiguous
+	- occured -> occurred
+	- hidding -> hiding
+	- temporarilly -> temporarily
+	- immediatelly -> immediately
+	- sillyness -> silliness
+	- similiar -> similar
+	- porkuser -> pokeuser
+	- thats -> that
+	- alway -> always
+	- supercede -> supersede
+	- accomodate -> accommodate
+	- aquire -> acquire
+	- priveleged -> privileged
+	- priviliged -> privileged
+	- priviledges -> privileges
+	- privilige -> privilege
+	- recieve -> receive
+	- (p)refered -> (p)referred
+	- succesfully -> successfully
+	- successfuly -> successfully
+	- responsability -> responsibility
+	- wether -> whether
+	- wich -> which
+	- disasbleable -> disableable
+	- descriminant -> discriminant
+	- construcstor -> constructor
+	- underlaying -> underlying
+	- underyling -> underlying
+	- structureal -> structural
+	- appearences -> appearances
+	- terciarily -> tertiarily
+	- resgisters -> registers
+	- reacheable -> reachable
+	- likelyhood -> likelihood
+	- intepreter -> interpreter
+	- disassemly -> disassembly
+	- covnersion -> conversion
+	- conviently -> conveniently
+	- atttribute -> attribute
+	- struction -> struct
+	- resonable -> reasonable
+	- popupated -> populated
+	- namespaxe -> namespace
+	- intialize -> initialize
+	- identifer(s) -> identifier(s)
+	- expection -> exception
+	- exectuted -> executed
+	- dungerous -> dangerous
+	- dissapear -> disappear
+	- completly -> completely
+	- (inter)changable -> (inter)changeable
+	- beakpoint -> breakpoint
+	- automativ -> automatic
+	- alocating -> allocating
+	- agressive -> aggressive
+	- writting -> writing
+	- reguires -> requires
+	- registed -> registered
+	- recuding -> reducing
+	- opeartor -> operator
+	- ommitted -> omitted
+	- modifing -> modifying
+	- intances -> instances
+	- imbedded -> embedded
+	- gdbaarch -> gdbarch
+	- exection -> execution
+	- direcive -> directive
+	- demanged -> demangled
+	- decidely -> decidedly
+	- argments -> arguments
+	- agrument -> argument
+	- amespace -> namespace
+	- targtet -> target
+	- supress(ed) -> suppress(ed)
+	- startum -> stratum
+	- squence -> sequence
+	- prompty -> prompt
+	- overlow -> overflow
+	- memember -> member
+	- languge -> language
+	- geneate -> generate
+	- funcion -> function
+	- exising -> existing
+	- dinking -> syncing
+	- destroh -> destroy
+	- clenaed -> cleaned
+	- changep -> changedp (name of variable)
+	- arround -> around
+	- aproach -> approach
+	- whould -> would
+	- symobl -> symbol
+	- recuse -> recurse
+	- outter -> outer
+	- freeds -> frees
+	- contex -> context
+
+	Tested on x86_64-linux.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tdep] Fix typo in debug message
+	In microblaze_analyze_prologue in gdb/microblaze-tdep.c I came across:
+	...
+		  microblaze_debug ("got addi r1,r1,%d; contnuing\n", imm);
+	...
+
+	Fix this by using "continuing".
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/python] Fix doc string of valpy_const_value
+	In gdb/python/py-value.c, in the value_object_methods array I noticed:
+	...
+	  { "const_value", valpy_const_value, METH_NOARGS,
+	    "Return a 'const' qualied version of the same value." },
+	...
+
+	Fix the qualied -> qualified typo.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/guile] Fix doc string for value-optimized-out?
+	In gdb/guile/scm-value.c, I noticed in the value_functions array initializer:
+	...
+	  { "value-optimized-out?", 1, 0, 0,
+	    as_a_scm_t_subr (gdbscm_value_optimized_out_p),
+	    "\
+	Return #t if the value has been optimizd out." },
+	...
+	There's a typo in the doc string.
+
+	Fix this by using "optimized".
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Fix help text of show tui tab-width
+	I noticed:
+	...
+	(gdb) help show tui tab-width
+	Show the tab witdh, in characters, for the TUI.
+	This variable controls how many spaces are used to display a tab character.
+	...
+	a typo: "witdh".
+
+	Fix this by using "width" instead.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/cli] Fix help text of maint info target-sections
+	I noticed a typo:
+	...
+	(gdb) help maint info target-sections
+	List GDB's internal section table.
+
+	Print the current targets section list.  This is a sub-set of all
+	sections, from all objects currently loaded.  Usually the ALLOC
+	sectoins.
+	...
+
+	Fix this by using "sections".
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/cli] Fix help text of maint set ignore-prologue-end-flag
+	I noticed here:
+	...
+	(gdb) help maint set ignore-prologue-end-flag
+	Set if the PROLOGUE-END flag is ignored.
+	The PROLOGUE-END flag from the line-table entries is used to place \
+	  breakpoints past the prologue of functions.  Disabeling its use use forces \
+	  the use of prologue scanners.
+	...
+	a typo in "Disabeling" and accidental word repetition "use use".
+
+	Fix by replacing with "Disabling" and "use".
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/compile] Fix typo in debug message
+	In compile_object_load in gdb/compile/compile-object-load.c I came across:
+	...
+				"Connectiong ELF symbol \"%s\" to the .toc section (%s)\n",
+	...
+
+	Fix this typo by using "Connecting" instead.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdbserver] Fix typo in debug message
+	I noticed in emit_ops_insns in gdbserver/linux-aarch64-low.cc:
+	...
+	  threads_debug_printf ("Adding %d instrucions at %s",
+	...
+
+	Fix the typo by using "instructions" instead.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/ada] Fix argument name misspelling
+	Two functions use the argument name bounds_prefered_p.
+
+	This misspells "preferred".
+
+	Fix this by using bounds_preferred_p instead.
+
+	Tested on x86_64-linux.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-06-03  Alan Modra  <amodra@gmail.com>
+
+	Re: loongarch readelf support
+	Another segfault.
+
+		* readelf.c (target_specific_reloc_handling): Sanity check
+		loongarch reloc r_offset.
+
+2023-06-03  Alan Modra  <amodra@gmail.com>
+
+	Re: More ecoff sanity checks
+	Yet another fuzzer fix.
+
+		* ecoff.c (ecoff_slurp_symbolic_header <FIX>): Zero counts when
+		associated pointer is zero.
+		(_bfd_ecoff_slurp_symbolic_info): Remove now unnecessary check.
+
+2023-06-03  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-02  Luis Machado  <luis.machado@arm.com>
+
+	[AArch64] Fix architecture debug version constant thinkos
+	Caught this during emulator testing.
+
+	Fix the constants. They should be 0xa and 0xb as opposed to 0x10 and
+	0x11.  There was a thinko while defining them.
+
+	Obvious enough.
+
+	Tested on aarch64-linux Ubuntu 20.04/22.04.
+
+2023-06-02  Alan Modra  <amodra@gmail.com>
+
+	Re: bfd_close and target free_cached_memory
+	_bfd_delete_bfd can be called early, before the target xvec is set up.
+
+		* opncls.c (_bfd_delete_bfd): Don't segfault on NULL xvec.
+
+2023-06-02  Alan Modra  <amodra@gmail.com>
+
+	Re: More ecoff sanity checks
+	Another fix for fuzzed object files, exhibiting as a segfault in
+	nm.c filter_symbols when accessing a symbol name.
+
+		* ecoff.c (_bfd_ecoff_slurp_symbol_table): Sanity check
+		fdr_ptr->issBase, and tighten sym.iss check.
+
+2023-06-02  Alan Modra  <amodra@gmail.com>
+
+	loongarch readelf support
+	This fixes two buffer overflows found by fuzzers.
+
+		* readelf.c (target_specific_reloc_handling): Sanity check
+		loongarch reloc symbol index.  Don't apply reloc after errors.
+		Reduce translation work of "invalid symbol index" error message.
+
+2023-06-02  Alan Modra  <amodra@gmail.com>
+
+	Minor objcopy optimisation for copy_relocations_in_section
+		* objcopy (copy_relocations_in_section): Don't read the relocs
+		for STRIP_ALL if keep_specific_htab is empty.
+
+2023-06-02  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-06-01  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: avoid using magic number
+	Define a new constant for the maximum number of stack offsets handled in
+	libsframe, and use it.  Note that the SFrame format does not define such
+	a constant (limit).  This is an implmentation-defined constant in
+	libsframe.
+
+	include/
+		* sframe-api.h (MAX_NUM_STACK_OFFSETS): New definition.
+	libsframe/
+		* sframe.c (sframe_fre_sanity_check_p): Use it.
+
+2023-06-01  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: minor fixups in flip_fre related functions
+	libsframe/
+		* sframe.c (flip_fre_start_address): Remove unnecessary type
+		cast.  Use uint16_t instead of unsigned short.
+		(flip_fre_stack_offsets): Likewise.
+
+2023-06-01  Jim Wilson  <jimw@sifive.com>
+
+	RISC-V: PR30449, Add lga assembler macro support.
+	Originally discussion, https://github.com/riscv/riscv-isa-manual/pull/539
+
+	Added new load address pseudo instruction which is always expanded to GOT
+	access, no matter the .option rvc is set or not.
+
+	gas/
+		PR 30449
+		* config/tc-riscv.c (macro): Add M_LGA support.
+		* testsuite/gas/riscv/la-variants.d: New.
+		* testsuite/gas/riscv/la-variants.s: New.
+	include/
+		PR 30449
+		* opcode/riscv.h (M_LGA): New.
+	opcodes/
+		PR 30449
+		* riscv-opc.c (riscv_opcodes): Add lga support.
+
+2023-06-01  Nelson Chu  <nelson@rivosinc.com>
+
+	[PR ld/22263][PR ld/24676] RISC-V: Avoid spurious R_RISCV_NONE for TLS GD/IE.
+	For TLS GD/IE, add the same condition with the relocate_section in the
+	allocate_dynrelocs, to make sure we won't reserve redundant spaces
+	for dynamic relocations since the conservative estimatation.
+
+	After applying this patch, ld seems no longer generate the spurious
+	R_RISCV_NONE for pr22263-1 test, and the test in pr24676.
+
+	bfd/
+		PR ld/22263
+		PR ld/24676
+		* elfnn-riscv.c (RISCV_TLS_GD_IE_NEED_DYN_RELOC): New defined.
+		Set NEED_RELOC to true if TLS GD/IE needs dynamic relocations,
+		and INDX will be the dynamic index.
+		(allocate_dynrelocs): Don't reserve extra spaces in the rela.got
+		if RISCV_TLS_GD_IE_NEED_DYN_RELOC set need_reloc to false.  This
+		condition needs to be same as relocate_section.
+		(relocate_section): Likewise, use the same condition as
+		allocate_dynrelocs.
+
+2023-06-01  Alan Modra  <amodra@gmail.com>
+
+	Harden PowerPC64 OPD handling against fuzzers
+	PowerPC64 ELFv1 object files should have at most one .opd section, and
+	OPD handling in elf64-ppc.c makes use of this fact by caching some
+	.opd section info in the per-object bfd.tdata.  This was done to avoid
+	another word in the target specific section data.  Of course, fuzzers
+	don't respect the ABI, and even non-malicious users can accidentally
+	create multiple .opd sections.  So it is better to avoid possible
+	buffer overflows and other confusion when OPD handling for a second
+	.opd section references data for the first .opd section, by keeping
+	the data per-section.
+
+	The patch also fixes a memory leak, and a corner case where I think we
+	could hit an assertion in opd_entry_value or read out of bounds in
+	ppc64_elf_branch_reloc doing a final link producing non-ppc64 output.
+	(It's a really rare corner case because not only would you need to be
+	linking ppc64 objects to non-ppc64 output, you'd also need a branch
+	reloc symbol to be defined in a .opd section of a non-ppc64 input.)
+
+		* elf64-ppc.c (is_ppc64_elf): Move earlier in file.
+		(ppc64_elf_branch_reloc): Check symbol bfd before accessing
+		ppc64 elf specific data structures.
+		(struct ppc64_elf_obj_tdata): Move opd union..
+		(struct _ppc64_elf_section_data): ..to here.
+		(ppc64_elf_before_check_relocs): Allow for opd sec_type
+		already set to sec_opd.
+		(ppc64_elf_check_relocs): Only set sec_type to sec_toc when
+		unset.  Error for unexpected toc relocs.
+		(opd_entry_value): Return -1 when non-ppc64 rather than
+		asserting.  Check and set sec_type too.  Adjust for changed
+		location of contents and relocs.
+		(ppc64_elf_relocate_section): Adjust for changed location of
+		cached .opd relocs.
+		(ppc64_elf_free_cached_info): New function.
+		(bfd_elf64_bfd_free_cached_info): Define.
+
+2023-06-01  Alan Modra  <amodra@gmail.com>
+
+	bfd_close and target free_cached_memory
+	bfd_free_cached_info is used in just one place in archive.c, which
+	means most times we reach bfd_close the function isn't called.  On the
+	other hand, if bfd_free_cached_info is called we can't do much on the
+	bfd since it loses all its obj_alloc memory.  This restricts what can
+	be done in a target _close_and_cleanup.  In particular you can't look
+	at sections, which leads to duplication of code in target
+	close_and_cleanup and free_cached_info, eg. elfnn-aarch64.c.
+
+		* opncls.c (_bfd_delete_bfd): Call bfd_free_cached_info.
+		* elfnn-aarch64.c (elfNN_aarch64_close_and_cleanup): Delete.
+		(bfd_elfNN_close_and_cleanup): Don't define.
+		* som.c (som_bfd_free_cached_info): Don't call
+		_bfd_generic_close_and_cleanup here.
+		(som_close_and_cleanup): Define as _bfd_generic_close_and_cleanup.
+
+2023-06-01  Alan Modra  <amodra@gmail.com>
+
+	section_by_target_index memory leak
+	The rs6000 backend can call coff_section_from_bfd_index from its
+	object_p function via coff_set_alignment_hook.  If the object doesn't
+	match, or another target matches too, then the hash table needs to be
+	freed via a cleanup.
+
+		* coffgen.c (coff_object_cleanup): New function.
+		(coff_real_object_p): Return coff_object_cleanup, and call on
+		failure path.  Move declaration to..
+		* libcoff-in.h: ..here.
+		(coff_object_cleanup): Declare.
+		* coff-stgo32.c (go32exe_cleanup): Call coff_object_cleanup.
+		(go32exe_check_format): Adjust assertion.
+		* libcoff.h: Regenerate.
+
+2023-06-01  Alan Modra  <amodra@gmail.com>
+
+	Remove BFD_FAIL in cpu-sh.c
+	The assertions in cpu-sh.c can be triggered by passing bogus values
+	in disassemble_info.mach.  This doesn't cause any bfd misbehaviour.
+
+		* cpu-sh.c (sh_get_arch_from_bfd_mach): Remove BFD_FAIL.
+		(sh_get_arch_up_from_bfd_mach): Likewise.
+
+2023-06-01  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-31  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	gprofng: Fix -Wsign-compare warning
+	gprofng/ChangeLog
+	2023-05-25  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+		PR gprofng/30490
+		* src/LoadObject.cc: Fix -Wsign-compare warning.
+
+2023-05-31  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	gprofng: 29470 The test suite should be made more flexible
+	I add two new targets (check-extra, check-install) for gprofng testing:
+	  `make check` runs sanity testing for gprofng and takes ~30 secunds.
+	  `make check-extra` runs all gprofng tests and takes ~20 minutus.
+	  `make check-install` runs all gprofng tests and uses gprofng installation.
+
+	On aarch64, there are unwind problems in libgp-collector.so.
+	I set ACCT_FILTER to temporarily ignore problematic functions.
+
+	gprofng/ChangeLog
+	2023-05-25  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+		PR gprofng/29470
+		* Makefile.am: Add check-extra, check-install.
+		* Makefile.in: Rebuild
+		* testsuite/config/default.exp: Set the GPROFNG variable.
+		* testsuite/gprofng.display/display.exp: Updated the test list.
+		* testsuite/gprofng.display/jsynprog/Intface.java: Correct copyright.
+		* testsuite/gprofng.display/jsynprog/Launcher.java: Likewise.
+		* testsuite/gprofng.display/jsynprog/Makefile: Likewise.
+		* testsuite/gprofng.display/jsynprog/Routine.java: Likewise.
+		* testsuite/gprofng.display/jsynprog/Sub_Routine.java: Likewise.
+		* testsuite/gprofng.display/jsynprog/cloop.cc: Likewise.
+		* testsuite/gprofng.display/jsynprog/jsynprog.h: Likewise.
+		* testsuite/gprofng.display/jsynprog/jsynprog.java: Correct copyright.
+		Add the -j option to run the selected functions.
+		* testsuite/gprofng.display/synprog/check_results.pl:
+		Remove unused environment variable.
+		* testsuite/gprofng.display/synprog/synprog.c: Updated DEFAULT_COMMAND.
+		* testsuite/lib/Makefile.skel: Apply $(ACCT_FILTER).
+		* testsuite/lib/acct.pm: Ignore errors when $(ACCT_FILTER) is set.
+		* testsuite/lib/display-lib.exp: Add TARGET_FLAGS in make_args.
+
+2023-05-31  Tom Tromey  <tromey@adacore.com>
+
+	Improve MI -dprintf-insert documentation
+	I found the documentation for -dprintf-insert a bit unclear.  It
+	didn't mention the possibility of multiple arguments, and I also
+	noticed that it implied that the format parameter is optional, which
+	it is not.
+
+	While looking into this I also noticed a few comments in the
+	implementation that could also be improved.
+
+	Then, I noticed a repeated call to strlen in a loop condition, so I
+	fixed this up as well.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-31  Tom Tromey  <tromey@adacore.com>
+
+	Pass correct name to @value in gdb.texinfo
+	I noticed a couple instance of this warning when rebuilding the gdb
+	info files:
+
+	    warning: undefined flag: GDB
+
+	The problem is that the wrong argument was passed to @value.  This
+	patch fixes the problem.
+
+2023-05-31  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.tui/wrap-line.exp with --disable-tui
+	When running the test-case gdb.tui/wrap-line.exp with a build configured with
+	--disable-tui, we run into:
+	...
+	(gdb) PASS: gdb.tui/wrap-line.exp: width-hard-coded: set width 50
+	tui new-layout command-layout cmd 1^M
+	Undefined command: "tui".  Try "help".^M
+	(gdb) ERROR: Undefined command "tui new-layout command-layout cmd 1".
+	...
+
+	Fix this by guarding the command with allow_tui_tests.
+
+	Tested on x86_64-linux.
+
+2023-05-31  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.tui/pr30056.exp for native-extended-gdbserver
+	When running test-case gdb.tui/pr30056.exp with target board
+	native-extended-gdbserver, I run into:
+	...
+	Quit^[[K^M^[[B(gdb) PASS: gdb.tui/pr30056.exp: Control-C
+	Remote debugging from host ::1, port 38810^M
+	^M(failed reverse-i-search)`xyz': ^M(gdb) target extended-remote \
+	  localhost:2346^[[7GWARNING: Timed out waiting for EOF in server after \
+	  monitor exit
+	...
+
+	This is due to the fact that ^C doesn't abort the reverse-i-search.  This
+	appears to be due to a readline problem.  A PR is open about this: PR
+	cli/30498.
+
+	Add a KFAIL for the PR, and ensure that the isearch is aborted by using ^G,
+	such that we have a responsive prompt to handle the "monitor exit" command
+	that native-extended-gdbserver issues.
+
+	Tested on x86_64-linux.
+
+2023-05-31  Tristan Gingold  <tgingold@free.fr>
+
+	pe/coff - add support for base64 encoded long section names
+	  PR 30444
+	  * coffcode.h (coff_write_object_contents): Handle base64 encoding on PE.  Also check for too large string table.
+	  * coffgen.c (extract_long_section_name): New function extracted from ... (make_a_section_from_file): ... here.  Add support for base64 long section names. (decode_base64): New function.
+
+2023-05-31  Nick Clifton  <nickc@redhat.com>
+
+	Fix printf formating issues in elfxx-loongarch64.c
+
+2023-05-31  Felix Willgerodt  <felix.willgerodt@intel.com>
+
+	python, btrace: Fix some small formatting issues.
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-31  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Fix fingerprint for cmd-only layout
+	I added a cmd-only layout:
+	...
+	(gdb) tui new-layout cmd cmd 1
+	...
+	and set it:
+	...
+	(gdb) layout cmd
+	...
+	which gave me the expect result: only the cmd window in the screen.
+
+	However, after going back to layout src:
+	...
+	(gdb) layout src
+	...
+	I got a source window with only one line in it, and the cmd window taking most
+	of the screen.
+
+	I traced this back to tui_set_layout, where for both the old and the new
+	layout the fingerprint of the cmd window in the layout is taken.  If the
+	fingerprint is the same, an effort will be done to preserve the command
+	window size.
+
+	The fingerprint is "VC" for both the old (cmd) and new (src) layouts, which
+	explains the behaviour.
+
+	I think this is essentially a bug in the finger print calculation, and it
+	should be "C" for the cmd layout.
+
+	Fix this by not adding a V or H in the fingerprint if the list size is one.
+
+	Tested on x86_64-linux.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-31  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-30  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: add support for %V to printf command
+	This commit adds a new format for the printf and dprintf commands:
+	'%V'.  This new format takes any GDB expression and formats it as a
+	string, just as GDB would for a 'print' command, e.g.:
+
+	  (gdb) print a1
+	  $a = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
+	  (gdb) printf "%V\n", a1
+	  {2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
+	  (gdb)
+
+	It is also possible to pass the same options to %V as you might pass
+	to the print command, e.g.:
+
+	  (gdb) print -elements 3 -- a1
+	  $4 = {2, 4, 6...}
+	  (gdb) printf "%V[-elements 3]\n", a1
+	  {2, 4, 6...}
+	  (gdb)
+
+	This new feature would effectively replace an existing feature of GDB,
+	the $_as_string builtin convenience function.  However, the
+	$_as_string function has a few problems which this new feature solves:
+
+	1. $_as_string doesn't currently work when the inferior is not
+	running, e.g:
+
+	  (gdb) printf "%s", $_as_string(a1)
+	  You can't do that without a process to debug.
+	  (gdb)
+
+	The reason for this is that $_as_string returns a value object with
+	string type.  When we try to print this we call value_as_address,
+	which ends up trying to push the string into the inferior's address
+	space.
+
+	Clearly we could solve this problem, the string data exists in GDB, so
+	there's no reason why we have to push it into the inferior, but this
+	is an existing problem that would need solving.
+
+	2. $_as_string suffers from the fact that C degrades arrays to
+	pointers, e.g.:
+
+	  (gdb) printf "%s\n", $_as_string(a1)
+	  0x404260 <a1>
+	  (gdb)
+
+	The implementation of $_as_string is passed a gdb.Value object that is
+	a pointer, it doesn't understand that it's actually an array.  Solving
+	this would be harder than issue #1 I think.  The whole array to
+	pointer transformation is part of our expression evaluation.  And in
+	most cases this is exactly what we want.  It's not clear to me how
+	we'd (easily) tell GDB that we didn't want this reduction in _some_
+	cases.  But I'm sure this is solvable if we really wanted to.
+
+	3. $_as_string is a gdb.Function sub-class, and as such is passed
+	gdb.Value objects.  There's no super convenient way to pass formatting
+	options to $_as_string.  By this I mean that the new %V feature
+	supports print formatting options.  Ideally, we might want to add this
+	feature to $_as_string, we might imagine it working something like:
+
+	  (gdb) printf "%s\n", $_as_string(a1,
+	                                   elements = 3,
+	                                   array_indexes = True)
+
+	where the first item is the value to print, while the remaining
+	options are the print formatting options.  However, this relies on
+	Python calling syntax, which isn't something that convenience
+	functions handle.  We could possibly rely on strictly positional
+	arguments, like:
+
+	  (gdb) printf "%s\n", $_as_string(a1, 3, 1)
+
+	But that's clearly terrible as there's far more print formatting
+	options, and if you needed to set the 9th option you'd need to fill in
+	all the previous options.
+
+	And right now, the only way to pass these options to a gdb.Function is
+	to have GDB first convert them all into gdb.Value objects, which is
+	really overkill for what we want.
+
+	The new %V format solves all these problems: the string is computed
+	and printed entirely on the GDB side, we are able to print arrays as
+	actual arrays rather than pointers, and we can pass named format
+	arguments.
+
+	Finally, the $_as_string is sold in the manual as allowing users to
+	print the string representation of flag enums, so given:
+
+	  enum flags
+	    {
+	      FLAG_A = (1 << 0),
+	      FLAG_B = (1 << 1),
+	      FLAG_C = (1 << 1)
+	    };
+
+	  enum flags ff = FLAG_B;
+
+	We can:
+
+	  (gdb) printf "%s\n", $_as_string(ff)
+	  FLAG_B
+
+	This works just fine with %V too:
+
+	  (gdb) printf "%V\n", ff
+	  FLAG_B
+
+	So all functionality of $_as_string is replaced by %V.  I'm not
+	proposing to remove $_as_string, there might be users currently
+	depending on it, but I am proposing that we don't push $_as_string in
+	the documentation.
+
+	As %V is a feature of printf, GDB's dprintf breakpoints naturally gain
+	access to this feature too.  dprintf breakpoints can be operated in
+	three different styles 'gdb' (use GDB's printf), 'call' (call a
+	function in the inferior), or 'agent' (perform the dprintf on the
+	remote).
+
+	The use of '%V' will work just fine when dprintf-style is 'gdb'.
+
+	When dprintf-style is 'call' the format string and arguments are
+	passed to an inferior function (printf by default).  In this case GDB
+	doesn't prevent use of '%V', but the documentation makes it clear that
+	support for '%V' will depend on the inferior function being called.
+
+	I chose this approach because the current implementation doesn't place
+	any restrictions on the format string when operating in 'call' style.
+	That is, the user might already be calling a function that supports
+	custom print format specifiers (maybe including '%V') so, I claim, it
+	would be wrong to block use of '%V' in this case.  The documentation
+	does make it clear that users shouldn't expect this to "just work"
+	though.
+
+	When dprintf-style is 'agent' then GDB does no support the use of
+	'%V' (right now).  This is handled at the point when GDB tries to
+	process the format string and send the dprintf command to the remote,
+	here's an example:
+
+	  Reading symbols from /tmp/hello.x...
+	  (gdb) dprintf call_me, "%V", a1
+	  Dprintf 1 at 0x401152: file /tmp/hello.c, line 8.
+	  (gdb) set sysroot /
+	  (gdb) target remote | gdbserver --once - /tmp/hello.x
+	  Remote debugging using | gdbserver --once - /tmp/hello.x
+	  stdin/stdout redirected
+	  Process /tmp/hello.x created; pid = 3088822
+	  Remote debugging using stdio
+	  Reading symbols from /lib64/ld-linux-x86-64.so.2...
+	  (No debugging symbols found in /lib64/ld-linux-x86-64.so.2)
+	  0x00007ffff7fd3110 in _start () from /lib64/ld-linux-x86-64.so.2
+	  (gdb) set dprintf-style agent
+	  (gdb) c
+	  Continuing.
+	  Unrecognized format specifier 'V' in printf
+	  Command aborted.
+	  (gdb)
+
+	This is exactly how GDB would handle any other invalid format
+	specifier, for example:
+
+	  Reading symbols from /tmp/hello.x...
+	  (gdb) dprintf call_me, "%Q", a1
+	  Dprintf 1 at 0x401152: file /tmp/hello.c, line 8.
+	  (gdb) set sysroot /
+	  (gdb) target remote | gdbserver --once - /tmp/hello.x
+	  Remote debugging using | gdbserver --once - /tmp/hello.x
+	  stdin/stdout redirected
+	  Process /tmp/hello.x created; pid = 3089193
+	  Remote debugging using stdio
+	  Reading symbols from /lib64/ld-linux-x86-64.so.2...
+	  (No debugging symbols found in /lib64/ld-linux-x86-64.so.2)
+	  0x00007ffff7fd3110 in _start () from /lib64/ld-linux-x86-64.so.2
+	  (gdb) set dprintf-style agent
+	  (gdb) c
+	  Continuing.
+	  Unrecognized format specifier 'Q' in printf
+	  Command aborted.
+	  (gdb)
+
+	The error message isn't the greatest, but improving that can be put
+	off for another day I hope.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+	Acked-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_memory_changed method
+	Same idea as previous patches, but for memory_changed.
+
+	Change-Id: Ic19f20c24d8a6431d4a89c5625e8ef4898f76e82
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_param_changed method
+	Same idea as previous patches, but for command_param_changed.
+
+	Change-Id: I7c2196343423360da05f016f8ffa871c064092bb
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_breakpoint_modified method
+	Same idea as previous patches, but for breakpoint_modified.
+
+	Change-Id: I4f0a9edea912de431e32451d74224b2022a7c328
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_breakpoint_deleted method
+	Same idea as previous patches, but for breakpoint_deleted.
+
+	Change-Id: I59c231ce963491bb1eee1432ee1090138f09e19c
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_breakpoint_created method
+	Same idea as previous patches, but for breakpoint_created.
+
+	Change-Id: I614113c924edc243590018b8fb3bf69cb62215ef
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_tsv_modified method
+	Same idea as previous patches, but for tsv_modified.
+
+	Change-Id: I55454a2386d5450040b3a353909b26f389a43682
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_tsv_deleted method
+	Same idea as previous patches, but for tsv_deleted.
+
+	Change-Id: I71b0502b493da7b6e293bee02aeca98de83d4b75
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_tsv_created method
+	Same idea as previous patches, but for tsv_created.
+
+	Change-Id: I9c30ecfdbd78ca015d613f43a0c0aef6c7eb32b5
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_traceframe_changed method
+	Same idea as previous patches, but for traceframe_changed.
+
+	Change-Id: Ia473f07d70d57b30aca0094d0e0585d7e0d95637
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_about_to_proceed method
+	Same idea as previous patches, but for about_to_proceed.  We only need
+	(and want, as far as the mi_interp implementation is concerned) to
+	notify the interpreter that caused the proceed.
+
+	Change-Id: Id259bca10dbc3d43d46607ff7b95243a9cbe2f89
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_solib_unloaded method
+	Same idea as previous patches, but for solib_unloaded.
+
+	Change-Id: Iad847de93f0b38b5c90679a173d3beeaed7af6c5
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_solib_loaded method
+	Same idea as previous patches, but for solib_loaded
+
+	Change-Id: I85edb0a4b377f4b2c39ffccf31cb75f38bae0f55
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_target_resumed method
+	Same idea as previous patches, but for target_resumed.
+
+	Change-Id: I66fa28d1d41a1f3c4fb0d6a470137d493eac3c8c
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_record_changed method
+	Same idea as previous patches, but for record_changed
+
+	Change-Id: I5eeeacd703af8401c315060514c94e8e6439cc40
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_inferior_removed method
+	Same idea as previous patches, but for inferior_removed.
+
+	Change-Id: I7971840bbbdcfabf77e2ded7584830c9dfdd10d0
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_inferior_disappeared method
+	Same idea as previous patches, but for inferior_disappeared.
+
+	For symmetry with on_inferior_appeared, I named this one
+	on_inferior_disappeared, despite the observer being called
+	inferior_exit.  This is called when detaching an inferior, so I think
+	that calling it "disappeared" is a bit less misleading (the observer
+	should probably be renamed later).
+
+	Change-Id: I372101586bc9454997953c1e540a2a6685f53ef6
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_inferior_appeared method
+	Same idea as previous patches, but for inferior_appeared.
+
+	Change-Id: Ibe4feba34274549a886b1dfb5b3f8d59ae79e1b5
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_inferior_added method
+	Same idea as previous patches, but for inferior_added.
+
+	mi_interp::init avoided using mi_inferior_added, since, as the comment
+	used to say, it would notify all MI interpreters.  Now, it's easy to
+	only notify the new interpreter, so it's possible to just call the
+	on_inferior_added method in mi_interp::init.
+
+	Change-Id: I0eddbd5367217d1c982516982089913019ef309f
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_thread_exited method
+	Same idea as previous patches, but for thread_exited.
+
+	Change-Id: I4be974cbe58cf635453fef503c2d77c82522cbd9
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_new_thread method
+	Same idea as previous patches, but for new_thread.
+
+	Change-Id: Ib70ae3421b736fd69d86c4e7c708bec349aa256c
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_user_selected_context_changed method
+	Same as previous patches, but for user_selected_context_changed.
+
+	Change-Id: I40de15be897671227d4bcf3e747f0fd595f0d5be
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_command_error method
+	Same idea as the previous patches, but for command_error.
+
+	Change-Id: If6098225dd72fad8be13b3023b35bc8bc48efb9d
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_sync_execution_done method
+	Same as previous patches, but for sync_execution_done.  Except that
+	here, we only want to notify the interpreter that is executing the
+	command, not all interpreters.
+
+	Change-Id: I729c719447b5c5f29af65dbf6fed9132e2cd308b
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_no_history method
+	Same as previous patches, but for no_history.
+
+	Change-Id: I06930fe7cb4082138c6c5496c5118fe4951c10da
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_exited method
+	Same as previous patch, but for exited.  Remove the exited observable,
+	since nothing uses it anymore, and we don't have anything coming that
+	will use it.
+
+	Change-Id: I358cbea0159af56752dfee7510d6a86191e722bb
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_signal_exited method
+	Same as previous patch, but for signal_exited.  Remove the signal_exited
+	observable, since nothing uses it anymore, and we don't have anything
+	coming that will use it.
+
+	Change-Id: I0dca1eab76338bf27be755786e3dad3241698b10
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_normal_stop method
+	Same idea as the previous patch, but for the normal_stop event.
+
+	Change-Id: I4fc8ca8a51c63829dea390a2b6ce30b77f9fb863
+
+2023-05-30  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add interp::on_signal_received method
+	Instead of having the interpreter code registering observers for the
+	signal_received observable, add a "signal_received" virtual method to
+	struct interp.  Add a interps_notify_signal_received function that loops
+	over all UIs and calls the signal_received method on the interpreter.
+	Finally, add a notify_signal_received function that calls
+	interps_notify_signal_received and then notifies the observers.  Replace
+	all existing notifications to the signal_received observers with calls
+	to notify_signal_received.
+
+	Before this patch, the CLI and MI code both register a signal_received
+	observer.  These observer go over all UIs, and, for those that have a
+	interpreter of the right kind, print the stop notifiation.
+
+	After this patch, we have just one "loop over all UIs", inside
+	interps_notify_signal_received.  Since the interp::on_signal_received
+	method gets called once for each interpreter, the implementations only
+	need to deal with the current interpreter (the "this" pointer).
+
+	The motivation for this patch comes from a future patch, that makes the
+	amdgpu code register an observer to print a warning after the CLI's
+	signal stop message.  Since the amdgpu and the CLI code both use
+	observers, the order of the two messages is not stable, unless we define
+	the priority using the observer dependency system.  However, the
+	approach of using virtual methods on the interpreters seems like a good
+	change anyway, I think it's more straightforward and simple to
+	understand than the current solution that uses observers.  We are sure
+	that the amdgpu message gets printed after the CLI message, since
+	observers are notified after interpreters.
+
+	Keep the signal_received, even if nothing uses if, because we will be
+	using it in the upcoming amdgpu patch implementing the warning described
+	above.
+
+	Change-Id: I4d8614bb8f6e0717f4bfc2a59abded3702f23ac4
+
+2023-05-30  Tom de Vries  <tdevries@suse.de>
+
+	[gdb] Mention --with/without-system-readline for --configuration
+	Simon reported that the new test-case gdb.tui/pr30056.exp fails with system
+	readline.
+
+	This is because the test-case requires a fix in readline that's present in our
+	in-repo copy of readline, but most likely not in any system readline yet.
+
+	Fix this by:
+	- mentioning --with-system-readline or --without-system-readline in the
+	  configuration string.
+	- adding a new proc with_system_readline that makes this information available
+	  in the testsuite.
+	- using this in test-case gdb.tui/pr30056.exp to declare it unsupported for
+	  --with-system-readline.
+
+	Tested on x86_64-linux.
+
+	Reported-By: Simon Marchi <simon.marchi@efficios.com>
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-05-30  Nick Clifton  <nickc@redhat.com>
+
+	Slight wording improvement for the -Ur documentation
+
+	Improve header information displayed with objdump -P for PE binaries.
+	  * od-pe.c (targ_info): New array.
+	  (get_target_specific_info): New function.
+	  (decode_machine_number): Retire.  Use get_target_specific_info instead.
+	  (is_pe_object_magic): Likewise.
+	  (dump_pe_file_header): Display more information.
+	  Rework layout to be similar to that from 'objdump -p'.
+	  Add code to handle larger than normnal AOUT headers.
+
+2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: ld: Add support for linker relaxation.
+	Add ld relax support and testsuits.
+
+	ld/ChangeLog:
+
+		* emultempl/loongarchelf.em: Regenerated.
+		* testsuite/ld-elf/compressed1d.d: Xfail loongarch*-*.
+		* testsuite/ld-elf/pr26936.d: Likewise.
+		* testsuite/ld-loongarch-elf/disas-jirl.d: Regenerated.
+		* testsuite/ld-loongarch-elf/disas-jirl-32.d: Regenerated.
+		* testsuite/ld-loongarch-elf/jmp_op.d: Likewise.
+		* testsuite/ld-loongarch-elf/macro_op.d: Likewise.
+		* testsuite/ld-loongarch-elf/macro_op_32.d: Likewise.
+		* testsuite/ld-loongarch-elf/relax-align.dd: New test.
+		* testsuite/ld-loongarch-elf/relax-align.s: New test.
+		* testsuite/ld-loongarch-elf/relax.exp: New test.
+		* testsuite/ld-loongarch-elf/relax.s: New test.
+		* testsuite/ld-loongarch-elf/uleb128.dd: New test.
+		* testsuite/ld-loongarch-elf/uleb128.s: New test.
+
+2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: gas: Add support for linker relaxation.
+	Add gas -mrelax and -mno-relax option.
+	Add R_LARCH_RELAX reloc for instrction if it can be relaxed.
+	ADD R_LARCH_ALIGN reloc for align pseudo instruction because relax.
+	Add ADD/SUB reloc pair for debug and exception data to calculate symbol
+	substraction because relax.
+
+	gas/ChangeLog:
+
+		* config/tc-loongarch.c:
+		(struct loongarch_cl_insn): New macro_id member.
+		(enum options): New OPTION_RELAX and OPTION_NO_RELAX.
+		(struct option): New mrelax and mno-relax.
+		(md_parse_option): Likewise.
+		(get_internal_label):
+		(loongarch_args_parser_can_match_arg_helper): Generate relax reloc.
+		(move_insn): Set fx_frag and fx_where if exist.
+		(append_fixp_and_insn): Call frag_wane and frag_new for linker relax
+		relocs.
+		(loongarch_assemble_INSNs): New loongarch_cl_insn pointer parameter.
+		(md_assemble): Fix function call.
+		(fix_reloc_insn): Likewise.
+		(md_apply_fix): Generate ADD/SUB reloc pair for debug and exception
+		data.
+		(loongarch_fix_adjustable): Delete.
+		(md_convert_frag): Generate new fix.
+		(loongarch_pre_output_hook): New function.
+		(loongarch_make_nops): Likewise.
+		(loongarch_frag_align_code): Likewise.
+		(loongarch_insert_uleb128_fixes): Likewise.
+		(loongarch_md_finish): Likewise.
+		* config/tc-loongarch.h
+		(md_allow_local_subtract): New macro define.
+		(loongarch_frag_align_code): New declare.
+		(md_do_align): Likewise.
+		(loongarch_fix_adjustable): Delete.
+		(tc_fix_adjustable): New macro define.
+		(TC_FORCE_RELOCATION_SUB_SAME): Likewise.
+		(TC_LINKRELAX_FIXUP): Likewise.
+		(TC_FORCE_RELOCATION_LOCAL): Likewise.
+		(DWARF2_USE_FIXED_ADVANCE_PC): Likewise.
+		(MD_APPLY_SYM_VALUE): Likewise.
+		(tc_symbol_new_hook): New extern.
+		(NOP_OPCODE): Delete.
+		(loongarch_pre_output_hook): New macro define.
+		(md_pre_output_hook): Likewise.
+		(md_finish): Likewise.
+		(loongarch_md_finish): New extern.
+		* testsuite/gas/all/align.d: Mark as unsupported on LoongArch.
+		* testsuite/gas/all/gas.exp: Xfail loongarch*-*.
+		* testsuite/gas/all/relax.d: Likewise.
+		* testsuite/gas/elf/dwarf-5-irp.d: Likewise.
+		* testsuite/gas/elf/dwarf-5-loc0.d: Likewise.
+		* testsuite/gas/elf/dwarf-5-macro-include.d: Likewise.
+		* testsuite/gas/elf/dwarf-5-macro.d: Likewise.
+		* testsuite/gas/elf/dwarf2-11.d: Likewise.
+		* testsuite/gas/elf/dwarf2-15.d: Likewise.
+		* testsuite/gas/elf/dwarf2-16.d: Likewise.
+		* testsuite/gas/elf/dwarf2-17.d: Likewise.
+		* testsuite/gas/elf/dwarf2-18.d: Likewise.
+		* testsuite/gas/elf/dwarf2-19.d: Likewise.
+		* testsuite/gas/elf/dwarf2-5.d: Likewise.
+		* testsuite/gas/elf/ehopt0.d: Likewise.
+		* testsuite/gas/elf/elf.exp: Likewise.
+		* testsuite/gas/elf/section11.d: Likewise.
+		* testsuite/gas/lns/lns.exp: Likewise.
+		* testsuite/gas/loongarch/jmp_op.d: Regenerated.
+		* testsuite/gas/loongarch/li.d: Likewise.
+		* testsuite/gas/loongarch/macro_op.d: Likewise.
+		* testsuite/gas/loongarch/macro_op_32.d: Likewise.
+		* testsuite/gas/loongarch/macro_op_large_abs.d: Likewise.
+		* testsuite/gas/loongarch/macro_op_large_pc.d: Likewise.
+		* testsuite/gas/loongarch/relax_align.d: New test.
+		* testsuite/gas/loongarch/relax_align.s: New test.
+		* testsuite/gas/loongarch/uleb128.d: New test.
+		* testsuite/gas/loongarch/uleb128.s: New test.
+
+2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: binutils: Add support for linker relaxation.
+	Add support for relocs related to relax to readelf.
+
+	binutils/ChangeLog:
+
+		* readelf.c (target_specific_reloc_handling): Handle ULEB128 reloc.
+		(is_32bit_inplace_add_reloc): Handle new reloc.
+		(is_32bit_inplace_sub_reloc): Likewise.
+		(is_64bit_inplace_add_reloc): Likewise.
+		(is_64bit_inplace_sub_reloc): Likewise.
+		(is_16bit_inplace_add_reloc): Likewise.
+		(is_16bit_inplace_sub_reloc): Likewise.
+		(is_8bit_inplace_add_reloc): Likewise.
+		(is_8bit_inplace_sub_reloc): Likewise.
+		(is_6bit_inplace_sub_reloc): Likewise.
+		(is_6bit_inplace_add_reloc): New function.
+		(apply_relocations): Handle new reloc.
+		* testsuite/binutils-all/readelf.exp: Add -mno-relax option
+		for LoongArch.
+
+2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: opcodes: Add support for linker relaxation.
+	Set gas default to enable relax.
+
+	opcodes/ChangeLog:
+
+		* loongarch-opc.c (struct loongarch_ASEs_option): New member relax
+		with the default value 1.
+
+2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: bfd: Add support for linker relaxation.
+	Add relax support and related relocs in bfd.
+
+	bfd/ChangeLog:
+
+		* bfd-in2.h: Add relocs related to relax.
+		* elfnn-loongarch.c (struct loongarch_elf_link_hash_table): New integer
+		pointer (data_segment_phase) to monitor the data segment phase.
+		(loongarch_elf_check_relocs): Swap B21/B26 reloc sequence.
+		(loongarch_elf_adjust_dynamic_symbol): Fix code format.
+		(loongarch_reloc_rewrite_imm_insn): Fix function call.
+		(perform_relocation): Handle new relocs related to relax.
+		(RELOCATE_CALC_PC32_HI20): Fix code format.
+		(RELOCATE_CALC_PC64_HI32): Likewise.
+		(loongarch_elf_relocate_section): Handle new relocs related to relax.
+		(loongarch_relax_delete_bytes): New function.
+		(loongarch_relax_pcala_addi): Likewise.
+		(loongarch_relax_pcala_ld): Likewise.
+		(bfd_elfNN_loongarch_set_data_segment_info): Likewise.
+		(loongarch_relax_align): Likewise.
+		(loongarch_elf_relax_section): Likewise.
+		(bfd_elfNN_bfd_relax_section): New macro define.
+		* elfxx-loongarch.c (reloc_bits): New bfd point parameter.
+		(reloc_bits_b16): Likewise.
+		(reloc_bits_b21): Likewise.
+		(reloc_bits_b26): Likewise.
+		(loongarch_adjust_reloc_bitsfield): Likewise.
+		(reloc_bits_pcrel20_s2): New function.
+		(loongarch_elf_add_sub_reloc): Likewise.
+		(loongarch_elf_add_sub_reloc_uleb128): Likewise.
+		(loongarch_write_unsigned_leb128): New function.
+		* elfxx-loongarch.h (loongarch_adjust_reloc_bitsfield): New bfd point
+		parameter.
+		(bfd_elf32_loongarch_set_data_segment_info): New declare.
+		(bfd_elf64_loongarch_set_data_segment_info): Likewise.
+		(loongarch_write_unsigned_leb128): Likewise.
+		* libbfd.h: Add relocs related to relax.
+		* reloc.c: Add relocs related to relax.
+
+2023-05-30  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: include: Add support for linker relaxation.
+	Add relocs and gas LARCH_opts.relax option.
+
+	include/ChangeLog:
+
+		* elf/loongarch.h: Add relocs.
+		* opcode/loongarch.h: Add LARCH_opts.relax and macro LARCH_NOP.
+
+2023-05-30  Nick Clifton  <nickc@redhat.com>
+
+	Add support for an ARMMAGIC value of 0xa00 to the PE dumper.
+
+2023-05-30  Alan Modra  <amodra@gmail.com>
+
+	arm-pe objdump -P
+	arm-pe looks to be a very old PE implementation, incompatible with
+	current arm-wince-pe.  arm-pe has different relocations and uses
+	ARMMAGIC which has this comment: "I just made this up".  Well, OK, I
+	don't know the history but it was probably before Microsoft "just made
+	up" their constants for ARM windows CE.
+
+	This patch supports objdump -P for arm-pe, and another magic constant
+	that may appear in object files.  (I don't think binutils generates
+	files using ARMV7PEMAGIC aka IMAGE_FILE_MACHINE_ARMNT.)
+
+		* od-pe.c (is_pe_object_magic): Handle IMAGE_FILE_MACHINE_ARMNT
+		and ARMMAGIC.
+
+2023-05-30  Alan Modra  <amodra@gmail.com>
+
+	Define IMAGE_FILE_MACHINE_ARMNT
+	Same value as ARMV7PEMAGIC.
+	https://learn.microsoft.com/en-us/windows/win32/sysinfo/image-file-machine-constants
+
+		* coff/pe.h (IMAGE_FILE_MACHINE_ARMNT): Define.
+
+2023-05-30  Alan Modra  <amodra@gmail.com>
+
+	Don't define COFF_MAGIC
+	This macro was unused apart from aout/encap.h, which has been deleted.
+
+		* config/tc-arm.h (COFF_MAGIC): Don't define.
+		* config/tc-sh.h (COFF_MAGIC): Don't define.
+		* config/tc-z80.h (COFF_MAGIC): Don't define.
+		* config/tc-z8k.h (COFF_MAGIC): Don't define.
+
+2023-05-30  Alan Modra  <amodra@gmail.com>
+
+	Delete include/aout/encap.h
+	This file is unused and as the header comment says, obsolete.
+
+	Regen binutils POTFILES.in
+	for od-pe.c
+
+2023-05-30  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-29  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix linefeed scrolling in tuiterm
+	I came across a bug in the implementation of line feed in tuiterm, and added a
+	unit test that exposes it.
+
+	Before sending the line feed we have:
+	...
+	Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 3):
+	    0 abcdefgh
+	    1 ijklmnop
+	    2 qrstuvwx
+	    3 yz01234
+	...
+	and after it we have:
+	...
+	Screen Dump (size 8 columns x 4 rows, cursor at column 0, row 1):
+	    0 ijklmnop
+	    1 qrstuvwx
+	    2 yz01234
+	    3 yz01234
+	...
+
+	Note how the cursor started at row 3 and after the line feed ended up at
+	row 1, while it should have stayed in row 3.
+
+	Fix this by moving "incr _cur_row -1" one level up in the loop nest in
+	proc _ctl_0x0a.
+
+	Tested on x86_64-linux.
+
+2023-05-29  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb/mi: fix ^running record with multiple MI interpreters
+	I stumbled on the mi_proceeded and running_result_record_printed
+	globals, which are shared by all MI interpreter instances (it's unlikely
+	that people use multiple MI interpreter instances, but it's possible).
+	After poking at it, I found this bug:
+
+	1. Start GDB in MI mode
+	2. Add a second MI interpreter with the new-ui command
+	3. Use -exec-run on the second interpreter
+
+	This is the output I get on the first interpreter:
+
+	    =thread-group-added,id="i1"
+	    ~"Reading symbols from a.out...\n"
+	    ~"New UI allocated\n"
+	    (gdb)
+	    =thread-group-started,id="i1",pid="94718"
+	    =thread-created,id="1",group-id="i1"
+	    ^running
+	    *running,thread-id="all"
+
+	And this is the output I get on the second intepreter:
+
+	    =thread-group-added,id="i1"
+	    (gdb)
+	    -exec-run
+	    =thread-group-started,id="i1",pid="94718"
+	    =thread-created,id="1",group-id="i1"
+	    *running,thread-id="all"
+
+	The problem here is that the `^running` reply to the -exec-run command
+	is printed on the wrong UI.  It is printed on the first one, it should
+	be printed on the second (the one on which we sent the -exec-run).
+
+	What happens under the hood is that captured_mi_execute_command, while
+	executing a command for the second intepreter, clears the
+	running_result_record_printed and mi_proceeded globals.
+	mi_about_to_proceed then sets mi_proceeded.  Then, mi_on_resume_1 gets
+	called for the first intepreter first.  Since the
+
+	    !running_result_record_printed && mi_proceeded
+
+	condition is true, it prints a ^running, and sets
+	running_result_record_printed.  When mi_on_resume_1 gets called for the
+	second interpreter, running_result_record_printed is already set, so
+	^running is not printed there.
+
+	It took me a while to understand the relationship between these two
+	variables.  I think that in the end, this is what we want to track:
+
+	 1. When executing an MI command, take note if that command causes a
+	    "proceed".  This is done in mi_about_to_proceed.
+	 2. In mi_on_resume_1, if the command indeed caused a "proceed", we want
+	    to output a ^running record.  And we want to remember that we did,
+	    because...
+	 3. Back in captured_mi_execute_command, if we did not output a
+	    ^running, we want to output a ^done.
+
+	Moving those two variables to the mi_interp struture appears to fix it.
+	Only for the interpreter doing the -exec-run command does the
+	running_result_record_printed flag get cleared, and therefore only or
+	that one does the ^running record get printed.
+
+	Add a new test for this, that does pretty much what the reproducer above
+	shows.  Without the fix, the test fails because
+	mi_send_resuming_command_raw never sees the ^running record.
+
+	Change-Id: I63ea30e6cb61a8e1dd5ef03377e6003381a9209b
+	Tested-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
+
+2023-05-29  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-28  Tom de Vries  <tdevries@suse.de>
+
+	[readline] Fix double free in _rl_scxt_dispose
+	Consider the following scenario.  We start gdb in TUI mode:
+	...
+	$ gdb -q -tui
+	...
+	and type ^R which gives us the reverse-isearch prompt in the cmd window:
+	...
+	(reverse-i-search)`':
+	...
+	and then type "foo", right-arrow-key, and ^C.
+
+	In TUI mode, gdb uses a custom rl_getc_function tui_getc.
+
+	When pressing the right-arrow-key, tui_getc:
+	- attempts to scroll the TUI src window, without any effect, and
+	- returns 0.
+
+	The intention of returning 0 is mentioned here in tui_dispatch_ctrl_char:
+	...
+	  /* We intercepted the control character, so return 0 (which readline
+	     will interpret as a no-op).  */
+	  return 0;
+	...
+
+	However, after this 0 is returned by the rl_read_key () call in
+	_rl_search_getchar, _rl_read_mbstring is called, which incorrectly interprets
+	0 as the first part of an utf-8 multibyte char, and tries to read the next
+	char.
+
+	In this state, the ^C takes effect and we run into a double free because
+	_rl_isearch_cleanup is called twice.
+
+	Both these issues need fixing independently, though after fixing the first we
+	no longer trigger the second.
+
+	The first issue is caused by the subtle difference between:
+	- a char array containing 0 chars, which is zero-terminated, and
+	- a char array containing 1 char, which is zero.
+
+	In mbrtowc terms, this is the difference between:
+	...
+	  mbrtowc (&wc, "", 0, &ps);
+	...
+	which returns -2, and:
+	...
+	  mbrtowc (&wc, "", 1, &ps);
+	...
+	which returns 0.
+
+	Note that _rl_read_mbstring calls _rl_get_char_len without passing it an
+	explicit length parameter, and consequently it cannot distinguish between the
+	two, and defaults to the "0 chars" choice.
+
+	Note that the same problem doesn't exist in _rl_read_mbchar.
+
+	Fix this by defaulting to the "1 char" choice in _rl_get_char_len:
+	...
+	-  if (_rl_utf8locale && l > 0 && UTF8_SINGLEBYTE(*src))
+	+  if (_rl_utf8locale && l >= 0 && UTF8_SINGLEBYTE(*src))
+	...
+
+	The second problem happens when the call to _rl_search_getchar in
+	_rl_isearch_callback returns.  At that point _rl_isearch_cleanup has already
+	been called from the signal handler, but we proceed regardless, using a cxt
+	pointer that has been freed.
+
+	Fix this by checking for "RL_ISSTATE (RL_STATE_ISEARCH)" after the call to
+	_rl_search_getchar:
+	...
+	   c = _rl_search_getchar (cxt);
+	+  if (!RL_ISSTATE (RL_STATE_ISEARCH))
+	+    return 1;
+	...
+
+	Tested on x86_64-linux.
+
+	Approved-By: Chet Ramey <chet.ramey@case.edu>
+
+	PR tui/30056
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30056
+
+2023-05-28  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-27  Nelson Chu  <nelson@nelson.ba.rivosinc.com>
+
+	[PR ld/22263][PR ld/25694] RISC-V: Avoid dynamic TLS relocs in PIE.
+	Lots of targets already fixed the TEXTREL problem for TLS in PIE.
+
+	* For PR ld/25694,
+	In the check_reloc, refer to spare and loongarch, they don't need to reserve
+	any local dynamic reloc for TLS LE in pie/pde, and similar to other targets.
+	So it seems like riscv was too conservative to estimate the TLS LE before.
+	Just break and don't goto static_reloc for TLS LE in pie/pde can fix the
+	TEXTREL problem.
+
+	* For PR ld/22263,
+	The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port.
+	So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems
+	also the right way to do the same thing for risc-v.
+
+	On risc-v, fixes
+	FAIL: Build pr22263-1
+
+	RISC-V haven't supported the TLS transitions, so will need the same fix (use
+	bfd_link_dll) in the future.
+
+	bfd/
+		PR ld/22263
+		PR ld/25694
+		* elfnn-riscv.c (riscv_elf_check_relocs): Replace bfd_link_pic with
+		bfd_link_dll for TLS IE.  Don't need to reserve the local dynamic
+		relocation for TLS LE in pie/pde, and report error in pic just like
+		before.
+		(riscv_elf_relocate_section): For TLS GD/IE, use bfd_link_dll rather
+		than !bfd_link_pic in determining the dynamic symbol index.  Avoid
+		the index of -1.
+
+2023-05-27  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-26  Nick Clifton  <nickc@redhat.com>
+
+	Enhance objdump's --private option so that it can display the contents of PE format files.
+	  * od-pe.c: New file: Dumps fields in PE format headers.
+	  * configure.ac (od_vectors): Add objdump_private_desc_pe for PE format targets. (od_files): Add od-pe for PE format targets.
+	  * configure: Regenerate.
+	  * Makefile.am (CFILES): Add od-pe.c (EXTRA_objdump_SOURCE): Likewise.
+	  * Makefile.in: Generate.
+	  * NEWS: Mention the new feature.
+	  * doc/binutils.texi: Document the new support.
+	  * objdump.c (wide_output): Change from local to global.
+	  * objdump.h (wide_output): Prototype. (objdump_private_desc_pe): Prototype.
+	  * testsuite/binutils-all/objdump.exp: Add a test of the new feature.
+
+2023-05-26  Andreas Schwab  <schwab@linux-m68k.org>
+
+	Remove duplicate definition
+		* coff/pe.h (IMAGE_FILE_MACHINE_AMD64): Remove duplicate
+		definition.  Alphabetize.
+
+2023-05-26  Jan Beulich  <jbeulich@suse.com>
+
+	x86: fix disassembler build after 1a3b4f90bc5f
+	In commit 1a3b4f90bc5f ("x86: convert two pointers to (indexing)
+	integers") I neglected the fact that compilers may warn about comparing
+	ptrdiff_t (signed long) with size_t (unsigned long) values. Since just
+	before we've checked that the value is positive, simply add a cast
+	(despite my dislike for casts).
+
+2023-05-26  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add test-case gdb.tui/color-prompt.exp
+	Add a test-case that sets a prompt with color in TUI.
+
+	The line containing the prompt is shown by get_line_with_attrs as follows:
+	...
+	<fg:31>(gdb) <fg:default>
+	...
+
+	The 31 means red, but only for foreground colors, for background colors 41
+	means red.
+
+	Make this more readable by using color names for both foreground and
+	background, such that we have instead:
+	....
+	<fg:red>(gdb) <fg:default>
+	...
+
+	Tested on x86_64-linux.
+
+2023-05-26  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add invisible and blinking attributes in tuiterm
+	I noticed curses using the invisible and blinking attributes.
+
+	Add these in tuiterm.
+
+	Tested on x86_64-linux.
+
+2023-05-26  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix reverse attribute in tuiterm
+	I noticed in proc Term::_csi_m arguments that while parameters 7 and 27 are
+	supposed to set the reverse attribute to 1 and 0, in fact it's set to 1 in
+	both cases:
+	...
+	 		    7 {
+				set _attrs(reverse) 1
+			    }
+	  ...
+			    27 {
+				set _attrs(reverse) 1
+	 		    }
+	...
+
+	Fix this and add a regression test in gdb.tui/tuiterm.exp.
+
+	Tested on x86_64-linux.
+
+2023-05-26  Jan Beulich  <jbeulich@suse.com>
+
+	iamcu: suppress tests which can't possibly work
+	With neither --32 nor --64 passed to gas, advanced features like AVX
+	aren't available without explicitly enabling them.
+
+	x86-64: improve gas diagnostic when no 32-bit target is configured
+	Make this similar to --64 and --x32: Check whether a suitable target
+	exists.
+
+	x86-64: conditionalize tests using --32
+	Using this option doesn't really work when no support for any 32-bit
+	target was configured in (as is the case for at least cloudabi and
+	rdos).
+
+	x86: split gas testsuite .exp file
+	The set of 32-bit-only and 64-bit-only tests has grown quite large. In
+	particular when one's after only the results for the 64-bit set, having
+	them live in a separate .exp file is easier / faster.
+
+	x86: convert two pointers to (indexing) integers
+	This in particular reduces the number of pointers to non-const that we
+	have (and that could potentially be used for undue modification of
+	state). As a result, fetch_code()'s 2nd parameter can then also become
+	pointer-to-const.
+
+2023-05-26  Jan Beulich  <jbeulich@suse.com>
+
+	x86: disassembling over-long insns
+	The present way of dealing with them - misusing MAX_MNEM_SIZE, which has
+	nothing to do with insn length - leads to inconsistent results. Since we
+	allow for up to MAX_CODE_LENGTH - 1 prefix bytes (which then could be
+	followed by another MAX_CODE_LENGTH "normal" insn bytes until we're done
+	decoding), size the_buffer[] accordingly.
+
+	Move struct dis_private down to be able to use MAX_CODE_LENGTH without
+	moving its #define. While doing this also alter the order to have the
+	potentially large array last.
+
+2023-05-26  Jan Beulich  <jbeulich@suse.com>
+
+	x86: use fixed-width type for codep and friends
+	This first of all removes a dependency on bfd_byte and unsigned char
+	being the same types. It further eliminates the need to mask by 0xff
+	when fetching values (which wasn't done fully consistently anyway),
+	improving code legibility.
+
+	While there, where possible add const.
+
+2023-05-26  Jan Beulich  <jbeulich@suse.com>
+
+	x86: figure braces aren't really part of mnemonics
+	Instead they're separators for pseudo-prefixes. Don't insert them in
+	mnemonic_chars[], handling them explicitly in parse_insn() instead. Note
+	that this eliminates the need for another separator after a pseudo-
+	prefix. While maybe not overly interesting for a following real
+	mnemonic, I view this as quite desirable between multiple successive
+	pseudo-prefixes (bringing things in line with the other use of figure
+	braces in AVX512's zeroing-masking).
+
+	Drop the unused is_mnemonic_char() at this occasion.
+
+2023-05-26  Jan Beulich  <jbeulich@suse.com>
+
+	x86: de-duplicate operand_special_chars[] wrt extra_symbol_chars[]
+	Having to add characters to both arrays can easily lead to oversights.
+	Consuming extra_symbol_chars[] when populating operand_chars[] also
+	allows to drop two special cases in md_begin().
+
+	Constify operand_special_chars[] at this occasion.
+
+2023-05-26  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	sframe/doc: minor improvements for readability
+	libsframe/
+		* sframe-spec.texi: Cosmetic fixes.
+
+2023-05-26  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: revisit sframe_find_fre API
+	Inspite of implementing a rather simple functionality, this function was
+	relatively difficult to follow, and maintain.  Some changes are done now
+	to address that - refactor the function and use better names to make it
+	more readable.
+
+	The changes to the implementation do not cause any change in the
+	contract of the API.
+
+	libsframe/
+	        * sframe.c (sframe_fre_get_end_ip_offset): to here...
+	        (sframe_find_fre): Refactor some bits from...
+
+2023-05-26  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: use const char * consistently for immutable FRE buffers
+	libsframe/
+	        * sframe.c (sframe_decode_fre): Use const char * datatype when
+		handling buffer containing the FREs.
+		(sframe_fre_get_end_ip_offset): Likewise.
+		(sframe_find_fre): Likewise.
+		(sframe_decoder_get_fre): Likewise.
+
+	libsframe: use uint8_t data type for FRE info related stubs
+	libsframe/
+		* sframe.c: Use uint8_t for FRE offset count and FRE offset
+		size.  Use uint8_t for FRE info word as well.
+
+2023-05-26  Alan Modra  <amodra@gmail.com>
+
+	PR22263 ld test
+	A number of targets that I test regularly fail the "Build pr22263-1"
+	test for various reasons.
+
+	arm-linux-gnueabi: "undefined reference to `__aeabi_read_tp'"
+	ia64-linux-gnu: "Explicit stops are ignored in auto mode"
+	m68k-linux-gnu: "undefined reference to `__m68k_read_tp'"
+	microblaze-linux-gnu: "undefined reference to `__tls_get_addr'"
+	nios2-linux-gnu, s390-linux-gnu and sh4-linux-gnu have a tprel reloc in .got
+	riscv64-linux-gnu has a dynamic relocation in text
+
+	So only riscv really fails the pr.  The rest fail due to test issues
+	or lack of a linker optimisation.  Lack of an optimisation isn't
+	really a fail, but it's worth keeping the test to ensure those
+	optimisations don't regress.  The xfail targets may not be an
+	exhaustive list.  This just tidies test results for those for which I
+	have cross compilers installed.
+
+		PR 22263
+		* testsuite/ld-elf/tls.exp: Split pr22263 test into two parts,
+		one to check for -z text errors, the other to check tprel
+		linker optimisation.  Supply needed symbols and assembler flags.
+		xfail the linker optimisation on targets known to fail.
+
+2023-05-26  Tom Tromey  <tom@tromey.com>
+
+	Make MI commands const-correct
+	I've had this patch for a while now and figured I'd update it and send
+	it.  It changes MI commands to use a "const char * const" for their
+	argv parameter.
+
+	Regression tested on x86-64 Fedora 36.
+
+	Acked-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-05-26  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-25  Ciaran Woodward  <ciaranwoodward@xmos.com>
+
+	Fix scoped_value_mark not working with empty value chain
+	The scoped_value_mark helper class was setting its internal
+	mark value to NULL to indicate that the value chain had already
+	been freed to mark.
+
+	However, value_mark() also returns NULL if the value chain is
+	empty at the time of call.
+
+	This lead to the situation that if the value chain was empty
+	at the time the scoped_value_mark was created, the class
+	would not correctly clean up the state when it was destroyed,
+	because it believed it had already been freed.
+
+	I noticed this because I was setting a watchpoint very early
+	in my debug session, and it was becoming a software watchpoint
+	rather than hardware. Running any command that called evaluate()
+	beforehand (such as 'x 0') would mean that a hardware watchpoint
+	was correctly used. After some careful examination of the
+	differences in execution, I noticed that values were being freed
+	later in the 'bad case', which lead me to notice the issue with
+	scoped_value_mark.
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: remove breakpoint_pointer_iterator
+	Remove the breakpoint_pointer_iterator layer.  Adjust all users of
+	all_breakpoints and all_tracepoints to use references instead of
+	pointers.
+
+	Change-Id: I376826f812117cee1e6b199c384a10376973af5d
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdbsupport: make filtered_iterator::operator* return the same thing as underlying iterator
+	This is the same idea as the previous patch, but for filtered_iterator.
+	Without this patch, I would see this when applying the patch that
+	removes reference_to_pointer_iterator from breakpoint_range:
+
+	      CXX    breakpoint.o
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c: In function ‘void download_tracepoint_locations()’:
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:11007:41: error: cannot allocate an object of abstract type ‘breakpoint’
+	    11007 |   for (breakpoint &b : all_tracepoints ())
+	          |                                         ^
+	    In file included from /home/smarchi/src/binutils-gdb/gdb/gdbthread.h:26,
+	                     from /home/smarchi/src/binutils-gdb/gdb/infrun.h:21,
+	                     from /home/smarchi/src/binutils-gdb/gdb/gdbarch.h:28,
+	                     from /home/smarchi/src/binutils-gdb/gdb/arch-utils.h:23,
+	                     from /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:21:
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.h:619:8: note:   because the following virtual functions are pure within ‘breakpoint’:
+	      619 | struct breakpoint : public intrusive_list_node<breakpoint>
+	          |        ^~~~~~~~~~
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:250:1: note:     ‘virtual breakpoint::~breakpoint()’
+	      250 | breakpoint::~breakpoint ()
+	          | ^~~~~~~~~~
+
+	Change-Id: I05285ff27d21cb0ab80cba392ec4e959167e3cd7
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdbsupport: make basic_safe_iterator::operator* return the same thing as underlying iterator
+	Using the following patch that removes the reference_to_pointer_iterator
+	from breakpoint_range, I would get:
+
+	      CXX    breakpoint.o
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c: In function ‘void breakpoint_program_space_exit(program_space*)’:
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:3030:46: error: cannot allocate an object of abstract type ‘breakpoint’
+	     3030 |   for (breakpoint &b : all_breakpoints_safe ())
+	          |                                              ^
+	    In file included from /home/smarchi/src/binutils-gdb/gdb/gdbthread.h:26,
+	                     from /home/smarchi/src/binutils-gdb/gdb/infrun.h:21,
+	                     from /home/smarchi/src/binutils-gdb/gdb/gdbarch.h:28,
+	                     from /home/smarchi/src/binutils-gdb/gdb/arch-utils.h:23,
+	                     from /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:21:
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.h:619:8: note:   because the following virtual functions are pure within ‘breakpoint’:
+	      619 | struct breakpoint : public intrusive_list_node<breakpoint>
+	          |        ^~~~~~~~~~
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:250:1: note:     ‘virtual breakpoint::~breakpoint()’
+	      250 | breakpoint::~breakpoint ()
+	          | ^~~~~~~~~~
+
+	This is because the operator* method of the basic_safe_iterator iterator
+	wrapper returns a value_type.  So, even if the method of the underlying
+	iterator (breakpoint_iterator, an intrusive_list iterator) returns a
+	`breakpoint &`, the method of the wrapper returns a `breakpoint`.
+
+	I think it would make sense for iterator wrappers such as
+	basic_safe_iterator to return the exact same thing as the iterator they
+	wrap.  At least, it fixes my problem.
+
+	Change-Id: Ibbcd390ac03d2fb6ae4854923750c8d7c3c04e8a
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: link breakpoints with intrusive_list
+	Change-Id: I043d8d6f3dd864d80d5088f6ffc2c098337249ea
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: remove bp_location_pointer_iterator
+	Remove the bp_location_pointer_iterator layer.  Adjust all users of
+	breakpoint::locations to use references instead of pointers.
+
+	Change-Id: Iceed34f5e0f5790a9cf44736aa658be6d1ba1afa
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: use intrusive_list for breakpoint locations
+	Replace the hand-maintained linked lists of breakpoint locations with
+	and intrusive list.
+
+	 - Remove breakpoint::loc, add breakpoint::m_locations.
+
+	 - Add methods for the various manipulations that need to be done on the
+	   location list, while maintaining reasonably good encapsulation.
+
+	 - bp_location currently has a default constructor because of one use
+	   in hoist_existing_locations.  hoist_existing_locations now returns a
+	   bp_location_list, and doesn't need the default-constructor
+	   bp_location anymore, so remove the bp_location default constructor.
+
+	 - I needed to add a call to clear_locations in delete_breakpoint to
+	   avoid a use-after-free.
+
+	 - Add a breakpoint::last_loc method, for use in
+	   set_breakpoint_condition.
+
+	bp_location_range uses reference_to_pointer_iterator, so that all
+	existing callers of breakpoint::locations don't need to change right
+	now.  It will be removed in the next patch.
+
+	The rest of the changes are to adapt the call sites to use the new
+	methods, of breakpoint::locations, rather than breakpoint::loc directly.
+
+	Change-Id: I25f7ee3d66a4e914a0540589ac414b3b820b6e70
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdbsupport: add missing increment/decrement operators to reference_to_pointer_iterator
+	Using the following patch, I would get this build failure:
+
+	      CXX    breakpoint.o
+	    In file included from /usr/include/c++/13.1.1/bits/stl_algobase.h:66,
+	                     from /usr/include/c++/13.1.1/bits/hashtable_policy.h:36,
+	                     from /usr/include/c++/13.1.1/bits/hashtable.h:35,
+	                     from /usr/include/c++/13.1.1/bits/unordered_map.h:33,
+	                     from /usr/include/c++/13.1.1/unordered_map:41,
+	                     from /usr/include/c++/13.1.1/functional:63,
+	                     from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/ptid.h:35,
+	                     from /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/common-defs.h:206,
+	                     from /home/smarchi/src/binutils-gdb/gdb/defs.h:26,
+	                     from /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:20:
+	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h: In instantiation of ‘constexpr void std::__advance(_BidirectionalIterator&, _Distance, bidirectional_iterator_tag) [with _BidirectionalIterator = reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >; _Distance = long int]’:
+	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h:224:21:   required from ‘constexpr void std::advance(_InputIterator&, _Distance) [with _InputIterator = reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >; _Distance = long int]’
+	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h:237:19:   required from ‘constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type) [with _InputIterator = reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >; typename iterator_traits<_Iter>::difference_type = long int]’
+	    /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:1073:19:   required from here
+	    /usr/include/c++/13.1.1/bits/stl_iterator_base_funcs.h:179:11: error: no match for ‘operator--’ (operand type is ‘reference_to_pointer_iterator<intrusive_list_iterator<bp_location, intrusive_base_node<bp_location> > >’)
+	      179 |           --__i;
+	          |           ^~~~~
+
+	This points out that while intrusive_list_iterator has an operator--,
+	the reference_to_pointer_iterator wrapper does not.  I'm not to sure why
+	the compiler chooses the overload of __advance that accepts a
+	_BidirectionalIterator, given that reference_to_pointer_iterator can't
+	be decremented, but adding those operators seems like the right thing to
+	do in any case, for completeness.
+
+	Change-Id: I8e2044b6734fadf0f21093047cf35bb7080dbdc3
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add breakpoint::first_loc methods
+	Add convenience first_loc methods to struct breakpoint (const and
+	non-const overloads).  A subsequent patch changes the list of locations
+	to be an intrusive_list and makes the actual list private, so these
+	spots would need to change from:
+
+	    b->loc
+
+	to something ugly like:
+
+	    *b->locations ().begin ()
+
+	That would make the code much heavier and not readable.  There is a
+	surprisingly big number of places that access the first location of
+	breakpoints.  Whether this is correct, or these spots fail to consider
+	the possibility of multi-location breakpoints, I don't know.  But
+	anyhow, I think that using this instead:
+
+	 b->first_loc ()
+
+	conveys the intention better than the other two forms.
+
+	Change-Id: Ibbefe3e4ca6cdfe570351fe7e2725f2ce11d1e95
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: add breakpoint "has locations" methods
+	Add three convenience methods to struct breakpoint:
+
+	 - has_locations: returns true if the breakpoint has at least one
+	   location
+	 - has_single_location: returns true if the breakpoint has exactly one
+	   location
+	 - has_multiple_locations: returns true if the breakpoint has more than
+	   one location
+
+	A subsequent patch changes the list of breakpoints to be an
+	intrusive_list, so all these spots would need to change.  But in any
+	case, I think that this:
+
+	  if (b->has_multiple_locations ())
+
+	conveys the intention better than:
+
+	  if (b->loc != nullptr && b->loc->next != nullptr)
+
+	Change-Id: Ib18c3605fd35d425ef9df82cb7aacff1606c6747
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: constify breakpoint::print_it parameter
+	The print_it method itself is const.  In a subsequent patch, the
+	locations that come out of a const breakpoint will be const as well.  It
+	will therefore be needed to make the last_loc output parameter const as
+	well.  Make that change now to reduce the size of the following patches.
+
+	Change-Id: I7ed962950bc9582646e31e2e42beca2a1c9c5105
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: make some breakpoint methods use `this`
+	Some implementations of breakpoint::check_status and
+	breakpoint::print_it do this:
+
+	    struct breakpoint *b = bs->breakpoint_at;
+
+	bs->breakpoint_at is always the same as `this` (we can get convinced by
+	looking at the call sites of check_status and print_it), so it would
+	just be clearer to access fields through `this` instead.
+
+	Change-Id: Ic542a64fcd88e31ae2aad6feff1da278c7086891
+	Reviewed-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: get gdbarch from syscall_catchpoint instead of location
+	I noticed some methods of syscall_catchpoint doing this:
+
+	  struct gdbarch *gdbarch = loc->owner->gdbarch;
+
+	`loc` is the list of locations of this catchpoint.  Logically, the owner
+	the locations are this catchpoint.  So this just ends up getting
+	this->gdbarch.  Remove the unnecessary indirection through the loc.
+
+	syscall_catchpoint::print_recreate does something slightly different,
+	getting its arch from the loc:
+
+	  struct gdbarch *gdbarch = loc->gdbarch;
+
+	I suppose it's always going to be the same arch, so get it from the
+	catchpoint there too.
+
+	Change-Id: I6f6a6f8e0cd7cfb754cecfb6249e71ec12ba4855
+	Reviewed-By: Alexandra Petlanova Hajkova <ahajkova@redhat.com>
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-25  Alan Modra  <amodra@gmail.com>
+
+	PR29189, dlltool delaylibs corrupt float/double arguments
+		PR 29189
+		* dlltool.c (i386_x64_trampoline): Save and restore xmm0-5.  Make
+		use of parameter save area for integer arg regs.  Comment.
+
+2023-05-25  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-24  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdbsupport: add support for references to checked_static_cast
+	Add a checked_static_cast overload that works with references.  A bad
+	dynamic cast with references throws std::bad_cast, it would be possible
+	to implement the new overload based on that, but it seemed simpler to
+	just piggy back off the existing function.
+
+	I found some potential uses of this new overload in amd-dbgapi-target.c,
+	update them to illustrate the use of the new overload.  To build
+	amd-dbgapi-target.c, on needs the amd-dbgapi library, which I don't
+	expect many people to have.  But I have it, and it builds fine here.  I
+	did test the new overload by making a purposely bad cast and it did
+	catch it.
+
+	Change-Id: Id6b6a7db09fe3b4aa43cddb60575ff5f46761e96
+	Reviewed-By: Lancelot SIX <lsix@lancelotsix.com>
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-24  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: fix race in gdb.server/multi-ui-errors.exp
+	After this commit:
+
+	  commit ed32754a8c7919feffc6ddb66ff1c532e4a4d1cd
+	  Date:   Thu Mar 9 10:45:03 2023 +0100
+
+	      [gdb/testsuite] Fix gdb.server/multi-ui-errors.exp for remote target
+
+	I noticed the occasional failure in gdb.server/multi-ui-errors.exp,
+	which looked like this:
+
+	  (gdb) PASS: gdb.server/multi-ui-errors.exp: interact with GDB's main UI
+	  interrupt
+	  (gdb)
+	  Program received signal SIGINT, Interrupt.
+	  0x00007ffff7d501e7 in nanosleep () from /lib64/libc.so.6
+	  FAIL: gdb.server/multi-ui-errors.exp: interrupt (timeout)
+	  PASS: gdb.server/multi-ui-errors.exp: interrupt arrived
+	  p server_pid
+	  $1 = 718174
+	  (gdb) PASS: gdb.server/multi-ui-errors.exp: p server_pid
+
+	This is triggered by this code in gdb.server/multi-ui-errors.exp:
+
+	    gdb_test "interrupt"
+
+	    gdb_test_multiple "" "interrupt arrived" {
+		-re "Program received signal SIGINT, Interrupt\\.\r\n" {
+		    pass $gdb_test_name
+		}
+	    }
+
+	The problem here is that the first interrupt will trigger the prompt
+	to be printed, and then, after some time the inferior will be
+	interrupted.
+
+	However the default pattern for gdb_test includes a '$' end anchor.
+	If expect sees the prompt with nothing following it then everything is
+	fine, and the test passes.
+
+	However, if the interrupt is quick and so what expect sees is this:
+
+	  (gdb)
+	  Program received signal SIGINT, Interrupt.
+	  0x00007ffff7d501e7 in nanosleep () from /lib64/libc.so.6
+
+	In this case the end anchor means that the gdb_test fails to match,
+	and eventually times out.
+
+	Fix this by passing -no-prompt-anchor to gdb_test.
+
+	Reviewed-By: Tom de Vries <tdevries@suse.de>
+
+2023-05-24  Matti Puputti  <matti.puputti@intel.com>
+
+	gdb, infcmd: Support jump command with same line in multiple symtabs
+	If a header file defining a static function is included in multiple source
+	files, each calling the function, and GDB is asked to jump to a line inside
+	that function, there would be multiple locations matching the target.  The
+	solution in this commit is to select the location in the current symtab.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+	Approved-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-24  Tom Tromey  <tromey@adacore.com>
+
+	Add "args" and "env" parameters to DAP launch request
+	This patch augments the DAP launch request with some optional new
+	parameters that let the client control the command-line arguments and
+	the environment of the inferior.
+
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-24  Tom Tromey  <tromey@adacore.com>
+
+	Add attributes and methods to gdb.Inferior
+	This adds two new attributes and three new methods to gdb.Inferior.
+
+	The attributes let Python code see the command-line arguments and the
+	name of "main".  Argument setting is also supported.
+
+	The methods let Python code manipulate the inferior's environment
+	variables.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-24  Andreas Schwab  <schwab@suse.de>
+
+	Remove accidentally added file
+
+2023-05-24  Alan Modra  <amodra@gmail.com>
+
+	Don't optimise bfd_seek to same position
+	It's not worth avoiding an fseek to the same position, and can cause
+	problems if the linker's output file (which is opened "w+") is read,
+	because that can result in writing, reading, then writing again.
+
+	POSIX.1-2017 (IEEE Std 1003.1) says of fopen:
+	"When a file is opened with update mode ('+' as the second or third
+	character in the mode argument), both input and output may be
+	performed on the associated stream. However, the application shall
+	ensure that output is not directly followed by input without an
+	intervening call to fflush() or to a file positioning function
+	(fseek(), fsetpos(), or rewind()), and input is not directly followed
+	by output without an intervening call to a file positioning function,
+	unless the input operation encounters end-of-file."
+
+		* bfdio.c (bfd_seek): Always call iovec->bseek.
+
+2023-05-24  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-23  Tom Tromey  <tromey@adacore.com>
+
+	Handle DAP evaluate request without a frame ID
+	DAP specifies that if an evaluate request does not have a frameID
+	parameter, then the expression is evaluated in the global scope.
+
+2023-05-23  Tom Tromey  <tromey@adacore.com>
+
+	Add global_context parameter to gdb.parse_and_eval
+	This adds a 'global_context' parse_and_eval to gdb.parse_and_eval.
+	This lets users request a parse that is done at "global scope".
+
+	I considered letting callers pass in a block instead, with None
+	meaning "global" -- but then there didn't seem to be a clean way to
+	express the default for this parameter.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-23  Tom Tromey  <tromey@adacore.com>
+
+	Add flags to parse_and_eval
+	This adds a flags parameter to parse_and_eval.
+
+	Add PARSER_LEAVE_BLOCK_ALONE flag
+	This adds a PARSER_LEAVE_BLOCK_ALONE flag, and changes the parse API
+	to respect it.  This flag lets callers avoid any change to the
+	passed-in block and expression PC, letting them specify the context
+	exactly.  In particular, now nullptr can be used to indicate that the
+	parse should not examine any local variables.
+
+	Add PARSER_DEBUG flag
+	This adds a new PARSER_DEBUG constant and changes the parser code to
+	use it.  This lets us make the 'parser_debug' global 'static'.
+
+	Rearrange parser_state
+	This patch mildly rearranges parser_state, moving all the bool fields
+	together.
+
+	Boolify parser_state::comma_terminates
+	parser_state::comma_terminates ought to be boolean, and changing it
+	does not require any other changes.
+
+	Simplify parser_state constructor
+	This simplifies the parser_state constructor by having it accept a
+	parser_flags parameter.
+
+	Introduce and use parser flags
+	This patch adds a new parser_flags type and changes the parser APIs to
+	use it rather than a collection of 'int' and 'bool'.  More flags will
+	be added in subsquent patches.
+
+	Move innermost_block_tracker to expression.h
+	I think parser-defs.h should hold declarations that can be used by
+	parser implementations, whereas expression.h should hold declarations
+	that are used by code that wants to call a parser.  Following this
+	logic, this patch moves innermost_block_tracker to expression.h.
+
+	Avoid forward declaration in parse.c
+	This minorly rearranges parse.c to avoid the need for a forward
+	declaration.
+
+	Implement DAP loadedSources request
+	This implements the DAP loadedSources request, using gdb.execute_mi to
+	avoid having to write another custom Python API.
+
+2023-05-23  Tom Tromey  <tromey@adacore.com>
+
+	Implement gdb.execute_mi
+	This adds a new Python function, gdb.execute_mi, that can be used to
+	invoke an MI command but get the output as a Python object, rather
+	than a string.  This is done by implementing a new ui_out subclass
+	that builds a Python object.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=11688
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-23  Tom Tromey  <tromey@adacore.com>
+
+	Add second mi_parse constructor
+	This adds a second mi_parse constructor.  This constructor takes a
+	command name and vector of arguments, and does not do any escape
+	processing.  This also changes mi_parse::args to handle parse objects
+	created this new way.
+
+	Introduce mi_parse helper methods
+	This introduces some helper methods for mi_parse that handle some of
+	the details of parsing.  This approach lets us reuse them later.
+
+	Introduce "static constructor" for mi_parse
+	Change the mi_parse function to be a static method of mi_parse.  This
+	lets us remove the 'set_args' setter function.
+
+	Change mi_parse_argv to a method
+	This changes mi_parse_argv to be a method of mi_parse.  This is just a
+	minor cleanup.
+
+	Use accessor for mi_parse::args
+	This changes mi_parse::args to be a private member, retrieved via
+	accessor.  It also changes this member to be a std::string.  This
+	makes it simpler for a subsequent patch to implement different
+	behavior for argument parsing.
+
+	Use member initializers in mi_parse
+	This changes mi_parse to use member initializers rather than a
+	constructor.  This is easier to follow.
+
+	Use field_signed from Python MI commands
+	If an MI command written in Python includes a number in its output,
+	currently that is simply emitted as a string.  However, it's
+	convenient for a later patch if these are emitted using field_signed.
+	This does not make a difference to ordinary MI clients.
+
+2023-05-23  Aaron Merey  <amerey@redhat.com>
+
+	gdb/cli-out.c: clear_current_line shouldn't trigger pagination prompt
+	clear_current_line overwrites the current line with chars_per_line
+	blank spaces.  Printing the final space triggers a condition in
+	pager_file::puts that causes lines_printed to be incremented.  If
+	lines_printed becomes greater than or equal to lines_allowed, the
+	pagination prompt will appear if enabled.
+
+	In this case the prompt is unnecessary since after printing the final
+	space clear_current_line immediately moves the cursor to the beginning
+	of the line with '\r'.  A new line isn't actually started, so the prompt
+	ends up being spurious.
+
+	Additionally it's possible for gdb to crash during this pagination prompt.
+	Answering the prompt with 'q' throws an exception intended to bring gdb
+	back to the main event loop.  But since commit 0fea10f32746,
+	clear_current_line may be called under the progress_update destructor.
+	The exception will try to propagate through the destructor, causing an abort.
+
+	To fix this, pagination is disabled for the duration for clear_current_line.
+	clear_current_line is also renamed to clear_progress_notify to help
+	indicate that it is a special purpose function intended for use with
+	do_progress_notify.
+
+	Acked-by: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-23  Michael Matz  <matz@suse.de>
+
+	PR30437 aarch64: make RELA relocs idempotent
+	normally RELA relocs in BFD should not consider the contents of the
+	relocated place.  The aarch64 psABI is even stricter, it specifies
+	(section 5.7.16) that all RELA relocs _must_ be idempotent.
+
+	Since the inception of the aarch64 BFD backend all the relocs have a
+	non-zero src_mask, and hence break this invariant.  It's normally not
+	a very visible problem as one can see it only when the relocated place
+	already contains a non-zero value, which usually only happens sometimes
+	when using 'ld -r' (or as in the testcase when jumping through hoops to
+	generate the relocations).  Or with alternative toolchains that do encode
+	stuff in the relocated places with the assumption that a relocation
+	to that place ignores whatever is there (as they can according to
+	the psABI).
+
+	Golang is such a toolchain and https://github.com/golang/go/issues/39927
+	is ultimately caused by this problem: the testcase testGCData failing
+	is caused by the garbage collection data-structure to describe a type
+	containing pointers to be wrong.  It's wrong because a field that's
+	supposed to contain a file-relative offset (to some gcbits) has a
+	relocation applied and that relocation has an addend which also is
+	already part of the go-produced object file (so the addend is
+	implicitely applied twice).
+
+	bfd/
+		PR ld/30437
+		* elfnn-aarch64.c (elfNN_aarch64_howto_table): Clear src_mask
+		if all relocation descriptors.
+
+	ld/
+		* testsuite/ld-aarch64/rela-idempotent.s: New testcase.
+		* testsuite/ld-aarch64/rela-idempotent.d: New.
+		* testsuite/ld-aarch64/aarch64-elf.exp: Run it.
+
+2023-05-23  Nick Clifton  <nickc@redhat.com>
+
+	Updated Swedish translation for the opcodes directory
+
+2023-05-23  Bruno Larsen  <blarsen@redhat.com>
+
+	gdb/testsuite: change hardcoded assembly in gdb.arch/disp-step-insn-reloc.exp
+	When testing gdb.arch/disp-step-insn-reloc.exp with clang in an x86_64
+	machine, the compiled test case would segfault when returning from
+	the function can_relocate_call, with a suggestion of a broken stack.
+	The example assembly in the commment was the following:
+
+	   f:
+	     MOV $1, %[ok]
+	     JMP end
+	   set_point0:
+	     CALL f ; tracepoint here.
+	   end:
+
+	And the segmentation fault happening at the final "ret" instruction of
+	can_relocate_call.  Looking at the disassembled version of the later
+	half of the important function, we see:
+
+	Clang version (f starting at 11a4):
+	  00000000000011ae <set_point0>:
+	      11ae:       e8 f1 ff ff ff          callq  11a4 <can_relocate_call+0x14>
+	      11b3:       89 45 fc                mov    %eax,-0x4(%rbp)
+	      11b6:       83 7d fc 01             cmpl   $0x1,-0x4(%rbp)
+	      11ba:       0f 85 0a 00 00 00       jne    11ca <set_point0+0x1c>
+	      11c0:       e8 5b 00 00 00          callq  1220 <pass>
+	      11c5:       e9 05 00 00 00          jmpq   11cf <set_point0+0x21>
+	      11ca:       e8 61 00 00 00          callq  1230 <fail>
+	      11cf:       48 83 c4 10             add    $0x10,%rsp
+	      11d3:       5d                      pop    %rbp
+	      11d4:       c3                      retq
+	      11d5:       66 66 2e 0f 1f 84 00    data16 nopw %cs:0x0(%rax,%rax,1)
+	      11dc:       00 00 00 00
+
+	gcc version (f starting at 401125):
+	  000000000040112c <set_point0>:
+	    40112c:       e8 f4 ff ff ff          callq  401125 <can_relocate_call+0x11>
+	    401131:       89 45 fc                mov    %eax,-0x4(%rbp)
+	    401134:       83 7d fc 01             cmpl   $0x1,-0x4(%rbp)
+	    401138:       75 07                   jne    401141 <set_point0+0x15>
+	    40113a:       e8 c7 ff ff ff          callq  401106 <pass>
+	    40113f:       eb 05                   jmp    401146 <set_point0+0x1a>
+	    401141:       e8 c7 ff ff ff          callq  40110d <fail>
+	    401146:       90                      nop
+	    401147:       c9                      leaveq
+	    401148:       c3                      retq
+
+	The epilogue of set_point0 (11cf for clang, 401146 for gcc) is the main
+	difference: GCC's version uses the leaveq instruction, which resets rsp
+	based on rbp, while clang adds the same constant to rsp that it
+	subtracted in the prologue.  Clang fails because the return address that
+	is added by the "call f" instruction isn't accounted for.
+
+	This commit fixes that by adding a return instruction to f, which leaves
+	the rsp as the compilers would expect.
+
+	Approved-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-23  Jan Beulich  <jbeulich@suse.com>
+
+	x86/Intel: address quoted-symbol related FIXMEs
+	If in a "word ptr <address>" or alike construct the "ptr" part is
+	double-quoted, it shouldn't be recognized as the specific keyword we're
+	looking for (just like we don't recognize double-quoted operator or
+	register names anymore). Be careful though to tell closing from opening
+	double-quotes, as a quoted symbol may follow right afterwards.
+
+2023-05-23  Jan Beulich  <jbeulich@suse.com>
+
+	x86: don't recognize quoted symbol names as registers or operators
+	The concept of quoted symbols names was introduced pretty late. Utilize
+	it to allow access to symbols with names matching that of a register (or,
+	in Intel syntax, also an identifier-like operator).
+
+	This is primarily to aid gcc when generating Intel syntax output; see
+	their bug target/53929.
+
+2023-05-23  Zhang, Jun  <jun.zhang@intel.com>
+
+	Support Intel FRED LKGS
+	gas/ChangeLog:
+
+		* NEWS: Support Intel FRED LKGS.
+		* config/tc-i386.c: Add fred lkgs
+		* doc/c-i386.texi: Document .fred, .lkgs.
+		* testsuite/gas/i386/i386.exp: Add FRED LKGS tests
+		* testsuite/gas/i386/x86-64-fred-intel.d: Ditto.
+		* testsuite/gas/i386/x86-64-fred.d: Ditto.
+		* testsuite/gas/i386/x86-64-fred.s: Ditto.
+		* testsuite/gas/i386/x86-64-lkgs-intel.d: Ditto.
+		* testsuite/gas/i386/x86-64-lkgs-inval.l: Ditto.
+		* testsuite/gas/i386/x86-64-lkgs-inval.s: Ditto.
+		* testsuite/gas/i386/x86-64-lkgs.d: Ditto.
+		* testsuite/gas/i386/x86-64-lkgs.s: Ditto.
+
+	opcodes/ChangeLog:
+
+		* i386-dis.c: New entry for fred, lkgs.
+		* i386-gen.c: Add CPU_FRED CPU_LKGS.
+		* i386-init.h : Regenerated.
+		* i386-mnem.h : Regenerated.
+		* i386-opc.h: Add fred, lkgs.
+		* i386-opc.tbl: Add FRED, LKGS instructions.
+		* i386-tbl.h: Regenerated.
+
+2023-05-23  liuhongt  <hongtao.liu@intel.com>
+
+	Revert "Support Intel FRED LKGS"
+	This reverts commit e5a497fe38e0ab19e16bdd9e4b4ed5e4d0056478.
+
+2023-05-23  Zhang, Jun  <jun.zhang@intel.com>
+
+	Support Intel FRED LKGS
+	gas/ChangeLog:
+
+	        * NEWS: Support Intel FRED LKGS.
+	        * config/tc-i386.c: Add fred lkgs
+	        * doc/c-i386.texi: Document .fred, .lkgs.
+	        * testsuite/gas/i386/i386.exp: Add FRED LKGS tests
+	        * testsuite/gas/i386/x86-64-fred-intel.d: Ditto.
+	        * testsuite/gas/i386/x86-64-fred.d: Ditto.
+	        * testsuite/gas/i386/x86-64-fred.s: Ditto.
+	        * testsuite/gas/i386/x86-64-lkgs-intel.d: Ditto.
+	        * testsuite/gas/i386/x86-64-lkgs-inval.l: Ditto.
+	        * testsuite/gas/i386/x86-64-lkgs-inval.s: Ditto.
+	        * testsuite/gas/i386/x86-64-lkgs.d: Ditto.
+	        * testsuite/gas/i386/x86-64-lkgs.s: Ditto.
+
+	opcodes/ChangeLog:
+
+	        * i386-dis.c: New entry for fred, lkgs.
+	        * i386-gen.c: Add CPU_FRED CPU_LKGS.
+	        * i386-init.h : Regenerated.
+	        * i386-mnem.h : Regenerated.
+	        * i386-opc.h: Add fred, lkgs.
+	        * i386-opc.tbl: Add FRED, LKGS instructions.
+	        * i386-tbl.h: Regenerated.
+
+2023-05-23  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-22  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Fix buglet in tui_update_variables
+	I noticed a buglet in tui_update_variables:
+	...
+	   entry = translate (tui_border_kind, tui_border_kind_translate_lrcorner);
+	   if (tui_border_lrcorner != (chtype) entry->value)
+	    {
+	      tui_border_lrcorner = (entry->value < 0) ? ACS_LRCORNER : entry->value;
+	...
+
+	When assigning the new value to tui_border_lrcorner, an entry->value of -1 is
+	taken into account, but not when comparing to the current value of
+	tui_border_lrcorner.
+
+	Fix this by introducing:
+	...
+	  int val = (entry->value < 0) ? ACS_LRCORNER : entry->value;
+	...
+	and using this in both comparison and assignment.
+
+	Tested on x86_64-linux.
+
+2023-05-22  Tom Tromey  <tromey@adacore.com>
+
+	Remove some FIXME comments from DAP
+	I recently added a 'dap' component to bugzilla, and I filed a few bugs
+	there.  This patch removes the corresponding FIXME comments.
+
+	A few such comments still exist.  In at least one case, I have a fix
+	I'll be submitting eventually; in others I think I need to do a bit of
+	investigation to properly file a bug report.
+
+2023-05-22  Richard Bunt  <richard.bunt@linaro.org>
+
+	gdb: add Richard Bunt to gdb/MAINTAINERS
+
+2023-05-22  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add Term::get_line_with_attrs
+	Add a new proc Term::get_line_with_attrs, similar to Term::get_line, that
+	annotates a tuiterm line with the active attributes.
+
+	For instance, the line representing the TUI status window with attribute mode
+	standout looks like this with Term::get_line:
+	...
+	exec No process In: ... L??   PC: ??
+	...
+	but like this with Term::get_line_with_attrs:
+	...
+	<reverse:1>exec No process In: ... L??   PC: ?? <reverse:0>
+	...
+
+	Also add Term::dump_screen_with_attrs, a Term::dump_screen variant that uses
+	Term::get_line_with_attrs instead of Term::get_line.
+
+	Tested by re-running the TUI test-cases (gdb.tui/*.exp and gdb.python/tui*.exp)
+	on x86_64-linux.
+
+2023-05-22  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Factor out Term::_reset_attrs
+	Factor out new proc Term::_reset_attrs.
+
+	Tested by re-running the TUI test-cases (gdb.tui/*.exp and gdb.python/tui*.exp)
+	on x86_64-linux.
+
+2023-05-22  Alan Modra  <amodra@gmail.com>
+
+	Re: readelf: Support SHT_RELR/DT_RELR for -r
+	Revert value of DT_ENCODING to as it was before commit a7fd118627, and
+	adjust readelf.
+
+	include/
+		* elf/common.h (DT_ENCODING): Set back to 32.
+	binutils/
+		* readelf.c (struct filedata): Don't size dynamic_info array
+		using DT_ENCODING.
+
+2023-05-22  Alan Modra  <amodra@gmail.com>
+
+	PowerPC64 report number of stub iterations
+	As a developer it is sometimes useful to know how many times stubs
+	have been resized.  Report the count for users too, in ld --stats.
+
+2023-05-22  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-21  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-20  Alan Modra  <amodra@gmail.com>
+
+	Re: Bug 23686, two segment faults in nm
+	The fix for pr23686 had a hole in the reloc address sanity check,
+	the calculation could overflow.  Note that stabsize is known to be a
+	non-zero multiple of 12 so stabsize - 4 can't underflow.
+
+		PR 23686
+		* syms.c (_bfd_stab_section_find_nearest_line): Correct
+		r->address sanity check.
+
+2023-05-20  Alan Modra  <amodra@gmail.com>
+
+	coffcode.h handle_COMDAT tidy
+	I started down the path of attempting to fix
+	https://sourceware.org/pipermail/binutils/2023-April/127263.html but
+	decided after a while that I didn't want to mess with this code..
+
+	This patch is a just a few things that I thought worth doing, the main
+	one being reporting of errors up the call chain.  The while loop to
+	for loop change is shamelessly stolen from Oleg.
+
+		* coffcode.h (handle_COMDAT): Return bool.  Make sec_flags a
+		flagword*, and adjust to suit.  Replace while loop with for
+		loop.  Check isym.n_numaux before reading aux entries.  Alloc
+		coff_comdat_info and name in one call to bfd_alloc.  Remove
+		goto breakloop.
+		(styp_to_sec_flags): Adjust handle_COMDAT call.
+
+2023-05-20  Alan Modra  <amodra@gmail.com>
+
+	tic54x set_arch_mach
+	The tic54x backend provides its own coff_set_arch_mach, but wants to
+	use the standard coff_set_section_contents.  BFD_JUMP_TABLE_WRITE
+	defines both of these functions, so the code also provides a wrapper
+	for coff_set_section_contents.  This is all quite OK, but I was on a
+	mission to remove unnecessary declarations in coffcode.h, and on
+	deleting the one for coff_set_arch_mach ran into a warning about the
+	function being unused.  I could have kept that declaration with its
+	ATTRIBUTE_UNUSED or written "static bool ATTRIBUTE_UNUSED" on the
+	definition but the latter is not usual and looks odd to me.  So I
+	had a closer look at tic54x_set_arch_mach and decided the function is
+	very likely wrong to allow bfd_arch_unknown.  Thus the backend should
+	be using the standard coff_set_arch_mach.
+
+		* coff-tic54x.c: Use BFD_JUMP_TABLE_WRITE (coff) in target vecs.
+		(tic54x_coff_set_arch_mach): Delete.
+		(tic54x_set_section_contents): Delete.
+		* coffcode.h: Delete unnecessary forward declarations.
+
+2023-05-20  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-19  Tom Tromey  <tromey@adacore.com>
+
+	Update documentation for Python Frame.older and Frame.newer
+	I noticed that Frame.older and Frame.newer don't document that they
+	return None at the ends of the stack.  This patch updates the
+	documentation, and also fixes a somewhat related typo in a comment
+	that I noticed while digging into this.
+
+	Approved-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-19  Jan Beulich  <jbeulich@suse.com>
+
+	ld: drop stray blank from ld.texi
+	At least older makeinfo complains about it. Also fix an apparent typo
+	while touching that line.
+
+2023-05-19  Jan Vrany  <jan.vrany@labware.com>
+
+	gdb: fix post-hook execution for remote targets
+	Commit b5661ff2 ("gdb: fix possible use-after-free when
+	executing commands") attempted to fix possible use-after-free
+	in case command redefines itself.
+
+	Commit 37e5833d ("gdb: fix command lookup in execute_command ()")
+	updated the previous fix to handle subcommands as well by using the
+	original command string to lookup the command again after its execution.
+
+	This fixed the test in gdb.base/define.exp but it turned out that it
+	does not work (at least) for "target remote" and "target extended-remote".
+
+	The problem is that the command buffer P passed to execute_command ()
+	gets overwritten in dont_repeat () while executing "target remote"
+	command itself:
+
+		#0  dont_repeat () at top.c:822
+		#1  0x000055555730982a in target_preopen (from_tty=1) at target.c:2483
+		#2  0x000055555711e911 in remote_target::open_1 (name=0x55555881c7fe ":1234", from_tty=1, extended_p=0)
+		    at remote.c:5946
+		#3  0x000055555711d577 in remote_target::open (name=0x55555881c7fe ":1234", from_tty=1) at remote.c:5272
+		#4  0x00005555573062f2 in open_target (args=0x55555881c7fe ":1234", from_tty=1, command=0x5555589d0490)
+		    at target.c:853
+		#5  0x0000555556ad22fa in cmd_func (cmd=0x5555589d0490, args=0x55555881c7fe ":1234", from_tty=1)
+		    at cli/cli-decode.c:2737
+		#6  0x00005555573487fd in execute_command (p=0x55555881c802 "4", from_tty=1) at top.c:688
+
+	Therefore the second call to lookup_cmd () at line 697 fails to find
+	command because the original command string is gone.
+
+	This commit addresses this particular problem by creating a *copy* of
+	original command string for the sole purpose of using it after command
+	execution to lookup the command again. It may not be the most efficient
+	way but it's safer given that command buffer is shared and overwritten
+	in hard-to-foresee situations.
+
+	Tested on x86_64-linux.
+
+	PR 30249
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30249
+
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-05-19  Richard Bunt  <richard.bunt@linaro.org>
+
+	gdb: Remove redundant frame switching
+	547ce8f00b fixed an issue where dynamic types were not being resolved
+	correctly prior to printing a value. The same issue was discovered when
+	printing the value using mi-mode, which was not covered by the fix.
+	Porting the fix to the mi-mode code path resolved the issue.
+
+	However, it was discovered that a later patch series, ending
+	2fc3b8a4cb8, independently fixed the issue in both the cli- and mi-mode
+	code paths, making the original fix unneeded.
+
+	This commit removes this extra frame switch and adds test coverage for
+	the mi-mode scenario to protect against any future divergence in this
+	area.
+
+	GDB built with GCC 11.
+
+	No test suite regressions detected. Compilers: GCC 12.1.0, ACfL 22.1,
+	Intel 22.1; Platforms: x86_64, aarch64.
+
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-05-19  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: safety checks in skip_prologue_using_sal
+	While working on the previous patch I reverted this commit:
+
+	  commit e86e87f77fd5d8afb3e714f1d9e09e0ff5b4e6ff
+	  Date:   Tue Nov 28 16:23:32 2006 +0000
+
+	          * symtab.c (find_pc_sect_line): Do not return a line before
+	            the start of a symtab.
+
+	When I re-ran the testsuite I saw some GDB crashes in the tests:
+
+	  gdb.dwarf2/dw2-line-number-zero.exp
+	  gdb.dwarf2/dw2-lines.exp
+	  gdb.dwarf2/dw2-vendor-extended-opcode.exp
+
+	GDB was reading beyond the end of an array in the function
+	skip_prologue_using_sal.
+
+	Now, without the above commit reverted I don't believe that this
+	should ever happen.  Reverting the above commit effectively breaks
+	GDB's symtab_and_line lookup, we try to find a result for an address,
+	and return the wrong symtab and line-table.  In
+	skip_prologue_using_sal we then walk the line table looking for an
+	appropriate entry, except we never find one, and GDB just keeps going,
+	wandering off the end of the array.
+
+	However, I think adding extra protection to prevent walking off the
+	end of the array is pretty cheap, and if something does go wrong in
+	the future then this should prevent a random crash.
+
+	Obviously, I have no reproducer for this, as I said, I don't think
+	this should impact GDB at all, this is just adding a little extra
+	caution.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-19  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: test for a function with no line table
+	This commit adds a test for the following commit:
+
+	  commit e86e87f77fd5d8afb3e714f1d9e09e0ff5b4e6ff
+	  Date:   Tue Nov 28 16:23:32 2006 +0000
+
+	              * symtab.c (find_pc_sect_line): Do not return a line before
+	              the start of a symtab.
+
+	We have been carrying a test for that commit in the Fedora GDB tree
+	since that commit was added to GDB.  I don't know why the test wasn't
+	added along with the original commit, but as was written, the test is
+	pretty gross, it uses objcopy to pull the .text section from an object
+	file, which was then injected into another source file within a .asm
+	statement...
+
+	... these days we can just make use of the DWARF assembler to achieve
+	the same results, so I've rewritten the test and think it is worth
+	adding this to upstream GDB.
+
+	The original patch was about about how we find the best symtab and
+	line table entry, and what to do when GDB can't find a good match.
+
+	The new test creates a CU with two functions, only one of which is
+	covered by the line table.  With the above patch reverted GDB returns
+	an invalid address.
+
+	With the above patch reverted I did run the testsuite to see what
+	other tests might already be exercising this functionality, and I
+	found two tests:
+
+	  gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
+	  gdb.dwarf2/dw2-vendor-extended-opcode.exp
+
+	These are pretty similar, they either create minimal, or no line table
+	for one of the functions in the source file, and as a consequence GDB
+	returns an unexpected address at some point during the test.
+
+	However, both of those tests are really focused on other issues, so I
+	think this new test does add some value.  Plus the new test is not
+	large, so it's not a huge cost to also run this new test.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-19  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/breakpoint: use warning function instead of gdb_printf
+	Noticed that in breakpoint.c, in one place, we do this:
+
+	  gdb_printf (_("warning: Error removing "
+	                "breakpoint %d\n"),
+	                old_loc->owner->number);
+
+	Instead of using the `warning` function.  There are a number of
+	differences between using gdb_printf like this and calling `warning`,
+	the main one is probably that real warnings are sent to gdb_stderr,
+	while the above gdb_printf call will go to gdb_stdout.
+
+	In this commit I:
+
+	  1. Change to call `warning`, we can drop the "warning: " prefix from
+	  the string in breakpoint.c,
+
+	  2. Update the warning text, I now start with a lower case 'e', which
+	  I believe is the GDB style for warnings,
+
+	  3. And I have included the address of the bp_location in the warning
+	  messsage,
+
+	  4. Finally, I update all the tests (2) that include this error
+	  message.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-19  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: handle older Python versions in gdb.python/py-disasm.exp
+	It was pointed out on the mailing list that the new tests added in
+	this commit:
+
+	  commit 4de4e48514fc47aeb4ca95cd4091e2a333fbe9e1
+	  Date:   Tue Jan 24 15:35:45 2023 +0000
+
+	      gdb/python: extend the Python Disassembler API to allow for styling
+
+	will fail when GDB is built with Python 3.6 or earlier.  This is
+	because the error that is emitted when a function argument is missing
+	changed in Python 3.7, instead of an error like this:
+
+	  Python Exception <class 'TypeError'>: function missing required argument 'style' (pos 1)
+
+	earlier versions of Python emit:
+
+	  Python Exception <class 'TypeError'>: Required argument 'style' (pos 1) not found
+
+	and the new tests didn't allow for this.
+
+	This commit fixes this by allowing either pattern.  I've tested this
+	building GDB against Python 3.7.9 and 3.6.15, with this commit all
+	tests in gdb.python/py-disasm.exp now pass.
+
+2023-05-19  Kuan-Lin Chen  <rufus@andestech.com>
+
+	RISC-V: Support subtraction of .uleb128.
+	https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/96d6e190e9fc04a8517f9ff7fb9aed3e9876cbd6
+
+	There are some known limitations for now,
+
+	* Do not shrink the length of the uleb128 value, even if the value is reduced
+	after relaxations.  Also reports error if the length grows up.
+
+	* The R_RISCV_SET_ULEB128 needs to be paired with and be placed before the
+	R_RISCV_SUB_ULEB128.
+
+	bfd/
+		* bfd-in2.h: Regenerated.
+		* elfnn-riscv.c (perform_relocation): Perform R_RISCV_SUB_ULEB128 and
+		R_RISCV_SET_ULEB128 relocations.  Do not shrink the length of the
+		uleb128 value, and report error if the length grows up.  Called the
+		generic functions, _bfd_read_unsigned_leb128 and _bfd_write_unsigned_leb128,
+		to encode the uleb128 into the section contents.
+		(riscv_elf_relocate_section): Make sure that the R_RISCV_SET_ULEB128
+		must be paired with and be placed before the R_RISCV_SUB_ULEB128.
+		* elfxx-riscv.c (howto_table): Added R_RISCV_SUB_ULEB128 and
+		R_RISCV_SET_ULEB128.
+		(riscv_reloc_map): Likewise.
+		(riscv_elf_ignore_reloc): New function.
+		* libbfd.h: Regenerated.
+		* reloc.c (BFD_RELOC_RISCV_SET_ULEB128, BFD_RELOC_RISCV_SUB_ULEB128):
+		New relocations to support .uleb128 subtraction.
+	gas/
+		* config/tc-riscv.c (md_apply_fix): Added BFD_RELOC_RISCV_SET_ULEB128
+		and BFD_RELOC_RISCV_SUB_ULEB128.
+		(s_riscv_leb128): Updated to allow uleb128 subtraction.
+		(riscv_insert_uleb128_fixes): New function, scan uleb128 subtraction
+		expressions and insert fixups for them.
+		(riscv_md_finish): Called riscv_insert_uleb128_fixes for all sections.
+	include/
+		* elf/riscv.h ((R_RISCV_SET_ULEB128, (R_RISCV_SUB_ULEB128): Defined.
+	ld/
+		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
+		* testsuite/ld-riscv-elf/uleb128*: New testcase for uleb128 subtraction.
+	binutils/
+		* testsuite/binutils-all/nm.exp: Updated since RISCV supports .uleb128.
+
+2023-05-19  Nelson Chu  <nelson@rivosinc.com>
+
+	RISC-V: Minor improvements for dis-assembler.
+	* Extract all private_data initializations into riscv_init_disasm_info, which
+	called from print_insn_riscv rather than riscv_disassemble_insn.
+
+	* The disassemble_free_target seems like the right place to release all target
+	private_data, also including the internal data structures, like riscv_subsets.
+	Therefore, add a new function, disassemble_free_riscv, to release them for safe.
+
+	opcodes/
+		* disassemble.c (disassemble_free_target): Called disassemble_free_riscv
+		for riscv to release private_data and internal data structures.
+		* disassemble.h: Added extern disassemble_free_riscv.
+		* riscv-dis.c (riscv_init_disasm_info): New function, used to init
+		riscv_private_data.
+		(riscv_disassemble_insn): Moved riscv_private_data initializations
+		into riscv_init_disasm_info.
+		(print_insn_riscv): Called riscv_init_disasm_info to init
+		riscv_private_data once time.
+		(disassemble_free_riscv): New function, used to free the internal data
+		structures, like riscv_subsets.
+
+2023-05-19  Jan Beulich  <jbeulich@suse.com>
+
+	x86: permit all relational operators in insn operands
+	Oddly enough == and != were not permitted, because of '=' not having
+	been listed in operand_special_chars[].
+
+2023-05-19  Jan Beulich  <jbeulich@suse.com>
+
+	x86: further adjust extend-to-32bit-address conditions
+	While a442cac5084e ("ix86: wrap constants") helped address a number of
+	inconsistencies between BFD64 and !BFD64 builds, it has also resulted in
+	certain bogus uses of constants to no longer be warned about. Leverage
+	the md_optimize_expr() hook to adjust when to actually truncate
+	expressions to 32 bits - any involvement of binary expressions (which
+	would be evaluated in 32 bits only when !BFD64) signals the need for
+	doing so. Plain constants (or ones merely subject to unary operators)
+	should remain un-truncated - they would be handled as bignums when
+	!BFD64, and hence are okay to permit.
+
+	To compensate
+	- slightly extend optimize_imm() (to be honest I never understood why
+	  the code being added - or something similar - wasn't there in the
+	  first place),
+	- adjust expectations of the disp-imm-32 testcase (there are now
+	  warnings, as there should be for any code which won't build [warning-
+	  free] when !BFD64, and Disp8/Imm8 are no longer used in the warned
+	  about cases).
+
+2023-05-19  Jan Beulich  <jbeulich@suse.com>
+
+	gas: invoke md_optimize_expr() also for unary expressions
+	Give backends a chance to see these, just as they can see binary ones.
+	Most of those which use this hook already cope with NULL being passed
+	for the left operand (typically because of checking the operator first).
+	Adjust the two which don't.
+
+	Take the opportunity and also document the hook.
+
+2023-05-19  Jan Beulich  <jbeulich@suse.com>
+
+	gas: maintain O_constant signedness in more cases
+	Unary '~' doesn't really produce an unsigned result. Neither does
+	subtraction (unless taking operand values into consideration). And an
+	abstract operator applied to two operands which aren't both unsigned
+	can't be assumed to yield an unsigned result; exceptions are
+	- shifts, where only signedness of the left hand operand matters,
+	- comparisons, which - unlike unary '!' - produce signed results (they
+	  deliver 0 or ~0, as opposed to '!', which yields 0 or 1),
+	- logical operators (yielding 0 or 1 and hence treated like unary '!').
+
+	While doing this (specifically while extending the all/quad testcase),
+	update .quad and .8byte documentation: With 64-bit architectures now
+	being common, it is highly inappropriate to state that these directives
+	unconditionally require bignums.
+
+2023-05-19  Jan Beulich  <jbeulich@suse.com>
+
+	x86: tighten extend-to-32bit-address conditions
+	In a442cac5084e ("ix86: wrap constants") I made the truncation condition
+	too relaxed: Any indication of a mode that's possible with BFD64 only
+	should avoid the truncation. Therefore, like in the other two cases of
+	calls to extend_to_32bit_address(), also check whether we're generating
+	a 64-bit object.
+
+2023-05-19  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-18  Tom Tromey  <tromey@adacore.com>
+
+	Use lower-case in @sc in the documentation
+	Eli pointed out that @sc only produces small caps for lower case
+	letters in its argument, so it's weird to write it using upper-case
+	letters.  This patch fixes the instances I found.
+
+	Approved-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-18  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb.fortran/lbound-ubound.exp: read expected lbound and ubound from function parameters (PR 30414)
+	gdb.fortran/lbound-ubound.exp reads the expected lbound and ubound
+	values by reading some output from the inferior.  This is racy when
+	running on boards where the inferior I/O is on a separate TTY than
+	GDB's, such as native-gdbserver.
+
+	I sometimes see this behavior:
+
+	    (gdb) continue
+	    Continuing.
+
+	    Breakpoint 2, do_test (lb=..., ub=...) at /home/jenkins/workspace/binutils-gdb_master_linuxbuild/platform/jammy-amd64/target_board/nati
+	    ve-gdbserver/src/binutils-gdb/gdb/testsuite/gdb.fortran/lbound-ubound.F90:45
+	    45        print *, ""   ! Test Breakpoint
+	    (gdb) Remote debugging from host ::1, port 37496
+
+	     Expected GDB Output:
+
+	    LBOUND = (-8, -10)
+	    UBOUND = (-1, -2)
+	    APB: Run a test here
+	    APB: Expected lbound '(-8, -10)'
+	    APB: Expected ubound ''
+
+	What happened is that expect read the output from GDB before the output
+	from the inferior, triggering this gdb_test_multiple clause:
+
+	    -re "$gdb_prompt $" {
+	        set found_prompt true
+
+	        if {$found_dealloc_breakpoint
+	            || ($expected_lbound != "" && $expected_ubound != "")} {
+	            # We're done.
+	        } else {
+	            exp_continue
+	        }
+	    }
+
+	So it set found_prompt, but the gdb_test_multiple kept going because
+	found_dealloc_breakpoint is false (this is the flag indicating that the
+	test is finished) and we still don't have expected_lbound and
+	expected_ubound.  Then, expect reads in the inferior I/O, triggering
+	this clause:
+
+	    -re ".*LBOUND = (\[^\r\n\]+)\r\n" {
+	        set expected_lbound $expect_out(1,string)
+	        if {!$found_prompt} {
+	            exp_continue
+	        }
+	    }
+
+	This sets expected_lbound, but since found_prompt is true, we don't do
+	exp_continue, and exit the gdb_test_multiple, without having an
+	expected_ubound.
+
+	Change the test to read the values from the lb and ub function
+	parameters instead.  As far as I understand, this still exercises what
+	we want to test.  These variables contain the return values of the
+	lbound and ubound functions as computed by the program.  We'll use them
+	to check the return values of the lbound and ubound functions as
+	computed by GDB.
+
+	Change-Id: I3c4d3d17d9291870a758a42301d15a007821ebb5
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30414
+
+2023-05-18  Hui Li  <lihui@loongson.cn>
+
+	gdb/elfread.c: Add plt symbol check for _PROCEDURE_LINKAGE_TABLE_
+	In the current code, when execute the following test on LoongArch:
+
+	$ make check-gdb TESTS="gdb.base/gnu-ifunc.exp"
+	 === gdb Summary ===
+
+	 # of expected passes           111
+	 # of unexpected failures       62
+
+	According to IFUNC's working process [1]. first time the IFUNC function
+	is called, the dynamic linker will not simply fill the .got.plt entry
+	with the actual address of IFUNC symbol, it will call the IFUNC resolver
+	function and take the return address, uses it as the sym-bound address
+	and puts it in the .got.plt entry. Initial address in .got.plt entry is
+	not a real function addresss. Depending on the compiler implementation,
+	some different addresses will be filled in. Most architectures will use
+	a .plt entry address to fill in the corresponding .got.plt entry.
+
+	In gdb, elf_gnu_ifunc_resolve_addr() will be called to return a real
+	IFUNC function addresss. First check to see if the real address for
+	the IFUNC symbol has been resolved by the following function:
+
+	elf_gnu_ifunc_resolve_name (const char *name, CORE_ADDR *addr_p)
+	{
+	  if (elf_gnu_ifunc_resolve_by_cache (name, addr_p))
+	    return true;
+
+	  if (elf_gnu_ifunc_resolve_by_got (name, addr_p))
+	    return true;
+
+	  return false;
+	}
+
+	in elf_gnu_ifunc_resolve_by_got(), it gets the contents of the
+	.got.plt entry and determines if the contents is the correct address
+	by calling elf_gnu_ifunc_record_cache(). Based on the IFUNC working
+	principle analysis above, the address filled in the .got.plt entry is
+	not the actual target function address initially, it would be a .plt
+	entry address corresponding symbol like *@plt. In this case, gdb just
+	go back to execute the resolver function and puts the return address
+	in the .got.plt entry. After that, gdb can get a real ifun address via
+	.got.plt entry.
+
+	On LoongArch, initially, each address filled in the .got.plt entries
+	is the first .plt entry address. Some architectures such as LoongArch
+	define the symbol _PROCEDURE_LINKAGE_TABLE_ at the start of the .plt
+	section. This symbol is the first plt entry, so gdb needs to check
+	this symbol in elf_gnu_ifunc_record_cache().
+
+	On LoongArch .got.plt and .plt section as follow:
+
+	$objdump -D gdb/testsuite/outputs/gdb.base/gnu-ifunc/gnu-ifunc-0-0-0
+	...
+	0000000120010008 <.got.plt>:
+	   120010008:   ffffffff        0xffffffff
+	   12001000c:   ffffffff        0xffffffff
+	        ...
+	   120010018:   20004000        ll.w            $zero, $zero, 64(0x40)
+	   12001001c:   00000001        0x00000001
+	   120010020:   20004000        ll.w            $zero, $zero, 64(0x40)
+	   120010024:   00000001        0x00000001
+	   120010028:   20004000        ll.w            $zero, $zero, 64(0x40)
+	   12001002c:   00000001        0x00000001
+	   120010030:   20004000        ll.w            $zero, $zero, 64(0x40)
+	   120010034:   00000001        0x00000001
+
+	...
+	Disassembly of section .plt:
+
+	0000000120004000 <_PROCEDURE_LINKAGE_TABLE_>:
+	   120004000:   1c00018e        pcaddu12i       $t2, 12(0xc)
+	   120004004:   0011bdad        sub.d           $t1, $t1, $t3
+	   120004008:   28c021cf        ld.d            $t3, $t2, 8(0x8)
+	   12000400c:   02ff51ad        addi.d          $t1, $t1, -44(0xfd4)
+	   120004010:   02c021cc        addi.d          $t0, $t2, 8(0x8)
+	   120004014:   004505ad        srli.d          $t1, $t1, 0x1
+	   120004018:   28c0218c        ld.d            $t0, $t0, 8(0x8)
+	   12000401c:   4c0001e0        jirl            $zero, $t3, 0
+
+	0000000120004020 <__libc_start_main@plt>:
+	   120004020:   1c00018f        pcaddu12i       $t3, 12(0xc)
+	   120004024:   28ffe1ef        ld.d            $t3, $t3, -8(0xff8)
+	   120004028:   4c0001ed        jirl            $t1, $t3, 0
+	   12000402c:   03400000        andi            $zero, $zero, 0x0
+
+	0000000120004030 <abort@plt>:
+	   120004030:   1c00018f        pcaddu12i       $t3, 12(0xc)
+	   120004034:   28ffc1ef        ld.d            $t3, $t3, -16(0xff0)
+	   120004038:   4c0001ed        jirl            $t1, $t3, 0
+	   12000403c:   03400000        andi            $zero, $zero, 0x0
+
+	0000000120004040 <gnu_ifunc@plt>:
+	   120004040:   1c00018f        pcaddu12i       $t3, 12(0xc)
+	   120004044:   28ffa1ef        ld.d            $t3, $t3, -24(0xfe8)
+	   120004048:   4c0001ed        jirl            $t1, $t3, 0
+	   12000404c:   03400000        andi            $zero, $zero, 0x0
+	...
+
+	With this patch:
+
+	$make check-gdb TESTS="gdb.base/gnu-ifunc.exp"
+	=== gdb Summary ===
+
+	 #of expected passes            173
+
+	[1] https://sourceware.org/glibc/wiki/GNU_IFUNC
+
+2023-05-18  Alan Modra  <amodra@gmail.com>
+
+	Re: Add section caches to coff_data_type
+	Another thing, section target_index is renumbered in
+	coff_compute_section_file_positions and _bfd_xcoff_bfd_final_link.  I
+	don't know that there is currently any way that the output bfd
+	section_by_target_index could be populated before this point but
+	clear them out so no one need worry about it.
+
+		* coffcode.h (coff_compute_section_file_positions): Clear
+		section_by_target_index hash table when changing target_index.
+		(_bfd_xcoff_bfd_final_link): Likewise.
+
+2023-05-18  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix whitespace and indentation in lib/tuiterm.exp
+	I noticed a trailing whitespace and some indentation errors in lib/tuiterm.exp.
+
+	Fix these.
+
+	Tested by re-running the TUI test-cases (gdb.tui/*.exp and gdb.python/tui*.exp)
+	on x86_64-linux.
+
+2023-05-18  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: testsuite: add tests for sframe_get_funcdesc_with_addr API
+	sframe_get_funcdesc_with_addr API is currently used internally by the
+	sframe_find_fre ().
+
+	In this test, we create three dummy SFrame FDEs with 4 FREs each.  Then,
+	we use few negative tests to lookup FREs with PCs not in the range of
+	PCs covered by the FDEs, ensuring graceful return from
+	sframe_get_funcdesc_with_addr in all cases.  Some positive tests are
+	also added that exercise further scenarios as well.
+
+	libsframe/
+		* Makefile.in: Regenerated.
+		* testsuite/libsframe.find/find.exp: Include new test.
+		* testsuite/libsframe.find/findfunc-1.c: New Test.
+		* testsuite/libsframe.find/local.mk: Include new test.
+
+2023-05-18  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: testsuite: add new tests for sframe_find_fre API
+	libsframe provides an API to find the FRE associated with a given PC in
+	the program.  This patch adds a direct test of this API.
+
+	In this test, we create two dummy SFrame FDEs with 4 FREs each.  Then we
+	test that sframe_find_fre () works for the first, second, third and the
+	last FRE from one of the FDEs.  Such a test ensures better regression
+	testing for the sframe_find_fre () function which is going to be the
+	bread and butter of an SFrame based stack tracer.
+
+	libsframe/
+		* Makefile.in: Regenerated.
+		* testsuite/libsframe.find/find.exp: New test.
+		* testsuite/libsframe.find/findfre-1.c: New test.
+		* testsuite/libsframe.find/local.mk: Build new test.
+		* testsuite/local.mk: Include libsframe.find.
+
+2023-05-18  Alan Modra  <amodra@gmail.com>
+
+	Re: Add section caches to coff_data_type
+	Commit 0e759f232b6d regressed these tests:
+	rs6000-aix7.2  +FAIL: Garbage collection test 1 (32-bit)
+	rs6000-aix7.2  +FAIL: Garbage collection test 1 (64-bit)
+	rs6000-aix7.2  +FAIL: Glink test 1 (32-bit)
+	rs6000-aix7.2  +FAIL: Glink test 1 (64-bit)
+
+	Investigation showed segfaults in coff_section_from_bfd_index called
+	by xcoff_write_global_symbol due to the hash table pointer being
+	NULL.  Well, yes, the hash table isn't initialised for the output bfd.
+	mkobject_hook is the wrong place to do that.
+
+		* coffcode.h: Revert 0e759f232b6d changes.
+		* peicode.h: Likewise.
+		* coff-x86_64.c (htab_hash_section_index, htab_eq_section_index):
+		Moved here from coffcode.h.
+		(coff_amd64_rtype_to_howto): Create section_by_index htab.
+		* coffgen.c (htab_hash_section_target_index),
+		(htab_eq_section_target_index): Moved here from coffcode.h.
+		(coff_section_from_bfd_index): Create section_by_target_index
+		htab.  Stash newly created sections in htab.
+
+2023-05-18  Alan Modra  <amodra@gmail.com>
+
+	PR11601, Solaris assembler compatibility doesn't work
+	Well, it doesn't work on x86 or ppc, which both have # starting
+	comments anywhere on a line.  I think it is therefore only useful on
+	sparc.
+
+		PR 11601
+		* config/obj-elf.c (obj_elf_section_word): Only compile for sparc.
+		(obj_elf_section): Only support solaris .section directive on
+		sparc.
+		* doc/as.texi (Section): Mention that solaris .section
+		directive is only supported for sparc.
+
+2023-05-18  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-17  Tom Tromey  <tom@tromey.com>
+
+	Special case "&str" in Rust parser
+	"&str" is an important type in Rust -- it's the type of string
+	literals.  However, the compiler puts it in the DWARF in a funny way.
+	The slice itself is present and named "&str".  However, the Rust
+	parser doesn't look for types with names like this, but instead tries
+	to construct them from components.  In this case it tries to make a
+	pointer-to-"str" -- but "str" isn't always available, and in any case
+	that wouldn't yield the best result.
+
+	This patch adds a special case for &str.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=22251
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-17  Luca Bacci  <luca.bacci@outlook.com>
+
+	Decorated symbols in import libs (BUG 30421)
+	  PR 30421
+	  * cofflink.c (_decoration_hash_newfunc): New function. (_bfd_coff_link_hash_table_init): Call it.
+	  * libcoff-in.h (struct coff_link_hash_table): Add decoration_hash field. (struct decoration_hash_entry): Declare. (_decoration_hash_newfunc): Prototype.
+	  * libcoff.h: Regenerate.
+
+	  * emultempl/pe.em (set_decoration): New function. (pe_fixup_stdcalls): Call the new function.
+	  * emultempl/pep.em (set_decoration): New function. (pep_fixup_stdcalls): Call the new function.
+	  * pe-dll.c (make_one): Check for decoated symbols.
+
+2023-05-17  Alan Modra  <amodra@gmail.com>
+
+	PR29961, plugin-api.h: "Could not detect architecture endianess"
+	Found when attempting to build binutils on sparc sunos-5.8 where
+	sys/byteorder.h defines _BIG_ENDIAN but not any of the BYTE_ORDER
+	variants.  This patch adds the extra tests to cope with the old
+	machine, and tidies the header a little.
+
+		PR 29961
+		plugin-api.h: When handling non-gcc or gcc < 4.6.0 include
+		necessary header files before testing macros.  Make more use
+		of #elif.  Test _LITTLE_ENDIAN and _BIG_ENDIAN in final tests.
+
+2023-05-17  Alan Modra  <amodra@gmail.com>
+
+	gcc-4.5 build fixes
+	Trying to build binutils with an older gcc currently fails.  Working
+	around these gcc bugs is not onerous so let's fix them.
+
+	bfd/
+		* elf32-csky.c (csky_elf_size_dynamic_sections): Don't type-pun
+		pointer.
+		* elf32-rl78.c (rl78_compute_complex_reloc): Rename "stat"
+		variable to "status".
+	gas/
+		* compress-debug.c (compress_finish): Supply all fields in
+		ZSTD_inBuffer initialisation.
+	include/
+		* xtensa-dynconfig.h (xtensa_isa_internal): Delete unnecessary
+		forward declaration.
+	opcodes/
+		* loongarch-opc.c: Supply all fields of zero struct initialisation
+		in various opcode tables.
+
+2023-05-17  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+	gprofng: include a new function in the right place
+	Static function name is not available in stripped libraries.
+	In this case, gprofng maps PC to a fake function like <static>@0xPC (<libname>).
+	Sometimes gprofng creates two functions instead of one.
+	Also FUNC_FLAG_SIMULATED is needed for these fake functions.
+
+	gprofng/ChangeLog
+	2023-05-11  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>
+
+		* src/LoadObject.cc (LoadObject::find_function): Set FUNC_FLAG_SIMULATED.
+		Include a new function in the right place.
+
+2023-05-16  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Don't show line number for lines not in source file
+	Currently, for a source file containing only 5 lines, we also show line
+	numbers 6 and 7 if they're in scope of the source window:
+	...
+	    0 +-compact-source.c----------------+
+	    1 |___3_{                           |
+	    2 |___4_  return 0;                 |
+	    3 |___5_}                           |
+	    4 |___6_                            |
+	    5 |___7_                            |
+	    6 +---------------------------------+
+	...
+
+	Fix this by not showing line numbers not in a source file, such that we have instead:
+	...
+	    0 +-compact-source.c----------------+
+	    1 |___3_{                           |
+	    2 |___4_  return 0;                 |
+	    3 |___5_}                           |
+	    4 |                                 |
+	    5 |                                 |
+	    6 +---------------------------------+
+	...
+
+	Tested on x86_64-linux.
+
+	Suggested-By: Simon Marchi <simon.marchi@efficios.com>
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-05-16  Nick Clifton  <nickc@redhat.com>
+
+	Document how to use the linker to create a resource only DLL.
+	  PR 30359
+	  * ld.texi (WIN32): Document how to create a resource only DLL.
+
+2023-05-16  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+
+	Add section caches to coff_data_type
+	  * libcoff-in.h (struct coff_tdata): Add section_by_index and section_by_target_index hash tables.
+	  * libcoff.h: Regenerate.
+	  * coffcode.h (htab_hash_section_index): New function. (htab_eq_section_index): New function. (htab_hash_section_target_index): New function. (htab_eq_section_target_index): New function. (coff_mkobject_hool): Create the hash tables.
+	  * peicode.h: Add the same new functions. (pe_mkobject_hook): Create the hash tables.
+	  * coff-x86_64.c (coff_amd64_rtype_to_howto): Use the new tables to speed up lookups.
+	  * coffgen.c (coff_section_from_bfd_index): Likewise. (_bfd_coff_close_and_cleanup): Delete the hash tables.
+
+2023-05-16  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+	Update comments for the gdb/24331 fix.
+	Approved-by: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-16  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: fix formatting of gdb.python/py-disasm.py
+	Run black on gdb.python/py-disasm.py file and commit the changes.
+
+2023-05-16  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: make gdb_supported_languages a caching proc
+	Rewrite gdb_supported_languages as a caching proc that actually
+	queries GDB for the list of supported languages, rather than just
+	containing a hard-coded list of languages.
+
+	There's only one test that uses this proc right now,
+	gdb.python/py-function.exp, and that still passes after this change,
+	with no changes in the test names.
+
+2023-05-16  Nick Clifton  <nickc@redhat.com>
+
+	-Ur option documentation
+	  * ld.texi (-Ur): Clarify the actions of this option.
+
+2023-05-16  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: fix regressions in break-main-file-remove-fail.exp
+	After this commit:
+
+	  commit a68f7e9844208ad8cd498f89b5100084ece7d0f6
+	  Date:   Tue May 9 10:28:42 2023 +0100
+
+	      gdb/testsuite: extend special '^' handling to gdb_test_multiple
+
+	buildbot notified me of a regression on s390 in the test:
+
+	  gdb.base/break-main-file-remove-fail.exp
+
+	the failure looks like this:
+
+	  print /d ((int (*) (void *, size_t)) munmap) (16781312, 4096)
+	  warning: Error removing breakpoint 0
+	  $2 = 0
+	  (gdb) FAIL: gdb.base/break-main-file-remove-fail.exp: cmdline: get integer valueof "((int (*) (void *, size_t)) munmap) (16781312, 4096)"
+
+	On the mailing list it has been reported that this failure also
+	impacts arm, aarch64, and possibly ppc/ppc64 too.
+
+	The above commit changed get_integer_valueof so that no output is
+	expected between the command and the '$2 = 0' line.  In this case the
+	'warning: Error removing breakpoint 0' output is causing the
+	get_integer_valueof call to fail.
+
+	The reason for this warning is that this test deliberately calls
+	munmap on a page of the inferior's code.  The test is checking that
+	GDB can handle the situation where a s/w breakpoint can't be
+	removed (due to the page no longer being readable/writable).
+
+	The test that is supposed to trigger the warning is later in the test
+	script when we delete a breakpoint.
+
+	So why do some targets trigger the warning earlier during the inferior
+	call?
+
+	The impacted targets use AT_ENTRY_POINT as their strategy for handling
+	inferior calls, that is, the trampoline that calls the inferior
+	function is placed at the program's entry point, e.g. often the _start
+	label.
+
+	If this location happens to be on the same page as the page that the
+	test script unmaps then, when the inferior function call returns, GDB
+	will not be able to remove the temporary breakpoint that is inserted
+	to catch the inferior function call returning!  As a result we end up
+	seeing the warning earlier than expected.
+
+	I did wonder if this means I should relax the pattern in
+	get_integer_valueof - just accept that there might be additional
+	output from GDB which we should ignore.
+
+	However, I don't think this the right way to go.  With the change in
+	a68f7e984420 we are now stricter for GDB emitting additional,
+	unexpected, output, and I think that is a good thing.
+
+	So, I think, in this case, in order to handle the possible extra
+	output, we should implement something like get_integer_valueof
+	directly in the gdb.base/break-main-file-remove-fail.exp test script.
+	This local version will handle the possible warning output.
+
+	After this the test should pass again on the impacted targets.
+
+2023-05-16  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/python: extend the Python Disassembler API to allow for styling
+	This commit extends the Python Disassembler API to allow for styling
+	of the instructions.
+
+	Before this commit the Python Disassembler API allowed the user to do
+	two things:
+
+	  - They could intercept instruction disassembly requests and return a
+	    string of their choosing, this string then became the disassembled
+	    instruction, or
+
+	  - They could call builtin_disassemble, which would call back into
+	    libopcode to perform the disassembly.  As libopcode printed the
+	    instruction GDB would collect these print requests and build a
+	    string.  This string was then returned from the builtin_disassemble
+	    call, and the user could modify or extend this string as needed.
+
+	Neither of these approaches allowed for, or preserved, disassembler
+	styling, which is now available within libopcodes for many of the more
+	popular architectures GDB supports.
+
+	This commit aims to fill this gap.  After this commit a user will be
+	able to do the following things:
+
+	  - Implement a custom instruction disassembler entirely in Python
+	    without calling back into libopcodes, the custom disassembler will
+	    be able to return styling information such that GDB will display
+	    the instruction fully styled.  All of GDB's existing style
+	    settings will affect how instructions coming from the Python
+	    disassembler are displayed in the expected manner.
+
+	  - Call builtin_disassemble and receive a result that represents how
+	    libopcode would like the instruction styled.  The user can then
+	    adjust or extend the disassembled instruction before returning the
+	    result to GDB.  Again, the instruction will be styled as expected.
+
+	To achieve this I will add two new classes to GDB,
+	DisassemblerTextPart and DisassemblerAddressPart.
+
+	Within builtin_disassemble, instead of capturing the print calls from
+	libopcodes and building a single string, we will now create either a
+	text part or address part and store these parts in a vector.
+
+	The DisassemblerTextPart will capture a small piece of text along with
+	the associated style that should be used to display the text.  This
+	corresponds to the disassembler calling
+	disassemble_info::fprintf_styled_func, or for disassemblers that don't
+	support styling disassemble_info::fprintf_func.
+
+	The DisassemblerAddressPart is used when libopcodes requests that an
+	address be printed, and takes care of printing the address and
+	associated symbol, this corresponds to the disassembler calling
+	disassemble_info::print_address_func.
+
+	These parts are then placed within the DisassemblerResult when
+	builtin_disassemble returns.
+
+	Alternatively, the user can directly create parts by calling two new
+	methods on the DisassembleInfo class: DisassembleInfo.text_part and
+	DisassembleInfo.address_part.
+
+	Having created these parts the user can then pass these parts when
+	initializing a new DisassemblerResult object.
+
+	Finally, when we return from Python to gdbpy_print_insn, one way or
+	another, the result being returned will have a list of parts.  Back in
+	GDB's C++ code we walk the list of parts and call back into GDB's core
+	to display the disassembled instruction with the correct styling.
+
+	The new API lives in parallel with the old API.  Any existing code
+	that creates a DisassemblerResult using a single string immediately
+	creates a single DisassemblerTextPart containing the entire
+	instruction and gives this part the default text style.  This is also
+	what happens if the user calls builtin_disassemble for an architecture
+	that doesn't (yet) support libopcode styling.
+
+	This matches up with what happens when the Python API is not involved,
+	an architecture without disassembler styling support uses the old
+	libopcodes printing API (the API that doesn't pass style info), and
+	GDB just prints everything using the default text style.
+
+	The reason that parts are created by calling methods on
+	DisassembleInfo, rather than calling the class constructor directly,
+	is DisassemblerAddressPart.  Ideally this part would only hold the
+	address which the part represents, but in order to support backwards
+	compatibility we need to be able to convert the
+	DisassemblerAddressPart into a string.  To do that we need to call
+	GDB's internal print_address function, and to do that we need an
+	gdbarch.
+
+	What this means is that the DisassemblerAddressPart needs to take a
+	gdb.Architecture object at creation time.  The only valid place a user
+	can pull this from is from the DisassembleInfo object, so having the
+	DisassembleInfo act as a factory ensures that the correct gdbarch is
+	passed over each time.  I implemented both solutions (the one
+	presented here, and an alternative where parts could be constructed
+	directly), and this felt like the cleanest solution.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-16  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/python: rework how the disassembler API reads the result object
+	This commit is a refactor ahead of the next change which will make
+	disassembler styling available through the Python API.
+
+	Unfortunately, in order to make the styling support available, I think
+	the easiest solution is to make a very small change to the existing
+	API.
+
+	The current API relies on returning a DisassemblerResult object to
+	represent each disassembled instruction.  Currently GDB allows the
+	DisassemblerResult class to be sub-classed, which could mean that a
+	user tries to override the various attributes that exist on the
+	DisassemblerResult object.
+
+	This commit removes this ability, effectively making the
+	DisassemblerResult class final.
+
+	Though this is a change to the existing API, I'm hoping this isn't
+	going to cause too many issues:
+
+	  - The Python disassembler API was only added in the previous release
+	    of GDB, so I don't expect it to be widely used yet, and
+
+	  - It's not clear to me why a user would need to sub-class the
+	    DisassemblerResult type, I allowed it in the original patch
+	    because at the time I couldn't see any reason to NOT allow it.
+
+	Having prevented sub-classing I can now rework the tail end of the
+	gdbpy_print_insn function; instead of pulling the results out of the
+	DisassemblerResult object by calling back into Python, I now cast the
+	Python object back to its C++ type (disasm_result_object), and access
+	the fields directly from there.  In later commits I will be reworking
+	the disasm_result_object type in order to hold information about the
+	styled disassembler output.
+
+	The tests that dealt with sub-classing DisassemblerResult have been
+	removed, and a new test that confirms that DisassemblerResult can't be
+	sub-classed has been added.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-16  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-15  Tom Tromey  <tom@tromey.com>
+
+	Correctly handle forward DIE references in scanner
+	The cooked index scanner has special code to handle forward DIE
+	references.  However, a bug report lead to the discovery that this
+	code does not work -- the "deferred_entry::spec_offset" field is
+	written to but never used, i.e., the lookup is done using the wrong
+	key.
+
+	This patch fixes the bug and adds a regression test.
+
+	The test in the bug itself used a thread_local variable, which
+	provoked a failure at runtime.  This test instead uses "maint print
+	objfiles" and then inspects to ensure that the entry in question has a
+	parent.  This lets us avoid a clang dependency in the test.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30271
+
+2023-05-15  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: Fix PLT entry generate bug
+	If a function symbol only get its address by la.global, without
+	directly called by bl instruction, the PLT entry is not required.
+
+	bfd/ChangeLog:
+
+		* elfnn-loongarch.c (loongarch_elf_adjust_dynamic_symbol): Fix PLT
+		entry generate bug.
+
+	ld/ChangeLog:
+
+		* testsuite/ld-elf/shared.exp: Clear xfail for LoongArch.
+
+2023-05-15  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-14  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-13  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+	Fix bad interaction between element limit and repeated values (BZ#24331).
+	Currently
+
+	  print -elements=3 -- "AAAAAA"
+
+	prints complete string, which is not what the user asked for.
+
+	Fix two buggy tests exposed by the fix, and add a new test.
+
+	Reviewed-by: Keith Seitz <keiths@redhat.com>
+
+2023-05-13  Alan Modra  <amodra@gmail.com>
+
+	PR28955 mips gas segfault
+	Testing for NULL in pic_need_relax fixes the other call to this
+	function in md_estimate_size_before_relax.
+
+		PR 28955
+		* config/tc-mips.c (mips_frob_file): Move NULL sym test to..
+		(pic_need_relax): ..here.
+
+2023-05-13  Alan Modra  <amodra@gmail.com>
+
+	PR28902, -T script with INSERT ordering
+	The answer to PR28902 may be deduced from the existing INSERT
+	documentation that says the default script is parsed after the -T
+	INSERT script, if you assume (correctly) that nothing special is done
+	when inserting into -T scripts overriding the default script.  In both
+	cases INSERT handling looks for the specified output section later on
+	the internal list of parsed script commands.  This isn't obvious
+	though, so make the ordering explicit, and mention that section
+	assignments are the same too.
+
+		PR 28902
+		* ld.texi (INSERT): Specify ordering when -T is used both to
+		override the default script and to augment.
+
+2023-05-13  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-12  Tom Tromey  <tromey@adacore.com>
+
+	Fix regression due to Pragma Import series
+	A co-worker here at AdaCore discovered that the Pragma Import series
+	caused a rgression.  When debugging gnat1, gdb started asking for
+	overload resolution like:
+
+	(gdb) call pp(n)
+	Multiple matches for pp
+	[0] cancel
+	[1] pp (types.union_id) at ../../gcc/gcc/ada/treepr.adb:511
+	[2] treepr.pp (types.union_id) at ../../gcc/gcc/ada/treepr.adb:511
+
+	This worked before the series, and is strange anyway, because the
+	matches refer to the same function.
+
+	This patch adds a test case for this situation and fixes the bug by
+	pruning identical functions in remove_extra_symbols.
+
+2023-05-12  Tom Tromey  <tromey@adacore.com>
+
+	Use bool and early loop exit in remove_extra_symbols
+	This changes remove_extra_symbols to use bool rather than int, and
+	changes the nested loops to exit early when "remove_p" is set.
+
+	Use reference parameter in remove_extra_symbols
+	Changing ada-lang.c:remove_extra_symbols to take a reference parameter
+	makes the code a bit easier to read, by replacing "(*syms)" with plain
+	"syms".
+
+	Handle Ada Pragma Import and Pragma Export
+	Ada can import C APIs and also export Ada constructs to C via Pragma
+	Import and Pragma Export.  This patch adds support for these to gdb,
+	by arranging to either defer some aspects of a symbol to the
+	underlying C symbol (for Import) or by introducing a second symbol
+	(for Export).  A somewhat tricky approach is needed, both because gdb
+	doesn't generally handle symbol aliasing, and because Ada treats
+	symbol names in an unusual way (as compared to the rest of gdb).
+
+	Introduce symbol_block_ops::get_block_value
+	This adds a new callback to symbol_block_ops.  This callback lets a
+	LOC_BLOCK symbol implement its own function to find the underlying
+	block.
+
+	Define symbol::value_block separately
+	This moves the definition of symbol::value_block outside of the class.
+	A subsequent patch will change this method to use SYMBOL_BLOCK_OPS,
+	and it seemed simplest to move this method out-of-line, and cleaner to
+	do this as a separate change.
+
+	Bump MAX_SYMBOL_IMPLS
+	A subsequent patch will introduce more aclass registrations, causing
+	the number to go over the current maximum.  This bumps the number.
+	Note that there's a separate static assert that ensures that this
+	number doesn't get too large for the field size in the symbol.
+
+	Introduce lookup_minimal_symbol_linkage
+	This introduces a new function, lookup_minimal_symbol_linkage, and
+	refactors a couple other existing functions to call it.  This function
+	will be used in a subsequent patch.
+
+2023-05-12  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: remove unnecessary call to std::string constructor
+	I spotted this explicit call to std::string, which creates an
+	unnecessary temporary extra std::string, while calling emplace_back.
+	I'm not sure if it has any impact in an optimized build, maybe the
+	compiler elides it.  But still, it's unnecessary.
+
+	Change-Id: I873337ea91db29ac06267aff8fc12dcf52824cac
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-05-12  Tom Tromey  <tromey@adacore.com>
+
+	Add dynamic_prop::is_constant
+	I noticed many spots checking whether a dynamic property's kind is
+	PROP_CONST.  Some spots, I think, are doing a slightly incorrect check
+	-- checking for != PROP_UNDEFINED where == PROP_CONST is actually
+	required, the key thing being that const_val may only be called for
+	PROP_CONST properties.
+
+	This patch adds dynamic::is_constant and then updates these checks to
+	use it.
+
+	Regression tested on x86-64 Fedora 36.
+
+2023-05-12  Tom Tromey  <tromey@adacore.com>
+
+	Implement DAP register scope
+	I noticed that gdb's DAP code did not provide a way to see register
+	values.  DAP defines a "register" scope, which this patch implements.
+	This patch also adds the missing (and optional) "presentationHint" to
+	scopes.
+
+2023-05-12  Tom Tromey  <tromey@adacore.com>
+
+	Fix calling debuginfo-less functions in Ada
+	A co-worker at AdaCore noticed that calling a function without
+	debuginfo yields:
+
+	(gdb) print plus_one(23)
+	'pck.plus_one' has unknown return type; cast the call to its declared return type
+
+	However, this also happens if you follow the directions and add the
+	cast.
+
+	This patch fixes the problem and adds a regression test.
+
+2023-05-12  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/python: implement DisassemblerResult.__str__ method
+	Add the DisassemblerResult.__str__ method.  This gives the same result
+	as the DisassemblerResult.string attribute, but can be useful
+	sometimes depending on how the user is trying to print the object.
+
+	There's a test for the new functionality.
+
+2023-05-12  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/python: implement __repr__ methods for py-disasm.c types
+	Add a __repr__ method for the DisassembleInfo and DisassemblerResult
+	types, and add some tests for these new methods.
+
+2023-05-12  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/doc: improve Python Disassembler API documentation
+	Some small improvements to the Python Disassembler API documentation:
+
+	  * Be consistent about using the package scope in the @deftp lines,
+
+	  * Rework the description of the DisassemblerResult class to include
+	    mention of builtin_disassemble.
+
+2023-05-12  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: extend special '^' handling to gdb_test_multiple
+	The commit:
+
+	  commit 08ec06d6440745ef9204d39197aa1e732df41056
+	  Date:   Wed Mar 29 10:41:07 2023 +0100
+
+	      gdb/testsuite: special case '^' in gdb_test pattern
+
+	Added some special handling of '^' to gdb_test -- a leading '^' will
+	cause the command regexp to automatically be included in the expected
+	output pattern.
+
+	It was pointed out that the '-wrap' flag of gdb_test_multiple is
+	supposed to work in the same way as gdb_test, and that the recent
+	changes for '^' had not been replicated for gdb_test_multiple.  This
+	patch addresses this issue.
+
+	So, after this commit, the following two constructs should have the
+	same meaning:
+
+	  gdb_test "command" "^output" "test name"
+
+	  gdb_test_multiple "command" "test name" {
+	    -re -wrap "^output" {
+	      pass $gdb_test_name
+	    }
+	  }
+
+	In both cases the '^' will case gdb.exp to inject a regexp that
+	matches 'command' after the '^' and before the 'output', this is in
+	addition to adding the $gdb_prompt pattern after 'output' in the
+	normal way.
+
+	The special '^' handling is only applied when '-wrap' is used, as this
+	is the only mode that aims to mimic gdb_test.
+
+	While working on this patch I realised that I could actually improve
+	the logic for the special '^' handling in the case where the expected
+	output pattern is empty.  I replicated these updates for both gdb_test
+	and gdb_test_multiple in order to keep these two paths in sync.
+
+	There were a small number of tests that needed adjustment after this
+	change, mostly just removing command regexps that are now added
+	automatically, but the gdb.base/settings.exp case was a little weird
+	as it turns out trying to match a single blank line is probably harder
+	now than it used to be -- still, I suspect this is a pretty rare case,
+	so I think the benefits (improved anchoring) outweigh this small
+	downside (IMHO).
+
+2023-05-12  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: fix error message for $_gdb_maint_setting
+	I spotted this behaviour:
+
+	  (gdb) p $_gdb_maint_setting("xxx")
+	  First argument of $_gdb_maint_setting must be a valid setting of the 'show' command.
+
+	Notice that GDB claims I need to use a setting from the 'show'
+	command, which isn't correct for $_gdb_maint_setting, in this case I
+	need to use a setting from 'maintenance show'.
+
+	This same issue is present for $_gdb_maint_setting_str.
+
+	This commit fixes this minor issue.
+
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-05-12  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.dwarf2/opt-out-not-implptr.exp for -m32
+	When running test-case gdb.dwarf2/opt-out-not-implptr.exp with target board
+	unix/-m32 we have:
+	...
+	(gdb) print noptr^M
+	$1 = {0, <optimized out>, <optimized out>, <optimized out>}^M
+	(gdb) FAIL: gdb.dwarf2/opt-out-not-implptr.exp: print noptr
+	...
+
+	The problem happens when evaluating this dwarf expression:
+	...
+	  <45> DW_AT_location : 13 byte block: 10 86 ea d7 d0 96 8e cf 92 5c 9f 93 8 \
+	  (DW_OP_constu: 6639779683436459270; DW_OP_stack_value; DW_OP_piece: 8)
+	...
+
+	The DW_OP_constu pushes a value with "generic type" on to the DWARF stack, and
+	the "generic type" has the size of an address on the target machine, which for
+	target board unix/-m32 is 4 bytes.  Consequently, the constant is abbreviated.
+
+	Next, the DW_OP_piece declares that the resulting 4-byte value is 8 bytes
+	large, and we hit this clause in rw_pieced_value:
+	...
+	            /* Use zeroes if piece reaches beyond stack value.  */
+	            if (p->offset + p->size > stack_value_size_bits)
+	              break;
+	...
+	and consequently get a zero.
+
+	We could just add require is_target_64 to the test-case, but instead, add a
+	32-bit case and require is_target_64 just for the 64-bit case.
+
+	Tested on x86_64-linux.
+
+2023-05-12  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Make is_64_target more robust
+	I ran test-case gdb.dwarf2/opt-out-not-implptr.exp with make-check-all.sh, and
+	with target board dwarf64 ran into:
+	...
+	FAIL: gdb.dwarf2/opt-out-not-implptr.exp: print noptr
+	...
+	due to is_target_64 failing because of:
+	...
+	builtin_spawn -ignore SIGHUP gcc -fno-stack-protector \
+	  -fdiagnostics-color=never -w -c -gdwarf64 -g -o is_64_target.o \
+	  is_64_target.c^M
+	gcc: error: '-gdwarf64' is ambiguous; use '-gdwarf-64' for DWARF version or \
+	  '-gdwarf -g64' for debug level^M
+	compiler exited with status 1
+	...
+
+	The FAIL is the same FAIL I run into with target board unix/-m32: is_target_64
+	fails for both cases.
+
+	The reason that is_target_64 is failing for target board dwarf64, is because
+	of using system compiler 7.5.0 which doesn't support -gdwarf64.
+
+	Fix this by making is_target_64 use nodebug instead of debug for compilation.
+
+	Tested on x86_64-linux.
+
+2023-05-12  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/cli] Fix wrapping for TERM=ansi
+	I. Auto-detected width (xterm vs. ansi)
+
+	Say we have a terminal with a width of 40 chars:
+	...
+	$ echo $COLUMNS
+	40
+	...
+
+	With TERM=xterm, we report a width of 40 chars:
+	...
+	$ TERM=xterm gdb
+	(gdb) show width
+	Number of characters gdb thinks are in a line is 40.
+	...
+
+	And with TERM=ansi, a width of 39 chars:
+	...
+	$ TERM=ansi gdb
+	(gdb) show width
+	Number of characters gdb thinks are in a line is 39.
+	...
+
+	Gdb uses readline to auto-detect screen size, and readline decides in the
+	TERM=ansi case that the terminal does not have reliable auto-wrap, and
+	consequently decides to hide the last terminal column from the readline user
+	(in other words GDB), hence we get 39 instead of 40.
+
+	II. Types of wrapping
+
+	Looking a bit more in detail inside gdb, it seems there are two types of
+	wrapping:
+	- readline wrapping (in other words, prompt edit wrapping), and
+	- gdb output wrapping (can be observed by issuing "info sources").
+	  This type of wrapping attempts to wrap some of the gdb output earlier
+	  than the indicated width, to not break lines in inconvenient places.
+
+	III. Readline wrapping, auto-detected screen size
+
+	Let's investigate readline wrapping with the auto-detected screen widths.
+
+	First, let's try with xterm:
+	...
+	$ TERM=xterm gdb
+	(gdb) 7890123456789012345678901234567890
+	123
+	...
+	That looks as expected, wrapping occurs after 40 chars.
+
+	Now, let's try with ansi:
+	...
+	$ TERM=ansi gdb
+	(gdb) 78901234567890123456789012345678
+	90123
+	...
+	It looks like wrapping occurred after 38, while readline should be capable of
+	wrapping after 39 chars.
+
+	This is caused by readline hiding the last column, twice.
+
+	In more detail:
+	- readline detects the screen width: 40,
+	- readline hides the last column, setting the readline screen width to 39,
+	- readline reports 39 to gdb as screen width,
+	- gdb sets its width setting to 39,
+	- gdb sets readline screen width to 39,
+	- readline hides the last column, again, setting the readline screen width to
+	  38.
+
+	This is reported as PR cli/30346.
+
+	IV. gdb output wrapping, auto-detected screen size
+
+	Say we set the terminal width to 56. With TERM=xterm, we have:
+	...
+	/home/abuild/rpmbuild/BUILD/glibc-2.31/csu/elf-init.c,
+	/data/vries/hello.c,
+	...
+	but with TERM=ansi:
+	...
+	/home/abuild/rpmbuild/BUILD/glibc-2.31/csu/elf-init.c, /
+	data/vries/hello.c,
+	...
+
+	So what happened here?  With TERM=ansi, the width setting is auto-detected to
+	55, and gdb assumes the terminal inserts a line break there, which it doesn't
+	because the terminal width is 56.
+
+	This is reported as PR cli/30411.
+
+	V. Fix PRs
+
+	Fix both mentioned PRs by taking into account the hidden column when readline
+	reports the screen width in init_page_info, and updating chars_per_line
+	accordingly.
+
+	Note that now we report the same width for both TERM=xterm and TERM=ansi,
+	which is much clearer.
+
+	The point where readline respectively expects or ensures wrapping is still
+	indicated by "maint info screen", for xterm:
+	...
+	Number of characters readline reports are in a line is 40.
+	...
+	and ansi:
+	...
+	Number of characters readline reports are in a line is 39.
+	...
+
+	VI. Testing
+
+	PR cli/30346 is covered by existing regression tests gdb.base/wrap-line.exp
+	and gdb.tui/wrap-line.exp, so remove the KFAILs there.
+
+	I didn't manage to come up with a regression test for PR cli/30411.  Perhaps
+	that would be easier if we had a maintenance command that echoes its arguments
+	while applying gdb output wrapping.
+
+	Tested on x86_64-linux.
+
+	PR cli/30346
+	PR cli/30411
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30346
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30411
+
+2023-05-12  Jan Beulich  <jbeulich@suse.com>
+
+	x86: move a few more disassembler helper functions
+	... such that they wouldn't need forward declarations anymore. Note that
+	append_seg() already was suitably placed.
+
+	x86: move get<N>() disassembler helper functions
+	... such that none of them would need forward declarations anymore.
+
+	x86: slightly simplify i386_parse_name()
+	With the switch to parse_real_register() (commit 4faaa10f3fab) "bad_reg"
+	cannot come back anymore. Drop the respective check.
+
+2023-05-12  Jan Beulich  <jbeulich@suse.com>
+
+	gas: equates of registers
+	There are two problems: symbol_equated_p() doesn't recognize equates of
+	registers, and S_CAN_BE_REDEFINED() goes by section rather than by
+	expression type. Both together undermine .eqv and .equiv clearly meaning
+	to guard the involved symbols against re-definition (both ways).
+
+	To compensate pseudo_set() now using O_symbol and S_CAN_BE_REDEFINED()
+	now checking for O_register,
+	- for targets creating register symbols through symbol_{new,create}() ->
+	  symbol_init() -> S_SET_VALUE() (alpha, arc, dlx, ia64, m68k, mips,
+	  mmix, tic4x, tic54x, plus anything using cgen or itbl-ops), have
+	  symbol_init() set their expressions to O_register,
+	- x86'es parse_register() also can't go by section anymore when
+	  trying to "look through" equates; probably symbol_equated_p() should
+	  have been used there from the beginning, if only that had worked for
+	  equates of registers,
+	- various targets need to "look through" equates when parsing insn
+	  operands (which also helps transitive forward equates); perhaps even
+	  more ought to, but many don't look to consider the possibility of
+	  register equates in the first place.
+
+	This was uncovered by code reported in PR gas/30274 (duplicating
+	PR gas/30272), except that there .eqv was used when really .equ was
+	meant. Therefore that bug report is addressed here only in so far as
+	gas wouldn't crash anymore; the code there still won't assemble
+	successfully, just that now the issues there are properly diagnosed.
+
+2023-05-12  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-11  Tom Tromey  <tom@tromey.com>
+
+	Do not print <synthetic pointer> when piece is optimized out
+	A user reported a bug where printing a certain array of integer types
+	would result in the nonsensical:
+
+	(gdb) p l_126
+	$1 = {6639779683436459270, <synthetic pointer>, <synthetic pointer>, <synthetic pointer>}
+
+	I tracked this down to some issues in the DWARF expression code.
+	First, check_pieced_synthetic_pointer did not account for the
+	situation where a location expression does not describe all the bits
+	of a value -- in this case it returned true, meaning there is a
+	synthetic pointer, but in fact these bits are optimized out.  (It
+	turns out this incorrect output had already been erroneously tested
+	for as well.)
+
+	Next, rw_pieced_value did not mark these bits as optimized-out,
+	either.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30296
+
+2023-05-11  Aaron Merey  <amerey@redhat.com>
+
+	gdb/testsuite: Match file size in gdb.debuginfod/crc_mismatch.exp
+	gdb's debuginfod progress messages include the size of the file being
+	downloaded if the size information is available at the time the message
+	is printed.  For example:
+
+	    Downloading 10 MB separate debug info for /lib64/libxyz.so
+
+	This size information is omitted if it's not available at the time of
+	printing:
+
+	    Downloading separate debug info for /lib64/libxyz.so
+
+	A pattern in crc_mismatch.exp fails to be matched if a progress message
+	includes a file size.  Add a wildcard to the pattern so that it matches
+	the progress message whether or not it includes the file size.
+
+2023-05-11  Johnson Sun  <j3.soon777@gmail.com>
+
+	Disable out-of-scope watchpoints
+	Currently, when a local software watchpoint goes out of scope, GDB sets
+	the watchpoint's disposition to `delete at next stop' and then normal
+	stops (i.e., stop and wait for the next GDB command). When GDB normal
+	stops, it automatically deletes the breakpoints with their disposition
+	set to `delete at next stop'.
+
+	Suppose a Python script decides not to normal stop when a local
+	software watchpoint goes out of scope, the watchpoint will not be
+	automatically deleted even when its disposition is set to
+	`delete at next stop'.
+
+	Since GDB single-steps the program and tests the watched expression
+	after each instruction, not deleting the watchpoint causes the
+	watchpoint to be hit many more times than it should, as reported in
+	PR python/29603.
+
+	This was happening because the watchpoint is not deleted or disabled
+	when going out of scope.
+
+	This commit fixes this issue by disabling the watchpoint when going out
+	of scope. It also adds a test to ensure this feature isn't regressed in
+	the future.
+
+	Calling `breakpoint_auto_delete' on all kinds of stops (in
+	`fetch_inferior_event') seem to solve this issue, but is in fact
+	inappropriate, since `breakpoint_auto_delete' goes over all breakpoints
+	instead of just going through the bpstat chain (which only contains the
+	breakpoints that were hit right now).
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29603
+	Change-Id: Ia85e670b2bcba2799219abe4b6be3b582387e383
+
+2023-05-11  Tom Tromey  <tromey@adacore.com>
+
+	Add "scheduler-locking" to documentation index
+	I noticed that "scheduler-locking" does not appear in the index of the
+	gdb manual.  This patch corrects this oversight.
+
+2023-05-11  Joseph Myers  <joseph@codesourcery.com>
+
+	Add LDPT_REGISTER_CLAIM_FILE_HOOK_V2 linker plugin hook [GCC PR109128]
+	This is one part of the fix for GCC PR109128, along with a
+	corresponding GCC change.  Without this patch, what happens in the
+	linker, when an unused object in a .a file has offload data, is that
+	elf_link_is_defined_archive_symbol calls bfd_link_plugin_object_p,
+	which ends up calling the plugin's claim_file_handler, which then
+	records the object as one with offload data. That is, the linker never
+	decides to use the object in the first place, but use of this _p
+	interface (called as part of trying to decide whether to use the
+	object) results in the plugin deciding to use its offload data (and a
+	consequent mismatch in the offload data present at runtime).
+
+	The new hook allows the linker plugin to distinguish calls to
+	claim_file_handler that know the object is being used by the linker
+	(from ldmain.c:add_archive_element), from calls that don't know it's
+	being used by the linker (from elf_link_is_defined_archive_symbol); in
+	the latter case, the plugin should avoid recording the object as one
+	with offload data.
+
+		bfd/
+		* plugin.c (struct plugin_list_entry): Add claim_file_v2.
+		(register_claim_file_v2): New.
+		(try_load_plugin): Use LDPT_REGISTER_CLAIM_FILE_HOOK_V2.
+		(ld_plugin_object_p): Take second argument.
+		(bfd_link_plugin_object_p): Update call to ld_plugin_object_p.
+		(register_ld_plugin_object_p): Update argument prototype.
+		(bfd_plugin_object_p): Update call to ld_plugin_object_p.
+		* plugin.h (register_ld_plugin_object_p): Update argument
+		prototype.
+
+		include/
+		* plugin.api.h (ld_plugin_claim_file_handler_v2)
+		(ld_plugin_register_claim_file_v2)
+		(LDPT_REGISTER_CLAIM_FILE_HOOK_V2): New.
+		(struct ld_plugin_tv): Add tv_register_claim_file_v2.
+
+		ld/
+		* plugin.c (struct plugin): Add claim_file_handler_v2.
+		(LDPT_REGISTER_CLAIM_FILE_HOOK_V2): New.
+		(plugin_object_p): Add second argument.  Update call to
+		plugin_call_claim_file.
+		(register_claim_file_v2): New.
+		(set_tv_header): Handle LDPT_REGISTER_CLAIM_FILE_HOOK_V2.
+		(plugin_call_claim_file): Add argument known_used.
+		(plugin_maybe_claim): Update call to plugin_object_p.
+		* testplug.c, testplug2.c, testplug3.c, testplug4.c: Handle
+		LDPT_REGISTER_CLAIM_FILE_HOOK_V2.
+		* testsuite/ld-plugin/plugin-1.d, testsuite/ld-plugin/plugin-10.d,
+		testsuite/ld-plugin/plugin-11.d, testsuite/ld-plugin/plugin-13.d,
+		testsuite/ld-plugin/plugin-14.d, testsuite/ld-plugin/plugin-15.d,
+		testsuite/ld-plugin/plugin-16.d, testsuite/ld-plugin/plugin-17.d,
+		testsuite/ld-plugin/plugin-18.d, testsuite/ld-plugin/plugin-19.d,
+		testsuite/ld-plugin/plugin-2.d, testsuite/ld-plugin/plugin-26.d,
+		testsuite/ld-plugin/plugin-3.d, testsuite/ld-plugin/plugin-30.d,
+		testsuite/ld-plugin/plugin-4.d, testsuite/ld-plugin/plugin-5.d,
+		testsuite/ld-plugin/plugin-6.d, testsuite/ld-plugin/plugin-7.d,
+		testsuite/ld-plugin/plugin-8.d, testsuite/ld-plugin/plugin-9.d:
+		Update test expectations.
+
+2023-05-11  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-10  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Fix tui compact-source a bit more
+	Andrew pointed out that the behaviour as tested in gdb.tui/compact-source.exp
+	is incorrect:
+	...
+	0 +-compact-source.c--------------------------------------------------------+
+	1 |___3_{                                                                   |
+	2 |___4_  return 0;                                                         |
+	3 |___5_}                                                                   |
+	4 |___6_                                                                    |
+	5 |___7_                                                                    |
+	6 |___8_                                                                    |
+	7 |___9_                                                                    |
+	8 +-------------------------------------------------------------------------+
+	...
+
+	The last line number in the source file is 5, and there are 7 lines to display
+	source lines, so if we'd scroll all the way down, the first line number in the
+	source window would be 5, and the last one would be 11.
+
+	To represent 11 we'd need 2 digits, so we expect to see ___04_ here instead of
+	___4_, even though all line numbers currently in the src window (3-9) can be
+	represented with only 1 digit.
+
+	Fix this in tui_source_window::set_contents, by updating the computation of
+	max_line_nr:
+	...
+	-      int max_line_nr = std::max (lines_in_file, last_line_nr_in_window);
+	+      int max_line_nr = lines_in_file + nlines - 1;
+	...
+
+	Tested on x86_64-linux.
+
+	Co-Authored-By: Andrew Burgess <aburgess@redhat.com>
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-05-10  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/rust: fix crash for expression debug with strings
+	While working on another patch I did this:
+
+	  (gdb) set debug expression 1
+	  (gdb) set language rust
+	  (gdb) p "foo"
+	  Operation: OP_AGGREGATE
+	   Type: &str
+
+	  Fatal signal: Segmentation fault
+	  ... etc ...
+
+	The problem is that the second field of the rust_aggregate_operation
+	is created as a nullptr, this can be seen in rust-parse.c. in the
+	function rust_parser::parse_string().
+
+	However, in expop.h, in the function dump_for_expression, we make the
+	assumption that the expressions will never be nullptr.
+
+	I did consider moving the nullptr handling into a new function
+	rust_aggregate_operation::dump, however, as the expression debug
+	dumping code is not exercised as much as it might be, I would rather
+	that this code be hardened and able to handle a nullptr without
+	crashing, so I propose that we add nullptr handling into the general
+	dump_for_expression function.  The behaviour is now:
+
+	  (gdb) set debug expression 1
+	  (gdb) set language rust
+	  (gdb) p "foo"
+	  Operation: OP_AGGREGATE
+	   Type: &str
+	   nullptr
+	   Vector:
+	    String: data_ptr
+	    Operation: UNOP_ADDR
+	     Operation: OP_STRING
+	      String: foo
+	    String: length
+	    Operation: OP_LONG
+	     Type: usize
+	     Constant: 3
+	  evaluation of this expression requires the target program to be active
+	  (gdb)
+
+	There's a new test to check for this case.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-10  Alan Modra  <amodra@gmail.com>
+
+	Re: stack overflow in debug_write_type
+	Apparently u.kindirect->slot can point at a NULL.
+
+		* debug.c (debug_write_type): Don't segfault on NULL indirect.
+
+2023-05-10  Luca Bonissi  <gcc@scarsita.it>
+
+	or1k relocation truncated to fit: R_OR1K_GOT16 even when using -mcmodel=large
+	  PR 30422
+	  * elf32-or1k.c (or1k_elf_relocate_section): Prescan for R_OR1K_GOT_AHI16 relocs as they may occur after R_OR1K_GOT16 relocs.
+
+2023-05-10  Nick Clifton  <nickc@redhat.com>
+
+	Add linker option to include local symbols in  the linker map.
+	  PR 16566
+	  * ldlang.c (ld_is_local_symbol): New function. (print_input_section): Add code to display local symbols in the section.
+	  * ldlex.h (enum option_values): Add OPTION_PRINT_MAP_LOCALS and OPTION_PRINT_MAP_LOCALS.
+	  * lexsup.c (ld_options[]): Add entries for --print-map-locals and --no-print-map-locals.
+	  * NEWS: Mention the new feature.
+	  * ld.h (struct ld_config_type): Add print_map_locals field.
+	  * ld.texi: Document the new command line option.
+	  * testsuite/ld-scripts/sizeof.s: Add a local symbol.
+	  * testsuite/ld-scripts/map-locals.d: New test control file.
+	  * testsuite/ld-scripts/map-address.exp: Run the new test.
+
+2023-05-10  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Fix tui compact-source
+	Consider a hello.c, with less than 10 lines:
+	...
+	$ wc -l hello.c
+	8 hello.c
+	...
+	and compiled with -g into an a.out.
+
+	With compact-source off:
+	...
+	$ gdb -q a.out \
+	    -ex "set tui border-kind ascii" \
+	    -ex "maint set tui-left-margin-verbose on" \
+	    -ex "set tui compact-source off" \
+	    -ex "tui enable"
+	...
+	we get:
+	...
+	+-./data/hello.c-----------------------+
+	|___000005_{                           |
+	|___000006_  printf ("hello\n");       |
+	|___000007_  return 0;                 |
+	|___000008_}                           |
+	|___000009_                            |
+	|___000010_                            |
+	|___000011_                            |
+	...
+	but with compact-source on:
+	...
+	+-./data/hello.c-----------------------+
+	|___5{                                 |
+	|___6  printf ("hello\n");             |
+	|___7  return 0;                       |
+	|___8}                                 |
+	|___9                                  |
+	|___1                                  |
+	|___1                                  |
+	...
+
+	There are a couple of problems with compact-source.
+
+	First of all the documentation mentions:
+	...
+	The default display uses more space for line numbers and starts the
+	source text at the next tab stop; the compact display uses only as
+	much space as is needed for the line numbers in the current file, and
+	only a single space to separate the line numbers from the source.
+	...
+
+	The bit about the default display and the next tab stop looks incorrect.  The
+	source doesn't start at a tab stop, instead it uses a single space to separate
+	the line numbers from the source.
+
+	Then the documentation mentions that there's single space in the compact
+	display, but evidently that's missing.
+
+	Then there's the fact that the line numbers "10" and "11" are both abbreviated
+	to "1" in the compact case.
+
+	The abbreviation is due to allocating space for <lines in source>, which is
+	8 for this example, and takes a single digit.  The line numbers though
+	continue past the end of the file, so fix this by allocating space for
+	max (<lines in source>, <last line in window>), which in this example takes 2
+	digits.
+
+	The missing space is due to some confusion about what the "1" here in
+	tui_source_window::set_contents represent:
+	...
+	      double l = log10 ((double) offsets->size ());
+	      m_digits = 1 + (int) l;
+	...
+
+	It could be the trailing space that's mentioned in tui-source.h:
+	...
+	  /* How many digits to use when formatting the line number.  This
+	     includes the trailing space.  */
+	  int m_digits;
+	...
+
+	Then again, it could be part of the calculation for the number of digits
+	needed for printing.  With this minimal example:
+	...
+	int main () {
+	  for (int i = 8; i <= 11; ++i) {
+	    double l = log10 ((double) i);
+	    printf ("%d %d\n", i, (int)l);
+	  }
+	  return 0;
+	}
+	...
+	we get:
+	...
+	$ ./a.out
+	8 0
+	9 0
+	10 1
+	11 1
+	...
+	which shows that the number of digits needed for printing i is
+	"1 + (int)log10 ((double) i)".
+
+	Fix this by introducing named variables needed_digits and trailing_space, each
+	adding 1.
+
+	With the fixes, we get for compact-source on:
+	...
+	+-./data/hello.c-----------------------+
+	|___05_{                               |
+	|___06_  printf ("hello\n");           |
+	|___07_  return 0;                     |
+	|___08_}                               |
+	|___09_                                |
+	|___10_                                |
+	|___11_                                |
+	|...
+
+	Also fix the documentation and help text to actually match effect of
+	compact-source.
+
+	Tested on x86_64-linux.
+
+2023-05-10  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-09  Dan Callaghan  <dan.callaghan@morsemicro.com>
+
+	Support higher baud rates when they are defined
+	On Linux at least, baud rate codes are defined up to B4000000. Allow the
+	user to select them if they are present in the system headers.
+
+	Change-Id: I393ff32e4a4b6127bdf97e3306ad5b6ebf7c934e
+
+2023-05-09  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: fix use-after-free in check_longjmp_breakpoint_for_call_dummy
+	Commit 7a8de0c33019 ("Remove ALL_BREAKPOINTS_SAFE") introduced a
+	use-after-free in the breakpoints iterations (see below for full ASan
+	report).  This makes gdb.base/stale-infcall.exp fail when GDB is build
+	with ASan.
+
+	check_longjmp_breakpoint_for_call_dummy iterates on all breakpoints,
+	possibly deleting the current breakpoint as well as related breakpoints.
+	The problem arises when a breakpoint in the B->related_breakpoint chain
+	is also B->next.  In that case, deleting that related breakpoint frees
+	the breakpoint that all_breakpoints_safe has saved.
+
+	The old code worked around that by manually changing B_TMP, which was
+	the next breakpoint saved by the "safe iterator":
+
+		while (b->related_breakpoint != b)
+		  {
+		    if (b_tmp == b->related_breakpoint)
+		      b_tmp = b->related_breakpoint->next;
+		    delete_breakpoint (b->related_breakpoint);
+		  }
+
+	(Note that this seemed to assume that b->related_breakpoint->next was
+	the same as b->next->next, not sure this is guaranteed.)
+
+	The new code kept the B_TMP variable, but it's not useful in that
+	context.  We can't go change the next breakpoint as saved by the safe
+	iterator, like we did before.  I suggest fixing that by saving the
+	breakpoints to delete in a map and deleting them all at the end.
+
+	Here's the full ASan report:
+
+	    (gdb) PASS: gdb.base/stale-infcall.exp: continue to breakpoint: break-run1
+	    print infcall ()
+	    =================================================================
+	    ==47472==ERROR: AddressSanitizer: heap-use-after-free on address 0x611000034980 at pc 0x563f7012c7bc bp 0x7ffdf3804d70 sp 0x7ffdf3804d60
+	    READ of size 8 at 0x611000034980 thread T0
+	        #0 0x563f7012c7bb in next_iterator<breakpoint>::operator++() /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/next-iterator.h:66
+	        #1 0x563f702ce8c0 in basic_safe_iterator<next_iterator<breakpoint> >::operator++() /home/smarchi/src/binutils-gdb/gdb/../gdbsupport/safe-iterator.h:84
+	        #2 0x563f7021522a in check_longjmp_breakpoint_for_call_dummy(thread_info*) /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:7611
+	        #3 0x563f714567b1 in process_event_stop_test /home/smarchi/src/binutils-gdb/gdb/infrun.c:6881
+	        #4 0x563f71454e07 in handle_signal_stop /home/smarchi/src/binutils-gdb/gdb/infrun.c:6769
+	        #5 0x563f7144b680 in handle_inferior_event /home/smarchi/src/binutils-gdb/gdb/infrun.c:6023
+	        #6 0x563f71436165 in fetch_inferior_event() /home/smarchi/src/binutils-gdb/gdb/infrun.c:4387
+	        #7 0x563f7136ff51 in inferior_event_handler(inferior_event_type) /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:42
+	        #8 0x563f7168038d in handle_target_event /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:4219
+	        #9 0x563f72fccb6d in handle_file_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:573
+	        #10 0x563f72fcd503 in gdb_wait_for_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:694
+	        #11 0x563f72fcaf2b in gdb_do_one_event(int) /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:217
+	        #12 0x563f7262b9bb in wait_sync_command_done() /home/smarchi/src/binutils-gdb/gdb/top.c:426
+	        #13 0x563f7137a7c3 in run_inferior_call /home/smarchi/src/binutils-gdb/gdb/infcall.c:650
+	        #14 0x563f71381295 in call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) /home/smarchi/src/binutils-gdb/gdb/infcall.c:1332
+	        #15 0x563f7137c0e2 in call_function_by_hand(value*, type*, gdb::array_view<value*>) /home/smarchi/src/binutils-gdb/gdb/infcall.c:780
+	        #16 0x563f70fe5960 in evaluate_subexp_do_call(expression*, noside, value*, gdb::array_view<value*>, char const*, type*) /home/smarchi/src/binutils-gdb/gdb/eval.c:649
+	        #17 0x563f70fe6617 in expr::operation::evaluate_funcall(type*, expression*, noside, char const*, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:677
+	        #18 0x563f6fd19668 in expr::operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/expression.h:136
+	        #19 0x563f70fe6bba in expr::var_value_operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:689
+	        #20 0x563f704b71dc in expr::funcall_operation::evaluate(type*, expression*, noside) /home/smarchi/src/binutils-gdb/gdb/expop.h:2219
+	        #21 0x563f70fe0f02 in expression::evaluate(type*, noside) /home/smarchi/src/binutils-gdb/gdb/eval.c:110
+	        #22 0x563f71b1373e in process_print_command_args /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1319
+	        #23 0x563f71b1391b in print_command_1 /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1332
+	        #24 0x563f71b147ec in print_command /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1465
+	        #25 0x563f706029b8 in do_simple_func /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:95
+	        #26 0x563f7061972a in cmd_func(cmd_list_element*, char const*, int) /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2735
+	        #27 0x563f7262d0ef in execute_command(char const*, int) /home/smarchi/src/binutils-gdb/gdb/top.c:572
+	        #28 0x563f7100ed9c in command_handler(char const*) /home/smarchi/src/binutils-gdb/gdb/event-top.c:543
+	        #29 0x563f7101014b in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /home/smarchi/src/binutils-gdb/gdb/event-top.c:779
+	        #30 0x563f72777942 in tui_command_line_handler /home/smarchi/src/binutils-gdb/gdb/tui/tui-interp.c:104
+	        #31 0x563f7100d059 in gdb_rl_callback_handler /home/smarchi/src/binutils-gdb/gdb/event-top.c:250
+	        #32 0x7f5a80418246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
+	        #33 0x563f7100ca06 in gdb_rl_callback_read_char_wrapper_noexcept /home/smarchi/src/binutils-gdb/gdb/event-top.c:192
+	        #34 0x563f7100cc5e in gdb_rl_callback_read_char_wrapper /home/smarchi/src/binutils-gdb/gdb/event-top.c:225
+	        #35 0x563f728c70db in stdin_event_handler /home/smarchi/src/binutils-gdb/gdb/ui.c:155
+	        #36 0x563f72fccb6d in handle_file_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:573
+	        #37 0x563f72fcd503 in gdb_wait_for_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:694
+	        #38 0x563f72fcb15c in gdb_do_one_event(int) /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:264
+	        #39 0x563f7177ec1c in start_event_loop /home/smarchi/src/binutils-gdb/gdb/main.c:412
+	        #40 0x563f7177f12e in captured_command_loop /home/smarchi/src/binutils-gdb/gdb/main.c:476
+	        #41 0x563f717846e4 in captured_main /home/smarchi/src/binutils-gdb/gdb/main.c:1320
+	        #42 0x563f71784821 in gdb_main(captured_main_args*) /home/smarchi/src/binutils-gdb/gdb/main.c:1339
+	        #43 0x563f6fcedfbd in main /home/smarchi/src/binutils-gdb/gdb/gdb.c:32
+	        #44 0x7f5a7e43984f  (/usr/lib/libc.so.6+0x2384f) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
+	        #45 0x7f5a7e439909 in __libc_start_main (/usr/lib/libc.so.6+0x23909) (BuildId: 2f005a79cd1a8e385972f5a102f16adba414d75e)
+	        #46 0x563f6fcedd84 in _start (/home/smarchi/build/binutils-gdb/gdb/gdb+0xafb0d84) (BuildId: 50bd32e6e9d5e84543e9897b8faca34858ca3995)
+
+	    0x611000034980 is located 0 bytes inside of 208-byte region [0x611000034980,0x611000034a50)
+	    freed by thread T0 here:
+	        #0 0x7f5a7fce312a in operator delete(void*, unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:164
+	        #1 0x563f702bd1fa in momentary_breakpoint::~momentary_breakpoint() /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:304
+	        #2 0x563f702771c5 in delete_breakpoint(breakpoint*) /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:12404
+	        #3 0x563f702150a7 in check_longjmp_breakpoint_for_call_dummy(thread_info*) /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:7673
+	        #4 0x563f714567b1 in process_event_stop_test /home/smarchi/src/binutils-gdb/gdb/infrun.c:6881
+	        #5 0x563f71454e07 in handle_signal_stop /home/smarchi/src/binutils-gdb/gdb/infrun.c:6769
+	        #6 0x563f7144b680 in handle_inferior_event /home/smarchi/src/binutils-gdb/gdb/infrun.c:6023
+	        #7 0x563f71436165 in fetch_inferior_event() /home/smarchi/src/binutils-gdb/gdb/infrun.c:4387
+	        #8 0x563f7136ff51 in inferior_event_handler(inferior_event_type) /home/smarchi/src/binutils-gdb/gdb/inf-loop.c:42
+	        #9 0x563f7168038d in handle_target_event /home/smarchi/src/binutils-gdb/gdb/linux-nat.c:4219
+	        #10 0x563f72fccb6d in handle_file_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:573
+	        #11 0x563f72fcd503 in gdb_wait_for_event /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:694
+	        #12 0x563f72fcaf2b in gdb_do_one_event(int) /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:217
+	        #13 0x563f7262b9bb in wait_sync_command_done() /home/smarchi/src/binutils-gdb/gdb/top.c:426
+	        #14 0x563f7137a7c3 in run_inferior_call /home/smarchi/src/binutils-gdb/gdb/infcall.c:650
+	        #15 0x563f71381295 in call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) /home/smarchi/src/binutils-gdb/gdb/infcall.c:1332
+	        #16 0x563f7137c0e2 in call_function_by_hand(value*, type*, gdb::array_view<value*>) /home/smarchi/src/binutils-gdb/gdb/infcall.c:780
+	        #17 0x563f70fe5960 in evaluate_subexp_do_call(expression*, noside, value*, gdb::array_view<value*>, char const*, type*) /home/smarchi/src/binutils-gdb/gdb/eval.c:649
+	        #18 0x563f70fe6617 in expr::operation::evaluate_funcall(type*, expression*, noside, char const*, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:677
+	        #19 0x563f6fd19668 in expr::operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/expression.h:136
+	        #20 0x563f70fe6bba in expr::var_value_operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:689
+	        #21 0x563f704b71dc in expr::funcall_operation::evaluate(type*, expression*, noside) /home/smarchi/src/binutils-gdb/gdb/expop.h:2219
+	        #22 0x563f70fe0f02 in expression::evaluate(type*, noside) /home/smarchi/src/binutils-gdb/gdb/eval.c:110
+	        #23 0x563f71b1373e in process_print_command_args /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1319
+	        #24 0x563f71b1391b in print_command_1 /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1332
+	        #25 0x563f71b147ec in print_command /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1465
+	        #26 0x563f706029b8 in do_simple_func /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:95
+	        #27 0x563f7061972a in cmd_func(cmd_list_element*, char const*, int) /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2735
+	        #28 0x563f7262d0ef in execute_command(char const*, int) /home/smarchi/src/binutils-gdb/gdb/top.c:572
+	        #29 0x563f7100ed9c in command_handler(char const*) /home/smarchi/src/binutils-gdb/gdb/event-top.c:543
+
+	    previously allocated by thread T0 here:
+	        #0 0x7f5a7fce2012 in operator new(unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:95
+	        #1 0x563f7029a9a3 in new_momentary_breakpoint<program_space*&, frame_id&, int&> /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:8129
+	        #2 0x563f702212f6 in momentary_breakpoint_from_master /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:8169
+	        #3 0x563f70212db1 in set_longjmp_breakpoint_for_call_dummy() /home/smarchi/src/binutils-gdb/gdb/breakpoint.c:7582
+	        #4 0x563f713804db in call_function_by_hand_dummy(value*, type*, gdb::array_view<value*>, void (*)(void*, int), void*) /home/smarchi/src/binutils-gdb/gdb/infcall.c:1260
+	        #5 0x563f7137c0e2 in call_function_by_hand(value*, type*, gdb::array_view<value*>) /home/smarchi/src/binutils-gdb/gdb/infcall.c:780
+	        #6 0x563f70fe5960 in evaluate_subexp_do_call(expression*, noside, value*, gdb::array_view<value*>, char const*, type*) /home/smarchi/src/binutils-gdb/gdb/eval.c:649
+	        #7 0x563f70fe6617 in expr::operation::evaluate_funcall(type*, expression*, noside, char const*, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:677
+	        #8 0x563f6fd19668 in expr::operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/expression.h:136
+	        #9 0x563f70fe6bba in expr::var_value_operation::evaluate_funcall(type*, expression*, noside, std::__debug::vector<std::unique_ptr<expr::operation, std::default_delete<expr::operation> >, std::allocator<std::unique_ptr<expr::operation, std::default_delete<expr::operation> > > > const&) /home/smarchi/src/binutils-gdb/gdb/eval.c:689
+	        #10 0x563f704b71dc in expr::funcall_operation::evaluate(type*, expression*, noside) /home/smarchi/src/binutils-gdb/gdb/expop.h:2219
+	        #11 0x563f70fe0f02 in expression::evaluate(type*, noside) /home/smarchi/src/binutils-gdb/gdb/eval.c:110
+	        #12 0x563f71b1373e in process_print_command_args /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1319
+	        #13 0x563f71b1391b in print_command_1 /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1332
+	        #14 0x563f71b147ec in print_command /home/smarchi/src/binutils-gdb/gdb/printcmd.c:1465
+	        #15 0x563f706029b8 in do_simple_func /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:95
+	        #16 0x563f7061972a in cmd_func(cmd_list_element*, char const*, int) /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2735
+	        #17 0x563f7262d0ef in execute_command(char const*, int) /home/smarchi/src/binutils-gdb/gdb/top.c:572
+	        #18 0x563f7100ed9c in command_handler(char const*) /home/smarchi/src/binutils-gdb/gdb/event-top.c:543
+	        #19 0x563f7101014b in command_line_handler(std::unique_ptr<char, gdb::xfree_deleter<char> >&&) /home/smarchi/src/binutils-gdb/gdb/event-top.c:779
+	        #20 0x563f72777942 in tui_command_line_handler /home/smarchi/src/binutils-gdb/gdb/tui/tui-interp.c:104
+	        #21 0x563f7100d059 in gdb_rl_callback_handler /home/smarchi/src/binutils-gdb/gdb/event-top.c:250
+	        #22 0x7f5a80418246 in rl_callback_read_char (/usr/lib/libreadline.so.8+0x3b246) (BuildId: 092e91fc4361b0ef94561e3ae03a75f69398acbb)
+
+	Change-Id: Id00c17ab677f847fbf4efdf0f4038373668d3d88
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-05-09  Enze Li  <enze.li@gmx.com>
+
+	Correct a spelling mistake in the binutils README file.
+
+2023-05-09  Alan Modra  <amodra@gmail.com>
+
+	stack overflow in debug_write_type
+	Another fuzzer attack.  This one was a "set" with elements using an
+	indirect type pointing back at the set.  The existing recursion check
+	only prevented simple recursion.
+
+		* debug.c (struct debug_type_s): Add mark.
+		(debug_write_type): Set mark and check before recursing into
+		indirect types.
+
+2023-05-09  Alan Modra  <amodra@gmail.com>
+
+	alpha-vms reloc sanity check
+	Stops fuzzed files triggering reads past the end of the reloc buffer.
+
+		* vms-alpha.c (alpha_vms_slurp_relocs): Sanity check reloc records.
+
+2023-05-09  Alan Modra  <amodra@gmail.com>
+
+	regen ld/Makefile.in
+
+2023-05-09  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-08  John Baldwin  <jhb@FreeBSD.org>
+
+	gdbserver: Clear upper ZMM registers in the right location.
+	This was previously clearing the upper 32 bytes of ZMM0-15 rather than
+	ZMM16-31.
+
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-05-08  John Baldwin  <jhb@FreeBSD.org>
+
+	x86-fbsd-nat: Add missing public label.
+	These two methods are both overrides of public methods in base
+	classes.
+
+2023-05-08  Felix Willgerodt  <felix.willgerodt@intel.com>
+
+	gdb: Avoid warning for the jump command inside an inline function.
+	When stopped inside an inline function, trying to jump to a different line
+	of the same function currently results in a warning about jumping to another
+	function.  Fix this by taking inline functions into account.
+
+	Before:
+	  Breakpoint 1, function_inline (x=510) at jump-inline.cpp:22
+	  22        a = a + x;             /* inline-funct */
+	  (gdb) j 21
+	  Line 21 is not in `function_inline(int)'.  Jump anyway? (y or n)
+
+	After:
+	  Breakpoint 2, function_inline (x=510) at jump-inline.cpp:22
+	  22        a = a + x;            /* inline-funct */
+	  (gdb) j 21
+	  Continuing at 0x400679.
+
+	  Breakpoint 1, function_inline (x=510) at jump-inline.cpp:21
+	  21        a += 1020 + a;                /* increment-funct */
+
+	This was regression-tested on X86-64 Linux.
+
+	Co-Authored-by: Cristian Sandu <cristian.sandu@intel.com>
+	Approved-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-08  Alan Modra  <amodra@gmail.com>
+
+	pe.em and pep.em make_import_fixup
+	This is a little cleanup that I made when looking at pr30343 that
+	makes it more obvious that make_import_fixup in both files are
+	identical (and in fact the new pep.em read_addend could be used in
+	both files).
+
+		* emultempl/pep.em (read_addend): Extract from..
+		(make_import_fixup): ..here.
+		* emultempl/pe.em (read_addend): Similarly.
+		(make_import_fixup): Similarly.  Add debug code from pep.em.
+
+2023-05-08  Alan Modra  <amodra@gmail.com>
+
+	PR30343, LTO ignores linker reference to _pei386_runtime_relocator
+	Make a reference to _pei386_runtime_relocator before LTO recompilation.
+	This is done regardless of whether such a reference will be used,
+	because it can't be known whether it is needed before LTO.
+
+	I also found it necessary to enable long section names for the bfd
+	created in make_runtime_pseudo_reloc, because otherwise when writing
+	it out to the bfd-in-memory we get the section written as .rdata_r
+	which when read back in leads to a linker warning ".rdata_r: section
+	below image base" and likely runtime misbehaviour.
+
+		PR 30343
+		* emultempl/pe.em (make_runtime_ref): New function.
+		(gld${EMULATION_NAME}_before_plugin_all_symbols_read): New function.
+		(LDEMUL_BEFORE_PLUGIN_ALL_SYMBOLS_READ): Define.
+		* emultempl/pep.em: Similarly to pe.em.
+		* pe-dll.c (make_runtime_pseudo_reloc): Set long section names.
+
+2023-05-08  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-07  Tom Tromey  <tom@tromey.com>
+
+	Remove parameter from select_source_symtab
+	I noticed that select_source_symtab is only ever called with nullptr
+	as an argument, so this patch removes the parameter and associated
+	logic.
+
+	Reviewed-By: Bruno Larsen <blarsen@redhat.com>
+
+2023-05-07  Tom Tromey  <tom@tromey.com>
+
+	Remove ALL_BREAKPOINTS_SAFE
+	There's just a single remaining use of the ALL_BREAKPOINTS_SAFE macro;
+	this patch replaces it with a for-each and an explicit temporary
+	variable.
+
+	Remove ALL_DICT_SYMBOLS
+	This replaces ALL_DICT_SYMBOLS with an iterator so that for-each can
+	be used.
+
+	Remove ALL_OBJFILE_OSECTIONS
+	This replaces ALL_OBJFILE_OSECTIONS with an iterator so that for-each
+	can be used.
+
+	Rename objfile::sections
+	I think objfile::sections makes sense as the name of the method to
+	iterate over an objfile's sections, so this patch renames the existing
+	field to objfile::sections_start in preparation for that.
+
+2023-05-07  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-06  Tom Tromey  <tom@tromey.com>
+
+	Allow pretty-print of static members
+	Python pretty-printers haven't applied to static members for quite
+	some time.  I tracked this down to the call to cp_print_value_fields
+	in cp_print_static_field -- it doesn't let pretty-printers have a
+	chance to print the value.  This patch fixes the problem.
+
+	The way that static members are handled is very weird to me.  I tend
+	to think this should be done more globally, like in value_print.
+	However, I haven't made any big change.
+
+	Reviewed-by:  Keith Seitz <keiths@redhat.com>
+	Tested-by:  Keith Seitz <keiths@redhat.com>
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30057
+
+2023-05-06  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	gas: documents .gnu_attribute Tag_GNU_MIPS_ABI_MSA
+	It is added since 2016 by
+	  Add support for .MIPS.abiflags and .gnu.attributes sections
+	  b52717c0e104eb603e8189c3c0d3658ef5d903f5
+	But never documented.
+
+2023-05-06  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-05  Tom Tromey  <tromey@adacore.com>
+
+	Filter out types from DAP scopes request
+	The DAP scopes request examines the symbols in a block tree, but
+	neglects to omit types.  This patch fixes the problem.
+
+2023-05-05  Tom Tromey  <tromey@adacore.com>
+
+	Use discrete_position in ada-valprint.c
+	I found a couple of spots in ada-valprint.c that use an explicit loop,
+	but where discrete_position could be used instead.
+
+	Reviewed-by:  Keith Seitz <keiths@redhat.com>
+
+2023-05-05  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/python: add mechanism to manage Python initialization functions
+	Currently, when we add a new python sub-system to GDB,
+	e.g. py-inferior.c, we end up having to create a new function like
+	gdbpy_initialize_inferior, which then has to be called from the
+	function do_start_initialization in python.c.
+
+	In some cases (py-micmd.c and py-tui.c), we have two functions
+	gdbpy_initialize_*, and gdbpy_finalize_*, with the second being called
+	from finalize_python which is also in python.c.
+
+	This commit proposes a mechanism to manage these initialization and
+	finalization calls, this means that adding a new Python subsystem will
+	no longer require changes to python.c or python-internal.h, instead,
+	the initialization and finalization functions will be registered
+	directly from the sub-system file, e.g. py-inferior.c, or py-micmd.c.
+
+	The initialization and finalization functions are managed through a
+	new class gdbpy_initialize_file in python-internal.h.  This class
+	contains a single global vector of all the initialization and
+	finalization functions.
+
+	In each Python sub-system we create a new gdbpy_initialize_file
+	object, the object constructor takes care of registering the two
+	callback functions.
+
+	Now from python.c we can call static functions on the
+	gdbpy_initialize_file class which take care of walking the callback
+	list and invoking each callback in turn.
+
+	To slightly simplify the Python sub-system files I added a new macro
+	GDBPY_INITIALIZE_FILE, which hides the need to create an object.  We
+	can now just do this:
+
+	  GDBPY_INITIALIZE_FILE (gdbpy_initialize_registers);
+
+	One possible problem with this change is that there is now no
+	guaranteed ordering of how the various sub-systems are initialized (or
+	finalized).  To try and avoid dependencies creeping in I have added a
+	use of the environment variable GDB_REVERSE_INIT_FUNCTIONS, this is
+	the same environment variable used in the generated init.c file.
+
+	Just like with init.c, when this environment variable is set we
+	reverse the list of Python initialization (and finalization)
+	functions.  As there is already a test that starts GDB with the
+	environment variable set then this should offer some level of
+	protection against dependencies creeping in - though for full
+	protection I guess we'd need to run all gdb.python/*.exp tests with
+	the variable set.
+
+	I have tested this patch with the environment variable set, and saw no
+	regressions, so I think we are fine right now.
+
+	One other change of note was for gdbpy_initialize_gdb_readline, this
+	function previously returned void.  In order to make this function
+	have the correct signature I've updated its return type to int, and we
+	now return 0 to indicate success.
+
+	All of the other initialize (and finalize) functions have been made
+	static within their respective sub-system files.
+
+	There should be no user visible changes after this commit.
+
+2023-05-05  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: more newline pattern cleanup
+	After this commit:
+
+	  commit e2f620135d92f7cd670af4e524fffec7ac307666
+	  Date:   Thu Mar 30 13:26:25 2023 +0100
+
+	      gdb/testsuite: change newline patterns used in gdb_test
+
+	It was pointed out in PR gdb/30403 that the same patterns can be found
+	in other lib/gdb.exp procs and that it would probably be a good idea
+	if these procs remained in sync with gdb_test.  Actually, the bug
+	specifically calls out gdb_test_multiple when using with '-wrap', but
+	I found a couple of other locations in gdb_continue_to_breakpoint,
+	gdb_test_multiline, get_valueof, and get_local_valueof.
+
+	In all these locations one or both of the following issues are
+	addressed:
+
+	  1. A leading pattern of '[\r\n]*' is pointless.  If there is a
+	  newline it will be matched, but if there is not then the testsuite
+	  doesn't care.  Also, as expect is happy to skip non-matched output
+	  at the start of a pattern, if there is a newline expect is happy to
+	  skip over it before matching the rest.  As such, this leading
+	  pattern is removed.
+
+	  2. Using '\[\r\n\]*$gdb_prompt' means that we will swallow
+	  unexpected blank lines at the end of a command's output, but also,
+	  if the pattern from the test script ends with a '\r', '\n', or '.'
+	  then these will partially match the trailing newline, with the
+	  remainder of the newline matched by the pattern from gdb.exp.  This
+	  split matching doesn't add any value, it's just something that has
+	  appeared as a consequence of how gdb.exp was originally written.  In
+	  this case the '\[\r\n\]*' is replaced with '\r\n'.
+
+	I've rerun the testsuite and fixed the regressions that I saw, these
+	were places where GDB emits a blank line at the end of the command
+	output, which we now need to explicitly match in the test script, this
+	was for:
+
+	  gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
+	  gdb.guile/guile.exp
+	  gdb.python/python.exp
+
+	Or a location where the test script was matching part of the newline
+	sequence, while gdb.exp was previously matching the remainder of the
+	newline sequence.  Now we rely on gdb.exp to match the complete
+	newline sequence, this was for:
+
+	  gdb.base/commands.exp
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30403
+
+2023-05-05  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Generate long string in gdb.base/page.exp
+	I noticed in gdb.base/page.exp:
+	...
+	set fours [string repeat 4 40]
+	...
+	but then shortly afterwards:
+	...
+	    [list 1\r\n 2\r\n 3\r\n 444444444444444444444444444444]
+	...
+
+	Summarize the long string in the same way using string repeat:
+	...
+	    [list 1\r\n 2\r\n 3\r\n [string repeat 4 30]]
+	...
+
+	Tested on x86_64-linux.
+
+2023-05-05  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: tighten patterns in build-id-no-debug-warning.exp
+	Tighten the expected output pattern in the test script:
+
+	  gdb.debuginfod/build-id-no-debug-warning.exp
+
+	While working on some other patch I broke GDB such that this warning:
+
+	  warning: "FILENAME": separate debug info file has no debug info
+
+	(which is generated in build-id.c) didn't actually include the
+	FILENAME any more -- yet this test script continued to pass.  It turns
+	out that this script doesn't actually check for FILENAME.
+
+	This commit extends the test pattern to check for the full warning
+	string, including FILENAME, and also removes some uses of '.*' to make
+	the test stricter.
+
+2023-05-05  Tom Tromey  <tom@tromey.com>
+
+	Simplify decode_locdesc
+	While looking into another bug, I noticed that the DWARF cooked
+	indexer picks up an address for this symbol:
+
+	 <1><82>: Abbrev Number: 2 (DW_TAG_variable)
+	    <83>   DW_AT_specification: <0x9f>
+	    <87>   DW_AT_location    : 10 byte block: e 0 0 0 0 0 0 0 0 e0 	(DW_OP_const8u: 0 0; DW_OP_GNU_push_tls_address or DW_OP_HP_unknown)
+	    <92>   DW_AT_linkage_name: (indirect string, offset: 0x156): _ZN9container8tlsvar_0E
+
+	This happens because decode_locdesc allows the use of
+	DW_OP_GNU_push_tls_address.
+
+	This didn't make sense to me.  I looked into it a bit more, and I
+	think decode_locdesc is used in three ways:
+
+	1. Find a constant address of a symbol that happens to be encoded as a
+	   location expression.
+
+	2. Find the offset of a function in a virtual table.  (This one should
+	   probably be replaced by code to just evaluate the expression in
+	   gnu-v3-abi.c -- but there's no point yet because no compiler
+	   actually seems to emit correct DWARF here, see the bug linked in
+	   the patch.)
+
+	3. Find the offset of a field, if the offset is a constant.
+
+	None of these require TLS.
+
+	This patch simplifies decode_locdesc by removing any opcodes that
+	don't fit into the above.  It also changes the API a little, to make
+	it less difficult to use.
+
+	Regression tested on x86-64 Fedora 36.
+
+2023-05-05  Tom Tromey  <tom@tromey.com>
+
+	Simplify auto_load_expand_dir_vars and remove substitute_path_component
+	This simplifies auto_load_expand_dir_vars to first split the string,
+	then do any needed substitutions.  This was suggested by Simon, and is
+	much simpler than the current approach.
+
+	Then this patch also removes substitute_path_component, as it is no
+	longer called.  This is nice because it helps with the long term goal
+	of removing utils.h.
+
+	Regression tested on x86-64 Fedora 36.
+
+2023-05-05  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add gdb.base/wrap-line.exp
+	Add a test-case that tests prompt edit wrapping in CLI, both
+	for TERM=xterm and TERM=ansi, both with auto-detected and hard-coded width.
+
+	In the TERM=ansi case with auto-detected width we run into PR cli/30346, so
+	add a KFAIL for that failure mode.
+
+	Tested on x86_64-linux.
+
+2023-05-05  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add gdb.tui/wrap-line.exp
+	Add a test-case that tests prompt edit wrapping behaviour in the tuiterm, both
+	for CLI and TUI, both with auto-detected and hard-coded width.
+
+	In the CLI case with auto-detected width we run into PR cli/30411, so add a
+	KFAIL for that failure mode.
+
+	Tested on x86_64-linux.
+
+2023-05-05  Nick Clifton  <nickc@redhat.com>
+
+	Debug info is lost for functions only called from functions marked with cmse_nonsecure_entr
+	  PR 30354
+	  * elf32-arm.c (elf32_arm_gc_mark_extra_sections): If any debug sections are marked then rerun the extra marking in order to pick up any dependencies.
+
+2023-05-05  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-04  Bruno Larsen  <blarsen@redhat.com>
+
+	Revert "gdb/testsuite: add KFAILs to gdb.reverse/step-reverse.exp"
+	This reverts commit 476410b3bca1389ee69e9c8fa18aaee16793a56d.
+
+	One of Simon's recent commits (2a740b3ba4c9f39c86dd75e0914ee00942cab471)
+	changed the way recording a remote target works and fixed the underlying
+	issue of the bug, so the KFails can be removed from the test.
+
+	Approved-By: Tom Tromey <tom@tromey.com>
+
+2023-05-04  Gareth Rees  <grees@undo.io>
+
+	Don't treat references to compound values as "simple".
+	SUMMARY
+
+	The '--simple-values' argument to '-stack-list-arguments' and similar
+	GDB/MI commands does not take reference types into account, so that
+	references to arbitrarily large structures are considered "simple" and
+	printed. This means that the '--simple-values' argument cannot be used
+	by IDEs when tracing the stack due to the time taken to print large
+	structures passed by reference.
+
+	DETAILS
+
+	Various GDB/MI commands ('-stack-list-arguments', '-stack-list-locals',
+	'-stack-list-variables' and so on) take a PRINT-VALUES argument which
+	may be '--no-values' (0), '--all-values' (1) or '--simple-values' (2).
+	In the '--simple-values' case, the command is supposed to print the
+	name, type, and value of variables with simple types, and print only the
+	name and type of variables with compound types.
+
+	The '--simple-values' argument ought to be suitable for IDEs that need
+	to update their user interface with the program's call stack every time
+	the program stops. However, it does not take C++ reference types into
+	account, and this makes the argument unsuitable for this purpose.
+
+	For example, consider the following C++ program:
+
+	    struct s {
+	        int v[10];
+	    };
+
+	    int
+	    sum(const struct s &s)
+	    {
+	        int total = 0;
+	        for (int i = 0; i < 10; ++i) total += s.v[i];
+	        return total;
+	    }
+
+	    int
+	    main(void)
+	    {
+	        struct s s = { { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } };
+	        return sum(s);
+	    }
+
+	If we start GDB in MI mode and continue to 'sum', the behaviour of
+	'-stack-list-arguments' is as follows:
+
+	    (gdb)
+	    -stack-list-arguments --simple-values
+	    ^done,stack-args=[frame={level="0",args=[{name="s",type="const s &",value="@0x7fffffffe310: {v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}}"}]},frame={level="1",args=[]}]
+
+	Note that the value of the argument 's' was printed, even though 's' is
+	a reference to a structure, which is not a simple value.
+
+	See https://github.com/microsoft/MIEngine/pull/673 for a case where this
+	behaviour caused Microsoft to avoid the use of '--simple-values' in
+	their MIEngine debug adapter, because it caused Visual Studio Code to
+	take too long to refresh the call stack in the user interface.
+
+	SOLUTIONS
+
+	There are two ways we could fix this problem, depending on whether we
+	consider the current behaviour to be a bug.
+
+	1. If the current behaviour is a bug, then we can update the behaviour
+	   of '--simple-values' so that it takes reference types into account:
+	   that is, a value is simple if it is neither an array, struct, or
+	   union, nor a reference to an array, struct or union.
+
+	   In this case we must add a feature to the '-list-features' command so
+	   that IDEs can detect that it is safe to use the '--simple-values'
+	   argument when refreshing the call stack.
+
+	2. If the current behaviour is not a bug, then we can add a new option
+	   for the PRINT-VALUES argument, for example, '--scalar-values' (3),
+	   that would be suitable for use by IDEs.
+
+	   In this case we must add a feature to the '-list-features' command
+	   so that IDEs can detect that the '--scalar-values' argument is
+	   available for use when refreshing the call stack.
+
+	PATCH
+
+	This patch implements solution (1) as I think the current behaviour of
+	not printing structures, but printing references to structures, is
+	contrary to reasonable expectation.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29554
+
+2023-05-04  Nick Clifton  <nickc@redhat.com>
+
+	Stop the linker from loosing the entry point for COFF/PE code when compiling with LTO enabled.
+	  PR 30300
+	  * emultempl/pep.em (set_entry_point): Add an undefined reference to the entry point if it has been constructed heuristically.
+	  * emultempl/pe.em (set_entry_point): Likewise.
+
+2023-05-04  Dimitar Dimitrov  <dimitar@dinux.eu>
+
+	ld: pru: Place exception-handling sections correctly
+	  * scripttempl/pru.sc (OUTPUT_SECTION_ALIGN): New helper variable to place at end of DMEM output sections.
+	  (.data): Use the helper variable.
+	  (.eh_frame): New output section.
+	  (.gnu_extab): Ditto.
+	  (.gcc_except_table): Ditto.
+	  (.resource_table): Use the helper variable.
+
+2023-05-04  Jan Beulich  <jbeulich@suse.com>
+
+	RISC-V: tighten post-relocation-operator separator expectation
+	As per the spec merely a blank isn't okay as a separator, the operand
+	to the relocation function ought to be parenthesized. Enforcing this
+	then also eliminates an inconsistency in that
+
+		lui	t0, %hi sym
+		lui	t0, %hi 0x1000
+
+	were accepted, but
+
+		lui	t0, %hi +sym
+		lui	t0, %hi -0x1000
+
+	were not.
+
+2023-05-04  Ilya Leoshkevich  <iii@linux.ibm.com>
+
+	gas: fix building tc-bpf.c on s390x
+	char is unsigned on s390x, so there are a lot of warnings like:
+
+	    gas/config/tc-bpf.c: In function 'get_token':
+	    gas/config/tc-bpf.c:900:14: error: comparison is always false due to limited range of data type [-Werror=type-limits]
+	      900 |       if (ch == EOF || len > MAX_TOKEN_SZ)
+	          |              ^~
+
+	Change its type to int, like in the other similar code.
+
+	There is also:
+
+	    gas/config/tc-bpf.c:735:30: error: 'bpf_endianness' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	      735 |    dst, be ? size[endianness - BPF_BE16] : size[endianness - BPF_LE16]);
+	          |                   ~~~~~~~~~~~^~~~~~~~~~
+
+	-Wmaybe-uninitialized doesn't seem to understand the FSM; just
+	initialize bpf_endianness to silence it.  Add an assertion to
+	build_bpf_endianness() in order to catch potential bugs.
+
+2023-05-04  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: revert "default r6 if vendor is img"
+	In commit: 9171de358f230b64646bbb525a74e5f8e3dbe0dc,
+	The default output is set to r6 if the vendor is img,
+	It is ugly and should not be in upstream.
+
+	Let's revert it.
+
+2023-05-04  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-03  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/build] Fix frame_list position in frame.c
+	In commit 995a34b1772 ("Guard against frame.c destructors running before
+	frame-info.c's") the following problem was addressed.
+
+	The frame_info_ptr destructor:
+	...
+	  ~frame_info_ptr ()
+	  {
+	    frame_list.erase (frame_list.iterator_to (*this));
+	  }
+	...
+	uses frame_list, which is a static member of class frame_info_ptr,
+	instantiated in frame-info.c:
+	...
+	intrusive_list<frame_info_ptr> frame_info_ptr::frame_list;
+	...
+
+	Then there's a static frame_info_pointer variable named selected_frame in
+	frame.c:
+	...
+	static frame_info_ptr selected_frame;
+	...
+
+	Because the destructor of selected_frame uses frame_list, its destructor needs
+	to be called before the destructor of frame_list.
+
+	But because they're in different compilation units, the initialization order and
+	consequently destruction order is not guarantueed.
+
+	The commit fixed this by handling the case that the destructor of frame_list
+	is called first, adding a check on is_linked ():
+	...
+	   ~frame_info_ptr ()
+	   {
+	-    frame_list.erase (frame_list.iterator_to (*this));
+	+    /* If this node has static storage, it may be deleted after
+	+       frame_list.  Attempting to erase ourselves would then trigger
+	+       internal errors, so make sure we are still linked first.  */
+	+    if (is_linked ())
+	+      frame_list.erase (frame_list.iterator_to (*this));
+	   }
+	...
+
+	However, since then frame_list has been moved into frame.c, and
+	initialization/destruction order is guarantueed inside a compilation unit.
+
+	Revert aforementioned commit, and fix the destruction order problem by moving
+	frame_list before selected_frame.
+
+	Reverting the commit is another way of fixing the already fixed
+	Wdangling-pointer warning reported in PR build/30413, in a different way than
+	commit 9b0ccb1ebae ("Pass const frame_info_ptr reference for
+	skip_[language_]trampoline").
+
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+	Tested on x86_64-linux.
+	PR build/30413
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30413
+
+2023-05-03  Lancelot SIX  <lancelot.six@amd.com>
+
+	gdb/show_args_command: print to the ui_file argument
+	The show_args_command uses gdb_printf without specifying the ui_file.
+	This means that it prints to gdb_stdout instead of the stream given as
+	an argument to the function.
+
+	This commit fixes this.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-05-03  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+
+	Make ar faster
+	 * archive.c (_bfd_write_archive_contents): Use a larger buffer in order to improve efficiency.
+
+2023-05-03  Mark Wielaard  <mark@klomp.org>
+
+	Pass const frame_info_ptr reference for skip_[language_]trampoline
+	g++ 13.1.1 produces a -Werror=dangling-pointer=
+
+	In file included from ../../binutils-gdb/gdb/frame.h:75,
+	                 from ../../binutils-gdb/gdb/symtab.h:40,
+	                 from ../../binutils-gdb/gdb/language.c:33:
+	In member function ‘void intrusive_list<T, AsNode>::push_empty(T&) [with T = frame_info_ptr; AsNode = intrusive_base_node<frame_info_ptr>]’,
+	    inlined from ‘void intrusive_list<T, AsNode>::push_back(reference) [with T = frame_info_ptr; AsNode = intrusive_base_node<frame_info_ptr>]’ at gdbsupport/intrusive_list.h:332:24,
+	    inlined from ‘frame_info_ptr::frame_info_ptr(const frame_info_ptr&)’ at gdb/frame.h:241:26,
+	    inlined from ‘CORE_ADDR skip_language_trampoline(frame_info_ptr, CORE_ADDR)’ at gdb/language.c:530:49:
+	gdbsupport/intrusive_list.h:415:12: error: storing the address of local variable ‘<anonymous>’ in ‘frame_info_ptr::frame_list.intrusive_list<frame_info_ptr>::m_back’ [-Werror=dangling-pointer=]
+	  415 |     m_back = &elem;
+	      |     ~~~~~~~^~~~~~~
+	gdb/language.c: In function ‘CORE_ADDR skip_language_trampoline(frame_info_ptr, CORE_ADDR)’:
+	gdb/language.c:530:49: note: ‘<anonymous>’ declared here
+	  530 |       CORE_ADDR real_pc = lang->skip_trampoline (frame, pc);
+	      |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
+	gdb/frame.h:359:41: note: ‘frame_info_ptr::frame_list’ declared here
+	  359 |   static intrusive_list<frame_info_ptr> frame_list;
+	      |                                         ^~~~~~~~~~
+
+	Each new frame_info_ptr is being pushed on a static frame list and g++
+	cannot see why that is safe in case the frame_info_ptr is created and
+	destroyed immediately when passed as value.
+
+	It isn't clear why only in this one place g++ sees the issue (probably
+	because it can inline enough code in this specific case).
+
+	Since passing the frame_info_ptr as const reference is cheaper, use
+	that as workaround for this warning.
+
+	PR build/30413
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30413
+
+	Tested-by: Kevin Buettner <kevinb@redhat.com>
+	Reviewed-by: Kevin Buettner <kevinb@redhat.com>
+	Reviewed-by: Tom Tromey <tom@tromey.com>
+
+2023-05-03  Oleg Tolmatcev  <oleg.tolmatcev@gmail.com>
+
+	Improve the speed of computing checksums for COFF binaries.
+	 * coffcode.h (coff_read_word_from_buffer): New function.
+	 * coffcode.h (COFF_CHECKSUM_BUFFER_SIZE): New constant.
+	 * coffcode.h (coff_compute_checksum): Improve speed by reducing the number of seeks and reads used.
+
+2023-05-03  Alan Modra  <amodra@gmail.com>
+
+	Remove unused args from bfd_make_debug_symbol
+	The ptr and size args are unused.  Make the function look the same as
+	bfd_make_empty_symbol.
+
+	Generated docs and include files
+	bfd/doc/chew.c extracts documentation from source code comments
+	annotated with keywords, and generates much of bfd.h and libbfd.h from
+	those same comments.  The docs have suffered from people (me too)
+	adding things like CODE_FRAGMENT to the source to put code into bfd.h
+	without realising that CODE_FRAGMENT also puts @example around said
+	code into the docs.  So we have random senseless things in the docs.
+	This patch fixes that problem (well, the senseless things from
+	CODE_FRAGMENT), moves most of the code out of bfd-in.h, and improves a
+	few chew.c features.  libbfd.h now automatically gets ATTRIBUTE_HIDDEN
+	prototypes, and indentation in bfd.h and libbfd.h is better.
+
+2023-05-03  Alan Modra  <amodra@gmail.com>
+
+	Move bfd_alloc, bfd_zalloc and bfd_release to libbfd.c
+	These functions don't belong in opncls.c.
+
+		* libbfd-in.h (bfd_release): Delete prototype.
+		* opncls.c (bfd_alloc, bfd_zalloc, bfd_release): Move to..
+		* libbfd.c: ..here.  Include objalloc.c and provide bfd_release
+		with a FUNCTION comment.
+		* bfd-in2.h: Regenerate.
+		* libbfd.h: Regenerate.
+
+2023-05-03  Alan Modra  <amodra@gmail.com>
+
+	Move bfd_elf_bfd_from_remote_memory to opncls.c
+	bfd_elf_bfd_from_remote_memory is just a wrapper, and the function
+	could be implemented for other formats.  Move it to opncls.c because
+	it acts a little like some of the other bfd_open* routines.  Also give
+	it the usual FUNCTION etc. comment so prototypes and docs are handled
+	automatically.
+
+		* elf.c (bfd_elf_bfd_from_remote_memory): Move to..
+		* opncls.c: ..here, add FUNCTION comment.
+		* bfd-in.h (bfd_elf_bfd_from_remote_memory): Delete prototype.
+		* bfd-in2.h: Regenerate.
+
+2023-05-03  Alan Modra  <amodra@gmail.com>
+
+	hash.c: replace some unsigned long with unsigned int
+		* hash.c (higher_prime_number): Use uint32_t param, return value,
+		tables and variables.
+		(bfd_default_hash_table_size): Make it an unsigned int.
+		(bfd_hash_set_default_size): Use unsigned int param and return.
+		* bfd-in.h (bfd_hash_set_default_size): Update prototype.
+		* bfd-in2.h: Regenerate.
+
+	libbfc.c: Use stdint types for unsigned char and unsigned long
+		* libbfd.c (bfd_put_8): Use bfd_byte rather than unsigned char.
+		(bfd_get_8, bfd_get_signed_8): Likewise.
+		(_bfd_read_unsigned_leb128, _bfd_safe_read_leb128): Likewise.
+		(_bfd_read_signed_leb128): Likewise.
+		(bfd_getb24, bfd_getl24): Replace unsigned long with uint32_t.
+		(bfd_getb32, bfd_getl32): Likewise.
+		(bfd_getb_signed_32, bfd_getl_signed_32): Likewise.
+
+2023-05-03  Alan Modra  <amodra@gmail.com>
+
+	Change signature of bfd crc functions
+	The crc calculated is 32 bits.  Replace uses of unsigned long with
+	uint32_t.  Also use bfd_byte* for buffers.
+
+	bfd/
+		* opncls.c (bfd_calc_gnu_debuglink_crc32): Use stdint types.
+		(bfd_get_debug_link_info_1, bfd_get_debug_link_info): Likewise.
+		(separate_debug_file_exists, bfd_follow_gnu_debuglink): Likewise.
+		(bfd_fill_in_gnu_debuglink_section): Likewise.
+		* bfd-in2.h: Regenerate.
+	gdb/
+		* auto-load.c (auto_load_objfile_script): Update type of
+		bfd_get_debug_link_info argument.
+		* symfile.c (find_separate_debug_file_by_debuglink): Likewise.
+		* gdb_bfd.c (get_file_crc): Update type of
+		bfd_calc_gnu_debuglink_crc32 argument.
+
+2023-05-03  Alan Modra  <amodra@gmail.com>
+
+	_bfd_mips_elf_lo16_reloc vallo comment
+	This explains exactly why the high reloc adjustment is as it is,
+	replacing the rather nebulous existing comment.  I've also changed the
+	expression from (lo+0x8000)&0xffff to (lo&0xffff)^0x8000 which better
+	matches part of the standard 16-bit sign extension (resulting in
+	exactly the same value), and hoisted the calculation out of the loop.
+
+		* elfxx-mips.c (_bfd_mips_elf_lo16_reloc): Expand vallo
+		comment.  Hoist calculation out of loop.
+
+2023-05-02  Alexandra Hájková  <ahajkova@redhat.com>
+
+	gdb.base/watchpoint-unaligned.exp: Always initialize wpoffset_to_wpnum
+	Initialize wpoffset_to_wpnumto avoid TCL error which happens in some aarch64 types.
+
+	ERROR: in testcase /root/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
+	ERROR:  can't read "wpoffset_to_wpnum(1)": no such element in array
+	ERROR:  tcl error code TCL READ VARNAME
+	ERROR:  tcl error info:
+	can't read "wpoffset_to_wpnum(1)": no such element in array
+	    while executing
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30340
+
+	Reviewed-by: Luis Machado <luis.machado@arm.com>
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-05-02  Mark Wielaard  <mark@klomp.org>
+
+	xcoffread.c: Fix -Werror=dangling-pointer= issue with main_subfile.
+	GCC 13 points out that main_subfile has local function scope, but a
+	pointer to it is assigned to the global inclTable array subfile
+	element field:
+
+	In function ‘void process_linenos(CORE_ADDR, CORE_ADDR)’,
+	    inlined from ‘void aix_process_linenos(objfile*)’ at xcoffread.c:727:19,
+	    inlined from ‘void aix_process_linenos(objfile*)’ at xcoffread.c:720:1:
+	xcoffread.c:629:37: error: storing the address of local variable ‘main_subfile’ in ‘*inclTable.19_45 + _28._inclTable::subfile’ [-Werror=dangling-pointer=]
+	  629 |               inclTable[ii].subfile = &main_subfile;
+	      |               ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
+	xcoffread.c: In function ‘void aix_process_linenos(objfile*)’:
+	xcoffread.c:579:18: note: ‘main_subfile’ declared here
+	  579 |   struct subfile main_subfile;
+	      |                  ^~~~~~~~~~~~
+	xcoffread.c:496:19: note: ‘inclTable’ declared here
+	  496 | static InclTable *inclTable;    /* global include table */
+	      |                   ^~~~~~~~~
+
+	Fix this by making main_subfile file static. And allocate and
+	deallocated together with inclTable in allocate_include_entry and
+	xcoff_symfile_finish. Adjust the use of main_subfile in
+	process_linenos to take a pointer to the subfile.
+
+2023-05-02  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Use set in lmap in gdb.dwarf2/dw2-abs-hi-pc.exp
+	In gdb.dwarf2/dw2-abs-hi-pc.exp we do:
+	...
+	set sources [lmap i $sources { expr { "$srcdir/$subdir/$i" } }]
+	...
+
+	The use of expr is not idiomatic.  Fix this by using set instead:
+	...
+	set sources [lmap i $sources { set tmp $srcdir/$subdir/$i }]
+	...
+
+	Reported-By: Tom Tromey <tom@tromey.com>
+	Reviewed-By: Andreas Schwab <schwab@suse.de>
+
+2023-05-02  Aditya Kamath  <Aditya.Kamath1@ibm.com>
+
+	Fix Assertion pid != 0 failure in AIX.
+	In AIX if there is a main and a thread created from it , then once the
+	program completed execution and goes to pd_disable () inferior_ptid
+	had pid 0 leading to an assertion failure while finding the thread's data
+	in aix-thread.c file.
+
+	This patch is a fix for the same.
+
+2023-05-02  Tom Tromey  <tom@tromey.com>
+
+	Remove error_stream
+	error_stream is trivial and only used in a couple of spots in
+	breakpoint.c.  This patch removes it in favor of just writing it out
+	at the spots where it was used.
+
+2023-05-02  Nick Clifton  <nickc@redhat.com>
+
+	Remove Dimity Diky as MSP430 maintainer.
+
+2023-05-02  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: compile gdb.linespec/cp-completion-aliases.exp as C++
+	Noticed in passing that the prepare_for_testing call in
+	gdb.linespec/cp-completion-aliases.exp does not pass the 'c++' flag,
+	despite this being a C++ test.
+
+	I guess, as the source file has the '.cc' extension, all the compilers
+	are doing the right thing anyway -- the source file uses templates, so
+	is definitely being compiled as C++.
+
+	I noticed this when I tried to set CXX_FOR_TARGET (but not
+	CC_FOR_TARGET) and spotted that this script was still using the C
+	compiler.
+
+	Fixed in this commit by adding the 'c++' flag for prepare_for_testing.
+
+2023-05-02  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-05-01  Tom Tromey  <tromey@adacore.com>
+
+	Document DAP 'launch' parameter
+	The Debugger Adapter Protocol defines a "launch" request but leaves
+	the parameters up to the implementation:
+
+	    Since launching is debugger/runtime specific, the arguments for
+	    this request are not part of this specification.
+
+	This patch adds some documentation for the parameter GDB currently
+	defines.  Note that I plan to add more parameters here, and perhaps
+	there will be other extensions in time as well.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-05-01  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: remove ui_interp_info
+	I don't think that having struct ui_interp_info separated from struct ui
+	is very useful.  As of today, it looks like an unnecessary indirection
+	layer.  Move the contents of ui_interp_info directly into struct ui, and
+	update all users.
+
+	Change-Id: I817ba6e047dbcc4ba15b666af184b40bfed7e521
+
+2023-05-01  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: store interps in an intrusive_list
+	Use intrusive_list, instead of hand-made linked list.
+
+	Change-Id: Idc857b40dfa3e3c35671045898331cca2c928097
+
+2023-05-01  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: move struct ui and related things to ui.{c,h}
+	I'd like to move some things so they become methods on struct ui.  But
+	first, I think that struct ui and the related things are big enough to
+	deserve their own file, instead of being scattered through top.{c,h} and
+	event-top.c.
+
+	Change-Id: I15594269ace61fd76ef80a7b58f51ff3ab6979bc
+
+2023-05-01  Tom Tromey  <tromey@adacore.com>
+
+	Turn set_inferior_args_vector into method of inferior
+	This patch turns set_inferior_args_vector into an overload of
+	inferior::set_args.
+
+	Regression tested on x86-64 Fedora 36.
+
+2023-05-01  Tom Tromey  <tromey@adacore.com>
+
+	Remove evaluate_type
+	Like evaluate_expression, evaluate_type is also just a simple wrapper.
+	Removing it makes the code a little nicer.
+
+	Remove evaluate_expression
+	evaluate_expression is just a little wrapper for a method on
+	expression.  Removing it also removes a lot of ugly (IMO) calls to
+	get().
+
+	Remove op_name
+	op_name is only needed in a single place, so remove it and inline it
+	there.
+
+2023-05-01  Tom Tromey  <tromey@adacore.com>
+
+	Fix crash in Rust expression parser
+	A user found that an array expression with just a single value (like
+	"[23]") caused the Rust expression parser to crash.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30410
+
+2023-05-01  Tom Tromey  <tom@tromey.com>
+
+	Replace field_is_static with a method
+	This changes field_is_static to be a method on struct field, and
+	updates all the callers.  Most of this patch was written by script.
+
+	Regression tested on x86-64 Fedora 36.
+
+2023-05-01  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-30  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Fix TUI resizing for TERM=ansi
+	With TERM=ansi, when resizing a TUI window from LINES/COLUMNS 31/118
+	(maximized) to 20/78 (de-maximized), I get a garbled screen (that ^L doesn't
+	fix) and a message:
+	...
+	@@ resize done 0, size = 77x20
+	...
+	with the resulting width being 77 instead of the expected 78.
+
+	[ The discrepancy also manifests in CLI, filed as PR30346. ]
+
+	The discrepancy comes from tui_resize_all, where we ask readline for the
+	screen size:
+	...
+	   rl_get_screen_size (&screenheight, &screenwidth);
+	...
+
+	As it happens, when TERM is set to ansi, readline decides that the terminal
+	cannot auto-wrap lines, and reserves one column to deal with that, and as a
+	result reports back one less than the actual screen width:
+	...
+	$ echo $COLUMNS
+	78
+	$ TERM=xterm gdb -ex "show width" -ex q
+	Number of characters gdb thinks are in a line is 78.
+	$ TERM=ansi  gdb -ex "show width" -ex q
+	Number of characters gdb thinks are in a line is 77.
+	...
+
+	In tui_resize_all, we need the actual screen width, and using a screenwidth of
+	one less than the actual value garbles the screen.
+
+	This is currently not causing trouble in testing because we have a workaround
+	in place in proc Term::resize.  If we disable the workaround:
+	...
+	-       stty columns [expr {$_cols + 1}] < $::gdb_tty_name
+	+       stty columns $_cols < $::gdb_tty_name
+	...
+	and dump the screen we get the same type of screen garbling:
+	...
+	    0 +---------------------------------------+|
+	    1                                         ||
+	    2                                         ||
+	    3                                         ||
+	...
+
+	Another way to reproduce the problem is using command "maint info screen".
+	After starting gdb with TERM=ansi, entering TUI, and issuing the command, we
+	get:
+	...
+	Number of characters curses thinks are in a line is 78.
+	...
+	and after maximizing and demaximizing the window we get:
+	...
+	Number of characters curses thinks are in a line is 77.
+	...
+	If we use TERM=xterm, we do get the expected 78.
+
+	Fix this by:
+	- detecting when readline will report back less than the actual screen width,
+	- accordingly setting a new variable readline_hidden_cols,
+	- using readline_hidden_cols in tui_resize_all to fix the resize problem, and
+	- removing the workaround in Term::resize.
+
+	The test-case gdb.tui/empty.exp serves as regression test.
+
+	I've applied the same fix in tui_async_resize_screen, the new test-case
+	gdb.tui/resize-2.exp serves as a regression test for that change.  Without
+	that fix, we have:
+	...
+	FAIL: gdb.tui/resize-2.exp: again: gdb width 80
+	...
+
+	Tested on x86_64-linux.
+
+	PR tui/30337
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30337
+
+2023-04-30  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-29  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.base/readline.exp with stub-termcap
+	When doing a build which uses stub-termcap, we run into:
+	...
+	(gdb) set width 7
+	<b) FAIL: gdb.base/readline.exp: set width 7 (timeout)
+	...
+
+	Since readline can't detect very basic terminal support, it falls back on
+	horizontal scrolling.
+
+	Fix this by detecting the horizontal scrolling case, and skipping the
+	subsequent test.
+
+	Tested on x86_64-linux.
+
+	PR testsuite/30400
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30400
+
+2023-04-29  Manoj Gupta  <manojgupta@google.com>
+
+	gdb: Fix building with latest libc++
+	Latest libc++[1] causes transitive include to <locale> when
+	<mutex> or <thread> header is included. This causes
+	gdb to not build[2] since <locale> defines isupper/islower etc.
+	functions that are explicitly macroed-out in safe-ctype.h to
+	prevent their use.
+	Use the suggestion from libc++ to include <locale> internally when
+	building in C++ mode to avoid build errors.
+	Use safe-gdb-ctype.h as the include instead of "safe-ctype.h"
+	to keep this isolated to gdb since rest of binutils
+	does not seem to use much C++.
+
+	[1]: https://reviews.llvm.org/D144331
+	[2]: https://issuetracker.google.com/issues/277967395
+
+2023-04-29  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.ada/excep_handle.exp for updated gdb_test
+	Test-case gdb.ada/excep_handle.exp fails since commit e2f620135d9
+	("gdb/testsuite: change newline patterns used in gdb_test"):
+	...
+	(gdb) continue^M
+	Continuing.^M
+	^M
+	Catchpoint 2, exception at 0x00000000004020b6 in foo () at foo.adb:26^M
+	26            when Constraint_Error =>^M
+	(gdb) FAIL: gdb.ada/excep_handle.exp: continuing to first Constraint_Error \
+	  exception handlers
+	...
+
+	The output is supposed to be matched by:
+	...
+	gdb_test "continue" \
+	         "Continuing\.$eol$catchpoint_constraint_error_msg$eol.*" \
+	         "continuing to first Constraint_Error exception handlers"
+	...
+	but the $eol bit no longer matches due to the stricter matching introduced
+	in aforementioned commit.
+
+	Fix this by dropping the "$eol.*" bit.
+
+	Tested on x86_64-linux.
+
+	PR testsuite/30399
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30399
+
+2023-04-29  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/build] Fix build without ncurses in maintenance_info_screen
+	With a build without ncurses we run into:
+	...
+	src/gdb/utils.c: In function ‘void maintenance_info_screen(const char*, int)’:
+	src/gdb/utils.c:1310:7: error: ‘COLS’ was not declared in this scope
+	       COLS);
+	       ^~~~
+	src/gdb/utils.c:1331:8: error: ‘LINES’ was not declared in this scope
+	        LINES);
+	        ^~~~~
+	...
+
+	Fix this by using HAVE_LIBCURSES.
+
+	Tested on x86_64-linux.
+
+	PR build/30391
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30391
+
+2023-04-29  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.tui/main.exp without TUI
+	With a build with --disable-tui, we get:
+	...
+	(gdb) PASS: gdb.tui/main.exp: set interactive-mode off
+	maint set tui-left-margin-verbose on^M
+	Undefined maintenance set command: "tui-left-margin-verbose on".  \
+	  Try "help maintenance set".^M
+	(gdb) FAIL: gdb.tui/main.exp: maint set tui-left-margin-verbose on
+	...
+
+	Fix this by adding the missing "require allow_tui_tests".
+
+	Tested on x86_64-linux.
+
+2023-04-29  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-29  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/mi: check thread exists when creating thread-specific b/p
+	I noticed the following behaviour:
+
+	  $ gdb -q -i=mi /tmp/hello.x
+	  =thread-group-added,id="i1"
+	  =cmd-param-changed,param="print pretty",value="on"
+	  ~"Reading symbols from /tmp/hello.x...\n"
+	  (gdb)
+	  -break-insert -p 99 main
+	  ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000401198",func="main",file="/tmp/hello.c",fullname="/tmp/hello.c",line="18",thread-groups=["i1"],thread="99",times="0",original-location="main"}
+	  (gdb)
+	  info breakpoints
+	  &"info breakpoints\n"
+	  ~"Num     Type           Disp Enb Address            What\n"
+	  ~"1       breakpoint     keep y   0x0000000000401198 in main at /tmp/hello.c:18\n"
+	  &"../../src/gdb/thread.c:1434: internal-error: print_thread_id: Assertion `thr != nullptr' failed.\nA problem internal to GDB has been detected,\nfurther debugging may prove unreliable."
+	  &"\n"
+	  &"----- Backtrace -----\n"
+	  &"Backtrace unavailable\n"
+	  &"---------------------\n"
+	  &"\nThis is a bug, please report it."
+	  &"  For instructions, see:\n"
+	  &"<https://www.gnu.org/software/gdb/bugs/>.\n\n"
+	  Aborted (core dumped)
+
+	What we see here is that when using the MI a user can create
+	thread-specific breakpoints for non-existent threads.  Then if we try
+	to use the CLI 'info breakpoints' command GDB throws an assertion.
+	The assert is a result of the print_thread_id call when trying to
+	build the 'stop only in thread xx.yy' line; print_thread_id requires a
+	valid thread_info pointer, which we can't have for a non-existent
+	thread.
+
+	In contrast, when using the CLI we see this behaviour:
+
+	  $ gdb -q /tmp/hello.x
+	  Reading symbols from /tmp/hello.x...
+	  (gdb) break main thread 99
+	  Unknown thread 99.
+	  (gdb)
+
+	The CLI doesn't allow a breakpoint to be created for a non-existent
+	thread.  So the 'info breakpoints' command is always fine.
+
+	Interestingly, the MI -break-info command doesn't crash, this is
+	because the MI uses global thread-ids, and so never calls
+	print_thread_id.  However, GDB does support using CLI and MI in
+	parallel, so we need to solve this problem.
+
+	One option would be to change the CLI behaviour to allow printing
+	breakpoints for non-existent threads.  This would preserve the current
+	MI behaviour.
+
+	The other option is to pull the MI into line with the CLI and prevent
+	breakpoints being created for non-existent threads.  This is good for
+	consistency, but is a breaking change for the MI.
+
+	In the end I figured that it was probably better to retain the
+	consistent CLI behaviour, and just made the MI reject requests to
+	place a breakpoint on a non-existent thread.  The only test we had
+	that depended on the old behaviour was
+	gdb.mi/mi-thread-specific-bp.exp, which was added by me in commit:
+
+	  commit 2fd9a436c8d24eb0af85ccb3a2fbdf9a9c679a6c
+	  Date:   Fri Feb 17 10:48:06 2023 +0000
+
+	      gdb: don't duplicate 'thread' field in MI breakpoint output
+
+	I certainly didn't intend for this test to rely on this feature of the
+	MI, so I propose to update this test to only create breakpoints for
+	threads that exist.
+
+	Actually, I've added a new test that checks the MI rejects creating a
+	breakpoint for a non-existent thread, and I've also extended the test
+	to run with the separate MI/CLI UIs, and then tested 'info
+	breakpoints' to ensure this command doesn't crash.
+
+	I've extended the documentation of the `-p` flag to explain the
+	constraints better.
+
+	I have also added a NEWS entry just in case someone runs into this
+	issue, at least then they'll know this change in behaviour was
+	intentional.
+
+	One thing that I did wonder about while writing this patch, is whether
+	we should treat requests like this, on both the MI and CLI, as another
+	form of pending breakpoint, something like:
+
+	  (gdb) break foo thread 9
+	  Thread 9 does not exist.
+	  Make breakpoint pending on future thread creation? (y or [n]) y
+	  Breakpoint 1 (foo thread 9) pending.
+	  (gdb) info breakpoints
+	  Num     Type           Disp Enb Address    What
+	  1       breakpoint     keep y   <PENDING>  foo thread 9
+
+	Don't know if folk think that would be a useful idea or not?  Either
+	way, I think that would be a separate patch from this one.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-04-28  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: make deprecated_show_value_hack static
+	The deprecated_show_value_hack function is now only used inside
+	cli-setshow.c, so lets make the function static to discourage its use
+	anywhere else.
+
+	There should be no user visible changes after this commit
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-28  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: make set/show inferior-tty work with $_gdb_setting_str
+	Like the previous two commits, this commit fixes set/show inferior-tty
+	to work with $_gdb_setting_str.
+
+	Instead of using a scratch variable which is then pushed into the
+	current inferior from a set callback, move to the API that allows for
+	getters and setters, and store the value directly within the current
+	inferior.
+
+	Update an existing test to check the inferior-tty setting.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-28  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: make set/show cwd work with $_gdb_setting_str
+	The previous commit fixed set/show args when used with
+	$_gdb_setting_str, this commit fixes set/show cwd.
+
+	Instead of using a scratch variable which is then pushed into the
+	current inferior from a set callback, move to the API that allows for
+	getters and setters, and store the value directly within the current
+	inferior.
+
+	Update the existing test to check the cwd setting.
+
+2023-04-28  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: make set/show args work with $_gdb_setting_str
+	I noticed that $_gdb_setting_str was not working with 'args', e.g.:
+
+	  $ gdb -q --args /tmp/hello.x arg1 arg2 arg3
+	  Reading symbols from /tmp/hello.x...
+	  (gdb) show args
+	  Argument list to give program being debugged when it is started is "arg1 arg2 arg3".
+	  (gdb) print $_gdb_setting_str("args")
+	  $1 = ""
+
+	This is because the 'args' setting is implemented using a scratch
+	variable ('inferior_args_scratch') which is updated when the user does
+	'set args ...'.  There is then a function 'set_args_command' which is
+	responsible for copying the scratch area into the current inferior.
+
+	However, when the user sets the arguments via the command line the
+	scratch variable is not updated, instead the arguments are pushed
+	straight into the current inferior.
+
+	There is a second problem, when the current inferior changes the
+	scratch area is not updated, which means that the value returned will
+	only ever reflect the last call to 'set args ...' regardless of which
+	inferior is currently selected.
+
+	Luckily, the fix is pretty easy, set/show variables have an
+	alternative API which requires we provide some getter and setter
+	functions.  With this done the scratch variable can be removed and the
+	value returned will now always reflect the current inferior.
+
+	While working on set/show args I also rewrote show_args_command to
+	remove the use of deprecated_show_value_hack.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-28  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: cleanup command creation in infcmd.c
+	In infcmd.c, in order to add command completion to some of the 'set'
+	commands, we are currently creating the command, then looking up the
+	command by calling lookup_cmd.
+
+	This is no longer necessary, we already return the relevant
+	cmd_list_element object when the set/show command is created, and we
+	can use that to set the command completion callback.
+
+	I don't know if there's actually any tests for completion of these
+	commands, but I manually checked, and each command still appears to
+	offer the expected filename completion.
+
+	There should be no user visible changes after this commit.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-28  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb/record-full: disable range stepping when resuming threads
+	I see these failures, when running with the native-gdbserver of
+	native-extended-gdbserver boards:
+
+	    Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.reverse/finish-reverse-next.exp ...
+	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 1 LEP from function body
+	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 2 at b = 5, from function body
+	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 1 GEP call from function body
+	    FAIL: gdb.reverse/finish-reverse-next.exp: reverse next 2 at b = 50 from function body
+
+	Let's use this simpler program to illustrate the problem:
+
+	    int main()
+	    {
+	      int a = 362;
+	      a = a * 17;
+	      return a;
+	    }
+
+	It compiles down to:
+
+	    int a = 362;
+	    401689:       c7 45 fc 6a 01 00 00    movl   $0x16a,-0x4(%rbp)
+	    a = a * 17;
+	    401690:       8b 55 fc                mov    -0x4(%rbp),%edx
+	    401693:       89 d0                   mov    %edx,%eax
+	    401695:       c1 e0 04                shl    $0x4,%eax
+	    401698:       01 d0                   add    %edx,%eax
+	    40169a:       89 45 fc                mov    %eax,-0x4(%rbp)
+	    return a;
+	    40169d:       8b 45 fc                mov    -0x4(%rbp),%eax
+
+	When single stepping these lines, debugging locally, while recording,
+	these are the recorded instructions (basically one for each instruction
+	shown above):
+
+	    (gdb) maintenance print record-instruction 0
+	    4 bytes of memory at address 0x00007fffffffdc5c changed from: 6a 01 00 00
+	    Register rip changed: (void (*)()) 0x40169a <main+21>
+	    (gdb) maintenance print record-instruction -1
+	    Register rax changed: 5792
+	    Register eflags changed: [ PF AF IF ]
+	    Register rip changed: (void (*)()) 0x401698 <main+19>
+	    (gdb) maintenance print record-instruction -2
+	    Register rax changed: 362
+	    Register eflags changed: [ PF ZF IF ]
+	    Register rip changed: (void (*)()) 0x401695 <main+16>
+	    (gdb) maintenance print record-instruction -3
+	    Register rax changed: 4200069
+	    Register rip changed: (void (*)()) 0x401693 <main+14>
+	    (gdb) maintenance print record-instruction -4
+	    Register rdx changed: 140737488346696
+	    Register rip changed: (void (*)()) 0x401690 <main+11>
+	    (gdb) maintenance print record-instruction -5
+	    4 bytes of memory at address 0x00007fffffffdc5c changed from: 00 00 00 00
+	    Register rip changed: (void (*)()) 0x401689 <main+4>
+	    (gdb) maintenance print record-instruction -6
+	    Not enough recorded history
+
+	But when debugging remotely:
+
+	    (gdb) maintenance print record-instruction 0
+	    Register rdx changed: 140737488346728
+	    Register rip changed: (void (*)()) 0x401690 <main+11>
+	    (gdb) maintenance print record-instruction -1
+	    4 bytes of memory at address 0x00007fffffffdc7c changed from: 00 00 00 00
+	    Register rip changed: (void (*)()) 0x401689 <main+4>
+	    (gdb) maintenance print record-instruction -2
+	    Not enough recorded history
+
+	In this list, we only have entries for the beginning of each line.  This
+	is because of the remote target's support for range stepping.  The
+	record-full layer can only record instructions when the underlying
+	process target reports a stop.  With range stepping, the remote target
+	single-steps multiple instructions at a time, so the record-full target
+	doesn't get to see and record them all.
+
+	Fix this by making the record-full layer disable range-stepping
+	before handing the resume request to the beneath layer, forcing the
+	remote target to report stops for each instruction.
+
+	Change-Id: Ia95ea62720bbcd0b6536a904360ffbf839eb823d
+
+2023-04-28  Keith Seitz  <keiths@redhat.com>
+
+	Allow strings with printf/eval
+	PR 13098 explains that if a user attempts to use a string with either
+	`printf' (or `eval'), gdb returns an error (inferior not running):
+
+	(gdb) printf "%s\n", "hello"
+	evaluation of this expression requires the target program to be active
+
+	However, the parser can certainly handle this case:
+
+	(gdb) p "hello"
+	$1 = "hello"
+
+	This discrepancy occurs because printf_c_string does not handle
+	this specific case.  The passed-in value that we are attempting to print
+	as a string is TYPE_CODE_ARRAY but it's lval type is not_lval.
+
+	printf_c_string will only attempt to print a string from the value's
+	contents when !TYPE_CODE_PTR, lval is lval_internalvar, and the value's
+	type is considered a string type:
+
+	  if (value->type ()->code () != TYPE_CODE_PTR
+	      && value->lval () == lval_internalvar
+	      && c_is_string_type_p (value->type ()))
+	    {
+	      ...
+	    }
+
+	Otherwise, it attempts to read the value of the string from the target's
+	memory (which is what actually generates the "evaluation of this ..."
+	error message).
+
+2023-04-28  Tom Tromey  <tromey@adacore.com>
+
+	Move find_minimal_symbol_address to minsyms.c
+	I found find_minimal_symbol_address in parse.c, but it seems to me
+	that it belongs in minsyms.c.
+
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-04-28  Tom Tromey  <tromey@adacore.com>
+
+	Do not change type in get_discrete_low_bound
+	get_discrete_low_bound has this code:
+
+	    /* Set unsigned indicator if warranted.  */
+	    if (low >= 0)
+	      type->set_is_unsigned (true);
+
+	It's bad to modify a type in a getter like this, so this patch removes
+	this code.  FWIW I looked and this code has been there since at least
+	1999 (it was in the initial sourceware import).
+
+	Types in general would benefit from const-ification, which would
+	probably reveal more code like this, but I haven't attempted that.
+
+	Regression tested on x86-64 Fedora 36.
+
+	Reviewed-by: Kevin Buettner <kevinb@redhat.com>
+
+2023-04-28  Tom Tromey  <tromey@adacore.com>
+
+	Remove @var from @defun in Python documentation
+	Eli pointed out that @var isn't needed in @defun in Texinfo.  This
+	patch removes the cases I found in python.texi.  I also renamed some
+	variables in one spot, because "-" isn't valid in a Python variable
+	name.
+
+2023-04-28  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: additional test fixes after gdb_test changes
+	After this commit:
+
+	  commit e2f620135d92f7cd670af4e524fffec7ac307666
+	  Date:   Thu Mar 30 13:26:25 2023 +0100
+
+	      gdb/testsuite: change newline patterns used in gdb_test
+
+	There were some regressions in gdb.trace/*.exp tests when run with the
+	native-gdbserver board.  This commit fixes these regressions.
+
+	All the problems are caused by unnecessary trailing newline characters
+	included in the patterns passed to gdb_test.  After the above commit
+	the testsuite is stricter when matching trailing newlines, and so the
+	additional trailing newline characters are now causing the test to
+	fail.  Fix by removing all the excess trailing newline characters.
+
+	In some cases this cleanup means we should use gdb_test_no_output,
+	I've done that where appropriate.  In a couple of other places I've
+	made use of multi_line to better build the expected output pattern.
+
+2023-04-28  H.J. Lu  <hjl.tools@gmail.com>
+
+	ld: Use run_cc_link_tests for PR ld/26391 tests
+	Use run_cc_link_tests for PR ld/26391 tests to compile PR ld/26391 tests
+	in C.
+
+		PR ld/30002
+		* testsuite/ld-elf/elf.exp: Use run_cc_link_tests for PR ld/26391
+		tests.
+
+2023-04-28  Eli Zaretskii  <eliz@gnu.org>
+
+	Fix a typo in gdb.texinfo.
+
+2023-04-28  Nelson Chu  <nelson@rivosinc.com>
+
+	RISC-V: Enable x0 base relaxation for relax_pc even if --no-relax-gp.
+	Let --no-relax-gp only disable the gp relaxation for lui and pcrel
+	relaxations, since x0 base and gp relaxations are different optimizations
+	in fact, but just use the same function to handle.
+
+	bfd/
+		* elfnn-riscv.c (_bfd_riscv_relax_pc): Like _bfd_riscv_relax_lui,
+		set gp to zero when --no-relax-gp, then we should still keep the
+		x0 base relaxation.
+		(_bfd_riscv_relax_section): Enable _bfd_riscv_relax_pc when
+		--no-relax-gp, we will disable the gp relaxation in the
+		_bfd_riscv_relax_pc.
+
+2023-04-28  Nelson Chu  <nelson@rivosinc.com>
+
+	RISC-V: Relax R_RISCV_[PCREL_]LO12_I/S to R_RISCV_GPREL_I/S for undefined weak.
+	bfd/
+		*elfnn-riscv.c (_bfd_riscv_relax_lui): For undefined weak symbol,
+		just relax the R_RISCV_LO12_I/S to R_RISCV_GPREL_I/S, and then don't
+		update the rs1 to zero until relocate_section.
+		(_bfd_riscv_relax_pc): Likewise, but for R_RISCV_PCREL_LO12_I/S.
+
+2023-04-28  Jan Beulich  <jbeulich@suse.com>
+
+	x86: limit data passed to i386_dis_printf()
+	The function doesn't use "ins" for other than retrieving "info". Remove
+	a thus pointless level of indirection.
+
+	x86: limit data passed to prefix_name()
+	Make apparent that neither what "ins" points to nor, in particular, that
+	"ins->info->private_data" is actually used in the function.
+
+	x86/Intel: reduce ELF/PE conditional scope in x86_cons()
+	All the Intel syntax related state adjustments apply independent of
+	target or object format.
+
+	gas: move shift count check
+	... out of mainline code, grouping together the two case labels. This
+	then also make more obvious that the comment there applies to both forms
+	of shifts.
+
+	x86: rework AMX control insn disassembly
+	Consistently do 64-bit first, VEX.L second, VEX.W third, ModR/M fourth,
+	and only then prefix, resulting in fewer table entries. Note that in the
+	course of the re-work
+	- TILEZERO has a previously missing decode step through rm_table[]
+	  added,
+	- a wrong M_0 suffix for TILEZERO is also corrected to be M_1 (now an
+	  infix).
+
+2023-04-28  Jan Beulich  <jbeulich@suse.com>
+
+	x86: rework AMX multiplication insn disassembly
+	Consistently do 64-bit first, ModR/M second, VEX.L third, VEX.W fourth,
+	and prefix last, resulting in fewer table entries. Note that in the
+	course of the re-work wrong M_0 suffixes are also corrected to be M_1
+	(partly infixes now).
+
+	Since it ended up confusing while testing the change, also adjust the
+	test name in x86-64-amx-bad.d (to be distinct from x86-64-amx.d's).
+
+2023-04-28  Alan Modra  <amodra@gmail.com>
+
+	Re: Keeping track of rs6000-coff archive element pointers
+	Commit de7b90610e9e left a hole in the element checking, explained by
+	the comment added to _bfd_xcoff_openr_next_archived_file.  While
+	fixing this, tidy some types used to hold unsigned values so that
+	casts are not needed to avoid signed/unsigned comparison warnings.
+	Also tidy a few things in xcoff.h.
+
+	bfd/
+		* coff-rs6000.c (_bfd_xcoff_openr_next_archived_file): Check
+		that we aren't pointing back at the last element.  Make
+		filestart a ufile_ptr.  Update for xcoff_artdata change.
+		(_bfd_strntol, _bfd_strntoll): Return unsigned values.
+		(_bfd_xcoff_slurp_armap): Make off a ufile_ptr.
+		(add_ranges): Update for xcoff_artdata change.
+		* libbfd-in.h (struct artdata): Make first_file_filepos a
+		ufile_ptr.
+		* libbfd.h: Regenerate.
+	include/
+		* coff/xcoff.h (struct xcoff_artdata): Replace min_elt with
+		ar_hdr_size.
+		(xcoff_big_format_p): In the !SMALL_ARCHIVE case return true
+		for anything but a small archive.
+
+2023-04-28  Alan Modra  <amodra@gmail.com>
+
+	Remove deprecated bfd_read
+	20+ years is long enough to warn.
+
+		* bfd-in.h (bfd_read, bfd_write): Don't define
+		(_bfd_warn_deprecated): Don't declare.
+		* bfd-in2.h: Regenerate.
+		* libbfd.c (_bfd_warn_deprecated): Delete.
+
+2023-04-28  Alan Modra  <amodra@gmail.com>
+
+	Make bfd_byte an int8_t, flagword a uint32_t
+		* bfd-in.h (bfd_byte): Typedef as int8_t.
+		(flagword): Typedef as uint32_t.
+		(bfd_vma, bfd_signed_vma, bfd_size_type, symvalue): Use stdint
+		types in !BFD64 case.
+		* bfd-in2.h: Regenerate.
+
+2023-04-28  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	gas: bpf: fix tests for pseudo-c syntax
+	This patch fixes the GAS BPF testsuite so the tests for pseudo-c
+	syntax are actually executed.
+
+	2023-04-27  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+		* testsuite/gas/bpf/mem.dump: New file.
+		* testsuite/gas/bpf/mem-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/mem.d: #dump mem.dump.
+		* testsuite/gas/bpf/lddw.dump: New file.
+		* testsuite/gas/bpf/lddw-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/lddw.d: #dump lddw.dump.
+		* testsuite/gas/bpf/jump.dump: New file.
+		* testsuite/gas/bpf/jump-pseudoc.d: Likewise
+		* testsuite/gas/bpf/jump.d: #dump jump.dump.
+		* testsuite/gas/bpf/jump32.dump: New file.
+		* testsuite/gas/bpf/jump32-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/jump32.d: #dump jump32.dump.
+		* testsuite/gas/bpf/lddw-be.dump: New file.
+		* testsuite/gas/bpf/lddw-be-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/lddw-be.d: #dump lddw-be.dump.
+		* testsuite/gas/bpf/indcall-1.dump: New file.
+		* testsuite/gas/bpf/indcall-1-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/indcall-1.d: #dump indcall-1.dump.
+		* testsuite/gas/bpf/indcall-1-pseudoc.s (main): Fix lddw
+		instruction.
+		* testsuite/gas/bpf/atomic.dump: New file.
+		* testsuite/gas/bpf/atomic-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/atomic.d: #dump atomic.dump.
+		* testsuite/gas/bpf/alu32.dump: New file.
+		* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/alu32.d: #dump alu32.dump.
+		* testsuite/gas/bpf/alu.dump: New file.
+		* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/alu.d: #dump alu.dump.
+
+		* testsuite/gas/bpf/alu-be.dump: New file.
+		* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
+		* testsuite/gas/bpf/alu-be.d: #dump alu-be.dump.
+		* testsuite/gas/bpf/alu32-be-pseudoc.d: New file.
+		* testsuite/gas/bpf/alu32-be-dump: Likewise.
+		* testsuite/gas/bpf/alu32-be.d: #dump alu32-be-dump.
+		* testsuite/gas/bpf/bpf.exp: Run *-pseudoc tests.
+
+2023-04-27  Tom Tromey  <tromey@adacore.com>
+
+	Avoid some compiler warnings in gdb.ada
+	Running gdb.ada/verylong.exp shows a warning from the Ada compiler:
+
+	prog.adb:16:11: warning: file name does not match unit name, should be "main.adb" [enabled by default]
+
+	This patch fixes the problem, and another similar one in
+	unchecked_union.exp.
+
+2023-04-27  Michael Matz  <matz@suse.de>
+
+	Fix PR30358, performance with --sort-section
+	since af31506c we only use the binary tree when section sorting is
+	required.  While its unbalanced and hence can degrade to a linear list
+	it should otherwise have been equivalent to the old code relying on
+	insertion sort.  Unfortunately it was not.  The old code directly used
+	lang_add_section to populate the sorted list, the new code first
+	populates the tree and only then does lang_add_section on the sorted
+	result.
+
+	In the testcase we have very many linkonce section groups, and hence
+	lang_add_section won't actually insert anything for most of them.  That
+	limited the to-be-sorted list length previously.  The tree-sorting code
+	OTOH first created a tree of all candidates sections, including those
+	that wouldn't be inserted by lang_add_section, hence increasing the size
+	of the sorting problem.  In the testcase the chain length went from
+	about 1500 to 106000, and in the degenerated case (as in the testcase)
+	that goes in quadratically.
+
+	This splits out most of the early-out code from lang_add_section to its
+	own function and uses the latter to avoid inserting into the tree.  This
+	refactoring slightly changes the order of early-out tests (the ones
+	based on section flags is now done last, and only in lang_add_section).
+	The new function is not a pure predicate: it can give warnings and it
+	might change output_section, like the old early-out code did.  I have
+	also added a skip-warning case in the first discard case, whose
+	non-existence seemed to have been an oversight.
+
+		PR 30358
+		* ldlang.c (wont_add_section_p): Split out from ...
+		(lang_add_section): ... here.
+		(output_section_callback_sort): Use wont_add_section_p to not
+		always add sections to the sort tree.
+
+2023-04-27  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/doc: extend the documentation of the jump command
+	This commit addresses PR gdb/7946.  While checking for bugs relating
+	to the jump command I noticed a long standing bug that points out a
+	deficiency with GDB's documentation of the jump command.
+
+	The bug points out that 'jump 0x...' is not always the same as 'set
+	$pc = 0x...' and then 'continue'.  Writing directly to the $pc
+	register does not update any auxiliary state, e.g. $npc on SPARC,
+	while using 'jump' does.
+
+	It felt like this would be an easy issue to address by adding a
+	paragraph to the docs, so I took a stab at writing something suitable.
+
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=7946
+
+	Approved-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-04-27  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: special case '^' in gdb_test pattern
+	In this commit I propose that we add special handling for the '^' when
+	used at the start of a gdb_test pattern.  Consider this usage:
+
+	  gdb_test "some_command" "^command output pattern"
+
+	I think the intention here is pretty clear - run 'some_command', and
+	the output from the command should be exactly 'command output
+	pattern'.
+
+	After the previous commit which tightened up how gdb_test matches the
+	final newline and prompt we know that the only thing after the output
+	pattern will be a single newline and prompt, and the leading '^'
+	ensures that there's no output before 'command output pattern', so
+	this will do what I want, right?
+
+	... except it doesn't.  The command itself will also needs to be
+	matched, so I should really write:
+
+	  gdb_test "some_command" "^some_command\r\ncommand output pattern"
+
+	which will do what I want, right?  Well, that's fine until I change
+	the command and include some regexp character, then I have to write:
+
+	  gdb_test "some_command" \
+	    "^[string_to_regexp some_command]\r\ncommand output pattern"
+
+	but this all gets a bit verbose, so in most cases I simply don't
+	bother anchoring the output with a '^', and a quick scan of the
+	testsuite would indicate that most other folk don't both either.
+
+	What I propose is this: the *only* thing that can appear immediately
+	after the '^' is the command converted into a regexp, so lets do that
+	automatically, moving the work into gdb_test.  Thus, when I write:
+
+	  gdb_test "some_command" "^command output pattern"
+
+	Inside gdb_test we will spot the leading '^' in the pattern, and
+	inject the regexp version of the command after the '^', followed by a
+	'\r\n'.
+
+	My hope is that given this new ability, folk will be more inclined to
+	anchor their output patterns when this makes sense to do so.  This
+	should increase our ability to catch any unexpected output from GDB
+	that appears as a result of running a particular command.
+
+	There is one problem case we need to consider, sometime people do
+	this:
+
+	  gdb_test "" "^expected output pattern"
+
+	In this case no command is sent to GDB, but we are still expecting
+	some output from GDB.  This might be a result of some asynchronous
+	event for example.  As there is no command sent to GDB (from the
+	gdb_test) there will be no command text to parse.
+
+	In this case my proposed new feature injects the command regexp, which
+	is the empty string (as the command itself is empty), but still
+	injects the '\r\n' after the command regexp, thus we end up with this
+	pattern:
+
+	  ^\r\nexpected output pattern
+
+	This extra '\r\n' is not what we should expected here, and so there is
+	a special case inside gdb_test -- if the command is empty then don't
+	add anything after the '^' character.
+
+	There are a bunch of tests that do already use '^' followed by the
+	command, and these can all be simplified in this commit.
+
+	I've tried to run all the tests that I can to check this commit, but I
+	am certain that there will be some tests that I manage to miss.
+	Apologies for any regressions this commit causes, hopefully fixing the
+	regressions will not be too hard.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-27  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: change newline patterns used in gdb_test
+	This commit makes two changes to how we match newline characters in
+	the gdb_test proc.
+
+	First, for the newline pattern between the command output and the
+	prompt, I propose changing from '[\r\n]+' to an explicit '\r\n'.
+
+	The old pattern would spot multiple newlines, and so there are a few
+	places where, as part of this commit, I've needed to add an extra
+	trailing '\r\n' to the pattern in the main test file, where GDB's
+	output actually includes a blank line.
+
+	But I think this is a good thing.  If a command produces a blank line
+	then we should be checking for it, the current gdb_test doesn't do
+	that.  But also, with the current gdb_test, if a blank line suddenly
+	appears in the output, this is going to be silently ignored, and I
+	think this is wrong, the test should fail in that case.
+
+	Additionally, the existing pattern will happily match a partial
+	newline.  There are a strangely large number of tests that end with a
+	random '.' character.  Not matching a literal period, but matching any
+	single character, this is then matching half of the trailing newline
+	sequence, while the \[\r\n\]+ in gdb_test is matching the other half
+	of the sequence.  I can think of no reason why this would be
+	intentional, I suspect that the expected output at one time included a
+	period, which has since been remove, but I haven't bothered to check
+	on this.  In this commit I've removed all these unneeded trailing '.'
+	characters.
+
+	The basic rule of gdb_test after this is that the expected pattern
+	needs to match everything up to, but not including the newline
+	sequence immediately before the GDB prompt.  This is generally how the
+	proc is used anyway, so in almost all cases, this commit represents no
+	significant change.
+
+	Second, while I was cleaning up newline matching in gdb_test, I've
+	also removed the '[\r\n]*' that was added to the start of the pattern
+	passed to gdb_test_multiple.
+
+	The addition of this pattern adds no value.  If the user pattern
+	matches at the start of a line then this would match against the
+	newline sequence.  But, due to the '*', if the user pattern doesn't
+	match at the start of a line then this group doesn't care, it'll
+	happily match nothing.
+
+	As such, there's no value to it, it just adds more complexity for no
+	gain, so I'm removing it.  No tests will need updating as a
+	consequence of this part of the patch.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-27  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: use 'return' in gdb_test_no_output
+	A TCL proc will return the return value of the last command executed
+	within the proc's body if there is no explicit return call, so
+	gdb_test_no_output is already returning the return value of
+	gdb_test_multiple.
+
+	However, I'm not a fan of (relying on) this implicit return value
+	behaviour -- I prefer to be explicit about what we are doing.  So in
+	this commit I have extended the comment on gdb_test_no_output to
+	document the possible return values (just as gdb_test does), and
+	explicitly call return.
+
+	This should make no different to our testing, but I think it's clearer
+	now what the gdb_test_no_output proc is expected to do.
+
+	The two tests gdb.base/auxv.exp and gdb.base/list.exp both rely on the
+	return value of gdb_test_no_output, and continue to pass after this
+	change.
+
+	I also spotted that gdb.base/watchpoint.exp could be updated to make
+	use of gdb_test_no_output, so I did that.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-27  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb: remove some trailing newlines from warning messages
+	While working on a later patch in this series, which tightens up some
+	of our pattern matching when using gdb_test, I ran into some failures
+	caused by some warnings having a trailing newline character.
+
+	The warning function already adds a trailing newline, and it is my
+	understanding that we should not be adding a second by including a
+	newline at the end of any warning message.
+
+	The problem cases I found were in language.c and remote.c, in this
+	patch I fix the cases I hit, but I also checked all the other warning
+	calls in these two files and removed any additional trailing newlines
+	I found.
+
+	In remote.c the warning actually had a newline character in the middle
+	of the warning message (in addition to the trailing newline), which
+	I've removed.  I don't think it's helpful to forcibly split a warning
+	as was done here -- in the middle of a sentence.  Additionally, the
+	message isn't even that long (71 characters), so I think removing this
+	newline is an improvement.
+
+	None of the expected test result need updating with this commit,
+	currently the patterns in gdb_test will match one or more newline
+	sequences, so the tests are as happy with one newline (after this
+	commit) as they are with two newlines (before this commit).  A later
+	commit will change gdb_test so that it is not so forgiving, and these
+	warnings would have caused some failures.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-27  Andrew Burgess  <aburgess@redhat.com>
+
+	gdb/testsuite: fix occasional failure in gdb.base/clear_non_user_bp.exp
+	I noticed that the gdb.base/clear_non_user_bp.exp test would sometimes
+	fail when run from a particular directory.
+
+	The test tries to find the number of the first internal breakpoint
+	using this proc:
+
+	  proc get_first_maint_bp_num { } {
+	      gdb_test_multiple "maint info break" "find first internal bp num" {
+	  	-re -wrap "(-\[0-9\]).*" {
+	  	    return $expect_out(1,string)
+	  	}
+	      }
+	      return ""
+	  }
+
+	The problem is, at the time we issue 'maint info break' there are both
+	internal breakpoint and non-internal (user created) breakpoints in
+	place.  The user created breakpoints include the path to the source
+	file.
+
+	Sometimes, I'll be working from a directory that includes a number,
+	like '/tmp/blah-1/gdb/etc', in which case the pattern above actually
+	matches the '-1' from 'blah-1'.  In this case there's no significant
+	problem as it turns out that -1 is the number of the first internal
+	breakpoint.
+
+	Sometimes my directory name might be '/tmp/blah-4/gdb/etc', in which
+	case the above pattern patches '-4' from 'blah-4'.  It turns out this
+	is also not a problem -- the test doesn't actually need the first
+	internal breakpoint number, it just needs the number of any internal
+	breakpoint.
+
+	But sometimes my directory name might be '/tmp/blah-0/gdb/etc', in
+	which case the pattern above matches '-0' from 'blah-0', and in this
+	case the test fails - there is no internal breakpoint '-0'.
+
+	Fix this by spotting that the internal breakpoint numbers always
+	occurs after a '\r\n', and that they never start with a 0.  Our
+	pattern becomes:
+
+	  	-re -wrap "\r\n(-\[1-9\]\[0-9\]*).*" {
+	  	    return $expect_out(1,string)
+	  	}
+
+	After this I'm no longer seeing any failures.
+
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-27  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>
+
+	gdb, doc: add index entry for the $_inferior_thread_count convenience var
+	Add a marker in the documentation for indexing the $_inferior_thread_count
+	variable.
+
+	Approved-By: Eli Zaretskii <eliz@gnu.org>
+
+2023-04-27  Nick Clifton  <nickc@redhat.com>
+
+	Add support for %x and %lx formats to the linker's vinfo() function.
+
+2023-04-27  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-26  Philipp Tomsich  <philipp.tomsich@vrull.eu>
+
+	    RISC-V: Support XVentanaCondOps extension
+	    Ventana Micro has published the specification for their
+	    XVentanaCondOps ("conditional ops") extension at
+	      https://github.com/ventanamicro/ventana-custom-extensions/releases/download/v1.0.0/ventana-custom-extensions-v1.0.0.pdf
+	    which contains two new instructions
+	      - vt.maskc
+	      - vt.maskcn
+	    that can be used in constructing branchless sequences for
+	    various conditional-arithmetic, conditional-logical, and
+	    conditional-select operations.
+
+	    To support such vendor-defined instructions in the mainline binutils,
+	    this change also adds a riscv_supported_vendor_x_ext secondary
+	    dispatch table (but also keeps the behaviour of allowing any unknow
+	    X-extension to be specified in addition to the known ones from this
+	    table).
+
+	    As discussed, this change already includes the planned/agreed future
+	    requirements for X-extensions (which are likely to be captured in the
+	    riscv-toolchain-conventions repository):
+	      - a public specification document is available (see above) and is
+	        referenced from the gas-documentation
+	      - the naming follows chapter 27 of the RISC-V ISA specification
+	      - instructions are prefixed by a vendor-prefix (vt for Ventana)
+	        to ensure that they neither conflict with future standard
+	        extensions nor clash with other vendors
+
+	    bfd/ChangeLog:
+
+	            * elfxx-riscv.c (riscv_get_default_ext_version): Add riscv_supported_vendor_x_ext.
+	            (riscv_multi_subset_supports): Recognize INSN_CLASS_XVENTANACONDOPS.
+
+	    gas/ChangeLog:
+
+	            * doc/c-riscv.texi: Add section to list custom extensions and
+	              their documentation URLs.
+	            * testsuite/gas/riscv/x-ventana-condops.d: New test.
+	            * testsuite/gas/riscv/x-ventana-condops.s: New test.
+
+	    include/ChangeLog:
+
+	            * opcode/riscv-opc.h Add vt.maskc and vt.maskcn.
+	            * opcode/riscv.h (enum riscv_insn_class): Add INSN_CLASS_XVENTANACONDOPS.
+
+	    opcodes/ChangeLog:
+
+	            * riscv-opc.c: Add vt.maskc and vt.maskcn.
+
+	    Series-version: 1
+	    Series-to: binutils@sourceware.org
+	    Series-cc: Kito Cheng <kito.cheng@sifive.com>
+	    Series-cc: Nelson Chu <nelson.chu@sifive.com>
+	    Series-cc: Greg Favor <gfavor@ventanamicro.com>
+	    Series-cc: Christoph Muellner <cmuellner@gcc.gnu.org>
+
+2023-04-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	gas: documentation for the BPF pseudo-c asm syntax
+	This patch expands the GAS manual in order to specify the alternate
+	pseudo-C assembly syntax used in BPF, and now supported by the
+	assembler.
+
+	gas/ChangeLog:
+
+	2023-04-19  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+		PR gas/29757
+		* doc/c-bpf.texi (BPF Pseudo-C Syntax): New section.
+
+2023-04-26  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
+
+	gas: BPF pseudo-c syntax tests
+	This patch expands the GAS BPF testsuite in order to also test the
+	alternative pseudo-C syntax used in BPF assembly.
+
+	This includes three main changes:
+
+	- Some general GAS tests involving assignment and equality operands in
+	  expressions (such as = and ==) are disabled in bpf-* targets,
+	  because the syntax collides with the pseudo-C BPF assembly syntax.
+
+	- New tests are added to the BPF GAS testsuite that test the pseudo-c
+	syntax.  Tests for all BPF instructions are included.
+
+	- New tests are added to the BPF GAS testsuite that test the support
+	  for both syntaxes in the same source.
+
+	gas/ChangeLog:
+
+	2023-04-20  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
+
+		PR gas/29728
+		* testsuite/gas/all/assign-bad-recursive.d: Skip test in bpf-*
+		targets.
+		* testsuite/gas/all/eqv-dot.d: Likewise.
+		* testsuite/gas/all/gas.exp: Skip other assignment tests in bpf-*.
+		* testsuite/gas/bpf/alu-pseudoc.s: New file.
+		* testsuite/gas/bpf/pseudoc-normal.s: Likewise.
+		* testsuite/gas/bpf/pseudoc-normal.d: Likewise.
+		* testsuite/gas/bpf/pseudoc-normal-be.d: Likewise.
+		* testsuite/gas/bpf/mem-pseudoc.s: Likewise.
+		* testsuite/gas/bpf/lddw-pseudoc.s: Likewise.
+		* testsuite/gas/bpf/jump32-pseudoc.s: Likewise.
+		* testsuite/gas/bpf/jump-pseudoc.s: Likewise.
+		* testsuite/gas/bpf/indcall-1-pseudoc.s: Likewise.
+		* testsuite/gas/bpf/atomic-pseudoc.s: Likewise.
+		* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
+		* testsuite/gas/bpf/*.d: Add -pseudoc variants of the tests.
+
+2023-04-26  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
+
+	gas: support for the BPF pseudo-c assembly syntax
+	This patch adds support to the GNU assembler for an alternative
+	assembly syntax used in BPF.  This syntax is C-like and very
+	unconventional for an assembly language, but it is generated by
+	clang/llvm and is also used in inline asm templates in kernel code, so
+	we ought to support it.
+
+	After this patch, the assembler is able to parse instructions in both
+	supported syntax: the normal assembly-like syntax and the pseudo-C
+	syntax.  Instruction formats can be mixed in the source program: the
+	assembler recognizes the right syntax to use.
+
+	gas/ChangeLog:
+
+	2023-04-20  Guillermo E. Martinez  <guillermo.e.martinez@oracle.com>
+
+		PR gas/29728
+		* config/tc-bpf.h (TC_EQUAL_IN_INSN): Define.
+		* config/tc-bpf.c (LEX_IS_SYMBOL_COMPONENT): Define.
+		(LEX_IS_WHITESPACE): Likewise.
+		(LEX_IS_NEWLINE): Likewise.
+		(LEX_IS_ARITHM_OP): Likewise.
+		(LEX_IS_STAR): Likewise.
+		(LEX_IS_CLSE_BR): Likewise.
+		(LEX_IS_OPEN_BR): Likewise.
+		(LEX_IS_EQUAL): Likewise.
+		(LEX_IS_EXCLA): Likewise.
+		(ST_EOI): Likewise.
+		(MAX_TOKEN_SZ): Likewise.
+		(init_pseudoc_lex): New function.
+		(md_begin): Call init_pseudoc_lex.
+		(valid_expr): New function.
+		(build_bpf_non_generic_load): Likewise.
+		(build_bpf_atomic_insn): Likewise.
+		(build_bpf_jmp_insn): Likewise.
+		(build_bpf_arithm_insn): Likewise.
+		(build_bpf_endianness): Likewise.
+		(build_bpf_load_store_insn): Likewise.
+		(look_for_reserved_word): Likewise.
+		(is_register): Likewise.
+		(is_cast): Likewise.
+		(get_token): Likewise.
+		(bpf_pseudoc_to_normal_syntax): Likewise.
+		(md_assemble): Try pseudo-C syntax if an instruction cannot be
+		parsed.
+
+2023-04-26  Jose E. Marchesi  <jose.marchesi@oracle.com>
+
+	sim: bpf: update to new BPF relocations
+	This patch updates the BPF GNU sim testsuite in order to match the new
+	BPF relocations introduced in binutils in a recent patch [1].
+
+	[1] https://sourceware.org/pipermail/binutils/2023-March/126429.html
+
+2023-04-26  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/tui] Fix length of status line string
+	In commit 5d10a2041eb ("gdb: add string_file::release method") this was added:
+	...
+	+  std::string string_val = string.release ();
+	...
+	without updating subsequent uses of string.size (), which returns 0 after the
+	string.release () call.
+
+	Fix this by:
+	- using string_val.size () instead of string.size (), and
+	- adding an assert that would have caught this regression.
+
+	Tested on x86_64-linux.
+
+	Reviewed-By: Simon Marchi <simon.marchi@efficios.com>
+	PR tui/30389
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30389
+
+2023-04-26  Tom Tromey  <tromey@adacore.com>
+
+	Rewrite gdb_mpz::operator==
+	Simon pointed out that the recent changes to gdb_mpz caused a build
+	failure on amd64 macOS.  It turns out to be somewhat difficult to
+	overload a method in a way that will work "naturally" for all integer
+	types; especially in a case like gdb_mpz::operator==, where it's
+	desirable to special case all integer types that are no wider than
+	'long'.
+
+	After a false start, I came up with this patch, which seems to work.
+	It applies the desirable GMP special cases directly in the body,
+	rather than via overloads.
+
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-04-26  Luis Machado  <luis.machado@arm.com>
+
+	Updated debug architecture version checks for fbsd
+	There are two new debug architecture version entries.  I updated the
+	code for Linux, but fbsd also needs updating.
+
+	This patch does this, and should be pretty straightforward.
+
+	I can't test this on native fbsd, but I'm fairly confident it should
+	work.
+
+2023-04-26  Luis Machado  <luis.machado@arm.com>
+
+	Add new debug architecture version
+	Teach gdb about a new debug architecture version for AArch64 (0x11).
+
+	No user-visible changes.
+
+	Regression-tested on aarch64-linux Ubuntu 20.04/22.04.
+
+2023-04-26  Alan Modra  <amodra@gmail.com>
+
+	i386-dis.c UB shift and other tidies
+	1) i386-dis.c:12055:11: runtime error: left shift of negative value -1
+	Bit twiddling is best done unsigned, due to UB on overflow of signed
+	expressions.  Fix this by using bfd_vma rather than bfd_signed_vma
+	everywhere in i386-dis.c except print_displacement.
+
+	2) Return get32s and get16 value in a bfd_vma, reducing the need for
+	temp variables.
+
+	3) Introduce get16s and get8s functions to simplify the code.
+
+	4) With some optimisation options gcc-13 legitimately complains about
+	a fall-through in OP_I.  Fix that.  OP_I also doesn't need to use
+	"mask" which was wrong for w_mode anyway.
+
+	5) Masking with & 0xffffffff is better than casting to unsigned.  We
+	don't know for sure that unsigned int is 32-bit.
+
+	6) We also don't know that unsigned char is 8 bits.  Mask codep
+	accesses everywhere.  I don't expect binutils will work on anything
+	other than an 8-bit char host, but if we are masking codep accesses in
+	some places we might as well be consistent.  (Better would be to use
+	stdint.h types more in binutils.)
+
+2023-04-26  Alan Modra  <amodra@gmail.com>
+
+	binutils runtest $CC
+	I noticed in the binutile Makefile that runtest is being invoked with
+	CC, CC_FOR_BUILD and other compiler related flags in the environment.
+	That doesn't work.  Those variables ought to be passed on the runtest
+	command line.
+
+	After fixing that I had some fails due to binutils testprog.c now
+	being compiled with the default "-g -O2" picked up in
+	CFLAGS_FOR_TARGET.  Hack around that by passing -O0.
+
+	Also, with the binutils testsuite now taking notice of CC_FOR_TARGET,
+	I found a couple of debuginfod.exp fails with one of my compilers that
+	happened to be built without --debug-id being enabled by default.
+
+		* Makefile.am (check-DEJAGNU): Pass $CC and other variable on
+		the runtest command line rather than futilely in the
+		environment.  Add -O0 to CFLAGS_FOR_TARGET.
+		* Makefile.in: Regenerate.
+		* testsuite/binutils-all/debuginfod.exp: Compile testprog.c
+		with -Wl,--build-id.
+
+2023-04-26  Alan Modra  <amodra@gmail.com>
+
+	Avoid another -Werror=dangling-pointer
+	write.c:415:7: error: dangling pointer ‘prev_frag’ to ‘dummy’ may be used
+
+		* write.c (chain_frchains_together_1): Rewrite loop as a do
+		while to avoid false positive -Wdangling-pointer.
+
+2023-04-26  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-25  Tom Tromey  <tromey@adacore.com>
+
+	Use scoped_restore in varobj.c
+	One spot in varobj.c should use scoped_restore to save and restore
+	input_radix.  Note that the current code may fail to restore it on
+	error, so this patch fixes a latent bug.
+
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-04-25  Tom Tromey  <tromey@adacore.com>
+
+	Remove some "goto"s from parse.c
+	parser_state::push_dollar has some unnecessary "goto"s.  Replacing
+	them cleans up the code.  Regression tested on x86-64 Fedora 36.
+
+	Approved-By: Simon Marchi <simon.marchi@efficios.com>
+
+2023-04-25  Michael Matz  <matz@suse.de>
+
+	section-select: Fix performance problem (PR30367)
+	when using many wild-statements with non-wildcard filenames we
+	were running into quadraticness via repeatedly using lookup_name
+	on a long list of loaded files.  I've originally retained using
+	lookup_name because that preserved existing behaviour most obviously.
+	In particular in matching wild-statements when using a non-wildcard
+	filename it matches against local_sym_name, not the filename member.
+	If the wildspec would have an archive-spec or a wildcard it would use
+	the filename member, though.  Also it would load the named file
+	(and ignore it, as being not equal to the currently considered
+	input-statement).
+
+	Rewrite this to not use lookup_name but retain the comparison
+	against local_sym_name with a comment to that effect.
+
+		PR 30367
+		* ldlang.c (walk_wild_section_match): Don't use lookup_name
+		but directly compare spec and local_sym_name.
+
+2023-04-25  Jan Beulich  <jbeulich@suse.com>
+
+	RISC-V: adjust logic to avoid register name symbols
+	Special casing GPR names in my_getSmallExpression() leads to a number of
+	inconsistencies. Generalize this by utilizing the md_parse_name() hook,
+	limited to when instruction operands are being parsed (really: probed).
+	Then both the GPR lookup there and the yet more ad hoc workaround for
+	PR/gas 29940 can be removed (including its extension needed for making
+	the compressed form JAL work again).
+
+	RISC-V: test for expected / no unexpected symbols
+	Both the temporary workaround for PR/gas 29940 and the existing special
+	casing of GPRs in my_getSmallExpression() aren't really tested anywhere
+	(i.e. with the workarounds remove testing would still succeed). Nor is
+	there any test for uses of symbols with names matching GPRs, where such
+	is permitted. Before altering how this is to be dealt with, install two
+	testcases covering the expected behavior. (For now this includes only
+	known affected insns; re-ordering of entries in riscv_opcodes[] could,
+	however, yield more of them.)
+
+	RISC-V: don't recognize bogus relocations
+	With my_getSmallExpression() consistently and silently failing on
+	relocation operators not fitting an insn, it is no longer necessary to
+	hand it percent_op_itype[] "just in case" (i.e. to avoid errors when a
+	subsequent parsing attempt for another operand combination might
+	succeed). This also eliminates the latent problem of percent_op_itype[]
+	and percent_op_stype[] growing a non-identical set of recognized
+	relocation operators.
+
+	RISC-V: avoid redundant and misleading/wrong error messages
+	The use of a wrong (for the insn) relocation operator (or a future one
+	which simply isn't recognized by older gas yet) doesn't render the (rest
+	of the) expression "bad". Furthermore alongside the error from
+	expression() in most cases the parser would emit another error then
+	anyway. Suppress the call to my_getExpression() in such a case,
+	arranging for a guaranteed subsequent error message by marking the
+	expression "illegal".
+
+	RISC-V: drop "percent_op" parameter from my_getOpcodeExpression()
+	Both callers check for no relocations, so there's no point parsing for
+	some. Have the function pass percent_op_null into
+	my_getSmallExpression(). Note that there's no point passing
+	percent_op_itype: Elsewhere, especially when processing compressed alias
+	insns ahead of non-alias ones, this has the effect of avoiding "bad
+	expression" errors when another parsing pass may follow (and succeed).
+	Here, however, all alternative forms of an insn type will again start
+	with the same O4 or O2, so avoiding errors earlier on doesn't really
+	help. Plus constructs with a relocation specifier (as percent_op_itype
+	would permit) can't be specified anyway, as the scrubber eats the
+	whitespace between .insn's type and the O4 or O2 expression when that
+	starts with % or ( - i.e. these will be seen as e.g. "i%lo(x)", and
+	riscv_ip() looks only for whitespace when finding the end of a mnemonic.
+
+	RISC-V: minor effort reduction in relocation specifier parsing
+	The sole caller of parse_relocation() has already checked for the %
+	prefix, so there's no need to check for it again in the strncasecmp()
+	and there's also no reason to make the involved string literals longer
+	than necessary.
+
+2023-04-25  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix timeout in gdb.tui/empty.exp
+	In test-case gdb.tui/empty.exp we run into:
+	...
+	WARNING: timeout in accept_gdb_output
+	PASS: gdb.tui/empty.exp: src: 90x40: box 1
+	...
+
+	We timeout here in Term::resize:
+	...
+		# Due to the strange column resizing behavior, and because we
+		# don't care about this intermediate resize, we don't check
+		# the size here.
+		wait_for "@@ resize done $_resize_count"
+	...
+	because the string we're trying to match is split over two lines:
+	...
+	25 -----------------------------------------------------------------------------+No
+	26 ne No process In:                                               L??   PC: ?? @@
+	27 resize done 0, size = 79x40
+	28 (gdb)
+	...
+
+	Fix this by dropping the "@@ " prefix.
+
+	Tested on x86_64-linux.
+
+2023-04-25  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix timeout in gdb.tui/completion.exp
+	With test-case gdb.tui/completion.exp, we run into:
+	...
+	WARNING: timeout in accept_gdb_output
+	PASS: gdb.tui/completion.exp: check focus completions
+	...
+
+	The timeout happens in this command:
+	...
+	Term::command "layout src"
+	...
+	which waits for:
+	- "(gdb) layout src", and then
+	- "(gdb) ".
+
+	Because the "layout src" command enables the TUI there's just a prompt.
+
+	Fix this by using Term::command_no_prompt_prefix.
+
+	Tested on x86_64-linux.
+
+2023-04-25  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix timeout in gdb.tui/new-layout.exp
+	In test-case gdb.tui/new-layout.exp we run into:
+	...
+	WARNING: timeout in accept_gdb_output
+	PASS: gdb.tui/new-layout.exp: layout=cmd_only {cmd 1} {} {}: \
+	  bottom of cmd window is blank
+	...
+
+	The timeout happens here:
+	...
+	    Term::command "layout src"
+	...
+
+	Before the "layout src" command we have:
+	...
+	Screen Dump (size 80 columns x 24 rows, cursor at column 46, row 7):
+	    0 +-tui-layout.c-------------------------+(gdb) layout example3
+	    1 |       20 {                           |(gdb) layout src
+	    2 |       21   return 0;                 |(gdb) winheight cmd 8
+	    3 |       22 }                           |(gdb) layout example4
+	    4 |       23                             |(gdb) layout src
+	    5 |       24                             |(gdb) winheight cmd 8
+	    6 |       25                             |(gdb) layout example5
+	    7 |       26                             |(gdb)
+	    8 |       27                             |
+	    9 |       28                             |
+	   10 |       29                             |
+	   11 |       30                             |
+	   12 |       31                             |
+	   13 |       32                             |
+	   14 |       33                             |
+	   15 |       34                             |
+	   16 |       35                             |
+	   17 |       36                             |
+	   18 |       37                             |
+	   19 |       38                             |
+	   20 |       39                             |
+	   21 |       40                             |
+	   22 +--------------------------------------+
+	   23 exec No process In:                                                L??   PC: ??
+	...
+	and after:
+	...
+	Screen Dump (size 80 columns x 24 rows, cursor at column 6, row 16):
+	    0 +-tui-layout.c-----------------------------------------------------------------+
+	    1 |       20 {                                                                   |
+	    2 |       21   return 0;                                                         |
+	    3 |       22 }                                                                   |
+	    4 |       23                                                                     |
+	    5 |       24                                                                     |
+	    6 |       25                                                                     |
+	    7 |       26                                                                     |
+	    8 |       27                                                                     |
+	    9 |       28                                                                     |
+	   10 |       29                                                                     |
+	   11 |       30                                                                     |
+	   12 |       31                                                                     |
+	   13 |       32                                                                     |
+	   14 +------------------------------------------------------------------------------+
+	   15 exec No process In:                                                L??   PC: ??
+	   16 (gdb)
+	   17
+	   18
+	   19
+	   20
+	   21
+	   22
+	   23
+	...
+
+	The Term::command "layout src" is waiting to match:
+	- "(gdb) layout src", and then
+	- "(gdb) ".
+
+	The first part fails to match on a line:
+	...
+	|       26                             |(gdb) layout src
+	...
+	because it expects the prompt at the start of the line.
+
+	Fix this by allowing the prompt at the start of a window as well.
+
+	Tested by x86_64-linux.
+
+2023-04-25  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix timeout in gdb.tui/main.exp
+	With test-case gdb.tui/main.exp we run into:
+	...
+	WARNING: timeout in accept_gdb_output
+	PASS: gdb.tui/main.exp: show main after file
+	...
+
+	The problem is that this command:
+	...
+	Term::command "file [standard_output_file $testfile]"
+	...
+	tries to match "(gdb) $cmd", but due to the long file name, $cmd is split up
+	over two lines:
+	...
+	   16 (gdb) file /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.tui/main/ma
+	   17 in
+	   18 Reading symbols from /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.t
+	   19 ui/main/main...
+	   20 (gdb)
+	...
+
+	Fix this by matching "Reading symbols from" instead.
+
+	Tested on x86_64-linux.
+
+2023-04-25  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix timeout in gdb.tui/corefile-run.exp
+	With test-case gdb.tui/corefile-run.exp we run into:
+	...
+	WARNING: timeout in accept_gdb_output
+	PASS: gdb.tui/corefile-run.exp: load corefile
+	...
+
+	The timeout happens in this command:
+	...
+	Term::command "core-file $core"
+	...
+	because it tries to match "(gdb) $cmd" but $cmd is split over two lines:
+	...
+	   16 (gdb) core-file /data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb.tui/co
+	   17 refile-run/corefile-run.core
+	   18 [New LWP 5370]
+	   19 Core was generated by `/data/vries/gdb/leap-15-4/build/gdb/testsuite/outputs/gdb
+	   20 .tui/corefile-run/coref'.
+	   21 Program terminated with signal SIGTRAP, Trace/breakpoint trap.
+	   22 #0  main () at tui-layout.c:21
+	   23 (gdb)
+	...
+
+	Fix this by using send_gdb "$cmd\n" and wait_for "Program terminated" instead.
+
+	Tested on x86_64-linux.
+
+2023-04-25  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add debug prints in Term::wait_for
+	The semantics of wait_for are non-trivial, and a bit hard to understand
+	sometimes.
+
+	Add some debug prints in wait_for that make it clear:
+	- what regexps we're trying to match,
+	- what strings we compare to the regexps, and
+	- whether there's a match or mismatch.
+
+	I've added this ad-hoc a couple of times, and it seems that it's worth having
+	readily available.
+
+	The debug prints are enabled by adding DEBUG_TUI_MATCHING=1 to the
+	RUNTESTFLAGS:
+	...
+	$ make check RUNTESTFLAGS="gdb.tui/empty.exp DEBUG_TUI_MATCHING=1"
+	...
+
+	Tested on x86_64-linux.
+
+2023-04-25  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add warning for timeout in accept_gdb_output
+	In accept_gdb_output we have:
+	...
+	            timeout {
+	                # Assume a timeout means we somehow missed the
+	                # expected result, and carry on.
+	                return 0
+	            }
+	...
+
+	The timeout is silent, and though in some places the return value is checked,
+	this is not done consistently, and consequently there are silent timeouts
+	when running the TUI testsuite (gdb.tui/*.exp and gdb.python/tui*.exp).
+
+	Each timeout is 10 seconds, and there are 5 in total in the TUI tests, taking
+	50 seconds overall:
+	...
+	real    1m0.275s
+	user    0m10.440s
+	sys     0m1.343s
+	...
+
+	With an entire testsuite run taking about 30 minutes, that is about 2.5% of
+	the time spent waiting in TUI tests.
+
+	Let's make the timeouts visible using a warning, such that they can be fixed.
+
+	Tested on x86_64-linux.
+
+2023-04-25  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix auto-indent in gdb.gdb/python-helper.exp
+	When editing gdb.gdb/python-helper.exp, auto-indent is broken in my editor
+	(emacs).
+
+	The problem is that this:
+	...
+	if { 1 } {
+	    foo "{" "}"<ENTER>bar
+	}
+	...
+	produces this:
+	...
+	if { 1 } {
+	    foo "{" "}"
+	bar
+	}
+	...
+
+	Note that this doesn't happen for "{}".
+
+	Fix this by using "\{" and "\}".
+
+	Tested on x86_64-linux.
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.gdb/python-helper.exp with -O2 -flto
+	On openSUSE Leap 15.4, with gcc 7.5.0, when building gdb with
+	-O2 -g -flto=auto, I run into:
+	...
+	FAIL: gdb.gdb/python-helper.exp: hit breakpoint in outer gdb
+	FAIL: gdb.gdb/python-helper.exp: print integer from DWARF info
+	FAIL: gdb.gdb/python-helper.exp: print *type->main_type
+	...
+
+	Fix the first two FAILs by using $bkptno_numopt_re.
+
+	The last FAIL is due to:
+	...
+	(outer-gdb) print *type->main_type^M
+	A syntax error in expression, near `->main_type'.^M
+	(outer-gdb) FAIL: gdb.gdb/python-helper.exp: print *type->main_type
+	...
+	because:
+	...
+	(outer-gdb) print type^M
+	Attempt to use a type name as an expression^M
+	...
+
+	Fix this by making the test unresolved if "print type" or
+	"print type->main_type" doesn't succeed.
+
+	On openSUSE Tumbleweed, with gcc 13.0.1, when building gdb with
+	-O2 -g -flto=auto, I run into timeouts due to the breakpoint in c_print_type
+	not hitting.  Fix this by detecting the situation and bailing out.
+
+	Tested on x86_64-linux.
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix -wrap in presence of -prompt in gdb_test_multiple
+	While writing a gdb_test_multiple call in a test-case I tried to use -wrap in
+	combination with -prompt and found out that it doesn't work, because -wrap uses
+	"$gdb_prompt $" instead of $prompt_regexp.
+
+	Fix this by making -wrap use $prompt_regexp.
+
+	Tested on x86_64-linux.
+
+2023-04-24  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: remove end_stepping_range observable
+	I noticed that this observable was never notified, which means we can
+	probably safely remove it.  The notification was removed in:
+
+	    commit 243a925328f8e3184b2356bee497181049c0174f
+	    Author: Pedro Alves <palves@redhat.com>
+	    Date:   Wed Sep 9 18:23:24 2015 +0100
+
+	        Replace "struct continuation" mechanism by something more extensible
+
+	print_end_stepping_range_reason in turn becomes unused, so remote it as
+	well.
+
+	Change-Id: If5da5149276c282d2540097c8c4327ce0f70431a
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Use -std=gnu99 for gdb.server/attach-flag.exp
+	When using a compiler defaulting to -std=gnu90, we run into:
+	...
+	Running gdb.server/attach-flag.exp ...
+	gdb compile failed, attach-flag.c: In function 'main':
+	attach-flag.c:22:3: error: 'for' loop initial declarations are only allowed \
+	  in C99 or C11 mode
+	   for (int i = 0; i < NTHREADS; i++)
+	   ^~~
+	attach-flag.c:22:3: note: use option -std=c99, -std=gnu99, -std=c11 or \
+	  -std=gnu11 to compile your code
+	...
+
+	Fix this by using -std=gnu99.
+
+	Tested on x86_64-linux.
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Require GCC >= 5.x.x in gdb.base/utf8-identifiers.exp
+	Test-case gdb.base/utf8-identifiers.exp compiles starting with GCC 5, so
+	require this.
+
+	Tested on x86_64-linux.
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Fix gdb.multi/multi-arch.exp on powerpc64le
+	When running test-case gdb.multi/multi-arch.exp on powerpc64le-linux, I run into:
+	...
+	Running gdb/testsuite/gdb.multi/multi-arch.exp ...
+	gdb compile failed, In file included from /usr/include/features.h:399:0,
+	                 from /usr/include/stdio.h:27,
+	                 from gdb/testsuite/gdb.multi/hangout.c:18:
+	/usr/include/gnu/stubs.h:8:27: fatal error: gnu/stubs-32.h: \
+	  No such file or directory
+	 # include <gnu/stubs-32.h>
+	                           ^
+	compilation terminated.
+	...
+
+	The problem is that the test-case attempts to use gcc -m32 to produce an
+	executable while that's not available.
+
+	Fix this by:
+	- introduce a new caching proc have_compile_and_link_flag, and
+	- using have_compile_and_link_flag in test-case gdb.multi/multi-arch.exp.
+
+	Tested on:
+	- x86_64-linux (openSUSE Leap 15.4), and
+	- powerpc64le-linux (CentOS-7).
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add basic lmap for tcl < 8.6
+	With test-case gdb.dwarf2/dw2-abs-hi-pc.exp and tcl 8.5, I run into:
+	...
+	ERROR: tcl error sourcing gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp.
+	ERROR: invalid command name "lmap"
+	    while executing
+	"::gdb_tcl_unknown lmap i {dw2-abs-hi-pc.c dw2-abs-hi-pc-hello.c \
+	  dw2-abs-hi-pc-world.c} { expr { "$srcdir/$subdir/$i" } }"
+	...
+
+	Fix this by adding basic lmap support for tcl version < 8.6.
+
+	Tested on x86_64-linux.
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Don't use string cat in gdb.dwarf2/dw2-abs-hi-pc.exp
+	Test-case gdb.dwarf2/dw2-abs-hi-pc.exp uses string cat:
+	...
+	set sources [lmap i $sources { string cat "${srcdir}/${subdir}/" $i }]
+	...
+	but that's only supported starting tcl 8.6.
+
+	Fix this by using "expr" instead:
+	...
+	set sources [lmap i $sources { expr { "$srcdir/$subdir/$i" } }]
+	...
+
+	Tested on x86_64-linux.
+
+2023-04-24  Nick Clifton  <nickc@redhat.com>
+
+	New georgian translation for the bfd sub-directory
+
+2023-04-24  Alan Modra  <amodra@gmail.com>
+
+	Revert "x86: work around compiler diagnosing dangling pointer"
+	This reverts commit 983db9932a302f9e2ae1f1d4fd7c3149560bc269.
+
+2023-04-24  Alan Modra  <amodra@gmail.com>
+
+	gcc-13 i386-dis.c warning
+	opcodes/i386-dis.c: In function ‘print_insn’:
+	opcodes/i386-dis.c:9865:22: error: storing the address of local
+	variable ‘priv’ in ‘*info.private_data’ [-Werror=dangling-pointer=]
+
+		* i386-dis.c (print_insn): Clear info->private_data before
+		returning.
+
+2023-04-24  Alan Modra  <amodra@gmail.com>
+
+	asan: segfault in coff_mangle_symbols
+	The testcase managed to trigger creation of a wild pointer in
+	coff_slurp_symbol_table.  Stop that happening, and fix an unrelated
+	problem I happened to see in bfd_coff_get_syment.
+
+		* coff-bfd.c (bfd_coff_get_syment): Clear fix_value after
+		converting n_value from a pointer to an index.
+		* coffcode.h (coff_slurp_symbol_table <C_BSTAT>): Sanity check
+		symbol value before converting to a pointer.
+
+2023-04-24  Alan Modra  <amodra@gmail.com>
+
+	objcopy of archives tidy
+	This makes sure the input element bfd is closed before exiting the
+	loop copying elements.
+
+		* objcopy.c (copy_archive): Rename output_bfd to output_element.
+		Localise last_element.  Close this_element in more error cases.
+
+2023-04-24  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Skip dap tests for tcl 8.5
+	When running the dap tests on a system with tcl 8.5, we run into:
+	...
+	ERROR: tcl error sourcing gdb/testsuite/gdb.dap/memory.exp.
+	ERROR: bad class "entier": must be alnum, alpha, ascii, control, boolean, \
+	  digit, double, false, graph, integer, list, lower, print, punct, space, \
+	  true, upper, wideinteger, wordchar, or xdigit
+	    while executing
+	"string is entier $num"
+	    (procedure "num" line 16)
+	    invoked from within
+	...
+
+	Fix this by:
+	- requiring tcl 8.6 in allow_dap_tests, and
+	- adding the missing require allow_dap_tests in gdb.dap/memory.exp.
+
+	Tested on x86_64-linux.
+
+2023-04-24  Jan Beulich  <jbeulich@suse.com>
+
+	x86: work around compiler diagnosing dangling pointer
+	For quite come time print_insn() has been storing the address of a local
+	variable into info->private_data. Since the compiler can't know that the
+	field won't be accessed again after print_insn() returns, it may kind of
+	legitimately diagnose this. And recent enough gcc does as of the
+	introduction of the fetch_error() return paths (replacing setjmp()-based
+	error handling).
+
+	Utilizing that neither prefix_name() nor i386_dis_printf() actually use
+	info->private_data, zap the pointer in fetch_error(), after having
+	retrieved it for local use.
+
+2023-04-24  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-23  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: fix loongson3 llsc workaround
+	-mfix-looongson3-llsc may add sync instructions not needed on some
+	asm code with lots of debug info.
+
+		PR: 30153
+		* gas/config/tc-mips.c(fix_loongson3_llsc): clear logistic.
+
+2023-04-23  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: default output r6 obj if the triple is r6
+	If the triple is mipsisa32r6* or mipsisa64r6*, ld/as should output
+	r6 objects by default.
+	The triples with vendor `img` should do same.
+
+	The examples include:
+		as xx.s -o xx.o
+		ld -r -b binary xx.dat -o xx.o
+
+2023-04-23  YunQiang Su  <yunqiang.su@cipunited.com>
+
+	MIPS: support mips*64 as CPU and gnuabi64 as ABI
+	For MIPS64r6 ports, Debian as an example, `mipsisa64r6el` is
+	used as the cpu name in triple.
+	Let's recognize them by `mips*64*(el)`.
+
+	For 64bit Ports, like Debian's mips64el and mips64r6el ports,
+	`gnuabi64` is used as the abi section.
+	Let's use N64 abi by default for the triple with gnuabi64.
+
+2023-04-23  mengqinggang  <mengqinggang@loongson.cn>
+
+	LoongArch: Fix loongarch32 test fails
+	Regenerated macro_op_32.d and add skip loongarch64-*-*.
+
+	gas/ChangeLog:
+
+		* testsuite/gas/loongarch/macro_op_32.d: Regenerated.
+
+	ld/ChangeLog:
+
+		* testsuite/ld-loongarch-elf/macro_op_32.d: Regenerated.
+
+2023-04-23  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-22  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Remove debug prints in gdb_find_gdc
+	When running the gdb.dlang test-cases, and forcing gdb_find_gdc to be used
+	rather than dejagnu's copy (mimicing what happens with an older dejagnu
+	without find_gdc), I run into these debug prints:
+	...
+	Tool Root: /data/vries/gdb/leap-15-4/build
+	CC: gdc
+	...
+
+	Remove these.
+
+	Tested on x86_64-linux.
+
+2023-04-22  WANG Rui  <r@hev.cc>
+
+	gdb: Fix false match issue in skip_prologue_using_linetable
+	[ Changes in v2:
+	  - rebase on trunk
+	  Changes in v3:
+	  - add test-case ]
+
+	We should exclude matches to the ending PC to prevent false matches with the
+	next function, as prologue_end is located at the end PC.
+
+	  <fun1>:
+	    0x00: ... <-- start_pc
+	    0x04: ...
+	    0x08: ... <-- breakpoint
+	    0x0c: ret
+	  <fun2>:
+	    0x10: ret <-- end_pc | prologue_end of fun2
+
+	Tested on x86_64-linux.
+
+	Co-Authored-By: WANG Rui <r@hev.cc> (fix, tiny change [1])
+	Co-Authored-By: Tom de Vries <tdevries@suse.de> (test-case)
+	Approved-by: Kevin Buettner <kevinb@redhat.com>
+
+	[1] https://www.gnu.org/prep/maintain/html_node/Legally-Significant.html
+
+	PR symtab/30369
+	Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30369
+
+2023-04-22  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-21  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: remove language_auto
+	I think that the language_auto enumerator and the auto_language class
+	can be removed.  There isn't really an "auto" language, it's only a
+	construct of the "set language" command to say "pick the appropriate
+	language automatically".  But "auto" is never the current language.  The
+	`current_language` points to the current effective language, and the
+	fact that we're in "auto language" mode is noted by the language_mode
+	global.
+
+	 - Change set_language to handle the "auto" (and "local", which is a
+	   synonym) early, instead of in the for loop.  I think it makes the two
+	   cases (auto vs explicit language) more clearly separated anyway.
+
+	 - Adjust add_set_language_command to hard-code the "auto" string,
+	   instead of using the "auto" language definition.
+
+	 - Remove auto_language, rename auto_or_unknown_language to
+	   unknown_language and move the bits of the existing unknown_language
+	   in there.
+
+	 - Remove the set_language at the end of _initialize_language.  I think
+	   it's not needed, because we call set_language in gdb_init, after all
+	   _initialize functions are called.  There is some chance that an
+	   _initialize function that runs after _initialize_language implicitly
+	   depends on current_language being set, but my testsuite runs haven't
+	   found anything like that.
+
+	 - Use language_unknown instead of language_auto when creating a minimal
+	   symbol (minimal_symbol_reader::record_full).  I think that this value
+	   is used to indicate that we don't know the symbol of the minimal
+	   symbol (yet), so language_unknown makes sense to me.  Update a
+	   condition accordingly in ada-lang.c.  symbol_find_demangled_name also
+	   appears to "normalize" this value from "unknown" to "auto", remove
+	   that part and update the condition to just check for
+	   language_unknown.
+
+	Change-Id: I47bcd6c15f607d9818f2e6e413053c2dc8ec5034
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-21  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: switch "set language" to getter/setter
+	The `language` global variable is mostly a scratch variable used for the
+	setting.  The source of truth is really current_language and
+	language_mode (auto vs manual), which are set by the
+	set_language_command callback.
+
+	Switch the setting to use the add_setshow_enum_cmd overload that takes a
+	value getter and setter.
+
+	Change-Id: Ief5b2f93fd7337eed7ec96023639ae3dfe62250b
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-21  Simon Marchi  <simon.marchi@efficios.com>
+
+	gdb: remove return value of set_language
+	set_language returns the previous language, but nothing uses it.  Remove
+	the return value.  This lets us remove the assignment to
+	current_language, in _initialize_language.
+
+	Change-Id: Ifccf9b488434c1addf4626130a74e159a37d8c17
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-21  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/testsuite] Add make-check-all.sh
+	Directory gdb/testsuite/boards contains a number of host/target boards, which
+	run a test-case (or test-cases) in a different way.
+
+	The benefits of using these boards are:
+	- improving test coverage of gdb,
+	- making the testsuite more robust, and
+	- making sure the test-cases work for non-native and remote setups, if
+	  possible.
+
+	Each board is slightly different, and developers need to learn how to use each
+	one, what parameters to pass and how, and which ones can be used in
+	combination with each other.  This is a threshold to start using them.
+
+	And then there quite a few, so I suppose typically only a few will be used by
+	each developer.
+
+	Add script gdb/testsuite/make-check-all.sh, that's intended to function as a
+	drop-in replacement of make check, while excercising all host/target boards in
+	gdb/testsuite/boards.
+
+	An example of make-check-all.sh for one test-case is:
+	...
+	 $  ~/gdb/src/gdb/testsuite/make-check-all.sh gdb.base/advance.exp
+	 LOCAL:
+	 # of expected passes            8
+	 TARGET BOARD: cc-with-gdb-index
+	 # of expected passes            8
+	   ...
+	 HOST BOARD: local-remote-host-notty, TARGET BOARD: remote-stdio-gdbserver
+	 # of expected passes            8
+	 HOST/TARGET BOARD: local-remote-host-native
+	 # of expected passes            8
+	...
+
+	Shell-checked and tested on x86_64-linux.
+
+	Co-Authored-By: Simon Marchi <simon.marchi@efficios.com>
+	Reviewed-By: Andrew Burgess <aburgess@redhat.com>
+
+2023-04-21  Tom de Vries  <tdevries@suse.de>
+
+	[gdb/cli] Add maint info screen
+	While working on PRs tui/30337 and cli/30346 I came across various notions of
+	width in gdb, as reported by gdb, readline, curses and the environment
+	variables.
+
+	As for gdb, readline and the environment variables, the way things work
+	is:
+	- Gdb asks readline to detect screen size,
+	- readline sets the actual screen size in the environment variables
+	  COLUMNS and LINES,
+	- readline reports back a screen size to gdb, which may have one column
+	  less than the actual screen size, to deal with lack of auto-wrap.
+	  This becomes gdb's notion of screen size (in other words the point where
+	  we can expect the gdb command line to wrap),
+	- Gdb then explicitly sets readline's screen size, which readline itself may
+	  adjust to deal with lack of auto-wrap.  This becomes readlines notion
+	  of screen size (well, internally the unadjusted one, but it'll report back
+	  the adjusted one).
+
+	Add a command "maint info screen" that prints these notions, both for width
+	and height.
+
+	For TERM=xterm we have:
+	...
+	$ TERM=xterm gdb -ex "maint info screen"
+	Number of characters gdb thinks are in a line is 118.
+	Number of characters readline reports are in a line is 118.
+	Number of characters curses thinks are in a line is 118.
+	Number of characters environment thinks are in a line is 118 (COLUMNS).
+	Number of lines gdb thinks are in a page is 27.
+	Number of lines readline reports are in a page is 27.
+	Number of lines curses thinks are in a page is 27.
+	Number of lines environment thinks are in a page is 27 (LINES).
+	...
+
+	And for TERM=ansi:
+	...
+	$ TERM=ansi gdb -ex "maint info screen"
+	Number of characters gdb thinks are in a line is 117.
+	Number of characters readline reports are in a line is 116.
+	Number of characters curses thinks are in a line is 118.
+	Number of characters environment thinks are in a line is 118 (COLUMNS).
+	Number of lines gdb thinks are in a page is 27.
+	Number of lines readline reports are in a page is 27.
+	Number of lines curses thinks are in a page is 27.
+	Number of lines environment thinks are in a page is 27 (LINES).
+	...
+
+	[ The fact that we have "characters readline reports are in a line is 116" is
+	is due to gdb making readline adjust twice for the lack of auto-wrap, this is
+	PR cli/30346.
+
+	Likewise we can detect tui/30337 by doing a resize in TUI mode and doing
+	"maint info screen":
+	...
+	Number of characters characters curses thinks are in a line is 110.
+	Number of characters environment thinks are in a line is 111 (COLUMNS). ]
+
+	And for TERM=ansi, with width and heigth set to 0:
+	...
+	Number of characters gdb thinks are in a line is 4294967295 (unlimited).
+	Number of characters readline reports are in a line is 32766 (unlimited - 1).
+	Number of characters curses thinks are in a line is 118.
+	Number of characters environment thinks are in a line is 118 (COLUMNS).
+	Number of lines gdb thinks are in a page is 4294967295 (unlimited).
+	Number of lines readline reports are in a page is 32767 (unlimited).
+	Number of lines curses thinks are in a page is 27.
+	Number of lines environment thinks are in a page is 27 (LINES).
+	...
+
+	[ Note that when doing a resize by say maximizing or de-maximizing a terminal,
+	all reported values are updated, except for curses when not in TUI mode.
+
+	Maybe that means there's a bug.  If not, then maybe we should not print
+	the curses lines unless in TUI mode, or annotate those lines such that it's
+	clear that the values may be not up-to-date. ]
+
+	I'd like to use this command in the regression test for PR cli/30346.
+
+	Tested on x86_64-linux.
+
+	Reviewed-By: Eli Zaretskii <eliz@gnu.org>
+	Reviewed-By: Tom Tromey <tom@tromey.com>
+
+2023-04-21  Tom Tromey  <tromey@adacore.com>
+
+	Fix -Wmaybe-uninitialized warning in opcodes/i386-dis.c
+	A recent change in opcodes/i386-dis.c caused a build failure on my
+	x86-64 Fedora 36 system, which uses:
+
+	$ gcc --version
+	gcc (GCC) 12.2.1 20221121 (Red Hat 12.2.1-4)
+	[...]
+
+	The error is:
+
+	../../binutils-gdb/opcodes/i386-dis.c: In function ‘OP_J’:
+	../../binutils-gdb/opcodes/i386-dis.c:12705:22: error: ‘val’ may be used uninitialized [-Werror=maybe-uninitialized]
+	12705 |           disp = val & 0x8000 ? val - 0x10000 : val;
+	      |                  ~~~~^~~~~~~~
+
+	This patch fixes the warning.
+
+	opcodes/ChangeLog
+	2023-04-21  Tom Tromey  <tromey@adacore.com>
+
+		* i386-dis.c (OP_J): Check result of get16.
+
+2023-04-21  Tom Tromey  <tromey@adacore.com>
+
+	Use entry values for 32-bit PPC struct return
+	AdaCore has a local patch for PPC "finish", but last year, Ulrich
+	Weigand pointed out that this patch was incorrect.  It may work for
+	simple functions like the one in the internal test, but nothing
+	guarantees that r3 will be preserved by the callee, so checking r3 on
+	exit is not always correct.
+
+	This patch fixes the problem using the same approach as PPC64: use the
+	entry value of r3, if available.  Ulrich confirmed this matches the
+	PPC32 ABI.
+
+2023-04-21  Tom Tromey  <tromey@adacore.com>
+
+	Handle erroneous DW_AT_call_return_pc
+	On PPC64, with the test case included in an earlier patch, we found
+	that "finish" would still not correctly find the return value via
+	entry values.
+
+	The issue is simple.  The compiler emits:
+
+	   0x00000000100032b8 <+28>:	bl      0x1000320c <pck__create_large>
+	   0x00000000100032bc <+32>:	nop
+	   0x00000000100032c0 <+36>:	li      r9,42
+
+	... but the DWARF says:
+
+	    <162a>   DW_AT_call_return_pc: 0x100032c0
+
+	That is, the declared return PC is one instruction past the actual
+	return PC.
+
+	This patch adds a new arch hook to handle this scenario, and
+	implements it for PPC64.  Some care is taken so that GDB will continue
+	to work if this compiler bug is fixed.  A GCC patch is here:
+
+	    https://gcc.gnu.org/pipermail/gcc-patches/2023-March/613336.html
+
+	No check for 'nop' is done, as subsequent discussion revealed that the
+	linker might replace this with another instruction.
+
+2023-04-21  Tom Tromey  <tromey@adacore.com>
+
+	Handle function descriptors in call_site_target
+	call_site_target::iterate_over_addresses may look up a minimal symbol.
+	On platforms like PPC64 that use function descriptors, this may find
+	an unexpected address.  The fix is to use gdbarch_convert_from_func_ptr_addr
+	to convert from a function descriptor to the address recorded at the
+	call site.
+
+	I've added a new test case that is based on the internal AdaCore test
+	that provoked this bug.  However, I'm unable to test it as-is on
+	PPC64.
+
+2023-04-21  Jan Beulich  <jbeulich@suse.com>
+
+	x86: drop (explicit) BFD64 dependency from disassembler
+	get64() is unreachable when !BFD64 (due to a check relatively early in
+	print_insn()). Let's avoid the associated #ifdef-ary (or else we should
+	extend it to remove more dead code).
+
+	x86: drop use of setjmp() from disassembler
+	With the longjmp() uses all gone, the setjmp() isn't necessary anymore
+	either.
+
+2023-04-21  Jan Beulich  <jbeulich@suse.com>
+
+	x86: change fetch error handling for get<N>()
+	Make them return boolean and convert FETCH_DATA() uses to fetch_code().
+	With this no further users of FETCH_DATA() remain, so the macro and its
+	backing function are dropped as well.
+
+	Leave value types as they were for the helper functions, even if I don't
+	think that beyond get64() use of bfd_{,signed_}vma is really necessary.
+	With type change of "disp" in OP_E_memory(), change the 2nd parameter of
+	print_displacement() to a signed type as well, though (eliminating the
+	need for a local variable of signed type). This also eliminates the need
+	for custom printing of '-' in Intel syntax displacement expressions.
+
+	While there drop forward declarations which aren't really needed.
+
+2023-04-21  Jan Beulich  <jbeulich@suse.com>
+
+	x86: change fetch error handling when processing operands
+	Make the handler functions all return boolean and convert FETCH_DATA()
+	uses to fetch_code().
+
+	x86: change fetch error handling in get_valid_dis386()
+	Introduce a special error indicator node, for the sole (real) caller
+	to recognize and act upon.
+
+	x86: change fetch error handling in ckprefix()
+	Use a tristate (enum) return value type to be able to express all three
+	cases which are of interest to the (sole) caller. This also allows doing
+	away with the abuse of "rex_used".
+
+2023-04-21  Jan Beulich  <jbeulich@suse.com>
+
+	x86: change fetch error handling in top-level function
+	... and its direct helper get_sib(). Using setjmp()/longjmp() for fetch
+	error handling is problematic, as per
+	https://sourceware.org/pipermail/binutils/2023-March/126687.html. Start
+	using more conventional error handling instead.
+
+	Also introduce a fetch_modrm() helper, for subsequent re-use.
+
+2023-04-21  Jan Beulich  <jbeulich@suse.com>
+
+	x86: move fetch error handling into a helper function
+	... such that it can be used from other than the setjmp() error handling
+	path.
+
+	Since I'd like the function's parameter to be pointer-to-const, two
+	other functions need respective constification then, too (along with
+	needing to be forward-declared).
+
+2023-04-21  Jan Beulich  <jbeulich@suse.com>
+
+	bfd: fix STRICT_PE_FORMAT build
+	A semicolon was missing and "name" needs to be pointer-to-const. While
+	adding "const" there, also add it for "sec".
+
+2023-04-21  Lifang Xia  <lifang_xia@linux.alibaba.com>
+
+	RISC-V: Optimize relaxation of gp with max_alignment.
+	This should be the first related issue, which posted in riscv-gnu-toolchain,
+	https://github.com/riscv-collab/riscv-gnu-toolchain/issues/497
+
+	If the output sections are not between gp and the symbol, then their alignments
+	shouldn't affect the gp relaxation.  However, this patch improves this idea
+	even more, it limits the range to the gp+-2k, which means only the output
+	section which are in the [gp-2K, gp+2K) range need to be considered.
+
+	Even if the output section candidates may be different for each relax passes,
+	the symbol that can be relaxed ar this round will not be truncated at next
+	round.  That is because this round you can do relaxation which means that the
+	section where the symbol is located is within the [gp-2K, gp+2K) range, so all
+	the output section alignments between them should be considered.  In other
+	words, if the alignments between them may cause truncated, then we should
+	already preserve the size and won't do the gp relaxation this time.
+
+	This patch can resolve the github issue which mentioned above, and also passed
+	all gcc/binutils regressions of riscv-gnu-toolchain, so should be worth and
+	safe enough to commit.
+
+	Originally, this patch also do the same optimization for the call relaxations,
+	https://sourceware.org/pipermail/binutils/2022-October/123918.html
+	But just in case there is something that has not been considered, we only
+	deal with the gp relaxation at this time.
+
+	bfd/
+		* elfnn-riscv.c (riscv_elf_link_hash_table): Added new bfd_vma,
+		max_alignment_for_gp.  It is used to record the maximum alignment of
+		the output sections, which are in the [gp-2K, gp+2k) range.
+		(riscv_elf_link_hash_table_create): Init max_alignment_for_gp to -1.
+		(_bfd_riscv_get_max_alignment): Added new parameter, gp.  If gp is
+		zero, then all the output section alignments are possible candidates;
+		Otherwise, only the output sections which are in the [gp-2K, gp+2K)
+		range need to be considered.
+		(_bfd_riscv_relax_lui): Called _bfd_riscv_get_max_alignment with the
+		non-zero gp if the max_alignment_for_gp is -1.
+		(_bfd_riscv_relax_pc): Likewise.
+		(_bfd_riscv_relax_section): Record the first input section, so that
+		we can reset the max_alignment_for_gp for each repeated relax passes.
+	ld/
+		* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Updated.
+		* testsuite/ld-riscv-elf/relax-max-align-gp.*: New testcase.  It fails
+		without this patch.
+
+2023-04-21  Jan Beulich  <jbeulich@suse.com>
+
+	ld: add missing period after @xref
+	At least older versions of one of the doc generation tools complain
+	(warn) about it missing.
+
+2023-04-21  Alan Modra  <amodra@gmail.com>
+
+	Keeping track of rs6000-coff archive element pointers
+	rs6000-coff archives use a linked list of file offsets, where each
+	element points to the next element.  The idea is to allow updating of
+	large archives quickly without rewriting the whole archive.  (binutils
+	ar does not do this.)  Unfortunately this is an easy target for
+	fuzzers to create an archive that will cause ar or any other tool
+	processing archives to hang.  I'd implemented guards against pointing
+	back to the previous element, but of course that didn't last long.
+
+	So this patch implements a scheme to keep track of file offset ranges
+	used by elements as _bfd_read_ar_hdr is called for each element.  See
+	the add_range function comment.  I needed a place to stash the list,
+	so chose the obvious artdata.tdata backend extension to archive's
+	tdata, already used by xcoff.  That involved a little cleanup, because
+	while it would be possible to continue using different artdata.tdata
+	for the big and small archives, it's nicer to use a union.
+
+	If anyone is concerned this list of element ranges might grow large
+	and thus significantly slow down the tools, adjacent ranges are
+	merged.  In fact something like "ar t" will only ever have one range
+	on xcoff archives generated by binutils/ar.  I agree there might still
+	be a problem with ld random element access via the armap.
+
+	include/
+		* coff/xcoff.h (SIZEOF_AR_FILE_HDR): Use sizeof.
+		(SIZEOF_AR_FILE_HDR_BIG, SIZEOF_AR_HDR, SIZEOF_AR_HDR_BIG): Likewise.
+		(struct ar_ranges, struct xcoff_artdata): New.
+		(x_artdata): Define.
+		(xcoff_big_format_p): Rewrite.
+		(xcoff_ardata, xcoff_ardata_big): Delete.
+	bfd/
+		* coff-rs6000.c: Replace uses of xcoff_ardata and
+		xcoff_ardata_big throughout file.
+		(_bfd_xcoff_archive_p): Adjust artdata.tdata allocation.
+		(add_range): New function.
+		(_bfd_xcoff_read_ar_hdr): Use it here.  Fix memory leak.
+		(_bfd_xcoff_openr_next_archived_file): Remove old sanity
+		checks.  Set up range for header.
+		(xcoff_write_archive_contents_old): Make the temporary
+		artdata.tdata used here to pass info down to
+		_bfd_compute_and_write_armap a struct xcoff_artdata.
+		(xcoff_write_archive_contents_big): Likewise.
+		* coff64-rs6000.c: Replace uses of xcoff_ardata and
+		xcoff_ardata_big throughout file.
+		(xcoff64_archive_p): Adjust artdata.tdata allocation.
+
+2023-04-21  Alan Modra  <amodra@gmail.com>
+
+	Delete struct artdata archive_head
+	This element is unused.  Ideally we'd be moving archive_head and
+	other archive specific fields from struct bfd to here, but that's a
+	much larger change than this little bit of cleanup.
+
+		* libbfd-in.h (struct artdata): Delete archive_head.
+		* libbfd.h: Regenerate.
+		* archive.c,
+		* coff-rs6000.c,
+		* coff64-rs6000.c: Delete comments mentioning artdata archive_head.
+
+2023-04-21  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-20  Nick Clifton  <nickc@redhat.com>
+
+	Add a SECURITY.txt file describing the GNU Binutils' project's stance on security related bugs.
+
+2023-04-20  Jan Beulich  <jbeulich@suse.com>
+
+	x86: adjust an ILP32 testcase using .insn
+	In commit 6967633c8b49 ("x86: convert testcases to use .insn") an ILP32
+	clone of a testcase was missed in the set of tests needing --divide
+	added.
+
+	Reported-by: Clément Chigot <chigot@adacore.com>
+
+2023-04-20  GDB Administrator  <gdbadmin@sourceware.org>
+
+	Automatic date update in version.in
+
+2023-04-20  Alan Modra  <amodra@gmail.com>
+
+	sh4-linux segfaults running ld testsuite
+	Segmentation fault
+	FAIL: pr22269-1 (static pie undefined weak)
+	and others running "visibility (hidden undef)" tests
+
+	No code has any right to access bfd_link_hash_entry u.def without
+	first checking the type, and SYMBOL_REFERENCES_LOCAL isn't sufficient.
+
+		* elf32-sh.c (sh_elf_finish_dynamic_symbol): Don't use relative
+		relocs in GOT unless symbol is defined.
+
+2023-04-20  Alan Modra  <amodra@gmail.com>
+
+	PR30343 infrastructure
+	Make ldemul_before_plugin_all_symbols_read more useful.
+
+		* ldlang.c (lang_process): Move call to
+		ldemul_before_plugin_all_symbols_read outside BFD_SUPPORTS_PLUGINS.
+		Allow backends to add to gc_sym_list before handling entry sym.
+		* ldelf.c (ldelf_before_plugin_all_symbols_read): Test
+		lto_plugin_active.
+
+2023-04-20  Alan Modra  <amodra@gmail.com>
+
+	ubsan: signed integer overflow in display_debug_lines_raw
+	This one was caused by me unnecessarily promoting an "int adv" to
+	"int64_t adv".  The expression overflowing was 4259 + 9223372036854775807
+	with the left number being unsigned int.
+
+		* dwarf.h (DWARF2_Internal_LineInfo): Replace unsigned short
+		with uint16_t and unsigned char with uint8_t.  Make li_line_base
+		an int8_t.
+		* dwarf.c (display_debug_lines_raw): Revert "adv" back to an int.
+
+2023-04-20  Alan Modra  <amodra@gmail.com>
+
+	Yet another out-of-memory fuzzed object
+	Do I care about out of memory conditions triggered by fuzzers?  Not
+	much.  Your operating system ought to be able to handle it by killing
+	the memory hog.  Oh well, this one was an element of a coff-alpha
+	archive that said it was a little less that 2**64 in size.  The
+	coff-alpha compression scheme expands at most 8 times, so we can do
+	better in bfd_get_file_size.
+
+		* bfdio.c (bfd_get_file_size): Assume elements in compressed
+		archive can only expand a maximum of eight times.
+		* coffgen.c (_bfd_coff_get_external_symbols): Sanity check
+		size of symbol table agains file size.
+
+2023-04-20  Alan Modra  <amodra@gmail.com>
+
+	buffer overflow in print_symname
+		* ecoff.c (_bfd_ecoff_slurp_symbolic_info): Zero terminate
+		string sections.
+
+2023-04-19  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: minor formatting fixes in sframe_encoder_write_fre
+	libsframe/
+		* sframe.c (sframe_encoder_write_fre): Formatting fixes for
+		  readability.
+
+	libsframe: use consistent function argument names
+	libsframe/
+		* sframe.c (sframe_decoder_get_header): Use consistent function
+		arg names.
+		(sframe_decoder_free): Likewise.
+		(sframe_encode): Use more appropriate var name.
+
+2023-04-19  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	sframe: correct some typos
+	include/
+		* sframe.h: Correct a typo.
+
+	libsframe/
+		* sframe.c: Likewise.
+
+2023-04-19  Indu Bhagat  <indu.bhagat@oracle.com>
+
+	libsframe: use return type of bool for predicate functions
+	libsframe/
+		* sframe.c (sframe_header_sanity_check_p): Change return type to
+		bool.
+		(sframe_fre_sanity_check_p): Likewise.
+
+	gas: sframe: fix comment
+
+	gas: sframe: use ATTRIBUTE_UNUSED consistently
+	gas/
+		* gen-sframe.c (sframe_set_version): Use ATTRIBUTE_UNUSED
+		consistently.
+		(output_sframe): Likewise.
+		(sframe_set_fre_info): Remove the usage of ATTRIBUTE_UNUSED.
+
+2023-04-19  Tom Tromey  <tromey@adacore.com>
+
+	Remove adjust_type_signedness
+	I happened across adjust_type_signedness, which may be used to modify
+	a type when printing an Ada value.  Modifying a type like this is a
+	bad idea -- they should normally be considered immutable.  Removing
+	this function still passes both the dejagnu and internal AdaCore
+	tests, though, so this patch drops it.
+
+	As this was reviewed internally, and only affect Ada, I am checking it
+	in.
+
+2023-04-19  Nick Clifton  <nickc@redhat.com>
+
+	Fix: readelf: loc_offset XX too big
+	  PR 30355
+	  * dwarf.c (read_and_display_attr_value): Correctly handle DW_loclistx attributes that index a version 5 .debug_loclists section.
+
+2023-04-19  Jan Beulich  <jbeulich@suse.com>
+
+	gas: document that get_symbol_name() can clobber the input buffer
+	Callers which want to make further parsing attempts at the buffer passed
+	to the function need to be aware that due to the potential of string
+	concatenation the input buffer may be altered in ways beyond what can be
+	undone by putting back at *input_line_pointer the character that the
+	function returns.
+
+2023-04-19  Jan Beulich  <jbeulich@suse.com>
+
+	x86: parse_register() must not alter the parsed string
+	This reverts the code change done by 100f993c53a5 ("x86: Check
+	unbalanced braces in memory reference"), which wrongly identified
+	e87fb6a6d0cd ("x86/gas: support quoted address scale factor in AT&T
+	syntax") as the root cause of PR gas/30248. (The testcase is left in
+	place, no matter that it's at best marginally useful in that shape.)
+
+	The problem instead is that parse_register() alters the string handed to
+	it, thus breaking valid assumptions in subsequent parsing code. Since
+	the function's behavior is a result of get_symbol_name()'s, make a copy
+	of the incoming string before invoking that function.
+
+	Like for parse_real_register() follow the model of strtol() et al: input
+	string is const-qualified to signal that the string isn't altered, but
+	the returned "end" pointer is not const-qualified, requiring const to be
+	cast away (which generally is a bad idea, but the alternative would
+	again be more convoluted code).
+
+2023-04-19  Jan Beulich  <jbeulich@suse.