diff --git a/gdb/syscalls/sparc64-linux.xml b/gdb/syscalls/sparc64-linux.xml
index c7c149d..358c3f9 100644
--- a/gdb/syscalls/sparc64-linux.xml
+++ b/gdb/syscalls/sparc64-linux.xml
@@ -13,27 +13,29 @@
 
      The file mentioned above belongs to the Linux Kernel.  -->
 
+<!-- The group field was based on strace.  -->
+
 <syscalls_info>
   <syscall name="restart_syscall" number="0"/>
-  <syscall name="exit" number="1"/>
-  <syscall name="fork" number="2"/>
-  <syscall name="read" number="3"/>
-  <syscall name="write" number="4"/>
-  <syscall name="open" number="5"/>
-  <syscall name="close" number="6"/>
-  <syscall name="wait4" number="7"/>
-  <syscall name="creat" number="8"/>
-  <syscall name="link" number="9"/>
-  <syscall name="unlink" number="10"/>
-  <syscall name="execv" number="11"/>
-  <syscall name="chdir" number="12"/>
+  <syscall name="exit" number="1" groups="process"/>
+  <syscall name="fork" number="2" groups="process"/>
+  <syscall name="read" number="3" groups="descriptor"/>
+  <syscall name="write" number="4" groups="descriptor"/>
+  <syscall name="open" number="5" groups="descriptor,file"/>
+  <syscall name="close" number="6" groups="descriptor"/>
+  <syscall name="wait4" number="7" groups="process"/>
+  <syscall name="creat" number="8" groups="descriptor,file"/>
+  <syscall name="link" number="9" groups="file"/>
+  <syscall name="unlink" number="10" groups="file"/>
+  <syscall name="execv" number="11" groups="file,process"/>
+  <syscall name="chdir" number="12" groups="file"/>
   <syscall name="chown"	number="13"/>
-  <syscall name="mknod" number="14"/>
-  <syscall name="chmod" number="15"/>
-  <syscall name="lchown" number="16"/>
-  <syscall name="brk" number="17"/>
+  <syscall name="mknod" number="14" groups="file"/>
+  <syscall name="chmod" number="15" groups="file"/>
+  <syscall name="lchown" number="16" groups="file"/>
+  <syscall name="brk" number="17" groups="memory"/>
   <syscall name="perfctr" number="18"/>
-  <syscall name="lseek" number="19"/>
+  <syscall name="lseek" number="19" groups="descriptor"/>
   <syscall name="getpid" number="20"/>
   <syscall name="capget" number="21"/>
   <syscall name="capset" number="22"/>
@@ -43,61 +45,61 @@
   <syscall name="ptrace" number="26"/>
   <syscall name="alarm" number="27"/>
   <syscall name="sigaltstack" number="28"/>
-  <syscall name="pause" number="29"/>
-  <syscall name="utime" number="30"/>
-  <syscall name="access" number="33"/>
+  <syscall name="pause" number="29" groups="signal"/>
+  <syscall name="utime" number="30" groups="file"/>
+  <syscall name="access" number="33" groups="file"/>
   <syscall name="nice" number="34"/>
   <syscall name="sync" number="36"/>
-  <syscall name="kill" number="37"/>
-  <syscall name="stat" number="38"/>
-  <syscall name="sendfile" number="39"/>
-  <syscall name="lstat" number="40"/>
-  <syscall name="dup" number="41"/>
-  <syscall name="pipe" number="42"/>
+  <syscall name="kill" number="37" groups="signal"/>
+  <syscall name="stat" number="38" groups="file"/>
+  <syscall name="sendfile" number="39" groups="descriptor,network"/>
+  <syscall name="lstat" number="40" groups="file"/>
+  <syscall name="dup" number="41" groups="descriptor"/>
+  <syscall name="pipe" number="42" groups="descriptor"/>
   <syscall name="times" number="43"/>
   <syscall name="umount2" number="45"/>
   <syscall name="setgid" number="46"/>
   <syscall name="getgid" number="47"/>
-  <syscall name="signal" number="48"/>
+  <syscall name="signal" number="48" groups="signal"/>
   <syscall name="geteuid" number="49"/>
   <syscall name="getegid" number="50"/>
