[gdb/testsuite] Fix dwo path in fission-*.S
authorTom de Vries <tdevries@suse.de>
Wed, 1 Sep 2021 16:18:05 +0000 (18:18 +0200)
committerTom de Vries <tdevries@suse.de>
Wed, 1 Sep 2021 16:18:05 +0000 (18:18 +0200)
[ Using $build for /home/vries/gdb_versions/devel/build to make things a bit
more readable. ]

When using make check// to run test-case gdb.dwarf2/fission-base.exp:
...
( cd $build/gdb; make check//unix RUNTESTFLAGS="fission-base.exp" )
...
we run into:
...
(gdb) file \
  $build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base^M
Reading symbols from \
  $build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base...^M
warning: Could not find DWO CU \
  $build/gdb/testsuite.1/outputs/gdb.dwarf2/fission-base/fission-base.dwo \
  (0x807060504030201) referenced by CU at offset 0xc7 [in module \
  $build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base]^M
...

The problem is that the executable refers to the dwo file using path name
$build/gdb/testsuite.1/outputs/gdb.dwarf2/fission-base/fission-base.dwo,
while the actual dwo file is at
$build/gdb/testsuite.unix/outputs/gdb.dwarf2/fission-base/fission-base.dwo.

This is caused by this trick in fission-base.S:
...
 #define XSTR(s) STR(s)
 #define STR(s) #s
   ...
   .asciz XSTR(DWO)        # DW_AT_GNU_dwo_name
...
and:
...
$ echo | gcc -E -dD - | grep "define unix"
...

I used this trick to avoid doing additional_flags=-DDWO=\"$dwo\", since I was
concerned that there could be quoting issues.

However, I've found other uses of this pattern, f.i. in
gdb/testsuite/gdb.base/corefile-buildid.exp:
...
  additional_flags=-DSHLIB_NAME=\"$dlopen_lib\"]
...

So, fix this by:
- using additional_flags=-DDWO=\"$dwo\" and
- using plain DWO instead of XSTR(DWO)

Likewise in other gdb.dwarf2/fission*.exp test-cases.

Tested on x86_64-linux, using make check//unix.

gdb/testsuite/ChangeLog:

2021-09-01  Tom de Vries  <tdevries@suse.de>

PR testsuite/28298
* gdb.dwarf2/fission-base.S: Use DWO instead of XSTR(DWO).
* gdb.dwarf2/fission-loclists-pie.S: Same.
* gdb.dwarf2/fission-loclists.S: Same.
* gdb.dwarf2/fission-reread.S: Same.
* gdb.dwarf2/fission-base.exp: Use additional_flags=-DDWO=\"$dwo\".
* gdb.dwarf2/fission-loclists-pie.exp: Same.
* gdb.dwarf2/fission-loclists.exp: Same.
* gdb.dwarf2/fission-reread.exp: Same.

gdb/testsuite/gdb.dwarf2/fission-base.S
gdb/testsuite/gdb.dwarf2/fission-base.exp
gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S
gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
gdb/testsuite/gdb.dwarf2/fission-loclists.S
gdb/testsuite/gdb.dwarf2/fission-loclists.exp
gdb/testsuite/gdb.dwarf2/fission-reread.S
gdb/testsuite/gdb.dwarf2/fission-reread.exp

index 5e10713e938f3d51661753e4a20b82b851d6e9de..e11500cf64ee401cee82023bc9710de72cebabf6 100644 (file)
@@ -20,9 +20,6 @@
    and then massaging the output.
 */
 
-#define XSTR(s) STR(s)
-#define STR(s) #s
-
        .file   "fission-base.c"
 
        .text
@@ -146,7 +143,7 @@ main:
        .8byte  .Letext0-.Ltext0        # DW_AT_high_pc
        .4byte  .Ldebug_line0   # DW_AT_stmt_list
        .ascii "/tmp/src/gdb/testsuite\0"       # DW_AT_comp_dir
-       .asciz XSTR(DWO)        # DW_AT_GNU_dwo_name
+       .asciz DWO      # DW_AT_GNU_dwo_name
        .4byte  .Ldebug_pubnames0       # DW_AT_GNU_pubnames
        .4byte  .Ldebug_pubtypes0       # DW_AT_GNU_pubtypes
        .4byte  .Ldebug_addr0_begin     # DW_AT_GNU_addr_base
index 00eb7fec1b0bb7c36a87bafa1eadef54b287a822..e5933103d797c0bf1565f19cb8dd7edbd97df2a8 100644 (file)
@@ -36,7 +36,7 @@ set obj [standard_output_file "${testfile}.o"]
 set dwo [standard_output_file "${testfile}.dwo"]
 if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" {nodebug} \
        [list $srcfile \
-            [list nodebug split-dwo additional_flags=-DDWO=$dwo] \
+            [list nodebug split-dwo additional_flags=-DDWO=\"$dwo\"] \
             $obj]] {
     return -1
 }
index e87ca369bf749c89dd7a3415b4996a2190e4b6fe..539029eab5ce83fdab2ed431751f6e583fbde8f3 100644 (file)
@@ -33,8 +33,6 @@
      return init (&argc);
    }
 */
