115566 Commits

Author SHA1 Message Date
YunQiang Su
29c108c961 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.
2023-07-28 06:00:37 +01:00
YunQiang Su
316be2b229 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.
2023-07-28 06:00:36 +01:00
YunQiang Su
ed4dca900c 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.
2023-07-28 06:00:36 +01:00
YunQiang Su
ec76a6172f 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.
2023-07-28 06:00:36 +01:00
YunQiang Su
60ec8306db 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.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
ec3205bbc6 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.
2023-07-28 06:00:36 +01:00
YunQiang Su
3c8ed624ca 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.
2023-07-28 06:00:36 +01:00
YunQiang Su
ce0077a2e7 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.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
70116eb5e6 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.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
b50c220d17 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*'.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
d4e5281f03 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'.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
94052ee4cc 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.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
67e789ae32 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'.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
2b4a60ab59 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.
2023-07-28 06:00:36 +01:00
YunQiang Su
f625926792 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.
2023-07-28 06:00:36 +01:00
Maciej W. Rozycki
cc66ad2d2a 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.
2023-07-28 06:00:36 +01:00
Alan Modra
b6dfdfde88 ldscripts/empty-address vs. xcoff
The empty-address tests check that if a section is removed by ld due
to being empty then properties of that section don't affect following
addresses.  The xcoff backend doesn't remove the empty .data section
created by empty-address-2* and empty-address-3* for some reason, and
therefore fails the test.

	* testsuite/ld-scripts/empty-address-1.d: Accept more symbols.
	* testsuite/ld-scripts/empty-address-2a.d: xfail for xcoff.
	* testsuite/ld-scripts/empty-address-2b.d: Likewise.
	* testsuite/ld-scripts/empty-address-3a.d: Likewise.
	* testsuite/ld-scripts/empty-address-3b.d: Likewise.
2023-07-28 14:11:40 +09:30
Alan Modra
d989e8dc6b Fix recent x86 pe/coff testsuite regressions
* testsuite/gas/i386/sha512-intel.d: Accept section nop padding.
	* testsuite/gas/i386/sha512.d: Likewise.
	* testsuite/gas/i386/sm3-intel.d: Likewise.
	* testsuite/gas/i386/sm3.d: Likewise.
	* testsuite/gas/i386/x86-64-pbndkb-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-pbndkb.d: Likewise.
	* testsuite/gas/i386/x86-64-sha512-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-sha512.d: Likewise.
	* testsuite/gas/i386/x86-64-sm3-intel.d: Likewise.
	* testsuite/gas/i386/x86-64-sm3.d: Likewise.
2023-07-28 14:11:40 +09:30
Alan Modra
41c8b9f097 coff/pe/xcoff and --extract-symbols
This fixes failure of the "extract symbols" test for rs6000, where
--extract-symbols generates a non-zero sized .text.  By the look of
coffcode.h the same problem might occur for coff/pe too, but doesn't
happen to trigger a test failure.

bfd/
	* coffcode.h (coff_compute_section_file_positions): Don't
	adjust size of !SEC_LOAD sections.
binutils/
	* objcopy.c (setup_section): Clear SEC_LOAD for --extract-symbol.
2023-07-28 14:11:27 +09:30
Tsukasa OI
6551c119bf 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 03:39:15 +00:00
Tsukasa OI
fdc5ba89ca Fix typo in riscv-dis.c comment
Don't go "past" the start of the section.
2023-07-28 03:33:39 +00:00
GDB Administrator
f921e120da Automatic date update in version.in 2023-07-28 00:00:19 +00:00
Simon Marchi
b871f5ee33 gdb: remove trailing empty line in target-delegates.c
In a review [1], I pointed out that applying the patch, git would say:

    .git/rebase-apply/patch:147: new blank line at EOF.

However, since the empty line is in target-delegates.c (a generated
file), there's nothing the author can do about it.  To avoid this
comment coming up again in the future, change make-target-delegates.py
to avoid the trailing empty line.  Do this by making it output empty
lines before each entity, not after.

Since this needs removing a newline output in gdbcopyright, adjust
ada-unicode.py and gdbarch.py to avoid changes in the files they
generate.

[1] https://inbox.sourceware.org/gdb-patches/20230427210113.45380-1-jhb@FreeBSD.org/T/#m083598405bef19157f67c9d97846d3dd90dc7d1c