-  <syscall name="acct" number="51"/>
+  <syscall name="acct" number="51" groups="file"/>
   <syscall name="memory_ordering" number="52"/>
-  <syscall name="ioctl" number="54"/>
+  <syscall name="ioctl" number="54" groups="descriptor"/>
   <syscall name="reboot" number="55"/>
-  <syscall name="symlink" number="57"/>
-  <syscall name="readlink" number="58"/>
-  <syscall name="execve" number="59"/>
+  <syscall name="symlink" number="57" groups="file"/>
+  <syscall name="readlink" number="58" groups="file"/>
+  <syscall name="execve" number="59" groups="file,process"/>
   <syscall name="umask" number="60"/>
-  <syscall name="chroot" number="61"/>
-  <syscall name="fstat" number="62"/>
-  <syscall name="fstat64" number="63"/>
+  <syscall name="chroot" number="61" groups="file"/>
+  <syscall name="fstat" number="62" groups="descriptor"/>
+  <syscall name="fstat64" number="63" groups="descriptor"/>
   <syscall name="getpagesize" number="64"/>
-  <syscall name="msync" number="65"/>
-  <syscall name="vfork" number="66"/>
+  <syscall name="msync" number="65" groups="memory"/>
+  <syscall name="vfork" number="66" groups="process"/>
   <syscall name="pread64" number="67"/>
   <syscall name="pwrite64" number="68"/>
-  <syscall name="mmap" number="71"/>
-  <syscall name="munmap" number="73"/>
-  <syscall name="mprotect" number="74"/>
-  <syscall name="madvise" number="75"/>
+  <syscall name="mmap" number="71" groups="descriptor,memory"/>
+  <syscall name="munmap" number="73" groups="memory"/>
+  <syscall name="mprotect" number="74" groups="memory"/>
+  <syscall name="madvise" number="75" groups="memory"/>
   <syscall name="vhangup" number="76"/>
-  <syscall name="mincore" number="78"/>
+  <syscall name="mincore" number="78" groups="memory"/>
   <syscall name="getgroups" number="79"/>
   <syscall name="setgroups" number="80"/>
   <syscall name="getpgrp" number="81"/>
   <syscall name="setitimer" number="83"/>
-  <syscall name="swapon" number="85"/>
+  <syscall name="swapon" number="85" groups="file"/>
   <syscall name="getitimer" number="86"/>
   <syscall name="sethostname" number="88"/>
-  <syscall name="dup2" number="90"/>
-  <syscall name="fcntl" number="92"/>
-  <syscall name="select" number="93"/>
-  <syscall name="fsync" number="95"/>
+  <syscall name="dup2" number="90" groups="descriptor"/>
+  <syscall name="fcntl" number="92" groups="descriptor"/>
+  <syscall name="select" number="93" groups="descriptor"/>
+  <syscall name="fsync" number="95" groups="descriptor"/>
   <syscall name="setpriority" number="96"/>
-  <syscall name="socket" number="97"/>
-  <syscall name="connect" number="98"/>
-  <syscall name="accept" number="99"/>
+  <syscall name="socket" number="97" groups="network"/>
+  <syscall name="connect" number="98" groups="network"/>
+  <syscall name="accept" number="99" groups="network"/>
   <syscall name="getpriority" number="100"/>
   <syscall name="rt_sigreturn" number="101"/>
   <syscall name="rt_sigaction" number="102"/>
@@ -110,109 +112,109 @@
   <syscall name="getresuid" number="109"/>
   <syscall name="setresgid" number="110"/>
   <syscall name="getresgid" number="111"/>
-  <syscall name="recvmsg" number="113"/>
-  <syscall name="sendmsg" number="114"/>
+  <syscall name="recvmsg" number="113" groups="network"/>
+  <syscall name="sendmsg" number="114" groups="network"/>
   <syscall name="gettimeofday" number="116"/>
   <syscall name="getrusage" number="117"/>
-  <syscall name="getsockopt" number="118"/>
-  <syscall name="getcwd" number="119"/>
-  <syscall name="readv" number="120"/>
-  <syscall name="writev" number="121"/>
+  <syscall name="getsockopt" number="118" groups="network"/>
+  <syscall name="getcwd" number="119" groups="file"/>
+  <syscall name="readv" number="120" groups="descriptor"/>
+  <syscall name="writev" number="121" groups="descriptor"/>
   <syscall name="settimeofday" number="122"/>
-  <syscall name="fchown" number="123"/>
-  <syscall name="fchmod" number="124"/>
-  <syscall name="recvfrom" number="125"/>
+  <syscall name="fchown" number="123" groups="descriptor"/>
+  <syscall name="fchmod" number="124" groups="descriptor"/>
+  <syscall name="recvfrom" number="125" groups="network"/>
   <syscall name="setreuid" number="126"/>
   <syscall name="setregid" number="127"/>
-  <syscall name="rename" number="128"/>
-  <syscall name="truncate" number="129"/>
-  <syscall name="ftruncate" number="130"/>
-  <syscall name="flock" number="131"/>
-  <syscall name="lstat64" number="132"/>
-  <syscall name="sendto" number="133"/>
-  <syscall name="shutdown" number="134"/>
-  <syscall name="socketpair" number="135"/>
-  <syscall name="mkdir" number="136"/>
-  <syscall name="rmdir" number="137"/>
-  <syscall name="utimes" number="138"/>
-  <syscall name="stat64" number="139"/>
-  <syscall name="sendfile64" number="140"/>
-  <syscall name="getpeername" number="141"/>
+  <syscall name="rename" number="128" groups="file"/>
+  <syscall name="truncate" number="129" groups="file"/>
+  <syscall name="ftruncate" number="130" groups="descriptor"/>
+  <syscall name="flock" number="131" groups="descriptor"/>
+  <syscall name="lstat64" number="132" groups="file"/>
+  <syscall name="sendto" number="133" groups="network"/>
+  <syscall name="shutdown" number="134" groups="network"/>
+  <syscall name="socketpair" number="135" groups="network"/>
+  <syscall name="mkdir" number="136" groups="file"/>
+  <syscall name="rmdir" number="137" groups="file"/>
+  <syscall name="utimes" number="138" groups="file"/>
+  <syscall name="stat64" number="139" groups="file"/>
+  <syscall name="sendfile64" number="140" groups="descriptor,network"/>
+  <syscall name="getpeername" number="141" groups="network"/>
   <syscall name="futex" number="142"/>
   <syscall name="gettid" number="143"/>
   <syscall name="getrlimit" number="144"/>
   <syscall name="setrlimit" number="145"/>
-  <syscall name="pivot_root" number="146"/>
+  <syscall name="pivot_root" number="146" groups="file"/>
   <syscall name="prctl" number="147"/>
   <syscall name="pciconfig_read" number="148"/>
   <syscall name="pciconfig_write" number="149"/>
-  <syscall name="getsockname" number="150"/>
+  <syscall name="getsockname" number="150" groups="network"/>
   <syscall name="inotify_init" number="151"/>
   <syscall name="inotify_add_watch" number="152"/>
-  <syscall name="poll" number="153"/>
-  <syscall name="getdents64" number="154"/>
+  <syscall name="poll" number="153" groups="descriptor"/>
+  <syscall name="getdents64" number="154" groups="descriptor"/>
   <syscall name="inotify_rm_watch" number="156"/>
-  <syscall name="statfs" number="157"/>
-  <syscall name="fstatfs" number="158"/>
-  <syscall name="umount" number="159"/>
+  <syscall name="statfs" number="157" groups="file"/>
+  <syscall name="fstatfs" number="158" groups="descriptor"/>
+  <syscall name="umount" number="159" groups="file"/>
   <syscall name="sched_set_affinity" number="160"/>
   <syscall name="sched_get_affinity" number="161"/>
   <syscall name="getdomainname" number="162"/>
   <syscall name="setdomainname" number="163"/>
   <syscall name="utrap_install" number="164"/>
-  <syscall name="quotactl" number="165"/>
+  <syscall name="quotactl" number="165" groups="file"/>
   <syscall name="set_tid_address" number="166"/>
-  <syscall name="mount" number="167"/>
+  <syscall name="mount" number="167" groups="file"/>
   <syscall name="ustat" number="168"/>
