diff options
-rw-r--r-- | gdb/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/gnu-ifunc.exp | 11 | ||||
-rw-r--r-- | gdb/testsuite/gdb.compile/compile-ifunc.exp | 4 | ||||
-rw-r--r-- | gdb/testsuite/lib/gdb.exp | 14 |
4 files changed, 33 insertions, 3 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 502c5bf..4994593 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2018-10-03 Sandra Loosemore <sandra@codesourcery.com> + + * lib/gdb.exp (skip_ifunc_tests): New. + * gdb.base/gnu-ifunc.exp: Skip if no ifunc support. Handle + other compile failures. + * gdb.compile/compile-ifunc.exp: Skip if no ifunc support. + 2018-10-01 Simon Marchi <simon.marchi@ericsson.com> * gdb.arch/i386-avx512.exp: Fix setting of nr_regs based on diff --git a/gdb/testsuite/gdb.base/gnu-ifunc.exp b/gdb/testsuite/gdb.base/gnu-ifunc.exp index d6ec698..322de5a 100644 --- a/gdb/testsuite/gdb.base/gnu-ifunc.exp +++ b/gdb/testsuite/gdb.base/gnu-ifunc.exp @@ -17,6 +17,10 @@ if {[skip_shlib_tests]} { return 0 } +if {[skip_ifunc_tests]} { + return 0 +} + standard_testfile .c set staticexecutable ${testfile}-static set staticbinfile [standard_output_file ${staticexecutable}] @@ -365,9 +369,10 @@ proc misc_tests {resolver_attr resolver_debug final_debug} { foreach_with_prefix resolver_attr {0 1} { foreach_with_prefix resolver_debug {0 1} { foreach_with_prefix final_debug {0 1} { - build $resolver_attr $resolver_debug $final_debug - misc_tests $resolver_attr $resolver_debug $final_debug - set-break $resolver_attr $resolver_debug $final_debug + if { [build $resolver_attr $resolver_debug $final_debug] != 0 } { + misc_tests $resolver_attr $resolver_debug $final_debug + set-break $resolver_attr $resolver_debug $final_debug + } } } } diff --git a/gdb/testsuite/gdb.compile/compile-ifunc.exp b/gdb/testsuite/gdb.compile/compile-ifunc.exp index 979e391..bb3af4d 100644 --- a/gdb/testsuite/gdb.compile/compile-ifunc.exp +++ b/gdb/testsuite/gdb.compile/compile-ifunc.exp @@ -13,6 +13,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +if {[skip_ifunc_tests]} { + return 0 +} + standard_testfile with_test_prefix "nodebug" { diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index 9284291..fbdb436 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -2893,6 +2893,20 @@ gdb_caching_proc has_int128_cxx { return [gdb_int128_helper c++] } +# Return true if the IFUNC feature is unsupported. +gdb_caching_proc skip_ifunc_tests { + if [gdb_can_simple_compile ifunc { + extern void f_ (); + typedef void F (void); + F* g (void) { return &f_; } + void f () __attribute__ ((ifunc ("g"))); + } object] { + return 0 + } else { + return 1 + } +} + # Return whether we should skip tests for showing inlined functions in # backtraces. Requires get_compiler_info and get_debug_format. |