[gdb/testsuite] Use compiler-generated instead of gas-generated stabs
authorTom de Vries <tdevries@suse.de>
Mon, 23 Aug 2021 10:08:25 +0000 (12:08 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 23 Aug 2021 10:08:25 +0000 (12:08 +0200)
The test-case gdb.dwarf2/dw2-ranges.exp is the only one in the gdb testsuite
that uses gas-generated stabs.

While the use seems natural alongside the use of gas-generated dwarf in the
same test-case, there are a few known issues, filed on the gdb side as:
- PR symtab/12497 - "stabs: PIE relocation does not work"
- PR symtab/28221 - "[readnow, stabs] FAIL: gdb.dwarf2/dw2-ranges.exp: \
  info line func"
and on the gas side as:
- PR gas/28233 - "[gas, --gstabs] Generate stabs more similar to gcc"

The test-case contains a KFAIL for PR12497, but it's outdated and fails to
trigger.

The intention of the test-case is to test gas-generated dwarf, and using
gcc-generated stabs instead of gas-generated stabs works fine.

Supporting compiler-generated stabs is already a corner-case for gdb, and
there's no current commitment/incentive to support/workaround gas-generated
stabs, which can be considered a corner-case of a corner-case.

Work around these problem by using compiler-generated stabs in the test-case.

Tested on x86_64-linux.

gdb/testsuite/ChangeLog:

2021-08-22  Tom de Vries  <tdevries@suse.de>

* gdb.dwarf2/dw2-ranges.exp: Use compiler-generated stabs.

gdb/testsuite/gdb.dwarf2/dw2-ranges.exp

index 8566e0034cff40d539f90597b761d283309bb051..288fc941afa451f7dd8e6aa2fe0c141066ff756f 100644 (file)
@@ -35,7 +35,6 @@ if !$gcc_compiled {
 standard_testfile .c -2.c -3.c
 set asmfile [standard_output_file ${testfile}.s]
 set asmfile2 [standard_output_file ${testfile}2.s]
-set asmfile3 [standard_output_file ${testfile}3.s]
 set objfile [standard_output_file ${testfile}.o]
 set objfile2 [standard_output_file ${testfile}2.o]
 set objfile3 [standard_output_file ${testfile}3.o]
@@ -55,8 +54,7 @@ if {[gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${asmfile2}" assembly {}] !=
 # STABS compilation is intentional as it tests the STABS lookup where is no
 # partial_symtab->psymtabs_addrmap supported for that CU (Compilation Unit) in
 # a file containing psymtabs_addrmap-supporting DWARF CUs.
-if {[gdb_compile "${srcdir}/${subdir}/${srcfile3}" "${asmfile3}" assembly {}] != ""
-    || [gdb_compile "${asmfile3}" "${objfile3}" object {additional_flags=-gstabs}] != "" } {
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile3}" "${objfile3}" object {additional_flags=-gstabs}] != "" } {
     return -1
 }
 
@@ -82,12 +80,5 @@ gdb_test "info line func" "Line \[0-9\]* of .* starts at address .* and ends at
 gdb_test "info line main2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
 gdb_test "info line func2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
 
-set test "info line main3"
-gdb_test_multiple $test $test {
-    -re "Line \[0-9\]* of .* starts at address .* and ends at .*\r\n$gdb_prompt $" {
-       pass $test
-    }
-    -re "Line \[0-9\]* of .* is at address .* but contains no code\\.\r\n$gdb_prompt $" {
-       kfail symtab/12497 $test
-    }
-}
+gdb_test "info line main3" \
+    "Line \[0-9\]* of .* starts at address .* and ends at .*"