-  <syscall name="setxattr" number="169"/>
-  <syscall name="lsetxattr" number="170"/>
-  <syscall name="fsetxattr" number="171"/>
-  <syscall name="getxattr" number="172"/>
-  <syscall name="lgetxattr" number="173"/>
-  <syscall name="getdents" number="174"/>
+  <syscall name="setxattr" number="169" groups="file"/>
+  <syscall name="lsetxattr" number="170" groups="file"/>
+  <syscall name="fsetxattr" number="171" groups="descriptor"/>
+  <syscall name="getxattr" number="172" groups="file"/>
+  <syscall name="lgetxattr" number="173" groups="file"/>
+  <syscall name="getdents" number="174" groups="descriptor"/>
   <syscall name="setsid" number="175"/>
-  <syscall name="fchdir" number="176"/>
-  <syscall name="fgetxattr" number="177"/>
-  <syscall name="listxattr" number="178"/>
-  <syscall name="llistxattr" number="179"/>
-  <syscall name="flistxattr" number="180"/>
+  <syscall name="fchdir" number="176" groups="descriptor"/>
+  <syscall name="fgetxattr" number="177" groups="descriptor"/>
+  <syscall name="listxattr" number="178" groups="file"/>
+  <syscall name="llistxattr" number="179" groups="file"/>
+  <syscall name="flistxattr" number="180" groups="descriptor"/>
   <syscall name="removexattr" number="181"/>
   <syscall name="lremovexattr" number="182"/>
-  <syscall name="sigpending" number="183"/>
+  <syscall name="sigpending" number="183" groups="signal"/>
   <syscall name="query_module" number="184"/>
   <syscall name="setpgid" number="185"/>
   <syscall name="fremovexattr" number="186"/>
-  <syscall name="tkill" number="187"/>
-  <syscall name="exit_group" number="188"/>
+  <syscall name="tkill" number="187" groups="signal"/>
+  <syscall name="exit_group" number="188" groups="process"/>
   <syscall name="uname" number="189"/>
   <syscall name="init_module" number="190"/>
   <syscall name="personality" number="191"/>
   <syscall name="remap_file_pages" number="192"/>
   <syscall name="epoll_create" number="193"/>
-  <syscall name="epoll_ctl" number="194"/>
-  <syscall name="epoll_wait" number="195"/>
+  <syscall name="epoll_ctl" number="194" groups="descriptor"/>
+  <syscall name="epoll_wait" number="195" groups="descriptor"/>
   <syscall name="ioprio_set" number="196"/>
   <syscall name="getppid" number="197"/>
-  <syscall name="sigaction" number="198"/>
-  <syscall name="sgetmask" number="199"/>
-  <syscall name="ssetmask" number="200"/>
-  <syscall name="sigsuspend" number="201"/>
+  <syscall name="sigaction" number="198" groups="signal"/>
+  <syscall name="sgetmask" number="199" groups="signal"/>
+  <syscall name="ssetmask" number="200" groups="signal"/>
+  <syscall name="sigsuspend" number="201" groups="signal"/>
   <syscall name="oldlstat" number="202"/>
-  <syscall name="uselib" number="203"/>
-  <syscall name="readdir" number="204"/>
-  <syscall name="readahead" number="205"/>
-  <syscall name="socketcall" number="206"/>
+  <syscall name="uselib" number="203" groups="file"/>
+  <syscall name="readdir" number="204" groups="descriptor"/>
+  <syscall name="readahead" number="205" groups="descriptor"/>
+  <syscall name="socketcall" number="206" groups="descriptor"/>
   <syscall name="syslog" number="207"/>
   <syscall name="lookup_dcookie" number="208"/>
-  <syscall name="fadvise64" number="209"/>
+  <syscall name="fadvise64" number="209" groups="descriptor"/>
   <syscall name="fadvise64_64" number="210"/>
-  <syscall name="tgkill" number="211"/>
-  <syscall name="waitpid" number="212"/>
-  <syscall name="swapoff" number="213"/>
+  <syscall name="tgkill" number="211" groups="signal"/>
+  <syscall name="waitpid" number="212" groups="process"/>
+  <syscall name="swapoff" number="213" groups="file"/>
   <syscall name="sysinfo" number="214"/>
