[gdb/testsuite] Fix ctf test-cases on openSUSE Tumbleweed
When running test-case gdb.base/ctf-constvars.exp on openSUSE Tumbleweed (with system gcc version 12, providing gcc -gctf support, enabling the ctf test-cases in the gdb testsuite), I run into: ... (gdb) print vox^M 'vox' has unknown type; cast it to its declared type^M (gdb) FAIL: gdb.base/ctf-constvars.exp: print vox ... There are two causes for this: - the linker flags are missing --ctf-variables, so the information for variable vox is missing (reported in PR29468), and - the executable contains some dwarf2 due to some linked-in glibc objects, so the ctf info is ignored (reported in PR29160). By using: - -Wl,--ctf-variable, - -Wl,--strip-debug, and we can make the test-case and some similar test-cases pass. Tested on x86_64-linux. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29160 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29468
This commit is contained in:
parent
632ecf33a1
commit
908a926ec4
7 changed files with 44 additions and 12 deletions
|
@ -32,9 +32,14 @@ if [skip_ctf_tests] {
|
||||||
standard_testfile .c
|
standard_testfile .c
|
||||||
|
|
||||||
# Using `-gctf` generates full-fledged CTF debug information.
|
# Using `-gctf` generates full-fledged CTF debug information.
|
||||||
set opts "additional_flags=-gctf"
|
set opts {}
|
||||||
|
lappend opts additional_flags=-gctf
|
||||||
|
lappend opts ldflags=-Wl,--strip-debug
|
||||||
|
lappend opts ldflags=-Wl,--ctf-variables
|
||||||
|
lappend opts nowarnings
|
||||||
|
|
||||||
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
||||||
[list $srcfile] [list $opts nowarnings]] } {
|
[list $srcfile] $opts] } {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,10 +26,14 @@ set gcc_compiled [is_c_compiler_gcc]
|
||||||
standard_testfile .c
|
standard_testfile .c
|
||||||
|
|
||||||
# Using `-gctf` generates full-fledged CTF debug information.
|
# Using `-gctf` generates full-fledged CTF debug information.
|
||||||
set opts "additional_flags=-gctf"
|
set opts {}
|
||||||
|
lappend opts additional_flags=-gctf
|
||||||
|
lappend opts ldflags=-Wl,--strip-debug
|
||||||
|
lappend opts ldflags=-Wl,--ctf-variables
|
||||||
|
lappend opts nowarnings
|
||||||
|
|
||||||
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
||||||
[list $srcfile] [list $opts nowarnings]] } {
|
[list $srcfile] $opts] } {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -491,10 +491,14 @@ proc do_test {dir options} {
|
||||||
#
|
#
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set ctf_opts {}
|
||||||
|
lappend ctf_opts additional_flags=-gctf
|
||||||
|
lappend ctf_opts ldflags=-Wl,--strip-debug
|
||||||
|
|
||||||
# Build up the set of debug formats for which we will run this test.
|
# Build up the set of debug formats for which we will run this test.
|
||||||
set specs { {dwarf {debug}} }
|
set specs { {dwarf {debug}} }
|
||||||
if ![skip_ctf_tests] {
|
if ![skip_ctf_tests] {
|
||||||
lappend specs {ctf {"additional_flags=-gctf"}}
|
lappend specs [list ctf $ctf_opts]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup and run the test for each debug format.
|
# Setup and run the test for each debug format.
|
||||||
|
|
|
@ -585,10 +585,15 @@ proc do_test {dir options} {
|
||||||
"whatis applied to function with 'void' parameter type"
|
"whatis applied to function with 'void' parameter type"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set ctf_opts {}
|
||||||
|
lappend ctf_opts additional_flags=-gctf
|
||||||
|
lappend ctf_opts ldflags=-Wl,--strip-debug
|
||||||
|
lappend ctf_opts ldflags=-Wl,--ctf-variables
|
||||||
|
|
||||||
# Build up the set of debug formats for which we will run this test.
|
# Build up the set of debug formats for which we will run this test.
|
||||||
set specs { {dwarf {debug}} }
|
set specs { {dwarf {debug}} }
|
||||||
if ![skip_ctf_tests] {
|
if ![skip_ctf_tests] {
|
||||||
lappend specs {ctf {"additional_flags=-gctf"}}
|
lappend specs [list ctf $ctf_opts]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Setup and run the test for each debug format.
|
# Setup and run the test for each debug format.
|
||||||
|
|
|
@ -24,10 +24,15 @@ standard_testfile cross-tu-cyclic-1.c cross-tu-cyclic-2.c \
|
||||||
cross-tu-cyclic-3.c cross-tu-cyclic-4.c
|
cross-tu-cyclic-3.c cross-tu-cyclic-4.c
|
||||||
|
|
||||||
# Using `-gctf` generates full-fledged CTF debug information.
|
# Using `-gctf` generates full-fledged CTF debug information.
|
||||||
set opts "additional_flags=-gctf -Wl,--export-dynamic"
|
set opts {}
|
||||||
|
lappend opts additional_flags=-gctf
|
||||||
|
lappend opts ldflags=-Wl,--export-dynamic
|
||||||
|
lappend opts ldflags=-Wl,--strip-debug
|
||||||
|
lappend opts nowarning
|
||||||
|
|
||||||
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
||||||
[list $srcfile $srcfile2 $srcfile3 $srcfile4] \
|
[list $srcfile $srcfile2 $srcfile3 $srcfile4] \
|
||||||
[list $opts nowarnings]] } {
|
$opts] } {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,10 +30,14 @@ set gcc_compiled [is_c_compiler_gcc]
|
||||||
standard_testfile whatis.c
|
standard_testfile whatis.c
|
||||||
|
|
||||||
# Using `-gctf` generates full-fledged CTF debug information.
|
# Using `-gctf` generates full-fledged CTF debug information.
|
||||||
set opts "additional_flags=-gctf -Wl,--export-dynamic"
|
set opts {}
|
||||||
|
lappend opts additional_flags=-gctf
|
||||||
|
lappend opts ldflags=-Wl,--export-dynamic
|
||||||
|
lappend opts ldflags=-Wl,--strip-debug
|
||||||
|
lappend opts nowarning
|
||||||
|
|
||||||
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
||||||
[list $srcfile] [list $opts nowarnings]] } {
|
[list $srcfile] $opts] } {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,10 +23,15 @@ if [skip_ctf_tests] {
|
||||||
standard_testfile ctf-a.c ctf-b.c ctf-c.c
|
standard_testfile ctf-a.c ctf-b.c ctf-c.c
|
||||||
|
|
||||||
# Using `-gctf` generates full-fledged CTF debug information.
|
# Using `-gctf` generates full-fledged CTF debug information.
|
||||||
set opts "additional_flags=-gctf -Wl,--export-dynamic"
|
set opts {}
|
||||||
|
lappend opts additional_flags=-gctf
|
||||||
|
lappend opts ldflags=-Wl,--export-dynamic
|
||||||
|
lappend opts ldflags=-Wl,--strip-debug
|
||||||
|
lappend opts nowarning
|
||||||
|
|
||||||
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
if { [prepare_for_testing "failed to prepare" ${testfile} \
|
||||||
[list $srcfile $srcfile2 $srcfile3] \
|
[list $srcfile $srcfile2 $srcfile3] \
|
||||||
[list $opts nowarnings]] } {
|
$opts] } {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue