You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.9 KiB
88 lines
2.9 KiB
From FEDORA_PATCHES Mon Sep 17 00:00:00 2001 |
|
From: Kevin Buettner <kevinb@redhat.com> |
|
Date: Wed, 9 Jun 2021 19:31:18 -0700 |
|
Subject: gdb-rhbz1971095-libthread_db-update-4of5.patch |
|
|
|
;; Backport "print-symbol-loading.exp: Allow libc symbols to be already loaded" |
|
;; (Kevin Buettner, RH BZ 1971095) |
|
|
|
One consequence of changing libpthread_name_p() in solib.c to (also) |
|
match libc is that the symbols for libc will now be loaded by |
|
solib_add() in solib.c. I think this is mostly harmless because |
|
we'll likely want these symbols to be loaded anyway, but it did cause |
|
two failures in gdb.base/print-symbol-loading.exp. |
|
|
|
Specifically... |
|
|
|
1) |
|
|
|
sharedlibrary .* |
|
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib off: load shared-lib |
|
|
|
now looks like this: |
|
|
|
sharedlibrary .* |
|
Symbols already loaded for /lib64/libc.so.6 |
|
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib off: load shared-lib |
|
|
|
2) |
|
|
|
sharedlibrary .* |
|
Loading symbols for shared libraries: .* |
|
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib brief: load shared-lib |
|
|
|
now looks like this: |
|
|
|
sharedlibrary .* |
|
Loading symbols for shared libraries: .* |
|
Symbols already loaded for /lib64/libc.so.6 |
|
(gdb) PASS: gdb.base/print-symbol-loading.exp: shlib brief: load shared-lib |
|
|
|
Fixing case #2 ended up being easier than #1. #1 had been using |
|
gdb_test_no_output to correctly match this no-output case. I |
|
ended up replacing it with gdb_test_multiple, matching the exact |
|
expected output for each of the two now acceptable cases. |
|
|
|
For case #2, I simply added an optional non-capturing group |
|
for the potential new output. |
|
|
|
gdb/testsuite/ChangeLog: |
|
|
|
* gdb.base/print-symbol-loading.exp (proc test_load_shlib): |
|
Allow "Symbols already loaded for..." messages. |
|
|
|
diff --git a/gdb/testsuite/gdb.base/print-symbol-loading.exp b/gdb/testsuite/gdb.base/print-symbol-loading.exp |
|
--- a/gdb/testsuite/gdb.base/print-symbol-loading.exp |
|
+++ b/gdb/testsuite/gdb.base/print-symbol-loading.exp |
|
@@ -96,6 +96,7 @@ test_load_core full |
|
|
|
proc test_load_shlib { print_symbol_loading } { |
|
global binfile |
|
+ global gdb_prompt |
|
with_test_prefix "shlib ${print_symbol_loading}" { |
|
clean_restart ${binfile} |
|
gdb_test_no_output "set auto-solib-add off" |
|
@@ -106,12 +107,20 @@ proc test_load_shlib { print_symbol_loading } { |
|
set test_name "load shared-lib" |
|
switch ${print_symbol_loading} { |
|
"off" { |
|
- gdb_test_no_output "sharedlibrary .*" \ |
|
- ${test_name} |
|
+ set cmd "sharedlibrary .*" |
|
+ set cmd_regex [string_to_regexp $cmd] |
|
+ gdb_test_multiple $cmd $test_name { |
|
+ -re "^$cmd_regex\r\n$gdb_prompt $" { |
|
+ pass $test_name |
|
+ } |
|
+ -re "^$cmd_regex\r\nSymbols already loaded for\[^\r\n\]*\\/libc\\.\[^\r\n\]*\r\n$gdb_prompt $" { |
|
+ pass $test_name |
|
+ } |
|
+ } |
|
} |
|
"brief" { |
|
gdb_test "sharedlibrary .*" \ |
|
- "Loading symbols for shared libraries: \\.\\*" \ |
|
+ "Loading symbols for shared libraries: \\.\\*.*?(?:Symbols already loaded for .*?libc)?" \ |
|
${test_name} |
|
} |
|
"full" {
|
|
|