[gdb/testsuite] Workaround unnecessary .s file with gfortran 4.8
authorTom de Vries <tdevries@suse.de>
Mon, 27 Jun 2022 10:47:26 +0000 (12:47 +0200)
committerTom de Vries <tdevries@suse.de>
Mon, 27 Jun 2022 10:47:26 +0000 (12:47 +0200)
After running test-case gdb.fortran/namelist.exp with gfortran 4.8.5, I'm left
with:
...
$ git sti
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        gdb/testsuite/lib/compiler.s

nothing added to commit but untracked files present (use "git add" to track)
...

We're running into PR gcc/60447, which was fixed in gcc 4.9.0.

Workaround this by first copying the source file to the temp dir, such that
the .s file is left there instead:
...
$ ls build/gdb/testsuite/temp/<runtest pid>/
compiler.c  compiler.F90  compiler.s
...

Tested on x86_64-linux.

gdb/testsuite/lib/gdb.exp

index 141cb043fe2250bdd18d8e81bf07a678b68647a2..a29b8f947c471191d5b1eb1da4c4a4c6f7cb90d0 100644 (file)
@@ -4137,6 +4137,12 @@ proc get_compiler_info {{language "c"}} {
        set cppout [read $file]
        close $file
     } else {
+       # Copy $ifile to temp dir, to work around PR gcc/60447.  This will leave the
+       # superfluous .s file in the temp dir instead of in the source dir.
+       set tofile [file tail $ifile]
+       set tofile [standard_temp_file $tofile]
+       file copy -force $ifile $tofile
+       set ifile $tofile
        set cppout [ gdb_compile "${ifile}" "" preprocess [list "$language" quiet getting_compiler_info] ]
     }
     eval log_file $saved_log