Change-Id: Ic4c648f06443b432168cb76603402c918aa6e5d2
Approved-By: Tom Tromey <tom@tromey.com>
2023-07-27 13:33:03 -04:00
Tom Tromey
2f01a2b9ea Report supportsBreakpointLocationsRequest
While looking at the DAP spec, I noticed that the breakpointLocations
request is gated behind a capability.  This patch changes gdb to
report this capability.

I've also added a comment to explain the fact that arguments to
breakpointLocations are not optional, even though the spec says they
are.
2023-07-27 10:35:00 -06:00
Alan Modra
2902e6682d /DISCARD/ in ld testsuite
The canonical form to discard all sections not mentioned earlier in
the script is
  /DISCARD/ : { *(*) }
not
  /DISCARD/ : { *(.*) }
".*" happens to work with the usual section names starting with a dot,
but let's not promote something not quite right.
2023-07-27 23:38:14 +09:30
Alan Modra
f1036ada3b sh: uninitialised sh_operand_info.type in get_specific
Seen when running gas/testsuite/gas/sh/err-at.s

	* config/tc-sh.c (get_operands): Always init operand type.
	* testsuite/gas/sh/err-at.s: Expect unnecessary extra errors.
2023-07-27 23:38:14 +09:30
Hu, Lin1
cd2908958a Support Intel PBNDKB
gas/ChangeLog:

	* NEWS: Support Intel PBNDKB.
	* config/tc-i386.c: Add pbndkb.
	* doc/c-i386.texi: Document .pbndkb.
	* testsuite/gas/i386/i386.exp: Add PBNDKB tests.
	* testsuite/gas/i386/x86-64.exp: Ditto.
	* testsuite/gas/i386/pbndkb-inval.l: New test.
	* testsuite/gas/i386/pbndkb-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-pbndkb-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-pbndkb.d: Ditto.
	* testsuite/gas/i386/x86-64-pbndkb.s: Ditto.

opcodes/ChangeLog:

	* i386-dis.c (X86_64_0F01_REG_0_MOD_3_RM_7): New.
	(X86_64_0F01_REG_0_MOD_3_RM_7_P_0): Ditto.
	(prefix_table): Add PREFIX_0F01_REG_0_MOD_3_RM_7.
	(x86_64_table): Add X86_64_0F01_REG_0_MOD_3_RM_7_P_0.
	(rm_table): New entry for pbndkb.
	* i386-gen.c (cpu_flag): Add PBNDKB.
	* i386-init.h: Regenerated.
	* i386-mnem.h: Ditto.
	* i386-opc.h (CpuPBNDKB): New.
	(i386_cpu_flags): Add cpupbndkb.
	* i386-opc.tbl: Add PBNDKB instructions.
	* i386-tbl.h: Regenerated.
2023-07-27 20:52:52 +08:00
Haochen Jiang
2bced1684b Support Intel SM4
gas/ChangeLog:

	* NEWS: Support Intel SM4.
	* config/tc-i386.c: Add sm4.
	* doc/c-i386.texi: Document .sm4.
	* testsuite/gas/i386/i386.exp: Run SM4 tests.
	* testsuite/gas/i386/x86-64.exp: Ditto.
	* testsuite/gas/i386/sm4-intel.d: Add SM4 tests.
	* testsuite/gas/i386/sm4.d: Ditto.
	* testsuite/gas/i386/sm4.s: Ditto.
	* testsuite/gas/i386/x86-64-sm4-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-sm4.d: Ditto.
	* testsuite/gas/i386/x86-64-sm4.s: Ditto.

opcodes/ChangeLog:

	* i386-dis.c (prefix_table): Add SM4 instructions.
	* i386-gen.c (isa_dependencies): Add SM4.
	(cpu_flags): Ditto.
	* i386-init.h: Regenerated.
	* i386-mnem.h: Ditto.
	* i386-opc.h (CpuSM4): New.
	(i386_cpu_flags): Add cpusm4.
	* i386-opc.tbl: Add SM4 instructions.
	* i386-tbl.h: Regenerated.
2023-07-27 20:52:46 +08:00
Haochen Jiang
c55ba32b7a Support Intel SM3
gas/ChangeLog:

	* NEWS: Support Intel SM3.
	* config/tc-i386.c: Add sm3.
	* doc/c-i386.texi: Document .sm3.
	* testsuite/gas/i386/i386.exp: Run sm3 tests.
	* testsuite/gas/i386/x86-64.exp: Ditto.
	* testsuite/gas/i386/sm3-intel.d: New test.
	* testsuite/gas/i386/sm3.d: Ditto.
	* testsuite/gas/i386/sm3.s: Ditto.
	* testsuite/gas/i386/x86-64-sm3-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-sm3.d: Ditto.
	* testsuite/gas/i386/x86-64-sm3.s: Ditto.

opcodes/ChangeLog:

	* i386-dis.c (PREFIX_VEX_0F38DA_W_0): New.
	(VEX_LEN_0F38DA_W_0_P_0): Ditto.
	(VEX_LEN_0F38DA_W_0_P_2): Ditto.
	(VEX_LEN_0F3ADE_W_0): Ditto.
	(VEX_W_0F38DA): Ditto.
	(VEX_W_0F3ADE): Ditto.
	(prefix_table): Add PREFIX_VEX_0F38DA_W_0.
	(vex_len_table): Add VEX_LEN_0F38DA_W_0_P_0,
	VEX_LEN_0F38DA_W_0_P_2, VEX_LEN_0F3ADE_W_0.
	(vex_w_table): Add VEX_W_0F38DA, VEX_W_0F3ADE.
	* i386-gen.c (isa_dependencies): Add SM3.
	(cpu_flags): Ditto.
	* i386-init.h: Regenerated.
	* i386-mnem.h: Ditto.
	* i386-opc.h (CpuSM3): New.
	(i386_cpu_flags): Add cpusm3.
	* i386-opc.tbl: Add SM3 instructions.
	* i386-tbl.h: Regenerated.
2023-07-27 20:52:25 +08:00
Haochen Jiang
3ac2eb9481 Support Intel SHA512
gas/ChangeLog:

	* NEWS: Support Intel SHA512.
	* config/tc-i386.c: Add sha512.
	* doc/c-i386.texi: Document .sha512.
	* testsuite/gas/i386/disassem.d: Add SHA512 tests.
	* testsuite/gas/i386/disassem.s: Ditto.
	* testsuite/gas/i386/i386.exp: Run SHA512 tests.
	* testsuite/gas/i386/x86-64.exp: Ditto.
	* testsuite/gas/i386/sha512-intel.d: New test.
	* testsuite/gas/i386/sha512-inval.l: Ditto.
	* testsuite/gas/i386/sha512-inval.s: Ditto.
	* testsuite/gas/i386/sha512.d: Ditto.
	* testsuite/gas/i386/sha512.s: Ditto.
	* testsuite/gas/i386/x86-64-sha512-intel.d: Ditto.
	* testsuite/gas/i386/x86-64-sha512-inval.l: Ditto.
	* testsuite/gas/i386/x86-64-sha512-inval.s: Ditto.
	* testsuite/gas/i386/x86-64-sha512.d: Ditto.
	* testsuite/gas/i386/x86-64-sha512.s: Ditto.

opcodes/ChangeLog:

	* i386-dis.c (Rxmmq): New.
	(Rymm): Ditto.
	(PREFIX_VEX_0F38CB): Ditto.
	(PREFIX_VEX_0F38CC): Ditto.
	(PREFIX_VEX_0F38CD): Ditto.
	(VEX_LEN_0F38CB_P_3_W_0): Ditto.
	(VEX_LEN_0F38CC_P_3_W_0): Ditto.
	(VEX_LEN_0F38CD_P_3_W_0): Ditto.
	(VEX_W_0F38CB_P_3): Ditto.
	(VEX_W_0F38CC_P_3): Ditto.
	(VEX_W_0F38CD_P_3): Ditto.
	(prefix_table): Add PREFIX_VEX_0F38CB, PREFIX_VEX_0F38CC,
	PREFIX_VEX_0F38CD.
	(vex_len_table): Add VEX_LEN_0F38CB_P_3_W_0,
	VEX_LEN_0F38CC_P_3_W_0, VEX_LEN_0F38CD_P_3_W_0.
	(vex_w_table): Add VEX_W_0F38CB_P_3, VEX_W_0F38CC_P_3, VEX_W_0F38CD_P_3.
	* i386-gen.c (isa_dependencies): Add SHA512.
	(cpu_flags): Ditto.
	* i386-init.h: Regenerated.
	* i386-mnem.h: Ditto.
	* i386-opc.h (CpuSHA512): New.
	(i386_cpu_flags): Add cpusha512.
	* i386-opc.tbl: Add SHA512 instructions.
	* i386-tbl.h: Regenerated.
