aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/testsuite/ChangeLog7
-rw-r--r--gdb/testsuite/gdb.base/gnu-ifunc.exp11
-rw-r--r--gdb/testsuite/gdb.compile/compile-ifunc.exp4
-rw-r--r--gdb/testsuite/lib/gdb.exp14
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.