+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
return 0
}
+if {[skip_ifunc_tests]} {
+ return 0
+}
+
standard_testfile .c
set staticexecutable ${testfile}-static
set staticbinfile [standard_output_file ${staticexecutable}]
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
+ }
}
}
}
# 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" {
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.