-  <syscall name="ipc" number="215"/>
-  <syscall name="sigreturn" number="216"/>
-  <syscall name="clone" number="217"/>
+  <syscall name="ipc" number="215" groups="ipc"/>
+  <syscall name="sigreturn" number="216" groups="signal"/>
+  <syscall name="clone" number="217" groups="process"/>
   <syscall name="ioprio_get" number="218"/>
   <syscall name="adjtimex" number="219"/>
   <syscall name="sigprocmask" number="220"/>
@@ -228,13 +230,13 @@
   <syscall name="_newselect" number="230"/>
   <syscall name="splice" number="232"/>
   <syscall name="stime" number="233"/>
-  <syscall name="statfs64" number="234"/>
-  <syscall name="fstatfs64" number="235"/>
-  <syscall name="_llseek" number="236"/>
-  <syscall name="mlock" number="237"/>
-  <syscall name="munlock" number="238"/>
-  <syscall name="mlockall" number="239"/>
-  <syscall name="munlockall" number="240"/>
+  <syscall name="statfs64" number="234" groups="file"/>
+  <syscall name="fstatfs64" number="235" groups="descriptor"/>
+  <syscall name="_llseek" number="236" groups="descriptor"/>
+  <syscall name="mlock" number="237" groups="memory"/>
+  <syscall name="munlock" number="238" groups="memory"/>
+  <syscall name="mlockall" number="239" groups="memory"/>
+  <syscall name="munlockall" number="240" groups="memory"/>
   <syscall name="sched_setparam" number="241"/>
   <syscall name="sched_getparam" number="242"/>
   <syscall name="sched_setscheduler" number="243"/>
@@ -244,10 +246,10 @@
   <syscall name="sched_get_priority_min" number="247"/>
   <syscall name="sched_rr_get_interval" number="248"/>
   <syscall name="nanosleep" number="249"/>
-  <syscall name="mremap" number="250"/>
+  <syscall name="mremap" number="250" groups="memory"/>
   <syscall name="_sysctl" number="251"/>
   <syscall name="getsid" number="252"/>
-  <syscall name="fdatasync" number="253"/>
+  <syscall name="fdatasync" number="253" groups="descriptor"/>
   <syscall name="nfsservctl" number="254"/>
   <syscall name="sync_file_range" number="255"/>
   <syscall name="clock_settime" number="256"/>
@@ -273,54 +275,54 @@
   <syscall name="mq_timedreceive" number="276"/>
   <syscall name="mq_notify" number="277"/>
   <syscall name="mq_getsetattr" number="278"/>
-  <syscall name="waitid" number="279"/>
-  <syscall name="tee" number="280"/>
+  <syscall name="waitid" number="279" groups="process"/>
+  <syscall name="tee" number="280" groups="descriptor"/>
   <syscall name="add_key" number="281"/>
   <syscall name="request_key" number="282"/>
   <syscall name="keyctl" number="283"/>
-  <syscall name="openat" number="284"/>
-  <syscall name="mkdirat" number="285"/>
-  <syscall name="mknodat" number="286"/>
-  <syscall name="fchownat" number="287"/>
-  <syscall name="futimesat" number="288"/>
-  <syscall name="fstatat64" number="289"/>
-  <syscall name="unlinkat" number="290"/>
-  <syscall name="renameat" number="291"/>
-  <syscall name="linkat" number="292"/>
-  <syscall name="symlinkat" number="293"/>
-  <syscall name="readlinkat" number="294"/>
-  <syscall name="fchmodat" number="295"/>
-  <syscall name="faccessat" number="296"/>
-  <syscall name="pselect6" number="297"/>
-  <syscall name="ppoll" number="298"/>
-  <syscall name="unshare" number="299"/>
+  <syscall name="openat" number="284" groups="descriptor,file"/>
+  <syscall name="mkdirat" number="285" groups="descriptor,file"/>
+  <syscall name="mknodat" number="286" groups="descriptor,file"/>
+  <syscall name="fchownat" number="287" groups="descriptor,file"/>
+  <syscall name="futimesat" number="288" groups="descriptor,file"/>
+  <syscall name="fstatat64" number="289" groups="descriptor,file"/>
+  <syscall name="unlinkat" number="290" groups="descriptor,file"/>
+  <syscall name="renameat" number="291" groups="descriptor,file"/>
+  <syscall name="linkat" number="292" groups="descriptor,file"/>
+  <syscall name="symlinkat" number="293" groups="descriptor,file"/>
+  <syscall name="readlinkat" number="294" groups="descriptor,file"/>
+  <syscall name="fchmodat" number="295" groups="descriptor,file"/>
+  <syscall name="faccessat" number="296" groups="descriptor,file"/>
+  <syscall name="pselect6" number="297" groups="descriptor"/>
+  <syscall name="ppoll" number="298" groups="descriptor"/>
+  <syscall name="unshare" number="299" groups="process"/>
   <syscall name="set_robust_list" number="300"/>
   <syscall name="get_robust_list" number="301"/>
-  <syscall name="migrate_pages" number="302"/>
-  <syscall name="mbind" number="303"/>
-  <syscall name="get_mempolicy" number="304"/>
-  <syscall name="set_mempolicy" number="305"/>
+  <syscall name="migrate_pages" number="302" groups="memory"/>
+  <syscall name="mbind" number="303" groups="memory"/>
+  <syscall name="get_mempolicy" number="304" groups="memory"/>
+  <syscall name="set_mempolicy" number="305" groups="memory"/>
   <syscall name="kexec_load" number="306"/>
-  <syscall name="move_pages" number="307"/>
+  <syscall name="move_pages" number="307" groups="memory"/>
   <syscall name="getcpu" number="308"/>
-  <syscall name="epoll_pwait" number="309"/>
-  <syscall name="utimensat" number="310"/>
-  <syscall name="signalfd" number="311"/>
-  <syscall name="timerfd_create" number="312"/>
-  <syscall name="eventfd" number="313"/>
-  <syscall name="fallocate" number="314"/>
-  <syscall name="timerfd_settime" number="315"/>
-  <syscall name="timerfd_gettime" number="316"/>
-  <syscall name="signalfd4" number="317"/>
-  <syscall name="eventfd2" number="318"/>
-  <syscall name="epoll_create1" number="319"/>
-  <syscall name="dup3" number="320"/>
-  <syscall name="pipe2" number="321"/>
-  <syscall name="inotify_init1" number="322"/>
-  <syscall name="accept4" number="323"/>
-  <syscall name="preadv" number="324"/>
-  <syscall name="pwritev" number="325"/>
-  <syscall name="rt_tgsigqueueinfo" number="326"/>
-  <syscall name="perf_event_open" number="327"/>
-  <syscall name="recvmmsg" number="328"/>
+  <syscall name="epoll_pwait" number="309" groups="descriptor"/>
+  <syscall name="utimensat" number="310" groups="descriptor,file"/>
+  <syscall name="signalfd" number="311" groups="descriptor,signal"/>
+  <syscall name="timerfd_create" number="312" groups="descriptor"/>
+  <syscall name="eventfd" number="313" groups="descriptor"/>
+  <syscall name="fallocate" number="314" groups="descriptor"/>
+  <syscall name="timerfd_settime" number="315" groups="descriptor"/>
+  <syscall name="timerfd_gettime" number="316" groups="descriptor"/>
+  <syscall name="signalfd4" number="317" groups="descriptor,signal"/>
+  <syscall name="eventfd2" number="318" groups="descriptor"/>
+  <syscall name="epoll_create1" number="319" groups="descriptor"/>
+  <syscall name="dup3" number="320" groups="descriptor"/>
+  <syscall name="pipe2" number="321" groups="descriptor"/>
+  <syscall name="inotify_init1" number="322" groups="descriptor"/>
+  <syscall name="accept4" number="323" groups="network"/>
+  <syscall name="preadv" number="324" groups="descriptor"/>
+  <syscall name="pwritev" number="325" groups="descriptor"/>
+  <syscall name="rt_tgsigqueueinfo" number="326" groups="process,signal"/>
+  <syscall name="perf_event_open" number="327" groups="descriptor"/>
+  <syscall name="recvmmsg" number="328" groups="network"/>
 </syscalls_info>
