+2016-06-28  Yao Qi  <yao.qi@linaro.org>
+
+       * gdb.base/catch-syscall.exp: Remove check on isnative and target
+       triplets.  Start gdb, execute catch syscall, and continue.  Check
+       gdb's output to determine catch syscall is supported.
+
 2016-06-27  Manish Goregaokar  <manish@mozilla.com>
 
        * gdb.rust/simple.rs: Add test for returning unit in a function
 
 # It was written by Sergio Durigan Junior <sergiodj@linux.vnet.ibm.com>
 # on September/2008.
 
-if { ![isnative] } then {
-    continue
-}
-
-# This shall be updated whenever 'catch syscall' is implemented
-# on some architecture.
-if { ![istarget "x86_64-*-linux*"] && ![istarget "i\[34567\]86-*-linux*"]
-     && ![istarget "powerpc-*-linux*"] && ![istarget "powerpc64-*-linux*"]
-     && ![istarget "sparc-*-linux*"] && ![istarget "sparc64-*-linux*"]
-     && ![istarget "mips*-linux*"] && ![istarget "arm*-linux*"]
-     && ![istarget "s390*-linux*"] && ![istarget "aarch64*-*-linux*"] } {
-     continue
-}
-
 standard_testfile
 
 if  { [prepare_for_testing ${testfile}.exp $testfile ${testfile}.c] } {
      return -1
 }
 
+# Check target supports catch syscall or not.
+clean_restart $binfile
+if ![runto_main] then {
+    fail "Can't run to main"
+    return
+}
+
+set test "catch syscall"
+gdb_test_multiple $test $test {
+    -re "The feature \'catch syscall\' is not supported.*\r\n$gdb_prompt $" {
+       unsupported "catch syscall isn't supported"
+       return -1
+    }
+    -re ".*$gdb_prompt $" {
+       pass $test
+    }
+}
+
+set test "check catch syscall"
+gdb_test_multiple "continue" $test {
+    -re ".*Your system does not support this type\r\nof catchpoint.*$gdb_prompt $" {
+       unsupported "catch syscall isn't supported"
+       return -1
+    }
+    -re ".*Catchpoint.*$gdb_prompt $" {
+      pass $test
+    }
+}
+
 # All (but the last) syscalls from the example code.  It is filled in
 # proc setup_all_syscalls.
 set all_syscalls { }