This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
[catch-syscall] [patch] Add x86_64/amd64 support
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: SÃrgio Durigan JÃnior <sergiodj at linux dot vnet dot ibm dot com>
- Cc: archer at sourceware dot org
- Date: Wed, 14 Jan 2009 16:46:54 +0100
- Subject: [catch-syscall] [patch] Add x86_64/amd64 support
Hi SÃrgio,
SSIA (subject-says-it-all); amd64 PASSes with gdb.base/catch-syscall.exp .
Updated i386 from the current strace CVS HEAD. Did not test i386 with
gdb.base/catch-syscall.exp .
Left ppc+ppc64 not updated as strace has only a single powerpc table and I did
not investigate the differences more.
Regards,
Jan
diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index 1d99cd4..dda455a 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -28,12 +28,16 @@
#include "gdbtypes.h"
#include "reggroups.h"
#include "amd64-linux-tdep.h"
+#include "linux-tdep.h"
#include "gdb_string.h"
#include "amd64-tdep.h"
#include "solib-svr4.h"
+/* The syscall's XML filename for amd64. */
+#define XML_SYSCALL_FILENAME_AMD64 "syscalls/amd64-linux.xml"
+
/* Mapping between the general-purpose registers in `struct user'
format and GDB's register cache layout. */
@@ -256,11 +260,34 @@ amd64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
regcache_cooked_write_unsigned (regcache, AMD64_LINUX_ORIG_RAX_REGNUM, -1);
}
+static LONGEST
+amd64_linux_get_syscall_number (struct gdbarch *gdbarch,
+ ptid_t ptid)
+{
+ struct regcache *regcache = get_thread_regcache (ptid);
+ /* The content of a register. */
+ gdb_byte buf[8];
+ /* The result. */
+ LONGEST ret;
+
+ /* Getting the system call number from the register.
+ When dealing with x86 architecture, this information
+ is stored at %eax register. */
+ regcache_cooked_read (regcache, AMD64_LINUX_ORIG_RAX_REGNUM, buf);
+
+ ret = extract_signed_integer (buf, 8);
+
+ return ret;
+}
+
static void
amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ /* Initializing common functions. */
+ linux_tdep_init (gdbarch);
+
tdep->gregset_reg_offset = amd64_linux_gregset_reg_offset;
tdep->gregset_num_regs = ARRAY_SIZE (amd64_linux_gregset_reg_offset);
tdep->sizeof_gregset = 27 * 8;
@@ -286,6 +313,11 @@ amd64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+
+ /* Functions for 'catch syscall'. */
+ set_gdbarch_xml_syscall_filename (gdbarch, XML_SYSCALL_FILENAME_AMD64);
+ set_gdbarch_get_syscall_number (gdbarch,
+ amd64_linux_get_syscall_number);
}
diff --git a/gdb/syscalls/README b/gdb/syscalls/README
new file mode 100644
index 0000000..b1ba440
--- /dev/null
+++ b/gdb/syscalls/README
@@ -0,0 +1,2 @@
+The XML files can be regenerated from strace sources by:
+perl -ne 'print if s#^.*"((?!SYS_).*)".*/[*] (\d+) [*]/\s*$# <syscall name="$1" number="$2"/>\n#;' <.../syscallent.h
diff --git a/gdb/syscalls/amd64-linux.xml b/gdb/syscalls/amd64-linux.xml
new file mode 100644
index 0000000..ee82f3a
--- /dev/null
+++ b/gdb/syscalls/amd64-linux.xml
@@ -0,0 +1,306 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. -->
+
+<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
+
+<syscalls_info>
+ <syscall name="read" number="0"/>
+ <syscall name="write" number="1"/>
+ <syscall name="open" number="2"/>
+ <syscall name="close" number="3"/>
+ <syscall name="stat" number="4"/>
+ <syscall name="fstat" number="5"/>
+ <syscall name="lstat" number="6"/>
+ <syscall name="poll" number="7"/>
+ <syscall name="lseek" number="8"/>
+ <syscall name="mmap" number="9"/>
+ <syscall name="mprotect" number="10"/>
+ <syscall name="munmap" number="11"/>
+ <syscall name="brk" number="12"/>
+ <syscall name="rt_sigaction" number="13"/>
+ <syscall name="rt_sigprocmask" number="14"/>
+ <syscall name="rt_sigreturn" number="15"/>
+ <syscall name="ioctl" number="16"/>
+ <syscall name="pread" number="17"/>
+ <syscall name="pwrite" number="18"/>
+ <syscall name="readv" number="19"/>
+ <syscall name="writev" number="20"/>
+ <syscall name="access" number="21"/>
+ <syscall name="pipe" number="22"/>
+ <syscall name="select" number="23"/>
+ <syscall name="sched_yield" number="24"/>
+ <syscall name="mremap" number="25"/>
+ <syscall name="msync" number="26"/>
+ <syscall name="mincore" number="27"/>
+ <syscall name="madvise" number="28"/>
+ <syscall name="shmget" number="29"/>
+ <syscall name="shmat" number="30"/>
+ <syscall name="shmctl" number="31"/>
+ <syscall name="dup" number="32"/>
+ <syscall name="dup2" number="33"/>
+ <syscall name="pause" number="34"/>
+ <syscall name="nanosleep" number="35"/>
+ <syscall name="getitimer" number="36"/>
+ <syscall name="alarm" number="37"/>
+ <syscall name="setitimer" number="38"/>
+ <syscall name="getpid" number="39"/>
+ <syscall name="sendfile" number="40"/>
+ <syscall name="socket" number="41"/>
+ <syscall name="connect" number="42"/>
+ <syscall name="accept" number="43"/>
+ <syscall name="sendto" number="44"/>
+ <syscall name="recvfrom" number="45"/>
+ <syscall name="sendmsg" number="46"/>
+ <syscall name="recvmsg" number="47"/>
+ <syscall name="shutdown" number="48"/>
+ <syscall name="bind" number="49"/>
+ <syscall name="listen" number="50"/>
+ <syscall name="getsockname" number="51"/>
+ <syscall name="getpeername" number="52"/>
+ <syscall name="socketpair" number="53"/>
+ <syscall name="setsockopt" number="54"/>
+ <syscall name="getsockopt" number="55"/>
+ <syscall name="clone" number="56"/>
+ <syscall name="fork" number="57"/>
+ <syscall name="vfork" number="58"/>
+ <syscall name="execve" number="59"/>
+ <syscall name="_exit" number="60"/>
+ <syscall name="wait4" number="61"/>
+ <syscall name="kill" number="62"/>
+ <syscall name="uname" number="63"/>
+ <syscall name="semget" number="64"/>
+ <syscall name="semop" number="65"/>
+ <syscall name="semctl" number="66"/>
+ <syscall name="shmdt" number="67"/>
+ <syscall name="msgget" number="68"/>
+ <syscall name="msgsnd" number="69"/>
+ <syscall name="msgrcv" number="70"/>
+ <syscall name="msgctl" number="71"/>
+ <syscall name="fcntl" number="72"/>
+ <syscall name="flock" number="73"/>
+ <syscall name="fsync" number="74"/>
+ <syscall name="fdatasync" number="75"/>
+ <syscall name="truncate" number="76"/>
+ <syscall name="ftruncate" number="77"/>
+ <syscall name="getdents" number="78"/>
+ <syscall name="getcwd" number="79"/>
+ <syscall name="chdir" number="80"/>
+ <syscall name="fchdir" number="81"/>
+ <syscall name="rename" number="82"/>
+ <syscall name="mkdir" number="83"/>
+ <syscall name="rmdir" number="84"/>
+ <syscall name="creat" number="85"/>
+ <syscall name="link" number="86"/>
+ <syscall name="unlink" number="87"/>
+ <syscall name="symlink" number="88"/>
+ <syscall name="readlink" number="89"/>
+ <syscall name="chmod" number="90"/>
+ <syscall name="fchmod" number="91"/>
+ <syscall name="chown" number="92"/>
+ <syscall name="fchown" number="93"/>
+ <syscall name="lchown" number="94"/>
+ <syscall name="umask" number="95"/>
+ <syscall name="gettimeofday" number="96"/>
+ <syscall name="getrlimit" number="97"/>
+ <syscall name="getrusage" number="98"/>
+ <syscall name="sysinfo" number="99"/>
+ <syscall name="times" number="100"/>
+ <syscall name="ptrace" number="101"/>
+ <syscall name="getuid" number="102"/>
+ <syscall name="syslog" number="103"/>
+ <syscall name="getgid" number="104"/>
+ <syscall name="setuid" number="105"/>
+ <syscall name="setgid" number="106"/>
+ <syscall name="geteuid" number="107"/>
+ <syscall name="getegid" number="108"/>
+ <syscall name="setpgid" number="109"/>
+ <syscall name="getppid" number="110"/>
+ <syscall name="getpgrp" number="111"/>
+ <syscall name="setsid" number="112"/>
+ <syscall name="setreuid" number="113"/>
+ <syscall name="setregid" number="114"/>
+ <syscall name="getgroups" number="115"/>
+ <syscall name="setgroups" number="116"/>
+ <syscall name="setresuid" number="117"/>
+ <syscall name="getresuid" number="118"/>
+ <syscall name="setresgid" number="119"/>
+ <syscall name="getresgid" number="120"/>
+ <syscall name="getpgid" number="121"/>
+ <syscall name="setfsuid" number="122"/>
+ <syscall name="setfsgid" number="123"/>
+ <syscall name="getsid" number="124"/>
+ <syscall name="capget" number="125"/>
+ <syscall name="capset" number="126"/>
+ <syscall name="rt_sigpending" number="127"/>
+ <syscall name="rt_sigtimedwait" number="128"/>
+ <syscall name="rt_sigqueueinfo" number="129"/>
+ <syscall name="rt_sigsuspend" number="130"/>
+ <syscall name="sigaltstack" number="131"/>
+ <syscall name="utime" number="132"/>
+ <syscall name="mknod" number="133"/>
+ <syscall name="uselib" number="134"/>
+ <syscall name="personality" number="135"/>
+ <syscall name="ustat" number="136"/>
+ <syscall name="statfs" number="137"/>
+ <syscall name="fstatfs" number="138"/>
+ <syscall name="sysfs" number="139"/>
+ <syscall name="getpriority" number="140"/>
+ <syscall name="setpriority" number="141"/>
+ <syscall name="sched_setparam" number="142"/>
+ <syscall name="sched_getparam" number="143"/>
+ <syscall name="sched_setscheduler" number="144"/>
+ <syscall name="sched_getscheduler" number="145"/>
+ <syscall name="sched_get_priority_max" number="146"/>
+ <syscall name="sched_get_priority_min" number="147"/>
+ <syscall name="sched_rr_get_interval" number="148"/>
+ <syscall name="mlock" number="149"/>
+ <syscall name="munlock" number="150"/>
+ <syscall name="mlockall" number="151"/>
+ <syscall name="munlockall" number="152"/>
+ <syscall name="vhangup" number="153"/>
+ <syscall name="modify_ldt" number="154"/>
+ <syscall name="pivot_root" number="155"/>
+ <syscall name="_sysctl" number="156"/>
+ <syscall name="prctl" number="157"/>
+ <syscall name="arch_prctl" number="158"/>
+ <syscall name="adjtimex" number="159"/>
+ <syscall name="setrlimit" number="160"/>
+ <syscall name="chroot" number="161"/>
+ <syscall name="sync" number="162"/>
+ <syscall name="acct" number="163"/>
+ <syscall name="settimeofday" number="164"/>
+ <syscall name="mount" number="165"/>
+ <syscall name="umount" number="166"/>
+ <syscall name="swapon" number="167"/>
+ <syscall name="swapoff" number="168"/>
+ <syscall name="reboot" number="169"/>
+ <syscall name="sethostname" number="170"/>
+ <syscall name="setdomainname" number="171"/>
+ <syscall name="iopl" number="172"/>
+ <syscall name="ioperm" number="173"/>
+ <syscall name="create_module" number="174"/>
+ <syscall name="init_module" number="175"/>
+ <syscall name="delete_module" number="176"/>
+ <syscall name="get_kernel_syms" number="177"/>
+ <syscall name="query_module" number="178"/>
+ <syscall name="quotactl" number="179"/>
+ <syscall name="nfsservctl" number="180"/>
+ <syscall name="getpmsg" number="181"/>
+ <syscall name="putpmsg" number="182"/>
+ <syscall name="afs_syscall" number="183"/>
+ <syscall name="tuxcall" number="184"/>
+ <syscall name="security" number="185"/>
+ <syscall name="gettid" number="186"/>
+ <syscall name="readahead" number="187"/>
+ <syscall name="setxattr" number="188"/>
+ <syscall name="lsetxattr" number="189"/>
+ <syscall name="fsetxattr" number="190"/>
+ <syscall name="getxattr" number="191"/>
+ <syscall name="lgetxattr" number="192"/>
+ <syscall name="fgetxattr" number="193"/>
+ <syscall name="listxattr" number="194"/>
+ <syscall name="llistxattr" number="195"/>
+ <syscall name="flistxattr" number="196"/>
+ <syscall name="removexattr" number="197"/>
+ <syscall name="lremovexattr" number="198"/>
+ <syscall name="fremovexattr" number="199"/>
+ <syscall name="tkill" number="200"/>
+ <syscall name="time" number="201"/>
+ <syscall name="futex" number="202"/>
+ <syscall name="sched_setaffinity" number="203"/>
+ <syscall name="sched_getaffinity" number="204"/>
+ <syscall name="set_thread_area" number="205"/>
+ <syscall name="io_setup" number="206"/>
+ <syscall name="io_destroy" number="207"/>
+ <syscall name="io_getevents" number="208"/>
+ <syscall name="io_submit" number="209"/>
+ <syscall name="io_cancel" number="210"/>
+ <syscall name="get_thread_area" number="211"/>
+ <syscall name="lookup_dcookie" number="212"/>
+ <syscall name="epoll_create" number="213"/>
+ <syscall name="epoll_ctl_old" number="214"/>
+ <syscall name="epoll_wait_old" number="215"/>
+ <syscall name="remap_file_pages" number="216"/>
+ <syscall name="getdents64" number="217"/>
+ <syscall name="set_tid_address" number="218"/>
+ <syscall name="restart_syscall" number="219"/>
+ <syscall name="semtimedop" number="220"/>
+ <syscall name="fadvise64" number="221"/>
+ <syscall name="timer_create" number="222"/>
+ <syscall name="timer_settime" number="223"/>
+ <syscall name="timer_gettime" number="224"/>
+ <syscall name="timer_getoverrun" number="225"/>
+ <syscall name="timer_delete" number="226"/>
+ <syscall name="clock_settime" number="227"/>
+ <syscall name="clock_gettime" number="228"/>
+ <syscall name="clock_getres" number="229"/>
+ <syscall name="clock_nanosleep" number="230"/>
+ <syscall name="exit_group" number="231"/>
+ <syscall name="epoll_wait" number="232"/>
+ <syscall name="epoll_ctl" number="233"/>
+ <syscall name="tgkill" number="234"/>
+ <syscall name="utimes" number="235"/>
+ <syscall name="vserver" number="236"/>
+ <syscall name="mbind" number="237"/>
+ <syscall name="set_mempolicy" number="238"/>
+ <syscall name="get_mempolicy" number="239"/>
+ <syscall name="mq_open" number="240"/>
+ <syscall name="mq_unlink" number="241"/>
+ <syscall name="mq_timedsend" number="242"/>
+ <syscall name="mq_timedreceive" number="243"/>
+ <syscall name="mq_notify" number="244"/>
+ <syscall name="mq_getsetattr" number="245"/>
+ <syscall name="kexec_load" number="246"/>
+ <syscall name="waitid" number="247"/>
+ <syscall name="add_key" number="248"/>
+ <syscall name="request_key" number="249"/>
+ <syscall name="keyctl" number="250"/>
+ <syscall name="ioprio_set" number="251"/>
+ <syscall name="ioprio_get" number="252"/>
+ <syscall name="inotify_init" number="253"/>
+ <syscall name="inotify_add_watch" number="254"/>
+ <syscall name="inotify_rm_watch" number="255"/>
+ <syscall name="migrate_pages" number="256"/>
+ <syscall name="openat" number="257"/>
+ <syscall name="mkdirat" number="258"/>
+ <syscall name="mknodat" number="259"/>
+ <syscall name="fchownat" number="260"/>
+ <syscall name="futimesat" number="261"/>
+ <syscall name="newfstatat" number="262"/>
+ <syscall name="unlinkat" number="263"/>
+ <syscall name="renameat" number="264"/>
+ <syscall name="linkat" number="265"/>
+ <syscall name="symlinkat" number="266"/>
+ <syscall name="readlinkat" number="267"/>
+ <syscall name="fchmodat" number="268"/>
+ <syscall name="faccessat" number="269"/>
+ <syscall name="pselect6" number="270"/>
+ <syscall name="ppoll" number="271"/>
+ <syscall name="unshare" number="272"/>
+ <syscall name="set_robust_list" number="273"/>
+ <syscall name="get_robust_list" number="274"/>
+ <syscall name="splice" number="275"/>
+ <syscall name="tee" number="276"/>
+ <syscall name="sync_file_range" number="277"/>
+ <syscall name="vmsplice" number="278"/>
+ <syscall name="move_pages" number="279"/>
+ <syscall name="utimensat" number="280"/>
+ <syscall name="epoll_pwait" number="281"/>
+ <syscall name="signalfd" number="282"/>
+ <syscall name="timerfd_create" number="283"/>
+ <syscall name="eventfd" number="284"/>
+ <syscall name="fallocate" number="285"/>
+ <syscall name="timerfd_settime" number="286"/>
+ <syscall name="timerfd_gettime" number="287"/>
+ <syscall name="paccept" number="288"/>
+ <syscall name="signalfd4" number="289"/>
+ <syscall name="eventfd2" number="290"/>
+ <syscall name="epoll_create1" number="291"/>
+ <syscall name="dup3" number="292"/>
+ <syscall name="pipe2" number="293"/>
+ <syscall name="inotify_init1" number="294"/>
+</syscalls_info>
diff --git a/gdb/syscalls/i386-linux.xml b/gdb/syscalls/i386-linux.xml
index 8044c7b..f676684 100644
--- a/gdb/syscalls/i386-linux.xml
+++ b/gdb/syscalls/i386-linux.xml
@@ -9,7 +9,7 @@
<syscalls_info>
<syscall name="restart_syscall" number="0"/>
- <syscall name="exit" number="1"/>
+ <syscall name="_exit" number="1"/>
<syscall name="fork" number="2"/>
<syscall name="read" number="3"/>
<syscall name="write" number="4"/>
@@ -30,7 +30,7 @@
<syscall name="lseek" number="19"/>
<syscall name="getpid" number="20"/>
<syscall name="mount" number="21"/>
- <syscall name="umount" number="22"/>
+ <syscall name="oldumount" number="22"/>
<syscall name="setuid" number="23"/>
<syscall name="getuid" number="24"/>
<syscall name="stime" number="25"/>
@@ -60,7 +60,7 @@
<syscall name="geteuid" number="49"/>
<syscall name="getegid" number="50"/>
<syscall name="acct" number="51"/>
- <syscall name="umount2" number="52"/>
+ <syscall name="umount" number="52"/>
<syscall name="lock" number="53"/>
<syscall name="ioctl" number="54"/>
<syscall name="fcntl" number="55"/>
@@ -76,21 +76,21 @@
<syscall name="getpgrp" number="65"/>
<syscall name="setsid" number="66"/>
<syscall name="sigaction" number="67"/>
- <syscall name="sgetmask" number="68"/>
- <syscall name="ssetmask" number="69"/>
+ <syscall name="siggetmask" number="68"/>
+ <syscall name="sigsetmask" number="69"/>
<syscall name="setreuid" number="70"/>
<syscall name="setregid" number="71"/>
<syscall name="sigsuspend" number="72"/>
<syscall name="sigpending" number="73"/>
<syscall name="sethostname" number="74"/>
<syscall name="setrlimit" number="75"/>
- <syscall name="getrlimit" number="76"/>
+ <syscall name="old_getrlimit" number="76"/>
<syscall name="getrusage" number="77"/>
<syscall name="gettimeofday" number="78"/>
<syscall name="settimeofday" number="79"/>
<syscall name="getgroups" number="80"/>
<syscall name="setgroups" number="81"/>
- <syscall name="select" number="82"/>
+ <syscall name="oldselect" number="82"/>
<syscall name="symlink" number="83"/>
<syscall name="oldlstat" number="84"/>
<syscall name="readlink" number="85"/>
@@ -98,7 +98,7 @@
<syscall name="swapon" number="87"/>
<syscall name="reboot" number="88"/>
<syscall name="readdir" number="89"/>
- <syscall name="mmap" number="90"/>
+ <syscall name="old_mmap" number="90"/>
<syscall name="munmap" number="91"/>
<syscall name="truncate" number="92"/>
<syscall name="ftruncate" number="93"/>
@@ -150,7 +150,7 @@
<syscall name="setfsgid" number="139"/>
<syscall name="_llseek" number="140"/>
<syscall name="getdents" number="141"/>
- <syscall name="_newselect" number="142"/>
+ <syscall name="select" number="142"/>
<syscall name="flock" number="143"/>
<syscall name="msync" number="144"/>
<syscall name="readv" number="145"/>
@@ -199,7 +199,7 @@
<syscall name="getpmsg" number="188"/>
<syscall name="putpmsg" number="189"/>
<syscall name="vfork" number="190"/>
- <syscall name="ugetrlimit" number="191"/>
+ <syscall name="getrlimit" number="191"/>
<syscall name="mmap2" number="192"/>
<syscall name="truncate64" number="193"/>
<syscall name="ftruncate64" number="194"/>
@@ -228,10 +228,9 @@
<syscall name="pivot_root" number="217"/>
<syscall name="mincore" number="218"/>
<syscall name="madvise" number="219"/>
- <syscall name="madvise1" number="220"/>
- <syscall name="getdents64" number="221"/>
- <syscall name="fcntl64" number="222"/>
- <syscall name="" number="223"/>
+ <syscall name="getdents64" number="220"/>
+ <syscall name="fcntl64" number="221"/>
+ <syscall name="security" number="223"/>
<syscall name="gettid" number="224"/>
<syscall name="readahead" number="225"/>
<syscall name="setxattr" number="226"/>
@@ -259,7 +258,6 @@
<syscall name="io_submit" number="248"/>
<syscall name="io_cancel" number="249"/>
<syscall name="fadvise64" number="250"/>
- <syscall name="" number="251"/>
<syscall name="exit_group" number="252"/>
<syscall name="lookup_dcookie" number="253"/>
<syscall name="epoll_create" number="254"/>
@@ -291,9 +289,8 @@
<syscall name="mq_timedreceive" number="280"/>
<syscall name="mq_notify" number="281"/>
<syscall name="mq_getsetattr" number="282"/>
- <syscall name="kexec_load" number="283"/>
+ <syscall name="sys_kexec_load" number="283"/>
<syscall name="waitid" number="284"/>
- <syscall name="" number="285"/>
<syscall name="add_key" number="286"/>
<syscall name="request_key" number="287"/>
<syscall name="keyctl" number="288"/>
@@ -334,4 +331,54 @@
<syscall name="eventfd" number="323"/>
<syscall name="fallocate" number="324"/>
<syscall name="timerfd_settime" number="325"/>
+ <syscall name="timerfd_gettime" number="326"/>
+ <syscall name="signalfd4" number="327"/>
+ <syscall name="eventfd2" number="328"/>
+ <syscall name="epoll_create1" number="329"/>
+ <syscall name="dup3" number="330"/>
+ <syscall name="pipe2" number="331"/>
+ <syscall name="inotify_init1" number="332"/>
+ <syscall name="socket_subcall" number="400"/>
+ <syscall name="socket" number="401"/>
+ <syscall name="bind" number="402"/>
+ <syscall name="connect" number="403"/>
+ <syscall name="listen" number="404"/>
+ <syscall name="accept" number="405"/>
+ <syscall name="getsockname" number="406"/>
+ <syscall name="getpeername" number="407"/>
+ <syscall name="socketpair" number="408"/>
+ <syscall name="send" number="409"/>
+ <syscall name="recv" number="410"/>
+ <syscall name="sendto" number="411"/>
+ <syscall name="recvfrom" number="412"/>
+ <syscall name="shutdown" number="413"/>
+ <syscall name="setsockopt" number="414"/>
+ <syscall name="getsockopt" number="415"/>
+ <syscall name="sendmsg" number="416"/>
+ <syscall name="recvmsg" number="417"/>
+ <syscall name="ipc_subcall" number="418"/>
+ <syscall name="semop" number="419"/>
+ <syscall name="semget" number="420"/>
+ <syscall name="semctl" number="421"/>
+ <syscall name="semtimedop" number="422"/>
+ <syscall name="ipc_subcall" number="423"/>
+ <syscall name="ipc_subcall" number="424"/>
+ <syscall name="ipc_subcall" number="425"/>
+ <syscall name="ipc_subcall" number="426"/>
+ <syscall name="ipc_subcall" number="427"/>
+ <syscall name="ipc_subcall" number="428"/>
+ <syscall name="msgsnd" number="429"/>
+ <syscall name="msgrcv" number="430"/>
+ <syscall name="msgget" number="431"/>
+ <syscall name="msgctl" number="432"/>
+ <syscall name="ipc_subcall" number="433"/>
+ <syscall name="ipc_subcall" number="434"/>
+ <syscall name="ipc_subcall" number="435"/>
+ <syscall name="ipc_subcall" number="436"/>
+ <syscall name="ipc_subcall" number="437"/>
+ <syscall name="ipc_subcall" number="438"/>
+ <syscall name="shmat" number="439"/>
+ <syscall name="shmdt" number="440"/>
+ <syscall name="shmget" number="441"/>
+ <syscall name="shmctl" number="442"/>
</syscalls_info>
diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index a9f6937..d5337b7 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -51,8 +51,7 @@ if {![istarget "hppa*-hp-hpux*"] && ![istarget "*-linux*"]} then {
# This shall be updated whenever 'catch syscall' is implemented
# on some architecture.
-#if { ![istarget "x86_64-*-linux*"] && ![istarget "i\[34567\]86-*-linux*"]
-if { ![istarget "i\[34567\]86-*-linux*"]
+if { ![istarget "x86_64-*-linux*"] && ![istarget "i\[34567\]86-*-linux*"]
&& ![istarget "powerpc-*-linux*"] && ![istarget "powerpc64-*-linux*"] } {
continue
}