- Patches dropped (bsc#1207712):

* gdb-container-rh-pkg.patch
- Patches added (bsc#1207712):
  * gdb-testsuite-add-gdb.suse-debranding.exp.patch
- Patches added (test-case fix):
  * gdb-testsuite-fix-gdb.dwarf2-dw2-dir-file-name.exp-w.patch
- Patches added (fedora patch fixup):
  * fixup-gdb-test-dw2-aranges.patch
- Patches added (master backports):
  * gdb-testsuite-add-xfail-in-gdb.arch-i386-pkru.exp.patch
  * gdb-testsuite-add-xfail-in-gdb.python-py-record-btra.patch
  * gdb-testsuite-factor-out-proc-linux_kernel_version.patch
  * gdb-testsuite-fix-gdb.base-infoline-reloc-main-from-.patch
  * gdb-testsuite-fix-gdb.base-nested-subp-2-3-.exp-with.patch
  * gdb-testsuite-fix-gdb.threads-schedlock.exp-on-fast-.patch
  * gdb-testsuite-handle-missing-.note.gnu-stack.patch
  * gdb-testsuite-simplify-gdb.arch-amd64-disp-step-avx..patch
  * gdb-testsuite-fix-gdb.threads-schedlock.exp-for-gcc-.patch
  * gdb-testsuite-add-xfail-case-in-gdb.python-py-record.patch
  * add-elfcompress_zstd.patch
  * binutils-gdb-support-zstd-compressed-debug-section.patch
  * fix-gdb-build-elf-support-check-lzstd.patch
- Patches removed (dropped by fedora):
  * gdb-test-ivy-bridge.patch
- Disable "BuildRequires: %{gcc}-fortran" for SLE-11.
- Maintenance script qa-local.sh:
  * Add SLE-11 to configs.
  * Build with --no-verify.
- Maintenance script qa.sh:
  * Add -sle11.

OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=347
This commit is contained in:
Tom de Vries 2023-03-01 11:32:26 +00:00 committed by Git OBS Bridge
parent 054020c7be
commit fc4d8845bb
22 changed files with 3917 additions and 508 deletions

View File

@ -0,0 +1,29 @@
From f41928feb3e44fb27776afa062a1cd06263b7d1d Mon Sep 17 00:00:00 2001
From: Cary Coutant <ccoutant@gmail.com>
Date: Tue, 2 Aug 2022 16:19:43 -0700
Subject: [PATCH 1/2] Add ELFCOMPRESS_ZSTD.
include/elf/
* common.h: Add ELFCOMPRESS_ZSTD.
---
include/elf/common.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/elf/common.h b/include/elf/common.h
index 70d63e3299c..c409da2bd16 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -588,6 +588,8 @@
/* Compression types. */
#define ELFCOMPRESS_ZLIB 1 /* Compressed with zlib. */
+#define ELFCOMPRESS_ZSTD 2 /* Compressed with zstd */
+ /* (see http://www.zstandard.org). */
#define ELFCOMPRESS_LOOS 0x60000000 /* OS-specific semantics, lo */
#define ELFCOMPRESS_HIOS 0x6FFFFFFF /* OS-specific semantics, hi */
#define ELFCOMPRESS_LOPROC 0x70000000 /* Processor-specific semantics, lo */
base-commit: 835a10f8541c7c4150098c82e097c4f606475cfa
--
2.35.3

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,101 @@
From 1907d04cb6cb94052369995cf8373f2670908e2a Mon Sep 17 00:00:00 2001
From: Pedro Alves <pedro@palves.net>
Date: Wed, 28 Sep 2022 11:33:30 +0100
Subject: [PATCH] Fix GDB build: ELF support check & -lzstd
GDB fails to build for me, on Ubuntu 20.04. I get:
...
CXXLD gdb
/usr/bin/ld: linux-tdep.o: in function `linux_corefile_thread(thread_info*, linux_corefile_thread_data*)':
/home/pedro/gdb/binutils-gdb/src/gdb/linux-tdep.c:1831: undefined reference to `gcore_elf_build_thread_register_notes(gdbarch*, thread_info*, gdb_signal, bfd*, std::unique_ptr<char, gdb::xfree_deleter<char> >*, int*)'
/usr/bin/ld: linux-tdep.o: in function `linux_make_corefile_notes(gdbarch*, bfd*, int*)':
/home/pedro/gdb/binutils-gdb/src/gdb/linux-tdep.c:2117: undefined reference to `gcore_elf_make_tdesc_note(bfd*, std::unique_ptr<char, gdb::xfree_deleter<char> >*, int*)'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:2149: gdb] Error 1
make[2]: Leaving directory '/home/pedro/gdb/binutils-gdb/build/gdb'
make[1]: *** [Makefile:11847: all-gdb] Error 2
make[1]: Leaving directory '/home/pedro/gdb/binutils-gdb/build'
make: *** [Makefile:1004: all] Error 2
Those undefined functions exist in gdb/gcore-elf.c, which is only
included in the build if GDB's configure thinks that the target you're
configuring for is an ELF target. GDB's configure thinks my system
isn't ELF, which is incorrect.
For the ELF support check, gdb/config.log shows:
configure:17387: checking for ELF support in BFD
configure:17407: gcc -o conftest -I/home/pedro/gdb/binutils-gdb/src/gdb/../include -I../bfd -I/home/pedro/gdb/binutils-gdb/src/gdb/../bfd -g3 -O0 -L../bfd -L../libiberty -lzstd conftest.c -lbfd -liberty -lz -lncursesw -lm -ldl >&5
/usr/bin/ld: ../bfd/libbfd.a(compress.o): in function `decompress_contents':
/home/pedro/gdb/binutils-gdb/src/bfd/compress.c:42: undefined reference to `ZSTD_decompress'
/usr/bin/ld: /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:44: undefined reference to `ZSTD_isError'
/usr/bin/ld: ../bfd/libbfd.a(compress.o): in function `bfd_compress_section_contents':
/home/pedro/gdb/binutils-gdb/src/bfd/compress.c:195: undefined reference to `ZSTD_compress'
/usr/bin/ld: /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:198: undefined reference to `ZSTD_isError'
collect2: error: ld returned 1 exit status
configure:17407: $? = 1
...
configure:17417: result: no
Note how above, in the gcc command line, "-lzstd" appears before
"-lbfd". That explain the link failure. It should appear after, like
-lz does.
This commit fixes it, by moving ZSTD_LIBS from LDFLAGS to LIBS, next
to -lz, in GDB_AC_CHECK_BFD, and regenerating gdb/configure.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29630
Change-Id: I1f4128dde634e8ea04c9002904f1005a8b3a6863
---
gdb/acinclude.m4 | 4 ++--
gdb/configure | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gdb/acinclude.m4 b/gdb/acinclude.m4
index 28846119dcb..62fa66c7af3 100644
--- a/gdb/acinclude.m4
+++ b/gdb/acinclude.m4
@@ -234,9 +234,9 @@ AC_DEFUN([GDB_AC_CHECK_BFD], [
# always want our bfd.
CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
ZLIBDIR=`echo $zlibdir | sed 's,\$(top_builddir)/,,g'`
- LDFLAGS="-L../bfd -L../libiberty $ZLIBDIR $ZSTD_LIBS $LDFLAGS"
+ LDFLAGS="-L../bfd -L../libiberty $ZLIBDIR $LDFLAGS"
intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
- LIBS="-lbfd -liberty -lz $intl $LIBS"
+ LIBS="-lbfd -liberty -lz $ZSTD_LIBS $intl $LIBS"
AC_CACHE_CHECK(
[$1],
[$2],
diff --git a/gdb/configure b/gdb/configure
index 2fcba76b5e8..a5f33ce65d9 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -17963,9 +17963,9 @@ WIN32LIBS="$WIN32LIBS $WIN32APILIBS"
# always want our bfd.
CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
ZLIBDIR=`echo $zlibdir | sed 's,\$(top_builddir)/,,g'`
- LDFLAGS="-L../bfd -L../libiberty $ZLIBDIR $ZSTD_LIBS $LDFLAGS"
+ LDFLAGS="-L../bfd -L../libiberty $ZLIBDIR $LDFLAGS"
intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
- LIBS="-lbfd -liberty -lz $intl $LIBS"
+ LIBS="-lbfd -liberty -lz $ZSTD_LIBS $intl $LIBS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ELF support in BFD" >&5
$as_echo_n "checking for ELF support in BFD... " >&6; }
if ${gdb_cv_var_elf+:} false; then :
@@ -18078,9 +18078,9 @@ fi
# always want our bfd.
CFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CFLAGS"
ZLIBDIR=`echo $zlibdir | sed 's,\$(top_builddir)/,,g'`
- LDFLAGS="-L../bfd -L../libiberty $ZLIBDIR $ZSTD_LIBS $LDFLAGS"
+ LDFLAGS="-L../bfd -L../libiberty $ZLIBDIR $LDFLAGS"
intl=`echo $LIBINTL | sed 's,${top_builddir}/,,g'`
- LIBS="-lbfd -liberty -lz $intl $LIBS"
+ LIBS="-lbfd -liberty -lz $ZSTD_LIBS $intl $LIBS"
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Mach-O support in BFD" >&5
$as_echo_n "checking for Mach-O support in BFD... " >&6; }
if ${gdb_cv_var_macho+:} false; then :
--
2.35.3

View File

@ -0,0 +1,21 @@
From 81a7585502092b3c133534ac6ecb34fd56d05337 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Thu, 16 Feb 2023 12:56:41 +0100
Subject: [PATCH 09/11] fixup gdb-test-dw2-aranges.patch
---
gdb/testsuite/gdb.dwarf2/dw2-aranges.S | 1 +
1 file changed, 1 insertion(+)
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.S b/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
index d5b9ca5a3c6..b811f6644cb 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.S
@@ -138,3 +138,4 @@ main:
.byte 0 /* aranges segment_size */
.Laranges_end:
+ .section .note.GNU-stack,"",@progbits
--
2.35.3

View File

@ -1,30 +0,0 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Fedora GDB patches <invalid@email.com>
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-container-rh-pkg.patch
;; Add messages suggesting more recent RHEL gdbserver (RH BZ 1321114).
;;=fedora
diff --git a/gdb/remote.c b/gdb/remote.c
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -14343,7 +14343,17 @@ remote_target::pid_to_exec_file (int pid)
char *annex = NULL;
if (packet_support (PACKET_qXfer_exec_file) != PACKET_ENABLE)
- return NULL;
+ {
+ warning (_("Remote gdbserver does not support determining executable "
+ "automatically.\n"
+"RHEL <=6.8 and <=7.2 versions of gdbserver do not support such automatic executable detection.\n"
+"The following versions of gdbserver support it:\n"
+"- Upstream version of gdbserver (unsupported) 7.10 or later\n"
+"- Red Hat Developer Toolset (DTS) version of gdbserver from DTS 4.0 or later (only on x86_64)\n"
+"- RHEL-7.3 versions of gdbserver (on any architecture)"
+));
+ return NULL;
+ }
inferior *inf = find_inferior_pid (this, pid);
if (inf == NULL)

View File

@ -1,468 +0,0 @@
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
From: Fedora GDB patches <invalid@email.com>
Date: Fri, 27 Oct 2017 21:07:50 +0200
Subject: gdb-test-ivy-bridge.patch
;; Test GDB opcodes/ disassembly of Intel Ivy Bridge instructions (BZ 696890).
;;=fedoratest
diff --git a/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.S
@@ -0,0 +1,98 @@
+/* Copyright 2011 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ This file is part of the gdb testsuite. */
+
+ .globl _start
+_start: .text
+
+/* gas/i386/x86-64-rdrnd.s */
+ .att_syntax prefix
+ rdrand %bx
+ rdrand %ebx
+ rdrand %rbx
+ rdrand %r8w
+ rdrand %r8d
+ rdrand %r8
+
+ .intel_syntax noprefix
+ rdrand bx
+ rdrand ebx
+ rdrand rbx
+ rdrand r8w
+ rdrand r8d
+ rdrand r8
+
+/* gas/i386/x86-64-f16c.s */
+ .att_syntax prefix
+ vcvtph2ps %xmm4,%ymm4
+ vcvtph2ps (%r8),%ymm8
+ vcvtph2ps %xmm4,%xmm6
+ vcvtph2ps (%rcx),%xmm4
+ vcvtps2ph $0x2,%ymm4,%xmm4
+ vcvtps2ph $0x2,%ymm8,(%r8)
+ vcvtps2ph $0x2,%xmm4,%xmm4
+ vcvtps2ph $0x2,%xmm4,(%rcx)
+
+ .intel_syntax noprefix
+ vcvtph2ps ymm4,xmm4
+ vcvtph2ps ymm8,XMMWORD PTR [r8]
+ vcvtph2ps ymm4,[rcx]
+ vcvtph2ps xmm6,xmm4
+ vcvtph2ps xmm4,QWORD PTR [rcx]
+ vcvtph2ps xmm4,[rcx]
+ vcvtps2ph xmm4,ymm4,0x2
+ vcvtps2ph XMMWORD PTR [rcx],ymm4,0x2
+ vcvtps2ph [rcx],ymm4,0x2
+ vcvtps2ph xmm4,xmm4,0x2
+ vcvtps2ph QWORD PTR [r8],xmm8,0x2
+ vcvtps2ph [rcx],xmm4,0x2
+
+/* gas/i386/x86-64-fsgs.s */
+ .att_syntax prefix
+ rdfsbase %ebx
+ rdfsbase %rbx
+ rdfsbase %r8d
+ rdfsbase %r8
+ rdgsbase %ebx
+ rdgsbase %rbx
+ rdgsbase %r8d
+ rdgsbase %r8
+ wrfsbase %ebx
+ wrfsbase %rbx
+ wrfsbase %r8d
+ wrfsbase %r8
+ wrgsbase %ebx
+ wrgsbase %rbx
+ wrgsbase %r8d
+ wrgsbase %r8
+
+ .intel_syntax noprefix
+ rdfsbase ebx
+ rdfsbase rbx
+ rdfsbase r8d
+ rdfsbase r8
+ rdgsbase ebx
+ rdgsbase rbx
+ rdgsbase r8d
+ rdgsbase r8
+ wrfsbase ebx
+ wrfsbase rbx
+ wrfsbase r8d
+ wrfsbase r8
+ wrgsbase ebx
+ wrgsbase rbx
+ wrgsbase r8d
+ wrgsbase r8
diff --git a/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-ivy-bridge.exp
@@ -0,0 +1,170 @@
+# Copyright 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if {![istarget "x86_64-*-*"]} then {
+ return
+}
+
+set testfile amd64-ivy-bridge
+set test compilation
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m64 -nostdlib"]] {
+ unsupported $test
+ return -1
+}
+pass $test
+
+gdb_test_no_output "set disassembly-flavor att"
+# gas/i386/x86-64-rdrnd.d
+# gas/i386/x86-64-f16c.d
+# gas/i386/x86-64-fsgs.d
+gdb_test "disassemble/r _start" "\r
+Dump of assembler code for function _start:\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand %rbx\r
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand %r8w\r
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand %r8d\r
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand %r8\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand %rbx\r
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand %r8w\r
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand %r8d\r
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand %r8\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps \\(%r8\\),%ymm8\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%xmm4\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
+\[^\r\n\]+:\tc4 43 7d 1d 00 02\t\( \)?vcvtps2ph \\\$0x2,%ymm8,\\(%r8\\)\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%rcx\\)\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps \\(%r8\\),%ymm8\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%ymm4\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%xmm4\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%rcx\\),%xmm4\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%rcx\\)\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%rcx\\)\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
+\[^\r\n\]+:\tc4 43 79 1d 00 02\t\( \)?vcvtps2ph \\\$0x2,%xmm8,\\(%r8\\)\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%rcx\\)\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase %r8\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase %r8\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase %r8\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase %r8\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase %r8\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase %r8\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase %r8\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase %rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase %r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase %r8\r
+End of assembler dump\\." "att"
+
+gdb_test_no_output "set disassembly-flavor intel"
+# gas/i386/x86-64-rdrnd-intel.d
+# gas/i386/x86-64-f16c-intel.d
+# gas/i386/x86-64-fsgs-intel.d
+gdb_test "disassemble/r _start" "\r
+Dump of assembler code for function _start:\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand rbx\r
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand r8w\r
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand r8d\r
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand r8\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
+\[^\r\n\]+:\t48 0f c7 f3\t\( \)?rdrand rbx\r
+\[^\r\n\]+:\t66 41 0f c7 f0\t\( \)?rdrand r8w\r
+\[^\r\n\]+:\t41 0f c7 f0\t\( \)?rdrand r8d\r
+\[^\r\n\]+:\t49 0f c7 f0\t\( \)?rdrand r8\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps ymm8,XMMWORD PTR \\\[r8\\\]\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
+\[^\r\n\]+:\tc4 43 7d 1d 00 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[r8\\\],ymm8,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[rcx\\\],xmm4,0x2\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
+\[^\r\n\]+:\tc4 42 7d 13 00\t\( \)?vcvtph2ps ymm8,XMMWORD PTR \\\[r8\\\]\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[rcx\\\]\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[rcx\\\]\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[rcx\\\],ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[rcx\\\],ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
+\[^\r\n\]+:\tc4 43 79 1d 00 02\t\( \)?vcvtps2ph QWORD PTR \\\[r8\\\],xmm8,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[rcx\\\],xmm4,0x2\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase r8\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase r8\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase r8\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase r8\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae c3\t\( \)?rdfsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c0\t\( \)?rdfsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c0\t\( \)?rdfsbase r8\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae cb\t\( \)?rdgsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae c8\t\( \)?rdgsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae c8\t\( \)?rdgsbase r8\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae d3\t\( \)?wrfsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d0\t\( \)?wrfsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d0\t\( \)?wrfsbase r8\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
+\[^\r\n\]+:\tf3 48 0f ae db\t\( \)?wrgsbase rbx\r
+\[^\r\n\]+:\tf3 41 0f ae d8\t\( \)?wrgsbase r8d\r
+\[^\r\n\]+:\tf3 49 0f ae d8\t\( \)?wrgsbase r8\r
+End of assembler dump\\." "intel"
diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.S b/gdb/testsuite/gdb.arch/i386-ivy-bridge.S
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/i386-ivy-bridge.S
@@ -0,0 +1,66 @@
+/* Copyright 2011 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+ This file is part of the gdb testsuite. */
+
+ .globl _start
+_start: .text
+
+/* gas/i386/rdrnd.s */
+ .att_syntax prefix
+ rdrand %bx
+ rdrand %ebx
+
+ .intel_syntax noprefix
+ rdrand bx
+ rdrand ebx
+
+/* gas/i386/f16c.s */
+ .att_syntax prefix
+ vcvtph2ps %xmm4,%ymm4
+ vcvtph2ps (%ecx),%ymm4
+ vcvtph2ps %xmm4,%xmm6
+ vcvtph2ps (%ecx),%xmm4
+ vcvtps2ph $0x2,%ymm4,%xmm4
+ vcvtps2ph $0x2,%ymm4,(%ecx)
+ vcvtps2ph $0x2,%xmm4,%xmm4
+ vcvtps2ph $0x2,%xmm4,(%ecx)
+
+ .intel_syntax noprefix
+ vcvtph2ps ymm4,xmm4
+ vcvtph2ps ymm4,XMMWORD PTR [ecx]
+ vcvtph2ps ymm4,[ecx]
+ vcvtph2ps xmm6,xmm4
+ vcvtph2ps xmm4,QWORD PTR [ecx]
+ vcvtph2ps xmm4,[ecx]
+ vcvtps2ph xmm4,ymm4,0x2
+ vcvtps2ph XMMWORD PTR [ecx],ymm4,0x2
+ vcvtps2ph [ecx],ymm4,0x2
+ vcvtps2ph xmm4,xmm4,0x2
+ vcvtps2ph QWORD PTR [ecx],xmm4,0x2
+ vcvtps2ph [ecx],xmm4,0x2
+
+/* gas/i386/fsgs.s */
+ .att_syntax prefix
+ rdfsbase %ebx
+ rdgsbase %ebx
+ wrfsbase %ebx
+ wrgsbase %ebx
+
+ .intel_syntax noprefix
+ rdfsbase ebx
+ rdgsbase ebx
+ wrfsbase ebx
+ wrgsbase ebx
diff --git a/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp b/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/i386-ivy-bridge.exp
@@ -0,0 +1,106 @@
+# Copyright 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+if {![istarget "x86_64-*-*"] && ![istarget "i?86-*-*"]} then {
+ return
+}
+
+set testfile i386-ivy-bridge
+set test compilation
+if [prepare_for_testing ${testfile}.exp ${testfile}.x ${testfile}.S [list debug "additional_flags=-m32 -nostdlib"]] {
+ fail $test
+ return -1
+}
+pass $test
+
+gdb_test_no_output "set disassembly-flavor att"
+# gas/i386/rdrnd.d
+# gas/i386/f16c.d
+# gas/i386/fsgs.d
+gdb_test "disassemble/r _start" "\r
+Dump of assembler code for function _start:\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand %bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand %ebx\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%ymm4\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%xmm4\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps %xmm4,%ymm4\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%ymm4\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%ymm4\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps %xmm4,%xmm6\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%xmm4\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps \\(%ecx\\),%xmm4\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,%xmm4\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%ymm4,\\(%ecx\\)\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,%xmm4\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph \\\$0x2,%xmm4,\\(%ecx\\)\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase %ebx\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase %ebx\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase %ebx\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase %ebx\r
+End of assembler dump\\." "att"
+
+gdb_test_no_output "set disassembly-flavor intel"
+# gas/i386/rdrnd-intel.d
+# gas/i386/f16c-intel.d
+# gas/i386/fsgs-intel.d
+gdb_test "disassemble/r _start" "\r
+Dump of assembler code for function _start:\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
+\[^\r\n\]+:\t66 0f c7 f3\t\( \)?rdrand bx\r
+\[^\r\n\]+:\t0f c7 f3\t\( \)?rdrand ebx\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
+\[^\r\n\]+:\tc4 e2 7d 13 e4\t\( \)?vcvtph2ps ymm4,xmm4\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
+\[^\r\n\]+:\tc4 e2 7d 13 21\t\( \)?vcvtph2ps ymm4,XMMWORD PTR \\\[ecx\\\]\r
+\[^\r\n\]+:\tc4 e2 79 13 f4\t\( \)?vcvtph2ps xmm6,xmm4\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
+\[^\r\n\]+:\tc4 e2 79 13 21\t\( \)?vcvtph2ps xmm4,QWORD PTR \\\[ecx\\\]\r
+\[^\r\n\]+:\tc4 e3 7d 1d e4 02\t\( \)?vcvtps2ph xmm4,ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 7d 1d 21 02\t\( \)?vcvtps2ph XMMWORD PTR \\\[ecx\\\],ymm4,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d e4 02\t\( \)?vcvtps2ph xmm4,xmm4,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
+\[^\r\n\]+:\tc4 e3 79 1d 21 02\t\( \)?vcvtps2ph QWORD PTR \\\[ecx\\\],xmm4,0x2\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
+\[^\r\n\]+:\tf3 0f ae c3\t\( \)?rdfsbase ebx\r
+\[^\r\n\]+:\tf3 0f ae cb\t\( \)?rdgsbase ebx\r
+\[^\r\n\]+:\tf3 0f ae d3\t\( \)?wrfsbase ebx\r
+\[^\r\n\]+:\tf3 0f ae db\t\( \)?wrgsbase ebx\r
+End of assembler dump\\." "intel"

View File

@ -0,0 +1,68 @@
From b08bf94f170dd39db21cf8f62941f1866b6978c0 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Thu, 16 Feb 2023 11:36:47 +0100
Subject: [PATCH 080/155] Add gdb.suse/debranding.exp
---
gdb/testsuite/gdb.suse/debranding.exp | 49 +++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
create mode 100644 gdb/testsuite/gdb.suse/debranding.exp
diff --git a/gdb/testsuite/gdb.suse/debranding.exp b/gdb/testsuite/gdb.suse/debranding.exp
new file mode 100644
index 00000000000..cdee10b75a7
--- /dev/null
+++ b/gdb/testsuite/gdb.suse/debranding.exp
@@ -0,0 +1,49 @@
+# Copyright 2023 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# There's a problem with dumping the entire output into gdb.log
+# on SLE-11, so redirect to file instead. Also means the gdb.log
+# is smaller.
+set f [standard_output_file "gdb-strings.txt"]
+
+# Not using remote_exec due to using file redirection.
+set cmd "exec strings $GDB > $f"
+set status [catch $cmd msg]
+verbose -log "status: $status"
+verbose -log "msg: $msg"
+gdb_assert { $status == 0 }
+
+set fp [open $f r]
+set output [read $fp]
+close $fp
+
+set re {^.*(?:fedora|red[^a-z]?hat).*$}
+set matches [regexp -line -nocase -all -inline $re $output]
+
+set disallowed_matches 0
+set allowed_re "warning: deprecated Red Hat reloc"
+foreach match $matches {
+ if { [regexp -nocase $allowed_re $match] } {
+ verbose -log "allowed_match: '$match'"
+ continue
+ }
+
+ verbose -log "disallowed_match: '$match'"
+ incr disallowed_matches
+}
+
+gdb_assert { $disallowed_matches == 0 }
+
+remote_file build delete $f
--
2.35.3

