summaryrefslogtreecommitdiff
path: root/gdb-rhbz2232086-refactor-selftest-support.patch
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2024-08-06 05:48:09 +0000
committerCoprDistGit <infra@openeuler.org>2024-08-06 05:48:09 +0000
commitab322c77aab87050c6ca0ce58e18f31e269e519b (patch)
tree7ff9c6a18efd867f35cb6f8fb08893c6b655376f /gdb-rhbz2232086-refactor-selftest-support.patch
parent19677e130f0cd283f7884cc4b6b3d52f8812dae5 (diff)
automatic import of gdbopeneuler24.03_LTS
Diffstat (limited to 'gdb-rhbz2232086-refactor-selftest-support.patch')
-rw-r--r--gdb-rhbz2232086-refactor-selftest-support.patch77
1 files changed, 77 insertions, 0 deletions
diff --git a/gdb-rhbz2232086-refactor-selftest-support.patch b/gdb-rhbz2232086-refactor-selftest-support.patch
new file mode 100644
index 0000000..e9febf7
--- /dev/null
+++ b/gdb-rhbz2232086-refactor-selftest-support.patch
@@ -0,0 +1,77 @@
+From FEDORA_PATCHES Mon Sep 17 00:00:00 2001
+From: Andrew Burgess <aburgess@redhat.com>
+Date: Fri, 24 Nov 2023 11:10:08 +0000
+Subject: gdb-rhbz2232086-refactor-selftest-support.patch
+
+;; Back-port upstream commit 1f0fab7ff86 as part of a fix for
+;; non-deterministic gdb-index generation (RH BZ 2232086).
+
+gdb/testsuite: small refactor in selftest-support.exp
+
+Split out the code that makes a copy of the GDB executable ready for
+self testing into a new proc. A later commit in this series wants to
+load the GDB executable into GDB (for creating an on-disk debug
+index), but doesn't need to make use of the full do_self_tests proc.
+
+There should be no changes in what is tested after this commit.
+
+Approved-By: Tom Tromey <tom@tromey.com>
+
+diff --git a/gdb/testsuite/lib/selftest-support.exp b/gdb/testsuite/lib/selftest-support.exp
+--- a/gdb/testsuite/lib/selftest-support.exp
++++ b/gdb/testsuite/lib/selftest-support.exp
+@@ -92,11 +92,13 @@ proc selftest_setup { executable function } {
+ return 0
+ }
+
+-# A simple way to run some self-tests.
+-
+-proc do_self_tests {function body} {
+- global GDB tool
+-
++# Prepare for running a self-test by moving the GDB executable to a
++# location where we can use it as the inferior. Return the filename
++# of the new location.
++#
++# If the current testing setup is not suitable for running a
++# self-test, then return an empty string.
++proc selftest_prepare {} {
+ # Are we testing with a remote board? In that case, the target
+ # won't have access to the GDB's auxilliary data files
+ # (data-directory, etc.). It's simpler to just skip.
+@@ -120,19 +122,31 @@ proc do_self_tests {function body} {
+ # Run the test with self. Copy the file executable file in case
+ # this OS doesn't like to edit its own text space.
+
+- set GDB_FULLPATH [find_gdb $GDB]
++ set gdb_fullpath [find_gdb $::GDB]
+
+ if {[is_remote host]} {
+- set xgdb x$tool
++ set xgdb x$::tool
+ } else {
+- set xgdb [standard_output_file x$tool]
++ set xgdb [standard_output_file x$::tool]
+ }
+
+ # Remove any old copy lying around.
+ remote_file host delete $xgdb
+
++ set filename [remote_download host $gdb_fullpath $xgdb]
++
++ return $filename
++}
++
++# A simple way to run some self-tests.
++
++proc do_self_tests {function body} {
++ set file [selftest_prepare]
++ if { $file eq "" } {
++ return
++ }
++
+ gdb_start
+- set file [remote_download host $GDB_FULLPATH $xgdb]
+
+ # When debugging GDB with GDB, some operations can take a relatively long
+ # time, especially if the build is non-optimized. Bump the timeout for the