-#define XSTR(s) STR(s)
-#define STR(s) #s
 
        .file   "fission-loclists-pie.c"
        .text
@@ -463,7 +461,7 @@ main:
 .LASF1:
        .string "/tmp/19999/obj64/gdb/testsuite"
 .LASF0:
-       .string XSTR(DWO)
+       .string DWO
        .section        .debug_str_offsets.dwo,"e",@progbits
        .long   0       # indexed string 0x0: argv
        .long   0x5     # indexed string 0x1: argc
index 21098a24624fc575ac6ee6a4127b3df10cce2cb4..773e20031bc39c6f379a974531d52662fe980d3b 100644 (file)
@@ -41,7 +41,7 @@ set obj [standard_output_file "${testfile}.o"]
 set dwo [standard_output_file "${testfile}.dwo"]
 if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" \
        {nodebug ldflags=-pie} \
-       [list $srcfile [list nodebug split-dwo additional_flags=-DDWO=$dwo] \
+       [list $srcfile [list nodebug split-dwo additional_flags=-DDWO=\"$dwo\"] \
             $obj]] {
     return -1
 }
index c40b956dc4e2a51b10524c76dc3742bfa2b5ece4..6a187b852abd13256b839b52443213a951837e9c 100644 (file)
@@ -33,9 +33,6 @@
    }
 */
 
-#define XSTR(s) STR(s)
-#define STR(s) #s
-
        .file   "fission-loclists.c"
        .text
 .Ltext0:
@@ -243,7 +240,7 @@ main:
        .byte   0x5
        .4byte  .Ldebug_ranges0 # DW_AT_GNU_ranges_base
        .ascii "/tmp/src/gdb/testsuite\0"       # DW_AT_comp_dir
-       .asciz XSTR(DWO)        # DW_AT_GNU_dwo_name
+       .asciz DWO      # DW_AT_GNU_dwo_name
        .4byte  .Ldebug_pubnames0       # DW_AT_GNU_pubnames
        .4byte  .Ldebug_pubtypes0       # DW_AT_GNU_pubtypes
        .4byte  .Ldebug_addr0   # DW_AT_GNU_addr_base
index c490763982e3f7026b64a4e4b97eefd342db0330..be4e4adfd8b108c0ab83faac3eaf489484d9d0ab 100644 (file)
@@ -36,7 +36,7 @@ set obj [standard_output_file "${testfile}.o"]
 set dwo [standard_output_file "${testfile}.dwo"]
 if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" {nodebug} \
        [list $srcfile \
-            [list nodebug split-dwo additional_flags=-DDWO=$dwo] \
+            [list nodebug split-dwo additional_flags=-DDWO=\"$dwo\"] \
             $obj]] {
     return -1
 }
index dd1ffcd05e86b745fe5ab625fc5e6a503734277e..fcbcecbec74f384f4bd22ab5799afb8dafcdb7b8 100644 (file)
@@ -47,9 +47,6 @@
 # define SYMBOL(str)     str
 #endif
 
-#define XSTR(s) STR(s)
-#define STR(s) #s
-
        .file   "fission-reread.cc"
 
        .globl  SYMBOL(baz)
@@ -146,7 +143,7 @@ SYMBOL(main):
        .4byte  0       /* Offset to Type DIE */
        .uleb128 0x2    /* (DIE (0) DW_TAG_type_unit) */
        .ascii "/tmp/src/gdb/testsuite\0"       /* DW_AT_comp_dir */
-       .asciz XSTR(DWO) /* DW_AT_GNU_dwo_name */
+       .asciz DWO /* DW_AT_GNU_dwo_name */
        .4byte  .Ldebug_pubnames0       /* DW_AT_GNU_pubnames */
        .4byte  .Ldebug_pubtypes0       /* DW_AT_GNU_pubtypes */
        .4byte  .Ldebug_addr0   /* DW_AT_GNU_addr_base */
@@ -217,7 +214,7 @@ SYMBOL(main):
        .4byte  .Letext0-.Ltext0        /* DW_AT_high_pc */
        .4byte  .Ldebug_line0   /* DW_AT_stmt_list */
        .ascii "/tmp/src/gdb/testsuite\0"       /* DW_AT_comp_dir */
-       .asciz XSTR(DWO) /* DW_AT_GNU_dwo_name */
+       .asciz DWO /* DW_AT_GNU_dwo_name */
        .4byte  .Ldebug_pubnames0       /* DW_AT_GNU_pubnames */
        .4byte  .Ldebug_pubtypes0       /* DW_AT_GNU_pubtypes */
        .4byte  .Ldebug_addr0   /* DW_AT_GNU_addr_base */
index 661e90b2f2122be2925bee75d5c50d57419d9657..3cbcbde75354f8ed9f165ae4af291d0f4ad01318 100644 (file)
@@ -40,7 +40,7 @@ if { $additional_flags != "" } {
 
 set dwo_options $options
 lappend dwo_options split-dwo
-lappend dwo_options additional_flags=-DDWO=$dwo
+lappend dwo_options additional_flags=-DDWO=\"$dwo\"
 
 if [build_executable_and_dwo_files "$testfile.exp" "${binfile}" $options \
        [list $srcfile $dwo_options $obj]] {