2023-07-27 20:52:17 +08:00
konglin1
3fde5f6e7d Support Intel AVX-VNNI-INT16
gas/ChangeLog:

	* NEWS: Support Intel AVX-VNNI-INT16.
	* config/tc-i386.c: Add avx_vnni_int16.
	* doc/c-i386.texi: Document avx_vnni_int16.
	* testsuite/gas/i386/i386.exp: Run AVX VNNI INT16 tests.
	* testsuite/gas/i386/x86-64.exp: Ditto.
	* testsuite/gas/i386/avx-vnni-int16-intel.d: New test.
	* testsuite/gas/i386/avx-vnni-int16.d: New test.
	* testsuite/gas/i386/avx-vnni-int16.s: New test.
	* testsuite/gas/i386/x86-64-avx-vnni-int16-intel.d: New test.
	* testsuite/gas/i386/x86-64-avx-vnni-int16.d: New test.
	* testsuite/gas/i386/x86-64-avx-vnni-int16.s: New test.

opcodes/ChangeLog:

	* i386-dis.c (PREFIX_VEX_0F38D2_W_0): New.
	(PREFIX_VEX_0F38D3_W_0): Ditto.
	(VEX_W_0F38D2_P_0): Ditto.
	(VEX_W_0F38D2_P_1): Ditto.
	(VEX_W_0F38D2_P_2): Ditto.
	(VEX_W_0F38D3_P_0): Ditto.
	(VEX_W_0F38D3_P_1): Ditto.
	(VEX_W_0F38D3_P_2): Ditto.
	(prefix_table): Add PREFIX_VEX_0F38D2_W_0 and
	PREFIX_VEX_0F38D3_W_0.
	(vex_table): Add VEX_W_0F38D2 and VEX_W_0F38D3.
	(vex_w_table): Ditto.
	* i386-gen.c (isa_dependencies): Add AVX_VNNI_INT16.
	(cpu_flag): Ditto.
	* i386-init.h: Regenerated.
	* i386-mnem.h: Ditto.
	* i386-opc.h: (CpuAVX_VNNI_INT16): New.
	* i386-opc.tbl: Add Intel AVX_VNNI_INT16 instructions.
	* i386-tbl.h: Regenerated.
2023-07-27 20:51:20 +08:00
GDB Administrator
513c7e5f3e Automatic date update in version.in 2023-07-27 00:00:41 +00:00
Tom de Vries
afca9a9b45 [gdb/testsuite] Fix gdb.python/py-thread-exited.exp
Two fixes in gdb.python/py-thread-exited.exp:
- fix the copyright notice validity range (PR testsuite/30687):
  2022-202 -> 2022-2023, and
- add missing "require allow_python_tests".

Tested on x86_64-linux.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30687
2023-07-26 21:40:01 +02:00
David Faust
9d1e07bd19 bpf: accept # as an inline comment char
This little patch makes the BPF assembler accept '#' as an inline
comment character, which clang -S seems to use.

gas/
	* config/tc-bpf.c (comment_chars): Add '#'.
	* doc/c-bpf.texi (BPF Special Characters): Add note that '#' may
	be used for inline comments.
2023-07-26 08:22:31 -07:00
Tom de Vries
200546f1a3 [gdb/build] Fix Wstringop-truncation in coff_getfilename
When building gdb with -O2 -fsanitize-threads, I ran into
a Werror=stringop-truncation.

The problem is here in coff_getfilename in coffread.c:
...
      strncpy (buffer, aux_entry->x_file.x_n.x_fname, FILNMLEN);
      buffer[FILNMLEN] = '\0';
...

