From: Tom de Vries <tdevries@suse.de>
To: Simon Marchi <simon.marchi@polymtl.ca>, gdb-patches@sourceware.org
Subject: Re: [PATCH][gdb/testsuite] Fix g0 search in gdb.arch/i386-sse-stack-align.exp
Date: Thu, 28 Jan 2021 17:21:24 +0100 [thread overview]
Message-ID: <e5fd2512-7b05-abd3-f6c2-6f404e8886e7@suse.de> (raw)
In-Reply-To: <9ebc1864-3bd3-cc10-b327-e8f3d37e8c15@polymtl.ca>
[-- Attachment #1: Type: text/plain, Size: 1908 bytes --]
On 1/28/21 4:04 PM, Simon Marchi wrote:
>
>
> On 2021-01-26 1:03 p.m., Tom de Vries wrote:
>> Hi,
>>
>> When running test-case gdb.arch/i386-sse-stack-align.exp on target board
>> unix/-m32, I run into:
>> ...
>> (gdb) print (int) g0 ()^M
>> Invalid data type for function to be called.^M
>> (gdb) FAIL: gdb.arch/i386-sse-stack-align.exp: print (int) g0 ()
>> ...
>>
>> Gdb is supposed to use minimal symbol g0:
>> ...
>> $ nm i386-sse-stack-align | grep g0
>> 08049194 t g0
>> ...
>> but instead it finds a g0 symbol in the debug info of libm, specifically in
>> ./sysdeps/ieee754/ldbl-96/e_lgammal_r.c.
>>
>> Fix this by disabling reading symbols for shared libs.
>>
>> Tested on x86_64-linux.
>>
>> Any comments?
>>
>> Thanks,
>> - Tom
>>
>> [gdb/testsuite] Fix g0 search in gdb.arch/i386-sse-stack-align.exp
>>
>> gdb/testsuite/ChangeLog:
>>
>> 2021-01-26 Tom de Vries <tdevries@suse.de>
>>
>> * gdb.arch/i386-sse-stack-align.exp: Set auto-solib-add to off.
>>
>> ---
>> gdb/testsuite/gdb.arch/i386-sse-stack-align.exp | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
>> index 2c1cdd89c70..57dd12f9830 100644
>> --- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
>> +++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
>> @@ -37,6 +37,11 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $opts
>>
>> clean_restart $executable
>>
>> +# With libm debug info installed, I get a g0 from
>> +# ./sysdeps/ieee754/ldbl-96/e_lgammal_r.c instead of the local g0.
>> +# Fix this by disabling reading symbols for shared libs.
>> +gdb_test_no_output "set auto-solib-add off"
>> +
>> if ![runto_main] then {
>> return -1
>> }
>>
>
> Couldn't we simply use some less common, more scoped name?
>
Yep, that also works. How about this?
Thanks,
- Tom
[-- Attachment #2: 0001-gdb-testsuite-Fix-g0-search-in-gdb.arch-i386-sse-stack-align.exp.patch --]
[-- Type: text/x-patch, Size: 4586 bytes --]
[gdb/testsuite] Fix g0 search in gdb.arch/i386-sse-stack-align.exp
When running test-case gdb.arch/i386-sse-stack-align.exp on target board
unix/-m32, I run into:
...
(gdb) print (int) g0 ()^M
Invalid data type for function to be called.^M
(gdb) FAIL: gdb.arch/i386-sse-stack-align.exp: print (int) g0 ()
...
Gdb is supposed to use minimal symbol g0:
...
$ nm i386-sse-stack-align | grep g0
08049194 t g0
...
but instead it finds a g0 symbol in the debug info of libm, specifically in
./sysdeps/ieee754/ldbl-96/e_lgammal_r.c.
Fix this by renaming g[0-4] to test_g[0-4].
Tested on x86_64-linux.
gdb/testsuite/ChangeLog:
2021-01-28 Tom de Vries <tdevries@suse.de>
* gdb.arch/i386-sse-stack-align.S: Rename g[0-4] to test_g[0-4].
* gdb.arch/i386-sse-stack-align.c: Same.
* gdb.arch/i386-sse-stack-align.exp: Same.
---
gdb/testsuite/gdb.arch/i386-sse-stack-align.S | 40 ++++++++++++-------------
gdb/testsuite/gdb.arch/i386-sse-stack-align.c | 13 ++++----
gdb/testsuite/gdb.arch/i386-sse-stack-align.exp | 2 +-
3 files changed, 28 insertions(+), 27 deletions(-)
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.S b/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
index cd3b49ed829..2e9d54a8190 100644
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
@@ -70,8 +70,8 @@ f:
.cfi_endproc
.LFE1:
.size f, .-f
- .type g0, @function
-g0:
+ .type test_g0, @function
+test_g0:
.LFB2:
.cfi_startproc
pushl %ebp
@@ -87,9 +87,9 @@ g0:
ret
.cfi_endproc
.LFE2:
- .size g0, .-g0
- .type g1, @function
-g1:
+ .size test_g0, .-test_g0
+ .type test_g1, @function
+test_g1:
.LFB3:
.cfi_startproc
pushl %ebp
@@ -105,9 +105,9 @@ g1:
ret
.cfi_endproc
.LFE3:
- .size g1, .-g1
- .type g2, @function
-g2:
+ .size test_g1, .-test_g1
+ .type test_g2, @function
+test_g2:
.LFB4:
.cfi_startproc
pushl %ebp
@@ -123,9 +123,9 @@ g2:
ret
.cfi_endproc
.LFE4:
- .size g2, .-g2
- .type g3, @function
-g3:
+ .size test_g2, .-test_g2
+ .type test_g3, @function
+test_g3:
.LFB5:
.cfi_startproc
pushl %ebp
@@ -141,9 +141,9 @@ g3:
ret
.cfi_endproc
.LFE5:
- .size g3, .-g3
- .type g4, @function
-g4:
+ .size test_g3, .-test_g3
+ .type test_g4, @function
+test_g4:
.LFB6:
.cfi_startproc
pushl %ebp
@@ -159,7 +159,7 @@ g4:
ret
.cfi_endproc
.LFE6:
- .size g4, .-g4
+ .size test_g4, .-test_g4
.globl main
.type main, @function
main:
@@ -174,25 +174,25 @@ main:
andl $-16, %esp
subl $16, %esp
.cfi_offset 3, -12
- call g0
+ call test_g0
movl %eax, %ebx
movl $1, (%esp)
- call g1
+ call test_g1
addl %eax, %ebx
movl $2, 4(%esp)
movl $1, (%esp)
- call g2
+ call test_g2
addl %eax, %ebx
movl $3, 8(%esp)
movl $2, 4(%esp)
movl $1, (%esp)
- call g3
+ call test_g3
addl %eax, %ebx
movl $4, 12(%esp)
movl $3, 8(%esp)
movl $2, 4(%esp)
movl $1, (%esp)
- call g4
+ call test_g4
addl %ebx, %eax
movl -4(%ebp), %ebx
leave
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.c b/gdb/testsuite/gdb.arch/i386-sse-stack-align.c
index adae6b75fb1..4fd1fda3500 100644
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.c
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.c
@@ -34,31 +34,31 @@ f (void)
}
static __attribute__((noinline, noclone)) int
-g0 (void)
+test_g0 (void)
{
return f ();
}
static __attribute__((noinline, noclone)) int
-g1 (int p1)
+test_g1 (int p1)
{
return f ();
}
static __attribute__((noinline, noclone)) int
-g2 (int p1, int p2)
+test_g2 (int p1, int p2)
{
return f ();
}
static __attribute__((noinline, noclone)) int
-g3 (int p1, int p2, int p3)
+test_g3 (int p1, int p2, int p3)
{
return f ();
}
static __attribute__((noinline, noclone)) int
-g4 (int p1, int p2, int p3, int p4)
+test_g4 (int p1, int p2, int p3, int p4)
{
return f ();
}
@@ -66,5 +66,6 @@ g4 (int p1, int p2, int p3, int p4)
int
main (void)
{
- return g0 () + g1 (1) + g2 (1, 2) + g3 (1, 2, 3) + g4 (1, 2, 3, 4);
+ return (test_g0 () + test_g1 (1) + test_g2 (1, 2) + test_g3 (1, 2, 3)
+ + test_g4 (1, 2, 3, 4);
}
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
index 2c1cdd89c70..8cda3b49fac 100644
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
@@ -43,7 +43,7 @@ if ![runto_main] then {
set args ""
foreach i {0 1 2 3 4} {
- set test "print (int) g$i ($args)"
+ set test "print (int) test_g$i ($args)"
gdb_test_multiple $test $test {
-re " = 2\r\n$gdb_prompt $" {
pass $test
next prev parent reply other threads:[~2021-01-28 16:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-26 18:03 Tom de Vries
2021-01-28 15:04 ` Simon Marchi via Gdb-patches
2021-01-28 16:21 ` Tom de Vries [this message]
2021-01-28 16:23 ` Simon Marchi via Gdb-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=e5fd2512-7b05-abd3-f6c2-6f404e8886e7@suse.de \
--to=tdevries@suse.de \
--cc=gdb-patches@sourceware.org \
--cc=simon.marchi@polymtl.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox