Remove gdb-glibc-strstr-workaround.patch

This patch only contains a test for a workaround against a libc bug. The
glibc bug was fixed back in 2012, so this test patch was likely already
not testing the gdb workaround for some time.
This commit is contained in:
Guinevere Larsen 2024-06-19 09:23:36 -03:00
parent a2474061b2
commit 199e8a4899
5 changed files with 33 additions and 166 deletions

View File

@ -72,46 +72,42 @@ Patch017: gdb-test-bt-cfi-without-die.patch
#=fedoratest
Patch018: gdb-test-dw2-aranges.patch
# Workaround PR libc/14166 for inferior calls of strstr.
#=fedoratest: Compatibility with RHELs (unchecked which ones).
Patch019: gdb-glibc-strstr-workaround.patch
# Testcase for `Setting solib-absolute-prefix breaks vDSO' (BZ 818343).
#=fedoratest
Patch020: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
Patch019: gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
# Import regression test for `gdb/findvar.c:417: internal-error:
# read_var_value: Assertion `frame' failed.' (RH BZ 947564) from RHEL 6.5.
#=fedoratest
Patch021: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
Patch020: gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
# Fix 'memory leak in infpy_read_memory()' (RH BZ 1007614)
#=fedoratest
Patch022: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
Patch021: gdb-rhbz1007614-memleak-infpy_read_memory-test.patch
# Fix 'gdb gives highly misleading error when debuginfo pkg is present,
# but not corresponding binary pkg' (RH BZ 981154).
#=push+jan
Patch023: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
Patch022: gdb-6.6-buildid-locate-misleading-warning-missing-debuginfo-rhbz981154.patch
# Testcase for '[SAP] Recursive dlopen causes SAP HANA installer to
# crash.' (RH BZ 1156192).
#=fedoratest
Patch024: gdb-rhbz1156192-recursive-dlopen-test.patch
Patch023: gdb-rhbz1156192-recursive-dlopen-test.patch
# Fix '`catch syscall' doesn't work for parent after `fork' is called'
# (Philippe Waroquiers, RH BZ 1149205).
#=fedoratest
Patch025: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
Patch024: gdb-rhbz1149205-catch-syscall-after-fork-test.patch
# Fix '[ppc64] and [s390x] wrong prologue skip on -O2 -g code' (Jan
# Kratochvil, RH BZ 1084404).
#=fedoratest
Patch026: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
Patch025: gdb-rhbz1084404-ppc64-s390x-wrong-prologue-skip-O2-g-3of3.patch
# [aarch64] Fix hardware watchpoints (RH BZ 1261564).
#=fedoratest
Patch027: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
Patch026: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
# Update gdb-add-index.sh such that, when the GDB environment
# variable is not set, the script is smarter than just looking for
@ -125,75 +121,75 @@ Patch027: gdb-rhbz1261564-aarch64-hw-watchpoint-test.patch
# https://fedoraproject.org/wiki/Changes/Minimal_GDB_in_buildroot
#
#=fedora
Patch028: gdb-add-index.patch
Patch027: gdb-add-index.patch
# Back-port upstream commit 1f0fab7ff86 as part of a fix for
# non-deterministic gdb-index generation (RH BZ 2232086).
Patch029: gdb-rhbz2232086-refactor-selftest-support.patch
Patch028: gdb-rhbz2232086-refactor-selftest-support.patch
# Back-port upstream commit aa19bc1d259 as part of a fix for
# non-deterministic gdb-index generation (RH BZ 2232086).
Patch030: gdb-rhbz-2232086-reduce-size-of-gdb-index.patch
Patch029: gdb-rhbz-2232086-reduce-size-of-gdb-index.patch
# Back-port upstream commit acc117b57f7 as part of a fix for
# non-deterministic gdb-index generation (RH BZ 2232086).
Patch031: gdb-rhbz-2232086-cpp-ify-mapped-symtab.patch
Patch030: gdb-rhbz-2232086-cpp-ify-mapped-symtab.patch
# Back-port upstream commit aff250145af as part of a fix for
# non-deterministic gdb-index generation (RH BZ 2232086).
Patch032: gdb-rhbz-2232086-generate-gdb-index-consistently.patch
Patch031: gdb-rhbz-2232086-generate-gdb-index-consistently.patch
# Back-port upstream commit 3644f41dc80 as part of a fix for
# non-deterministic gdb-index generation (RH BZ 2232086).
Patch033: gdb-rhbz-2232086-generate-dwarf-5-index-consistently.patch
Patch032: gdb-rhbz-2232086-generate-dwarf-5-index-consistently.patch
Patch034: gdb-rhbz2250652-gdbpy_gil.patch
Patch033: gdb-rhbz2250652-gdbpy_gil.patch
Patch035: gdb-rhbz2250652-avoid-PyOS_ReadlineTState.patch
Patch034: gdb-rhbz2250652-avoid-PyOS_ReadlineTState.patch
Patch036: gdb-ftbs-swapped-calloc-args.patch
Patch035: gdb-ftbs-swapped-calloc-args.patch
# Backport upstream workaround for GCC 14 problem which cause assertion
# failures in GDB.
Patch037: gdb-rhbz2261580-intrusive_list-assertion-fix.patch
Patch036: gdb-rhbz2261580-intrusive_list-assertion-fix.patch
# Backport upstream commit 7628a997f27.
Patch038: gdb-sync-coffread-with-elfread.patch
Patch037: gdb-sync-coffread-with-elfread.patch
# Backport upstream commit 27807da5849.
Patch039: gdb-merge-debug-symbol-lookup.patch
Patch038: gdb-merge-debug-symbol-lookup.patch
# Backport upstream commit 6234ba17598.
Patch040: gdb-refactor-find-and-add-separate-symbol-file.patch
Patch039: gdb-refactor-find-and-add-separate-symbol-file.patch
# Backport upstream commit 661d98a3331.
Patch041: gdb-add-missing-debug-ext-lang-hook.patch
Patch040: gdb-add-missing-debug-ext-lang-hook.patch
# Backport upstream commit 8f6c452b5a4.
Patch042: gdb-add-missing-debug-info-python-hook.patch
Patch041: gdb-add-missing-debug-info-python-hook.patch
# Backport upstream commit 7db795bc67a.
Patch043: gdb-remove-use-of-py-isascii
Patch042: gdb-remove-use-of-py-isascii
# Backport upstream commit 1146d27749f.
Patch044: gdb-remove-path-in-test-name.patch
Patch043: gdb-remove-path-in-test-name.patch
# Backport upstream commit e8c3dafa5f5.
Patch045: gdb-do-not-import-py-curses-ascii-module.patch
Patch044: gdb-do-not-import-py-curses-ascii-module.patch
# Backport upstream commit dd5516bf98f.
Patch046: gdb-reformat-missing-debug-py-file.patch
Patch045: gdb-reformat-missing-debug-py-file.patch
# Backport upstream commit 7d21600b31fe.
Patch047: gdb-handle-no-python-gdb-module.patch
Patch046: gdb-handle-no-python-gdb-module.patch
# Not a backport. Add a new script which hooks into GDB and suggests
# RPMs to install when GDB finds an objfile with no debug info.
Patch048: gdb-add-rpm-suggestion-script.patch
Patch047: gdb-add-rpm-suggestion-script.patch
# Update x86 disassembler
Patch049: gdb-rhbz2277160-apx-disasm.patch
Patch048: gdb-rhbz2277160-apx-disasm.patch