View File

@ -0,0 +1,57 @@
From 835a10f8541c7c4150098c82e097c4f606475cfa Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Mon, 20 Feb 2023 11:16:02 +0100
Subject: [PATCH] [gdb/testsuite] Add xfail case in
gdb.python/py-record-btrace.exp
I came across:
...
gdb) PASS: gdb.python/py-record-btrace.exp: prepare record: stepi 100
python insn = r.instruction_history^M
warning: Non-contiguous trace at instruction 1 (offset = 0x3e10).^M
(gdb) FAIL: gdb.python/py-record-btrace.exp: prepare record: python insn = r.i\
nstruction_history
...
I'm assuming it's the same root cause as for the already present XFAIL.
Fix this by recognizing above warning in the xfail regexp.
Tested on x86_64-linux, although sofar I was not able to trigger the warning
again.
Approved-By: Markus T. Metzger <markus.t.metzger@intel.com>
---
gdb/testsuite/gdb.python/py-record-btrace.exp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.python/py-record-btrace.exp b/gdb/testsuite/gdb.python/py-record-btrace.exp
index ca8740bc967..a930d17264d 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace.exp
+++ b/gdb/testsuite/gdb.python/py-record-btrace.exp
@@ -86,6 +86,11 @@ with_test_prefix "prepare record" {
"warning: Decode error \\($nonl_re*\\) at instruction $decimal" \
"\\(offset = $hex, pc = $hex\\):" \
"$nonl_re*\\."]]
+ set xfail_re_2 \
+ [join \
+ [list \
+ "warning: Non-contiguous trace at instruction $decimal" \
+ "\\(offset = $hex\\)\\."]]
set got_xfail 0
set cmd "python insn = r.instruction_history"
@@ -93,7 +98,7 @@ with_test_prefix "prepare record" {
-re "^[string_to_regexp $cmd]\r\n$::gdb_prompt $" {
pass $gdb_test_name
}
- -re -wrap "$xfail_re" {
+ -re -wrap "($xfail_re|$xfail_re_2)" {
if { $have_xfail } {
xfail $gdb_test_name
set got_xfail 1
base-commit: f168a48adf97a36c88c65a075b42e6b7083063df
--
2.35.3

View File

@ -0,0 +1,154 @@
From 1b89c346a99d89a06d9694ca4d47d040d4eebd5a Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Tue, 3 Jan 2023 16:41:05 +0100
Subject: [PATCH 02/11] [gdb/testsuite] Add xfail in gdb.arch/i386-pkru.exp
On a x86_64-linux machine with pkru register, I run into:
...
(gdb) PASS: gdb.arch/i386-pkru.exp: set pkru value
info register pkru^M
pkru 0x12345678 305419896^M
(gdb) FAIL: gdb.arch/i386-pkru.exp: read value after setting value
...
This is a regression due to kernel commit e84ba47e313d ("x86/fpu: Hook up PKRU
onto ptrace()"). This is fixed by recent kernel commit 4a804c4f8356
("x86/fpu: Allow PKRU to be (once again) written by ptrace.").
The regression occurs for kernel versions v5.14-rc1 (the first tag containing
the regression) up to but excluding v6.2-rc1 (the first tag containing the fix).
Fix this by adding an xfail for the appropriate kernel versions.
Tested on x86_64-linux.
PR testsuite/29790
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29790
---
gdb/testsuite/gdb.arch/i386-pkru.exp | 45 +++++++++++++++++++++++---
gdb/testsuite/lib/gdb-utils.exp | 48 ++++++++++++++++++++++++++++
2 files changed, 89 insertions(+), 4 deletions(-)
diff --git a/gdb/testsuite/gdb.arch/i386-pkru.exp b/gdb/testsuite/gdb.arch/i386-pkru.exp
index 7724a579631..5fe93db9b4b 100644
--- a/gdb/testsuite/gdb.arch/i386-pkru.exp
+++ b/gdb/testsuite/gdb.arch/i386-pkru.exp
@@ -58,6 +58,26 @@ if { !$supports_pkru } {
return
}
+# Linux kernel versions 5.14.0 to 6.1.x contain a regression related to writing
+# the PKRU using ptrace, see commit 4a804c4f8356 ("x86/fpu: Allow PKRU to be
+# (once again) written by ptrace.").
+set have_xfail 0
+if { [istarget *-*-linux*] } {
+ set res [remote_exec target "uname -r"]
+ set status [lindex $res 0]
+ set output [lindex $res 1]
+
+ set re ^($decimal)\\.($decimal)\\.($decimal)
+ if { $status == 0
+ && [regexp $re $output dummy v1 v2 v3] == 1 } {
+ set v [list $v1 $v2 $v3]
+ set have_xfail \
+ [expr \
+ [version_compare [list 5 14 0] <= $v] \
+ && [version_compare $v < [list 6 2 0]]]
+ }
+}
+
# Test pkru register at startup
gdb_test "print /x \$pkru" "= $default_pkru_re" "pkru register"
@@ -65,11 +85,28 @@ gdb_test "print /x \$pkru" "= $default_pkru_re" "pkru register"
gdb_breakpoint [ gdb_get_line_number "break here 1" ]
gdb_continue_to_breakpoint "break here 1" ".*break here 1.*"
-gdb_test "info register pkru" ".*pkru.*0x12345678.*" "read pkru register"
-gdb_test "print /x \$pkru = 0x44444444" "= 0x44444444" "set pkru value"
-gdb_test "info register pkru" ".*pkru.*0x44444444.*" "read value after setting value"
+set val1 0x12345678
+gdb_test "info register pkru" ".*pkru.*$val1.*" "read pkru register"
+
+set val2 0x44444444
+gdb_test "print /x \$pkru = $val2" "= $val2" "set pkru value"
+
+set xval $val2
+gdb_test_multiple "info register pkru" "read value after setting value" {
+ -re -wrap ".*pkru.*$val2.*" {
+ pass $gdb_test_name
+ }
+ -re -wrap ".*pkru.*$val1.*" {
+ if { $have_xfail } {
+ xfail $gdb_test_name
+ } else {
+ fail $gdb_test_name
+ }
+ set xval $val1
+ }
+}
gdb_breakpoint [ gdb_get_line_number "break here 2" ]
gdb_continue_to_breakpoint "break here 2" ".*break here 2.*"
-gdb_test "print /x rd_value" "= 0x44444444" "variable after reading pkru"
+gdb_test "print /x rd_value" "= $xval" "variable after reading pkru"
diff --git a/gdb/testsuite/lib/gdb-utils.exp b/gdb/testsuite/lib/gdb-utils.exp
index ffdfb75557c..294d0998632 100644
--- a/gdb/testsuite/lib/gdb-utils.exp
+++ b/gdb/testsuite/lib/gdb-utils.exp
@@ -72,3 +72,51 @@ proc style {str style} {
}
return "\033\\\[${style}m${str}\033\\\[m"
}
+
+# Compare the version numbers in L1 to those in L2 using OP, and return
+# 1 if the comparison is true.
+
+proc version_compare { l1 op l2 } {
+ set len [llength $l1]
+ if { $len != [llength $l2] } {
+ error "l2 not the same length as l1"
+ }
+
+ switch -exact $op {
+ "==" -
+ "<" {}
+ "<=" { return [expr [version_compare $l1 < $l2] \
+ || [version_compare $l1 == $l2]]}
+ default { error "unsupported op: $op" }
+ }
+
+ # Handle ops < and ==.
+ set idx 0
+ foreach v1 $l1 {
+ set v2 [lindex $l2 $idx]
+ incr idx
+ set last [expr $len == $idx]
+
+ set cmp [expr $v1 $op $v2]
+ if { $op == "==" } {
+ if { $cmp } {
+ continue
+ } else {
+ return 0
+ }
+ } else {
+ # $op == "<".
+ if { $cmp } {
+ return 1
+ } else {
+ if { !$last && $v1 == $v2 } {
+ continue
+ }
+ return 0
+ }
+ }
+ }
+
+ return 1
+}
+
--
2.35.3

View File

@ -0,0 +1,98 @@
From 221ecdef7cc008b01832840d1fbd25d94f8abdd1 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Tue, 14 Feb 2023 13:15:49 +0100
Subject: [PATCH 04/11] [gdb/testsuite] Add xfail in
gdb.python/py-record-btrace.exp
There's a HW bug affecting Processor Trace on some Intel processors
(Ice Lake to Raptor Lake microarchitectures).
The bug was exposed by linux kernel commit 670638477aed
("perf/x86/intel/pt: Opportunistically use single range output mode"),
added in version v5.5.0, and was worked around by commit ce0d998be927
("perf/x86/intel/pt: Fix sampling using single range output") in version
6.1.0.
The bug manifests (on a Performance-core of an i7-1250U, an Alder Lake cpu) in
a single test-case:
...
(gdb) python insn = r.instruction_history^M
warning: Decode error (-20) at instruction 33 (offset = 0x3d6a, \
pc = 0x400501): compressed return without call.^M
(gdb) FAIL: gdb.python/py-record-btrace.exp: prepare record: \
python insn = r.instruction_history
...
Add a corresponding XFAIL.
Note that the i7-1250U has both Performance-cores and Efficient-cores, and on
an Efficient-Core the test-case runs without any problems, so if the testsuite
run is not pinned to a specific cpu, the test may either PASS or XFAIL.
Tested on x86_64-linux:
- openSUSE Leap 15.4 with linux kernel version 5.14.21
- openSUSE Tumbleweed with linux kernel version 6.1.8
PR testsuite/30075
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30075
---
gdb/testsuite/gdb.python/py-record-btrace.exp | 43 ++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.python/py-record-btrace.exp b/gdb/testsuite/gdb.python/py-record-btrace.exp
index 8204577b866..ca8740bc967 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace.exp
+++ b/gdb/testsuite/gdb.python/py-record-btrace.exp
@@ -64,7 +64,48 @@ with_test_prefix "prepare record" {
gdb_test "python print(r.method)" "btrace"
gdb_test "python print(r.format)" "pt|bts"
gdb_test "stepi 100" ".*"
- gdb_test_no_output "python insn = r.instruction_history"
+
+ # There's a HW bug affecting Processor Trace on some Intel processors.
+ # The bug was exposed by linux kernel commit 670638477aed
+ # ("perf/x86/intel/pt: Opportunistically use single range output mode"),
+ # added in version v5.5.0, and was worked around by commit ce0d998be927
+ # ("perf/x86/intel/pt: Fix sampling using single range output") in version
+ # 6.1.0. Detect the kernel version range for which the problem may
+ # manifest.
+ set have_xfail 0
+ set v [linux_kernel_version]
+ if { $v != {} } {
+ set have_xfail \
+ [expr [version_compare [list 5 5 0] <= $v] \
+ && [version_compare $v < [list 6 1 0]]]
+ }
+ set nonl_re \[^\r\n\]
+ set xfail_re \
+ [join \
+ [list \
+ "warning: Decode error \\($nonl_re*\\) at instruction $decimal" \
+ "\\(offset = $hex, pc = $hex\\):" \
+ "$nonl_re*\\."]]
+
+ set got_xfail 0
+ set cmd "python insn = r.instruction_history"
+ gdb_test_multiple $cmd "" {
+ -re "^[string_to_regexp $cmd]\r\n$::gdb_prompt $" {
+ pass $gdb_test_name
+ }
+ -re -wrap "$xfail_re" {
+ if { $have_xfail } {
+ xfail $gdb_test_name
+ set got_xfail 1
+ } else {
+ fail $gdb_test_name
+ }
+ }
+ }
+ if { $got_xfail } {
+ return
+ }
+
gdb_test_no_output "python call = r.function_call_history"
gdb_test_no_output "python i = insn\[0\]"
gdb_test_no_output "python c = call\[0\]"
--
2.35.3

View File

@ -0,0 +1,81 @@
From bbf4e4ba2a9bd73384268b0160d54e36edc92a12 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Tue, 14 Feb 2023 11:53:54 +0100
Subject: [PATCH 03/11] [gdb/testsuite] Factor out proc linux_kernel_version
Factor out new proc linux_kernel_version from test-case
gdb.arch/i386-pkru.exp.
Tested on x86_64-linux.
---
gdb/testsuite/gdb.arch/i386-pkru.exp | 20 ++++++--------------
gdb/testsuite/lib/gdb.exp | 23 +++++++++++++++++++++++
2 files changed, 29 insertions(+), 14 deletions(-)
diff --git a/gdb/testsuite/gdb.arch/i386-pkru.exp b/gdb/testsuite/gdb.arch/i386-pkru.exp
index 5fe93db9b4b..9bc9f9735e5 100644
--- a/gdb/testsuite/gdb.arch/i386-pkru.exp
+++ b/gdb/testsuite/gdb.arch/i386-pkru.exp
@@ -62,20 +62,12 @@ if { !$supports_pkru } {
# the PKRU using ptrace, see commit 4a804c4f8356 ("x86/fpu: Allow PKRU to be
# (once again) written by ptrace.").
set have_xfail 0
-if { [istarget *-*-linux*] } {
- set res [remote_exec target "uname -r"]
- set status [lindex $res 0]
- set output [lindex $res 1]
-
- set re ^($decimal)\\.($decimal)\\.($decimal)
- if { $status == 0
- && [regexp $re $output dummy v1 v2 v3] == 1 } {
- set v [list $v1 $v2 $v3]
- set have_xfail \
- [expr \
- [version_compare [list 5 14 0] <= $v] \
- && [version_compare $v < [list 6 2 0]]]
- }
+set v [linux_kernel_version]
+if { $v != {} } {
+ set have_xfail \
+ [expr \
+ [version_compare [list 5 14 0] <= $v] \
+ && [version_compare $v < [list 6 2 0]]]
}
# Test pkru register at startup
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 5104835a2a9..069a61038e6 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -8551,5 +8551,28 @@ gdb_caching_proc has_hw_wp_support {
return $has_hw_wp_support
}
+# Detect linux kernel version and return as list of 3 numbers: major, minor,
+# and patchlevel. On failure, return an empty list.
+
+gdb_caching_proc linux_kernel_version {
+ if { ![istarget *-*-linux*] } {
+ return {}
+ }
+
+ set res [remote_exec target "uname -r"]
+ set status [lindex $res 0]
+ set output [lindex $res 1]
+ if { $status != 0 } {
+ return {}
+ }
+
+ set re ^($::decimal)\\.($::decimal)\\.($::decimal)
+ if { [regexp $re $output dummy v1 v2 v3] != 1 } {
+ return {}
+ }
+
+ return [list $v1 $v2 $v3]
+}
+
# Always load compatibility stuff.
load_lib future.exp
--
2.35.3

View File

@ -0,0 +1,46 @@
From 52ce02f7e38ed00f9e42fe4f272787652540c863 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Wed, 12 Oct 2022 16:50:16 +0200
Subject: [PATCH 08/11] [gdb/testsuite] Fix
gdb.base/infoline-reloc-main-from-zero.exp with recent ld
On openSUSE Tumbleweed (with ld 2.39) and test-case
gdb.base/infoline-reloc-main-from-zero.exp, I get:
...
gdb compile failed, ld: warning: infoline-reloc-main-from-zero has a LOAD \
segment with RWX permissions
UNTESTED: gdb.base/infoline-reloc-main-from-zero.exp: \
infoline-reloc-main-from-zero.exp
...
Fix this by compiling with -Wl,--no-warn-rwx-segments.
Tested on x86_64-linux.
---
.../gdb.base/infoline-reloc-main-from-zero.exp | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp b/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
index ef5fe8c24bc..a29668c9712 100644
--- a/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
+++ b/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
@@ -29,7 +29,15 @@ if [get_compiler_info] {
# Build executable with stripped startup code and text section starting at zero
-set opts {debug "additional_flags=-nostdlib -emain -Wl,-Ttext=0x00 -Wl,-N"}
+set opts {}
+lappend opts debug
+lappend opts "additional_flags=-nostdlib -emain -Wl,-Ttext=0x00 -Wl,-N"
+
+set ld_flags additional_flags=-Wl,--no-warn-rwx-segments
+if { [gdb_can_simple_compile ld-flags {int main () { return 0; }} executable \
+ $ld_flags] } {
+ lappend opts $ld_flags
+}
if {[build_executable $testfile.exp $testfile $srcfile $opts] == -1} {
untested "failed to compile"
--
2.35.3

View File

@ -0,0 +1,80 @@
From a95556346e4336d2d6eeba74430212e833c065fb Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Wed, 12 Oct 2022 16:50:16 +0200
Subject: [PATCH 10/11] [gdb/testsuite] Fix gdb.base/nested-subp{2,3}.exp with
recent ld
On openSUSE Tumbleweed (with ld 2.39) I get for test-case
gdb.base/nested-subp2.exp:
...
gdb compile failed, ld: warning: tmp.o: requires executable stack \
(because the .note.GNU-stack section is executable)
...
Fix this by compiling with -Wl,--no-warn-execstack.
Likewise in gdb.base/nested-subp3.exp
Tested on x86_64-linux.
---
gdb/testsuite/gdb.base/nested-subp2.exp | 15 ++++++++++++---
gdb/testsuite/gdb.base/nested-subp3.exp | 15 ++++++++++++---
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/gdb/testsuite/gdb.base/nested-subp2.exp b/gdb/testsuite/gdb.base/nested-subp2.exp
index 876b797e49d..8cb57bd1ee7 100644
--- a/gdb/testsuite/gdb.base/nested-subp2.exp
+++ b/gdb/testsuite/gdb.base/nested-subp2.exp
@@ -29,10 +29,19 @@ if ![support_nested_function_tests] {
return -1
}
+set flags {}
+lappend flags debug
+lappend flags additional_flags=-std=gnu99
+
+set ld_flags additional_flags=-Wl,--no-warn-execstack
+if { [gdb_can_simple_compile ld-flags {int main () { return 0; }} executable \
+ $ld_flags] } {
+ lappend flags $ld_flags
+}
+
if { [gdb_compile "${srcdir}/${subdir}/${testcase}.c" \
- [standard_output_file "${testcase}"] \
- executable \
- [list debug "additional_flags=-std=gnu99"]] != "" } {
+ [standard_output_file "${testcase}"] \
+ executable $flags] != "" } {
return -1
}
diff --git a/gdb/testsuite/gdb.base/nested-subp3.exp b/gdb/testsuite/gdb.base/nested-subp3.exp
index dd236f07c8f..31da8d47f84 100644
--- a/gdb/testsuite/gdb.base/nested-subp3.exp
+++ b/gdb/testsuite/gdb.base/nested-subp3.exp
@@ -29,10 +29,19 @@ if ![support_nested_function_tests] {
return -1
}
+set flags {}
+lappend flags debug
+lappend flags additional_flags=-std=gnu99
+
+set ld_flags additional_flags=-Wl,--no-warn-execstack
+if { [gdb_can_simple_compile ld-flags {int main () { return 0; }} executable \
+ $ld_flags] } {
+ lappend flags $ld_flags
+}
+
if { [gdb_compile "${srcdir}/${subdir}/${testcase}.c" \
- [standard_output_file "${testcase}"] \
- executable \
- [list debug "additional_flags=-std=gnu99"]] != "" } {
+ [standard_output_file "${testcase}"] \
+ executable $flags] != "" } {
return -1
}
--
2.35.3

View File

@ -0,0 +1,26 @@
From 7ba9d8dda33a985a97c9ab922b84b894ffb2e288 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Thu, 16 Feb 2023 13:56:07 +0100
Subject: [PATCH 11/11] [gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp
with recent ld
---
gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
index 4d3f767f597..1fc34ef387b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
@@ -317,6 +317,8 @@ puts -nonewline $f "\
.byte 0x0 /* Terminator */
"
+puts -nonewline $f "\t.section\t.note.GNU-stack,\"\",@progbits"
+
close $f
set opts {}
--
2.35.3

View File

@ -0,0 +1,68 @@
From f168a48adf97a36c88c65a075b42e6b7083063df Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Mon, 20 Feb 2023 11:16:02 +0100
Subject: [PATCH] [gdb/testsuite] Fix gdb.threads/schedlock.exp for gcc 4.8.5
Since commit 9af467b8240 ("[gdb/testsuite] Fix gdb.threads/schedlock.exp on
fast cpu"), the test-case fails for gcc 4.8.5.
The problem is that for gcc 4.8.5, the commit turned a two-line loop:
...
(gdb) next
78 while (*myp > 0)
(gdb) next
81 MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
(gdb) next
78 while (*myp > 0)
...
into a three-line loop:
...
(gdb) next
83 MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
(gdb) next
84 cnt++;
(gdb) next
85 }
(gdb) next
83 MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
(gdb)
...
and the test-case doesn't expect this.
Fix this by reverting back to the original loop shape as much as possible by:
- removing the cnt++ line
- replacing "while (1)" with "while (one)", where one is a volatile variable
set to 1.
Tested on x86_64-linux, using compilers:
- gcc 4.8.5, 7.5.0, 12.2.1
- clang 4.0.1, 13.0.1
---
gdb/testsuite/gdb.threads/schedlock.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/gdb/testsuite/gdb.threads/schedlock.c b/gdb/testsuite/gdb.threads/schedlock.c
index 9859885b1a3..af3ca3e4c87 100644
--- a/gdb/testsuite/gdb.threads/schedlock.c
+++ b/gdb/testsuite/gdb.threads/schedlock.c
@@ -75,13 +75,12 @@ volatile int call_function = 0;
void *thread_function(void *arg) {
int my_number = (long) arg;
unsigned long long int *myp = (unsigned long long int *) &args[my_number];
- volatile unsigned int cnt = 0;
+ volatile unsigned int one = 1;
- while (1)
+ while (one)
{
/* schedlock.exp: main loop. */
MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
- cnt++;
}
pthread_exit(NULL);
base-commit: 4d69e6ec1a8ddd008f34af363dab73c014823074
--
2.35.3

View File

@ -0,0 +1,97 @@
From c25a24cc237721c51034f4425183f73e97cdccc1 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Mon, 6 Feb 2023 12:52:50 +0100
Subject: [PATCH 06/11] [gdb/testsuite] Fix gdb.threads/schedlock.exp on fast
cpu
Occasionally, I run into:
...
(gdb) PASS: gdb.threads/schedlock.exp: schedlock=on: cmd=continue: \
set scheduler-locking on
continue^M
Continuing.^M
PASS: gdb.threads/schedlock.exp: schedlock=on: cmd=continue: \
continue (with lock)
[Thread 0x7ffff746e700 (LWP 1339) exited]^M
No unwaited-for children left.^M
(gdb) Quit^M
(gdb) FAIL: gdb.threads/schedlock.exp: schedlock=on: cmd=continue: \
stop all threads (with lock) (timeout)
...
What happens is that this loop which is supposed to run "just short of forever":
...
/* Don't run forever. Run just short of it :) */
while (*myp > 0)
{
/* schedlock.exp: main loop. */
MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
}
...
finishes after 0x7fffffff iterations (when a signed wrap occurs), which on my
system takes only about 1.5 seconds.
Fix this by:
- changing the pointed-at type of myp from signed to unsigned, which makes the
wrap defined behaviour (and which also make the loop run twice as long,
which is already enough to make it impossible for me to reproduce the FAIL.
But let's try to solve this more structurally).
- changing the pointed-at type of myp from int to long long, making the wrap
unlikely.
- making sure the loop runs forever, by setting the loop condition to 1.
- making sure the loop still contains different lines (as far as debug info is
concerned) by incrementing a volatile counter in the loop.
- making sure the program doesn't run forever in case of trouble, by adding an
"alarm (30)".
Tested on x86_64-linux.
PR testsuite/30074
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30074
---
gdb/testsuite/gdb.threads/schedlock.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/gdb/testsuite/gdb.threads/schedlock.c b/gdb/testsuite/gdb.threads/schedlock.c
index 7672140fdc8..9859885b1a3 100644
--- a/gdb/testsuite/gdb.threads/schedlock.c
+++ b/gdb/testsuite/gdb.threads/schedlock.c
@@ -24,7 +24,7 @@ void *thread_function(void *arg); /* Pointer to function executed by each thread
#define NUM 1
-unsigned int args[NUM+1];
+unsigned long long int args[NUM+1];
int main() {
int res;
@@ -32,6 +32,8 @@ int main() {
void *thread_result;
long i;
+ alarm (30);
+
for (i = 1; i <= NUM; i++)
{
args[i] = 1;
@@ -72,13 +74,14 @@ volatile int call_function = 0;
void *thread_function(void *arg) {
int my_number = (long) arg;
- int *myp = (int *) &args[my_number];
+ unsigned long long int *myp = (unsigned long long int *) &args[my_number];
+ volatile unsigned int cnt = 0;
- /* Don't run forever. Run just short of it :) */
- while (*myp > 0)
+ while (1)
{
/* schedlock.exp: main loop. */
MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
+ cnt++;
}
pthread_exit(NULL);
--
2.35.3

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,146 @@
From b40f43e9fd3e523c0c4b50b0dcd8ca743cb6b9a7 Mon Sep 17 00:00:00 2001
From: Tom de Vries <tdevries@suse.de>
Date: Fri, 17 Feb 2023 15:33:18 +0100
Subject: [PATCH] [gdb/testsuite] Simplify gdb.arch/amd64-disp-step-avx.exp
On SLE-11, with glibc 2.11.3, I run into:
...
(gdb) PASS: gdb.arch/amd64-disp-step-avx.exp: vex3: \
var128 has expected value after
continue^M
Continuing.^M
^M
Program received signal SIGSEGV, Segmentation fault.^M
0x0000000000400283 in _exit (status=0) at \
../sysdeps/unix/sysv/linux/_exit.c:33^M
33 ../sysdeps/unix/sysv/linux/_exit.c: No such file or directory.^M
(gdb) FAIL: gdb.arch/amd64-disp-step-avx.exp: \
continue until exit at amd64-disp-step-avx
...
This is not related to gdb, we get the same result by just running the exec.
The problem is that the test-case:
- calls glibc's _exit, and
- uses -nostartfiles -static, putting the burden for any necessary
initialization for calling glibc's _exit on the test-case itself.
So, when we get to the second insn in _exit:
...
000000000040acb0 <_exit>:
40acb0: 48 63 d7 movslq %edi,%rdx
40acb3: 64 4c 8b 14 25 00 00 mov %fs:0x0,%r10
...
no glibc-related initialization is done, and we run into the segfault.
Adding this (borrowed from __libc_start_main) in _start in the .S file is
sufficient to fix it:
...
.rept 200
nop
+ call __pthread_initialize_minimal
.endr
...
But that already doesn't compile with say glibc 2.31, and regardless I think
this sort of fix is too fragile.
We could of course fix this by simply not running to exit. But ideally we'd
have an exec that doesn't segfault when you just run it.
Alternatively, we could hand-code an _exit syscall and bypass glibc
all together. But I'd rather fix this in a way that simplifies the test-case.
Taking a step back, the -nostartfiles -static was added to address that the
xmm registers were not zero at main (which AFAICT is a valid thing to happen).
[ The change itself silently broke the test-case, needing further fixing by
commit 40310f30a51 ("gdb: make gdb.arch/amd64-disp-step-avx.exp actually test
displaced stepping"). ]
Instead, simplify things by reverting to the original situation:
- no -nostartfiles -static compilation flags,
- no _start in the .S file,
- use exit instead of _exit in the .S file,
and fix the original problem by setting the xmm registers to zero rather than
checking that they're zero.
Now that we're no longer forcing -static, add nopie to the flags to prevent
compilation failure with target board unix/-fPIE/-pie.
Tested on x86_64-linux.
PR testsuite/30132
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30132
---
gdb/testsuite/gdb.arch/amd64-disp-step-avx.S | 12 ++----------
gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp | 14 ++++----------
2 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
index 924deef224f..b39ee9f6567 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
@@ -19,15 +19,7 @@
instructions. */
.text
-
- .global _start,main
-_start:
- # The area at _start is used as the displaced stepping buffer. Put
- # more than enough nop instructions so that the instructions under test
- # below don't conflict with it.
- .rept 200
- nop
- .endr
+ .global main
main:
nop
@@ -66,7 +58,7 @@ ro_var:
done:
mov $0,%rdi
- call _exit
+ call exit
hlt
/* RIP-relative data for VEX3 test above. */
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
index a64c85bc0e9..e6bdc3c242f 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
@@ -30,9 +30,7 @@ if { ![have_avx] } {
standard_testfile .S
-set options [list debug \
- additional_flags=-static \
- additional_flags=-nostartfiles]
+set options [list debug nopie]
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} $options] } {
return -1
}
@@ -111,14 +109,10 @@ proc disp_step_func { func } {
# Test a VEX2-encoded RIP-relative instruction.
with_test_prefix "vex2" {
- # This test writes to the 'xmm0' register. As the test is
- # statically linked, we know that the XMM registers should all
- # have the default value of 0 at this point in time. We're about
- # to run an AVX instruction that will modify $xmm0, but lets first
- # confirm that all XMM registers are 0.
+ # Initialize all XMM registers to 0.
for {set i 0 } { $i < 16 } { incr i } {
- gdb_test "p /x \$xmm${i}.uint128" " = 0x0" \
- "xmm${i} has expected value before"
+ gdb_test_no_output "set \$xmm${i}.uint128 = 0" \
+ "xmm${i} set to zero"
}
disp_step_func "test_rip_vex2"
base-commit: 8f25c476588b41f18ef7b026c81a6b415a809930
--
2.35.3

View File

@ -1,3 +1,37 @@
-------------------------------------------------------------------
Thu Feb 16 10:57:10 UTC 2023 - Tom de Vries <tdevries@suse.com>
- Patches dropped (bsc#1207712):
* gdb-container-rh-pkg.patch
- Patches added (bsc#1207712):
* gdb-testsuite-add-gdb.suse-debranding.exp.patch
- Patches added (test-case fix):
* gdb-testsuite-fix-gdb.dwarf2-dw2-dir-file-name.exp-w.patch
- Patches added (fedora patch fixup):
* fixup-gdb-test-dw2-aranges.patch
- Patches added (master backports):
* gdb-testsuite-add-xfail-in-gdb.arch-i386-pkru.exp.patch
* gdb-testsuite-add-xfail-in-gdb.python-py-record-btra.patch
* gdb-testsuite-factor-out-proc-linux_kernel_version.patch
* gdb-testsuite-fix-gdb.base-infoline-reloc-main-from-.patch
* gdb-testsuite-fix-gdb.base-nested-subp-2-3-.exp-with.patch
* gdb-testsuite-fix-gdb.threads-schedlock.exp-on-fast-.patch
* gdb-testsuite-handle-missing-.note.gnu-stack.patch
* gdb-testsuite-simplify-gdb.arch-amd64-disp-step-avx..patch
* gdb-testsuite-fix-gdb.threads-schedlock.exp-for-gcc-.patch
* gdb-testsuite-add-xfail-case-in-gdb.python-py-record.patch
* add-elfcompress_zstd.patch
* binutils-gdb-support-zstd-compressed-debug-section.patch
* fix-gdb-build-elf-support-check-lzstd.patch
- Patches removed (dropped by fedora):
* gdb-test-ivy-bridge.patch
- Disable "BuildRequires: %{gcc}-fortran" for SLE-11.
- Maintenance script qa-local.sh:
* Add SLE-11 to configs.
* Build with --no-verify.
- Maintenance script qa.sh:
* Add -sle11.
-------------------------------------------------------------------
Tue Dec 13 10:39:19 UTC 2022 - Tom de Vries <tdevries@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2012 RedHat
#
# All modifications and additions to the file contributed by third parties
@ -210,7 +210,6 @@ Patch47: gdb-test-dw2-aranges.patch
Patch48: gdb-test-expr-cumulative-archer.patch
Patch49: gdb-physname-pr11734-test.patch
Patch50: gdb-physname-pr12273-test.patch
Patch51: gdb-test-ivy-bridge.patch
Patch52: gdb-runtest-pie-override.patch
Patch53: gdb-glibc-strstr-workaround.patch
Patch54: gdb-rhel5.9-testcase-xlf-var-inside-mod.patch
@ -227,7 +226,6 @@ Patch65: gdb-fedora-libncursesw.patch
Patch66: gdb-opcodes-clflushopt-test.patch
Patch67: gdb-6.6-buildid-locate-rpm-scl.patch
Patch68: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
Patch69: gdb-container-rh-pkg.patch
Patch70: gdb-rhbz1325795-framefilters-test.patch
Patch71: gdb-linux_perf-bundle.patch
Patch73: gdb-rhbz1398387-tab-crash-test.patch
@ -241,6 +239,7 @@ Patch74: gdb-rhbz1553104-s390x-arch12-test.patch
# - gdb-6.3-rh-testversion-20041202.patch
# - gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
# - gdb-6.8-bz466901-backtrace-full-prelinked.patch
# - gdb-container-rh-pkg.patch
#
# Broken:
# - gdb-6.5-BEA-testsuite.patch
@ -251,6 +250,7 @@ Patch74: gdb-rhbz1553104-s390x-arch12-test.patch
# Obsolete:
# - gdb-6.7-charsign-test.patch
# - gdb-6.7-ppc-clobbered-registers-O2-test.patch
# - gdb-test-ivy-bridge.patch (dropped by fedora)
# Fedora patches fixup
@ -261,6 +261,7 @@ Patch503: fixup-gdb-glibc-strstr-workaround.patch
Patch504: fixup-gdb-6.5-bz243845-stale-testing-zombie-test.patch
Patch505: fixup-gdb-test-bt-cfi-without-die.patch
Patch506: fixup-2-gdb-rhbz1553104-s390x-arch12-test.patch
Patch507: fixup-gdb-test-dw2-aranges.patch
# openSUSE specific
@ -283,6 +284,8 @@ Patch1101: gdb-fix-selftest-fails-with-gdb-build-with-O2-flto.patch
Patch1102: gdb-testsuite-fix-gdb-server-ext-run-exp-for-obs.patch
# Tests the zypper install hints.
Patch1103: gdb-testsuite-add-gdb.suse-zypper-hint.exp.patch
# Tests that no branding is leaked from sourcing the fedora package.
Patch1104: gdb-testsuite-add-gdb.suse-debranding.exp.patch
# Patches to upstream
@ -351,10 +354,22 @@ Patch2035: gdb-add-support-for-readline-8.2.patch
Patch2036: gdb-fix-assert-in-handle_jit_event.patch
Patch2037: gdb-testsuite-fix-gdb.base-break-idempotent.exp-on-ppc.patch
Patch2038: powerpc-fix-gdb.base-watchpoint.exp-on-power-9.patch
Patch2039: gdb-testsuite-handle-missing-.note.gnu-stack.patch
Patch2040: gdb-testsuite-fix-gdb.base-infoline-reloc-main-from-.patch
Patch2041: gdb-testsuite-fix-gdb.base-nested-subp-2-3-.exp-with.patch
Patch2042: add-elfcompress_zstd.patch
Patch2043: binutils-gdb-support-zstd-compressed-debug-section.patch
Patch2044: fix-gdb-build-elf-support-check-lzstd.patch
# Backports from master, not yet available in next release.
#
Patch2075: gdb-testsuite-add-xfail-in-gdb.arch-i386-pkru.exp.patch
Patch2076: gdb-testsuite-factor-out-proc-linux_kernel_version.patch
Patch2077: gdb-testsuite-add-xfail-in-gdb.python-py-record-btra.patch
Patch2078: gdb-testsuite-fix-gdb.threads-schedlock.exp-on-fast-.patch
Patch2079: gdb-testsuite-simplify-gdb.arch-amd64-disp-step-avx..patch
Patch2080: gdb-testsuite-fix-gdb.threads-schedlock.exp-for-gcc-.patch
Patch2081: gdb-testsuite-add-xfail-case-in-gdb.python-py-record.patch
# Backport from gdb-patches
@ -393,6 +408,12 @@ Patch2115: gdb-testsuite-fix-gdb.mi-mi-sym-info.exp-on-opensuse-tumbleweed.
#
# Other. Needs comment for each patch.
# Not a backport, but no need to upstream either. Should be able to drop
# it in next release.
Patch3000: gdb-testsuite-fix-gdb.dwarf2-dw2-dir-file-name.exp-w.patch
BuildRequires: bison
BuildRequires: flex
%if 0%{suse_version} > 1110
@ -472,6 +493,10 @@ BuildRequires: libboost_regex-devel
BuildRequires: libsource-highlight-devel
%endif
%if 0%{?suse_version} >= 1500
BuildRequires: libzstd-devel
%endif
%if %{build_testsuite}
# Copied from gcc9/gcc.spec.in
@ -507,7 +532,15 @@ BuildRequires: libsource-highlight-devel
BuildRequires: dejagnu
BuildRequires: sharutils
# gcc-objc++ is not covered by the GDB testsuite.
%if 0%{?suse_version} >= 1200
# Skip for SLE-11 due to:
# unresolvable: conflict for providers of libquadmath0
# needed by libgfortran3
# (provider libquadmath0-gcc5 is in conflict with libquadmath0)
BuildRequires: %{gcc}-fortran
%endif
BuildRequires: %{gcc}-objc
%ifarch %ada_arch
BuildRequires: %{gcc}-ada
@ -700,7 +733,6 @@ find -name "*.info*"|xargs rm -f
%patch48 -p1
%patch49 -p1
%patch50 -p1
%patch51 -p1
%patch52 -p1
%patch53 -p1
%patch54 -p1
@ -717,7 +749,6 @@ find -name "*.info*"|xargs rm -f
%patch66 -p1
%patch67 -p1
%patch68 -p1
%patch69 -p1
%patch70 -p1
%patch71 -p1
%patch73 -p1
@ -731,6 +762,7 @@ find -name "*.info*"|xargs rm -f
%patch504 -p1
%patch505 -p1
%patch506 -p1
%patch507 -p1
%patch1000 -p1
%patch1001 -p1
@ -739,6 +771,7 @@ find -name "*.info*"|xargs rm -f
%patch1101 -p1
%patch1102 -p1
%patch1103 -p1
%patch1104 -p1
%patch1500 -p1
%patch1501 -p1
@ -793,6 +826,20 @@ find -name "*.info*"|xargs rm -f
%patch2036 -p1
%patch2037 -p1
%patch2038 -p1
%patch2039 -p1
%patch2040 -p1
%patch2041 -p1
%patch2042 -p1
%patch2043 -p1
%patch2044 -p1
%patch2075 -p1
%patch2076 -p1
%patch2077 -p1
%patch2078 -p1
%patch2079 -p1
%patch2080 -p1
%patch2081 -p1
%patch2100 -p1
%patch2101 -p1
@ -810,6 +857,8 @@ find -name "*.info*"|xargs rm -f
%patch2113 -p1
%patch2115 -p1
%patch3000 -p1
#unpack libipt
%if 0%{have_libipt}
tar xzf %{SOURCE7}
@ -1152,7 +1201,8 @@ $CC -o ./orphanripper %{SOURCE2} -Wall -lutil -ggdb2
CHECK="$(echo $CHECK | sed 's#check//unix/[^ ]*#& &/-fPIE/-pie#g')"
fi
./orphanripper make %{?_smp_mflags} -k $CHECK || :
#./orphanripper make %{?_smp_mflags} -k $CHECK || :
./orphanripper make %{?_smp_mflags} -k $CHECK RUNTESTFLAGS=gdb.python/py-record-btrace.exp
)
for t in sum log
do

View File

@ -12,6 +12,7 @@ openSUSE_Leap_15.3
openSUSE_Factory
SLE-15
SLE-12
SLE-11
"
usage ()
@ -75,9 +76,9 @@ have_combo ()
if [ "$arch" = "i586" ]; then
case $c in
SLE-*)
SLE-12|SLE-15)
return 1
;;
;;
esac
fi
return 0
@ -101,6 +102,7 @@ case "$n" in
fi
osc build \
--clean \
--no-verify \
--trust-all-projects \
--no-service \
$c $arch \
@ -132,6 +134,7 @@ case "$n" in
mkdir -p $pkgs/$c.$arch
osc build \
--clean \
--no-verify \
--trust-all-projects \
--no-service \
-k $pkgs/$c.$arch \
@ -184,6 +187,9 @@ case "$n" in
SLE-12)
bash qa.sh -local -sle12 $pkgs/gdb-testresults.$c.$arch
;;
SLE-11)
bash qa.sh -local -sle11 $pkgs/gdb-testresults.$c.$arch
;;
*)
bash qa.sh -local $pkgs/gdb-testresults.$c.$arch
;;

55
qa.sh
View File

@ -23,7 +23,7 @@
usage ()
{
echo "usage: $0 <1-5>"
echo " $0 -local [ -sle12 | -factory | -aarch64 | -powerpc64le | -s390 | -s390x ] <dir>"
echo " $0 -local [ -sle11 | -sle12 | -factory | -aarch64 | -powerpc64le | -s390 | -s390x ] <dir>"
echo
echo "Verify remote results at:"
echo " ./binaries-testsuite.distro.arch/gdb-testresults"
@ -46,6 +46,7 @@ fi
n="$1"
shift
have_sle11=false
have_sle12=false
have_factory=false
have_aarch64=false
@ -55,6 +56,9 @@ have_s390x=false
if [ "$n" = "-local" ]; then
while [ $# -gt 1 ]; do
case $1 in
-sle11)
have_sle11=true
;;
-sle12)
have_sle12=true
;;
@ -375,6 +379,52 @@ kfail_sle12=(
"FAIL: gdb.guile/scm-disasm.exp: memory-port: disassemble"
) # kfail_sle12
kfail_sle11=(
"${kfail_sle12[@]}"
# For SLE-11, libipt is not enabled, so on intel we can run into
# https://sourceware.org/bugzilla/show_bug.cgi?id=30073 affecting
# many test-cases.
"FAIL: gdb.btrace/"
"FAIL: gdb.python/py-record-btrace"
# https://sourceware.org/bugzilla/show_bug.cgi?id=26956
"FAIL: gdb.base/command-line-input.exp: print 1"
# Due to using old python, 2.6.
# For instance, "ValueError: zero length field name in format".
"FAIL: gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.exp: print test"
"FAIL: gdb.python/py-breakpoint.exp: test_bkpt_address: python gdb.Breakpoint\(" *{}".format\(str\(main_addr\)\)\)"
"FAIL: gdb.python/py-framefilter.exp: info frame filter after disable frame filter"
"FAIL: gdb.python/py-framefilter.exp: info frame filter after reenabling frame filter"
"FAIL: gdb.python/py-framefilter.exp: info frame filter after setting priority"
"FAIL: gdb.python/py-framefilter.exp: info frame filter before disable frame filter"
"FAIL: gdb.python/py-framefilter.exp: info frame filter before setting priority"
"FAIL: gdb.python/py-mi.exp: check tsrvw expression value \(unexpected output\)"
"FAIL: gdb.python/py-mi.exp: check tsrvw varobj value \(unexpected output\)"
"FAIL: gdb.python/py-mi.exp: create tsrvw varobj \(unexpected output\)"
"FAIL: gdb.python/py-prettyprint.exp: c\+\+: print tsrvw"
"FAIL: gdb.python/py-prettyprint.exp: c: print tsrvw"
"FAIL: gdb.python/py-value.exp: attempt to construct large value with small buffer"
"FAIL: gdb.python/py-value.exp: construct array value from buffer"
"FAIL: gdb.python/py-value.exp: construct value from buffer"
"FAIL: gdb.python/py-value.exp: print array value"
"FAIL: gdb.python/py-value.exp: print first array element"
"FAIL: gdb.python/py-value.exp: print out of bounds array element"
"FAIL: gdb.python/py-value.exp: print second array element"
"FAIL: gdb.python/py-value.exp: print third array element"
# To be investigated.
"FAIL: gdb.base/compare-sections.exp: after run to main: compare-sections -r"
"FAIL: gdb.python/py-framefilter-thread.exp: bt no-filters"
# Gdb runs out of virtual memory, we can expect an internal error.
"FAIL: gdb.base/gcore-excessive-memory.exp: attach \(GDB internal error\)"
# https://sourceware.org/bugzilla/show_bug.cgi?id=30154
"FAIL: gdb.multi/multi-target-no-resumed.exp: inf_A=.: inf_B=.: send_gdb control C \(timeout\)"
)
kfail_factory=(
# https://sourceware.org/bugzilla/show_bug.cgi?id=28463
"FAIL: gdb.ada/set_pckd_arr_elt.exp: scenario=minimal: print va.t\(1\) := 15"
@ -794,6 +844,9 @@ case $n in
if $have_factory; then
kfail+=("${kfail_factory[@]}")
fi
if $have_sle11; then
kfail+=("${kfail_sle11[@]}")
fi
if $have_sle12; then
kfail+=("${kfail_sle12[@]}")
fi