* gdb-rhbz1773651-gdb-index-internal-error.patch - Patches added (backport from master): * gdb-support-rseq-auxvs.patch * gdb-symtab-fix-line-number-of-static-const-class-mem.patch * gdb-symtab-fix-too-many-symbols-in-gdbpy_lookup_stat.patch * gdb-symtab-handle-pu-in-iterate_over_some_symtabs.patch * gdb-symtab-work-around-pr-gas-29517.patch * gdb-testsuite-add-kfail-for-pr-ada-30908.patch * gdb-testsuite-add-xfail-for-gdb-29965-in-gdb.threads.patch * gdb-testsuite-fix-gdb.ada-mi_task_arg.exp-with-newer.patch * gdb-testsuite-fix-gdb.arch-i386-signal.exp-on-x86_64.patch * gdb-testsuite-fix-gdb.cp-m-static.exp-regression-on-.patch * gdb-testsuite-fix-gdb.dwarf2-nullptr_t.exp-with-cc-w.patch * gdb-testsuite-fix-regexps-in-gdb.base-step-over-sysc.patch * gdb-symtab-find-main-language-without-symtab-expansi.patch * gdb-testsuite-add-wait-for-index-cache-in-gdb.dwarf2.patch - Patches moved (from "Backport from gdb-patches" to "Backports from master, available in next release"): * gdb-cli-handle-pending-c-after-rl_callback_read_char.patch * gdb-testsuite-add-have_host_locale.patch - Maintenance script qa.sh: * Remove PR28463, PR28108, PR29247 and PR29160 kfails. * Remove PR30540, PR30908, PR29965 kfails. * Remove gdb.ada/mi_task_arg.exp kfail. - Limit "Suggests: %{python}-Pygments" to SLE-15 and later. OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gdb?expand=0&rev=365
66 lines
2.4 KiB
Diff
66 lines
2.4 KiB
Diff
From ebceffa1196651683a7a6d31abb4b3b5adc6c168 Mon Sep 17 00:00:00 2001
|
|
From: Simon Marchi <simon.marchi@efficios.com>
|
|
Date: Thu, 7 Sep 2023 21:53:55 -0400
|
|
Subject: [PATCH 12/12] gdb/testsuite: add xfail for gdb/29965 in
|
|
gdb.threads/process-exit-status-is-leader-exit-status.exp
|
|
|
|
Bug 29965 shows on a Linux kernel >= 6.1, that test fails consistently
|
|
with:
|
|
|
|
FAIL: gdb.threads/process-exit-status-is-leader-exit-status.exp: iteration=0: continue (the program exited)
|
|
...
|
|
FAIL: gdb.threads/process-exit-status-is-leader-exit-status.exp: iteration=9: continue (the program exited)
|
|
|
|
This is due to a change in Linux kernel behavior [1] that affects
|
|
exactly what this test tests. That is, if multiple threads (including
|
|
the leader) call SYS_exit, the exit status of the process should be the
|
|
exit status of the leader. After that change in the kernel, it is no
|
|
longer the case.
|
|
|
|
Add an xfail in the test, based on the Linux kernel version. The goal
|
|
is that if a regression is introduced in GDB regarding this feature, it
|
|
should be caught if running on an older kernel where the behavior was
|
|
consistent.
|
|
|
|
[1] https://bugzilla.suse.com/show_bug.cgi?id=1206926
|
|
|
|
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29965
|
|
Change-Id: If6ab7171c92bfc1a3b961c7179e26611773969eb
|
|
Approved-By: Tom de Vries <tdevries@suse.de>
|
|
---
|
|
...cess-exit-status-is-leader-exit-status.exp | 19 ++++++++++++++++++-
|
|
1 file changed, 18 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp
|
|
index f64d6a73dea..e470fe29110 100644
|
|
--- a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp
|
|
+++ b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp
|
|
@@ -41,6 +41,23 @@ for {set iteration 0} {$iteration < 10} {incr iteration} {
|
|
return
|
|
}
|
|
|
|
- gdb_test "continue" "\\\[Inferior 1 \\(.*\\) exited with code 01\\\]"
|
|
+ gdb_test_multiple "continue" "" {
|
|
+ -re -wrap "\\\[Inferior 1 \\(.*\\) exited with code 01\\\]" {
|
|
+ pass $gdb_test_name
|
|
+ }
|
|
+
|
|
+ -re -wrap "\\\[Inferior 1 \\(.*\\) exited with code $::decimal\\\]" {
|
|
+ set lkv [linux_kernel_version]
|
|
+
|
|
+ if { [llength $lkv] != 0 } {
|
|
+ if { [version_compare {6 1 0} <= $lkv] } {
|
|
+ xfail "$gdb_test_name (PR 29965)"
|
|
+ return
|
|
+ }
|
|
+ }
|
|
+
|
|
+ fail $gdb_test_name
|
|
+ }
|
|
+ }
|
|
}
|
|
}
|
|
--
|
|
2.35.3
|
|
|