aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2019-11-27 21:51:35 +0000
committerAndrew Burgess <andrew.burgess@embecosm.com>2019-12-04 20:33:36 +0000
commit8d70a9f0938b9e9efc4fd2eee80cf806b5e97a4a (patch)
tree584e907b844f8dceaab4c3be0c2a6fbe84cb6cb8 /gdb
parent36c8fb93c9d4135ce3c1561f5f3886b1b0bf31f6 (diff)
downloadgdb-8d70a9f0938b9e9efc4fd2eee80cf806b5e97a4a.zip
gdb-8d70a9f0938b9e9efc4fd2eee80cf806b5e97a4a.tar.gz
gdb-8d70a9f0938b9e9efc4fd2eee80cf806b5e97a4a.tar.bz2
gdb/testsuite: Use -J option when compiling Fortran tests
When compiling Fortran tests (e.g. gdb.fortran/info-modules.exp), the Fotran compile produces .mod files. These files contain details of compiled modules that are then consumed by the compiler when compiling other files that USE a module. Currently the compiler writes the .mod files into its current directory, so for us this turns out to be 'build/gdb/testsuite/'. This means that .mod files can be shared between tests, which seems against the spirit of the GDB testsuite; source files should be compiled fresh for each test. This commit adds the -J option to the compiler flags whenever we compile a Fortran file, this option tells the compiler where to write, and look for, .mod files. After this commit there was one Fortran test that needed fixing, with that fix in place all of the Fortran tests pass again, but now the .mod files are now produced in the per-test output directories. gdb/testsuite/ChangeLog: * lib/gdb.exp (gdb_compile): Add -J compiler option when building Fortran tests. * gdb.mi/mi-fortran-modules.exp: Compile source files in correct order. Change-Id: I99444cf22d80e320093d3f3ed9abb8825f378e0b
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.mi/mi-fortran-modules.exp2
-rw-r--r--gdb/testsuite/lib/gdb.exp10
3 files changed, 18 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 8df282c..173e82d 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,5 +1,12 @@
2019-12-04 Andrew Burgess <andrew.burgess@embecosm.com>
+ * lib/gdb.exp (gdb_compile): Add -J compiler option when building
+ Fortran tests.
+ * gdb.mi/mi-fortran-modules.exp: Compile source files in correct
+ order.
+
+2019-12-04 Andrew Burgess <andrew.burgess@embecosm.com>
+
* gdb.fortran/type-kinds.exp (test_cast_1_to_type_kind): Handle
casting to type with no kind specified.
(test_basic_parsing_of_type_kinds): Additional tests for types
diff --git a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
index 12a81a6..df48324 100644
--- a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
+++ b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
@@ -22,7 +22,7 @@ set MIFLAGS "-i=mi"
standard_testfile "mi-fortran-modules.f90" "mi-fortran-modules-2.f90"
if {[prepare_for_testing "failed to prepare" ${testfile} \
- [list $srcfile $srcfile2] {debug f90}]} {
+ [list $srcfile2 $srcfile] {debug f90}]} {
return -1
}
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 4682f5d..aa77446 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -3719,6 +3719,16 @@ proc gdb_compile {source dest type options} {
} else {
set new_options [universal_compile_options]
}
+
+ # Place (and look for) Fortran `.mod` files in the output
+ # directory for this specific test.
+ if {[lsearch -exact $options f77] != -1 \
+ || [lsearch -exact $options f90] != -1 } {
+ # Fortran compile.
+ set mod_path [standard_output_file ""]
+ lappend new_options "additional_flags=-J${mod_path}"
+ }
+
set shlib_found 0
set shlib_load 0
set getting_compiler_info 0