View File

@ -46,4 +46,3 @@
%patch -p1 -P046
%patch -p1 -P047
%patch -p1 -P048
%patch -p1 -P049

View File

@ -16,7 +16,6 @@ gdb-simultaneous-step-resume-breakpoint-test.patch
gdb-archer-next-over-throw-cxx-exec.patch
gdb-test-bt-cfi-without-die.patch
gdb-test-dw2-aranges.patch
gdb-glibc-strstr-workaround.patch
gdb-rhbz-818343-set-solib-absolute-prefix-testcase.patch
gdb-rhbz947564-findvar-assertion-frame-failed-testcase.patch
gdb-rhbz1007614-memleak-infpy_read_memory-test.patch

View File

@ -1,130 +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-glibc-strstr-workaround.patch
;; Workaround PR libc/14166 for inferior calls of strstr.
;;=fedoratest: Compatibility with RHELs (unchecked which ones).
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
new file mode 100644
--- /dev/null
+++ b/gdb/testsuite/gdb.base/gnu-ifunc-strstr-workaround.exp
@@ -0,0 +1,117 @@
+# Copyright (C) 2012 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/>.
+
+# Workaround for:
+# invalid IFUNC DW_AT_linkage_name: memmove strstr time
+# http://sourceware.org/bugzilla/show_bug.cgi?id=14166
+
+require allow_shlib_tests
+
+set testfile "gnu-ifunc-strstr-workaround"
+set executable ${testfile}
+set srcfile start.c
+set binfile [standard_output_file ${executable}]
+
+if [prepare_for_testing ${testfile}.exp $executable $srcfile] {
+ return -1
+}
+
+if ![runto_main] {
+ return 0
+}
+
+set test "ptype atoi"
+gdb_test_multiple $test $test {
+ -re "type = int \\(const char \\*\\)\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re "type = int \\(\\)\r\n$gdb_prompt $" {
+ untested "$test (no DWARF)"
+ return 0
+ }
+ -re "type = <unknown return type> \\(\\)\r\n$gdb_prompt $" {
+ untested "$test (no DWARF)"
+ return 0
+ }
+}
+
+set addr ""
+set test "print strstr"
+gdb_test_multiple $test $test {
+ -re " = {<text gnu-indirect-function variable, no debug info>} (0x\[0-9a-f\]+) <strstr>\r\n$gdb_prompt $" {
+ set addr $expect_out(1,string)
+ pass $test
+ }
+ -re " = {<text gnu-indirect-function variable, no debug info>} (0x\[0-9a-f\]+) <__strstr>\r\n$gdb_prompt $" {
+ set addr $expect_out(1,string)
+ pass "$test (GDB workaround)"
+ }
+ -re " = {<text gnu-indirect-function variable, no debug info>} (0x\[0-9a-f\]+) <__libc_strstr>\r\n$gdb_prompt $" {
+ set addr $expect_out(1,string)
+ pass "$test (fixed glibc)"
+ }
+ -re " = {<text gnu-indirect-function variable, no debug info>} (0x\[0-9a-f\]+) <__libc_strstr_ifunc>\r\n$gdb_prompt $" {
+ set addr $expect_out(1,string)
+ pass "$test (fixed glibc)"
+ }
+ -re " = {char \\*\\(const char \\*, const char \\*\\)} 0x\[0-9a-f\]+ <strstr>\r\n$gdb_prompt $" {
+ untested "$test (gnu-ifunc not in use by glibc)"
+ return 0
+ }
+}
+
+set test "info sym"
+gdb_test_multiple "info sym $addr" $test {
+ -re "strstr in section \\.text of /lib\[^/\]*/libc.so.6\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re " = {char \\*\\(const char \\*, const char \\*\\)} 0x\[0-9a-f\]+ <strstr>\r\n$gdb_prompt $" {
+ # unexpected
+ xfail "$test (not in libc.so.6)"
+ return 0
+ }
+}
+
+set test "info addr strstr"
+gdb_test_multiple $test $test {
+ -re "Symbol \"strstr\" is a function at address $addr\\.\r\n$gdb_prompt $" {
+ fail "$test (DWARF for strstr)"
+ }
+ -re "Symbol \"strstr\" is at $addr in a file compiled without debugging\\.\r\n$gdb_prompt $" {
+ pass "$test"
+ }
+}
+
+set test "print strstr second time"
+gdb_test_multiple "print strstr" $test {
+ -re " = {<text gnu-indirect-function variable, no debug info>} $addr <strstr>\r\n$gdb_prompt $" {
+ pass $test
+ }
+ -re " = {<text gnu-indirect-function variable, no debug info>} $addr <__strstr>\r\n$gdb_prompt $" {
+ pass "$test (GDB workaround)"
+ }
+ -re " = {<text gnu-indirect-function variable, no debug info>} $addr <__libc_strstr>\r\n$gdb_prompt $" {
+ pass "$test (fixed glibc)"
+ }
+ -re " = {<text gnu-indirect-function variable, no debug info>} $addr <__libc_strstr_ifunc>\r\n$gdb_prompt $" {
+ pass "$test (fixed glibc)"
+ }
+ -re " = {void \\*\\(void\\)} 0x\[0-9a-f\]+ <strstr>\r\n$gdb_prompt $" {
+ fail $test
+ }
+}
+
+gdb_test {print (char *)strstr("abc","b")} { = 0x[0-9a-f]+ "bc"}
+gdb_test {print (char *)strstr("def","e")} { = 0x[0-9a-f]+ "ef"}

View File

@ -926,6 +926,9 @@ fi
# endif scl
%changelog
* Wed Jun 19 2024 Guinevere Larsen <blarsen@redhat.com>
- Drop gdb-glibc-strstr-workaround.patch
* Tue Jun 18 2024 Kevin Buettner <kevinb@redhat.com>
- Remove gdb-core-open-vdso-warning.patch. This tests added by this
patch are similar to those of upstream test gdb.base/vdso-warning.exp.