am 4c85bc4f: Merge "Refresh MIPS GCC 4.7 toolchain with MXU support"

* commit '4c85bc4f0d69b831832cafe77a500130f52b6909':
  Refresh MIPS GCC 4.7 toolchain with MXU support
diff --git a/SOURCES b/SOURCES
index 2f40afc..8f0848a 100644
--- a/SOURCES
+++ b/SOURCES
@@ -1,15 +1,20 @@
-toolchain/build.git              de36c1312eaf8d1b23a8d79244675f395c361e73 Avoid race condition by "make install -j1" in canadian build->target
-toolchain/gmp.git                e6b9669dafc6a5f83c80b4b4176359b78bccdc90 Add gmp-5.0.5.tar.bz2
-toolchain/mpfr.git               bfcf1bfa38469208aaad8873cd4c68781061d90f add mpfr-3.1.1.tar.bz2
-toolchain/mpc.git                835d16e92eed875638a8b5d552034c3b1aae045b add mpc-1.0.1.tar.gz
-toolchain/cloog.git              b522eced5dd70c8536c15f044078498658fb9219 add cloog-0.17.0.tar.gz
-toolchain/ppl.git                8ba1875b4c5341d902321761022a6d2a0b5b19a4 add ppl-1.0.tar.bz2
-toolchain/expat.git              40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5 expat package for building gdb-7.3
-toolchain/binutils.git           8415ff0aaeb157307bb01a45373dba81919882fc Merge "Fix the "DIV usage mismatch between blah.o and output" error"
-toolchain/gcc.git                7f9f4477cbebb22723af8c0fac55aefc1228e02c Fix x86 GCC4.7 segfault in i386.c distance_non_agu_define_in_bb()
-toolchain/gdb.git                87c2a8617d772060c22533ed1626fca7f0649ca0 Merge "Fix default isatized_symbol_value handler"
-toolchain/python.git             88d9000040cfe698e8e32e071880ed8b41e11216 Remove *.info
-toolchain/clang.git (release_32) 9d4223132b17b9f647203b886fe09e7555ab9ab6 Misc fixes
-toolchain/llvm.git (release_32)  9854c4870dfec924c4c2fca0b6d406dc1eff4e32 Fix gnustl-shared-1 unit test failure.
-toolchain/clang.git (release_31) 4ee97488c51806ac044ff5b6c70f07d1be8dc339 Leave -fexception alone since it's enabled by default
-toolchain/llvm.git (release_31)  9e9a074a457f0db61a0f7977bbf5e3c4afebe2e0 Fix canadian build
+toolchain/build.git                    7fea44a379d6700cdfe69bd1f166cad4be955cf7 Replace -march=atom with -march=x86-64 for better host compatibility
+toolchain/gmp.git                      e6b9669dafc6a5f83c80b4b4176359b78bccdc90 Add gmp-5.0.5.tar.bz2
+toolchain/mpfr.git                     bfcf1bfa38469208aaad8873cd4c68781061d90f add mpfr-3.1.1.tar.bz2
+toolchain/mpc.git                      835d16e92eed875638a8b5d552034c3b1aae045b add mpc-1.0.1.tar.gz
+toolchain/cloog.git                    98972d5434ffcb4d11d2c81a46600e9a1cda9110 MinGW-w64 build fix (lacks ffs declaration)
+toolchain/isl.git                      b05d4572958c5d497da793f3317084bab90c3033 add isl-0.11.1.tar.bz2 needed by GCC 4.8 with graphite
+toolchain/ppl.git                      8ba1875b4c5341d902321761022a6d2a0b5b19a4 add ppl-1.0.tar.bz2
+toolchain/expat.git                    40172a0ae9d40a068f1e1a48ffcf6a1ccf765ed5 expat package for building gdb-7.3
+toolchain/binutils.git                 250ab64769fdb34c9ffebb94a8697f503747a2f8 Add MXU support to binutils-2.21/2.22/2.23
+toolchain/gcc.git                      793e263d62bb7f85426899cd7a86e821dd38d12a Add MXU support in gcc4.6/4.7/4.8 with -mmxu
+toolchain/gdb.git                      9c1ebdf15f1a58b25b02c6166885473ede6fcf78 Use ARM software breakpoint for target of 'bx pc'
+toolchain/python.git                   30bef47fac04bd5e99da7d09c8ed4260e1fbf09c Python 2.7.5: Regen configure and pyconfig.h.in
+toolchain/perl.git                     1121daca35c6c692602621eab28d4de19f0b347d Add -Dcc_as_ld to configure
+toolchain/mclinker.git                 ca7133863f4c8f6fd43763746019b1dbf802f4fe Allow mulitple occurrance of --eh-frame-hdr option
+toolchain/clang.git (release_33)       8eb1ed98bd8f0bd623ddd1df7cdf7ef603fa989a Fix le32 linking issue by treating ".bc" as ".o".
+toolchain/llvm.git (release_33)        6230037cce5b6e3d211a69bbe7b814a54c92d609 Fixes for "Shrink binary sizes when cross-compiling."
+toolchain/compiler-rt.git (release_33) 066cd5e4615399f4a70b9abaea699f1b62f394b5 Implement __sync_lock_test_and_set_4.
+toolchain/clang.git (release_32)       b5b990a56f1dbe4ddce609f2c9fad97a3274236a Fix le32 linking issue by treating ".bc" as ".o".
+toolchain/llvm.git (release_32)        7f2325720747cbd3d2aef051af0c416cd395ba4a Fixes for "Shrink binary sizes when cross-compiling."
+toolchain/compiler-rt.git (release_32) bc84109786d158a454d671566721c2d139c3285c Add atomic helper functions for arm.
diff --git a/bin/mipsel-linux-android-as b/bin/mipsel-linux-android-as
index cd9bb72..496904b 100755
--- a/bin/mipsel-linux-android-as
+++ b/bin/mipsel-linux-android-as
Binary files differ
diff --git a/bin/mipsel-linux-android-c++ b/bin/mipsel-linux-android-c++
deleted file mode 100755
index a3fb708..0000000
--- a/bin/mipsel-linux-android-c++
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-linux-android-c++ b/bin/mipsel-linux-android-c++
new file mode 120000
index 0000000..f2fbfac
--- /dev/null
+++ b/bin/mipsel-linux-android-c++
@@ -0,0 +1 @@
+mipsel-linux-android-g++
\ No newline at end of file
diff --git a/bin/mipsel-linux-android-cpp b/bin/mipsel-linux-android-cpp
index d600ca8..f3c6392 100755
--- a/bin/mipsel-linux-android-cpp
+++ b/bin/mipsel-linux-android-cpp
Binary files differ
diff --git a/bin/mipsel-linux-android-g++ b/bin/mipsel-linux-android-g++
index a3fb708..a4f5307 100755
--- a/bin/mipsel-linux-android-g++
+++ b/bin/mipsel-linux-android-g++
Binary files differ
diff --git a/bin/mipsel-linux-android-gcc b/bin/mipsel-linux-android-gcc
index 283f0bb..116fdae 100755
--- a/bin/mipsel-linux-android-gcc
+++ b/bin/mipsel-linux-android-gcc
Binary files differ
diff --git a/bin/mipsel-linux-android-gcc-4.7 b/bin/mipsel-linux-android-gcc-4.7
deleted file mode 100755
index 283f0bb..0000000
--- a/bin/mipsel-linux-android-gcc-4.7
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-linux-android-gcc-4.7 b/bin/mipsel-linux-android-gcc-4.7
new file mode 120000
index 0000000..5150e02
--- /dev/null
+++ b/bin/mipsel-linux-android-gcc-4.7
@@ -0,0 +1 @@
+mipsel-linux-android-gcc
\ No newline at end of file
diff --git a/bin/mipsel-linux-android-gdb b/bin/mipsel-linux-android-gdb
index 0eb4992..22806be 100755
--- a/bin/mipsel-linux-android-gdb
+++ b/bin/mipsel-linux-android-gdb
Binary files differ
diff --git a/bin/mipsel-linux-android-gdbtui b/bin/mipsel-linux-android-gdbtui
deleted file mode 100755
index 7c6ee1c..0000000
--- a/bin/mipsel-linux-android-gdbtui
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-linux-android-ld b/bin/mipsel-linux-android-ld
deleted file mode 100755
index f10485a..0000000
--- a/bin/mipsel-linux-android-ld
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-linux-android-ld b/bin/mipsel-linux-android-ld
new file mode 120000
index 0000000..382b0c3
--- /dev/null
+++ b/bin/mipsel-linux-android-ld
@@ -0,0 +1 @@
+mipsel-linux-android-ld.bfd
\ No newline at end of file
diff --git a/bin/mipsel-linux-android-ld.mcld b/bin/mipsel-linux-android-ld.mcld
new file mode 100755
index 0000000..6ece781
--- /dev/null
+++ b/bin/mipsel-linux-android-ld.mcld
Binary files differ
diff --git a/bin/mipsel-linux-android-objdump b/bin/mipsel-linux-android-objdump
index 5046bea..2dede6f 100755
--- a/bin/mipsel-linux-android-objdump
+++ b/bin/mipsel-linux-android-objdump
Binary files differ
diff --git a/bin/mipsel-linux-android-run b/bin/mipsel-linux-android-run
deleted file mode 100755
index 349c136..0000000
--- a/bin/mipsel-linux-android-run
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/crtbegin.o b/lib/gcc/mipsel-linux-android/4.7/crtbegin.o
index d398e63..d3abf5e 100644
--- a/lib/gcc/mipsel-linux-android/4.7/crtbegin.o
+++ b/lib/gcc/mipsel-linux-android/4.7/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/crtbeginS.o b/lib/gcc/mipsel-linux-android/4.7/crtbeginS.o
index 433cd0e..4e2b20e 100644
--- a/lib/gcc/mipsel-linux-android/4.7/crtbeginS.o
+++ b/lib/gcc/mipsel-linux-android/4.7/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/crtbeginT.o b/lib/gcc/mipsel-linux-android/4.7/crtbeginT.o
index d398e63..d3abf5e 100644
--- a/lib/gcc/mipsel-linux-android/4.7/crtbeginT.o
+++ b/lib/gcc/mipsel-linux-android/4.7/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/libgcc.a b/lib/gcc/mipsel-linux-android/4.7/libgcc.a
index e3f202b..32e0b00 100644
--- a/lib/gcc/mipsel-linux-android/4.7/libgcc.a
+++ b/lib/gcc/mipsel-linux-android/4.7/libgcc.a
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/libgcov.a b/lib/gcc/mipsel-linux-android/4.7/libgcov.a
index 4c331dc..7561111 100644
--- a/lib/gcc/mipsel-linux-android/4.7/libgcov.a
+++ b/lib/gcc/mipsel-linux-android/4.7/libgcov.a
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbegin.o b/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbegin.o
index 9152174..82b87a3 100644
--- a/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbegin.o
+++ b/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbegin.o
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginS.o b/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginS.o
index 0953615..1c7f0d5 100644
--- a/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginS.o
+++ b/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginS.o
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginT.o b/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginT.o
index 9152174..82b87a3 100644
--- a/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginT.o
+++ b/lib/gcc/mipsel-linux-android/4.7/mips-r2/crtbeginT.o
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcc.a b/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcc.a
index 80076a3..4d10be4 100644
--- a/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcc.a
+++ b/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcc.a
Binary files differ
diff --git a/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcov.a b/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcov.a
index 7ad0a4f..94b6233 100644
--- a/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcov.a
+++ b/lib/gcc/mipsel-linux-android/4.7/mips-r2/libgcov.a
Binary files differ
diff --git a/lib/libmipsel-unknown-linux-android-sim.a b/lib/libmipsel-unknown-linux-android-sim.a
index 16913ab..97423fc 100644
--- a/lib/libmipsel-unknown-linux-android-sim.a
+++ b/lib/libmipsel-unknown-linux-android-sim.a
Binary files differ
diff --git a/lib32/libbfd.a b/lib32/libbfd.a
index b95e5ee..ef42428 100644
--- a/lib32/libbfd.a
+++ b/lib32/libbfd.a
Binary files differ
diff --git a/lib32/libiberty.a b/lib32/libiberty.a
index bd0c490..fb0e53a 100644
--- a/lib32/libiberty.a
+++ b/lib32/libiberty.a
Binary files differ
diff --git a/lib32/libintl.a b/lib32/libintl.a
index dfcdce6..8f3df4b 100644
--- a/lib32/libintl.a
+++ b/lib32/libintl.a
Binary files differ
diff --git a/lib64/libiberty.a b/lib64/libiberty.a
index 04fc1e8..08220c7 100644
--- a/lib64/libiberty.a
+++ b/lib64/libiberty.a
Binary files differ
diff --git a/libexec/gcc/mipsel-linux-android/4.7/cc1 b/libexec/gcc/mipsel-linux-android/4.7/cc1
index a51a369..b998c6e 100755
--- a/libexec/gcc/mipsel-linux-android/4.7/cc1
+++ b/libexec/gcc/mipsel-linux-android/4.7/cc1
Binary files differ
diff --git a/libexec/gcc/mipsel-linux-android/4.7/cc1plus b/libexec/gcc/mipsel-linux-android/4.7/cc1plus
index 2f014cf..a39a400 100755
--- a/libexec/gcc/mipsel-linux-android/4.7/cc1plus
+++ b/libexec/gcc/mipsel-linux-android/4.7/cc1plus
Binary files differ
diff --git a/libexec/gcc/mipsel-linux-android/4.7/collect2 b/libexec/gcc/mipsel-linux-android/4.7/collect2
index 0f3ea5e..954e7df 100755
--- a/libexec/gcc/mipsel-linux-android/4.7/collect2
+++ b/libexec/gcc/mipsel-linux-android/4.7/collect2
Binary files differ
diff --git a/libexec/gcc/mipsel-linux-android/4.7/lto-wrapper b/libexec/gcc/mipsel-linux-android/4.7/lto-wrapper
index afd38e0..961fa86 100755
--- a/libexec/gcc/mipsel-linux-android/4.7/lto-wrapper
+++ b/libexec/gcc/mipsel-linux-android/4.7/lto-wrapper
Binary files differ
diff --git a/libexec/gcc/mipsel-linux-android/4.7/lto1 b/libexec/gcc/mipsel-linux-android/4.7/lto1
index c01fa2a..d8f9309 100755
--- a/libexec/gcc/mipsel-linux-android/4.7/lto1
+++ b/libexec/gcc/mipsel-linux-android/4.7/lto1
Binary files differ
diff --git a/mipsel-linux-android/bin/ar b/mipsel-linux-android/bin/ar
deleted file mode 100755
index 5940349..0000000
--- a/mipsel-linux-android/bin/ar
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/ar b/mipsel-linux-android/bin/ar
new file mode 120000
index 0000000..95661f0
--- /dev/null
+++ b/mipsel-linux-android/bin/ar
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-ar
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/as b/mipsel-linux-android/bin/as
deleted file mode 100755
index cd9bb72..0000000
--- a/mipsel-linux-android/bin/as
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/as b/mipsel-linux-android/bin/as
new file mode 120000
index 0000000..684a3ef
--- /dev/null
+++ b/mipsel-linux-android/bin/as
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-as
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/c++ b/mipsel-linux-android/bin/c++
deleted file mode 100755
index a3fb708..0000000
--- a/mipsel-linux-android/bin/c++
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/c++ b/mipsel-linux-android/bin/c++
new file mode 120000
index 0000000..0f3c712
--- /dev/null
+++ b/mipsel-linux-android/bin/c++
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-c++
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/g++ b/mipsel-linux-android/bin/g++
deleted file mode 100755
index a3fb708..0000000
--- a/mipsel-linux-android/bin/g++
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/g++ b/mipsel-linux-android/bin/g++
new file mode 120000
index 0000000..8b0eb4a
--- /dev/null
+++ b/mipsel-linux-android/bin/g++
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-g++
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/gcc b/mipsel-linux-android/bin/gcc
deleted file mode 100755
index 283f0bb..0000000
--- a/mipsel-linux-android/bin/gcc
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/gcc b/mipsel-linux-android/bin/gcc
new file mode 120000
index 0000000..ed3050e
--- /dev/null
+++ b/mipsel-linux-android/bin/gcc
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-gcc
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/ld b/mipsel-linux-android/bin/ld
deleted file mode 100755
index f10485a..0000000
--- a/mipsel-linux-android/bin/ld
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/ld b/mipsel-linux-android/bin/ld
new file mode 120000
index 0000000..195a2ee
--- /dev/null
+++ b/mipsel-linux-android/bin/ld
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-ld
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/ld.bfd b/mipsel-linux-android/bin/ld.bfd
deleted file mode 100755
index f10485a..0000000
--- a/mipsel-linux-android/bin/ld.bfd
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/ld.bfd b/mipsel-linux-android/bin/ld.bfd
new file mode 120000
index 0000000..5a7fbbb
--- /dev/null
+++ b/mipsel-linux-android/bin/ld.bfd
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-ld.bfd
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/ld.mcld b/mipsel-linux-android/bin/ld.mcld
new file mode 120000
index 0000000..a6e8a22
--- /dev/null
+++ b/mipsel-linux-android/bin/ld.mcld
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-ld.mcld
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/nm b/mipsel-linux-android/bin/nm
deleted file mode 100755
index 0cb8601..0000000
--- a/mipsel-linux-android/bin/nm
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/nm b/mipsel-linux-android/bin/nm
new file mode 120000
index 0000000..d8f0d40
--- /dev/null
+++ b/mipsel-linux-android/bin/nm
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-nm
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/objcopy b/mipsel-linux-android/bin/objcopy
deleted file mode 100755
index f6c0431..0000000
--- a/mipsel-linux-android/bin/objcopy
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/objcopy b/mipsel-linux-android/bin/objcopy
new file mode 120000
index 0000000..306b0fd
--- /dev/null
+++ b/mipsel-linux-android/bin/objcopy
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-objcopy
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/objdump b/mipsel-linux-android/bin/objdump
deleted file mode 100755
index 5046bea..0000000
--- a/mipsel-linux-android/bin/objdump
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/objdump b/mipsel-linux-android/bin/objdump
new file mode 120000
index 0000000..846f808
--- /dev/null
+++ b/mipsel-linux-android/bin/objdump
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-objdump
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/ranlib b/mipsel-linux-android/bin/ranlib
deleted file mode 100755
index 638bcea..0000000
--- a/mipsel-linux-android/bin/ranlib
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/ranlib b/mipsel-linux-android/bin/ranlib
new file mode 120000
index 0000000..ab279e3
--- /dev/null
+++ b/mipsel-linux-android/bin/ranlib
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-ranlib
\ No newline at end of file
diff --git a/mipsel-linux-android/bin/strip b/mipsel-linux-android/bin/strip
deleted file mode 100755
index ffcf7f7..0000000
--- a/mipsel-linux-android/bin/strip
+++ /dev/null
Binary files differ
diff --git a/mipsel-linux-android/bin/strip b/mipsel-linux-android/bin/strip
new file mode 120000
index 0000000..7581996
--- /dev/null
+++ b/mipsel-linux-android/bin/strip
@@ -0,0 +1 @@
+../../bin/mipsel-linux-android-strip
\ No newline at end of file
diff --git a/mipsel-linux-android/lib/libgomp.a b/mipsel-linux-android/lib/libgomp.a
index e7b4b8e..e85ef3c 100644
--- a/mipsel-linux-android/lib/libgomp.a
+++ b/mipsel-linux-android/lib/libgomp.a
Binary files differ
diff --git a/mipsel-linux-android/lib/mips-r2/libgomp.a b/mipsel-linux-android/lib/mips-r2/libgomp.a
index 42cac50..fd666c9 100644
--- a/mipsel-linux-android/lib/mips-r2/libgomp.a
+++ b/mipsel-linux-android/lib/mips-r2/libgomp.a
Binary files differ
diff --git a/share/gdb/python/gdb/__init__.py b/share/gdb/python/gdb/__init__.py
new file mode 100644
index 0000000..43975c2
--- /dev/null
+++ b/share/gdb/python/gdb/__init__.py
@@ -0,0 +1,18 @@
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import gdb.command.pretty_printers
+
+gdb.command.pretty_printers.register_pretty_printer_commands()
diff --git a/share/gdb/python/gdb/command/__init__.py b/share/gdb/python/gdb/command/__init__.py
new file mode 100644
index 0000000..ee2b61f
--- /dev/null
+++ b/share/gdb/python/gdb/command/__init__.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
diff --git a/share/gdb/python/gdb/command/pretty_printers.py b/share/gdb/python/gdb/command/pretty_printers.py
new file mode 100644
index 0000000..86923d7
--- /dev/null
+++ b/share/gdb/python/gdb/command/pretty_printers.py
@@ -0,0 +1,370 @@
+# Pretty-printer commands.
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""GDB commands for working with pretty-printers."""
+
+import copy
+import gdb
+import re
+
+
+def parse_printer_regexps(arg):
+    """Internal utility to parse a pretty-printer command argv.
+
+    Arguments:
+        arg: The arguments to the command.  The format is:
+             [object-regexp [name-regexp]].
+             Individual printers in a collection are named as
+             printer-name;subprinter-name.
+
+    Returns:
+        The result is a 3-tuple of compiled regular expressions, except that
+        the resulting compiled subprinter regexp is None if not provided.
+
+    Raises:
+        SyntaxError: an error processing ARG
+    """
+
+    argv = gdb.string_to_argv(arg);
+    argc = len(argv)
+    object_regexp = ""  # match everything
+    name_regexp = ""  # match everything
+    subname_regexp = None
+    if argc > 3:
+        raise SyntaxError("too many arguments")
+    if argc >= 1:
+        object_regexp = argv[0]
+    if argc >= 2:
+        name_subname = argv[1].split(";", 1)
+        name_regexp = name_subname[0]
+        if len(name_subname) == 2:
+            subname_regexp = name_subname[1]
+    # That re.compile raises SyntaxError was determined empirically.
+    # We catch it and reraise it to provide a slightly more useful
+    # error message for the user.
+    try:
+        object_re = re.compile(object_regexp)
+    except SyntaxError:
+        raise SyntaxError("invalid object regexp: %s" % object_regexp)
+    try:
+        name_re = re.compile (name_regexp)
+    except SyntaxError:
+        raise SyntaxError("invalid name regexp: %s" % name_regexp)
+    if subname_regexp is not None:
+        try:
+            subname_re = re.compile(subname_regexp)
+        except SyntaxError:
+            raise SyntaxError("invalid subname regexp: %s" % subname_regexp)
+    else:
+        subname_re = None
+    return(object_re, name_re, subname_re)
+
+
+def printer_enabled_p(printer):
+    """Internal utility to see if printer (or subprinter) is enabled."""
+    if hasattr(printer, "enabled"):
+        return printer.enabled
+    else:
+        return True
+
+
+class InfoPrettyPrinter(gdb.Command):
+    """GDB command to list all registered pretty-printers.
+
+    Usage: info pretty-printer [object-regexp [name-regexp]]
+
+    OBJECT-REGEXP is a regular expression matching the objects to list.
+    Objects are "global", the program space's file, and the objfiles within
+    that program space.
+
+    NAME-REGEXP matches the name of the pretty-printer.
+    Individual printers in a collection are named as
+    printer-name;subprinter-name.
+    """
+
+    def __init__ (self):
+        super(InfoPrettyPrinter, self).__init__("info pretty-printer",
+                                                 gdb.COMMAND_DATA)
+
+    @staticmethod
+    def enabled_string(printer):
+        """Return "" if PRINTER is enabled, otherwise " [disabled]"."""
+        if printer_enabled_p(printer):
+            return ""
+        else:
+            return " [disabled]"
+
+    @staticmethod
+    def printer_name(printer):
+        """Return the printer's name."""
+        if hasattr(printer, "name"):
+            return printer.name
+        if hasattr(printer, "__name__"):
+            return printer.__name__
+        # This "shouldn't happen", but the public API allows for
+        # direct additions to the pretty-printer list, and we shouldn't
+        # crash because someone added a bogus printer.
+        # Plus we want to give the user a way to list unknown printers.
+        return "unknown"
+
+    def list_pretty_printers(self, pretty_printers, name_re, subname_re):
+        """Print a list of pretty-printers."""
+        # A potential enhancement is to provide an option to list printers in
+        # "lookup order" (i.e. unsorted).
+        sorted_pretty_printers = copy.copy(pretty_printers)
+        sorted_pretty_printers.sort(lambda x, y:
+                                        cmp(self.printer_name(x),
+                                            self.printer_name(y)))
+        for printer in sorted_pretty_printers:
+            name = self.printer_name(printer)
+            enabled = self.enabled_string(printer)
+            if name_re.match(name):
+                print "  %s%s" % (name, enabled)
+                if (hasattr(printer, "subprinters") and
+                    printer.subprinters is not None):
+                    sorted_subprinters = copy.copy(printer.subprinters)
+                    sorted_subprinters.sort(lambda x, y:
+                                                cmp(self.printer_name(x),
+                                                    self.printer_name(y)))
+                    for subprinter in sorted_subprinters:
+                        if (not subname_re or
+                            subname_re.match(subprinter.name)):
+                            print ("    %s%s" %
+                                   (subprinter.name,
+                                    self.enabled_string(subprinter)))
+
+    def invoke1(self, title, printer_list,
+                obj_name_to_match, object_re, name_re, subname_re):
+        """"Subroutine of invoke to simplify it."""
+        if printer_list and object_re.match(obj_name_to_match):
+            print title
+            self.list_pretty_printers(printer_list, name_re, subname_re)
+
+    def invoke(self, arg, from_tty):
+        """GDB calls this to perform the command."""
+        (object_re, name_re, subname_re) = parse_printer_regexps(arg)
+        self.invoke1("global pretty-printers:", gdb.pretty_printers,
+                     "global", object_re, name_re, subname_re)
+        cp = gdb.current_progspace()
+        self.invoke1("progspace %s pretty-printers:" % cp.filename,
+                     cp.pretty_printers, "progspace",
+                     object_re, name_re, subname_re)
+        for objfile in gdb.objfiles():
+            self.invoke1("  objfile %s pretty-printers:" % objfile.filename,
+                         objfile.pretty_printers, objfile.filename,
+                         object_re, name_re, subname_re)
+
+
+def count_enabled_printers(pretty_printers):
+    """Return a 2-tuple of number of enabled and total printers."""
+    enabled = 0
+    total = 0
+    for printer in pretty_printers:
+        if (hasattr(printer, "subprinters")
+            and printer.subprinters is not None):
+            if printer_enabled_p(printer):
+                for subprinter in printer.subprinters:
+                    if printer_enabled_p(subprinter):
+                        enabled += 1
+            total += len(printer.subprinters)
+        else:
+            if printer_enabled_p(printer):
+                enabled += 1
+            total += 1
+    return (enabled, total)
+
+
+def count_all_enabled_printers():
+    """Return a 2-tuble of the enabled state and total number of all printers.
+    This includes subprinters.
+    """
+    enabled_count = 0
+    total_count = 0
+    (t_enabled, t_total) = count_enabled_printers(gdb.pretty_printers)
+    enabled_count += t_enabled
+    total_count += t_total
+    (t_enabled, t_total) = count_enabled_printers(gdb.current_progspace().pretty_printers)
+    enabled_count += t_enabled
+    total_count += t_total
+    for objfile in gdb.objfiles():
+        (t_enabled, t_total) = count_enabled_printers(objfile.pretty_printers)
+        enabled_count += t_enabled
+        total_count += t_total
+    return (enabled_count, total_count)
+
+
+def pluralize(text, n, suffix="s"):
+    """Return TEXT pluralized if N != 1."""
+    if n != 1:
+        return "%s%s" % (text, suffix)
+    else:
+        return text
+
+
+def show_pretty_printer_enabled_summary():
+    """Print the number of printers enabled/disabled.
+    We count subprinters individually.
+    """
+    (enabled_count, total_count) = count_all_enabled_printers()
+    print "%d of %d printers enabled" % (enabled_count, total_count)
+
+
+def do_enable_pretty_printer_1 (pretty_printers, name_re, subname_re, flag):
+    """Worker for enabling/disabling pretty-printers.
+
+    Arguments:
+        pretty_printers: list of pretty-printers
+        name_re: regular-expression object to select printers
+        subname_re: regular expression object to select subprinters or None
+                    if all are affected
+        flag: True for Enable, False for Disable
+
+    Returns:
+        The number of printers affected.
+        This is just for informational purposes for the user.
+    """
+    total = 0
+    for printer in pretty_printers:
+        if (hasattr(printer, "name") and name_re.match(printer.name) or
+            hasattr(printer, "__name__") and name_re.match(printer.__name__)):
+            if (hasattr(printer, "subprinters") and
+                printer.subprinters is not None):
+                if not subname_re:
+                    # Only record printers that change state.
+                    if printer_enabled_p(printer) != flag:
+                        for subprinter in printer.subprinters:
+                            if printer_enabled_p(subprinter):
+                                total += 1
+                    # NOTE: We preserve individual subprinter settings.
+                    printer.enabled = flag
+                else:
+                    # NOTE: Whether this actually disables the subprinter
+                    # depends on whether the printer's lookup function supports
+                    # the "enable" API.  We can only assume it does.
+                    for subprinter in printer.subprinters:
+                        if subname_re.match(subprinter.name):
+                            # Only record printers that change state.
+                           if (printer_enabled_p(printer) and
+                               printer_enabled_p(subprinter) != flag):
+                               total += 1
+                           subprinter.enabled = flag
+            else:
+                # This printer has no subprinters.
+                # If the user does "disable pretty-printer .* .* foo"
+                # should we disable printers that don't have subprinters?
+                # How do we apply "foo" in this context?  Since there is no
+                # "foo" subprinter it feels like we should skip this printer.
+                # There's still the issue of how to handle
+                # "disable pretty-printer .* .* .*", and every other variation
+                # that can match everything.  For now punt and only support
+                # "disable pretty-printer .* .*" (i.e. subname is elided)
+                # to disable everything.
+                if not subname_re:
+                    # Only record printers that change state.
+                    if printer_enabled_p(printer) != flag:
+                        total += 1
+                    printer.enabled = flag
+    return total
+
+
+def do_enable_pretty_printer (arg, flag):
+    """Internal worker for enabling/disabling pretty-printers."""
+    (object_re, name_re, subname_re) = parse_printer_regexps(arg)
+
+    total = 0
+    if object_re.match("global"):
+        total += do_enable_pretty_printer_1(gdb.pretty_printers,
+                                            name_re, subname_re, flag)
+    cp = gdb.current_progspace()
+    if object_re.match("progspace"):
+        total += do_enable_pretty_printer_1(cp.pretty_printers,
+                                            name_re, subname_re, flag)
+    for objfile in gdb.objfiles():
+        if object_re.match(objfile.filename):
+            total += do_enable_pretty_printer_1(objfile.pretty_printers,
+                                                name_re, subname_re, flag)
+
+    if flag:
+        state = "enabled"
+    else:
+        state = "disabled"
+    print "%d %s %s" % (total, pluralize("printer", total), state)
+
+    # Print the total list of printers currently enabled/disabled.
+    # This is to further assist the user in determining whether the result
+    # is expected.  Since we use regexps to select it's useful.
+    show_pretty_printer_enabled_summary()
+
+
+# Enable/Disable one or more pretty-printers.
+#
+# This is intended for use when a broken pretty-printer is shipped/installed
+# and the user wants to disable that printer without disabling all the other
+# printers.
+#
+# A useful addition would be -v (verbose) to show each printer affected.
+
+class EnablePrettyPrinter (gdb.Command):
+    """GDB command to enable the specified pretty-printer.
+
+    Usage: enable pretty-printer [object-regexp [name-regexp]]
+
+    OBJECT-REGEXP is a regular expression matching the objects to examine.
+    Objects are "global", the program space's file, and the objfiles within
+    that program space.
+
+    NAME-REGEXP matches the name of the pretty-printer.
+    Individual printers in a collection are named as
+    printer-name;subprinter-name.
+    """
+
+    def __init__(self):
+        super(EnablePrettyPrinter, self).__init__("enable pretty-printer",
+                                                   gdb.COMMAND_DATA)
+
+    def invoke(self, arg, from_tty):
+        """GDB calls this to perform the command."""
+        do_enable_pretty_printer(arg, True)
+
+
+class DisablePrettyPrinter (gdb.Command):
+    """GDB command to disable the specified pretty-printer.
+
+    Usage: disable pretty-printer [object-regexp [name-regexp]]
+
+    OBJECT-REGEXP is a regular expression matching the objects to examine.
+    Objects are "global", the program space's file, and the objfiles within
+    that program space.
+
+    NAME-REGEXP matches the name of the pretty-printer.
+    Individual printers in a collection are named as
+    printer-name;subprinter-name.
+    """
+
+    def __init__(self):
+        super(DisablePrettyPrinter, self).__init__("disable pretty-printer",
+                                                   gdb.COMMAND_DATA)
+
+    def invoke(self, arg, from_tty):
+        """GDB calls this to perform the command."""
+        do_enable_pretty_printer(arg, False)
+
+
+def register_pretty_printer_commands():
+    """Call from a top level script to install the pretty-printer commands."""
+    InfoPrettyPrinter()
+    EnablePrettyPrinter()
+    DisablePrettyPrinter()
diff --git a/share/gdb/python/gdb/printing.py b/share/gdb/python/gdb/printing.py
new file mode 100644
index 0000000..a030827
--- /dev/null
+++ b/share/gdb/python/gdb/printing.py
@@ -0,0 +1,208 @@
+# Pretty-printer utilities.
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""Utilities for working with pretty-printers."""
+
+import gdb
+import gdb.types
+import re
+
+
+class PrettyPrinter(object):
+    """A basic pretty-printer.
+
+    Attributes:
+        name: A unique string among all printers for the context in which
+            it is defined (objfile, progspace, or global(gdb)), and should
+            meaningfully describe what can be pretty-printed.
+            E.g., "StringPiece" or "protobufs".
+        subprinters: An iterable object with each element having a `name'
+            attribute, and, potentially, "enabled" attribute.
+            Or this is None if there are no subprinters.
+        enabled: A boolean indicating if the printer is enabled.
+
+    Subprinters are for situations where "one" pretty-printer is actually a
+    collection of several printers.  E.g., The libstdc++ pretty-printer has
+    a pretty-printer for each of several different types, based on regexps.
+    """
+
+    # While one might want to push subprinters into the subclass, it's
+    # present here to formalize such support to simplify
+    # commands/pretty_printers.py.
+
+    def __init__(self, name, subprinters=None):
+        self.name = name
+        self.subprinters = subprinters
+        self.enabled = True
+
+    def __call__(self, val):
+        # The subclass must define this.
+        raise NotImplementedError("PrettyPrinter __call__")
+
+
+class SubPrettyPrinter(object):
+    """Baseclass for sub-pretty-printers.
+
+    Sub-pretty-printers needn't use this, but it formalizes what's needed.
+
+    Attributes:
+        name: The name of the subprinter.
+        enabled: A boolean indicating if the subprinter is enabled.
+    """
+
+    def __init__(self, name):
+        self.name = name
+        self.enabled = True
+
+
+def register_pretty_printer(obj, printer, replace=False):
+    """Register pretty-printer PRINTER with OBJ.
+
+    The printer is added to the front of the search list, thus one can override
+    an existing printer if one needs to.  Use a different name when overriding
+    an existing printer, otherwise an exception will be raised; multiple
+    printers with the same name are disallowed.
+
+    Arguments:
+        obj: Either an objfile, progspace, or None (in which case the printer
+            is registered globally).
+        printer: Either a function of one argument (old way) or any object
+            which has attributes: name, enabled, __call__.
+        replace: If True replace any existing copy of the printer.
+            Otherwise if the printer already exists raise an exception.
+
+    Returns:
+        Nothing.
+
+    Raises:
+        TypeError: A problem with the type of the printer.
+        ValueError: The printer's name contains a semicolon ";".
+        RuntimeError: A printer with the same name is already registered.
+
+    If the caller wants the printer to be listable and disableable, it must
+    follow the PrettyPrinter API.  This applies to the old way (functions) too.
+    If printer is an object, __call__ is a method of two arguments:
+    self, and the value to be pretty-printed.  See PrettyPrinter.
+    """
+
+    # Watch for both __name__ and name.
+    # Functions get the former for free, but we don't want to use an
+    # attribute named __foo__ for pretty-printers-as-objects.
+    # If printer has both, we use `name'.
+    if not hasattr(printer, "__name__") and not hasattr(printer, "name"):
+        raise TypeError("printer missing attribute: name")
+    if hasattr(printer, "name") and not hasattr(printer, "enabled"):
+        raise TypeError("printer missing attribute: enabled") 
+    if not hasattr(printer, "__call__"):
+        raise TypeError("printer missing attribute: __call__")
+
+    if obj is None:
+        if gdb.parameter("verbose"):
+            gdb.write("Registering global %s pretty-printer ...\n" % name)
+        obj = gdb
+    else:
+        if gdb.parameter("verbose"):
+            gdb.write("Registering %s pretty-printer for %s ...\n" %
+                      (printer.name, obj.filename))
+
+    if hasattr(printer, "name"):
+        if not isinstance(printer.name, basestring):
+            raise TypeError("printer name is not a string")
+        # If printer provides a name, make sure it doesn't contain ";".
+        # Semicolon is used by the info/enable/disable pretty-printer commands
+        # to delimit subprinters.
+        if printer.name.find(";") >= 0:
+            raise ValueError("semicolon ';' in printer name")
+        # Also make sure the name is unique.
+        # Alas, we can't do the same for functions and __name__, they could
+        # all have a canonical name like "lookup_function".
+        # PERF: gdb records printers in a list, making this inefficient.
+        i = 0
+        for p in obj.pretty_printers:
+            if hasattr(p, "name") and p.name == printer.name:
+                if replace:
+                    del obj.pretty_printers[i]
+                    break
+                else:
+                  raise RuntimeError("pretty-printer already registered: %s" %
+                                     printer.name)
+            i = i + 1
+
+    obj.pretty_printers.insert(0, printer)
+
+
+class RegexpCollectionPrettyPrinter(PrettyPrinter):
+    """Class for implementing a collection of regular-expression based pretty-printers.
+
+    Intended usage:
+
+    pretty_printer = RegexpCollectionPrettyPrinter("my_library")
+    pretty_printer.add_printer("myclass1", "^myclass1$", MyClass1Printer)
+    ...
+    pretty_printer.add_printer("myclassN", "^myclassN$", MyClassNPrinter)
+    register_pretty_printer(obj, pretty_printer)
+    """
+
+    class RegexpSubprinter(SubPrettyPrinter):
+        def __init__(self, name, regexp, gen_printer):
+            super(RegexpCollectionPrettyPrinter.RegexpSubprinter, self).__init__(name)
+            self.regexp = regexp
+            self.gen_printer = gen_printer
+            self.compiled_re = re.compile(regexp)
+
+    def __init__(self, name):
+        super(RegexpCollectionPrettyPrinter, self).__init__(name, [])
+
+    def add_printer(self, name, regexp, gen_printer):
+        """Add a printer to the list.
+
+        The printer is added to the end of the list.
+
+        Arguments:
+            name: The name of the subprinter.
+            regexp: The regular expression, as a string.
+            gen_printer: A function/method that given a value returns an
+                object to pretty-print it.
+
+        Returns:
+            Nothing.
+        """
+
+        # NOTE: A previous version made the name of each printer the regexp.
+        # That makes it awkward to pass to the enable/disable commands (it's
+        # cumbersome to make a regexp of a regexp).  So now the name is a
+        # separate parameter.
+
+        self.subprinters.append(self.RegexpSubprinter(name, regexp,
+                                                      gen_printer))
+
+    def __call__(self, val):
+        """Lookup the pretty-printer for the provided value."""
+
+        # Get the type name.
+        typename = gdb.types.get_basic_type(val.type).tag
+        if not typename:
+            return None
+
+        # Iterate over table of type regexps to determine
+        # if a printer is registered for that type.
+        # Return an instantiation of the printer if found.
+        for printer in self.subprinters:
+            if printer.enabled and printer.compiled_re.search(typename):
+                return printer.gen_printer(val)
+
+        # Cannot find a pretty printer.  Return None.
+        return None
diff --git a/share/gdb/python/gdb/types.py b/share/gdb/python/gdb/types.py
new file mode 100644
index 0000000..54fbe3c
--- /dev/null
+++ b/share/gdb/python/gdb/types.py
@@ -0,0 +1,91 @@
+# Type utilities.
+# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""Utilities for working with gdb.Types."""
+
+import gdb
+
+
+def get_basic_type(type_):
+    """Return the "basic" type of a type.
+
+    Arguments:
+        type_: The type to reduce to its basic type.
+
+    Returns:
+        type_ with const/volatile is stripped away,
+        and typedefs/references converted to the underlying type.
+    """
+
+    while (type_.code == gdb.TYPE_CODE_REF or
+           type_.code == gdb.TYPE_CODE_TYPEDEF):
+        if type_.code == gdb.TYPE_CODE_REF:
+            type_ = type_.target()
+        else:
+            type_ = type_.strip_typedefs()
+    return type_.unqualified()
+
+
+def has_field(type_, field):
+    """Return True if a type has the specified field.
+
+    Arguments:
+        type_: The type to examine.
+            It must be one of gdb.TYPE_CODE_STRUCT, gdb.TYPE_CODE_UNION.
+        field: The name of the field to look up.
+
+    Returns:
+        True if the field is present either in type_ or any baseclass.
+
+    Raises:
+        TypeError: The type is not a struct or union.
+    """
+
+    type_ = get_basic_type(type_)
+    if (type_.code != gdb.TYPE_CODE_STRUCT and
+        type_.code != gdb.TYPE_CODE_UNION):
+        raise TypeError("not a struct or union")
+    for f in type_.fields():
+        if f.is_base_class:
+            if has_field(f.type, field):
+                return True
+        else:
+            # NOTE: f.name could be None
+            if f.name == field:
+                return True
+    return False
+
+
+def make_enum_dict(enum_type):
+    """Return a dictionary from a program's enum type.
+
+    Arguments:
+        enum_type: The enum to compute the dictionary for.
+
+    Returns:
+        The dictionary of the enum.
+
+    Raises:
+        TypeError: The type is not an enum.
+    """
+
+    if enum_type.code != gdb.TYPE_CODE_ENUM:
+        raise TypeError("not an enum type")
+    enum_dict = {}
+    for field in enum_type.fields():
+        # The enum's value is stored in "bitpos".
+        enum_dict[field.name] = field.bitpos
+    return enum_dict
diff --git a/share/gdb/syscalls/amd64-linux.xml b/share/gdb/syscalls/amd64-linux.xml
new file mode 100644
index 0000000..ee0ea6d
--- /dev/null
+++ b/share/gdb/syscalls/amd64-linux.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009, 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/x86/include/asm/unistd_64.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<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="pread64" number="17"/>
+  <syscall name="pwrite64" 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="umount2" 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="accept4" 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"/>
+  <syscall name="preadv" number="295"/>
+  <syscall name="pwritev" number="296"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/gdb-syscalls.dtd b/share/gdb/syscalls/gdb-syscalls.dtd
new file mode 100644
index 0000000..0735ecd
--- /dev/null
+++ b/share/gdb/syscalls/gdb-syscalls.dtd
@@ -0,0 +1,14 @@
+<!-- Copyright (C) 2009, 2011 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.  -->
+
+<!-- The root element of a syscall info is <syscalls-info>.  -->
+
+<!ELEMENT syscalls-info		(syscall*)>
+
+<!ELEMENT syscall		EMPTY>
+<!ATTLIST syscall
+	name			CDATA	#REQUIRED
+	number			CDATA	#REQUIRED>
diff --git a/share/gdb/syscalls/i386-linux.xml b/share/gdb/syscalls/i386-linux.xml
new file mode 100644
index 0000000..3cb1251
--- /dev/null
+++ b/share/gdb/syscalls/i386-linux.xml
@@ -0,0 +1,340 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009, 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/x86/include/asm/unistd_32.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<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="waitpid" number="7"/>
+  <syscall name="creat" number="8"/>
+  <syscall name="link" number="9"/>
+  <syscall name="unlink" number="10"/>
+  <syscall name="execve" number="11"/>
+  <syscall name="chdir" number="12"/>
+  <syscall name="time" number="13"/>
+  <syscall name="mknod" number="14"/>
+  <syscall name="chmod" number="15"/>
+  <syscall name="lchown" number="16"/>
+  <syscall name="break" number="17"/>
+  <syscall name="oldstat" number="18"/>
+  <syscall name="lseek" number="19"/>
+  <syscall name="getpid" number="20"/>
+  <syscall name="mount" number="21"/>
+  <syscall name="umount" number="22"/>
+  <syscall name="setuid" number="23"/>
+  <syscall name="getuid" number="24"/>
+  <syscall name="stime" number="25"/>
+  <syscall name="ptrace" number="26"/>
+  <syscall name="alarm" number="27"/>
+  <syscall name="oldfstat" number="28"/>
+  <syscall name="pause" number="29"/>
+  <syscall name="utime" number="30"/>
+  <syscall name="stty" number="31"/>
+  <syscall name="gtty" number="32"/>
+  <syscall name="access" number="33"/>
+  <syscall name="nice" number="34"/>
+  <syscall name="ftime" number="35"/>
+  <syscall name="sync" number="36"/>
+  <syscall name="kill" number="37"/>
+  <syscall name="rename" number="38"/>
+  <syscall name="mkdir" number="39"/>
+  <syscall name="rmdir" number="40"/>
+  <syscall name="dup" number="41"/>
+  <syscall name="pipe" number="42"/>
+  <syscall name="times" number="43"/>
+  <syscall name="prof" number="44"/>
+  <syscall name="brk" number="45"/>
+  <syscall name="setgid" number="46"/>
+  <syscall name="getgid" number="47"/>
+  <syscall name="signal" number="48"/>
+  <syscall name="geteuid" number="49"/>
+  <syscall name="getegid" number="50"/>
+  <syscall name="acct" number="51"/>
+  <syscall name="umount2" number="52"/>
+  <syscall name="lock" number="53"/>
+  <syscall name="ioctl" number="54"/>
+  <syscall name="fcntl" number="55"/>
+  <syscall name="mpx" number="56"/>
+  <syscall name="setpgid" number="57"/>
+  <syscall name="ulimit" number="58"/>
+  <syscall name="oldolduname" number="59"/>
+  <syscall name="umask" number="60"/>
+  <syscall name="chroot" number="61"/>
+  <syscall name="ustat" number="62"/>
+  <syscall name="dup2" number="63"/>
+  <syscall name="getppid" number="64"/>
+  <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="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="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="symlink" number="83"/>
+  <syscall name="oldlstat" number="84"/>
+  <syscall name="readlink" number="85"/>
+  <syscall name="uselib" number="86"/>
+  <syscall name="swapon" number="87"/>
+  <syscall name="reboot" number="88"/>
+  <syscall name="readdir" number="89"/>
+  <syscall name="mmap" number="90"/>
+  <syscall name="munmap" number="91"/>
+  <syscall name="truncate" number="92"/>
+  <syscall name="ftruncate" number="93"/>
+  <syscall name="fchmod" number="94"/>
+  <syscall name="fchown" number="95"/>
+  <syscall name="getpriority" number="96"/>
+  <syscall name="setpriority" number="97"/>
+  <syscall name="profil" number="98"/>
+  <syscall name="statfs" number="99"/>
+  <syscall name="fstatfs" number="100"/>
+  <syscall name="ioperm" number="101"/>
+  <syscall name="socketcall" number="102"/>
+  <syscall name="syslog" number="103"/>
+  <syscall name="setitimer" number="104"/>
+  <syscall name="getitimer" number="105"/>
+  <syscall name="stat" number="106"/>
+  <syscall name="lstat" number="107"/>
+  <syscall name="fstat" number="108"/>
+  <syscall name="olduname" number="109"/>
+  <syscall name="iopl" number="110"/>
+  <syscall name="vhangup" number="111"/>
+  <syscall name="idle" number="112"/>
+  <syscall name="vm86old" number="113"/>
+  <syscall name="wait4" number="114"/>
+  <syscall name="swapoff" number="115"/>
+  <syscall name="sysinfo" number="116"/>
+  <syscall name="ipc" number="117"/>
+  <syscall name="fsync" number="118"/>
+  <syscall name="sigreturn" number="119"/>
+  <syscall name="clone" number="120"/>
+  <syscall name="setdomainname" number="121"/>
+  <syscall name="uname" number="122"/>
+  <syscall name="modify_ldt" number="123"/>
+  <syscall name="adjtimex" number="124"/>
+  <syscall name="mprotect" number="125"/>
+  <syscall name="sigprocmask" number="126"/>
+  <syscall name="create_module" number="127"/>
+  <syscall name="init_module" number="128"/>
+  <syscall name="delete_module" number="129"/>
+  <syscall name="get_kernel_syms" number="130"/>
+  <syscall name="quotactl" number="131"/>
+  <syscall name="getpgid" number="132"/>
+  <syscall name="fchdir" number="133"/>
+  <syscall name="bdflush" number="134"/>
+  <syscall name="sysfs" number="135"/>
+  <syscall name="personality" number="136"/>
+  <syscall name="afs_syscall" number="137"/>
+  <syscall name="setfsuid" number="138"/>
+  <syscall name="setfsgid" number="139"/>
+  <syscall name="_llseek" number="140"/>
+  <syscall name="getdents" number="141"/>
+  <syscall name="_newselect" number="142"/>
+  <syscall name="flock" number="143"/>
+  <syscall name="msync" number="144"/>
+  <syscall name="readv" number="145"/>
+  <syscall name="writev" number="146"/>
+  <syscall name="getsid" number="147"/>
+  <syscall name="fdatasync" number="148"/>
+  <syscall name="_sysctl" number="149"/>
+  <syscall name="mlock" number="150"/>
+  <syscall name="munlock" number="151"/>
+  <syscall name="mlockall" number="152"/>
+  <syscall name="munlockall" number="153"/>
+  <syscall name="sched_setparam" number="154"/>
+  <syscall name="sched_getparam" number="155"/>
+  <syscall name="sched_setscheduler" number="156"/>
+  <syscall name="sched_getscheduler" number="157"/>
+  <syscall name="sched_yield" number="158"/>
+  <syscall name="sched_get_priority_max" number="159"/>
+  <syscall name="sched_get_priority_min" number="160"/>
+  <syscall name="sched_rr_get_interval" number="161"/>
+  <syscall name="nanosleep" number="162"/>
+  <syscall name="mremap" number="163"/>
+  <syscall name="setresuid" number="164"/>
+  <syscall name="getresuid" number="165"/>
+  <syscall name="vm86" number="166"/>
+  <syscall name="query_module" number="167"/>
+  <syscall name="poll" number="168"/>
+  <syscall name="nfsservctl" number="169"/>
+  <syscall name="setresgid" number="170"/>
+  <syscall name="getresgid" number="171"/>
+  <syscall name="prctl" number="172"/>
+  <syscall name="rt_sigreturn" number="173"/>
+  <syscall name="rt_sigaction" number="174"/>
+  <syscall name="rt_sigprocmask" number="175"/>
+  <syscall name="rt_sigpending" number="176"/>
+  <syscall name="rt_sigtimedwait" number="177"/>
+  <syscall name="rt_sigqueueinfo" number="178"/>
+  <syscall name="rt_sigsuspend" number="179"/>
+  <syscall name="pread64" number="180"/>
+  <syscall name="pwrite64" number="181"/>
+  <syscall name="chown" number="182"/>
+  <syscall name="getcwd" number="183"/>
+  <syscall name="capget" number="184"/>
+  <syscall name="capset" number="185"/>
+  <syscall name="sigaltstack" number="186"/>
+  <syscall name="sendfile" number="187"/>
+  <syscall name="getpmsg" number="188"/>
+  <syscall name="putpmsg" number="189"/>
+  <syscall name="vfork" number="190"/>
+  <syscall name="ugetrlimit" number="191"/>
+  <syscall name="mmap2" number="192"/>
+  <syscall name="truncate64" number="193"/>
+  <syscall name="ftruncate64" number="194"/>
+  <syscall name="stat64" number="195"/>
+  <syscall name="lstat64" number="196"/>
+  <syscall name="fstat64" number="197"/>
+  <syscall name="lchown32" number="198"/>
+  <syscall name="getuid32" number="199"/>
+  <syscall name="getgid32" number="200"/>
+  <syscall name="geteuid32" number="201"/>
+  <syscall name="getegid32" number="202"/>
+  <syscall name="setreuid32" number="203"/>
+  <syscall name="setregid32" number="204"/>
+  <syscall name="getgroups32" number="205"/>
+  <syscall name="setgroups32" number="206"/>
+  <syscall name="fchown32" number="207"/>
+  <syscall name="setresuid32" number="208"/>
+  <syscall name="getresuid32" number="209"/>
+  <syscall name="setresgid32" number="210"/>
+  <syscall name="getresgid32" number="211"/>
+  <syscall name="chown32" number="212"/>
+  <syscall name="setuid32" number="213"/>
+  <syscall name="setgid32" number="214"/>
+  <syscall name="setfsuid32" number="215"/>
+  <syscall name="setfsgid32" number="216"/>
+  <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="gettid" number="224"/>
+  <syscall name="readahead" number="225"/>
+  <syscall name="setxattr" number="226"/>
+  <syscall name="lsetxattr" number="227"/>
+  <syscall name="fsetxattr" number="228"/>
+  <syscall name="getxattr" number="229"/>
+  <syscall name="lgetxattr" number="230"/>
+  <syscall name="fgetxattr" number="231"/>
+  <syscall name="listxattr" number="232"/>
+  <syscall name="llistxattr" number="233"/>
+  <syscall name="flistxattr" number="234"/>
+  <syscall name="removexattr" number="235"/>
+  <syscall name="lremovexattr" number="236"/>
+  <syscall name="fremovexattr" number="237"/>
+  <syscall name="tkill" number="238"/>
+  <syscall name="sendfile64" number="239"/>
+  <syscall name="futex" number="240"/>
+  <syscall name="sched_setaffinity" number="241"/>
+  <syscall name="sched_getaffinity" number="242"/>
+  <syscall name="set_thread_area" number="243"/>
+  <syscall name="get_thread_area" number="244"/>
+  <syscall name="io_setup" number="245"/>
+  <syscall name="io_destroy" number="246"/>
+  <syscall name="io_getevents" number="247"/>
+  <syscall name="io_submit" number="248"/>
+  <syscall name="io_cancel" number="249"/>
+  <syscall name="fadvise64" number="250"/>
+  <syscall name="exit_group" number="252"/>
+  <syscall name="lookup_dcookie" number="253"/>
+  <syscall name="epoll_create" number="254"/>
+  <syscall name="epoll_ctl" number="255"/>
+  <syscall name="epoll_wait" number="256"/>
+  <syscall name="remap_file_pages" number="257"/>
+  <syscall name="set_tid_address" number="258"/>
+  <syscall name="timer_create" number="259"/>
+  <syscall name="timer_settime" number="260"/>
+  <syscall name="timer_gettime" number="261"/>
+  <syscall name="timer_getoverrun" number="262"/>
+  <syscall name="timer_delete" number="263"/>
+  <syscall name="clock_settime" number="264"/>
+  <syscall name="clock_gettime" number="265"/>
+  <syscall name="clock_getres" number="266"/>
+  <syscall name="clock_nanosleep" number="267"/>
+  <syscall name="statfs64" number="268"/>
+  <syscall name="fstatfs64" number="269"/>
+  <syscall name="tgkill" number="270"/>
+  <syscall name="utimes" number="271"/>
+  <syscall name="fadvise64_64" number="272"/>
+  <syscall name="vserver" number="273"/>
+  <syscall name="mbind" number="274"/>
+  <syscall name="get_mempolicy" number="275"/>
+  <syscall name="set_mempolicy" number="276"/>
+  <syscall name="mq_open" number="277"/>
+  <syscall name="mq_unlink" number="278"/>
+  <syscall name="mq_timedsend" number="279"/>
+  <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="waitid" number="284"/>
+  <syscall name="add_key" number="286"/>
+  <syscall name="request_key" number="287"/>
+  <syscall name="keyctl" number="288"/>
+  <syscall name="ioprio_set" number="289"/>
+  <syscall name="ioprio_get" number="290"/>
+  <syscall name="inotify_init" number="291"/>
+  <syscall name="inotify_add_watch" number="292"/>
+  <syscall name="inotify_rm_watch" number="293"/>
+  <syscall name="migrate_pages" number="294"/>
+  <syscall name="openat" number="295"/>
+  <syscall name="mkdirat" number="296"/>
+  <syscall name="mknodat" number="297"/>
+  <syscall name="fchownat" number="298"/>
+  <syscall name="futimesat" number="299"/>
+  <syscall name="fstatat64" number="300"/>
+  <syscall name="unlinkat" number="301"/>
+  <syscall name="renameat" number="302"/>
+  <syscall name="linkat" number="303"/>
+  <syscall name="symlinkat" number="304"/>
+  <syscall name="readlinkat" number="305"/>
+  <syscall name="fchmodat" number="306"/>
+  <syscall name="faccessat" number="307"/>
+  <syscall name="pselect6" number="308"/>
+  <syscall name="ppoll" number="309"/>
+  <syscall name="unshare" number="310"/>
+  <syscall name="set_robust_list" number="311"/>
+  <syscall name="get_robust_list" number="312"/>
+  <syscall name="splice" number="313"/>
+  <syscall name="sync_file_range" number="314"/>
+  <syscall name="tee" number="315"/>
+  <syscall name="vmsplice" number="316"/>
+  <syscall name="move_pages" number="317"/>
+  <syscall name="getcpu" number="318"/>
+  <syscall name="epoll_pwait" number="319"/>
+  <syscall name="utimensat" number="320"/>
+  <syscall name="signalfd" number="321"/>
+  <syscall name="timerfd_create" number="322"/>
+  <syscall name="eventfd" number="323"/>
+  <syscall name="fallocate" number="324"/>
+  <syscall name="timerfd_settime" number="325"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/mips-n32-linux.xml b/share/gdb/syscalls/mips-n32-linux.xml
new file mode 100644
index 0000000..da4aba2
--- /dev/null
+++ b/share/gdb/syscalls/mips-n32-linux.xml
@@ -0,0 +1,319 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<syscalls_info>
+  <syscall name="read" number="6000"/>
+  <syscall name="write" number="6001"/>
+  <syscall name="open" number="6002"/>
+  <syscall name="close" number="6003"/>
+  <syscall name="stat" number="6004"/>
+  <syscall name="fstat" number="6005"/>
+  <syscall name="lstat" number="6006"/>
+  <syscall name="poll" number="6007"/>
+  <syscall name="lseek" number="6008"/>
+  <syscall name="mmap" number="6009"/>
+  <syscall name="mprotect" number="6010"/>
+  <syscall name="munmap" number="6011"/>
+  <syscall name="brk" number="6012"/>
+  <syscall name="rt_sigaction" number="6013"/>
+  <syscall name="rt_sigprocmask" number="6014"/>
+  <syscall name="ioctl" number="6015"/>
+  <syscall name="pread64" number="6016"/>
+  <syscall name="pwrite64" number="6017"/>
+  <syscall name="readv" number="6018"/>
+  <syscall name="writev" number="6019"/>
+  <syscall name="access" number="6020"/>
+  <syscall name="pipe" number="6021"/>
+  <syscall name="_newselect" number="6022"/>
+  <syscall name="sched_yield" number="6023"/>
+  <syscall name="mremap" number="6024"/>
+  <syscall name="msync" number="6025"/>
+  <syscall name="mincore" number="6026"/>
+  <syscall name="madvise" number="6027"/>
+  <syscall name="shmget" number="6028"/>
+  <syscall name="shmat" number="6029"/>
+  <syscall name="shmctl" number="6030"/>
+  <syscall name="dup" number="6031"/>
+  <syscall name="dup2" number="6032"/>
+  <syscall name="pause" number="6033"/>
+  <syscall name="nanosleep" number="6034"/>
+  <syscall name="getitimer" number="6035"/>
+  <syscall name="setitimer" number="6036"/>
+  <syscall name="alarm" number="6037"/>
+  <syscall name="getpid" number="6038"/>
+  <syscall name="sendfile" number="6039"/>
+  <syscall name="socket" number="6040"/>
+  <syscall name="connect" number="6041"/>
+  <syscall name="accept" number="6042"/>
+  <syscall name="sendto" number="6043"/>
+  <syscall name="recvfrom" number="6044"/>
+  <syscall name="sendmsg" number="6045"/>
+  <syscall name="recvmsg" number="6046"/>
+  <syscall name="shutdown" number="6047"/>
+  <syscall name="bind" number="6048"/>
+  <syscall name="listen" number="6049"/>
+  <syscall name="getsockname" number="6050"/>
+  <syscall name="getpeername" number="6051"/>
+  <syscall name="socketpair" number="6052"/>
+  <syscall name="setsockopt" number="6053"/>
+  <syscall name="getsockopt" number="6054"/>
+  <syscall name="clone" number="6055"/>
+  <syscall name="fork" number="6056"/>
+  <syscall name="execve" number="6057"/>
+  <syscall name="exit" number="6058"/>
+  <syscall name="wait4" number="6059"/>
+  <syscall name="kill" number="6060"/>
+  <syscall name="uname" number="6061"/>
+  <syscall name="semget" number="6062"/>
+  <syscall name="semop" number="6063"/>
+  <syscall name="semctl" number="6064"/>
+  <syscall name="shmdt" number="6065"/>
+  <syscall name="msgget" number="6066"/>
+  <syscall name="msgsnd" number="6067"/>
+  <syscall name="msgrcv" number="6068"/>
+  <syscall name="msgctl" number="6069"/>
+  <syscall name="fcntl" number="6070"/>
+  <syscall name="flock" number="6071"/>
+  <syscall name="fsync" number="6072"/>
+  <syscall name="fdatasync" number="6073"/>
+  <syscall name="truncate" number="6074"/>
+  <syscall name="ftruncate" number="6075"/>
+  <syscall name="getdents" number="6076"/>
+  <syscall name="getcwd" number="6077"/>
+  <syscall name="chdir" number="6078"/>
+  <syscall name="fchdir" number="6079"/>
+  <syscall name="rename" number="6080"/>
+  <syscall name="mkdir" number="6081"/>
+  <syscall name="rmdir" number="6082"/>
+  <syscall name="creat" number="6083"/>
+  <syscall name="link" number="6084"/>
+  <syscall name="unlink" number="6085"/>
+  <syscall name="symlink" number="6086"/>
+  <syscall name="readlink" number="6087"/>
+  <syscall name="chmod" number="6088"/>
+  <syscall name="fchmod" number="6089"/>
+  <syscall name="chown" number="6090"/>
+  <syscall name="fchown" number="6091"/>
+  <syscall name="lchown" number="6092"/>
+  <syscall name="umask" number="6093"/>
+  <syscall name="gettimeofday" number="6094"/>
+  <syscall name="getrlimit" number="6095"/>
+  <syscall name="getrusage" number="6096"/>
+  <syscall name="sysinfo" number="6097"/>
+  <syscall name="times" number="6098"/>
+  <syscall name="ptrace" number="6099"/>
+  <syscall name="getuid" number="6100"/>
+  <syscall name="syslog" number="6101"/>
+  <syscall name="getgid" number="6102"/>
+  <syscall name="setuid" number="6103"/>
+  <syscall name="setgid" number="6104"/>
+  <syscall name="geteuid" number="6105"/>
+  <syscall name="getegid" number="6106"/>
+  <syscall name="setpgid" number="6107"/>
+  <syscall name="getppid" number="6108"/>
+  <syscall name="getpgrp" number="6109"/>
+  <syscall name="setsid" number="6110"/>
+  <syscall name="setreuid" number="6111"/>
+  <syscall name="setregid" number="6112"/>
+  <syscall name="getgroups" number="6113"/>
+  <syscall name="setgroups" number="6114"/>
+  <syscall name="setresuid" number="6115"/>
+  <syscall name="getresuid" number="6116"/>
+  <syscall name="setresgid" number="6117"/>
+  <syscall name="getresgid" number="6118"/>
+  <syscall name="getpgid" number="6119"/>
+  <syscall name="setfsuid" number="6120"/>
+  <syscall name="setfsgid" number="6121"/>
+  <syscall name="getsid" number="6122"/>
+  <syscall name="capget" number="6123"/>
+  <syscall name="capset" number="6124"/>
+  <syscall name="rt_sigpending" number="6125"/>
+  <syscall name="rt_sigtimedwait" number="6126"/>
+  <syscall name="rt_sigqueueinfo" number="6127"/>
+  <syscall name="rt_sigsuspend" number="6128"/>
+  <syscall name="sigaltstack" number="6129"/>
+  <syscall name="utime" number="6130"/>
+  <syscall name="mknod" number="6131"/>
+  <syscall name="personality" number="6132"/>
+  <syscall name="ustat" number="6133"/>
+  <syscall name="statfs" number="6134"/>
+  <syscall name="fstatfs" number="6135"/>
+  <syscall name="sysfs" number="6136"/>
+  <syscall name="getpriority" number="6137"/>
+  <syscall name="setpriority" number="6138"/>
+  <syscall name="sched_setparam" number="6139"/>
+  <syscall name="sched_getparam" number="6140"/>
+  <syscall name="sched_setscheduler" number="6141"/>
+  <syscall name="sched_getscheduler" number="6142"/>
+  <syscall name="sched_get_priority_max" number="6143"/>
+  <syscall name="sched_get_priority_min" number="6144"/>
+  <syscall name="sched_rr_get_interval" number="6145"/>
+  <syscall name="mlock" number="6146"/>
+  <syscall name="munlock" number="6147"/>
+  <syscall name="mlockall" number="6148"/>
+  <syscall name="munlockall" number="6149"/>
+  <syscall name="vhangup" number="6150"/>
+  <syscall name="pivot_root" number="6151"/>
+  <syscall name="_sysctl" number="6152"/>
+  <syscall name="prctl" number="6153"/>
+  <syscall name="adjtimex" number="6154"/>
+  <syscall name="setrlimit" number="6155"/>
+  <syscall name="chroot" number="6156"/>
+  <syscall name="sync" number="6157"/>
+  <syscall name="acct" number="6158"/>
+  <syscall name="settimeofday" number="6159"/>
+  <syscall name="mount" number="6160"/>
+  <syscall name="umount2" number="6161"/>
+  <syscall name="swapon" number="6162"/>
+  <syscall name="swapoff" number="6163"/>
+  <syscall name="reboot" number="6164"/>
+  <syscall name="sethostname" number="6165"/>
+  <syscall name="setdomainname" number="6166"/>
+  <syscall name="create_module" number="6167"/>
+  <syscall name="init_module" number="6168"/>
+  <syscall name="delete_module" number="6169"/>
+  <syscall name="get_kernel_syms" number="6170"/>
+  <syscall name="query_module" number="6171"/>
+  <syscall name="quotactl" number="6172"/>
+  <syscall name="nfsservctl" number="6173"/>
+  <syscall name="getpmsg" number="6174"/>
+  <syscall name="putpmsg" number="6175"/>
+  <syscall name="afs_syscall" number="6176"/>
+  <syscall name="reserved177" number="6177"/>
+  <syscall name="gettid" number="6178"/>
+  <syscall name="readahead" number="6179"/>
+  <syscall name="setxattr" number="6180"/>
+  <syscall name="lsetxattr" number="6181"/>
+  <syscall name="fsetxattr" number="6182"/>
+  <syscall name="getxattr" number="6183"/>
+  <syscall name="lgetxattr" number="6184"/>
+  <syscall name="fgetxattr" number="6185"/>
+  <syscall name="listxattr" number="6186"/>
+  <syscall name="llistxattr" number="6187"/>
+  <syscall name="flistxattr" number="6188"/>
+  <syscall name="removexattr" number="6189"/>
+  <syscall name="lremovexattr" number="6190"/>
+  <syscall name="fremovexattr" number="6191"/>
+  <syscall name="tkill" number="6192"/>
+  <syscall name="reserved193" number="6193"/>
+  <syscall name="futex" number="6194"/>
+  <syscall name="sched_setaffinity" number="6195"/>
+  <syscall name="sched_getaffinity" number="6196"/>
+  <syscall name="cacheflush" number="6197"/>
+  <syscall name="cachectl" number="6198"/>
+  <syscall name="sysmips" number="6199"/>
+  <syscall name="io_setup" number="6200"/>
+  <syscall name="io_destroy" number="6201"/>
+  <syscall name="io_getevents" number="6202"/>
+  <syscall name="io_submit" number="6203"/>
+  <syscall name="io_cancel" number="6204"/>
+  <syscall name="exit_group" number="6205"/>
+  <syscall name="lookup_dcookie" number="6206"/>
+  <syscall name="epoll_create" number="6207"/>
+  <syscall name="epoll_ctl" number="6208"/>
+  <syscall name="epoll_wait" number="6209"/>
+  <syscall name="remap_file_pages" number="6210"/>
+  <syscall name="rt_sigreturn" number="6211"/>
+  <syscall name="fcntl64" number="6212"/>
+  <syscall name="set_tid_address" number="6213"/>
+  <syscall name="restart_syscall" number="6214"/>
+  <syscall name="semtimedop" number="6215"/>
+  <syscall name="fadvise64" number="6216"/>
+  <syscall name="statfs64" number="6217"/>
+  <syscall name="fstatfs64" number="6218"/>
+  <syscall name="sendfile64" number="6219"/>
+  <syscall name="timer_create" number="6220"/>
+  <syscall name="timer_settime" number="6221"/>
+  <syscall name="timer_gettime" number="6222"/>
+  <syscall name="timer_getoverrun" number="6223"/>
+  <syscall name="timer_delete" number="6224"/>
+  <syscall name="clock_settime" number="6225"/>
+  <syscall name="clock_gettime" number="6226"/>
+  <syscall name="clock_getres" number="6227"/>
+  <syscall name="clock_nanosleep" number="6228"/>
+  <syscall name="tgkill" number="6229"/>
+  <syscall name="utimes" number="6230"/>
+  <syscall name="mbind" number="6231"/>
+  <syscall name="get_mempolicy" number="6232"/>
+  <syscall name="set_mempolicy" number="6233"/>
+  <syscall name="mq_open" number="6234"/>
+  <syscall name="mq_unlink" number="6235"/>
+  <syscall name="mq_timedsend" number="6236"/>
+  <syscall name="mq_timedreceive" number="6237"/>
+  <syscall name="mq_notify" number="6238"/>
+  <syscall name="mq_getsetattr" number="6239"/>
+  <syscall name="vserver" number="6240"/>
+  <syscall name="waitid" number="6241"/>
+  <syscall name="add_key" number="6243"/>
+  <syscall name="request_key" number="6244"/>
+  <syscall name="keyctl" number="6245"/>
+  <syscall name="set_thread_area" number="6246"/>
+  <syscall name="inotify_init" number="6247"/>
+  <syscall name="inotify_add_watch" number="6248"/>
+  <syscall name="inotify_rm_watch" number="6249"/>
+  <syscall name="migrate_pages" number="6250"/>
+  <syscall name="openat" number="6251"/>
+  <syscall name="mkdirat" number="6252"/>
+  <syscall name="mknodat" number="6253"/>
+  <syscall name="fchownat" number="6254"/>
+  <syscall name="futimesat" number="6255"/>
+  <syscall name="newfstatat" number="6256"/>
+  <syscall name="unlinkat" number="6257"/>
+  <syscall name="renameat" number="6258"/>
+  <syscall name="linkat" number="6259"/>
+  <syscall name="symlinkat" number="6260"/>
+  <syscall name="readlinkat" number="6261"/>
+  <syscall name="fchmodat" number="6262"/>
+  <syscall name="faccessat" number="6263"/>
+  <syscall name="pselect6" number="6264"/>
+  <syscall name="ppoll" number="6265"/>
+  <syscall name="unshare" number="6266"/>
+  <syscall name="splice" number="6267"/>
+  <syscall name="sync_file_range" number="6268"/>
+  <syscall name="tee" number="6269"/>
+  <syscall name="vmsplice" number="6270"/>
+  <syscall name="move_pages" number="6271"/>
+  <syscall name="set_robust_list" number="6272"/>
+  <syscall name="get_robust_list" number="6273"/>
+  <syscall name="kexec_load" number="6274"/>
+  <syscall name="getcpu" number="6275"/>
+  <syscall name="epoll_pwait" number="6276"/>
+  <syscall name="ioprio_set" number="6277"/>
+  <syscall name="ioprio_get" number="6278"/>
+  <syscall name="utimensat" number="6279"/>
+  <syscall name="signalfd" number="6280"/>
+  <syscall name="timerfd" number="6281"/>
+  <syscall name="eventfd" number="6282"/>
+  <syscall name="fallocate" number="6283"/>
+  <syscall name="timerfd_create" number="6284"/>
+  <syscall name="timerfd_gettime" number="6285"/>
+  <syscall name="timerfd_settime" number="6286"/>
+  <syscall name="signalfd4" number="6287"/>
+  <syscall name="eventfd2" number="6288"/>
+  <syscall name="epoll_create1" number="6289"/>
+  <syscall name="dup3" number="6290"/>
+  <syscall name="pipe2" number="6291"/>
+  <syscall name="inotify_init1" number="6292"/>
+  <syscall name="preadv" number="6293"/>
+  <syscall name="pwritev" number="6294"/>
+  <syscall name="rt_tgsigqueueinfo" number="6295"/>
+  <syscall name="perf_event_open" number="6296"/>
+  <syscall name="accept4" number="6297"/>
+  <syscall name="recvmmsg" number="6298"/>
+  <syscall name="getdents64" number="6299"/>
+  <syscall name="fanotify_init" number="6300"/>
+  <syscall name="fanotify_mark" number="6301"/>
+  <syscall name="prlimit64" number="6302"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/mips-n64-linux.xml b/share/gdb/syscalls/mips-n64-linux.xml
new file mode 100644
index 0000000..fc951c8
--- /dev/null
+++ b/share/gdb/syscalls/mips-n64-linux.xml
@@ -0,0 +1,312 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<syscalls_info>
+  <syscall name="read" number="5000"/>
+  <syscall name="write" number="5001"/>
+  <syscall name="open" number="5002"/>
+  <syscall name="close" number="5003"/>
+  <syscall name="stat" number="5004"/>
+  <syscall name="fstat" number="5005"/>
+  <syscall name="lstat" number="5006"/>
+  <syscall name="poll" number="5007"/>
+  <syscall name="lseek" number="5008"/>
+  <syscall name="mmap" number="5009"/>
+  <syscall name="mprotect" number="5010"/>
+  <syscall name="munmap" number="5011"/>
+  <syscall name="brk" number="5012"/>
+  <syscall name="rt_sigaction" number="5013"/>
+  <syscall name="rt_sigprocmask" number="5014"/>
+  <syscall name="ioctl" number="5015"/>
+  <syscall name="pread64" number="5016"/>
+  <syscall name="pwrite64" number="5017"/>
+  <syscall name="readv" number="5018"/>
+  <syscall name="writev" number="5019"/>
+  <syscall name="access" number="5020"/>
+  <syscall name="pipe" number="5021"/>
+  <syscall name="_newselect" number="5022"/>
+  <syscall name="sched_yield" number="5023"/>
+  <syscall name="mremap" number="5024"/>
+  <syscall name="msync" number="5025"/>
+  <syscall name="mincore" number="5026"/>
+  <syscall name="madvise" number="5027"/>
+  <syscall name="shmget" number="5028"/>
+  <syscall name="shmat" number="5029"/>
+  <syscall name="shmctl" number="5030"/>
+  <syscall name="dup" number="5031"/>
+  <syscall name="dup2" number="5032"/>
+  <syscall name="pause" number="5033"/>
+  <syscall name="nanosleep" number="5034"/>
+  <syscall name="getitimer" number="5035"/>
+  <syscall name="setitimer" number="5036"/>
+  <syscall name="alarm" number="5037"/>
+  <syscall name="getpid" number="5038"/>
+  <syscall name="sendfile" number="5039"/>
+  <syscall name="socket" number="5040"/>
+  <syscall name="connect" number="5041"/>
+  <syscall name="accept" number="5042"/>
+  <syscall name="sendto" number="5043"/>
+  <syscall name="recvfrom" number="5044"/>
+  <syscall name="sendmsg" number="5045"/>
+  <syscall name="recvmsg" number="5046"/>
+  <syscall name="shutdown" number="5047"/>
+  <syscall name="bind" number="5048"/>
+  <syscall name="listen" number="5049"/>
+  <syscall name="getsockname" number="5050"/>
+  <syscall name="getpeername" number="5051"/>
+  <syscall name="socketpair" number="5052"/>
+  <syscall name="setsockopt" number="5053"/>
+  <syscall name="getsockopt" number="5054"/>
+  <syscall name="clone" number="5055"/>
+  <syscall name="fork" number="5056"/>
+  <syscall name="execve" number="5057"/>
+  <syscall name="exit" number="5058"/>
+  <syscall name="wait4" number="5059"/>
+  <syscall name="kill" number="5060"/>
+  <syscall name="uname" number="5061"/>
+  <syscall name="semget" number="5062"/>
+  <syscall name="semop" number="5063"/>
+  <syscall name="semctl" number="5064"/>
+  <syscall name="shmdt" number="5065"/>
+  <syscall name="msgget" number="5066"/>
+  <syscall name="msgsnd" number="5067"/>
+  <syscall name="msgrcv" number="5068"/>
+  <syscall name="msgctl" number="5069"/>
+  <syscall name="fcntl" number="5070"/>
+  <syscall name="flock" number="5071"/>
+  <syscall name="fsync" number="5072"/>
+  <syscall name="fdatasync" number="5073"/>
+  <syscall name="truncate" number="5074"/>
+  <syscall name="ftruncate" number="5075"/>
+  <syscall name="getdents" number="5076"/>
+  <syscall name="getcwd" number="5077"/>
+  <syscall name="chdir" number="5078"/>
+  <syscall name="fchdir" number="5079"/>
+  <syscall name="rename" number="5080"/>
+  <syscall name="mkdir" number="5081"/>
+  <syscall name="rmdir" number="5082"/>
+  <syscall name="creat" number="5083"/>
+  <syscall name="link" number="5084"/>
+  <syscall name="unlink" number="5085"/>
+  <syscall name="symlink" number="5086"/>
+  <syscall name="readlink" number="5087"/>
+  <syscall name="chmod" number="5088"/>
+  <syscall name="fchmod" number="5089"/>
+  <syscall name="chown" number="5090"/>
+  <syscall name="fchown" number="5091"/>
+  <syscall name="lchown" number="5092"/>
+  <syscall name="umask" number="5093"/>
+  <syscall name="gettimeofday" number="5094"/>
+  <syscall name="getrlimit" number="5095"/>
+  <syscall name="getrusage" number="5096"/>
+  <syscall name="sysinfo" number="5097"/>
+  <syscall name="times" number="5098"/>
+  <syscall name="ptrace" number="5099"/>
+  <syscall name="getuid" number="5100"/>
+  <syscall name="syslog" number="5101"/>
+  <syscall name="getgid" number="5102"/>
+  <syscall name="setuid" number="5103"/>
+  <syscall name="setgid" number="5104"/>
+  <syscall name="geteuid" number="5105"/>
+  <syscall name="getegid" number="5106"/>
+  <syscall name="setpgid" number="5107"/>
+  <syscall name="getppid" number="5108"/>
+  <syscall name="getpgrp" number="5109"/>
+  <syscall name="setsid" number="5110"/>
+  <syscall name="setreuid" number="5111"/>
+  <syscall name="setregid" number="5112"/>
+  <syscall name="getgroups" number="5113"/>
+  <syscall name="setgroups" number="5114"/>
+  <syscall name="setresuid" number="5115"/>
+  <syscall name="getresuid" number="5116"/>
+  <syscall name="setresgid" number="5117"/>
+  <syscall name="getresgid" number="5118"/>
+  <syscall name="getpgid" number="5119"/>
+  <syscall name="setfsuid" number="5120"/>
+  <syscall name="setfsgid" number="5121"/>
+  <syscall name="getsid" number="5122"/>
+  <syscall name="capget" number="5123"/>
+  <syscall name="capset" number="5124"/>
+  <syscall name="rt_sigpending" number="5125"/>
+  <syscall name="rt_sigtimedwait" number="5126"/>
+  <syscall name="rt_sigqueueinfo" number="5127"/>
+  <syscall name="rt_sigsuspend" number="5128"/>
+  <syscall name="sigaltstack" number="5129"/>
+  <syscall name="utime" number="5130"/>
+  <syscall name="mknod" number="5131"/>
+  <syscall name="personality" number="5132"/>
+  <syscall name="ustat" number="5133"/>
+  <syscall name="statfs" number="5134"/>
+  <syscall name="fstatfs" number="5135"/>
+  <syscall name="sysfs" number="5136"/>
+  <syscall name="getpriority" number="5137"/>
+  <syscall name="setpriority" number="5138"/>
+  <syscall name="sched_setparam" number="5139"/>
+  <syscall name="sched_getparam" number="5140"/>
+  <syscall name="sched_setscheduler" number="5141"/>
+  <syscall name="sched_getscheduler" number="5142"/>
+  <syscall name="sched_get_priority_max" number="5143"/>
+  <syscall name="sched_get_priority_min" number="5144"/>
+  <syscall name="sched_rr_get_interval" number="5145"/>
+  <syscall name="mlock" number="5146"/>
+  <syscall name="munlock" number="5147"/>
+  <syscall name="mlockall" number="5148"/>
+  <syscall name="munlockall" number="5149"/>
+  <syscall name="vhangup" number="5150"/>
+  <syscall name="pivot_root" number="5151"/>
+  <syscall name="_sysctl" number="5152"/>
+  <syscall name="prctl" number="5153"/>
+  <syscall name="adjtimex" number="5154"/>
+  <syscall name="setrlimit" number="5155"/>
+  <syscall name="chroot" number="5156"/>
+  <syscall name="sync" number="5157"/>
+  <syscall name="acct" number="5158"/>
+  <syscall name="settimeofday" number="5159"/>
+  <syscall name="mount" number="5160"/>
+  <syscall name="umount2" number="5161"/>
+  <syscall name="swapon" number="5162"/>
+  <syscall name="swapoff" number="5163"/>
+  <syscall name="reboot" number="5164"/>
+  <syscall name="sethostname" number="5165"/>
+  <syscall name="setdomainname" number="5166"/>
+  <syscall name="create_module" number="5167"/>
+  <syscall name="init_module" number="5168"/>
+  <syscall name="delete_module" number="5169"/>
+  <syscall name="get_kernel_syms" number="5170"/>
+  <syscall name="query_module" number="5171"/>
+  <syscall name="quotactl" number="5172"/>
+  <syscall name="nfsservctl" number="5173"/>
+  <syscall name="getpmsg" number="5174"/>
+  <syscall name="putpmsg" number="5175"/>
+  <syscall name="afs_syscall" number="5176"/>
+  <syscall name="gettid" number="5178"/>
+  <syscall name="readahead" number="5179"/>
+  <syscall name="setxattr" number="5180"/>
+  <syscall name="lsetxattr" number="5181"/>
+  <syscall name="fsetxattr" number="5182"/>
+  <syscall name="getxattr" number="5183"/>
+  <syscall name="lgetxattr" number="5184"/>
+  <syscall name="fgetxattr" number="5185"/>
+  <syscall name="listxattr" number="5186"/>
+  <syscall name="llistxattr" number="5187"/>
+  <syscall name="flistxattr" number="5188"/>
+  <syscall name="removexattr" number="5189"/>
+  <syscall name="lremovexattr" number="5190"/>
+  <syscall name="fremovexattr" number="5191"/>
+  <syscall name="tkill" number="5192"/>
+  <syscall name="futex" number="5194"/>
+  <syscall name="sched_setaffinity" number="5195"/>
+  <syscall name="sched_getaffinity" number="5196"/>
+  <syscall name="cacheflush" number="5197"/>
+  <syscall name="cachectl" number="5198"/>
+  <syscall name="sysmips" number="5199"/>
+  <syscall name="io_setup" number="5200"/>
+  <syscall name="io_destroy" number="5201"/>
+  <syscall name="io_getevents" number="5202"/>
+  <syscall name="io_submit" number="5203"/>
+  <syscall name="io_cancel" number="5204"/>
+  <syscall name="exit_group" number="5205"/>
+  <syscall name="lookup_dcookie" number="5206"/>
+  <syscall name="epoll_create" number="5207"/>
+  <syscall name="epoll_ctl" number="5208"/>
+  <syscall name="epoll_wait" number="5209"/>
+  <syscall name="remap_file_pages" number="5210"/>
+  <syscall name="rt_sigreturn" number="5211"/>
+  <syscall name="set_tid_address" number="5212"/>
+  <syscall name="restart_syscall" number="5213"/>
+  <syscall name="semtimedop" number="5214"/>
+  <syscall name="fadvise64" number="5215"/>
+  <syscall name="timer_create" number="5216"/>
+  <syscall name="timer_settime" number="5217"/>
+  <syscall name="timer_gettime" number="5218"/>
+  <syscall name="timer_getoverrun" number="5219"/>
+  <syscall name="timer_delete" number="5220"/>
+  <syscall name="clock_settime" number="5221"/>
+  <syscall name="clock_gettime" number="5222"/>
+  <syscall name="clock_getres" number="5223"/>
+  <syscall name="clock_nanosleep" number="5224"/>
+  <syscall name="tgkill" number="5225"/>
+  <syscall name="utimes" number="5226"/>
+  <syscall name="mbind" number="5227"/>
+  <syscall name="get_mempolicy" number="5228"/>
+  <syscall name="set_mempolicy" number="5229"/>
+  <syscall name="mq_open" number="5230"/>
+  <syscall name="mq_unlink" number="5231"/>
+  <syscall name="mq_timedsend" number="5232"/>
+  <syscall name="mq_timedreceive" number="5233"/>
+  <syscall name="mq_notify" number="5234"/>
+  <syscall name="mq_getsetattr" number="5235"/>
+  <syscall name="vserver" number="5236"/>
+  <syscall name="waitid" number="5237"/>
+  <syscall name="add_key" number="5239"/>
+  <syscall name="request_key" number="5240"/>
+  <syscall name="keyctl" number="5241"/>
+  <syscall name="set_thread_area" number="5242"/>
+  <syscall name="inotify_init" number="5243"/>
+  <syscall name="inotify_add_watch" number="5244"/>
+  <syscall name="inotify_rm_watch" number="5245"/>
+  <syscall name="migrate_pages" number="5246"/>
+  <syscall name="openat" number="5247"/>
+  <syscall name="mkdirat" number="5248"/>
+  <syscall name="mknodat" number="5249"/>
+  <syscall name="fchownat" number="5250"/>
+  <syscall name="futimesat" number="5251"/>
+  <syscall name="newfstatat" number="5252"/>
+  <syscall name="unlinkat" number="5253"/>
+  <syscall name="renameat" number="5254"/>
+  <syscall name="linkat" number="5255"/>
+  <syscall name="symlinkat" number="5256"/>
+  <syscall name="readlinkat" number="5257"/>
+  <syscall name="fchmodat" number="5258"/>
+  <syscall name="faccessat" number="5259"/>
+  <syscall name="pselect6" number="5260"/>
+  <syscall name="ppoll" number="5261"/>
+  <syscall name="unshare" number="5262"/>
+  <syscall name="splice" number="5263"/>
+  <syscall name="sync_file_range" number="5264"/>
+  <syscall name="tee" number="5265"/>
+  <syscall name="vmsplice" number="5266"/>
+  <syscall name="move_pages" number="5267"/>
+  <syscall name="set_robust_list" number="5268"/>
+  <syscall name="get_robust_list" number="5269"/>
+  <syscall name="kexec_load" number="5270"/>
+  <syscall name="getcpu" number="5271"/>
+  <syscall name="epoll_pwait" number="5272"/>
+  <syscall name="ioprio_set" number="5273"/>
+  <syscall name="ioprio_get" number="5274"/>
+  <syscall name="utimensat" number="5275"/>
+  <syscall name="signalfd" number="5276"/>
+  <syscall name="timerfd" number="5277"/>
+  <syscall name="eventfd" number="5278"/>
+  <syscall name="fallocate" number="5279"/>
+  <syscall name="timerfd_create" number="5280"/>
+  <syscall name="timerfd_gettime" number="5281"/>
+  <syscall name="timerfd_settime" number="5282"/>
+  <syscall name="signalfd4" number="5283"/>
+  <syscall name="eventfd2" number="5284"/>
+  <syscall name="epoll_create1" number="5285"/>
+  <syscall name="dup3" number="5286"/>
+  <syscall name="pipe2" number="5287"/>
+  <syscall name="inotify_init1" number="5288"/>
+  <syscall name="preadv" number="5289"/>
+  <syscall name="pwritev" number="5290"/>
+  <syscall name="rt_tgsigqueueinfo" number="5291"/>
+  <syscall name="perf_event_open" number="5292"/>
+  <syscall name="accept4" number="5293"/>
+  <syscall name="recvmmsg" number="5294"/>
+  <syscall name="fanotify_init" number="5295"/>
+  <syscall name="fanotify_mark" number="5296"/>
+  <syscall name="prlimit64" number="5297"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/mips-o32-linux.xml b/share/gdb/syscalls/mips-o32-linux.xml
new file mode 100644
index 0000000..939ed4e
--- /dev/null
+++ b/share/gdb/syscalls/mips-o32-linux.xml
@@ -0,0 +1,347 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/mips/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<syscalls_info>
+  <syscall name="syscall" number="4000"/>
+  <syscall name="exit" number="4001"/>
+  <syscall name="fork" number="4002"/>
+  <syscall name="read" number="4003"/>
+  <syscall name="write" number="4004"/>
+  <syscall name="open" number="4005"/>
+  <syscall name="close" number="4006"/>
+  <syscall name="waitpid" number="4007"/>
+  <syscall name="creat" number="4008"/>
+  <syscall name="link" number="4009"/>
+  <syscall name="unlink" number="4010"/>
+  <syscall name="execve" number="4011"/>
+  <syscall name="chdir" number="4012"/>
+  <syscall name="time" number="4013"/>
+  <syscall name="mknod" number="4014"/>
+  <syscall name="chmod" number="4015"/>
+  <syscall name="lchown" number="4016"/>
+  <syscall name="break" number="4017"/>
+  <syscall name="lseek" number="4019"/>
+  <syscall name="getpid" number="4020"/>
+  <syscall name="mount" number="4021"/>
+  <syscall name="umount" number="4022"/>
+  <syscall name="setuid" number="4023"/>
+  <syscall name="getuid" number="4024"/>
+  <syscall name="stime" number="4025"/>
+  <syscall name="ptrace" number="4026"/>
+  <syscall name="alarm" number="4027"/>
+  <syscall name="pause" number="4029"/>
+  <syscall name="utime" number="4030"/>
+  <syscall name="stty" number="4031"/>
+  <syscall name="gtty" number="4032"/>
+  <syscall name="access" number="4033"/>
+  <syscall name="nice" number="4034"/>
+  <syscall name="ftime" number="4035"/>
+  <syscall name="sync" number="4036"/>
+  <syscall name="kill" number="4037"/>
+  <syscall name="rename" number="4038"/>
+  <syscall name="mkdir" number="4039"/>
+  <syscall name="rmdir" number="4040"/>
+  <syscall name="dup" number="4041"/>
+  <syscall name="pipe" number="4042"/>
+  <syscall name="times" number="4043"/>
+  <syscall name="prof" number="4044"/>
+  <syscall name="brk" number="4045"/>
+  <syscall name="setgid" number="4046"/>
+  <syscall name="getgid" number="4047"/>
+  <syscall name="signal" number="4048"/>
+  <syscall name="geteuid" number="4049"/>
+  <syscall name="getegid" number="4050"/>
+  <syscall name="acct" number="4051"/>
+  <syscall name="umount2" number="4052"/>
+  <syscall name="lock" number="4053"/>
+  <syscall name="ioctl" number="4054"/>
+  <syscall name="fcntl" number="4055"/>
+  <syscall name="mpx" number="4056"/>
+  <syscall name="setpgid" number="4057"/>
+  <syscall name="ulimit" number="4058"/>
+  <syscall name="umask" number="4060"/>
+  <syscall name="chroot" number="4061"/>
+  <syscall name="ustat" number="4062"/>
+  <syscall name="dup2" number="4063"/>
+  <syscall name="getppid" number="4064"/>
+  <syscall name="getpgrp" number="4065"/>
+  <syscall name="setsid" number="4066"/>
+  <syscall name="sigaction" number="4067"/>
+  <syscall name="sgetmask" number="4068"/>
+  <syscall name="ssetmask" number="4069"/>
+  <syscall name="setreuid" number="4070"/>
+  <syscall name="setregid" number="4071"/>
+  <syscall name="sigsuspend" number="4072"/>
+  <syscall name="sigpending" number="4073"/>
+  <syscall name="sethostname" number="4074"/>
+  <syscall name="setrlimit" number="4075"/>
+  <syscall name="getrlimit" number="4076"/>
+  <syscall name="getrusage" number="4077"/>
+  <syscall name="gettimeofday" number="4078"/>
+  <syscall name="settimeofday" number="4079"/>
+  <syscall name="getgroups" number="4080"/>
+  <syscall name="setgroups" number="4081"/>
+  <syscall name="symlink" number="4083"/>
+  <syscall name="readlink" number="4085"/>
+  <syscall name="uselib" number="4086"/>
+  <syscall name="swapon" number="4087"/>
+  <syscall name="reboot" number="4088"/>
+  <syscall name="readdir" number="4089"/>
+  <syscall name="mmap" number="4090"/>
+  <syscall name="munmap" number="4091"/>
+  <syscall name="truncate" number="4092"/>
+  <syscall name="ftruncate" number="4093"/>
+  <syscall name="fchmod" number="4094"/>
+  <syscall name="fchown" number="4095"/>
+  <syscall name="getpriority" number="4096"/>
+  <syscall name="setpriority" number="4097"/>
+  <syscall name="profil" number="4098"/>
+  <syscall name="statfs" number="4099"/>
+  <syscall name="fstatfs" number="4100"/>
+  <syscall name="ioperm" number="4101"/>
+  <syscall name="socketcall" number="4102"/>
+  <syscall name="syslog" number="4103"/>
+  <syscall name="setitimer" number="4104"/>
+  <syscall name="getitimer" number="4105"/>
+  <syscall name="stat" number="4106"/>
+  <syscall name="lstat" number="4107"/>
+  <syscall name="fstat" number="4108"/>
+  <syscall name="iopl" number="4110"/>
+  <syscall name="vhangup" number="4111"/>
+  <syscall name="idle" number="4112"/>
+  <syscall name="vm86" number="4113"/>
+  <syscall name="wait4" number="4114"/>
+  <syscall name="swapoff" number="4115"/>
+  <syscall name="sysinfo" number="4116"/>
+  <syscall name="ipc" number="4117"/>
+  <syscall name="fsync" number="4118"/>
+  <syscall name="sigreturn" number="4119"/>
+  <syscall name="clone" number="4120"/>
+  <syscall name="setdomainname" number="4121"/>
+  <syscall name="uname" number="4122"/>
+  <syscall name="modify_ldt" number="4123"/>
+  <syscall name="adjtimex" number="4124"/>
+  <syscall name="mprotect" number="4125"/>
+  <syscall name="sigprocmask" number="4126"/>
+  <syscall name="create_module" number="4127"/>
+  <syscall name="init_module" number="4128"/>
+  <syscall name="delete_module" number="4129"/>
+  <syscall name="get_kernel_syms" number="4130"/>
+  <syscall name="quotactl" number="4131"/>
+  <syscall name="getpgid" number="4132"/>
+  <syscall name="fchdir" number="4133"/>
+  <syscall name="bdflush" number="4134"/>
+  <syscall name="sysfs" number="4135"/>
+  <syscall name="personality" number="4136"/>
+  <syscall name="afs_syscall" number="4137"/>
+  <syscall name="setfsuid" number="4138"/>
+  <syscall name="setfsgid" number="4139"/>
+  <syscall name="_llseek" number="4140"/>
+  <syscall name="getdents" number="4141"/>
+  <syscall name="_newselect" number="4142"/>
+  <syscall name="flock" number="4143"/>
+  <syscall name="msync" number="4144"/>
+  <syscall name="readv" number="4145"/>
+  <syscall name="writev" number="4146"/>
+  <syscall name="cacheflush" number="4147"/>
+  <syscall name="cachectl" number="4148"/>
+  <syscall name="sysmips" number="4149"/>
+  <syscall name="getsid" number="4151"/>
+  <syscall name="fdatasync" number="4152"/>
+  <syscall name="_sysctl" number="4153"/>
+  <syscall name="mlock" number="4154"/>
+  <syscall name="munlock" number="4155"/>
+  <syscall name="mlockall" number="4156"/>
+  <syscall name="munlockall" number="4157"/>
+  <syscall name="sched_setparam" number="4158"/>
+  <syscall name="sched_getparam" number="4159"/>
+  <syscall name="sched_setscheduler" number="4160"/>
+  <syscall name="sched_getscheduler" number="4161"/>
+  <syscall name="sched_yield" number="4162"/>
+  <syscall name="sched_get_priority_max" number="4163"/>
+  <syscall name="sched_get_priority_min" number="4164"/>
+  <syscall name="sched_rr_get_interval" number="4165"/>
+  <syscall name="nanosleep" number="4166"/>
+  <syscall name="mremap" number="4167"/>
+  <syscall name="accept" number="4168"/>
+  <syscall name="bind" number="4169"/>
+  <syscall name="connect" number="4170"/>
+  <syscall name="getpeername" number="4171"/>
+  <syscall name="getsockname" number="4172"/>
+  <syscall name="getsockopt" number="4173"/>
+  <syscall name="listen" number="4174"/>
+  <syscall name="recv" number="4175"/>
+  <syscall name="recvfrom" number="4176"/>
+  <syscall name="recvmsg" number="4177"/>
+  <syscall name="send" number="4178"/>
+  <syscall name="sendmsg" number="4179"/>
+  <syscall name="sendto" number="4180"/>
+  <syscall name="setsockopt" number="4181"/>
+  <syscall name="shutdown" number="4182"/>
+  <syscall name="socket" number="4183"/>
+  <syscall name="socketpair" number="4184"/>
+  <syscall name="setresuid" number="4185"/>
+  <syscall name="getresuid" number="4186"/>
+  <syscall name="query_module" number="4187"/>
+  <syscall name="poll" number="4188"/>
+  <syscall name="nfsservctl" number="4189"/>
+  <syscall name="setresgid" number="4190"/>
+  <syscall name="getresgid" number="4191"/>
+  <syscall name="prctl" number="4192"/>
+  <syscall name="rt_sigreturn" number="4193"/>
+  <syscall name="rt_sigaction" number="4194"/>
+  <syscall name="rt_sigprocmask" number="4195"/>
+  <syscall name="rt_sigpending" number="4196"/>
+  <syscall name="rt_sigtimedwait" number="4197"/>
+  <syscall name="rt_sigqueueinfo" number="4198"/>
+  <syscall name="rt_sigsuspend" number="4199"/>
+  <syscall name="pread64" number="4200"/>
+  <syscall name="pwrite64" number="4201"/>
+  <syscall name="chown" number="4202"/>
+  <syscall name="getcwd" number="4203"/>
+  <syscall name="capget" number="4204"/>
+  <syscall name="capset" number="4205"/>
+  <syscall name="sigaltstack" number="4206"/>
+  <syscall name="sendfile" number="4207"/>
+  <syscall name="getpmsg" number="4208"/>
+  <syscall name="putpmsg" number="4209"/>
+  <syscall name="mmap2" number="4210"/>
+  <syscall name="truncate64" number="4211"/>
+  <syscall name="ftruncate64" number="4212"/>
+  <syscall name="stat64" number="4213"/>
+  <syscall name="lstat64" number="4214"/>
+  <syscall name="fstat64" number="4215"/>
+  <syscall name="pivot_root" number="4216"/>
+  <syscall name="mincore" number="4217"/>
+  <syscall name="madvise" number="4218"/>
+  <syscall name="getdents64" number="4219"/>
+  <syscall name="fcntl64" number="4220"/>
+  <syscall name="gettid" number="4222"/>
+  <syscall name="readahead" number="4223"/>
+  <syscall name="setxattr" number="4224"/>
+  <syscall name="lsetxattr" number="4225"/>
+  <syscall name="fsetxattr" number="4226"/>
+  <syscall name="getxattr" number="4227"/>
+  <syscall name="lgetxattr" number="4228"/>
+  <syscall name="fgetxattr" number="4229"/>
+  <syscall name="listxattr" number="4230"/>
+  <syscall name="llistxattr" number="4231"/>
+  <syscall name="flistxattr" number="4232"/>
+  <syscall name="removexattr" number="4233"/>
+  <syscall name="lremovexattr" number="4234"/>
+  <syscall name="fremovexattr" number="4235"/>
+  <syscall name="tkill" number="4236"/>
+  <syscall name="sendfile64" number="4237"/>
+  <syscall name="futex" number="4238"/>
+  <syscall name="sched_setaffinity" number="4239"/>
+  <syscall name="sched_getaffinity" number="4240"/>
+  <syscall name="io_setup" number="4241"/>
+  <syscall name="io_destroy" number="4242"/>
+  <syscall name="io_getevents" number="4243"/>
+  <syscall name="io_submit" number="4244"/>
+  <syscall name="io_cancel" number="4245"/>
+  <syscall name="exit_group" number="4246"/>
+  <syscall name="lookup_dcookie" number="4247"/>
+  <syscall name="epoll_create" number="4248"/>
+  <syscall name="epoll_ctl" number="4249"/>
+  <syscall name="epoll_wait" number="4250"/>
+  <syscall name="remap_file_pages" number="4251"/>
+  <syscall name="set_tid_address" number="4252"/>
+  <syscall name="restart_syscall" number="4253"/>
+  <syscall name="fadvise64" number="4254"/>
+  <syscall name="statfs64" number="4255"/>
+  <syscall name="fstatfs64" number="4256"/>
+  <syscall name="timer_create" number="4257"/>
+  <syscall name="timer_settime" number="4258"/>
+  <syscall name="timer_gettime" number="4259"/>
+  <syscall name="timer_getoverrun" number="4260"/>
+  <syscall name="timer_delete" number="4261"/>
+  <syscall name="clock_settime" number="4262"/>
+  <syscall name="clock_gettime" number="4263"/>
+  <syscall name="clock_getres" number="4264"/>
+  <syscall name="clock_nanosleep" number="4265"/>
+  <syscall name="tgkill" number="4266"/>
+  <syscall name="utimes" number="4267"/>
+  <syscall name="mbind" number="4268"/>
+  <syscall name="get_mempolicy" number="4269"/>
+  <syscall name="set_mempolicy" number="4270"/>
+  <syscall name="mq_open" number="4271"/>
+  <syscall name="mq_unlink" number="4272"/>
+  <syscall name="mq_timedsend" number="4273"/>
+  <syscall name="mq_timedreceive" number="4274"/>
+  <syscall name="mq_notify" number="4275"/>
+  <syscall name="mq_getsetattr" number="4276"/>
+  <syscall name="vserver" number="4277"/>
+  <syscall name="waitid" number="4278"/>
+  <syscall name="add_key" number="4280"/>
+  <syscall name="request_key" number="4281"/>
+  <syscall name="keyctl" number="4282"/>
+  <syscall name="set_thread_area" number="4283"/>
+  <syscall name="inotify_init" number="4284"/>
+  <syscall name="inotify_add_watch" number="4285"/>
+  <syscall name="inotify_rm_watch" number="4286"/>
+  <syscall name="migrate_pages" number="4287"/>
+  <syscall name="openat" number="4288"/>
+  <syscall name="mkdirat" number="4289"/>
+  <syscall name="mknodat" number="4290"/>
+  <syscall name="fchownat" number="4291"/>
+  <syscall name="futimesat" number="4292"/>
+  <syscall name="fstatat64" number="4293"/>
+  <syscall name="unlinkat" number="4294"/>
+  <syscall name="renameat" number="4295"/>
+  <syscall name="linkat" number="4296"/>
+  <syscall name="symlinkat" number="4297"/>
+  <syscall name="readlinkat" number="4298"/>
+  <syscall name="fchmodat" number="4299"/>
+  <syscall name="faccessat" number="4300"/>
+  <syscall name="pselect6" number="4301"/>
+  <syscall name="ppoll" number="4302"/>
+  <syscall name="unshare" number="4303"/>
+  <syscall name="splice" number="4304"/>
+  <syscall name="sync_file_range" number="4305"/>
+  <syscall name="tee" number="4306"/>
+  <syscall name="vmsplice" number="4307"/>
+  <syscall name="move_pages" number="4308"/>
+  <syscall name="set_robust_list" number="4309"/>
+  <syscall name="get_robust_list" number="4310"/>
+  <syscall name="kexec_load" number="4311"/>
+  <syscall name="getcpu" number="4312"/>
+  <syscall name="epoll_pwait" number="4313"/>
+  <syscall name="ioprio_set" number="4314"/>
+  <syscall name="ioprio_get" number="4315"/>
+  <syscall name="utimensat" number="4316"/>
+  <syscall name="signalfd" number="4317"/>
+  <syscall name="timerfd" number="4318"/>
+  <syscall name="eventfd" number="4319"/>
+  <syscall name="fallocate" number="4320"/>
+  <syscall name="timerfd_create" number="4321"/>
+  <syscall name="timerfd_gettime" number="4322"/>
+  <syscall name="timerfd_settime" number="4323"/>
+  <syscall name="signalfd4" number="4324"/>
+  <syscall name="eventfd2" number="4325"/>
+  <syscall name="epoll_create1" number="4326"/>
+  <syscall name="dup3" number="4327"/>
+  <syscall name="pipe2" number="4328"/>
+  <syscall name="inotify_init1" number="4329"/>
+  <syscall name="preadv" number="4330"/>
+  <syscall name="pwritev" number="4331"/>
+  <syscall name="rt_tgsigqueueinfo" number="4332"/>
+  <syscall name="perf_event_open" number="4333"/>
+  <syscall name="accept4" number="4334"/>
+  <syscall name="recvmmsg" number="4335"/>
+  <syscall name="fanotify_init" number="4336"/>
+  <syscall name="fanotify_mark" number="4337"/>
+  <syscall name="prlimit64" number="4338"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/ppc-linux.xml b/share/gdb/syscalls/ppc-linux.xml
new file mode 100644
index 0000000..54728e3
--- /dev/null
+++ b/share/gdb/syscalls/ppc-linux.xml
@@ -0,0 +1,310 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009, 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/powerpc/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<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="waitpid" number="7"/>
+  <syscall name="creat" number="8"/>
+  <syscall name="link" number="9"/>
+  <syscall name="unlink" number="10"/>
+  <syscall name="execve" number="11"/>
+  <syscall name="chdir" number="12"/>
+  <syscall name="time" number="13"/>
+  <syscall name="mknod" number="14"/>
+  <syscall name="chmod" number="15"/>
+  <syscall name="lchown" number="16"/>
+  <syscall name="break" number="17"/>
+  <syscall name="oldstat" number="18"/>
+  <syscall name="lseek" number="19"/>
+  <syscall name="getpid" number="20"/>
+  <syscall name="mount" number="21"/>
+  <syscall name="umount" number="22"/>
+  <syscall name="setuid" number="23"/>
+  <syscall name="getuid" number="24"/>
+  <syscall name="stime" number="25"/>
+  <syscall name="ptrace" number="26"/>
+  <syscall name="alarm" number="27"/>
+  <syscall name="oldfstat" number="28"/>
+  <syscall name="pause" number="29"/>
+  <syscall name="utime" number="30"/>
+  <syscall name="stty" number="31"/>
+  <syscall name="gtty" number="32"/>
+  <syscall name="access" number="33"/>
+  <syscall name="nice" number="34"/>
+  <syscall name="ftime" number="35"/>
+  <syscall name="sync" number="36"/>
+  <syscall name="kill" number="37"/>
+  <syscall name="rename" number="38"/>
+  <syscall name="mkdir" number="39"/>
+  <syscall name="rmdir" number="40"/>
+  <syscall name="dup" number="41"/>
+  <syscall name="pipe" number="42"/>
+  <syscall name="times" number="43"/>
+  <syscall name="prof" number="44"/>
+  <syscall name="brk" number="45"/>
+  <syscall name="setgid" number="46"/>
+  <syscall name="getgid" number="47"/>
+  <syscall name="signal" number="48"/>
+  <syscall name="geteuid" number="49"/>
+  <syscall name="getegid" number="50"/>
+  <syscall name="acct" number="51"/>
+  <syscall name="umount2" number="52"/>
+  <syscall name="lock" number="53"/>
+  <syscall name="ioctl" number="54"/>
+  <syscall name="fcntl" number="55"/>
+  <syscall name="mpx" number="56"/>
+  <syscall name="setpgid" number="57"/>
+  <syscall name="ulimit" number="58"/>
+  <syscall name="oldolduname" number="59"/>
+  <syscall name="umask" number="60"/>
+  <syscall name="chroot" number="61"/>
+  <syscall name="ustat" number="62"/>
+  <syscall name="dup2" number="63"/>
+  <syscall name="getppid" number="64"/>
+  <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="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="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="symlink" number="83"/>
+  <syscall name="oldlstat" number="84"/>
+  <syscall name="readlink" number="85"/>
+  <syscall name="uselib" number="86"/>
+  <syscall name="swapon" number="87"/>
+  <syscall name="reboot" number="88"/>
+  <syscall name="readdir" number="89"/>
+  <syscall name="mmap" number="90"/>
+  <syscall name="munmap" number="91"/>
+  <syscall name="truncate" number="92"/>
+  <syscall name="ftruncate" number="93"/>
+  <syscall name="fchmod" number="94"/>
+  <syscall name="fchown" number="95"/>
+  <syscall name="getpriority" number="96"/>
+  <syscall name="setpriority" number="97"/>
+  <syscall name="profil" number="98"/>
+  <syscall name="statfs" number="99"/>
+  <syscall name="fstatfs" number="100"/>
+  <syscall name="ioperm" number="101"/>
+  <syscall name="socketcall" number="102"/>
+  <syscall name="syslog" number="103"/>
+  <syscall name="setitimer" number="104"/>
+  <syscall name="getitimer" number="105"/>
+  <syscall name="stat" number="106"/>
+  <syscall name="lstat" number="107"/>
+  <syscall name="fstat" number="108"/>
+  <syscall name="olduname" number="109"/>
+  <syscall name="iopl" number="110"/>
+  <syscall name="vhangup" number="111"/>
+  <syscall name="idle" number="112"/>
+  <syscall name="vm86" number="113"/>
+  <syscall name="wait4" number="114"/>
+  <syscall name="swapoff" number="115"/>
+  <syscall name="sysinfo" number="116"/>
+  <syscall name="ipc" number="117"/>
+  <syscall name="fsync" number="118"/>
+  <syscall name="sigreturn" number="119"/>
+  <syscall name="clone" number="120"/>
+  <syscall name="setdomainname" number="121"/>
+  <syscall name="uname" number="122"/>
+  <syscall name="modify_ldt" number="123"/>
+  <syscall name="adjtimex" number="124"/>
+  <syscall name="mprotect" number="125"/>
+  <syscall name="sigprocmask" number="126"/>
+  <syscall name="create_module" number="127"/>
+  <syscall name="init_module" number="128"/>
+  <syscall name="delete_module" number="129"/>
+  <syscall name="get_kernel_syms" number="130"/>
+  <syscall name="quotactl" number="131"/>
+  <syscall name="getpgid" number="132"/>
+  <syscall name="fchdir" number="133"/>
+  <syscall name="bdflush" number="134"/>
+  <syscall name="sysfs" number="135"/>
+  <syscall name="personality" number="136"/>
+  <syscall name="afs_syscall" number="137"/>
+  <syscall name="setfsuid" number="138"/>
+  <syscall name="setfsgid" number="139"/>
+  <syscall name="_llseek" number="140"/>
+  <syscall name="getdents" number="141"/>
+  <syscall name="_newselect" number="142"/>
+  <syscall name="flock" number="143"/>
+  <syscall name="msync" number="144"/>
+  <syscall name="readv" number="145"/>
+  <syscall name="writev" number="146"/>
+  <syscall name="getsid" number="147"/>
+  <syscall name="fdatasync" number="148"/>
+  <syscall name="_sysctl" number="149"/>
+  <syscall name="mlock" number="150"/>
+  <syscall name="munlock" number="151"/>
+  <syscall name="mlockall" number="152"/>
+  <syscall name="munlockall" number="153"/>
+  <syscall name="sched_setparam" number="154"/>
+  <syscall name="sched_getparam" number="155"/>
+  <syscall name="sched_setscheduler" number="156"/>
+  <syscall name="sched_getscheduler" number="157"/>
+  <syscall name="sched_yield" number="158"/>
+  <syscall name="sched_get_priority_max" number="159"/>
+  <syscall name="sched_get_priority_min" number="160"/>
+  <syscall name="sched_rr_get_interval" number="161"/>
+  <syscall name="nanosleep" number="162"/>
+  <syscall name="mremap" number="163"/>
+  <syscall name="setresuid" number="164"/>
+  <syscall name="getresuid" number="165"/>
+  <syscall name="query_module" number="166"/>
+  <syscall name="poll" number="167"/>
+  <syscall name="nfsservctl" number="168"/>
+  <syscall name="setresgid" number="169"/>
+  <syscall name="getresgid" number="170"/>
+  <syscall name="prctl" number="171"/>
+  <syscall name="rt_sigreturn" number="172"/>
+  <syscall name="rt_sigaction" number="173"/>
+  <syscall name="rt_sigprocmask" number="174"/>
+  <syscall name="rt_sigpending" number="175"/>
+  <syscall name="rt_sigtimedwait" number="176"/>
+  <syscall name="rt_sigqueueinfo" number="177"/>
+  <syscall name="rt_sigsuspend" number="178"/>
+  <syscall name="pread64" number="179"/>
+  <syscall name="pwrite64" number="180"/>
+  <syscall name="chown" number="181"/>
+  <syscall name="getcwd" number="182"/>
+  <syscall name="capget" number="183"/>
+  <syscall name="capset" number="184"/>
+  <syscall name="sigaltstack" number="185"/>
+  <syscall name="sendfile" number="186"/>
+  <syscall name="getpmsg" number="187"/>
+  <syscall name="putpmsg" number="188"/>
+  <syscall name="vfork" number="189"/>
+  <syscall name="ugetrlimit" number="190"/>
+  <syscall name="readahead" number="191"/>
+  <syscall name="mmap2" number="192"/>
+  <syscall name="truncate64" number="193"/>
+  <syscall name="ftruncate64" number="194"/>
+  <syscall name="stat64" number="195"/>
+  <syscall name="lstat64" number="196"/>
+  <syscall name="fstat64" number="197"/>
+  <syscall name="pciconfig_read" number="198"/>
+  <syscall name="pciconfig_write" number="199"/>
+  <syscall name="pciconfig_iobase" number="200"/>
+  <syscall name="multiplexer" number="201"/>
+  <syscall name="getdents64" number="202"/>
+  <syscall name="pivot_root" number="203"/>
+  <syscall name="fcntl64" number="204"/>
+  <syscall name="madvise" number="205"/>
+  <syscall name="mincore" number="206"/>
+  <syscall name="gettid" number="207"/>
+  <syscall name="tkill" number="208"/>
+  <syscall name="setxattr" number="209"/>
+  <syscall name="lsetxattr" number="210"/>
+  <syscall name="fsetxattr" number="211"/>
+  <syscall name="getxattr" number="212"/>
+  <syscall name="lgetxattr" number="213"/>
+  <syscall name="fgetxattr" number="214"/>
+  <syscall name="listxattr" number="215"/>
+  <syscall name="llistxattr" number="216"/>
+  <syscall name="flistxattr" number="217"/>
+  <syscall name="removexattr" number="218"/>
+  <syscall name="lremovexattr" number="219"/>
+  <syscall name="fremovexattr" number="220"/>
+  <syscall name="futex" number="221"/>
+  <syscall name="sched_setaffinity" number="222"/>
+  <syscall name="sched_getaffinity" number="223"/>
+  <syscall name="tuxcall" number="225"/>
+  <syscall name="sendfile64" number="226"/>
+  <syscall name="io_setup" number="227"/>
+  <syscall name="io_destroy" number="228"/>
+  <syscall name="io_getevents" number="229"/>
+  <syscall name="io_submit" number="230"/>
+  <syscall name="io_cancel" number="231"/>
+  <syscall name="set_tid_address" number="232"/>
+  <syscall name="fadvise64" number="233"/>
+  <syscall name="exit_group" number="234"/>
+  <syscall name="lookup_dcookie" number="235"/>
+  <syscall name="epoll_create" number="236"/>
+  <syscall name="epoll_ctl" number="237"/>
+  <syscall name="epoll_wait" number="238"/>
+  <syscall name="remap_file_pages" number="239"/>
+  <syscall name="timer_create" number="240"/>
+  <syscall name="timer_settime" number="241"/>
+  <syscall name="timer_gettime" number="242"/>
+  <syscall name="timer_getoverrun" number="243"/>
+  <syscall name="timer_delete" number="244"/>
+  <syscall name="clock_settime" number="245"/>
+  <syscall name="clock_gettime" number="246"/>
+  <syscall name="clock_getres" number="247"/>
+  <syscall name="clock_nanosleep" number="248"/>
+  <syscall name="swapcontext" number="249"/>
+  <syscall name="tgkill" number="250"/>
+  <syscall name="utimes" number="251"/>
+  <syscall name="statfs64" number="252"/>
+  <syscall name="fstatfs64" number="253"/>
+  <syscall name="fadvise64_64" number="254"/>
+  <syscall name="rtas" number="255"/>
+  <syscall name="sys_debug_setcontext" number="256"/>
+  <syscall name="mbind" number="259"/>
+  <syscall name="get_mempolicy" number="260"/>
+  <syscall name="set_mempolicy" number="261"/>
+  <syscall name="mq_open" number="262"/>
+  <syscall name="mq_unlink" number="263"/>
+  <syscall name="mq_timedsend" number="264"/>
+  <syscall name="mq_timedreceive" number="265"/>
+  <syscall name="mq_notify" number="266"/>
+  <syscall name="mq_getsetattr" number="267"/>
+  <syscall name="kexec_load" number="268"/>
+  <syscall name="add_key" number="269"/>
+  <syscall name="request_key" number="270"/>
+  <syscall name="keyctl" number="271"/>
+  <syscall name="waitid" number="272"/>
+  <syscall name="ioprio_set" number="273"/>
+  <syscall name="ioprio_get" number="274"/>
+  <syscall name="inotify_init" number="275"/>
+  <syscall name="inotify_add_watch" number="276"/>
+  <syscall name="inotify_rm_watch" number="277"/>
+  <syscall name="spu_run" number="278"/>
+  <syscall name="spu_create" number="279"/>
+  <syscall name="pselect6" number="280"/>
+  <syscall name="ppoll" number="281"/>
+  <syscall name="unshare" number="282"/>
+  <syscall name="openat" number="286"/>
+  <syscall name="mkdirat" number="287"/>
+  <syscall name="mknodat" number="288"/>
+  <syscall name="fchownat" number="289"/>
+  <syscall name="futimesat" number="290"/>
+  <syscall name="fstatat64" number="291"/>
+  <syscall name="unlinkat" number="292"/>
+  <syscall name="renameat" number="293"/>
+  <syscall name="linkat" number="294"/>
+  <syscall name="symlinkat" number="295"/>
+  <syscall name="readlinkat" number="296"/>
+  <syscall name="fchmodat" number="297"/>
+  <syscall name="faccessat" number="298"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/ppc64-linux.xml b/share/gdb/syscalls/ppc64-linux.xml
new file mode 100644
index 0000000..0b0b2ea
--- /dev/null
+++ b/share/gdb/syscalls/ppc64-linux.xml
@@ -0,0 +1,295 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2009, 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/powerpc/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<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="waitpid" number="7"/>
+  <syscall name="creat" number="8"/>
+  <syscall name="link" number="9"/>
+  <syscall name="unlink" number="10"/>
+  <syscall name="execve" number="11"/>
+  <syscall name="chdir" number="12"/>
+  <syscall name="time" number="13"/>
+  <syscall name="mknod" number="14"/>
+  <syscall name="chmod" number="15"/>
+  <syscall name="lchown" number="16"/>
+  <syscall name="break" number="17"/>
+  <syscall name="oldstat" number="18"/>
+  <syscall name="lseek" number="19"/>
+  <syscall name="getpid" number="20"/>
+  <syscall name="mount" number="21"/>
+  <syscall name="umount" number="22"/>
+  <syscall name="setuid" number="23"/>
+  <syscall name="getuid" number="24"/>
+  <syscall name="stime" number="25"/>
+  <syscall name="ptrace" number="26"/>
+  <syscall name="alarm" number="27"/>
+  <syscall name="oldfstat" number="28"/>
+  <syscall name="pause" number="29"/>
+  <syscall name="utime" number="30"/>
+  <syscall name="stty" number="31"/>
+  <syscall name="gtty" number="32"/>
+  <syscall name="access" number="33"/>
+  <syscall name="nice" number="34"/>
+  <syscall name="ftime" number="35"/>
+  <syscall name="sync" number="36"/>
+  <syscall name="kill" number="37"/>
+  <syscall name="rename" number="38"/>
+  <syscall name="mkdir" number="39"/>
+  <syscall name="rmdir" number="40"/>
+  <syscall name="dup" number="41"/>
+  <syscall name="pipe" number="42"/>
+  <syscall name="times" number="43"/>
+  <syscall name="prof" number="44"/>
+  <syscall name="brk" number="45"/>
+  <syscall name="setgid" number="46"/>
+  <syscall name="getgid" number="47"/>
+  <syscall name="signal" number="48"/>
+  <syscall name="geteuid" number="49"/>
+  <syscall name="getegid" number="50"/>
+  <syscall name="acct" number="51"/>
+  <syscall name="umount2" number="52"/>
+  <syscall name="lock" number="53"/>
+  <syscall name="ioctl" number="54"/>
+  <syscall name="fcntl" number="55"/>
+  <syscall name="mpx" number="56"/>
+  <syscall name="setpgid" number="57"/>
+  <syscall name="ulimit" number="58"/>
+  <syscall name="oldolduname" number="59"/>
+  <syscall name="umask" number="60"/>
+  <syscall name="chroot" number="61"/>
+  <syscall name="ustat" number="62"/>
+  <syscall name="dup2" number="63"/>
+  <syscall name="getppid" number="64"/>
+  <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="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="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="symlink" number="83"/>
+  <syscall name="oldlstat" number="84"/>
+  <syscall name="readlink" number="85"/>
+  <syscall name="uselib" number="86"/>
+  <syscall name="swapon" number="87"/>
+  <syscall name="reboot" number="88"/>
+  <syscall name="readdir" number="89"/>
+  <syscall name="mmap" number="90"/>
+  <syscall name="munmap" number="91"/>
+  <syscall name="truncate" number="92"/>
+  <syscall name="ftruncate" number="93"/>
+  <syscall name="fchmod" number="94"/>
+  <syscall name="fchown" number="95"/>
+  <syscall name="getpriority" number="96"/>
+  <syscall name="setpriority" number="97"/>
+  <syscall name="profil" number="98"/>
+  <syscall name="statfs" number="99"/>
+  <syscall name="fstatfs" number="100"/>
+  <syscall name="ioperm" number="101"/>
+  <syscall name="socketcall" number="102"/>
+  <syscall name="syslog" number="103"/>
+  <syscall name="setitimer" number="104"/>
+  <syscall name="getitimer" number="105"/>
+  <syscall name="stat" number="106"/>
+  <syscall name="lstat" number="107"/>
+  <syscall name="fstat" number="108"/>
+  <syscall name="olduname" number="109"/>
+  <syscall name="iopl" number="110"/>
+  <syscall name="vhangup" number="111"/>
+  <syscall name="idle" number="112"/>
+  <syscall name="vm86" number="113"/>
+  <syscall name="wait4" number="114"/>
+  <syscall name="swapoff" number="115"/>
+  <syscall name="sysinfo" number="116"/>
+  <syscall name="ipc" number="117"/>
+  <syscall name="fsync" number="118"/>
+  <syscall name="sigreturn" number="119"/>
+  <syscall name="clone" number="120"/>
+  <syscall name="setdomainname" number="121"/>
+  <syscall name="uname" number="122"/>
+  <syscall name="modify_ldt" number="123"/>
+  <syscall name="adjtimex" number="124"/>
+  <syscall name="mprotect" number="125"/>
+  <syscall name="sigprocmask" number="126"/>
+  <syscall name="create_module" number="127"/>
+  <syscall name="init_module" number="128"/>
+  <syscall name="delete_module" number="129"/>
+  <syscall name="get_kernel_syms" number="130"/>
+  <syscall name="quotactl" number="131"/>
+  <syscall name="getpgid" number="132"/>
+  <syscall name="fchdir" number="133"/>
+  <syscall name="bdflush" number="134"/>
+  <syscall name="sysfs" number="135"/>
+  <syscall name="personality" number="136"/>
+  <syscall name="afs_syscall" number="137"/>
+  <syscall name="setfsuid" number="138"/>
+  <syscall name="setfsgid" number="139"/>
+  <syscall name="_llseek" number="140"/>
+  <syscall name="getdents" number="141"/>
+  <syscall name="_newselect" number="142"/>
+  <syscall name="flock" number="143"/>
+  <syscall name="msync" number="144"/>
+  <syscall name="readv" number="145"/>
+  <syscall name="writev" number="146"/>
+  <syscall name="getsid" number="147"/>
+  <syscall name="fdatasync" number="148"/>
+  <syscall name="_sysctl" number="149"/>
+  <syscall name="mlock" number="150"/>
+  <syscall name="munlock" number="151"/>
+  <syscall name="mlockall" number="152"/>
+  <syscall name="munlockall" number="153"/>
+  <syscall name="sched_setparam" number="154"/>
+  <syscall name="sched_getparam" number="155"/>
+  <syscall name="sched_setscheduler" number="156"/>
+  <syscall name="sched_getscheduler" number="157"/>
+  <syscall name="sched_yield" number="158"/>
+  <syscall name="sched_get_priority_max" number="159"/>
+  <syscall name="sched_get_priority_min" number="160"/>
+  <syscall name="sched_rr_get_interval" number="161"/>
+  <syscall name="nanosleep" number="162"/>
+  <syscall name="mremap" number="163"/>
+  <syscall name="setresuid" number="164"/>
+  <syscall name="getresuid" number="165"/>
+  <syscall name="query_module" number="166"/>
+  <syscall name="poll" number="167"/>
+  <syscall name="nfsservctl" number="168"/>
+  <syscall name="setresgid" number="169"/>
+  <syscall name="getresgid" number="170"/>
+  <syscall name="prctl" number="171"/>
+  <syscall name="rt_sigreturn" number="172"/>
+  <syscall name="rt_sigaction" number="173"/>
+  <syscall name="rt_sigprocmask" number="174"/>
+  <syscall name="rt_sigpending" number="175"/>
+  <syscall name="rt_sigtimedwait" number="176"/>
+  <syscall name="rt_sigqueueinfo" number="177"/>
+  <syscall name="rt_sigsuspend" number="178"/>
+  <syscall name="pread64" number="179"/>
+  <syscall name="pwrite64" number="180"/>
+  <syscall name="chown" number="181"/>
+  <syscall name="getcwd" number="182"/>
+  <syscall name="capget" number="183"/>
+  <syscall name="capset" number="184"/>
+  <syscall name="sigaltstack" number="185"/>
+  <syscall name="sendfile" number="186"/>
+  <syscall name="getpmsg" number="187"/>
+  <syscall name="putpmsg" number="188"/>
+  <syscall name="vfork" number="189"/>
+  <syscall name="ugetrlimit" number="190"/>
+  <syscall name="readahead" number="191"/>
+  <syscall name="pciconfig_read" number="198"/>
+  <syscall name="pciconfig_write" number="199"/>
+  <syscall name="pciconfig_iobase" number="200"/>
+  <syscall name="multiplexer" number="201"/>
+  <syscall name="getdents64" number="202"/>
+  <syscall name="pivot_root" number="203"/>
+  <syscall name="madvise" number="205"/>
+  <syscall name="mincore" number="206"/>
+  <syscall name="gettid" number="207"/>
+  <syscall name="tkill" number="208"/>
+  <syscall name="setxattr" number="209"/>
+  <syscall name="lsetxattr" number="210"/>
+  <syscall name="fsetxattr" number="211"/>
+  <syscall name="getxattr" number="212"/>
+  <syscall name="lgetxattr" number="213"/>
+  <syscall name="fgetxattr" number="214"/>
+  <syscall name="listxattr" number="215"/>
+  <syscall name="llistxattr" number="216"/>
+  <syscall name="flistxattr" number="217"/>
+  <syscall name="removexattr" number="218"/>
+  <syscall name="lremovexattr" number="219"/>
+  <syscall name="fremovexattr" number="220"/>
+  <syscall name="futex" number="221"/>
+  <syscall name="sched_setaffinity" number="222"/>
+  <syscall name="sched_getaffinity" number="223"/>
+  <syscall name="tuxcall" number="225"/>
+  <syscall name="io_setup" number="227"/>
+  <syscall name="io_destroy" number="228"/>
+  <syscall name="io_getevents" number="229"/>
+  <syscall name="io_submit" number="230"/>
+  <syscall name="io_cancel" number="231"/>
+  <syscall name="set_tid_address" number="232"/>
+  <syscall name="fadvise64" number="233"/>
+  <syscall name="exit_group" number="234"/>
+  <syscall name="lookup_dcookie" number="235"/>
+  <syscall name="epoll_create" number="236"/>
+  <syscall name="epoll_ctl" number="237"/>
+  <syscall name="epoll_wait" number="238"/>
+  <syscall name="remap_file_pages" number="239"/>
+  <syscall name="timer_create" number="240"/>
+  <syscall name="timer_settime" number="241"/>
+  <syscall name="timer_gettime" number="242"/>
+  <syscall name="timer_getoverrun" number="243"/>
+  <syscall name="timer_delete" number="244"/>
+  <syscall name="clock_settime" number="245"/>
+  <syscall name="clock_gettime" number="246"/>
+  <syscall name="clock_getres" number="247"/>
+  <syscall name="clock_nanosleep" number="248"/>
+  <syscall name="swapcontext" number="249"/>
+  <syscall name="tgkill" number="250"/>
+  <syscall name="utimes" number="251"/>
+  <syscall name="statfs64" number="252"/>
+  <syscall name="fstatfs64" number="253"/>
+  <syscall name="rtas" number="255"/>
+  <syscall name="sys_debug_setcontext" number="256"/>
+  <syscall name="mbind" number="259"/>
+  <syscall name="get_mempolicy" number="260"/>
+  <syscall name="set_mempolicy" number="261"/>
+  <syscall name="mq_open" number="262"/>
+  <syscall name="mq_unlink" number="263"/>
+  <syscall name="mq_timedsend" number="264"/>
+  <syscall name="mq_timedreceive" number="265"/>
+  <syscall name="mq_notify" number="266"/>
+  <syscall name="mq_getsetattr" number="267"/>
+  <syscall name="kexec_load" number="268"/>
+  <syscall name="add_key" number="269"/>
+  <syscall name="request_key" number="270"/>
+  <syscall name="keyctl" number="271"/>
+  <syscall name="waitid" number="272"/>
+  <syscall name="ioprio_set" number="273"/>
+  <syscall name="ioprio_get" number="274"/>
+  <syscall name="inotify_init" number="275"/>
+  <syscall name="inotify_add_watch" number="276"/>
+  <syscall name="inotify_rm_watch" number="277"/>
+  <syscall name="spu_run" number="278"/>
+  <syscall name="spu_create" number="279"/>
+  <syscall name="pselect6" number="280"/>
+  <syscall name="ppoll" number="281"/>
+  <syscall name="unshare" number="282"/>
+  <syscall name="unlinkat" number="286"/>
+  <syscall name="renameat" number="287"/>
+  <syscall name="linkat" number="288"/>
+  <syscall name="symlinkat" number="289"/>
+  <syscall name="readlinkat" number="290"/>
+  <syscall name="fchmodat" number="291"/>
+  <syscall name="faccessat" number="292"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/sparc-linux.xml b/share/gdb/syscalls/sparc-linux.xml
new file mode 100644
index 0000000..3820809
--- /dev/null
+++ b/share/gdb/syscalls/sparc-linux.xml
@@ -0,0 +1,344 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2010, 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<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="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="perfctr" number="18"/>
+  <syscall name="lseek" number="19"/>
+  <syscall name="getpid" number="20"/>
+  <syscall name="capget" number="21"/>
+  <syscall name="capset" number="22"/>
+  <syscall name="setuid" number="23"/>
+  <syscall name="getuid" number="24"/>
+  <syscall name="vmsplice" number="25"/>
+  <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="lchown32" number="31"/>
+  <syscall name="fchown32" number="32"/>
+  <syscall name="access" number="33"/>
+  <syscall name="nice" number="34"/>
+  <syscall name="chown32" number="35"/>
+  <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="times" number="43"/>
+  <syscall name="getuid32" number="44"/>
+  <syscall name="umount2" number="45"/>
+  <syscall name="setgid" number="46"/>
+  <syscall name="getgid" number="47"/>
+  <syscall name="signal" number="48"/>
+  <syscall name="geteuid" number="49"/>
+  <syscall name="getegid" number="50"/>
+  <syscall name="acct" number="51"/>
+  <syscall name="getgid32" number="53"/>
+  <syscall name="ioctl" number="54"/>
+  <syscall name="reboot" number="55"/>
+  <syscall name="mmap2" number="56"/>
+  <syscall name="symlink" number="57"/>
+  <syscall name="readlink" number="58"/>
+  <syscall name="execve" number="59"/>
+  <syscall name="umask" number="60"/>
+  <syscall name="chroot" number="61"/>
+  <syscall name="fstat" number="62"/>
+  <syscall name="fstat64" number="63"/>
+  <syscall name="getpagesize" number="64"/>
+  <syscall name="msync" number="65"/>
+  <syscall name="vfork" number="66"/>
+  <syscall name="pread64" number="67"/>
+  <syscall name="pwrite64" number="68"/>
+  <syscall name="geteuid32" number="69"/>
+  <syscall name="getegid32" number="70"/>
+  <syscall name="mmap" number="71"/>
+  <syscall name="setreuid32" number="72"/>
+  <syscall name="munmap" number="73"/>
+  <syscall name="mprotect" number="74"/>
+  <syscall name="madvise" number="75"/>
+  <syscall name="vhangup" number="76"/>
+  <syscall name="truncate64" number="77"/>
+  <syscall name="mincore" number="78"/>
+  <syscall name="getgroups" number="79"/>
+  <syscall name="setgroups" number="80"/>
+  <syscall name="getpgrp" number="81"/>
+  <syscall name="setgroups32" number="82"/>
+  <syscall name="setitimer" number="83"/>
+  <syscall name="ftruncate64" number="84"/>
+  <syscall name="swapon" number="85"/>
+  <syscall name="getitimer" number="86"/>
+  <syscall name="setuid32" number="87"/>
+  <syscall name="sethostname" number="88"/>
+  <syscall name="setgid32" number="89"/>
+  <syscall name="dup2" number="90"/>
+  <syscall name="setfsuid32" number="91"/>
+  <syscall name="fcntl" number="92"/>
+  <syscall name="select" number="93"/>
+  <syscall name="setfsgid32" number="94"/>
+  <syscall name="fsync" number="95"/>
+  <syscall name="setpriority" number="96"/>
+  <syscall name="socket" number="97"/>
+  <syscall name="connect" number="98"/>
+  <syscall name="accept" number="99"/>
+  <syscall name="getpriority" number="100"/>
+  <syscall name="rt_sigreturn" number="101"/>
+  <syscall name="rt_sigaction" number="102"/>
+  <syscall name="rt_sigprocmask" number="103"/>
+  <syscall name="rt_sigpending" number="104"/>
+  <syscall name="rt_sigtimedwait" number="105"/>
+  <syscall name="rt_sigqueueinfo" number="106"/>
+  <syscall name="rt_sigsuspend" number="107"/>
+  <syscall name="setresuid32" number="108"/>
+  <syscall name="getresuid32" number="109"/>
+  <syscall name="setresgid32" number="110"/>
+  <syscall name="getresgid32" number="111"/>
+  <syscall name="setregid32" number="112"/>
+  <syscall name="recvmsg" number="113"/>
+  <syscall name="sendmsg" number="114"/>
+  <syscall name="getgroups32" number="115"/>
+  <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="settimeofday" number="122"/>
+  <syscall name="fchown" number="123"/>
+  <syscall name="fchmod" number="124"/>
+  <syscall name="recvfrom" number="125"/>
+  <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="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="prctl" number="147"/>
+  <syscall name="pciconfig_read" number="148"/>
+  <syscall name="pciconfig_write" number="149"/>
+  <syscall name="getsockname" number="150"/>
+  <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="fcntl64" number="155"/>
+  <syscall name="inotify_rm_watch" number="156"/>
+  <syscall name="statfs" number="157"/>
+  <syscall name="fstatfs" number="158"/>
+  <syscall name="umount" number="159"/>
+  <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="quotactl" number="165"/>
+  <syscall name="set_tid_address" number="166"/>
+  <syscall name="mount" number="167"/>
+  <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="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="removexattr" number="181"/>
+  <syscall name="lremovexattr" number="182"/>
+  <syscall name="sigpending" number="183"/>
+  <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="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="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="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="syslog" number="207"/>
+  <syscall name="lookup_dcookie" number="208"/>
+  <syscall name="fadvise64" number="209"/>
+  <syscall name="fadvise64_64" number="210"/>
+  <syscall name="tgkill" number="211"/>
+  <syscall name="waitpid" number="212"/>
+  <syscall name="swapoff" number="213"/>
+  <syscall name="sysinfo" number="214"/>
+  <syscall name="ipc" number="215"/>
+  <syscall name="sigreturn" number="216"/>
+  <syscall name="clone" number="217"/>
+  <syscall name="ioprio_get" number="218"/>
+  <syscall name="adjtimex" number="219"/>
+  <syscall name="sigprocmask" number="220"/>
+  <syscall name="create_module" number="221"/>
+  <syscall name="delete_module" number="222"/>
+  <syscall name="get_kernel_syms" number="223"/>
+  <syscall name="getpgid" number="224"/>
+  <syscall name="bdflush" number="225"/>
+  <syscall name="sysfs" number="226"/>
+  <syscall name="afs_syscall" number="227"/>
+  <syscall name="setfsuid" number="228"/>
+  <syscall name="setfsgid" number="229"/>
+  <syscall name="_newselect" number="230"/>
+  <syscall name="time" number="231"/>
+  <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="sched_setparam" number="241"/>
+  <syscall name="sched_getparam" number="242"/>
+  <syscall name="sched_setscheduler" number="243"/>
+  <syscall name="sched_getscheduler" number="244"/>
+  <syscall name="sched_yield" number="245"/>
+  <syscall name="sched_get_priority_max" number="246"/>
+  <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="_sysctl" number="251"/>
+  <syscall name="getsid" number="252"/>
+  <syscall name="fdatasync" number="253"/>
+  <syscall name="nfsservctl" number="254"/>
+  <syscall name="sync_file_range" number="255"/>
+  <syscall name="clock_settime" number="256"/>
+  <syscall name="clock_gettime" number="257"/>
+  <syscall name="clock_getres" number="258"/>
+  <syscall name="clock_nanosleep" number="259"/>
+  <syscall name="sched_getaffinity" number="260"/>
+  <syscall name="sched_setaffinity" number="261"/>
+  <syscall name="timer_settime" number="262"/>
+  <syscall name="timer_gettime" number="263"/>
+  <syscall name="timer_getoverrun" number="264"/>
+  <syscall name="timer_delete" number="265"/>
+  <syscall name="timer_create" number="266"/>
+  <syscall name="vserver" number="267"/>
+  <syscall name="io_setup" number="268"/>
+  <syscall name="io_destroy" number="269"/>
+  <syscall name="io_submit" number="270"/>
+  <syscall name="io_cancel" number="271"/>
+  <syscall name="io_getevents" number="272"/>
+  <syscall name="mq_open" number="273"/>
+  <syscall name="mq_unlink" number="274"/>
+  <syscall name="mq_timedsend" number="275"/>
+  <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="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="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="kexec_load" number="306"/>
+  <syscall name="move_pages" number="307"/>
+  <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"/>
+</syscalls_info>
diff --git a/share/gdb/syscalls/sparc64-linux.xml b/share/gdb/syscalls/sparc64-linux.xml
new file mode 100644
index 0000000..df8118b
--- /dev/null
+++ b/share/gdb/syscalls/sparc64-linux.xml
@@ -0,0 +1,326 @@
+<?xml version="1.0"?>
+<!-- Copyright (C) 2010, 2011 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">
+
+<!-- This file was generated using the following file:
+     
+     /usr/src/linux/arch/sparc/include/asm/unistd.h
+
+     The file mentioned above belongs to the Linux Kernel.  -->
+
+<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="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="perfctr" number="18"/>
+  <syscall name="lseek" number="19"/>
+  <syscall name="getpid" number="20"/>
+  <syscall name="capget" number="21"/>
+  <syscall name="capset" number="22"/>
+  <syscall name="setuid" number="23"/>
+  <syscall name="getuid" number="24"/>
+  <syscall name="vmsplice" number="25"/>
+  <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="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="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="geteuid" number="49"/>
+  <syscall name="getegid" number="50"/>
+  <syscall name="acct" number="51"/>
+  <syscall name="memory_ordering" number="52"/>
+  <syscall name="ioctl" number="54"/>
+  <syscall name="reboot" number="55"/>
+  <syscall name="symlink" number="57"/>
+  <syscall name="readlink" number="58"/>
+  <syscall name="execve" number="59"/>
+  <syscall name="umask" number="60"/>
+  <syscall name="chroot" number="61"/>
+  <syscall name="fstat" number="62"/>
+  <syscall name="fstat64" number="63"/>
+  <syscall name="getpagesize" number="64"/>
+  <syscall name="msync" number="65"/>
+  <syscall name="vfork" number="66"/>
+  <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="vhangup" number="76"/>
+  <syscall name="mincore" number="78"/>
+  <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="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="setpriority" number="96"/>
+  <syscall name="socket" number="97"/>
+  <syscall name="connect" number="98"/>
+  <syscall name="accept" number="99"/>
+  <syscall name="getpriority" number="100"/>
+  <syscall name="rt_sigreturn" number="101"/>
+  <syscall name="rt_sigaction" number="102"/>
+  <syscall name="rt_sigprocmask" number="103"/>
+  <syscall name="rt_sigpending" number="104"/>
+  <syscall name="rt_sigtimedwait" number="105"/>
+  <syscall name="rt_sigqueueinfo" number="106"/>
+  <syscall name="rt_sigsuspend" number="107"/>
+  <syscall name="setresuid" number="108"/>
+  <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="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="settimeofday" number="122"/>
+  <syscall name="fchown" number="123"/>
+  <syscall name="fchmod" number="124"/>
+  <syscall name="recvfrom" number="125"/>
+  <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="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="prctl" number="147"/>
+  <syscall name="pciconfig_read" number="148"/>
+  <syscall name="pciconfig_write" number="149"/>
+  <syscall name="getsockname" number="150"/>
+  <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="inotify_rm_watch" number="156"/>
+  <syscall name="statfs" number="157"/>
+  <syscall name="fstatfs" number="158"/>
+  <syscall name="umount" number="159"/>
+  <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="set_tid_address" number="166"/>
+  <syscall name="mount" number="167"/>
+  <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="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="removexattr" number="181"/>
+  <syscall name="lremovexattr" number="182"/>
+  <syscall name="sigpending" number="183"/>
+  <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="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="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="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="syslog" number="207"/>
+  <syscall name="lookup_dcookie" number="208"/>
+  <syscall name="fadvise64" number="209"/>
+  <syscall name="fadvise64_64" number="210"/>
+  <syscall name="tgkill" number="211"/>
+  <syscall name="waitpid" number="212"/>
+  <syscall name="swapoff" number="213"/>
+  <syscall name="sysinfo" number="214"/>
+  <syscall name="ipc" number="215"/>
+  <syscall name="sigreturn" number="216"/>
+  <syscall name="clone" number="217"/>
+  <syscall name="ioprio_get" number="218"/>
+  <syscall name="adjtimex" number="219"/>
+  <syscall name="sigprocmask" number="220"/>
+  <syscall name="create_module" number="221"/>
+  <syscall name="delete_module" number="222"/>
+  <syscall name="get_kernel_syms" number="223"/>
+  <syscall name="getpgid" number="224"/>
+  <syscall name="bdflush" number="225"/>
+  <syscall name="sysfs" number="226"/>
+  <syscall name="afs_syscall" number="227"/>
+  <syscall name="setfsuid" number="228"/>
+  <syscall name="setfsgid" number="229"/>
+  <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="sched_setparam" number="241"/>
+  <syscall name="sched_getparam" number="242"/>
+  <syscall name="sched_setscheduler" number="243"/>
+  <syscall name="sched_getscheduler" number="244"/>
+  <syscall name="sched_yield" number="245"/>
+  <syscall name="sched_get_priority_max" number="246"/>
+  <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="_sysctl" number="251"/>
+  <syscall name="getsid" number="252"/>
+  <syscall name="fdatasync" number="253"/>
+  <syscall name="nfsservctl" number="254"/>
+  <syscall name="sync_file_range" number="255"/>
+  <syscall name="clock_settime" number="256"/>
+  <syscall name="clock_gettime" number="257"/>
+  <syscall name="clock_getres" number="258"/>
+  <syscall name="clock_nanosleep" number="259"/>
+  <syscall name="sched_getaffinity" number="260"/>
+  <syscall name="sched_setaffinity" number="261"/>
+  <syscall name="timer_settime" number="262"/>
+  <syscall name="timer_gettime" number="263"/>
+  <syscall name="timer_getoverrun" number="264"/>
+  <syscall name="timer_delete" number="265"/>
+  <syscall name="timer_create" number="266"/>
+  <syscall name="vserver" number="267"/>
+  <syscall name="io_setup" number="268"/>
+  <syscall name="io_destroy" number="269"/>
+  <syscall name="io_submit" number="270"/>
+  <syscall name="io_cancel" number="271"/>
+  <syscall name="io_getevents" number="272"/>
+  <syscall name="mq_open" number="273"/>
+  <syscall name="mq_unlink" number="274"/>
+  <syscall name="mq_timedsend" number="275"/>
+  <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="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="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="kexec_load" number="306"/>
+  <syscall name="move_pages" number="307"/>
+  <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"/>
+</syscalls_info>