print-symbol-loading.exp: Allow libc symbols to be already loaded
authorKevin Buettner <kevinb@redhat.com>
Thu, 10 Jun 2021 02:31:18 +0000 (19:31 -0700)
committerKevin Buettner <kevinb@redhat.com>
Fri, 11 Jun 2021 21:56:20 +0000 (14:56 -0700)
commit72c4daa36a3d35d578533d208668eb3ff9e7708f
tree555dadd9901d70c40b7c05b4d6f6e430d40f1dc8
parent4cc2e60671b926ad7e5ed3928c4e54e456c7c344
print-symbol-loading.exp: Allow libc symbols to be already loaded

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.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/print-symbol-loading.exp