Index: gdb.exp =================================================================== RCS file: /nile.c/cvs/Dev/gdb/gdb-6.0/gdb/testsuite/lib/gdb.exp,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 gdb.exp --- gdb.exp 5 Oct 2003 10:40:20 -0000 1.1.1.1 +++ gdb.exp 24 Feb 2004 23:07:52 -0000 @@ -1323,6 +1323,39 @@ proc gdb_compile_objc {source dest type } } +# +# Compile some Ada code. +# +proc gdb_compile_ada {source dest type options} { + + lappend options "compiler=gnatmake" + + # gnatmake leaves some compilation artifacts behind, such as + # .o or .ali files. We want them to be placed besides the dest + # file to avoid having them pollute the current directory. So + # we temporarily change directory while compiling. + # + # As a consequence, we need to adjust the source path to become + # absolute. Otherwise, the compiler will not find it. We assume + # that the dest path is already absolute. + + regsub "^.*/" "$source" "" source_basename + set source_dirname [absolute [file dirname $source]] + set source $source_dirname/$source_basename + + set cwd [pwd] + cd [file dirname $dest] + set result [target_compile $source $dest $type $options] + cd $cwd + + # Make sure that the dest file has been created. Otherwise, + # the build has failed. + if ![file exists $dest] { + verbose "Ada compilation failed: $result" + return "Ada compilation failed." + } +} + proc send_gdb { string } { global suppress_flag; if { $suppress_flag } {