The constant FILNMLEN is expected to designate the size of
aux_entry->x_file.x_n.x_fname, but that's no longer the case since commit
60ebc257517 ("Fixes a buffer overflow when compiling assembler for the MinGW
targets.").

Fix this by using "sizeof (aux_entry->x_file.x_n.x_fname)" instead.

Likewise in xcoffread.c.

Tested on x86_64-linux.

Approved-By: Tom Tromey <tom@tromey.com>

PR build/30669
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30669
2023-07-26 17:06:23 +02:00
Jose E. Marchesi
ac284430be bpf: gas: add negi and neg32i tests
gas/ChangeLog:

2023-07-26  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* testsuite/gas/bpf/alu.s: Add test for NEGI and NEG32I.
	* testsuite/gas/bpf/alu32.s: Likewise.
	* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
	* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
	* testsuite/gas/bpf/alu.d: Add expected results.
	* testsuite/gas/bpf/alu-be.d: Likewise.
	* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
	* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
	* testsuite/gas/bpf/alu32.d: Likewise.
	* testsuite/gas/bpf/alu32-be.d: Likewise.
	* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
2023-07-26 15:03:04 +02:00
Tom de Vries
bcf43b33cf [gdb/testsuite] Drop -nostdlib in gdb.dwarf2/typeddwarf.exp
As reported in PR testsuite/30633, when running test-case
gdb.dwarf2/typeddwarf.exp with target board native-gdbserver on Ubuntu
22.04.2, we run into:
...
(gdb) continue^M
Continuing.^M
^M
Program received signal SIGSEGV, Segmentation fault.^M
0x0000000000000001 in ?? ()^M
(gdb) FAIL: gdb.dwarf2/typeddwarf.exp: runto: run to main
...

We run into the FAIL as follows:
- due to using gdbserver, we attach at the point of the first instruction, in
  _start
- we then set a breakpoint at main
- the test-case is a .s file, that has main renamed to _start in the assembly,
  but not in the debuginfo
- setting a breakpoint at main sets the breakpoint at the same instruction
  we're currently stopped at
- continue doesn't hit the breakpoint, and we return out of _start, which
  causes a sigsegv

Note that this is for the amd64 case (using gdb.dwarf2/typeddwarf-amd64.S).
For the i386 case (using gdb.dwarf2/typeddwarf.S), setting a breakpoint in
main sets it one insn after function entry, and consequently the problem does
not occur.

The FAIL is a regression since commit 90cce6c0551 ("[gdb/testsuite] Add nopie
in a few test-cases").

Without nopie the executable is PIE, with nopie it's static instead.

In the PIE case, we attach at the point of _start in the dynamic linker, and
consequently we do not skip the breakpoint in main, and also don't run into
the FAIL.

Fix this by:
- removing the -nostdlib setting, and
- renaming _start to main in both .S files.

The change to use -nostdlib and rename main to _start was originally added
in commit 6edba76fe8b (submitted here:
https://sourceware.org/pipermail/gdb-patches/2011-May/082657.html ) , I assume
to fix the problem now fixed by using nopie.

Tested on x86_64-linux.

Reported-By: Simon Marchi <simon.marchi@efficios.com>
Tested-By: Simon Marchi <simon.marchi@efficios.com>
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30633
2023-07-26 13:42:32 +02:00
Tom de Vries
87c9b0289d [gdb/tui] Fix secondary prompt
With CLI, a session defining a command looks like:
...
(gdb) define foo
Type commands for definition of "foo".
End with a line saying just "end".
>bar
>end
(gdb)
...

With TUI however, we get the same secondary prompts, and type the same, but
are left with:
...
(gdb) define foo
Type commands for definition of "foo".
End with a line saying just "end".
(gdb)
...

Fix this by calling tui_inject_newline_into_command_window in
gdb_readline_wrapper_line, as is done in tui_command_line_handler.

Tested on x86_64-linux.

PR tui/30636
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30636
2023-07-26 13:31:53 +02:00
Tom de Vries
2b8bee8b34 [gdb/testsuite] Fix gdb.gdb/python-helper.exp with -O2 -flto=auto and gcc 7.5.0 some more
With a gdb build with -O2 -flto=auto and gcc 7.5.0 and test-case
gdb.gdb/python-helper.exp I run into:
...
(outer-gdb) continue^M
Continuing.^M
print 1^M
^M
Thread 1 "xgdb" hit Breakpoint 2, \
  _Z11value_printP5valueP7ui_filePK19value_print_options (val=0x22e2590, \
  stream=0x1f65480, options=0x7fffffffcdc0) at gdb/valprint.c:1193^M
1193    {^M
(outer-gdb) FAIL: gdb.gdb/python-helper.exp: hit breakpoint in outer gdb
...

This is the "value_print" variant of the problem with "c_print_type" I fixed
in commit 0d332f11122 ("[gdb/testsuite] Fix gdb.gdb/python-helper.exp with -O2
 -flto=auto and gcc 7.5.0").

Fix this likewise.

Tested on x86_64-linux.
2023-07-26 13:28:15 +02:00
Tom de Vries
c0afd99439 [gdb/tui] Fix assert in ~gdbpy_tui_window_maker
In gdb/tui/tui-layout.c, we have:
...
static window_types_map known_window_types;
...
and in gdb/python/py-tui.c:
...
  /* A global list of all gdbpy_tui_window_maker objects.  */
  static intrusive_list<gdbpy_tui_window_maker> m_window_maker_list;
};

/* See comment in class declaration above.  */

intrusive_list<gdbpy_tui_window_maker>
  gdbpy_tui_window_maker::m_window_maker_list;
...

With a gdb build with -O0 or -O2, the static destructor calling order seems to be:
- first gdb/tui/tui-layout.c,
- then gdb/python/py-tui.c.

So when running test-case gdb.python/tui-window-factory.exp, we see the
following order of events:
- the destructor for known_window_types is called, which triggers calling the
  destructor for the only element E of m_window_maker_list.  The destructor
  destroys E, and also removes E from m_window_maker_list, leaving it empty.
- the destructor for m_window_maker_list is called.  It's empty, so it's a nop.

However, when building gdb with -O2 -flto=auto, the static destructor calling
order seems to be reversed.

Instead, we have these events:
- the destructor for m_window_maker_list is called.  This doesn't destroy it's
  only element E, but it does make m_window_maker_list empty.
- the destructor for known_window_types is called, which triggers calling the
  destructor for E.  An attempt is done to remove E from m_window_maker_list,
  but we run into an assertion failure, because the list is empty.

Fix this by checking is_linked () before attempting to remove from
m_window_maker_list, similar to how things were addressed in commit 995a34b1772
("Guard against frame.c destructors running before frame-info.c's").

Tested on x86_64-linux.

PR tui/30646
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30646
2023-07-26 12:29:28 +02:00
Tom de Vries
906c2c6564 [gdb/testsuite] Fix regexps in gdb.base/step-over-syscall.exp
When running test-case gdb.base/step-over-syscall.exp without glibc debuginfo
installed, I get:
...
(gdb) continue^M
Continuing.^M
^M
Breakpoint 2, 0x00007ffff7d4405e in vfork () from /lib64/libc.so.6^M
(gdb) PASS: gdb.base/step-over-syscall.exp: vfork: displaced=off: \
  continue to vfork (1st time)
...
but with glibc debuginfo installed I get instead:
...
(gdb) continue^M
Continuing.^M
^M
Breakpoint 2, 0x00007ffff7d4405e in __libc_vfork () at \
  ../sysdeps/unix/sysv/linux/x86_64/vfork.S:44^M
44      ENTRY (__vfork)^M
(gdb) FAIL: gdb.base/step-over-syscall.exp: vfork: displaced=off: \
  continue to vfork (1st time)
...

The FAIL is due to a mismatch with regexp:
...
  "Breakpoint \[0-9\]+, (.* in |__libc_|)$syscall \\(\\).*"
...
because it cannot match both ".* in " and the __libc_ prefix.

Fix this by using instead the regexp:
...
  "Breakpoint \[0-9\]+, (.* in )?(__libc_)?$syscall \\(\\).*"
...

Tested on x86_64-linux.
2023-07-26 11:53:31 +02:00
Jose E. Marchesi
4200337219 bpf: fix neg and neg32 BPF instructions in simulator
This patch fixes the semantics of the neg and neg32 BPF instructions
in the simulator, and also updates the corresponding tests
accordingly.

Tested in target bpf-unknown-none.
2023-07-26 11:44:20 +02:00
Jose E. Marchesi
04896832b2 bpf: fix register NEG[32] instructions
This patch fixes the BPF_INSN_NEGR and BPF_INSN_NEG32R BPF
instructions to not use their source registers.

Tested in bpf-unknown-none.

opcodes/ChangeLog:

2023-07-26  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* bpf-opc.c (bpf_opcodes): Fix BPF_INSN_NEGR to not use a src
	register.

gas/ChangeLog:

2023-07-26  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* testsuite/gas/bpf/alu.s: The register neg instruction gets only
	one argument.
	* testsuite/gas/bpf/alu32-be-pseudoc.d: Likewise.
	* testsuite/gas/bpf/alu32-pseudoc.d: Likewise.
	* testsuite/gas/bpf/alu32-pseudoc.s: Likewise.
	* testsuite/gas/bpf/alu-pseudoc.d: Likewise.
	* testsuite/gas/bpf/alu-be-pseudoc.d: Likewise.
	* testsuite/gas/bpf/alu-pseudoc.s: Likewise.
	* testsuite/gas/bpf/alu-be.d: Likewise.
	* testsuite/gas/bpf/alu.d: Likewise.
	* testsuite/gas/bpf/alu32-be.d: Likewise.
	* testsuite/gas/bpf/alu32.d: Likewise.
	* testsuite/gas/bpf/alu32.s: Likewise.
	* doc/c-bpf.texi (BPF Instructions): Update accordingly.
2023-07-26 11:38:04 +02:00
Alan Modra
477c9f2ba2 PR30657, gprof heap buffer overflow
PR 30657
	* cg_arcs.c (cg_assemble): Sanity check find_call addresses.
	* i386.c (i386_find_call): Don't access past end of core_text_space.
	* aarch64.c (aarch64_find_call): Round up lowpc, round down highpc.
	* alpha.c (alpha_find_call): Likewise.
	* mips.c (mips_find_call): Likewise.
	* sparc.c (sparc_find_call): Likewise.
	* vax.c (vax_find_call): Sanity check core_text_space accesses.
2023-07-26 10:23:27 +09:30
Alan Modra
eb14a8b4bf [GOLD] reporting local symbol names
get_symbol_name currently returns "" for the usual STT_SECTION symbols
generated by gas.  That's not very helpful, return the section name.
Demangle local symbols too, fixing an inconsistency in
issue_discarded_error where global symbols are demangled.

	* object.cc (Sized_relobj_file::get_symbol_name): Return a
	std::string.  Return section name for STT_SECTION symbols with
	zero st_name.  Sanity check st_name, and don't run off the end
	of an improperly terminated .strtab.  Demangle sym names.
	* object.h (Sized_relobj_file::get_symbol_name): Update decl.
	* target-reloc.h (issue_discarded_error): Adjust.
	* powerpc.cc (Target_powerpc::Relocate::relocate): Report reloc
	type and symbol for relocation overflows.
2023-07-26 10:23:27 +09:30
Alan Modra
0d8e39f5ce Don't warn on .attach_to_group to same group
* config/obj-elf.c (obj_elf_attach_to_group): Don't warn if
	group name matches current group for section.
2023-07-26 10:04:31 +09:30
Alan Modra
fafcbd14a7 bpf: format not a string literal
* config/tc-bpf.c (md_assemble): Correct as_bad call.
2023-07-26 10:04:31 +09:30
Alan Modra
af67f1d01d Regen bpf opcodes POTFILE 2023-07-26 10:04:31 +09:30
GDB Administrator
6296109afc Automatic date update in version.in 2023-07-26 00:00:23 +00:00
David Faust
02f68ef297 bpf: Add atomic compare-and-exchange instructions
This patch adds the two remaining BPF v3 atomic instructions:
- BPF_INSN_ACMP{,32}: atomic compare-and-swap
- BPF_INSN_AXCHG{,32}: atomic (non-conditional) exchange

Tests and documentation are also updated.

gas/
	* doc/c-bpf.texi (BPF Instructions): Document atomic exchange and
	atomic compare-and-swap instructions.
	* testsuite/gas/bpf/atomic.s: Test ACMP, ACMP32, AXCHG, AXCGH32
	instructions.
	* testsuite/gas/bpf/atomic.d: Likewise.
	* testsuite/gas/bpf/atomic-be.d: Likewise.
	* testsuite/gas/bpf/atomic-pseudoc.s: Likewise.
	* testsuite/gas/bpf/atomic-pseudoc.d: Likewise.
	* testsuite/gas/bpf/atomic-be-pseudoc.d: Likewise.

include/
	* opcode/bpf.h (BPF_IMM32_ACMP): Fix typo.
	(enum bpf_insn_id): New entries for BPF_INSN_ACMP{,32} and
	BPF_INSN_AXCHG{,32}.

opcodes/
	* bpf-opc.c (bpf_opcodes): Add entries for ACMP{,32} and
	AXCHG{,32} instructions.
2023-07-25 13:40:06 -07:00