gdb/testsuite/ChangeLog 2016-07-06 Jan Kratochvil * lib/gdb.exp (gdb_target_code_symbol_prefix): New. (gdb_target_symbol): Call it. diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index b7b8fad..7e64edc 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -5690,11 +5690,48 @@ gdb_caching_proc gdb_target_symbol_prefix { return $prefix } +# gdb_target_code_symbol_prefix compiles a test program and tries to use +# '.' prefix at a code symbol to test if there are function descriptors. +# gdb_target_symbol_prefix is not expected to be needed on such targets. + +gdb_caching_proc gdb_target_code_symbol_prefix { + # Set up and compile a simple test program... + set srcc [standard_temp_file main[pid].c] + set srcs [standard_temp_file main[pid].s] + set exe [standard_temp_file main[pid].x] + + gdb_produce_source $srcc { + int main() { + return 0; + } + } + gdb_produce_source $srcs { + .8byte .main + } + + verbose "compiling testfile $srcc $srcs" 2 + set compile_flags {nodebug nowarnings quiet} + set lines [gdb_compile "$srcc $srcs" $exe executable $compile_flags] + + set prefix "" + + if [string match "" $lines] then { + verbose "gdb_target_code_symbol_prefix: returning \".\" prefix" 2 + set prefix "." + } + + file delete $srcc + file delete $srcs + file delete $exe + + return $prefix +} + # gdb_target_symbol returns the provided symbol with the correct prefix -# prepended. (See gdb_target_symbol_prefix, above.) +# prepended. proc gdb_target_symbol { symbol } { - set prefix [gdb_target_symbol_prefix] + set prefix [gdb_target_symbol_prefix][gdb_target_code_symbol_prefix] return "${prefix}${symbol}" }