update toolchain to gcc 5.3.0

Change-Id: I364d98fc389381b929ed2ada8873a823ada1650f
diff --git a/Build.Info/0001-Build-libraries-statically-to-make-hermetic-builds-w.patch b/Build.Info/0001-Build-libraries-statically-to-make-hermetic-builds-w.patch
index 86d2322..82b354d 100644
--- a/Build.Info/0001-Build-libraries-statically-to-make-hermetic-builds-w.patch
+++ b/Build.Info/0001-Build-libraries-statically-to-make-hermetic-builds-w.patch
@@ -1,25 +1,26 @@
-From 39c92fa91756747fa8eaf1fc898214658d1f8451 Mon Sep 17 00:00:00 2001
-From: John Newlin <jnewlin@google.com>
-Date: Fri, 3 Oct 2014 21:58:51 -0700
-Subject: [PATCH 1/5] Build libraries statically to make hermetic builds work.
+From e50317af941c76d97b72b8c847db83e4f134a1d7 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 13:37:57 -0700
+Subject: [PATCH 01/17] Build libraries statically to make hermetic builds
+ work.
 
 ---
  package/pkg-autotools.mk | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/package/pkg-autotools.mk b/package/pkg-autotools.mk
-index 4404f15..e4e4df9 100644
+index 502eeea..bb1c9a7 100644
 --- a/package/pkg-autotools.mk
 +++ b/package/pkg-autotools.mk
-@@ -165,7 +165,7 @@ define $(2)_CONFIGURE_CMDS
- 		./configure \
+@@ -223,7 +223,7 @@ define $(2)_CONFIGURE_CMDS
  		--prefix="$$(HOST_DIR)/usr" \
  		--sysconfdir="$$(HOST_DIR)/etc" \
+ 		--localstatedir="$$(HOST_DIR)/var" \
 -		--enable-shared --disable-static \
 +		--disable-shared --enable-static \
  		--disable-gtk-doc \
+ 		--disable-gtk-doc-html \
  		--disable-doc \
- 		--disable-docs \
 -- 
-2.1.0.rc2.206.gedb03e5
+2.8.0.rc3.226.g39d4020
 
diff --git a/Build.Info/0002-Disable-XLOCALE-to-match-old-bruno-toolchain.patch b/Build.Info/0002-Disable-XLOCALE-to-match-old-bruno-toolchain.patch
index 9245b20..f59beab 100644
--- a/Build.Info/0002-Disable-XLOCALE-to-match-old-bruno-toolchain.patch
+++ b/Build.Info/0002-Disable-XLOCALE-to-match-old-bruno-toolchain.patch
@@ -1,17 +1,17 @@
-From 4ee11a53dfc888ed02e1c76b6414442364fa1600 Mon Sep 17 00:00:00 2001
-From: John Newlin <jnewlin@google.com>
-Date: Tue, 14 Oct 2014 20:13:25 -0700
-Subject: [PATCH 2/5] Disable XLOCALE to match old bruno toolchain.
+From ce95763f4d61c88c958bc426d66765aa4b7ef08c Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 13:39:50 -0700
+Subject: [PATCH 02/17] Disable XLOCALE to match old bruno toolchain.
 
 ---
  package/uclibc/uclibc.mk | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
-index 5933973..3180885 100644
+index 200de04..db741d5 100644
 --- a/package/uclibc/uclibc.mk
 +++ b/package/uclibc/uclibc.mk
-@@ -362,7 +362,7 @@ define UCLIBC_LOCALE_CONFIG
+@@ -311,7 +311,7 @@ define UCLIBC_LOCALE_CONFIG
  	$(call KCONFIG_SET_OPT,UCLIBC_BUILD_MINIMAL_LOCALES,"$(UCLIBC_LOCALES)",$(@D)/.config)
  	$(call KCONFIG_DISABLE_OPT,UCLIBC_PREGENERATED_LOCALE_DATA,$(@D)/.config)
  	$(call KCONFIG_DISABLE_OPT,DOWNLOAD_PREGENERATED_LOCALE_DATA,$(@D)/.config)
@@ -21,5 +21,5 @@
  endef
  else
 -- 
-2.1.0.rc2.206.gedb03e5
+2.8.0.rc3.226.g39d4020
 
diff --git a/Build.Info/0003-Change-config-options-to-match-the-.config-from-brcm.patch b/Build.Info/0003-Change-config-options-to-match-the-.config-from-brcm.patch
index 654064f..2b4364e 100644
--- a/Build.Info/0003-Change-config-options-to-match-the-.config-from-brcm.patch
+++ b/Build.Info/0003-Change-config-options-to-match-the-.config-from-brcm.patch
@@ -1,47 +1,33 @@
-From 25368852f896b9b4c0fe4434da36c71a34f2eae0 Mon Sep 17 00:00:00 2001
-From: John Newlin <jnewlin@google.com>
-Date: Thu, 16 Oct 2014 12:03:21 -0700
-Subject: [PATCH 3/5] Change config options to match the .config from brcm.
+From e081fea8223529c97bc8cea10efccd738ff2a188 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 13:48:43 -0700
+Subject: [PATCH 03/17] Change config options to match the .config from brcm.
 
 ---
- package/uclibc/uClibc-0.9.33.config | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ package/uclibc/uClibc-ng.config | 3 +++
+ 1 file changed, 3 insertions(+)
 
-diff --git a/package/uclibc/uClibc-0.9.33.config b/package/uclibc/uClibc-0.9.33.config
-index eb39df6..6b9d2ed 100644
---- a/package/uclibc/uClibc-0.9.33.config
-+++ b/package/uclibc/uClibc-0.9.33.config
-@@ -56,8 +56,9 @@ TARGET_SUBARCH=""
- #
- # Target Architecture Features and Options
- #
--TARGET_ARCH="none"
+diff --git a/package/uclibc/uClibc-ng.config b/package/uclibc/uClibc-ng.config
+index c17603d..66c7688 100644
+--- a/package/uclibc/uClibc-ng.config
++++ b/package/uclibc/uClibc-ng.config
+@@ -2,6 +2,8 @@ DO_C99_MATH=y
+ KERNEL_HEADERS="/usr/src/linux/include"
+ # LDSO_CACHE_SUPPORT is not set
+ # UCLIBC_STATIC_LDCONFIG is not set
 +TARGET_ARCH="mips"
- FORCE_OPTIONS_FOR_ARCH=y
 +CONFIG_MIPS_O32_ABI=y
- #
- # Using ELF file format
- #
-@@ -205,8 +206,8 @@ UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
- # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
- # UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
- # UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
--# UCLIBC_HAS_STDIO_GETC_MACRO is not set
--# UCLIBC_HAS_STDIO_PUTC_MACRO is not set
-+UCLIBC_HAS_STDIO_GETC_MACRO=y
-+UCLIBC_HAS_STDIO_PUTC_MACRO=y
- UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
- # UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
- UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
-@@ -271,7 +272,7 @@ DOSTRIP=y
- # SUPPORT_LD_DEBUG is not set
- # SUPPORT_LD_DEBUG_EARLY is not set
- # UCLIBC_MALLOC_DEBUGGING is not set
--# UCLIBC_HAS_BACKTRACE is not set
+ LDSO_RUNPATH=y
+ LDSO_RUNPATH_OF_EXECUTABLE=y
+ MALLOC_GLIBC_COMPAT=y
+@@ -34,6 +36,7 @@ UCLIBC_HAS_PRINTF_M_SPEC=y
+ UCLIBC_HAS_NFTW=y
+ UCLIBC_HAS_FTW=y
+ UCLIBC_HAS_GNU_GLOB=y
 +UCLIBC_HAS_BACKTRACE=y
- WARNINGS="-Wall"
- # EXTRA_WARNINGS is not set
- # DOMULTI is not set
+ RUNTIME_PREFIX="/"
+ DEVEL_PREFIX="/usr/"
+ UCLIBC_HAS_SSP=y
 -- 
-2.1.0.rc2.206.gedb03e5
+2.8.0.rc3.226.g39d4020
 
diff --git a/Build.Info/0004-Add-broadcom-s-memcpy-patch.patch b/Build.Info/0004-Add-broadcom-s-memcpy-patch.patch
index 9ebfe00..898b40a 100644
--- a/Build.Info/0004-Add-broadcom-s-memcpy-patch.patch
+++ b/Build.Info/0004-Add-broadcom-s-memcpy-patch.patch
@@ -1,19 +1,19 @@
-From 131dad5082834d5c21d81973d51e939dfb1a573c Mon Sep 17 00:00:00 2001
-From: John Newlin <jnewlin@google.com>
-Date: Mon, 20 Oct 2014 10:28:00 -0700
-Subject: [PATCH 4/5] Add broadcom's memcpy patch.
+From 3dcf0493f4305736238da1e92b56f78274e02ad6 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 13:52:08 -0700
+Subject: [PATCH 04/17] Add broadcom's memcpy patch.
 
 ---
- .../uclibc/0.9.33.2/uclibc-0063-brcm-memcpy.patch  | 2120 ++++++++++++++++++++
- 1 file changed, 2120 insertions(+)
- create mode 100644 package/uclibc/0.9.33.2/uclibc-0063-brcm-memcpy.patch
+ package/uclibc/uclibc-0063-brcm-memcpy.patch | 2091 ++++++++++++++++++++++++++
+ 1 file changed, 2091 insertions(+)
+ create mode 100644 package/uclibc/uclibc-0063-brcm-memcpy.patch
 
-diff --git a/package/uclibc/0.9.33.2/uclibc-0063-brcm-memcpy.patch b/package/uclibc/0.9.33.2/uclibc-0063-brcm-memcpy.patch
+diff --git a/package/uclibc/uclibc-0063-brcm-memcpy.patch b/package/uclibc/uclibc-0063-brcm-memcpy.patch
 new file mode 100644
-index 0000000..2112f81
+index 0000000..3108abe
 --- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0063-brcm-memcpy.patch
-@@ -0,0 +1,2120 @@
++++ b/package/uclibc/uclibc-0063-brcm-memcpy.patch
+@@ -0,0 +1,2091 @@
 +commit e4756b4171ce4f6d4f58e0454335a09c3e7d6e6f
 +Author: Kevin Cernekee <cernekee@gmail.com>
 +Date:   Sat Apr 16 19:39:05 2011 -0700
@@ -2081,47 +2081,18 @@
 ++
 ++#endif /* !defined(__mips64) */
 +diff --git a/libc/string/mips/memcpy.S b/libc/string/mips/memcpy.S
-+index 9b05ee6..8ee76fd 100644
++index 59f9f0a..bf47d67 100644
 +--- a/libc/string/mips/memcpy.S
 ++++ b/libc/string/mips/memcpy.S
-+@@ -40,7 +40,7 @@
-+ #  define SDLO	sdl		/* low part is left in little-endian	*/
++@@ -197,7 +197,7 @@
++ 
++ /* Allow the routine to be named something else if desired.  */
++ #ifndef MEMCPY_NAME
++-# define MEMCPY_NAME memcpy
+++# define MEMCPY_NAME __uclibc_memcpy
 + #endif
 + 
-+-ENTRY (memcpy)
-++ENTRY (__uclibc_memcpy)
-+ 	.set	noreorder
-+ 
-+ 	slti	t0, a2, 16		# Less than 16?
-+@@ -137,7 +137,7 @@ L(shfth):
-+ 	move	a2, t0
-+ 
-+ 	.set	reorder
-+-END (memcpy)
-++END (__uclibc_memcpy)
-+ 
-+ #else /* !__mips64 */
-+ 
-+@@ -153,7 +153,7 @@ END (memcpy)
-+ #  define SWLO	swl		/* low part is left in little-endian	*/
-+ #endif
-+ 
-+-ENTRY (memcpy)
-++ENTRY (__uclibc_memcpy)
-+ 	.set	noreorder
-+ 
-+ 	slti	t0, a2, 8		# Less than 8?
-+@@ -250,8 +250,8 @@ L(shfth):
-+ 	move	a2, t0
-+ 
-+ 	.set	reorder
-+-END (memcpy)
-++END (__uclibc_memcpy)
-+ 
-+ #endif /* !__mips64 */
-+ 
-+-libc_hidden_def(memcpy)
-++libc_hidden_def(__uclibc_memcpy)
++ /* We use these 32/64 bit registers as temporaries to do the copying.  */
 +diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips
 +index 063b07c..4482ea3 100644
 +--- a/extra/Configs/Config.mips
@@ -2135,5 +2106,5 @@
 ++       bool
 ++       default y
 -- 
-2.1.0.rc2.206.gedb03e5
+2.8.0.rc3.226.g39d4020
 
diff --git a/Build.Info/0005-brcm-auxv-patch.patch b/Build.Info/0005-brcm-auxv-patch.patch
index a2305e9..666dad5 100644
--- a/Build.Info/0005-brcm-auxv-patch.patch
+++ b/Build.Info/0005-brcm-auxv-patch.patch
@@ -1,19 +1,19 @@
-From fd4ec7febe5532b15fc66e213b589f22d543beb1 Mon Sep 17 00:00:00 2001
-From: John Newlin <jnewlin@google.com>
-Date: Mon, 20 Oct 2014 10:35:14 -0700
-Subject: [PATCH 5/5] brcm auxv patch.
+From d8f3041c669e04d001299d45ac9273988dd4bab8 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 13:53:15 -0700
+Subject: [PATCH 05/17] brcm auxv patch.
 
 ---
- .../uclibc/0.9.33.2/uclibc-0064-brcm-auxvec.patch  | 80 ++++++++++++++++++++++
- 1 file changed, 80 insertions(+)
- create mode 100644 package/uclibc/0.9.33.2/uclibc-0064-brcm-auxvec.patch
+ package/uclibc/uclibc-0064-brcm-auxvec.patch | 81 ++++++++++++++++++++++++++++
+ 1 file changed, 81 insertions(+)
+ create mode 100644 package/uclibc/uclibc-0064-brcm-auxvec.patch
 
-diff --git a/package/uclibc/0.9.33.2/uclibc-0064-brcm-auxvec.patch b/package/uclibc/0.9.33.2/uclibc-0064-brcm-auxvec.patch
+diff --git a/package/uclibc/uclibc-0064-brcm-auxvec.patch b/package/uclibc/uclibc-0064-brcm-auxvec.patch
 new file mode 100644
-index 0000000..121084c
+index 0000000..4dc0310
 --- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0064-brcm-auxvec.patch
-@@ -0,0 +1,80 @@
++++ b/package/uclibc/uclibc-0064-brcm-auxvec.patch
+@@ -0,0 +1,81 @@
 +commit c8a44ca1203244e18be053bd90b6b6df88d93d67
 +Author: Kevin Cernekee <cernekee@gmail.com>
 +Date:   Wed Apr 13 19:34:46 2011 -0700
@@ -43,19 +43,19 @@
 + extern void __chk_fail(void) attribute_noreturn;
 + libc_hidden_proto(__chk_fail)
 +diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
-+index 315365a..bc2e253 100644
++index 632a252..4bb36cc 100644
 +--- a/libc/misc/internals/__uClibc_main.c
 ++++ b/libc/misc/internals/__uClibc_main.c
-+@@ -30,6 +30,7 @@
++@@ -28,6 +28,7 @@
++ #ifndef __ARCH_HAS_NO_LDSO__
 + #include <fcntl.h>
-+ #include <sys/stat.h>
-+ #include <sys/sysmacros.h>
++ #endif
 ++#include <libc-internal.h>
 + #ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+ #include <errno.h>
 + #include <pthread-functions.h>
-+@@ -156,6 +157,12 @@ weak_alias (program_invocation_short_name, __progname)
-+ weak_alias (program_invocation_name, __progname_full)
++ #include <not-cancel.h>
++@@ -173,6 +174,12 @@ weak_alias (__progname_full, program_invocation_name)
++ # endif
 + #endif
 + 
 ++/* Highest numbered auxvec entry to copy into auxvt[] */
@@ -67,16 +67,16 @@
 + /*
 +  * Declare the __environ global variable and create a weak alias environ.
 +  * This must be initialized; we cannot have a weak alias into bss.
-+@@ -321,7 +328,7 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
++@@ -342,7 +349,7 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
 + {
-+ #ifndef __ARCH_HAS_NO_LDSO__
++ #if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
 +     unsigned long *aux_dat;
 +-    ElfW(auxv_t) auxvt[AT_EGID + 1];
 ++    ElfW(auxv_t) auxvt[AT_MAX + 1];
 + #endif
 + 
 + #ifdef __UCLIBC_HAS_THREADS_NATIVE__
-+@@ -355,7 +362,7 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
++@@ -376,7 +383,7 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
 +     aux_dat++;
 +     while (*aux_dat) {
 + 	ElfW(auxv_t) *auxv_entry = (ElfW(auxv_t) *) aux_dat;
@@ -85,15 +85,16 @@
 + 	    memcpy(&(auxvt[auxv_entry->a_type]), auxv_entry, sizeof(ElfW(auxv_t)));
 + 	}
 + 	aux_dat += 2;
-+@@ -376,6 +383,8 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
-+ #ifndef __ARCH_HAS_NO_LDSO__
-+     /* Make certain getpagesize() gives the correct answer */
-+     __pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
++@@ -398,6 +405,9 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
++     __pagesize = _dl_pagesize;
++ 
++ #ifndef SHARED
 ++    __auxv_platform = (char *)auxvt[AT_PLATFORM].a_un.a_val;
 ++    __auxv_l1d_cacheshape = (int)auxvt[AT_L1D_CACHESHAPE].a_un.a_val;
-+ 
+++
 +     /* Prevent starting SUID binaries where the stdin. stdout, and
 +      * stderr file descriptors are not already opened. */
++     if ((auxvt[AT_UID].a_un.a_val == (size_t)-1 && __check_suid()) ||
 -- 
-2.1.0.rc2.206.gedb03e5
+2.8.0.rc3.226.g39d4020
 
diff --git a/Build.Info/0006-uclibc-updates-for-Chromium.patch b/Build.Info/0006-uclibc-updates-for-Chromium.patch
index 2c6b44b..dd4313d 100644
--- a/Build.Info/0006-uclibc-updates-for-Chromium.patch
+++ b/Build.Info/0006-uclibc-updates-for-Chromium.patch
@@ -1,3471 +1,27 @@
-From 1ec63d4d2358f97e6a184987660ec1a4a58fe723 Mon Sep 17 00:00:00 2001
-From: Stephen McGruer <smcgruer@google.com>
-Date: Wed, 17 Jun 2015 14:39:19 -0400
-Subject: [PATCH] uclibc: updates for Chromium
-
-+ pull in part of:
-http://lists.busybox.net/pipermail/buildroot/2015-March/123387.html
-to add fmaxf/fminf
-
-+ pull in
-http://git.uclibc.org/uClibc/commit/?id=a8dc90eaaa5e6474beac828558d969b1aafee4af
-to add context methods
+From 3a782ed1df5d7b59ea3f62444789537b4073f089 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 16:16:31 -0700
+Subject: [PATCH 06/17] uclibc: updates for Chromium
 
 + enable UCLIBC_SUSV3_LEGACY and UCLIBC_HAS_CONTEXT_FUNCS for
 getcontext/setcontent
 ---
- ...bc-0069-Add-missing-C99-float-ld-wrappers.patch |  870 +++++++
- ...t-set-swap-make-context-user-context-mani.patch | 2550 ++++++++++++++++++++
- package/uclibc/uclibc.mk                           |    2 +
- 3 files changed, 3422 insertions(+)
- create mode 100644 package/uclibc/0.9.33.2/uclibc-0069-Add-missing-C99-float-ld-wrappers.patch
- create mode 100644 package/uclibc/0.9.33.2/uclibc-0070-libc-add-get-set-swap-make-context-user-context-mani.patch
+ package/uclibc/uclibc.mk | 2 ++
+ 1 file changed, 2 insertions(+)
 
-diff --git a/package/uclibc/0.9.33.2/uclibc-0069-Add-missing-C99-float-ld-wrappers.patch b/package/uclibc/0.9.33.2/uclibc-0069-Add-missing-C99-float-ld-wrappers.patch
-new file mode 100644
-index 0000000..35cf3e4
---- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0069-Add-missing-C99-float-ld-wrappers.patch
-@@ -0,0 +1,870 @@
-+From 6c4538905e65ceb203f59aaa9a61728e81c6bc0a Mon Sep 17 00:00:00 2001
-+From: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
-+Date: Wed, 18 Mar 2015 21:32:22 +0000
-+Subject: libm: Add missing C99 float/ld wrappers
-+
-+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop at gmail.com>
-+
-+Status: upstream [uClibc]
-+http://git.uclibc.org/uClibc/commit/?id=6c4538905e65ceb203f59aaa9a61728e81c6bc0a
-+
-+Removed patch for ./TODO.
-+Needed to avoid run-time errors with mesa3d which depends on fminf
-+
-+Signed-off-by: Bernd Kuhls <bernd.kuhls at t-online.de>
-+---
-+diff --git a/include/complex.h b/include/complex.h
-+index 91efc0d..ed7e502 100644
-+--- a/include/complex.h
-++++ b/include/complex.h
-+@@ -79,6 +79,7 @@ __BEGIN_DECLS
-+ #endif
-+ #include <bits/cmathcalls.h>
-+ #undef	_Mdouble_
-++#undef	_Mfloat_
-+ #undef	__MATH_PRECNAME
-+ 
-+ /* And the long double versions.  It is non-critical to define them
-+@@ -97,6 +98,7 @@ __BEGIN_DECLS
-+ # include <bits/cmathcalls.h>
-+ #endif
-+ #undef	_Mdouble_
-++#undef	_Mlong_double_
-+ #undef	__MATH_PRECNAME
-+ #undef	__MATHDECL_1
-+ #undef	__MATHDECL
-+diff --git a/include/math.h b/include/math.h
-+index ecb9aa6..1b54c9e 100644
-+--- a/include/math.h
-++++ b/include/math.h
-+@@ -129,6 +129,7 @@ __BEGIN_DECLS
-+ # undef	_Mdouble_
-+ # undef _Mdouble_BEGIN_NAMESPACE
-+ # undef _Mdouble_END_NAMESPACE
-++# undef _Mfloat_
-+ # undef	__MATH_PRECNAME
-+ # undef __MATH_maybe_libm_hidden_proto
-+ 
-+@@ -176,6 +177,7 @@ extern long double __REDIRECT_NTH (nexttowardl, (long double __x, long double __
-+ #  undef _Mdouble_
-+ #  undef _Mdouble_BEGIN_NAMESPACE
-+ #  undef _Mdouble_END_NAMESPACE
-++#  undef _Mlong_double_
-+ #  undef __MATH_PRECNAME
-+ #  undef __MATH_maybe_libm_hidden_proto
-+ 
-+diff --git a/libc/sysdeps/linux/common/bits/mathcalls.h b/libc/sysdeps/linux/common/bits/mathcalls.h
-+index 84b793c..9bebb51 100644
-+--- a/libc/sysdeps/linux/common/bits/mathcalls.h
-++++ b/libc/sysdeps/linux/common/bits/mathcalls.h
-+@@ -74,8 +74,22 @@ __MATHCALLI (atan2,, (_Mdouble_ __y, _Mdouble_ __x))
-+ 
-+ /* Cosine of X.  */
-+ __MATHCALLI (cos,, (_Mdouble_ __x))
-++# if defined _LIBC && defined _Mlong_double_
-++libm_hidden_proto(cosl)
-++# endif
-++# if defined _LIBC && defined _Mfloat_
-++libm_hidden_proto(cosf)
-++# endif
-++
-+ /* Sine of X.  */
-+ __MATHCALLI (sin,, (_Mdouble_ __x))
-++# if defined _LIBC && defined _Mlong_double_
-++libm_hidden_proto(sinl)
-++# endif
-++# if defined _LIBC && defined _Mfloat_
-++libm_hidden_proto(sinf)
-++# endif
-++
-+ /* Tangent of X.  */
-+ __MATHCALLI (tan,, (_Mdouble_ __x))
-+ 
-+@@ -111,6 +125,9 @@ __END_NAMESPACE_C99
-+ _Mdouble_BEGIN_NAMESPACE
-+ /* Exponential function of X.  */
-+ __MATHCALLI (exp,, (_Mdouble_ __x))
-++# if defined _LIBC && defined _Mlong_double_
-++libm_hidden_proto(expl)
-++# endif
-+ 
-+ /* Break VALUE into a normalized fraction and an integral power of 2.  */
-+ __MATHCALLI (frexp,, (_Mdouble_ __x, int *__exponent))
-+@@ -173,6 +190,9 @@ _Mdouble_END_NAMESPACE
-+ __BEGIN_NAMESPACE_C99
-+ /* Return `sqrt(X*X + Y*Y)'.  */
-+ __MATHCALLI (hypot,, (_Mdouble_ __x, _Mdouble_ __y))
-++# if defined _LIBC && defined _Mlong_double_
-++libm_hidden_proto(hypotl)
-++# endif
-+ __END_NAMESPACE_C99
-+ #endif
-+ 
-+@@ -298,6 +318,9 @@ __MATHCALLI (rint,, (_Mdouble_ __x))
-+ 
-+ /* Return X + epsilon if X < Y, X - epsilon if X > Y.  */
-+ __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__))
-++# if defined _LIBC && defined _Mlong_double_
-++libm_hidden_proto(nextafterl)
-++# endif
-+ # if defined __USE_ISOC99 && !defined __LDBL_COMPAT
-+ __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__))
-+ # endif
-+diff --git a/libm/Makefile.in b/libm/Makefile.in
-+index 7511706..d886cdb 100644
-+--- a/libm/Makefile.in
-++++ b/libm/Makefile.in
-+@@ -75,9 +75,6 @@ libm_CSRC := \
-+ 	s_remquo.c w_exp2.c \
-+ 	cexp.c sincos.c
-+ 
-+-# Not implemented [yet?], see comment in float_wrappers.c:
-+-# fdimf.o fmaf.o fmaxf.o fminf.o
-+-# nearbyintf.o remquof.o scalblnf.o tgammaf.o
-+ FL_MOBJ := \
-+ 	acosf.o \
-+ 	acoshf.o \
-+@@ -98,7 +95,11 @@ FL_MOBJ := \
-+ 	expf.o \
-+ 	expm1f.o \
-+ 	fabsf.o \
-++	fdimf.o \
-+ 	floorf.o \
-++	fmaf.o \
-++	fmaxf.o \
-++	fminf.o \
-+ 	fmodf.o \
-+ 	frexpf.o \
-+ 	gammaf.o \
-+@@ -116,11 +117,14 @@ FL_MOBJ := \
-+ 	lrintf.o \
-+ 	lroundf.o \
-+ 	modff.o \
-++	nearbyintf.o \
-++	nexttowardf.o \
-+ 	powf.o \
-+ 	remainderf.o \
-++	remquof.o \
-+ 	rintf.o \
-+ 	roundf.o \
-+-	scalbf.o \
-++	scalblnf.o \
-+ 	scalbnf.o \
-+ 	significandf.o \
-+ 	sinf.o \
-+@@ -128,9 +132,24 @@ FL_MOBJ := \
-+ 	sqrtf.o \
-+ 	tanf.o \
-+ 	tanhf.o \
-++	tgammaf.o \
-+ 	truncf.o \
-+ 
-+-# Not implemented [yet?]: nexttowardl.o
-++ifeq ($(UCLIBC_SUSV3_LEGACY),y)
-++FL_MOBJ += scalbf.o
-++endif
-++
-++# Do not (yet?) implement the float variants of bessel functions
-++ifeq (not-yet-implemented-$(DO_XSI_MATH),y)
-++FL_MOBJ += \
-++	j0f.o \
-++	j1f.o \
-++	jnf.o \
-++	y0f.o \
-++	y1f.o \
-++	ynf.o
-++endif
-++
-+ LD_MOBJ := \
-+ 	__finitel.o \
-+ 	__fpclassifyl.o \
-+@@ -180,6 +199,7 @@ LD_MOBJ := \
-+ 	modfl.o \
-+ 	nearbyintl.o \
-+ 	nextafterl.o \
-++	nexttowardl.o \
-+ 	powl.o \
-+ 	remainderl.o \
-+ 	remquol.o \
-+@@ -196,6 +216,17 @@ LD_MOBJ := \
-+ 	tgammal.o \
-+ 	truncl.o \
-+ 
-++# Do not (yet?) implement the long double variants of bessel functions
-++ifeq (not-yet-implemented-$(DO_XSI_MATH),y)
-++LD_MOBJ += \
-++	j0l.o \
-++	j1l.o \
-++	jnl.o \
-++	y0l.o \
-++	y1l.o \
-++	ynl.o
-++endif
-++
-+ else
-+ 
-+ # This list of math functions was taken from POSIX/IEEE 1003.1b-1993
-+diff --git a/libm/float_wrappers.c b/libm/float_wrappers.c
-+index 82b7963..105486e 100644
-+--- a/libm/float_wrappers.c
-++++ b/libm/float_wrappers.c
-+@@ -38,19 +38,14 @@ long long func##f (float x) \
-+ 	return func((double)x); \
-+ }
-+ 
-+-
-+-/* For the time being, do _NOT_ implement these functions
-+- * that are defined by SuSv3 [because we don't need them
-+- * and nobody asked to include them] */
-+-#undef L_fdimf         /*float       fdimf(float, float);*/
-+-#undef L_fmaf          /*float       fmaf(float, float, float);*/
-+-#undef L_fmaxf         /*float       fmaxf(float, float);*/
-+-#undef L_fminf         /*float       fminf(float, float);*/
-+-#undef L_nearbyintf    /*float       nearbyintf(float);*/
-+-#undef L_nexttowardf   /*float       nexttowardf(float, long double);*/
-+-#undef L_remquof       /*float       remquof(float, float, int *);*/
-+-#undef L_scalblnf      /*float       scalblnf(float, long);*/
-+-#undef L_tgammaf       /*float       tgammaf(float);*/
-++#ifndef __DO_XSI_MATH__
-++# undef L_j0f	/* float j0f(float x); */
-++# undef L_j1f	/* float j1f(float x); */
-++# undef L_jnf	/* float jnf(int n, float x); */
-++# undef L_y0f	/* float y0f(float x); */
-++# undef L_y1f	/* float y1f(float x); */
-++# undef L_ynf	/* float ynf(int n, float x); */
-++#endif
-+ 
-+ /* Implement the following, as defined by SuSv3 */
-+ #if 0
-+@@ -155,6 +150,7 @@ float copysignf (float x, float y)
-+ 
-+ #ifdef L_cosf
-+ WRAPPER1(cos)
-++libm_hidden_def(cosf)
-+ #endif
-+ 
-+ #ifdef L_coshf
-+@@ -242,6 +238,21 @@ float hypotf (float x, float y)
-+ int_WRAPPER1(ilogb)
-+ #endif
-+ 
-++#ifdef L_j0f
-++WRAPPER1(j0)
-++#endif
-++
-++#ifdef L_j1f
-++WRAPPER1(j1)
-++#endif
-++
-++#ifdef L_jnf
-++float jnf(int n, float x)
-++{
-++	return (float) jn(n, (double)x);
-++}
-++#endif
-++
-+ #ifdef L_ldexpf
-+ float ldexpf (float x, int _exp)
-+ {
-+@@ -306,7 +317,7 @@ WRAPPER1(nearbyint)
-+ #ifdef L_nexttowardf
-+ float nexttowardf (float x, long double y)
-+ {
-+-	return (float) nexttoward( (double)x, (double)y );
-++	return (float) nexttoward( (double)x, (long double)y );
-+ }
-+ #endif
-+ 
-+@@ -355,6 +366,7 @@ float scalbnf (float x, int _exp)
-+ 
-+ #ifdef L_sinf
-+ WRAPPER1(sin)
-++libm_hidden_def(sinf)
-+ #endif
-+ 
-+ #ifdef L_sinhf
-+@@ -381,13 +393,6 @@ WRAPPER1(tgamma)
-+ WRAPPER1(trunc)
-+ #endif
-+ 
-+-#ifdef L_fmaf
-+-float fmaf (float x, float y, float z)
-+-{
-+-	return (float) fma( (double)x, (double)y, (double)z );
-+-}
-+-#endif
-+-
-+ #if defined L_scalbf && defined __UCLIBC_SUSV3_LEGACY__
-+ float scalbf (float x, float y)
-+ {
-+@@ -402,3 +407,18 @@ WRAPPER1(gamma)
-+ #ifdef L_significandf
-+ WRAPPER1(significand)
-+ #endif
-++
-++#ifdef L_y0f
-++WRAPPER1(y0)
-++#endif
-++
-++#ifdef L_y1f
-++WRAPPER1(y1)
-++#endif
-++
-++#ifdef L_ynf
-++float ynf(int n, float x)
-++{
-++	return (float) yn(n, (double)x);
-++}
-++#endif
-+diff --git a/libm/ldouble_wrappers.c b/libm/ldouble_wrappers.c
-+index 118a78f..b4215cb 100644
-+--- a/libm/ldouble_wrappers.c
-++++ b/libm/ldouble_wrappers.c
-+@@ -42,6 +42,15 @@ long long func##l(long double x) \
-+ 	return func((double) x); \
-+ }
-+ 
-++#ifndef __DO_XSI_MATH__
-++# undef L_j0l  /* long double j0l(long double x); */
-++# undef L_j1l  /* long double j1l(long double x); */
-++# undef L_jnl  /* long double jnl(int n, long double x); */
-++# undef L_y0l  /* long double y0l(long double x); */
-++# undef L_y1l  /* long double y1l(long double x); */
-++# undef L_ynl  /* long double ynl(int n, long double x); */
-++#endif
-++
-+ /* Implement the following, as defined by SuSv3 */
-+ #if 0
-+ long double acoshl(long double);
-+@@ -156,6 +165,7 @@ WRAPPER1(cosh)
-+ 
-+ #ifdef L_cosl
-+ WRAPPER1(cos)
-++libm_hidden_def(cosl)
-+ #endif
-+ 
-+ #ifdef L_erfcl
-+@@ -172,6 +182,7 @@ WRAPPER1(exp2)
-+ 
-+ #ifdef L_expl
-+ WRAPPER1(exp)
-++libm_hidden_def(expl)
-+ #endif
-+ 
-+ #ifdef L_expm1l
-+@@ -222,12 +233,28 @@ WRAPPER1(gamma)
-+ 
-+ #ifdef L_hypotl
-+ WRAPPER2(hypot)
-++libm_hidden_def(hypotl)
-+ #endif
-+ 
-+ #ifdef L_ilogbl
-+ int_WRAPPER1(ilogb)
-+ #endif
-+ 
-++#ifdef L_j0l
-++	WRAPPER1(j0)
-++#endif
-++
-++#ifdef L_j1l
-++	WRAPPER1(j1)
-++#endif
-++
-++#ifdef L_jnl
-++long double jnl(int n, long double x)
-++{
-++	return (long double) jn(n, (double)x);
-++}
-++#endif
-++
-+ #ifdef L_ldexpl
-+ long double ldexpl (long double x, int ex)
-+ {
-+@@ -291,12 +318,18 @@ WRAPPER1(nearbyint)
-+ 
-+ #ifdef L_nextafterl
-+ WRAPPER2(nextafter)
-++libm_hidden_def(nextafterl)
-+ #endif
-+ 
-+-/* Disabled in Makefile.in */
-+-#if 0 /* def L_nexttowardl */
-+-WRAPPER2(nexttoward)
-+-libm_hidden_def(nexttowardl)
-++#ifdef L_nexttowardl
-++# if 0 /* TODO */
-++strong_alias(nextafterl, nexttowardl)
-++# else
-++long double nexttowardl(long double x, long double y)
-++{
-++	return nextafterl(x, y);
-++}
-++#endif
-+ #endif
-+ 
-+ #ifdef L_powl
-+@@ -344,6 +377,7 @@ WRAPPER1(sinh)
-+ 
-+ #ifdef L_sinl
-+ WRAPPER1(sin)
-++libm_hidden_def(sinl)
-+ #endif
-+ 
-+ #ifdef L_sqrtl
-+@@ -370,6 +404,22 @@ WRAPPER1(trunc)
-+ WRAPPER1(significand)
-+ #endif
-+ 
-++#ifdef L_y0l
-++WRAPPER1(y0)
-++#endif
-++
-++#ifdef L_y1l
-++WRAPPER1(y1)
-++#endif
-++
-++#ifdef L_ynl
-++long double ynl(int n, long double x)
-++{
-++	return (long double) yn(n, (double)x);
-++}
-++#endif
-++
-++
-+ #if defined __DO_C99_MATH__ && !defined __NO_LONG_DOUBLE_MATH
-+ 
-+ # ifdef L___fpclassifyl
-+diff --git a/libm/s_fdim.c b/libm/s_fdim.c
-+index 6249219..6ed695c 100644
-+--- a/libm/s_fdim.c
-++++ b/libm/s_fdim.c
-+@@ -6,13 +6,22 @@
-+ 
-+ #include "math.h"
-+ #include "math_private.h"
-++#include <errno.h>
-+ 
-+ double fdim(double x, double y)
-+ {
-+-  int c = __fpclassify(x);
-+-  if (c == FP_NAN || c == FP_INFINITE)
-+-    return HUGE_VAL;
-++  int cx = __fpclassify(x); /* need both NAN and INF */
-++  int cy = __fpclassify(y); /* need both NAN and INF */
-++  if (cx == FP_NAN || cy == NAN)
-++    return x - y;
-+ 
-+-  return x > y ? x - y : 0.0;
-++  if (x <= y)
-++	  return .0;
-++
-++  double z = x - y;
-++  if (isinf(z) && cx != FP_INFINITE && cy != FP_INFINITE)
-++	  __set_errno(ERANGE);
-++
-++  return z;
-+ }
-+ libm_hidden_def(fdim)
-+diff --git a/libm/s_fmax.c b/libm/s_fmax.c
-+index 21dfaa9..5f29ad8 100644
-+--- a/libm/s_fmax.c
-++++ b/libm/s_fmax.c
-+@@ -9,10 +9,10 @@
-+ 
-+ double fmax(double x, double y)
-+ {
-+-  if (__fpclassify(x) == FP_NAN)
-+-    return x;
-+-  if (__fpclassify(y) == FP_NAN)
-++  if (isnan(x))
-+     return y;
-++  if (isnan(y))
-++    return x;
-+ 
-+   return x > y ? x : y;
-+ }
-+diff --git a/libm/s_fmin.c b/libm/s_fmin.c
-+index 674d9a5..a549678 100644
-+--- a/libm/s_fmin.c
-++++ b/libm/s_fmin.c
-+@@ -9,10 +9,10 @@
-+ 
-+ double fmin(double x, double y)
-+ {
-+-  if (__fpclassify(x) == FP_NAN)
-+-    return x;
-+-  if (__fpclassify(y) == FP_NAN)
-++  if (isnan(x))
-+     return y;
-++  if (isnan(y))
-++    return x;
-+ 
-+   return x < y ? x : y;
-+ }
-+diff --git a/libm/s_nextafter.c b/libm/s_nextafter.c
-+index ee4621c..73a8ab2 100644
-+--- a/libm/s_nextafter.c
-++++ b/libm/s_nextafter.c
-+@@ -32,7 +32,7 @@ double nextafter(double x, double y)
-+ 	if(((ix>=0x7ff00000)&&((ix-0x7ff00000)|lx)!=0) ||   /* x is nan */
-+ 	   ((iy>=0x7ff00000)&&((iy-0x7ff00000)|ly)!=0))     /* y is nan */
-+ 	   return x+y;
-+-	if(x==y) return x;		/* x=y, return x */
-++	if(x==y) return y;		/* x=y, return y */
-+ 	if((ix|lx)==0) {			/* x == 0 */
-+ 	    INSERT_WORDS(x,hy&0x80000000,1);	/* return +-minsubnormal */
-+ 	    y = x*x;
-+@@ -68,3 +68,5 @@ double nextafter(double x, double y)
-+ 	return x;
-+ }
-+ libm_hidden_def(nextafter)
-++strong_alias_untyped(nextafter, nexttoward)
-++libm_hidden_def(nexttoward)
-+diff --git a/test/math/compile_test.c b/test/math/compile_test.c
-+index ab8c40c..aedfde6 100644
-+--- a/test/math/compile_test.c
-++++ b/test/math/compile_test.c
-+@@ -22,11 +22,11 @@ r += exp2f(float_x);
-+ r += expf(float_x);
-+ r += expm1f(float_x);
-+ r += fabsf(float_x);
-+-/*r += fdimf(float_x, float_x); - uclibc does not have it (yet?) */
-++r += fdimf(float_x, float_x);
-+ r += floorf(float_x);
-+-/*r += fmaf(float_x, float_x, float_x); - uclibc does not have it (yet?) */
-+-/*r += fmaxf(float_x, float_x); - uclibc does not have it (yet?) */
-+-/*r += fminf(float_x, float_x); - uclibc does not have it (yet?) */
-++r += fmaf(float_x, float_x, float_x);
-++r += fmaxf(float_x, float_x);
-++r += fminf(float_x, float_x);
-+ r += fmodf(float_x, float_x);
-+ r += frexpf(float_x, &int_x);
-+ r += gammaf(float_x);
-+@@ -44,17 +44,17 @@ r += logf(float_x);
-+ r += lrintf(float_x);
-+ r += lroundf(float_x);
-+ r += modff(float_x, &float_x);
-+-/*r += nearbyintf(float_x); - uclibc does not have it (yet?) */
-+-/*r += nexttowardf(float_x, long_double_x); - uclibc does not have it (yet?) */
-++r += nearbyintf(float_x);
-++r += nexttowardf(float_x, long_double_x);
-+ r += powf(float_x, float_x);
-+ r += remainderf(float_x, float_x);
-+-/*r += remquof(float_x, float_x, &int_x); - uclibc does not have it (yet?) */
-++r += remquof(float_x, float_x, &int_x);
-+ r += rintf(float_x);
-+ r += roundf(float_x);
-+ #ifdef __UCLIBC_SUSV3_LEGACY__
-+ r += scalbf(float_x, float_x);
-+ #endif
-+-/*r += scalblnf(float_x, long_x); - uclibc does not have it (yet?) */
-++r += scalblnf(float_x, long_x);
-+ r += scalbnf(float_x, int_x);
-+ r += significandf(float_x);
-+ r += sinf(float_x);
-+@@ -62,7 +62,7 @@ r += sinhf(float_x);
-+ r += sqrtf(float_x);
-+ r += tanf(float_x);
-+ r += tanhf(float_x);
-+-/*r += tgammaf(float_x); - uclibc does not have it (yet?) */
-++r += tgammaf(float_x);
-+ r += truncf(float_x);
-+ return r;
-+ }
-+@@ -116,7 +116,7 @@ r += lroundl(long_double_x);
-+ r += modfl(long_double_x, &long_double_x);
-+ r += nearbyintl(long_double_x);
-+ r += nextafterl(long_double_x, long_double_x);
-+-/* r += nexttowardl(long_double_x, long_double_x); - uclibc doesn't provide this [yet?] */
-++r += nexttowardl(long_double_x, long_double_x);
-+ r += powl(long_double_x, long_double_x);
-+ r += remainderl(long_double_x, long_double_x);
-+ r += remquol(long_double_x, long_double_x, &int_x);
-+diff --git a/test/math/libm-test.inc b/test/math/libm-test.inc
-+index d0f0a0c..8f0db3c 100644
-+--- a/test/math/libm-test.inc
-++++ b/test/math/libm-test.inc
-+@@ -115,6 +115,9 @@
-+ # define _GNU_SOURCE
-+ #endif
-+ 
-++#undef __CHK_COMPLEX_STUFF
-++#define __CHK_COMPLEX_STUFF 0
-++
-+ #include "libm-test-ulps.h"
-+ #include <complex.h>
-+ #include <math.h>
-+@@ -1120,8 +1123,10 @@ cacosh_test (void)
-+ 
-+   END (cacosh, complex);
-+ }
-++#endif
-+ 
-+ 
-++#if __CHK_COMPLEX_STUFF
-+ static void
-+ carg_test (void)
-+ {
-+@@ -1188,7 +1193,9 @@ carg_test (void)
-+ 
-+   END (carg);
-+ }
-++#endif /* __CHK_COMPLEX_STUFF */
-+ 
-++#if 0
-+ static void
-+ casin_test (void)
-+ {
-+@@ -1683,7 +1690,7 @@ ceil_test (void)
-+ }
-+ 
-+ 
-+-#if 0
-++#if __CHK_COMPLEX_STUFF
-+ static void
-+ cexp_test (void)
-+ {
-+@@ -1746,8 +1753,9 @@ cexp_test (void)
-+ 
-+   END (cexp, complex);
-+ }
-++#endif /* __CHK_COMPLEX_STUFF */
-+ 
-+-
-++#if 0
-+ static void
-+ cimag_test (void)
-+ {
-+@@ -2588,7 +2596,6 @@ fabs_test (void)
-+ }
-+ 
-+ 
-+-#if 0
-+ static void
-+ fdim_test (void)
-+ {
-+@@ -2624,7 +2631,6 @@ fdim_test (void)
-+ 
-+   END (fdim);
-+ }
-+-#endif
-+ 
-+ 
-+ static void
-+@@ -2694,7 +2700,6 @@ floor_test (void)
-+ }
-+ 
-+ 
-+-#if 0
-+ static void
-+ fma_test (void)
-+ {
-+@@ -2797,7 +2802,6 @@ fmin_test (void)
-+ 
-+   END (fmin);
-+ }
-+-#endif
-+ 
-+ 
-+ static void
-+@@ -3002,7 +3006,7 @@ isnormal_test (void)
-+   END (isnormal);
-+ }
-+ 
-+-#if defined __DO_XSI_MATH__
-++#if defined __DO_XSI_MATH__ && !(defined TEST_LDOUBLE || defined TEST_FLOAT)
-+ static void
-+ j0_test (void)
-+ {
-+@@ -3629,7 +3633,6 @@ modf_test (void)
-+ }
-+ 
-+ 
-+-#if 0
-+ static void
-+ nearbyint_test (void)
-+ {
-+@@ -3710,7 +3713,6 @@ nexttoward_test (void)
-+ 
-+   END (nexttoward);
-+ }
-+-#endif
-+ 
-+ 
-+ static void
-+@@ -3950,7 +3952,6 @@ remainder_test (void)
-+   END (remainder);
-+ }
-+ 
-+-#if 0
-+ static void
-+ remquo_test (void)
-+ {
-+@@ -3981,7 +3982,6 @@ remquo_test (void)
-+ 
-+   END (remquo);
-+ }
-+-#endif
-+ 
-+ static void
-+ rint_test (void)
-+@@ -4229,12 +4229,12 @@ round_test (void)
-+ #endif
-+ 
-+ 
-++#ifdef __UCLIBC_SUSV3_LEGACY__
-+ static void
-+ scalb_test (void)
-+ {
-+   START (scalb);
-+ #ifndef TEST_LDOUBLE /* uclibc doesn't have scalbl */
-+-#ifdef __UCLIBC_SUSV3_LEGACY__ /* scalbf is susv3 legacy */
-+ 
-+   TEST_ff_f (scalb, 2.0, 0.5, nan_value, INVALID_EXCEPTION);
-+   TEST_ff_f (scalb, 3.0, -2.5, nan_value, INVALID_EXCEPTION);
-+@@ -4285,11 +4285,10 @@ scalb_test (void)
-+ 
-+   TEST_ff_f (scalb, 0.8L, 4, 12.8L);
-+   TEST_ff_f (scalb, -0.854375L, 5, -27.34L);
-+-#endif /* __UCLIBC_SUSV3_LEGACY__ */
-+ #endif /* TEST_LDOUBLE */
-+   END (scalb);
-+ }
-+-
-++#endif
-+ 
-+ static void
-+ scalbn_test (void)
-+@@ -4313,7 +4312,6 @@ scalbn_test (void)
-+ }
-+ 
-+ 
-+-#if 0
-+ static void
-+ scalbln_test (void)
-+ {
-+@@ -4334,7 +4332,6 @@ scalbln_test (void)
-+ 
-+   END (scalbn);
-+ }
-+-#endif
-+ 
-+ 
-+ static void
-+@@ -4539,7 +4536,6 @@ tanh_test (void)
-+   END (tanh);
-+ }
-+ 
-+-#if 0
-+ static void
-+ tgamma_test (void)
-+ {
-+@@ -4571,7 +4567,6 @@ tgamma_test (void)
-+ 
-+   END (tgamma);
-+ }
-+-#endif
-+ 
-+ 
-+ #if 0
-+@@ -4651,7 +4646,7 @@ trunc_test (void)
-+ }
-+ #endif
-+ 
-+-#if defined __DO_XSI_MATH__
-++#if defined __DO_XSI_MATH__ && !(defined TEST_LDOUBLE || defined TEST_FLOAT)
-+ static void
-+ y0_test (void)
-+ {
-+@@ -4979,11 +4974,11 @@ main (int argc, char **argv)
-+   logb_test ();
-+   modf_test ();
-+   ilogb_test ();
-++#ifdef __UCLIBC_SUSV3_LEGACY__
-+   scalb_test ();
-++#endif
-+   scalbn_test ();
-+-#if 0
-+   scalbln_test ();
-+-#endif
-+   significand_test ();
-+ 
-+   /* Power and absolute value functions:  */
-+@@ -4998,16 +4993,12 @@ main (int argc, char **argv)
-+   erfc_test ();
-+   gamma_test ();
-+   lgamma_test ();
-+-#if 0
-+   tgamma_test ();
-+-#endif
-+ 
-+   /* Nearest integer functions:  */
-+   ceil_test ();
-+   floor_test ();
-+-#if 0
-+   nearbyint_test ();
-+-#endif
-+   rint_test ();
-+ #if 0
-+   rint_test_tonearest ();
-+@@ -5025,13 +5016,10 @@ main (int argc, char **argv)
-+   /* Remainder functions:  */
-+   fmod_test ();
-+   remainder_test ();
-+-#if 0
-+   remquo_test ();
-+-#endif
-+ 
-+   /* Manipulation functions:  */
-+   copysign_test ();
-+-#if 0
-+   nextafter_test ();
-+   nexttoward_test ();
-+ 
-+@@ -5043,24 +5031,29 @@ main (int argc, char **argv)
-+   /* Multiply and add:  */
-+   fma_test ();
-+ 
-++
-+   /* Complex functions:  */
-+   cabs_test ();
-++#if __CHK_COMPLEX_STUFF
-++#if 0
-+   cacos_test ();
-+   cacosh_test ();
-++#endif
-+   carg_test ();
-++#if 0
-+   casin_test ();
-+   casinh_test ();
-+   catan_test ();
-+   catanh_test ();
-+   ccos_test ();
-+   ccosh_test ();
-++#endif
-+   cexp_test ();
-++#if 0
-+   cimag_test ();
-+   clog10_test ();
-+   clog_test ();
-+-#if 0
-+   conj_test ();
-+-#endif
-+   cpow_test ();
-+   cproj_test ();
-+   creal_test ();
-+@@ -5070,9 +5063,10 @@ main (int argc, char **argv)
-+   ctan_test ();
-+   ctanh_test ();
-+ #endif
-++#endif /* __CHK_COMPLEX_STUFF */
-+ 
-+   /* Bessel functions:  */
-+-#if defined __DO_XSI_MATH__
-++#if defined __DO_XSI_MATH__ && !(defined TEST_LDOUBLE || defined TEST_FLOAT)
-+   j0_test ();
-+   j1_test ();
-+   jn_test ();
-+--
-+cgit v0.9.1
-diff --git a/package/uclibc/0.9.33.2/uclibc-0070-libc-add-get-set-swap-make-context-user-context-mani.patch b/package/uclibc/0.9.33.2/uclibc-0070-libc-add-get-set-swap-make-context-user-context-mani.patch
-new file mode 100644
-index 0000000..c955b00
---- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0070-libc-add-get-set-swap-make-context-user-context-mani.patch
-@@ -0,0 +1,2550 @@
-+From a8dc90eaaa5e6474beac828558d969b1aafee4af Mon Sep 17 00:00:00 2001
-+From: Florian Fainelli <florian@openwrt.org>
-+Date: Wed, 9 Jan 2013 16:17:21 +0100
-+Subject: [PATCH] libc: add {get,set,swap,make}context user context
-+ manipulation functions
-+
-+Add the obsolescent SUSv3 family of user context manipulating functions
-+for arm, i386, mips, x86_64.
-+
-+Signed-off-by: Timon ter Braak <timonterbraak@gmail.com>
-+Signed-off-by: Florian Fainelli <florian@openwrt.org>
-+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-+Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-+---
-+ Rules.mak                                          |   2 +
-+ extra/Configs/Config.arm                           |   1 +
-+ extra/Configs/Config.i386                          |   1 +
-+ extra/Configs/Config.in                            |  16 ++
-+ extra/Configs/Config.mips                          |   1 +
-+ extra/Configs/Config.x86_64                        |   1 +
-+ include/ucontext.h                                 |  32 +++-
-+ libc/.gitignore                                    |   1 +
-+ libc/sysdeps/linux/Makefile.commonarch             |  20 +-
-+ libc/sysdeps/linux/arm/Makefile.arch               |   5 +
-+ libc/sysdeps/linux/arm/getcontext.S                |  80 ++++++++
-+ libc/sysdeps/linux/arm/makecontext.c               |  73 +++++++
-+ libc/sysdeps/linux/arm/setcontext.S                |  76 ++++++++
-+ libc/sysdeps/linux/arm/swapcontext.S               |  63 ++++++
-+ libc/sysdeps/linux/arm/ucontext_i.sym              |  30 +++
-+ libc/sysdeps/linux/i386/Makefile.arch              |   4 +
-+ libc/sysdeps/linux/i386/getcontext.S               |  84 ++++++++
-+ libc/sysdeps/linux/i386/makecontext.S              | 123 ++++++++++++
-+ libc/sysdeps/linux/i386/setcontext.S               |  96 ++++++++++
-+ libc/sysdeps/linux/i386/swapcontext.S              | 110 +++++++++++
-+ libc/sysdeps/linux/i386/ucontext_i.sym             |  30 +++
-+ libc/sysdeps/linux/mips/Makefile.arch              |   4 +
-+ libc/sysdeps/linux/mips/getcontext.S               | 148 +++++++++++++++
-+ libc/sysdeps/linux/mips/kernel_rt_sigframe.h       |  10 +
-+ libc/sysdeps/linux/mips/makecontext.S              | 188 ++++++++++++++++++
-+ libc/sysdeps/linux/mips/setcontext.S               | 191 +++++++++++++++++++
-+ libc/sysdeps/linux/mips/swapcontext.S              | 211 +++++++++++++++++++++
-+ libc/sysdeps/linux/mips/ucontext_i.sym             |  52 +++++
-+ libc/sysdeps/linux/x86_64/Makefile.arch            |   5 +
-+ libc/sysdeps/linux/x86_64/__start_context.S        |  49 +++++
-+ libc/sysdeps/linux/x86_64/getcontext.S             |  88 +++++++++
-+ libc/sysdeps/linux/x86_64/makecontext.c            | 121 ++++++++++++
-+ libc/sysdeps/linux/x86_64/setcontext.S             | 103 ++++++++++
-+ libc/sysdeps/linux/x86_64/swapcontext.S            | 121 ++++++++++++
-+ libc/sysdeps/linux/x86_64/ucontext_i.sym           |  37 ++++
-+ libpthread/nptl/sysdeps/Makefile.commonarch        |   3 +-
-+ .../sysdeps/unix/sysv/linux/Makefile.commonarch    |   2 -
-+ 37 files changed, 2174 insertions(+), 8 deletions(-)
-+ create mode 100644 libc/.gitignore
-+ create mode 100644 libc/sysdeps/linux/arm/getcontext.S
-+ create mode 100644 libc/sysdeps/linux/arm/makecontext.c
-+ create mode 100644 libc/sysdeps/linux/arm/setcontext.S
-+ create mode 100644 libc/sysdeps/linux/arm/swapcontext.S
-+ create mode 100644 libc/sysdeps/linux/arm/ucontext_i.sym
-+ create mode 100644 libc/sysdeps/linux/i386/getcontext.S
-+ create mode 100644 libc/sysdeps/linux/i386/makecontext.S
-+ create mode 100644 libc/sysdeps/linux/i386/setcontext.S
-+ create mode 100644 libc/sysdeps/linux/i386/swapcontext.S
-+ create mode 100644 libc/sysdeps/linux/i386/ucontext_i.sym
-+ create mode 100644 libc/sysdeps/linux/mips/getcontext.S
-+ create mode 100644 libc/sysdeps/linux/mips/kernel_rt_sigframe.h
-+ create mode 100644 libc/sysdeps/linux/mips/makecontext.S
-+ create mode 100644 libc/sysdeps/linux/mips/setcontext.S
-+ create mode 100644 libc/sysdeps/linux/mips/swapcontext.S
-+ create mode 100644 libc/sysdeps/linux/mips/ucontext_i.sym
-+ create mode 100644 libc/sysdeps/linux/x86_64/__start_context.S
-+ create mode 100644 libc/sysdeps/linux/x86_64/getcontext.S
-+ create mode 100644 libc/sysdeps/linux/x86_64/makecontext.c
-+ create mode 100644 libc/sysdeps/linux/x86_64/setcontext.S
-+ create mode 100644 libc/sysdeps/linux/x86_64/swapcontext.S
-+ create mode 100644 libc/sysdeps/linux/x86_64/ucontext_i.sym
-+
-+diff --git a/Rules.mak b/Rules.mak
-+index 96871e1..8943fbf 100644
-+--- a/Rules.mak
-++++ b/Rules.mak
-+@@ -813,3 +813,5 @@ SHARED_END_FILES:=$(LIBGCC_DIR)crtendS.o $(top_builddir)lib/crtn.o
-+ endif
-+ 
-+ LOCAL_INSTALL_PATH := install_dir
-++
-++PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
-+diff --git a/extra/Configs/Config.arm b/extra/Configs/Config.arm
-+index 0bb2971..dc53643 100644
-+--- a/extra/Configs/Config.arm
-++++ b/extra/Configs/Config.arm
-+@@ -11,6 +11,7 @@ config FORCE_OPTIONS_FOR_ARCH
-+ 	bool
-+ 	default y
-+ 	select ARCH_ANY_ENDIAN
-++	select ARCH_HAS_UCONTEXT
-+ 
-+ config CONFIG_ARM_EABI
-+ 	bool "Build for EABI"
-+diff --git a/extra/Configs/Config.i386 b/extra/Configs/Config.i386
-+index 288aa5e..92cee3b 100644
-+--- a/extra/Configs/Config.i386
-++++ b/extra/Configs/Config.i386
-+@@ -12,6 +12,7 @@ config FORCE_OPTIONS_FOR_ARCH
-+ 	default y
-+ 	select ARCH_LITTLE_ENDIAN
-+ 	select ARCH_HAS_MMU
-++	select ARCH_HAS_UCONTEXT
-+ 
-+ choice
-+ 	prompt "Target x86 Processor Family"
-+diff --git a/extra/Configs/Config.in b/extra/Configs/Config.in
-+index 4bb6812..62bcd9b 100644
-+--- a/extra/Configs/Config.in
-++++ b/extra/Configs/Config.in
-+@@ -261,6 +261,9 @@ config ARCH_HAS_NO_LDSO
-+ 	bool
-+ 	select ARCH_HAS_NO_SHARED
-+ 
-++config ARCH_HAS_UCONTEXT
-++	bool
-++
-+ config HAVE_SHARED
-+ 	bool "Enable shared libraries"
-+ 	depends on !ARCH_HAS_NO_SHARED
-+@@ -678,6 +681,19 @@ config UCLIBC_SUSV3_LEGACY
-+ 
-+ 	  WARNING! ABI incompatibility.
-+ 
-++config UCLIBC_HAS_CONTEXT_FUNCS
-++	bool "Use obsolescent context control functions"
-++	depends on UCLIBC_SUSV3_LEGACY && ARCH_HAS_UCONTEXT
-++	help
-++	  Add into library the SuSv3 obsolescent functions used for context
-++	  control. The setcontext family allows the implementation in C of
-++	  advanced control flow patterns such as iterators, fibers, and
-++	  coroutines. They may be viewed as an advanced version of
-++	  setjmp/longjmp; whereas the latter allows only a single non-local jump
-++	  up the stack, setcontext allows the creation of multiple cooperative
-++	  threads of control, each with its own stack.
-++	  These functions are: setcontext, getcontext, makecontext, swapcontext.
-++
-+ config UCLIBC_SUSV3_LEGACY_MACROS
-+ 	bool "Enable SuSv3 LEGACY macros"
-+ 	help
-+diff --git a/extra/Configs/Config.mips b/extra/Configs/Config.mips
-+index 063b07c..48e0b64 100644
-+--- a/extra/Configs/Config.mips
-++++ b/extra/Configs/Config.mips
-+@@ -11,6 +11,7 @@ config FORCE_OPTIONS_FOR_ARCH
-+ 	bool
-+ 	default y
-+ 	select ARCH_ANY_ENDIAN
-++	select ARCH_HAS_UCONTEXT
-+ 
-+ choice
-+ 	prompt "Target ABI"
-+diff --git a/extra/Configs/Config.x86_64 b/extra/Configs/Config.x86_64
-+index 1b28088..4c8c3a9 100644
-+--- a/extra/Configs/Config.x86_64
-++++ b/extra/Configs/Config.x86_64
-+@@ -12,3 +12,4 @@ config FORCE_OPTIONS_FOR_ARCH
-+ 	default y
-+ 	select ARCH_LITTLE_ENDIAN
-+ 	select ARCH_HAS_MMU
-++	select ARCH_HAS_UCONTEXT
-+diff --git a/include/ucontext.h b/include/ucontext.h
-+index 14a1270..f11db77 100644
-+--- a/include/ucontext.h
-++++ b/include/ucontext.h
-+@@ -15,17 +15,43 @@
-+    License along with the GNU C Library; if not, see
-+    <http://www.gnu.org/licenses/>.  */
-+ 
-++/* The System V ABI user-level context switching support functions
-++   are marked obsolescent by SuSv3.  */
-++
-+ #ifndef _UCONTEXT_H
-+ #define _UCONTEXT_H	1
-+ 
-+ #include <features.h>
-+ 
-++#ifdef __UCLIBC_HAS_CONTEXT_FUNCS__
-++
-+ /* Get machine dependent definition of data structures.  */
-+ #include <sys/ucontext.h>
-+ 
-+-/* The System V ABI user-level context switching support functions
-+- * are marked obsolescent by SuSv3, and are not implemented by
-+- * uClibc.  This header is therefore empty.  */
-++__BEGIN_DECLS
-++
-++/* Get user context and store it in variable pointed to by UCP.  */
-++extern int getcontext (ucontext_t *__ucp) __THROW;
-++
-++/* Set user context from information of variable pointed to by UCP.  */
-++extern int setcontext (const ucontext_t *__ucp) __THROW;
-++
-++/* Save current context in context variable pointed to by OUCP and set
-++   context from variable pointed to by UCP.  */
-++extern int swapcontext (ucontext_t *__restrict __oucp,
-++			const ucontext_t *__restrict __ucp) __THROW;
-++
-++/* Manipulate user context UCP to continue with calling functions FUNC
-++   and the ARGC-1 parameters following ARGC when the context is used
-++   the next time in `setcontext' or `swapcontext'.
-++
-++   We cannot say anything about the parameters FUNC takes; `void'
-++   is as good as any other choice.  */
-++extern void makecontext (ucontext_t *__ucp, void (*__func) (void),
-++			 int __argc, ...) __THROW;
-++
-++__END_DECLS
-+ 
-++#endif
-+ 
-+ #endif /* ucontext.h */
-+diff --git a/libc/.gitignore b/libc/.gitignore
-+new file mode 100644
-+index 0000000..f4c0305
-+--- /dev/null
-++++ b/libc/.gitignore
-+@@ -0,0 +1 @@
-++ucontext_i.[chs]
-+diff --git a/libc/sysdeps/linux/Makefile.commonarch b/libc/sysdeps/linux/Makefile.commonarch
-+index c1bc5df..ac89e72 100644
-+--- a/libc/sysdeps/linux/Makefile.commonarch
-++++ b/libc/sysdeps/linux/Makefile.commonarch
-+@@ -37,5 +37,23 @@ headers-y += $(ARCH_HEADERS_OUT)
-+ headers_clean-y += HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
-+ HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)):
-+ 	$(do_rm) $(ARCH_HEADERS_OUT)
-+-
-+ endif
-++
-++CFLAGS-ucontext_i.c = -S
-++
-++$(ARCH_OUT)/ucontext_i.c: $(ARCH_DIR)/ucontext_i.sym
-++	$(do_awk) $(top_srcdir)extra/scripts/gen-as-const.awk $< > $@
-++
-++$(ARCH_OUT)/ucontext_i.s: $(ARCH_OUT)/ucontext_i.c
-++	$(compile.c)
-++
-++$(ARCH_OUT)/ucontext_i.h: $(ARCH_OUT)/ucontext_i.s
-++	$(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
-++
-++pregen-headers-$(UCLIBC_HAS_CONTEXT_FUNCS) += $(ARCH_OUT)/ucontext_i.h
-++
-++headers_clean-$(UCLIBC_HAS_CONTEXT_FUNCS) += \
-++	HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i)
-++
-++HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i):
-++	$(do_rm) $(addprefix $(ARCH_OUT)/ucontext_i., c h s)
-+diff --git a/libc/sysdeps/linux/arm/Makefile.arch b/libc/sysdeps/linux/arm/Makefile.arch
-+index 5fc3e54..36d988b 100644
-+--- a/libc/sysdeps/linux/arm/Makefile.arch
-++++ b/libc/sysdeps/linux/arm/Makefile.arch
-+@@ -43,3 +43,8 @@ libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
-+ libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
-+ 	$(ARCH_OUT)/aeabi_sighandlers.os $(ARCH_OUT)/aeabi_unwind_cpp_pr1.o
-+ endif
-++
-++ifeq ($(UCLIBC_HAS_CONTEXT_FUNCS),y)
-++CSRC += makecontext.c
-++SSRC += getcontext.S setcontext.S swapcontext.S
-++endif
-+diff --git a/libc/sysdeps/linux/arm/getcontext.S b/libc/sysdeps/linux/arm/getcontext.S
-+new file mode 100644
-+index 0000000..a987c52
-+--- /dev/null
-++++ b/libc/sysdeps/linux/arm/getcontext.S
-+@@ -0,0 +1,80 @@
-++/* Copyright (C) 2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++	.syntax unified
-++	.text
-++
-++/* int getcontext (ucontext_t *ucp) */
-++
-++ENTRY(__getcontext)
-++	/* No need to save r0-r3, d0-d7, or d16-d31.  */
-++	add	r1, r0, #MCONTEXT_ARM_R4
-++	stmia   r1, {r4-r11}
-++
-++	/* Save R13 separately as Thumb can't STM it.  */
-++	str     r13, [r0, #MCONTEXT_ARM_SP]
-++	str     r14, [r0, #MCONTEXT_ARM_LR]
-++	/* Return to LR */
-++	str     r14, [r0, #MCONTEXT_ARM_PC]
-++	/* Return zero */
-++	mov     r2, #0
-++	str     r2, [r0, #MCONTEXT_ARM_R0]
-++
-++	/* Save ucontext_t * across the next call.  */
-++	mov	r4, r0
-++
-++	/* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */
-++	mov     r0, #SIG_BLOCK
-++	mov     r1, #0
-++	add     r2, r4, #UCONTEXT_SIGMASK
-++	bl      PLTJMP(sigprocmask)
-++
-++#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
-++# ifdef __VFP_FP__
-++	/* Store the VFP registers.  */
-++	/* Following instruction is fstmiax ip!, {d8-d15}.  */
-++	stc     p11, cr8, [r0], #64
-++	/* Store the floating-point status register.  */
-++	/* Following instruction is fmrx r2, fpscr.  */
-++	mrc     p10, 7, r1, cr1, cr0, 0
-++	str     r1, [r0], #4
-++# endif
-++#endif
-++#ifdef __IWMMXT__
-++	/* Save the call-preserved iWMMXt registers.  */
-++	/* Following instructions are wstrd wr10, [r0], #8 (etc.)  */
-++	stcl    p1, cr10, [r0], #8
-++	stcl    p1, cr11, [r0], #8
-++	stcl    p1, cr12, [r0], #8
-++	stcl    p1, cr13, [r0], #8
-++	stcl    p1, cr14, [r0], #8
-++	stcl    p1, cr15, [r0], #8
-++#endif
-++
-++	/* Restore the clobbered R4 and LR.  */
-++	ldr	r14, [r4, #MCONTEXT_ARM_LR]
-++	ldr	r4, [r4, #MCONTEXT_ARM_R4]
-++
-++	mov	r0, #0
-++	DO_RET(r14)
-++
-++END(__getcontext)
-++weak_alias(__getcontext, getcontext)
-+diff --git a/libc/sysdeps/linux/arm/makecontext.c b/libc/sysdeps/linux/arm/makecontext.c
-+new file mode 100644
-+index 0000000..d6ae6f0
-+--- /dev/null
-++++ b/libc/sysdeps/linux/arm/makecontext.c
-+@@ -0,0 +1,73 @@
-++/* Copyright (C) 2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <stdarg.h>
-++#include <ucontext.h>
-++
-++/* Number of arguments that go in registers.  */
-++#define NREG_ARGS  4
-++
-++/* Take a context previously prepared via getcontext() and set to
-++   call func() with the given int only args.  */
-++void
-++__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-++{
-++  extern void __startcontext (void);
-++  unsigned long *funcstack;
-++  va_list vl;
-++  unsigned long *regptr;
-++  unsigned int reg;
-++  int misaligned;
-++
-++  /* Start at the top of stack.  */
-++  funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
-++
-++  /* Ensure the stack stays eight byte aligned.  */
-++  misaligned = ((unsigned long) funcstack & 4) != 0;
-++
-++  if ((argc > NREG_ARGS) && (argc & 1) != 0)
-++    misaligned = !misaligned;
-++
-++  if (misaligned)
-++    funcstack -= 1;
-++
-++  va_start (vl, argc);
-++
-++  /* Reserve space for the on-stack arguments.  */
-++  if (argc > NREG_ARGS)
-++    funcstack -= (argc - NREG_ARGS);
-++
-++  ucp->uc_mcontext.arm_sp = (unsigned long) funcstack;
-++  ucp->uc_mcontext.arm_pc = (unsigned long) func;
-++
-++  /* Exit to startcontext() with the next context in R4 */
-++  ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link;
-++  ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext;
-++
-++  /* The first four arguments go into registers.  */
-++  regptr = &(ucp->uc_mcontext.arm_r0);
-++
-++  for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++)
-++    *regptr++ = va_arg (vl, unsigned long);
-++
-++  /* And the remainder on the stack.  */
-++  for (; reg < argc; reg++)
-++    *funcstack++ = va_arg (vl, unsigned long);
-++
-++  va_end (vl);
-++}
-++weak_alias (__makecontext, makecontext)
-+diff --git a/libc/sysdeps/linux/arm/setcontext.S b/libc/sysdeps/linux/arm/setcontext.S
-+new file mode 100644
-+index 0000000..a5c33a0
-+--- /dev/null
-++++ b/libc/sysdeps/linux/arm/setcontext.S
-+@@ -0,0 +1,76 @@
-++/* Copyright (C) 2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++	.syntax unified
-++	.text
-++
-++/* int setcontext (const ucontext_t *ucp) */
-++
-++ENTRY(__setcontext)
-++	mov	r4, r0
-++
-++#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
-++# ifdef __VFP_FP__
-++	/* Following instruction is vldmia r0!, {d8-d15}.  */
-++	ldc     p11, cr8, [r0], #64
-++	/* Restore the floating-point status register.  */
-++	ldr     r1, [r0], #4
-++	/* Following instruction is fmxr fpscr, r1.  */
-++	mcr     p10, 7, r1, cr1, cr0, 0
-++# endif
-++#endif
-++
-++#ifdef __IWMMXT__
-++	/* Restore the call-preserved iWMMXt registers.  */
-++	/* Following instructions are wldrd wr10, [r0], #8 (etc.)  */
-++	ldcl    p1, cr10, [r0], #8
-++	ldcl    p1, cr11, [r0], #8
-++	ldcl    p1, cr12, [r0], #8
-++	ldcl    p1, cr13, [r0], #8
-++	ldcl    p1, cr14, [r0], #8
-++	ldcl    p1, cr15, [r0], #8
-++#endif
-++
-++	/* Now bring back the signal status.  */
-++	mov	r0, #SIG_SETMASK
-++	add	r1, r4, #UCONTEXT_SIGMASK
-++	mov	r2, #0
-++	bl	PLTJMP(sigprocmask)
-++
-++        /* Loading r0-r3 makes makecontext easier.  */
-++        add     r14, r4, #MCONTEXT_ARM_R0
-++        ldmia   r14, {r0-r11}
-++        ldr     r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)]
-++        add     r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0)
-++        ldmia   r14, {r14, pc}
-++
-++END(setcontext)
-++weak_alias(__setcontext, setcontext)
-++
-++	/* Called when a makecontext() context returns.  Start the
-++	   context in R4 or fall through to exit().  */
-++ENTRY(__startcontext)
-++        movs    r0, r4
-++        bne     PLTJMP(__setcontext)
-++
-++        @ New context was 0 - exit
-++        b       PLTJMP(_exit)
-++END(__startcontext)
-+diff --git a/libc/sysdeps/linux/arm/swapcontext.S b/libc/sysdeps/linux/arm/swapcontext.S
-+new file mode 100644
-+index 0000000..ba6e31c
-+--- /dev/null
-++++ b/libc/sysdeps/linux/arm/swapcontext.S
-+@@ -0,0 +1,63 @@
-++/* Copyright (C) 2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++	.syntax unified
-++	.text
-++
-++/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
-++
-++ENTRY(swapcontext)
-++
-++	/* Have getcontext() do most of the work then fix up
-++	   LR afterwards.  Save R3 to keep the stack aligned.  */
-++	push	{r0,r1,r3,r14}
-++	cfi_adjust_cfa_offset (16)
-++	cfi_rel_offset (r0,0)
-++	cfi_rel_offset (r1,4)
-++	cfi_rel_offset (r3,8)
-++	cfi_rel_offset (r14,12)
-++
-++	bl	__getcontext
-++	mov	r4, r0
-++
-++	pop	{r0,r1,r3,r14}
-++	cfi_adjust_cfa_offset (-16)
-++	cfi_restore (r0)
-++	cfi_restore (r1)
-++	cfi_restore (r3)
-++	cfi_restore (r14)
-++
-++	/* Exit if getcontext() failed.  */
-++	cmp 	r4, #0
-++	itt	ne
-++	movne	r0, r4
-++	RETINSTR(ne, r14)
-++
-++	/* Fix up LR and the PC.  */
-++	str	r13,[r0, #MCONTEXT_ARM_SP]
-++	str	r14,[r0, #MCONTEXT_ARM_LR]
-++	str	r14,[r0, #MCONTEXT_ARM_PC]
-++
-++	/* And swap using swapcontext().  */
-++	mov	r0, r1
-++	b	__setcontext
-++
-++END(swapcontext)
-+diff --git a/libc/sysdeps/linux/arm/ucontext_i.sym b/libc/sysdeps/linux/arm/ucontext_i.sym
-+new file mode 100644
-+index 0000000..9650322
-+--- /dev/null
-++++ b/libc/sysdeps/linux/arm/ucontext_i.sym
-+@@ -0,0 +1,30 @@
-++#include <inttypes.h>
-++#include <signal.h>
-++#include <stddef.h>
-++#include <sys/ucontext.h>
-++
-++SIG_BLOCK
-++SIG_SETMASK
-++
-++-- Offsets of the fields in the ucontext_t structure.
-++#define ucontext(member)	offsetof (ucontext_t, member)
-++#define mcontext(member)	ucontext (uc_mcontext.member)
-++
-++UCONTEXT_FLAGS			ucontext (uc_flags)
-++UCONTEXT_LINK			ucontext (uc_link)
-++UCONTEXT_STACK			ucontext (uc_stack)
-++UCONTEXT_MCONTEXT		ucontext (uc_mcontext)
-++UCONTEXT_SIGMASK		ucontext (uc_sigmask)
-++
-++UCONTEXT_REGSPACE		ucontext (uc_regspace)
-++
-++MCONTEXT_TRAP_NO		mcontext (trap_no)
-++MCONTEXT_ERROR_CODE		mcontext (error_code)
-++MCONTEXT_OLDMASK		mcontext (oldmask)
-++MCONTEXT_ARM_R0		mcontext (arm_r0)
-++MCONTEXT_ARM_R4		mcontext (arm_r4)
-++MCONTEXT_ARM_SP		mcontext (arm_sp)
-++MCONTEXT_ARM_LR		mcontext (arm_lr)
-++MCONTEXT_ARM_PC		mcontext (arm_pc)
-++MCONTEXT_ARM_CPSR		mcontext (arm_cpsr)
-++MCONTEXT_FAULT_ADDRESS		mcontext (fault_address)
-+diff --git a/libc/sysdeps/linux/i386/Makefile.arch b/libc/sysdeps/linux/i386/Makefile.arch
-+index a3bf32f..e7fd28e 100644
-+--- a/libc/sysdeps/linux/i386/Makefile.arch
-++++ b/libc/sysdeps/linux/i386/Makefile.arch
-+@@ -18,3 +18,7 @@ endif
-+ ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
-+ SSRC += vfork.S clone.S
-+ endif
-++
-++ifeq ($(UCLIBC_HAS_CONTEXT_FUNCS),y)
-++SSRC += makecontext.S setcontext.S getcontext.S swapcontext.S
-++endif
-+diff --git a/libc/sysdeps/linux/i386/getcontext.S b/libc/sysdeps/linux/i386/getcontext.S
-+new file mode 100644
-+index 0000000..3221b59
-+--- /dev/null
-++++ b/libc/sysdeps/linux/i386/getcontext.S
-+@@ -0,0 +1,84 @@
-++/* Save current context.
-++   Copyright (C) 2001-2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++
-++ENTRY(__getcontext)
-++	/* Load address of the context data structure.  */
-++	movl	4(%esp), %eax
-++
-++	/* Return value of getcontext.  EAX is the only register whose
-++	   value is not preserved.  */
-++	movl	$0, oEAX(%eax)
-++
-++	/* Save the 32-bit register values and the return address.  */
-++	movl	%ecx, oECX(%eax)
-++	movl	%edx, oEDX(%eax)
-++	movl	%edi, oEDI(%eax)
-++	movl	%esi, oESI(%eax)
-++	movl	%ebp, oEBP(%eax)
-++	movl	(%esp), %ecx
-++	movl	%ecx, oEIP(%eax)
-++	leal	4(%esp), %ecx		/* Exclude the return address.  */
-++	movl	%ecx, oESP(%eax)
-++	movl	%ebx, oEBX(%eax)
-++
-++	/* Save the FS segment register.  We don't touch the GS register
-++	   since it is used for threads.  */
-++	xorl	%edx, %edx
-++	movw	%fs, %dx
-++	movl	%edx, oFS(%eax)
-++
-++	/* We have separate floating-point register content memory on the
-++	   stack.  We use the __fpregs_mem block in the context.  Set the
-++	   links up correctly.  */
-++	leal	oFPREGSMEM(%eax), %ecx
-++	movl	%ecx, oFPREGS(%eax)
-++	/* Save the floating-point context.  */
-++	fnstenv	(%ecx)
-++	/* And load it right back since the processor changes the mask.
-++	   Intel thought this opcode to be used in interrupt handlers which
-++	   would block all exceptions.  */
-++	fldenv	(%ecx)
-++
-++	/* Save the current signal mask.  */
-++	pushl	%ebx
-++	cfi_adjust_cfa_offset (4)
-++	cfi_rel_offset (ebx, 0)
-++	leal	oSIGMASK(%eax), %edx
-++	xorl	%ecx, %ecx
-++	movl	$SIG_BLOCK, %ebx
-++	movl	$__NR_sigprocmask, %eax
-++	ENTER_KERNEL
-++	popl	%ebx
-++	cfi_adjust_cfa_offset (-4)
-++	cfi_restore (ebx)
-++	cmpl	$-4095, %eax		/* Check %eax for error.  */
-++	jae	SYSCALL_ERROR_LABEL	/* Jump to error handler if error.  */
-++
-++	/* All done, return 0 for success.  */
-++	xorl	%eax, %eax
-++L(pseudo_end):
-++	ret
-++PSEUDO_END(__getcontext)
-++
-++weak_alias (__getcontext, getcontext)
-+diff --git a/libc/sysdeps/linux/i386/makecontext.S b/libc/sysdeps/linux/i386/makecontext.S
-+new file mode 100644
-+index 0000000..d12799d
-+--- /dev/null
-++++ b/libc/sysdeps/linux/i386/makecontext.S
-+@@ -0,0 +1,123 @@
-++/* Create new context.
-++   Copyright (C) 2001,2002,2005,2007,2008,2009 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++
-++ENTRY(__makecontext)
-++	movl	4(%esp), %eax
-++
-++	/* Load the address of the function we are supposed to run.  */
-++	movl	8(%esp), %ecx
-++
-++	/* Compute the address of the stack.  The information comes from
-++	   to us_stack element.  */
-++	movl	oSS_SP(%eax), %edx
-++	movl	%ecx, oEIP(%eax)
-++	addl	oSS_SIZE(%eax), %edx
-++
-++	/* Remember the number of parameters for the exit handler since
-++	   it has to remove them.  We store the number in the EBX register
-++	   which the function we will call must preserve.  */
-++	movl	12(%esp), %ecx
-++	movl	%ecx, oEBX(%eax)
-++
-++	/* Make room on the new stack for the parameters.
-++	   Room for the arguments, return address (== L(exitcode)) and
-++	   oLINK pointer is needed.  One of the pointer sizes is subtracted
-++	   after aligning the stack.  */
-++	negl	%ecx
-++	leal	-4(%edx,%ecx,4), %edx
-++	negl	%ecx
-++
-++	/* Align the stack.  */
-++	andl	$0xfffffff0, %edx
-++	subl	$4, %edx
-++
-++	/* Store the future stack pointer.  */
-++	movl	%edx, oESP(%eax)
-++
-++	/* Put the next context on the new stack (from the uc_link
-++	   element).  */
-++	movl	oLINK(%eax), %eax
-++	movl	%eax, 4(%edx,%ecx,4)
-++
-++	/* Copy all the parameters.  */
-++	jecxz	2f
-++1:	movl	12(%esp,%ecx,4), %eax
-++	movl	%eax, (%edx,%ecx,4)
-++	decl	%ecx
-++	jnz	1b
-++2:
-++
-++	/* If the function we call returns we must continue with the
-++	   context which is given in the uc_link element.  To do this
-++	   set the return address for the function the user provides
-++	   to a little bit of helper code which does the magic (see
-++	   below).  */
-++#ifdef __PIC__
-++	call	1f
-++	cfi_adjust_cfa_offset (4)
-++1:	popl	%ecx
-++	cfi_adjust_cfa_offset (-4)
-++	addl	$L(exitcode)-1b, %ecx
-++	movl	%ecx, (%edx)
-++#else
-++	movl	$L(exitcode), (%edx)
-++#endif
-++	/* 'makecontext' returns no value.  */
-++L(pseudo_end):
-++	ret
-++
-++	/* This is the helper code which gets called if a function which
-++	   is registered with 'makecontext' returns.  In this case we
-++	   have to install the context listed in the uc_link element of
-++	   the context 'makecontext' manipulated at the time of the
-++	   'makecontext' call.  If the pointer is NULL the process must
-++	   terminate.  */
-++	cfi_endproc
-++L(exitcode):
-++	/* This removes the parameters passed to the function given to
-++	   'makecontext' from the stack.  EBX contains the number of
-++	   parameters (see above).  */
-++	leal	(%esp,%ebx,4), %esp
-++
-++#ifdef	__PIC__
-++	call	1f
-++1:	popl	%ebx
-++	addl	$_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
-++#endif
-++	cmpl	$0, (%esp)		/* Check the next context.  */
-++	je	2f			/* If it is zero exit.  */
-++
-++	call	JUMPTARGET(__setcontext)
-++	/* If this returns (which can happen if the syscall fails) we'll
-++	   exit the program with the return error value (-1).  */
-++
-++	movl	%eax, (%esp)
-++2:	call	HIDDEN_JUMPTARGET(exit)
-++	/* The 'exit' call should never return.  In case it does cause
-++	   the process to terminate.  */
-++	hlt
-++	cfi_startproc
-++END(__makecontext)
-++
-++weak_alias (__makecontext, makecontext)
-+diff --git a/libc/sysdeps/linux/i386/setcontext.S b/libc/sysdeps/linux/i386/setcontext.S
-+new file mode 100644
-+index 0000000..ae953cc
-+--- /dev/null
-++++ b/libc/sysdeps/linux/i386/setcontext.S
-+@@ -0,0 +1,96 @@
-++/* Install given context.
-++   Copyright (C) 2001-2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++
-++ENTRY(__setcontext)
-++	/* Load address of the context data structure.  */
-++	movl	4(%esp), %eax
-++
-++	/* Get the current signal mask.  Note that we preserve EBX in case
-++	   the system call fails and we return from the function with an
-++	   error.  */
-++	pushl	%ebx
-++	cfi_adjust_cfa_offset (4)
-++	xorl	%edx, %edx
-++	leal	oSIGMASK(%eax), %ecx
-++	movl	$SIG_SETMASK, %ebx
-++	cfi_rel_offset (ebx, 0)
-++	movl	$__NR_sigprocmask, %eax
-++	ENTER_KERNEL
-++	popl	%ebx
-++	cfi_adjust_cfa_offset (-4)
-++	cfi_restore (ebx)
-++	cmpl	$-4095, %eax		/* Check %eax for error.  */
-++	jae	SYSCALL_ERROR_LABEL	/* Jump to error handler if error.  */
-++
-++	/* EAX was modified, reload it.  */
-++	movl	4(%esp), %eax
-++
-++	/* Restore the floating-point context.  Not the registers, only the
-++	   rest.  */
-++	movl	oFPREGS(%eax), %ecx
-++	fldenv	(%ecx)
-++
-++	/* Restore the FS segment register.  We don't touch the GS register
-++	   since it is used for threads.  */
-++	movl	oFS(%eax), %ecx
-++	movw	%cx, %fs
-++
-++	/* Fetch the address to return to.  */
-++	movl	oEIP(%eax), %ecx
-++
-++	/* Load the new stack pointer.  */
-++	cfi_def_cfa (eax, 0)
-++	cfi_offset (edi, oEDI)
-++	cfi_offset (esi, oESI)
-++	cfi_offset (ebp, oEBP)
-++	cfi_offset (ebx, oEBX)
-++	cfi_offset (edx, oEDX)
-++	cfi_offset (ecx, oECX)
-++	movl	oESP(%eax), %esp
-++
-++	/* Push the return address on the new stack so we can return there.  */
-++	pushl	%ecx
-++
-++	/* Load the values of all the 32-bit registers (except ESP).
-++	   Since we are loading from EAX, it must be last.  */
-++	movl	oEDI(%eax), %edi
-++	movl	oESI(%eax), %esi
-++	movl	oEBP(%eax), %ebp
-++	movl	oEBX(%eax), %ebx
-++	movl	oEDX(%eax), %edx
-++	movl	oECX(%eax), %ecx
-++	movl	oEAX(%eax), %eax
-++
-++	/* End FDE here, we fall into another context.  */
-++	cfi_endproc
-++	cfi_startproc
-++
-++	/* The following 'ret' will pop the address of the code and jump
-++	   to it.  */
-++
-++L(pseudo_end):
-++	ret
-++PSEUDO_END(__setcontext)
-++
-++weak_alias (__setcontext, setcontext)
-+diff --git a/libc/sysdeps/linux/i386/swapcontext.S b/libc/sysdeps/linux/i386/swapcontext.S
-+new file mode 100644
-+index 0000000..ee5d0e4
-+--- /dev/null
-++++ b/libc/sysdeps/linux/i386/swapcontext.S
-+@@ -0,0 +1,110 @@
-++/* Save current context and install the given one.
-++   Copyright (C) 2001-2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++
-++ENTRY(__swapcontext)
-++	/* Load address of the context data structure we save in.  */
-++	movl	4(%esp), %eax
-++
-++	/* Return value of swapcontext.  EAX is the only register whose
-++	   value is not preserved.  */
-++	movl	$0, oEAX(%eax)
-++
-++	/* Save the 32-bit register values and the return address.  */
-++	movl	%ecx, oECX(%eax)
-++	movl	%edx, oEDX(%eax)
-++	movl	%edi, oEDI(%eax)
-++	movl	%esi, oESI(%eax)
-++	movl	%ebp, oEBP(%eax)
-++	movl	(%esp), %ecx
-++	movl	%ecx, oEIP(%eax)
-++	leal	4(%esp), %ecx
-++	movl	%ecx, oESP(%eax)
-++	movl	%ebx, oEBX(%eax)
-++
-++	/* Save the FS segment register.  */
-++	xorl	%edx, %edx
-++	movw	%fs, %dx
-++	movl	%edx, oFS(%eax)
-++
-++	/* We have separate floating-point register content memory on the
-++	   stack.  We use the __fpregs_mem block in the context.  Set the
-++	   links up correctly.  */
-++	leal	oFPREGSMEM(%eax), %ecx
-++	movl	%ecx, oFPREGS(%eax)
-++	/* Save the floating-point context.  */
-++	fnstenv	(%ecx)
-++
-++	/* Load address of the context data structure we have to load.  */
-++	movl	8(%esp), %ecx
-++
-++	/* Save the current signal mask and install the new one.  */
-++	pushl	%ebx
-++	leal	oSIGMASK(%eax), %edx
-++	leal	oSIGMASK(%ecx), %ecx
-++	movl	$SIG_SETMASK, %ebx
-++	movl	$__NR_sigprocmask, %eax
-++	ENTER_KERNEL
-++	popl	%ebx
-++	cmpl	$-4095, %eax		/* Check %eax for error.  */
-++	jae	SYSCALL_ERROR_LABEL	/* Jump to error handler if error.  */
-++
-++	/* EAX was modified, reload it.  */
-++	movl	8(%esp), %eax
-++
-++	/* Restore the floating-point context.  Not the registers, only the
-++	   rest.  */
-++	movl	oFPREGS(%eax), %ecx
-++	fldenv	(%ecx)
-++
-++	/* Restore the FS segment register.  We don't touch the GS register
-++	   since it is used for threads.  */
-++	movl	oFS(%eax), %edx
-++	movw	%dx, %fs
-++
-++	/* Fetch the address to return to.  */
-++	movl	oEIP(%eax), %ecx
-++
-++	/* Load the new stack pointer.  */
-++	movl	oESP(%eax), %esp
-++
-++	/* Push the return address on the new stack so we can return there.  */
-++	pushl	%ecx
-++
-++	/* Load the values of all the 32-bit registers (except ESP).
-++	   Since we are loading from EAX, it must be last.  */
-++	movl	oEDI(%eax), %edi
-++	movl	oESI(%eax), %esi
-++	movl	oEBP(%eax), %ebp
-++	movl	oEBX(%eax), %ebx
-++	movl	oEDX(%eax), %edx
-++	movl	oECX(%eax), %ecx
-++	movl	oEAX(%eax), %eax
-++
-++	/* The following 'ret' will pop the address of the code and jump
-++	   to it.  */
-++L(pseudo_end):
-++	ret
-++PSEUDO_END(__swapcontext)
-++
-++weak_alias (__swapcontext, swapcontext)
-+diff --git a/libc/sysdeps/linux/i386/ucontext_i.sym b/libc/sysdeps/linux/i386/ucontext_i.sym
-+new file mode 100644
-+index 0000000..b11a550
-+--- /dev/null
-++++ b/libc/sysdeps/linux/i386/ucontext_i.sym
-+@@ -0,0 +1,30 @@
-++#include <stddef.h>
-++#include <signal.h>
-++#include <sys/ucontext.h>
-++
-++--
-++
-++SIG_BLOCK
-++SIG_SETMASK
-++
-++#define ucontext(member)	offsetof (ucontext_t, member)
-++#define mcontext(member)	ucontext (uc_mcontext.member)
-++#define mreg(reg)		mcontext (gregs[REG_##reg])
-++
-++oLINK		ucontext (uc_link)
-++oSS_SP		ucontext (uc_stack.ss_sp)
-++oSS_SIZE	ucontext (uc_stack.ss_size)
-++oGS		mreg (GS)
-++oFS		mreg (FS)
-++oEDI		mreg (EDI)
-++oESI		mreg (ESI)
-++oEBP		mreg (EBP)
-++oESP		mreg (ESP)
-++oEBX		mreg (EBX)
-++oEDX		mreg (EDX)
-++oECX		mreg (ECX)
-++oEAX		mreg (EAX)
-++oEIP		mreg (EIP)
-++oFPREGS		mcontext (fpregs)
-++oSIGMASK	ucontext (uc_sigmask)
-++oFPREGSMEM	ucontext (__fpregs_mem)
-+diff --git a/libc/sysdeps/linux/mips/Makefile.arch b/libc/sysdeps/linux/mips/Makefile.arch
-+index fce99f8..00b9331 100644
-+--- a/libc/sysdeps/linux/mips/Makefile.arch
-++++ b/libc/sysdeps/linux/mips/Makefile.arch
-+@@ -27,3 +27,7 @@ ASFLAGS-syscall_error.S += -D_LIBC_REENTRANT
-+ 
-+ ARCH_HEADERS := sgidefs.h
-+ # regdef.h
-++
-++ifeq ($(UCLIBC_HAS_CONTEXT_FUNCS),y)
-++SSRC += makecontext.S setcontext.S getcontext.S swapcontext.S
-++endif
-+diff --git a/libc/sysdeps/linux/mips/getcontext.S b/libc/sysdeps/linux/mips/getcontext.S
-+new file mode 100644
-+index 0000000..c4ad081
-+--- /dev/null
-++++ b/libc/sysdeps/linux/mips/getcontext.S
-+@@ -0,0 +1,148 @@
-++/* Save current context.
-++   Copyright (C) 2009 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library.  If not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++#include <sys/asm.h>
-++#include <sys/fpregdef.h>
-++#include <sys/regdef.h>
-++
-++#include "ucontext_i.h"
-++
-++/* int getcontext (ucontext_t *ucp) */
-++
-++	.text
-++LOCALSZ = 0
-++MASK = 0x00000000
-++#ifdef __PIC__
-++LOCALSZ = 1						/* save gp */
-++# if _MIPS_SIM != _ABIO32
-++MASK = 0x10000000
-++# endif
-++#endif
-++FRAMESZ = ((LOCALSZ * SZREG) + ALSZ) & ALMASK
-++GPOFF = FRAMESZ - (1 * SZREG)
-++
-++NESTED (__getcontext, FRAMESZ, ra)
-++	.mask	MASK, 0
-++	.fmask	0x00000000, 0
-++
-++#ifdef __PIC__
-++	SETUP_GP
-++
-++	move	a2, sp
-++# define _SP a2
-++
-++# if _MIPS_SIM != _ABIO32
-++	move	a3, gp
-++#  define _GP a3
-++# endif
-++
-++	PTR_ADDIU sp, -FRAMESZ
-++	SETUP_GP64 (GPOFF, __getcontext)
-++	SAVE_GP (GPOFF)
-++
-++#else  /* ! __PIC__ */
-++# define _SP sp
-++# define _GP gp
-++
-++#endif /* ! __PIC__ */
-++
-++#ifdef PROF
-++	.set	noat
-++	move	AT, ra
-++	jal	_mcount
-++	.set	at
-++#endif
-++
-++	/* Store a magic flag.	*/
-++	li	v1, 1
-++	REG_S	v1, (0 * SZREG + MCONTEXT_GREGS)(a0)	/* zero */
-++
-++	REG_S	s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
-++#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-++	REG_S	_GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
-++#endif
-++	REG_S	_SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	ra, MCONTEXT_PC(a0)
-++
-++#ifdef __mips_hard_float
-++# if _MIPS_SIM == _ABI64
-++	s.d	fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
-++
-++# else  /* _MIPS_SIM != _ABI64 */
-++	s.d	fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-++
-++# endif /* _MIPS_SIM != _ABI64 */
-++
-++	cfc1	v1, fcr31
-++	sw	v1, MCONTEXT_FPC_CSR(a0)
-++#endif /* __mips_hard_float */
-++
-++/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
-++	li	a3, _NSIG8
-++	PTR_ADDU a2, a0, UCONTEXT_SIGMASK
-++	move	a1, zero
-++	li	a0, SIG_BLOCK
-++
-++	li	v0, SYS_ify (rt_sigprocmask)
-++	syscall
-++	bnez	a3, 99f
-++
-++#ifdef __PIC__
-++	RESTORE_GP64
-++	PTR_ADDIU sp, FRAMESZ
-++#endif
-++	move	v0, zero
-++	jr	ra
-++
-++99:
-++#ifdef __PIC__
-++	PTR_LA	t9, JUMPTARGET (__syscall_error)
-++	RESTORE_GP64
-++	PTR_ADDIU sp, FRAMESZ
-++	jr	t9
-++
-++#else  /* ! __PIC__ */
-++
-++	j	JUMPTARGET (__syscall_error)
-++#endif /* ! __PIC__ */
-++PSEUDO_END (__getcontext)
-++
-++weak_alias (__getcontext, getcontext)
-+diff --git a/libc/sysdeps/linux/mips/kernel_rt_sigframe.h b/libc/sysdeps/linux/mips/kernel_rt_sigframe.h
-+new file mode 100644
-+index 0000000..77ffaf6
-+--- /dev/null
-++++ b/libc/sysdeps/linux/mips/kernel_rt_sigframe.h
-+@@ -0,0 +1,10 @@
-++/* Linux kernel RT signal frame. */
-++typedef struct kernel_rt_sigframe
-++  {
-++    uint32_t rs_ass[4];
-++    uint32_t rs_code[2];
-++    siginfo_t rs_info;
-++    struct ucontext rs_uc;
-++    uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
-++  }
-++kernel_rt_sigframe_t;
-+diff --git a/libc/sysdeps/linux/mips/makecontext.S b/libc/sysdeps/linux/mips/makecontext.S
-+new file mode 100644
-+index 0000000..6427339
-+--- /dev/null
-++++ b/libc/sysdeps/linux/mips/makecontext.S
-+@@ -0,0 +1,188 @@
-++/* Modify saved context.
-++   Copyright (C) 2009 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library.  If not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++#include <sys/asm.h>
-++#include <sys/fpregdef.h>
-++#include <sys/regdef.h>
-++
-++#include "ucontext_i.h"
-++
-++/* int makecontext (ucontext_t *ucp, (void *func) (), int argc, ...) */
-++
-++	.text
-++LOCALSZ = 0
-++ARGSZ = 0
-++MASK = 0x00000000
-++#ifdef __PIC__
-++LOCALSZ = 1						/* save gp */
-++#endif
-++#if _MIPS_SIM != _ABIO32
-++ARGSZ = 5						/* save a3-a7 */
-++# ifdef __PIC__
-++MASK = 0x10000000
-++# endif
-++#endif
-++FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-++GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-++#if _MIPS_SIM != _ABIO32
-++A3OFF = FRAMESZ - (5 * SZREG)				/* callee-allocated */
-++A4OFF = FRAMESZ - (4 * SZREG)
-++A5OFF = FRAMESZ - (3 * SZREG)
-++A6OFF = FRAMESZ - (2 * SZREG)
-++A7OFF = FRAMESZ - (1 * SZREG)
-++NARGREGS = 8
-++#else
-++A3OFF = FRAMESZ + (3 * SZREG)				/* caller-allocated */
-++NARGREGS = 4
-++#endif
-++
-++NESTED (__makecontext, FRAMESZ, ra)
-++	.mask	MASK, -(ARGSZ * SZREG)
-++	.fmask	0x00000000, 0
-++
-++98:
-++#ifdef __PIC__
-++	SETUP_GP
-++#endif
-++
-++	PTR_ADDIU sp, -FRAMESZ
-++
-++#ifdef __PIC__
-++	SETUP_GP64 (GPOFF, __makecontext)
-++	SAVE_GP (GPOFF)
-++#endif
-++
-++#ifdef PROF
-++	.set	noat
-++	move	AT, ra
-++	jal	_mcount
-++	.set	at
-++#endif
-++
-++	/* Store args to be passed.  */
-++	REG_S	a3, A3OFF(sp)
-++#if _MIPS_SIM != _ABIO32
-++	REG_S	a4, A4OFF(sp)
-++	REG_S	a5, A5OFF(sp)
-++	REG_S	a6, A6OFF(sp)
-++	REG_S	a7, A7OFF(sp)
-++#endif
-++
-++	/* Store a magic flag.  */
-++	li	v1, 1
-++	REG_S	v1, (0 * SZREG + MCONTEXT_GREGS)(a0)	/* zero */
-++
-++	/* Set up the stack.  */
-++	PTR_L	t0, STACK_SP(a0)
-++	PTR_L	t2, STACK_SIZE(a0)
-++	PTR_ADDIU t1, sp, A3OFF
-++	PTR_ADDU t0, t2
-++	and	t0, ALMASK
-++	blez	a2, 2f					/* no arguments */
-++
-++	/* Store register arguments.  */
-++	PTR_ADDIU t2, a0, MCONTEXT_GREGS + 4 * SZREG
-++	move	t3, zero
-++0:
-++	addiu	t3, 1
-++	REG_L	v1, (t1)
-++	PTR_ADDIU t1, SZREG
-++	REG_S	v1, (t2)
-++	PTR_ADDIU t2, SZREG
-++	bgeu	t3, a2, 2f				/* all done */
-++	bltu	t3, NARGREGS, 0b			/* next */
-++
-++	/* Make room for stack arguments.  */
-++	PTR_SUBU t2, a2, t3
-++	PTR_SLL	t2, 3
-++	PTR_SUBU t0, t2
-++	and	t0, ALMASK
-++
-++	/* Store stack arguments.  */
-++	move	t2, t0
-++1:
-++	addiu	t3, 1
-++	REG_L	v1, (t1)
-++	PTR_ADDIU t1, SZREG
-++	REG_S	v1, (t2)
-++	PTR_ADDIU t2, SZREG
-++	bltu	t3, a2, 1b				/* next */
-++
-++2:
-++#if _MIPS_SIM == _ABIO32
-++	/* Make room for a0-a3 storage.  */
-++	PTR_ADDIU t0, -(NARGSAVE * SZREG)
-++#endif
-++	PTR_L	v1, UCONTEXT_LINK(a0)
-++#ifdef __PIC__
-++	PTR_ADDIU t9, 99f - 98b
-++#else
-++	PTR_LA	t9, 99f
-++#endif
-++	REG_S	t0, (29 * SZREG + MCONTEXT_GREGS)(a0)	/* sp */
-++	REG_S	v1, (16 * SZREG + MCONTEXT_GREGS)(a0)	/* s0 */
-++#ifdef __PIC__
-++	REG_S	gp, (17 * SZREG + MCONTEXT_GREGS)(a0)	/* s1 */
-++#endif
-++	REG_S	t9, (31 * SZREG + MCONTEXT_GREGS)(a0)	/* ra */
-++	REG_S	a1, MCONTEXT_PC(a0)
-++
-++#ifdef __PIC__
-++	RESTORE_GP64
-++	PTR_ADDIU sp, FRAMESZ
-++#endif
-++	jr	ra
-++
-++99:
-++#ifdef __PIC__
-++	move	gp, s1
-++#endif
-++	move	a0, zero
-++	beqz	s0, 0f
-++
-++	/* setcontext (ucp) */
-++	move	a0, s0
-++#ifdef __PIC__
-++	PTR_LA	t9, JUMPTARGET (__setcontext)
-++	jalr	t9
-++# if _MIPS_SIM == _ABIO32
-++	move	gp, s1
-++# endif
-++#else
-++	jal	JUMPTARGET (__setcontext)
-++#endif
-++	move	a0, v0
-++
-++0:
-++	/* exit (a0) */
-++#ifdef __PIC__
-++	PTR_LA	t9, HIDDEN_JUMPTARGET (exit)
-++	jalr	t9
-++#else
-++	jal	HIDDEN_JUMPTARGET (exit)
-++#endif
-++
-++	/* You don't exist, you won't feel anything.  */
-++1:
-++	lb	zero, (zero)
-++	b	1b
-++PSEUDO_END (__makecontext)
-++
-++weak_alias (__makecontext, makecontext)
-+diff --git a/libc/sysdeps/linux/mips/setcontext.S b/libc/sysdeps/linux/mips/setcontext.S
-+new file mode 100644
-+index 0000000..d3cde0e
-+--- /dev/null
-++++ b/libc/sysdeps/linux/mips/setcontext.S
-+@@ -0,0 +1,191 @@
-++/* Set current context.
-++   Copyright (C) 2009 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library.  If not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++#include <sys/asm.h>
-++#include <sys/fpregdef.h>
-++#include <sys/regdef.h>
-++
-++#include "ucontext_i.h"
-++
-++/* int setcontext (const ucontext_t *ucp) */
-++
-++	.text
-++LOCALSZ = 0
-++ARGSZ = 0
-++MASK = 0x00000000
-++#ifdef __PIC__
-++LOCALSZ = 1						/* save gp */
-++#endif
-++#if _MIPS_SIM != _ABIO32
-++ARGSZ = 1						/* save a0 */
-++# ifdef __PIC__
-++MASK = 0x10000000
-++# endif
-++#endif
-++FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-++GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-++#if _MIPS_SIM != _ABIO32
-++A0OFF = FRAMESZ - (1 * SZREG)				/* callee-allocated */
-++#else
-++A0OFF = FRAMESZ + (0 * SZREG)				/* caller-allocated */
-++#endif
-++
-++NESTED (__setcontext, FRAMESZ, ra)
-++	.mask	MASK, -(ARGSZ * SZREG)
-++	.fmask	0x00000000, 0
-++
-++#ifdef __PIC__
-++	SETUP_GP
-++#endif
-++
-++	PTR_ADDIU sp, -FRAMESZ
-++
-++#ifdef __PIC__
-++	SETUP_GP64 (GPOFF, __setcontext)
-++	SAVE_GP (GPOFF)
-++#endif
-++
-++#ifdef PROF
-++	.set	noat
-++	move	AT, ra
-++	jal	_mcount
-++	.set	at
-++#endif
-++
-++	/* Check for the magic flag.  */
-++	li	v0, 1
-++	REG_L	v1, (0 * SZREG + MCONTEXT_GREGS)(a0)	/* zero */
-++	bne	v0, v1, 98f
-++
-++	REG_S	a0, A0OFF(sp)
-++
-++/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
-++	li	a3, _NSIG8
-++	move	a2, zero
-++	PTR_ADDU a1, a0, UCONTEXT_SIGMASK
-++	li	a0, SIG_SETMASK
-++
-++	li	v0, SYS_ify (rt_sigprocmask)
-++	syscall
-++	bnez	a3, 99f
-++
-++	REG_L	v0, A0OFF(sp)
-++
-++#ifdef __mips_hard_float
-++# if _MIPS_SIM == _ABI64
-++	l.d	fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
-++
-++# else  /* _MIPS_SIM != _ABI64 */
-++	l.d	fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-++
-++# endif /* _MIPS_SIM != _ABI64 */
-++
-++	lw	v1, MCONTEXT_FPC_CSR(v0)
-++	ctc1	v1, fcr31
-++#endif /* __mips_hard_float */
-++
-++	/* Note the contents of argument registers will be random
-++	   unless makecontext() has been called.  */
-++	REG_L	a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
-++#if _MIPS_SIM != _ABIO32
-++	REG_L	a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
-++#endif
-++
-++	REG_L	s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
-++#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-++	REG_L	gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
-++#endif
-++	REG_L	sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	t9, MCONTEXT_PC(v0)
-++
-++	move	v0, zero
-++	jr	t9
-++
-++98:
-++	/* This is a context obtained from a signal handler.
-++	   Perform a full restore by pushing the context
-++	   passed onto a simulated signal frame on the stack
-++	   and call the signal return syscall as if a signal
-++	   handler exited normally.  */
-++	PTR_ADDIU sp, -((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
-++
-++	/* Only ucontext is referred to from rt_sigreturn,
-++	   copy it.  */
-++	PTR_ADDIU t1, sp, RT_SIGFRAME_UCONTEXT
-++	li	t3, ((UCONTEXT_SIZE + SZREG - 1) / SZREG) - 1
-++0:
-++	REG_L	t2, (a0)
-++	PTR_ADDIU a0, SZREG
-++	REG_S	t2, (t1)
-++	PTR_ADDIU t1, SZREG
-++	.set	noreorder
-++	bgtz	t3, 0b
-++	 addiu	t3, -1
-++	.set	reorder
-++
-++/* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe.  */
-++	li	v0, SYS_ify (rt_sigreturn)
-++	syscall
-++
-++	/* Restore the stack and fall through to the error
-++	   path.  Successful rt_sigreturn never returns to
-++	   its calling place.  */
-++	PTR_ADDIU sp, ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
-++99:
-++#ifdef __PIC__
-++	PTR_LA	t9, JUMPTARGET (__syscall_error)
-++	RESTORE_GP64
-++	PTR_ADDIU sp, FRAMESZ
-++	jr	t9
-++
-++#else  /* ! __PIC__ */
-++
-++	j	JUMPTARGET (__syscall_error)
-++#endif /* ! __PIC__ */
-++PSEUDO_END (__setcontext)
-++
-++weak_alias (__setcontext, setcontext)
-+diff --git a/libc/sysdeps/linux/mips/swapcontext.S b/libc/sysdeps/linux/mips/swapcontext.S
-+new file mode 100644
-+index 0000000..c7ac19b
-+--- /dev/null
-++++ b/libc/sysdeps/linux/mips/swapcontext.S
-+@@ -0,0 +1,211 @@
-++/* Save and set current context.
-++   Copyright (C) 2009 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library.  If not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++#include <sys/asm.h>
-++#include <sys/fpregdef.h>
-++#include <sys/regdef.h>
-++
-++#include "ucontext_i.h"
-++
-++/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
-++
-++	.text
-++LOCALSZ = 0
-++ARGSZ = 0
-++MASK = 0x00000000
-++#ifdef __PIC__
-++LOCALSZ = 1						/* save gp */
-++#endif
-++#if _MIPS_SIM != _ABIO32
-++ARGSZ = 1						/* save a1 */
-++# ifdef __PIC__
-++MASK = 0x10000000
-++# endif
-++#endif
-++FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
-++GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
-++#if _MIPS_SIM != _ABIO32
-++A1OFF = FRAMESZ - (1 * SZREG)				/* callee-allocated */
-++#else
-++A1OFF = FRAMESZ + (1 * SZREG)				/* caller-allocated */
-++#endif
-++
-++NESTED (__swapcontext, FRAMESZ, ra)
-++	.mask	MASK, -(ARGSZ * SZREG)
-++	.fmask	0x00000000, 0
-++
-++#ifdef __PIC__
-++	SETUP_GP
-++
-++	move	a2, sp
-++# define _SP a2
-++
-++# if _MIPS_SIM != _ABIO32
-++	move	a3, gp
-++#  define _GP a3
-++# endif
-++
-++	PTR_ADDIU sp, -FRAMESZ
-++	SETUP_GP64 (GPOFF, __swapcontext)
-++	SAVE_GP (GPOFF)
-++
-++#else  /* ! __PIC__ */
-++# define _SP sp
-++# define _GP gp
-++
-++#endif /* ! __PIC__ */
-++
-++#ifdef PROF
-++	.set	noat
-++	move	AT, ra
-++	jal	_mcount
-++	.set	at
-++#endif
-++
-++	/* Store a magic flag.	*/
-++	li	v1, 1
-++	REG_S	v1, (0 * SZREG + MCONTEXT_GREGS)(a0)	/* zero */
-++
-++	REG_S	s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
-++#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-++	REG_S	_GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
-++#endif
-++	REG_S	_SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
-++	REG_S	ra, MCONTEXT_PC(a0)
-++
-++#ifdef __mips_hard_float
-++# if _MIPS_SIM == _ABI64
-++	s.d	fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
-++
-++# else  /* _MIPS_SIM != _ABI64 */
-++	s.d	fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
-++	s.d	fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
-++
-++# endif /* _MIPS_SIM != _ABI64 */
-++
-++	cfc1	v1, fcr31
-++	sw	v1, MCONTEXT_FPC_CSR(a0)
-++#endif /* __mips_hard_float */
-++
-++	REG_S	a1, A1OFF(sp)
-++
-++/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */
-++	li	a3, _NSIG8
-++	PTR_ADDU a2, a0, UCONTEXT_SIGMASK
-++	PTR_ADDU a1, a1, UCONTEXT_SIGMASK
-++	li	a0, SIG_SETMASK
-++
-++	li	v0, SYS_ify (rt_sigprocmask)
-++	syscall
-++	bnez	a3, 99f
-++
-++	REG_L	v0, A1OFF(sp)
-++
-++#ifdef __mips_hard_float
-++# if _MIPS_SIM == _ABI64
-++	l.d	fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
-++
-++# else  /* _MIPS_SIM != _ABI64 */
-++	l.d	fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
-++	l.d	fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
-++
-++# endif /* _MIPS_SIM != _ABI64 */
-++
-++	lw	v1, MCONTEXT_FPC_CSR(v0)
-++	ctc1	v1, fcr31
-++#endif /* __mips_hard_float */
-++
-++	/* Note the contents of argument registers will be random
-++	   unless makecontext() has been called.  */
-++	REG_L	a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
-++#if _MIPS_SIM != _ABIO32
-++	REG_L	a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
-++#endif
-++
-++	REG_L	s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
-++#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
-++	REG_L	gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
-++#endif
-++	REG_L	sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
-++	REG_L	t9, MCONTEXT_PC(v0)
-++
-++	move	v0, zero
-++	jr	t9
-++
-++99:
-++#ifdef __PIC__
-++	PTR_LA	t9, JUMPTARGET (__syscall_error)
-++	RESTORE_GP64
-++	PTR_ADDIU sp, FRAMESZ
-++	jr	t9
-++
-++#else  /* ! __PIC__ */
-++
-++	j	JUMPTARGET (__syscall_error)
-++#endif /* ! __PIC__ */
-++PSEUDO_END (__swapcontext)
-++
-++weak_alias (__swapcontext, swapcontext)
-+diff --git a/libc/sysdeps/linux/mips/ucontext_i.sym b/libc/sysdeps/linux/mips/ucontext_i.sym
-+new file mode 100644
-+index 0000000..f14b886
-+--- /dev/null
-++++ b/libc/sysdeps/linux/mips/ucontext_i.sym
-+@@ -0,0 +1,52 @@
-++#include <inttypes.h>
-++#include <signal.h>
-++#include <stddef.h>
-++#include <sys/ucontext.h>
-++
-++#include <kernel_rt_sigframe.h>
-++
-++-- Constants used by the rt_sigprocmask call.
-++
-++SIG_BLOCK
-++SIG_SETMASK
-++
-++_NSIG8				(_NSIG / 8)
-++
-++-- Offsets of the fields in the kernel rt_sigframe_t structure.
-++#define rt_sigframe(member)	offsetof (kernel_rt_sigframe_t, member)
-++
-++RT_SIGFRAME_UCONTEXT		rt_sigframe (rs_uc)
-++
-++RT_SIGFRAME_SIZE		sizeof (kernel_rt_sigframe_t)
-++
-++-- Offsets of the fields in the ucontext_t structure.
-++#define ucontext(member)	offsetof (ucontext_t, member)
-++#define stack(member)		ucontext (uc_stack.member)
-++#define mcontext(member)	ucontext (uc_mcontext.member)
-++
-++UCONTEXT_FLAGS			ucontext (uc_flags)
-++UCONTEXT_LINK			ucontext (uc_link)
-++UCONTEXT_STACK			ucontext (uc_stack)
-++UCONTEXT_MCONTEXT		ucontext (uc_mcontext)
-++UCONTEXT_SIGMASK		ucontext (uc_sigmask)
-++
-++STACK_SP			stack (ss_sp)
-++STACK_SIZE			stack (ss_size)
-++STACK_FLAGS			stack (ss_flags)
-++
-++MCONTEXT_GREGS			mcontext (gregs)
-++MCONTEXT_FPREGS			mcontext (fpregs)
-++MCONTEXT_MDHI			mcontext (mdhi)
-++MCONTEXT_HI1			mcontext (hi1)
-++MCONTEXT_HI2			mcontext (hi2)
-++MCONTEXT_HI3			mcontext (hi3)
-++MCONTEXT_MDLO			mcontext (mdlo)
-++MCONTEXT_LO1			mcontext (lo1)
-++MCONTEXT_LO2			mcontext (lo2)
-++MCONTEXT_LO3			mcontext (lo3)
-++MCONTEXT_PC			mcontext (pc)
-++MCONTEXT_FPC_CSR		mcontext (fpc_csr)
-++MCONTEXT_USED_MATH		mcontext (used_math)
-++MCONTEXT_DSP			mcontext (dsp)
-++
-++UCONTEXT_SIZE			sizeof (ucontext_t)
-+diff --git a/libc/sysdeps/linux/x86_64/Makefile.arch b/libc/sysdeps/linux/x86_64/Makefile.arch
-+index 7491d92..93b8259 100644
-+--- a/libc/sysdeps/linux/x86_64/Makefile.arch
-++++ b/libc/sysdeps/linux/x86_64/Makefile.arch
-+@@ -20,3 +20,8 @@ ifeq ($(UCLIBC_HAS_TLS),y)
-+ SSRC += sched_getcpu.S
-+ endif
-+ endif
-++
-++ifeq ($(UCLIBC_HAS_CONTEXT_FUNCS),y)
-++CSRC += makecontext.c
-++SSRC += setcontext.S getcontext.S swapcontext.S __start_context.S
-++endif
-+diff --git a/libc/sysdeps/linux/x86_64/__start_context.S b/libc/sysdeps/linux/x86_64/__start_context.S
-+new file mode 100644
-+index 0000000..9f2ee23
-+--- /dev/null
-++++ b/libc/sysdeps/linux/x86_64/__start_context.S
-+@@ -0,0 +1,49 @@
-++/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++/* This is the helper code which gets called if a function which is
-++   registered with 'makecontext' returns.  In this case we have to
-++   install the context listed in the uc_link element of the context
-++   'makecontext' manipulated at the time of the 'makecontext' call.
-++   If the pointer is NULL the process must terminate.  */
-++
-++
-++ENTRY(__start_context)
-++	/* This removes the parameters passed to the function given to
-++	   'makecontext' from the stack.  RBX contains the address
-++	   on the stack pointer for the next context.  */
-++	movq	%rbx, %rsp
-++
-++	popq	%rdi			/* This is the next context.  */
-++	cfi_adjust_cfa_offset(-8)
-++	testq	%rdi, %rdi
-++	je	2f			/* If it is zero exit.  */
-++
-++	call	JUMPTARGET(__setcontext)
-++	/* If this returns (which can happen if the syscall fails) we'll
-++	   exit the program with the return error value (-1).  */
-++	movq	%rax,%rdi
-++
-++2:
-++	call	HIDDEN_JUMPTARGET(exit)
-++	/* The 'exit' call should never return.  In case it does cause
-++	   the process to terminate.  */
-++	hlt
-++END(__start_context)
-+diff --git a/libc/sysdeps/linux/x86_64/getcontext.S b/libc/sysdeps/linux/x86_64/getcontext.S
-+new file mode 100644
-+index 0000000..dcebc4f
-+--- /dev/null
-++++ b/libc/sysdeps/linux/x86_64/getcontext.S
-+@@ -0,0 +1,88 @@
-++/* Save current context.
-++   Copyright (C) 2002-2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++/*  int __getcontext (ucontext_t *ucp)
-++
-++  Saves the machine context in UCP such that when it is activated,
-++  it appears as if __getcontext() returned again.
-++
-++  This implementation is intended to be used for *synchronous* context
-++  switches only.  Therefore, it does not have to save anything
-++  other than the PRESERVED state.  */
-++
-++
-++ENTRY(__getcontext)
-++	/* Save the preserved registers, the registers used for passing
-++	   args, and the return address.  */
-++	movq	%rbx, oRBX(%rdi)
-++	movq	%rbp, oRBP(%rdi)
-++	movq	%r12, oR12(%rdi)
-++	movq	%r13, oR13(%rdi)
-++	movq	%r14, oR14(%rdi)
-++	movq	%r15, oR15(%rdi)
-++
-++	movq	%rdi, oRDI(%rdi)
-++	movq	%rsi, oRSI(%rdi)
-++	movq	%rdx, oRDX(%rdi)
-++	movq	%rcx, oRCX(%rdi)
-++	movq	%r8, oR8(%rdi)
-++	movq	%r9, oR9(%rdi)
-++
-++	movq	(%rsp), %rcx
-++	movq	%rcx, oRIP(%rdi)
-++	leaq	8(%rsp), %rcx		/* Exclude the return address.  */
-++	movq	%rcx, oRSP(%rdi)
-++
-++	/* We have separate floating-point register content memory on the
-++	   stack.  We use the __fpregs_mem block in the context.  Set the
-++	   links up correctly.  */
-++
-++	leaq	oFPREGSMEM(%rdi), %rcx
-++	movq	%rcx, oFPREGS(%rdi)
-++	/* Save the floating-point environment.  */
-++	fnstenv	(%rcx)
-++	fldenv	(%rcx)
-++	stmxcsr oMXCSR(%rdi)
-++
-++	/* Save the current signal mask with
-++	   rt_sigprocmask (SIG_BLOCK, NULL, set,_NSIG/8).  */
-++	leaq	oSIGMASK(%rdi), %rdx
-++	xorl	%esi,%esi
-++#if SIG_BLOCK == 0
-++	xorl	%edi, %edi
-++#else
-++	movl	$SIG_BLOCK, %edi
-++#endif
-++	movl	$_NSIG8,%r10d
-++	movl	$__NR_rt_sigprocmask, %eax
-++	syscall
-++	cmpq	$-4095, %rax		/* Check %rax for error.  */
-++	jae	SYSCALL_ERROR_LABEL	/* Jump to error handler if error.  */
-++
-++	/* All done, return 0 for success.  */
-++	xorl	%eax, %eax
-++L(pseudo_end):
-++	ret
-++PSEUDO_END(__getcontext)
-++
-++weak_alias (__getcontext, getcontext)
-+diff --git a/libc/sysdeps/linux/x86_64/makecontext.c b/libc/sysdeps/linux/x86_64/makecontext.c
-+new file mode 100644
-+index 0000000..5473031
-+--- /dev/null
-++++ b/libc/sysdeps/linux/x86_64/makecontext.c
-+@@ -0,0 +1,121 @@
-++/* Create new context.
-++   Copyright (C) 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++#include <stdarg.h>
-++#include <stdint.h>
-++#include <ucontext.h>
-++
-++#include "ucontext_i.h"
-++
-++/* This implementation can handle any ARGC value but only
-++   normal integer parameters.
-++   makecontext sets up a stack and the registers for the
-++   user context. The stack looks like this:
-++               +-----------------------+
-++               | next context          |
-++               +-----------------------+
-++               | parameter 7-n         |
-++	       +-----------------------+
-++	       | trampoline address    |
-++    %rsp ->    +-----------------------+
-++
-++   The registers are set up like this:
-++     %rdi,%rsi,%rdx,%rcx,%r8,%r9: parameter 1 to 6
-++     %rbx   : address of next context
-++     %rsp   : stack pointer.
-++*/
-++
-++/* XXX: This implementation currently only handles integer arguments.
-++   To handle long int and pointer arguments the va_arg arguments needs
-++   to be changed to long and also the stdlib/tst-setcontext.c file needs
-++   to be changed to pass long arguments to makecontext.  */
-++
-++
-++void
-++__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
-++{
-++  extern void __start_context (void);
-++  greg_t *sp;
-++  unsigned int idx_uc_link;
-++  va_list ap;
-++  int i;
-++
-++  /* Generate room on stack for parameter if needed and uc_link.  */
-++  sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp
-++		   + ucp->uc_stack.ss_size);
-++  sp -= (argc > 6 ? argc - 6 : 0) + 1;
-++  /* Align stack and make space for trampoline address.  */
-++  sp = (greg_t *) ((((uintptr_t) sp) & -16L) - 8);
-++
-++  idx_uc_link = (argc > 6 ? argc - 6 : 0) + 1;
-++
-++  /* Setup context ucp.  */
-++  /* Address to jump to.  */
-++  ucp->uc_mcontext.gregs[REG_RIP] = (uintptr_t) func;
-++  /* Setup rbx.*/
-++  ucp->uc_mcontext.gregs[REG_RBX] = (uintptr_t) &sp[idx_uc_link];
-++  ucp->uc_mcontext.gregs[REG_RSP] = (uintptr_t) sp;
-++
-++  /* Setup stack.  */
-++  sp[0] = (uintptr_t) &__start_context;
-++  sp[idx_uc_link] = (uintptr_t) ucp->uc_link;
-++
-++  va_start (ap, argc);
-++  /* Handle arguments.
-++
-++     The standard says the parameters must all be int values.  This is
-++     an historic accident and would be done differently today.  For
-++     x86-64 all integer values are passed as 64-bit values and
-++     therefore extending the API to copy 64-bit values instead of
-++     32-bit ints makes sense.  It does not break existing
-++     functionality and it does not violate the standard which says
-++     that passing non-int values means undefined behavior.  */
-++  for (i = 0; i < argc; ++i)
-++    switch (i)
-++      {
-++      case 0:
-++	ucp->uc_mcontext.gregs[REG_RDI] = va_arg (ap, greg_t);
-++	break;
-++      case 1:
-++	ucp->uc_mcontext.gregs[REG_RSI] = va_arg (ap, greg_t);
-++	break;
-++      case 2:
-++	ucp->uc_mcontext.gregs[REG_RDX] = va_arg (ap, greg_t);
-++	break;
-++      case 3:
-++	ucp->uc_mcontext.gregs[REG_RCX] = va_arg (ap, greg_t);
-++	break;
-++      case 4:
-++	ucp->uc_mcontext.gregs[REG_R8] = va_arg (ap, greg_t);
-++	break;
-++      case 5:
-++	ucp->uc_mcontext.gregs[REG_R9] = va_arg (ap, greg_t);
-++	break;
-++      default:
-++	/* Put value on stack.  */
-++	sp[i - 5] = va_arg (ap, greg_t);
-++	break;
-++      }
-++  va_end (ap);
-++
-++}
-++
-++
-++weak_alias (__makecontext, makecontext)
-+diff --git a/libc/sysdeps/linux/x86_64/setcontext.S b/libc/sysdeps/linux/x86_64/setcontext.S
-+new file mode 100644
-+index 0000000..561ab9f
-+--- /dev/null
-++++ b/libc/sysdeps/linux/x86_64/setcontext.S
-+@@ -0,0 +1,103 @@
-++/* Install given context.
-++   Copyright (C) 2002-2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++
-++/*  int __setcontext (const ucontext_t *ucp)
-++
-++  Restores the machine context in UCP and thereby resumes execution
-++  in that context.
-++
-++  This implementation is intended to be used for *synchronous* context
-++  switches only.  Therefore, it does not have to restore anything
-++  other than the PRESERVED state.  */
-++
-++ENTRY(__setcontext)
-++	/* Save argument since syscall will destroy it.  */
-++	pushq	%rdi
-++	cfi_adjust_cfa_offset(8)
-++
-++	/* Set the signal mask with
-++	   rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8).  */
-++	leaq	oSIGMASK(%rdi), %rsi
-++	xorl	%edx, %edx
-++	movl	$SIG_SETMASK, %edi
-++	movl	$_NSIG8,%r10d
-++	movl	$__NR_rt_sigprocmask, %eax
-++	syscall
-++	popq	%rdi			/* Reload %rdi, adjust stack.  */
-++	cfi_adjust_cfa_offset(-8)
-++	cmpq	$-4095, %rax		/* Check %rax for error.  */
-++	jae	SYSCALL_ERROR_LABEL	/* Jump to error handler if error.  */
-++
-++	/* Restore the floating-point context.  Not the registers, only the
-++	   rest.  */
-++	movq	oFPREGS(%rdi), %rcx
-++	fldenv	(%rcx)
-++	ldmxcsr oMXCSR(%rdi)
-++
-++
-++	/* Load the new stack pointer, the preserved registers and
-++	   registers used for passing args.  */
-++	cfi_def_cfa(%rdi, 0)
-++	cfi_offset(%rbx,oRBX)
-++	cfi_offset(%rbp,oRBP)
-++	cfi_offset(%r12,oR12)
-++	cfi_offset(%r13,oR13)
-++	cfi_offset(%r14,oR14)
-++	cfi_offset(%r15,oR15)
-++	cfi_offset(%rsp,oRSP)
-++	cfi_offset(%rip,oRIP)
-++
-++	movq	oRSP(%rdi), %rsp
-++	movq	oRBX(%rdi), %rbx
-++	movq	oRBP(%rdi), %rbp
-++	movq	oR12(%rdi), %r12
-++	movq	oR13(%rdi), %r13
-++	movq	oR14(%rdi), %r14
-++	movq	oR15(%rdi), %r15
-++
-++	/* The following ret should return to the address set with
-++	getcontext.  Therefore push the address on the stack.  */
-++	movq	oRIP(%rdi), %rcx
-++	pushq	%rcx
-++
-++	movq	oRSI(%rdi), %rsi
-++	movq	oRDX(%rdi), %rdx
-++	movq	oRCX(%rdi), %rcx
-++	movq	oR8(%rdi), %r8
-++	movq	oR9(%rdi), %r9
-++
-++	/* Setup finally  %rdi.  */
-++	movq	oRDI(%rdi), %rdi
-++
-++	/* End FDE here, we fall into another context.  */
-++	cfi_endproc
-++	cfi_startproc
-++
-++	/* Clear rax to indicate success.  */
-++	xorl	%eax, %eax
-++L(pseudo_end):
-++	ret
-++PSEUDO_END(__setcontext)
-++
-++weak_alias (__setcontext, setcontext)
-+diff --git a/libc/sysdeps/linux/x86_64/swapcontext.S b/libc/sysdeps/linux/x86_64/swapcontext.S
-+new file mode 100644
-+index 0000000..6d2ebb8
-+--- /dev/null
-++++ b/libc/sysdeps/linux/x86_64/swapcontext.S
-+@@ -0,0 +1,121 @@
-++/* Save current context and install the given one.
-++   Copyright (C) 2002-2012 Free Software Foundation, Inc.
-++   This file is part of the GNU C Library.
-++   Contributed by Andreas Jaeger <aj@suse.de>, 2002.
-++
-++   The GNU C Library is free software; you can redistribute it and/or
-++   modify it under the terms of the GNU Lesser General Public
-++   License as published by the Free Software Foundation; either
-++   version 2.1 of the License, or (at your option) any later version.
-++
-++   The GNU C Library 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
-++   Lesser General Public License for more details.
-++
-++   You should have received a copy of the GNU Lesser General Public
-++   License along with the GNU C Library; if not, see
-++   <http://www.gnu.org/licenses/>.  */
-++
-++#include <sysdep.h>
-++
-++#include "ucontext_i.h"
-++
-++
-++/* int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp);
-++
-++  Saves the machine context in oucp such that when it is activated,
-++  it appears as if __swapcontextt() returned again, restores the
-++  machine context in ucp and thereby resumes execution in that
-++  context.
-++
-++  This implementation is intended to be used for *synchronous* context
-++  switches only.  Therefore, it does not have to save anything
-++  other than the PRESERVED state.  */
-++
-++ENTRY(__swapcontext)
-++	/* Save the preserved registers, the registers used for passing args,
-++	   and the return address.  */
-++	movq	%rbx, oRBX(%rdi)
-++	movq	%rbp, oRBP(%rdi)
-++	movq	%r12, oR12(%rdi)
-++	movq	%r13, oR13(%rdi)
-++	movq	%r14, oR14(%rdi)
-++	movq	%r15, oR15(%rdi)
-++
-++	movq	%rdi, oRDI(%rdi)
-++	movq	%rsi, oRSI(%rdi)
-++	movq	%rdx, oRDX(%rdi)
-++	movq	%rcx, oRCX(%rdi)
-++	movq	%r8, oR8(%rdi)
-++	movq	%r9, oR9(%rdi)
-++
-++	movq	(%rsp), %rcx
-++	movq	%rcx, oRIP(%rdi)
-++	leaq	8(%rsp), %rcx		/* Exclude the return address.  */
-++	movq	%rcx, oRSP(%rdi)
-++
-++	/* We have separate floating-point register content memory on the
-++	   stack.  We use the __fpregs_mem block in the context.  Set the
-++	   links up correctly.  */
-++	leaq	oFPREGSMEM(%rdi), %rcx
-++	movq	%rcx, oFPREGS(%rdi)
-++	/* Save the floating-point environment.  */
-++	fnstenv	(%rcx)
-++	stmxcsr oMXCSR(%rdi)
-++
-++
-++	/* The syscall destroys some registers, save them.  */
-++	movq	%rsi, %r12
-++
-++	/* Save the current signal mask and install the new one with
-++	   rt_sigprocmask (SIG_BLOCK, newset, oldset,_NSIG/8).  */
-++	leaq	oSIGMASK(%rdi), %rdx
-++	leaq	oSIGMASK(%rsi), %rsi
-++	movl	$SIG_SETMASK, %edi
-++	movl	$_NSIG8,%r10d
-++	movl	$__NR_rt_sigprocmask, %eax
-++	syscall
-++	cmpq	$-4095, %rax		/* Check %rax for error.  */
-++	jae	SYSCALL_ERROR_LABEL	/* Jump to error handler if error.  */
-++
-++	/* Restore destroyed registers.  */
-++	movq	%r12, %rsi
-++
-++	/* Restore the floating-point context.  Not the registers, only the
-++	   rest.  */
-++	movq	oFPREGS(%rsi), %rcx
-++	fldenv	(%rcx)
-++	ldmxcsr oMXCSR(%rsi)
-++
-++	/* Load the new stack pointer and the preserved registers.  */
-++	movq	oRSP(%rsi), %rsp
-++	movq	oRBX(%rsi), %rbx
-++	movq	oRBP(%rsi), %rbp
-++	movq	oR12(%rsi), %r12
-++	movq	oR13(%rsi), %r13
-++	movq	oR14(%rsi), %r14
-++	movq	oR15(%rsi), %r15
-++
-++	/* The following ret should return to the address set with
-++	getcontext.  Therefore push the address on the stack.  */
-++	movq	oRIP(%rsi), %rcx
-++	pushq	%rcx
-++
-++	/* Setup registers used for passing args.  */
-++	movq	oRDI(%rsi), %rdi
-++	movq	oRDX(%rsi), %rdx
-++	movq	oRCX(%rsi), %rcx
-++	movq	oR8(%rsi), %r8
-++	movq	oR9(%rsi), %r9
-++
-++	/* Setup finally  %rsi.  */
-++	movq	oRSI(%rsi), %rsi
-++
-++	/* Clear rax to indicate success.  */
-++	xorl	%eax, %eax
-++L(pseudo_end):
-++	ret
-++PSEUDO_END(__swapcontext)
-++
-++weak_alias (__swapcontext, swapcontext)
-+diff --git a/libc/sysdeps/linux/x86_64/ucontext_i.sym b/libc/sysdeps/linux/x86_64/ucontext_i.sym
-+new file mode 100644
-+index 0000000..af3e0e5
-+--- /dev/null
-++++ b/libc/sysdeps/linux/x86_64/ucontext_i.sym
-+@@ -0,0 +1,37 @@
-++#include <stddef.h>
-++#include <signal.h>
-++#include <sys/ucontext.h>
-++
-++--
-++
-++SIG_BLOCK
-++SIG_SETMASK
-++
-++_NSIG8		(_NSIG / 8)
-++
-++#define ucontext(member)	offsetof (ucontext_t, member)
-++#define mcontext(member)	ucontext (uc_mcontext.member)
-++#define mreg(reg)		mcontext (gregs[REG_##reg])
-++
-++oRBP		mreg (RBP)
-++oRSP		mreg (RSP)
-++oRBX		mreg (RBX)
-++oR8		mreg (R8)
-++oR9		mreg (R9)
-++oR10		mreg (R10)
-++oR11		mreg (R11)
-++oR12		mreg (R12)
-++oR13		mreg (R13)
-++oR14		mreg (R14)
-++oR15		mreg (R15)
-++oRDI		mreg (RDI)
-++oRSI		mreg (RSI)
-++oRDX		mreg (RDX)
-++oRAX		mreg (RAX)
-++oRCX		mreg (RCX)
-++oRIP		mreg (RIP)
-++oEFL		mreg (EFL)
-++oFPREGS		mcontext (fpregs)
-++oSIGMASK	ucontext (uc_sigmask)
-++oFPREGSMEM	ucontext (__fpregs_mem)
-++oMXCSR		ucontext (__fpregs_mem.mxcsr)
-+diff --git a/libpthread/nptl/sysdeps/Makefile.commonarch b/libpthread/nptl/sysdeps/Makefile.commonarch
-+index 0c19216..8f5d61d 100644
-+--- a/libpthread/nptl/sysdeps/Makefile.commonarch
-++++ b/libpthread/nptl/sysdeps/Makefile.commonarch
-+@@ -47,9 +47,8 @@ $(libpthread_arch_OUT)/gen_tcb-offsets.c: $(libpthread_arch_DIR)/tcb-offsets.sym
-+ $(libpthread_arch_OUT)/gen_tcb-offsets.s: $(libpthread_arch_OUT)/gen_tcb-offsets.c | headers
-+ 	$(compile.c)
-+ libpthread-generated-y += $(libpthread_arch_OUT)/gen_tcb-offsets.s
-+-PTHREAD_TCB_OFFSET_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
-+ $(libpthread_arch_OUT)/tcb-offsets.h: $(libpthread_arch_OUT)/gen_tcb-offsets.s
-+-	$(do_sed) $(PTHREAD_TCB_OFFSET_MANGLE) $< > $@
-++	$(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
-+ 	@if test ! -s $@ ; then rm -f $@ ; false ; fi
-+ 
-+ pregen-headers-$(UCLIBC_HAS_THREADS_NATIVE) += $(libpthread_arch_OUT)/tcb-offsets.h
-+diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
-+index 477fb1a..3372214 100644
-+--- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
-++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
-+@@ -177,8 +177,6 @@ CFLAGS-gen_pthread-pi-defines.c = -S
-+ CFLAGS-gen_structsem.c = -S
-+ CFLAGS-gen_unwindbuf.c = -S
-+ 
-+-PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
-+-
-+ PTHREAD_LINUX_SYM   := $(notdir $(wildcard $(libpthread_linux_DIR)/*.sym))
-+ PTHREAD_LINUX_SYM_C := $(addprefix $(libpthread_linux_OUT)/gen_,$(PTHREAD_LINUX_SYM:.sym=.c))
-+ PTHREAD_LINUX_SYM_S := $(PTHREAD_LINUX_SYM_C:.c=.s)
-+-- 
-+2.2.0.rc0.207.ga3a616c
-+
 diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk
-index 3180885..5fb4e56 100644
+index db741d5..efed7f7 100644
 --- a/package/uclibc/uclibc.mk
 +++ b/package/uclibc/uclibc.mk
-@@ -409,6 +409,8 @@ define UCLIBC_KCONFIG_FIXUP_CMDS
+@@ -358,6 +358,8 @@ define UCLIBC_KCONFIG_FIXUP_CMDS
  	$(call KCONFIG_SET_OPT,RUNTIME_PREFIX,"/",$(@D)/.config)
  	$(call KCONFIG_SET_OPT,DEVEL_PREFIX,"/usr",$(@D)/.config)
  	$(call KCONFIG_SET_OPT,SHARED_LIB_LOADER_PREFIX,"/lib",$(@D)/.config)
 +	$(call KCONFIG_ENABLE_OPT,UCLIBC_SUSV3_LEGACY,$(@D)/.config)
 +	$(call KCONFIG_ENABLE_OPT,UCLIBC_HAS_CONTEXT_FUNCS,$(@D)/.config)
  	$(UCLIBC_MMU_CONFIG)
- 	$(UCLIBC_ARM_ABI_CONFIG)
- 	$(UCLIBC_ARM_BX_CONFIG)
+ 	$(UCLIBC_ARC_TYPE_CONFIG)
+ 	$(UCLIBC_ARC_PAGE_SIZE_CONFIG)
 -- 
-2.4.3.573.g4eafbef
+2.8.0.rc3.226.g39d4020
 
diff --git a/Build.Info/0007-dlopen-use-libname-cache-before-_dl_open-ing-files.patch b/Build.Info/0007-dlopen-use-libname-cache-before-_dl_open-ing-files.patch
new file mode 100644
index 0000000..eb9d8fb
--- /dev/null
+++ b/Build.Info/0007-dlopen-use-libname-cache-before-_dl_open-ing-files.patch
@@ -0,0 +1,48 @@
+From 9ba069f8859789c85b96aaa17876534b0f3b3058 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 16:20:02 -0700
+Subject: [PATCH 07/17] dlopen: use libname cache before _dl_open-ing files
+
+---
+ .../uclibc-0071-dlopen-use-libname-cache.patch     | 29 ++++++++++++++++++++++
+ 1 file changed, 29 insertions(+)
+ create mode 100644 package/uclibc/uclibc-0071-dlopen-use-libname-cache.patch
+
+diff --git a/package/uclibc/uclibc-0071-dlopen-use-libname-cache.patch b/package/uclibc/uclibc-0071-dlopen-use-libname-cache.patch
+new file mode 100644
+index 0000000..5d295cf
+--- /dev/null
++++ b/package/uclibc/uclibc-0071-dlopen-use-libname-cache.patch
+@@ -0,0 +1,29 @@
++commit d0b1894a40fff961c44a2e44840882e5e9048abf
++Author: Stephen McGruer <smcgruer@google.com>
++Date:   Thu Oct 29 17:50:44 2015 -0400
++
++    [PATCH] dlopen: use libname cache before _dl_open-ing files
++
++diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
++index 5631905..282a645 100644
++--- a/ldso/ldso/dl-elf.c
+++++ b/ldso/ldso/dl-elf.c
++@@ -465,6 +465,18 @@ struct elf_resolve *_dl_load_elf_shared_library(unsigned rflags,
++	DL_LOADADDR_TYPE lib_loadaddr;
++	DL_INIT_LOADADDR_EXTRA_DECLS
++ 
+++	/* We can easily pre-check for already loaded absolute-path libraries. */
+++	/* TODO(smcgruer): Determine if we can handle non-absolute paths. */
+++	if (_dl_strlen(libname) && libname[0] == '/') {
+++		for (tpnt = _dl_loaded_modules; tpnt; tpnt = tpnt->next) {
+++			if (_dl_strcmp(tpnt->libname, libname) == 0) {
+++				/* Already loaded */
+++				tpnt->usage_count++;
+++				return tpnt;
+++			}
+++		}
+++	}
+++
++	libaddr = 0;
++	infile = _dl_open(libname, O_RDONLY, 0);
++	if (infile < 0) {
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0007-dlopen-use-libname-cache.patch b/Build.Info/0007-dlopen-use-libname-cache.patch
deleted file mode 100644
index 7dcb1a0..0000000
--- a/Build.Info/0007-dlopen-use-libname-cache.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 4b8557ec7a4207a46bcac062c857066e1909ce33 Mon Sep 17 00:00:00 2001
-From: Stephen McGruer <smcgruer@google.com>
-Date: Thu, 29 Oct 2015 18:04:30 -0400
-Subject: [PATCH] dlopen: use libname cache before _dl_open-ing files
-
----
- .../uclibc-0071-dlopen-use-libname-cache.patch     | 29 ++++++++++++++++++++++
- 1 file changed, 29 insertions(+)
- create mode 100644 package/uclibc/0.9.33.2/uclibc-0071-dlopen-use-libname-cache.patch
-
-diff --git a/package/uclibc/0.9.33.2/uclibc-0071-dlopen-use-libname-cache.patch b/package/uclibc/0.9.33.2/uclibc-0071-dlopen-use-libname-cache.patch
-new file mode 100644
-index 0000000..5d295cf
---- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0071-dlopen-use-libname-cache.patch
-@@ -0,0 +1,29 @@
-+commit d0b1894a40fff961c44a2e44840882e5e9048abf
-+Author: Stephen McGruer <smcgruer@google.com>
-+Date:   Thu Oct 29 17:50:44 2015 -0400
-+
-+    [PATCH] dlopen: use libname cache before _dl_open-ing files
-+
-+diff --git a/ldso/ldso/dl-elf.c b/ldso/ldso/dl-elf.c
-+index 5631905..282a645 100644
-+--- a/ldso/ldso/dl-elf.c
-++++ b/ldso/ldso/dl-elf.c
-+@@ -465,6 +465,18 @@ struct elf_resolve *_dl_load_elf_shared_library(unsigned rflags,
-+	DL_LOADADDR_TYPE lib_loadaddr;
-+	DL_INIT_LOADADDR_EXTRA_DECLS
-+ 
-++	/* We can easily pre-check for already loaded absolute-path libraries. */
-++	/* TODO(smcgruer): Determine if we can handle non-absolute paths. */
-++	if (_dl_strlen(libname) && libname[0] == '/') {
-++		for (tpnt = _dl_loaded_modules; tpnt; tpnt = tpnt->next) {
-++			if (_dl_strcmp(tpnt->libname, libname) == 0) {
-++				/* Already loaded */
-++				tpnt->usage_count++;
-++				return tpnt;
-++			}
-++		}
-++	}
-++
-+	libaddr = 0;
-+	infile = _dl_open(libname, O_RDONLY, 0);
-+	if (infile < 0) {
--- 
-2.6.0.rc2.230.g3dd15c0
-
diff --git a/Build.Info/0008-Add-patch-Implement-sysconf-_SC_PHYS_PAGES-with-sysi.patch b/Build.Info/0008-Add-patch-Implement-sysconf-_SC_PHYS_PAGES-with-sysi.patch
new file mode 100644
index 0000000..52a9308
--- /dev/null
+++ b/Build.Info/0008-Add-patch-Implement-sysconf-_SC_PHYS_PAGES-with-sysi.patch
@@ -0,0 +1,57 @@
+From 0f3fb0f1b8360ceefaf4d6b207fa700a7a3f99f8 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 16:29:43 -0700
+Subject: [PATCH 08/17] Add patch: Implement sysconf _SC_PHYS_PAGES with
+ sysinfo
+
+---
+ .../uclibc/uclibc-0072-sysconf-sc-phys-page.patch  | 37 ++++++++++++++++++++++
+ 1 file changed, 37 insertions(+)
+ create mode 100644 package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch
+
+diff --git a/package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch b/package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch
+new file mode 100644
+index 0000000..426c057
+--- /dev/null
++++ b/package/uclibc/uclibc-0072-sysconf-sc-phys-page.patch
+@@ -0,0 +1,37 @@
++commit 0a92bc274cf482bab5596c86e0c7e5c466a8f850
++Author: Jean-Francois Thibert <jfthibert@google.com>
++Date:   Thu Nov 5 14:37:45 2015 -0500
++
++    Implement sysconf _SC_PHYS_PAGES with sysinfo
++
++diff --git a/libc/unistd/sysconf.c b/libc/unistd/sysconf.c
++index 503b395..06074c3 100644
++--- a/libc/unistd/sysconf.c
+++++ b/libc/unistd/sysconf.c
++@@ -112,6 +112,14 @@ static int nprocessors_conf(void)
++ 	return ret != 0 ? ret : 1;
++ }
++ 
+++static int get_phys_pages(void)
+++{
+++	struct sysinfo si;
+++	if (sysinfo(&si) == 0) {
+++		return si.totalram / getpagesize() * si.mem_unit;
+++	}
+++	return -1;
+++}
++ 
++ #ifndef __UCLIBC_CLK_TCK_CONST
++ #error __UCLIBC_CLK_TCK_CONST not defined!
++@@ -747,11 +755,7 @@ long int sysconf(int name)
++       RETURN_FUNCTION(nprocessors_onln());
++ 
++     case _SC_PHYS_PAGES:
++-#if 0
++       RETURN_FUNCTION(get_phys_pages());
++-#else
++-      RETURN_NEG_1;
++-#endif
++ 
++     case _SC_AVPHYS_PAGES:
++ #if 0
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0008-sysconf_SC_PHYS_PAGES.patch b/Build.Info/0008-sysconf_SC_PHYS_PAGES.patch
deleted file mode 100644
index 51d24c9..0000000
--- a/Build.Info/0008-sysconf_SC_PHYS_PAGES.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From ed9ef51dc1ea7ad7147cd67be92e4ae6e07055ec Mon Sep 17 00:00:00 2001
-From: Jean-Francois Thibert <jfthibert@google.com>
-Date: Thu, 5 Nov 2015 15:11:32 -0500
-Subject: [PATCH] Add patch: Implement sysconf _SC_PHYS_PAGES with sysinfo
-
-
-diff --git a/package/uclibc/0.9.33.2/uclibc-0072-sysconf-sc-phys-page.patch b/package/uclibc/0.9.33.2/uclibc-0072-sysconf-sc-phys-page.patch
-new file mode 100644
-index 0000000..426c057
---- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0072-sysconf-sc-phys-page.patch
-@@ -0,0 +1,37 @@
-+commit 0a92bc274cf482bab5596c86e0c7e5c466a8f850
-+Author: Jean-Francois Thibert <jfthibert@google.com>
-+Date:   Thu Nov 5 14:37:45 2015 -0500
-+
-+    Implement sysconf _SC_PHYS_PAGES with sysinfo
-+
-+diff --git a/libc/unistd/sysconf.c b/libc/unistd/sysconf.c
-+index 503b395..06074c3 100644
-+--- a/libc/unistd/sysconf.c
-++++ b/libc/unistd/sysconf.c
-+@@ -112,6 +112,14 @@ static int nprocessors_conf(void)
-+ 	return ret != 0 ? ret : 1;
-+ }
-+ 
-++static int get_phys_pages(void)
-++{
-++	struct sysinfo si;
-++	if (sysinfo(&si) == 0) {
-++		return si.totalram / getpagesize() * si.mem_unit;
-++	}
-++	return -1;
-++}
-+ 
-+ #ifndef __UCLIBC_CLK_TCK_CONST
-+ #error __UCLIBC_CLK_TCK_CONST not defined!
-+@@ -747,11 +755,7 @@ long int sysconf(int name)
-+       RETURN_FUNCTION(nprocessors_onln());
-+ 
-+     case _SC_PHYS_PAGES:
-+-#if 0
-+       RETURN_FUNCTION(get_phys_pages());
-+-#else
-+-      RETURN_NEG_1;
-+-#endif
-+ 
-+     case _SC_AVPHYS_PAGES:
-+ #if 0
diff --git a/Build.Info/0009-Build-gold-on-mips.patch b/Build.Info/0009-Build-gold-on-mips.patch
new file mode 100644
index 0000000..f858246
--- /dev/null
+++ b/Build.Info/0009-Build-gold-on-mips.patch
@@ -0,0 +1,49 @@
+From 235e06dbc6073964298d556eb827e8087b07d7fe Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 16:39:17 -0700
+Subject: [PATCH 09/17] Build gold on mips
+
+---
+ package/binutils/2.25.1/700-enable-gold-on-mips.patch | 11 +++++++++++
+ package/binutils/2.25.1/701-ignore-ld-assert.patch    | 11 +++++++++++
+ 2 files changed, 22 insertions(+)
+ create mode 100644 package/binutils/2.25.1/700-enable-gold-on-mips.patch
+ create mode 100644 package/binutils/2.25.1/701-ignore-ld-assert.patch
+
+diff --git a/package/binutils/2.25.1/700-enable-gold-on-mips.patch b/package/binutils/2.25.1/700-enable-gold-on-mips.patch
+new file mode 100644
+index 0000000..85edcfd
+--- /dev/null
++++ b/package/binutils/2.25.1/700-enable-gold-on-mips.patch
+@@ -0,0 +1,11 @@
++--- a/configure
+++++ b/configure
++@@ -2972,7 +2972,7 @@ case "${ENABLE_GOLD}" in
++       # Check for target supported by gold.
++       case "${target}" in
++         i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
++-        | aarch64*-*-* | tilegx*-*-*)
+++        | aarch64*-*-* | tilegx*-*-* | mips*-*-*)
++ 	  configdirs="$configdirs gold"
++ 	  if test x${ENABLE_GOLD} = xdefault; then
++ 	  default_ld=gold
+diff --git a/package/binutils/2.25.1/701-ignore-ld-assert.patch b/package/binutils/2.25.1/701-ignore-ld-assert.patch
+new file mode 100644
+index 0000000..e85f877
+--- /dev/null
++++ b/package/binutils/2.25.1/701-ignore-ld-assert.patch
+@@ -0,0 +1,11 @@
++--- a/ld/ldmain.c      2015-11-11 16:48:13.241128312 -0500
+++++ b/ld/ldmain.c      2015-11-11 16:41:43.982724231 -0500
++@@ -216,7 +216,8 @@
++   /* We want to notice and fail on those nasty BFD assertions which are
++      likely to signal incorrect output being generated but otherwise may
++      leave no trace.  */
++-  default_bfd_assert_handler = bfd_set_assert_handler (ld_bfd_assert_handler);
+++  /* TODO(jfthibert) Re-enable assert failures once openssl issues are resolved */
+++  /*default_bfd_assert_handler = bfd_set_assert_handler (ld_bfd_assert_handler);*/
++ 
++   xatexit (ld_cleanup);
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0009-binutils-2.25.1-with-gold.patch b/Build.Info/0009-binutils-2.25.1-with-gold.patch
deleted file mode 100644
index f78fb20..0000000
--- a/Build.Info/0009-binutils-2.25.1-with-gold.patch
+++ /dev/null
@@ -1,483 +0,0 @@
-From ddc5cf60a8a32912fc166c806a316cf379a67bef Mon Sep 17 00:00:00 2001
-From: Jean-Francois Thibert <jfthibert@google.com>
-Date: Tue, 10 Nov 2015 15:48:08 -0500
-Subject: [PATCH] Add binutils 2.25.1 and build gold on mips
-
-
-diff --git a/package/binutils/2.25.1/120-sh-conf.patch b/package/binutils/2.25.1/120-sh-conf.patch
-new file mode 100644
-index 0000000..ea3d1b6
---- /dev/null
-+++ b/package/binutils/2.25.1/120-sh-conf.patch
-@@ -0,0 +1,29 @@
-+r10231 | lethal | 2005-05-02 09:58:00 -0400 (Mon, 02 May 2005) | 13 lines
-+
-+Likewise, binutils has no idea about any of these new targets either, so we 
-+fix that up too.. now we're able to actually build a real toolchain for 
-+sh2a_nofpu- and other more ineptly named toolchains (and yes, there are more 
-+inept targets than that one, really. Go look, I promise).
-+
-+--- a/configure
-++++ b/configure
-+@@ -1495,7 +1495,7 @@
-+   mips*-*-*)
-+     noconfigdirs="$noconfigdirs gprof"
-+     ;;
-+-  sh-*-* | sh64-*-*)
-++  sh*-*-* | sh64-*-*)
-+     case "${target}" in
-+       sh*-*-elf)
-+          ;;
-+--- a/configure.ac
-++++ b/configure.ac
-+@@ -712,7 +712,7 @@
-+   mips*-*-*)
-+     noconfigdirs="$noconfigdirs gprof"
-+     ;;
-+-  sh-*-* | sh64-*-*)
-++  sh*-*-* | sh64-*-*)
-+     case "${target}" in
-+       sh*-*-elf)
-+          ;;
-diff --git a/package/binutils/2.25.1/300-001_ld_makefile_patch.patch b/package/binutils/2.25.1/300-001_ld_makefile_patch.patch
-new file mode 100644
-index 0000000..5cb0f61
---- /dev/null
-+++ b/package/binutils/2.25.1/300-001_ld_makefile_patch.patch
-@@ -0,0 +1,24 @@
-+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.am binutils-2.17.50.0.17/ld/Makefile.am
-+--- binutils-2.17.50.0.17.oorig/ld/Makefile.am	2007-06-18 19:29:29.000000000 +0200
-++++ binutils-2.17.50.0.17/ld/Makefile.am	2007-06-25 10:00:36.000000000 +0200
-+@@ -18,7 +18,7 @@
-+ # We put the scripts in the directory $(scriptdir)/ldscripts.
-+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
-+ # directives need to be different for native and cross linkers.
-+-scriptdir = $(tooldir)/lib
-++scriptdir = $(libdir)
-+ 
-+ EMUL = @EMUL@
-+ EMULATION_OFILES = @EMULATION_OFILES@
-+diff -u binutils-2.17.50.0.17.oorig/ld/Makefile.in binutils-2.17.50.0.17/ld/Makefile.in
-+--- binutils-2.17.50.0.17.oorig/ld/Makefile.in	2007-06-18 19:29:29.000000000 +0200
-++++ binutils-2.17.50.0.17/ld/Makefile.in	2007-06-25 10:00:36.000000000 +0200
-+@@ -287,7 +287,7 @@
-+ # We put the scripts in the directory $(scriptdir)/ldscripts.
-+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
-+ # directives need to be different for native and cross linkers.
-+-scriptdir = $(tooldir)/lib
-++scriptdir = $(libdir)
-+ BASEDIR = $(srcdir)/..
-+ BFDDIR = $(BASEDIR)/bfd
-+ INCDIR = $(BASEDIR)/include
-diff --git a/package/binutils/2.25.1/300-012_check_ldrunpath_length.patch b/package/binutils/2.25.1/300-012_check_ldrunpath_length.patch
-new file mode 100644
-index 0000000..df78310
---- /dev/null
-+++ b/package/binutils/2.25.1/300-012_check_ldrunpath_length.patch
-@@ -0,0 +1,21 @@
-+diff -Nura binutils-2.21.orig/ld/emultempl/elf32.em binutils-2.21/ld/emultempl/elf32.em
-+--- binutils-2.21.orig/ld/emultempl/elf32.em	2010-10-29 09:10:36.000000000 -0300
-++++ binutils-2.21/ld/emultempl/elf32.em	2010-12-10 09:26:56.746102724 -0300
-+@@ -1270,6 +1270,8 @@
-+ 	      && command_line.rpath == NULL)
-+ 	    {
-+ 	      lib_path = (const char *) getenv ("LD_RUN_PATH");
-++	      if ((lib_path) && (strlen (lib_path) == 0))
-++	      	lib_path = NULL;
-+ 	      if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
-+ 						      force))
-+ 		break;
-+@@ -1497,6 +1499,8 @@
-+   rpath = command_line.rpath;
-+   if (rpath == NULL)
-+     rpath = (const char *) getenv ("LD_RUN_PATH");
-++  if ((rpath) && (strlen (rpath) == 0))
-++  	rpath = NULL;
-+ 
-+   for (abfd = link_info.input_bfds; abfd; abfd = abfd->link_next)
-+     if (bfd_get_flavour (abfd) == bfd_target_elf_flavour)
-diff --git a/package/binutils/2.25.1/500-sysroot.patch b/package/binutils/2.25.1/500-sysroot.patch
-new file mode 100644
-index 0000000..e49c795
---- /dev/null
-+++ b/package/binutils/2.25.1/500-sysroot.patch
-@@ -0,0 +1,37 @@
-+Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
-+
-+Always try to prepend the sysroot prefix to absolute filenames first.
-+
-+http://bugs.gentoo.org/275666
-+http://sourceware.org/bugzilla/show_bug.cgi?id=10340
-+
-+--- a/ld/ldfile.c
-++++ b/ld/ldfile.c
-+@@ -308,18 +308,25 @@
-+      directory first.  */
-+   if (! entry->flags.maybe_archive)
-+     {
-+-      if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename))
-++      /* For absolute pathnames, try to always open the file in the
-++	 sysroot first. If this fails, try to open the file at the
-++	 given location.  */
-++      entry->flags.sysrooted = is_sysrooted_pathname (entry->filename);
-++      if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)
-++	  && ld_sysroot)
-+ 	{
-+ 	  char *name = concat (ld_sysroot, entry->filename,
-+ 			       (const char *) NULL);
-+ 	  if (ldfile_try_open_bfd (name, entry))
-+ 	    {
-+ 	      entry->filename = name;
-++	      entry->flags.sysrooted = TRUE;
-+ 	      return TRUE;
-+ 	    }
-+ 	  free (name);
-+ 	}
-+-      else if (ldfile_try_open_bfd (entry->filename, entry))
-++
-++      if (ldfile_try_open_bfd (entry->filename, entry))
-+ 	return TRUE;
-+ 
-+       if (IS_ABSOLUTE_PATH (entry->filename))
-diff --git a/package/binutils/2.25.1/600-poison-system-directories.patch b/package/binutils/2.25.1/600-poison-system-directories.patch
-new file mode 100644
-index 0000000..c14c850
---- /dev/null
-+++ b/package/binutils/2.25.1/600-poison-system-directories.patch
-@@ -0,0 +1,277 @@
-+Patch adapted to binutils 2.23.2 and extended to use
-+BR_COMPILER_PARANOID_UNSAFE_PATH by Thomas Petazzoni.
-+
-+[Gustavo: adapt to binutils 2.25]
-+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-+
-+Upstream-Status: Inappropriate [distribution: codesourcery]
-+
-+Patch originally created by Mark Hatle, forward-ported to
-+binutils 2.21 by Scott Garman.
-+
-+purpose:  warn for uses of system directories when cross linking
-+
-+Code Merged from Sourcery G++ binutils 2.19 - 4.4-277
-+
-+2008-07-02  Joseph Myers  <joseph@codesourcery.com>
-+
-+    ld/
-+    * ld.h (args_type): Add error_poison_system_directories.
-+    * ld.texinfo (--error-poison-system-directories): Document.
-+    * ldfile.c (ldfile_add_library_path): Check
-+    command_line.error_poison_system_directories.
-+    * ldmain.c (main): Initialize
-+    command_line.error_poison_system_directories.
-+    * lexsup.c (enum option_values): Add
-+    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES.
-+    (ld_options): Add --error-poison-system-directories.
-+    (parse_args): Handle new option.
-+
-+2007-06-13  Joseph Myers  <joseph@codesourcery.com>
-+
-+    ld/
-+    * config.in: Regenerate.
-+    * ld.h (args_type): Add poison_system_directories.
-+    * ld.texinfo (--no-poison-system-directories): Document.
-+    * ldfile.c (ldfile_add_library_path): Check
-+    command_line.poison_system_directories.
-+    * ldmain.c (main): Initialize
-+    command_line.poison_system_directories.
-+    * lexsup.c (enum option_values): Add
-+    OPTION_NO_POISON_SYSTEM_DIRECTORIES.
-+    (ld_options): Add --no-poison-system-directories.
-+    (parse_args): Handle new option.
-+
-+2007-04-20  Joseph Myers  <joseph@codesourcery.com>
-+
-+    Merge from Sourcery G++ binutils 2.17:
-+
-+    2007-03-20  Joseph Myers  <joseph@codesourcery.com>
-+    Based on patch by Mark Hatle <mark.hatle@windriver.com>.
-+    ld/
-+    * configure.ac (--enable-poison-system-directories): New option.
-+    * configure, config.in: Regenerate.
-+    * ldfile.c (ldfile_add_library_path): If
-+    ENABLE_POISON_SYSTEM_DIRECTORIES defined, warn for use of /lib,
-+    /usr/lib, /usr/local/lib or /usr/X11R6/lib.
-+
-+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
-+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
-+
-+diff -Nura a/ld/config.in b/ld/config.in
-+--- a/ld/config.in	2014-10-14 04:32:04.000000000 -0300
-++++ b/ld/config.in	2014-12-24 08:07:28.997918918 -0300
-+@@ -11,6 +11,9 @@
-+    language is requested. */
-+ #undef ENABLE_NLS
-+ 
-++/* Define to warn for use of native system library directories */
-++#undef ENABLE_POISON_SYSTEM_DIRECTORIES
-++
-+ /* Additional extension a shared object might have. */
-+ #undef EXTRA_SHLIB_EXTENSION
-+ 
-+diff -Nura a/ld/configure b/ld/configure
-+--- a/ld/configure	2014-12-23 11:22:07.000000000 -0300
-++++ b/ld/configure	2014-12-24 08:07:29.002919088 -0300
-+@@ -783,6 +783,7 @@
-+ enable_targets
-+ enable_64_bit_bfd
-+ with_sysroot
-++enable_poison_system_directories
-+ enable_gold
-+ enable_got
-+ enable_werror
-+@@ -1439,6 +1440,8 @@
-+   --disable-largefile     omit support for large files
-+   --enable-targets        alternative target configurations
-+   --enable-64-bit-bfd     64-bit support (on hosts with narrower word sizes)
-++  --enable-poison-system-directories
-++                          warn for use of native system library directories
-+   --enable-gold[=ARG]     build gold [ARG={default,yes,no}]
-+   --enable-got=<type>     GOT handling scheme (target, single, negative,
-+                           multigot)
-+@@ -15487,7 +15490,18 @@
-+ fi
-+ 
-+ 
-++# Check whether --enable-poison-system-directories was given.
-++if test "${enable_poison_system_directories+set}" = set; then :
-++  enableval=$enable_poison_system_directories;
-++else
-++  enable_poison_system_directories=no
-++fi
-++
-++if test "x${enable_poison_system_directories}" = "xyes"; then
-+ 
-++$as_echo "#define ENABLE_POISON_SYSTEM_DIRECTORIES 1" >>confdefs.h
-++
-++fi
-+ 
-+ # Check whether --enable-got was given.
-+ if test "${enable_got+set}" = set; then :
-+diff -Nura a/ld/configure.ac b/ld/configure.ac
-+--- a/ld/configure.ac	2014-10-14 04:32:04.000000000 -0300
-++++ b/ld/configure.ac	2014-12-24 08:07:29.002919088 -0300
-+@@ -94,6 +94,16 @@
-+ AC_SUBST(TARGET_SYSTEM_ROOT)
-+ AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
-+ 
-++AC_ARG_ENABLE([poison-system-directories],
-++         AS_HELP_STRING([--enable-poison-system-directories],
-++                [warn for use of native system library directories]),,
-++         [enable_poison_system_directories=no])
-++if test "x${enable_poison_system_directories}" = "xyes"; then
-++  AC_DEFINE([ENABLE_POISON_SYSTEM_DIRECTORIES],
-++       [1],
-++       [Define to warn for use of native system library directories])
-++fi
-++
-+ dnl Use --enable-gold to decide if this linker should be the default.
-+ dnl "install_as_default" is set to false if gold is the default linker.
-+ dnl "installed_linker" is the installed BFD linker name.
-+diff -Nura a/ld/ldfile.c b/ld/ldfile.c
-+--- a/ld/ldfile.c	2014-10-14 04:32:04.000000000 -0300
-++++ b/ld/ldfile.c	2014-12-24 08:07:29.002919088 -0300
-+@@ -114,6 +114,23 @@
-+     new_dirs->name = concat (ld_sysroot, name + 1, (const char *) NULL);
-+   else
-+     new_dirs->name = xstrdup (name);
-++
-++#ifdef ENABLE_POISON_SYSTEM_DIRECTORIES
-++  if (command_line.poison_system_directories
-++  && ((!strncmp (name, "/lib", 4))
-++      || (!strncmp (name, "/usr/lib", 8))
-++      || (!strncmp (name, "/usr/local/lib", 14))
-++      || (!strncmp (name, "/usr/X11R6/lib", 14))))
-++   {
-++     if (command_line.error_poison_system_directories)
-++       einfo (_("%X%P: error: library search path \"%s\" is unsafe for "
-++            "cross-compilation\n"), name);
-++     else
-++       einfo (_("%P: warning: library search path \"%s\" is unsafe for "
-++            "cross-compilation\n"), name);
-++   }
-++#endif
-++
-+ }
-+ 
-+ /* Try to open a BFD for a lang_input_statement.  */
-+diff -Nura a/ld/ld.h b/ld/ld.h
-+--- a/ld/ld.h	2014-10-14 04:32:04.000000000 -0300
-++++ b/ld/ld.h	2014-12-24 08:07:29.003919122 -0300
-+@@ -161,6 +161,14 @@
-+   /* If TRUE we'll just print the default output on stdout.  */
-+   bfd_boolean print_output_format;
-+ 
-++  /* If TRUE (the default) warn for uses of system directories when
-++     cross linking.  */
-++  bfd_boolean poison_system_directories;
-++
-++  /* If TRUE (default FALSE) give an error for uses of system
-++     directories when cross linking instead of a warning.  */
-++  bfd_boolean error_poison_system_directories;
-++
-+   /* Big or little endian as set on command line.  */
-+   enum endian_enum endian;
-+ 
-+diff -Nura a/ld/ldlex.h b/ld/ldlex.h
-+--- a/ld/ldlex.h	2014-11-04 06:54:41.000000000 -0300
-++++ b/ld/ldlex.h	2014-12-24 08:09:47.477644294 -0300
-+@@ -140,6 +140,8 @@
-+   OPTION_IGNORE_UNRESOLVED_SYMBOL,
-+   OPTION_PUSH_STATE,
-+   OPTION_POP_STATE,
-++  OPTION_NO_POISON_SYSTEM_DIRECTORIES,
-++  OPTION_ERROR_POISON_SYSTEM_DIRECTORIES,
-+ };
-+ 
-+ /* The initial parser states.  */
-+diff -Nura a/ld/ldmain.c b/ld/ldmain.c
-+--- a/ld/ldmain.c	2014-10-14 04:32:04.000000000 -0300
-++++ b/ld/ldmain.c	2014-12-24 08:07:29.003919122 -0300
-+@@ -266,6 +266,8 @@
-+   command_line.warn_mismatch = TRUE;
-+   command_line.warn_search_mismatch = TRUE;
-+   command_line.check_section_addresses = -1;
-++  command_line.poison_system_directories = TRUE;
-++  command_line.error_poison_system_directories = FALSE;
-+ 
-+   /* We initialize DEMANGLING based on the environment variable
-+      COLLECT_NO_DEMANGLE.  The gcc collect2 program will demangle the
-+diff -Nura a/ld/ld.texinfo b/ld/ld.texinfo
-+--- a/ld/ld.texinfo	2014-12-23 05:47:10.000000000 -0300
-++++ b/ld/ld.texinfo	2014-12-24 08:07:29.005919191 -0300
-+@@ -2212,6 +2212,18 @@
-+ 
-+ Passing @code{none} for @var{style} disables the setting from any
-+ @code{--build-id} options earlier on the command line.
-++
-++@kindex --no-poison-system-directories
-++@item --no-poison-system-directories
-++Do not warn for @option{-L} options using system directories such as
-++@file{/usr/lib} when cross linking.  This option is intended for use
-++in chroot environments when such directories contain the correct
-++libraries for the target system rather than the host.
-++
-++@kindex --error-poison-system-directories
-++@item --error-poison-system-directories
-++Give an error instead of a warning for @option{-L} options using
-++system directories when cross linking.
-+ @end table
-+ 
-+ @c man end
-+diff -Nura a/ld/lexsup.c b/ld/lexsup.c
-+--- a/ld/lexsup.c	2014-11-04 06:54:41.000000000 -0300
-++++ b/ld/lexsup.c	2014-12-24 08:48:50.136583414 -0300
-+@@ -513,6 +513,14 @@
-+   { {"pop-state", no_argument, NULL, OPTION_POP_STATE},
-+     '\0', NULL, N_("Pop state of flags governing input file handling"),
-+     TWO_DASHES },
-++  { {"no-poison-system-directories", no_argument, NULL,
-++    OPTION_NO_POISON_SYSTEM_DIRECTORIES},
-++    '\0', NULL, N_("Do not warn for -L options using system directories"),
-++    TWO_DASHES },
-++  { {"error-poison-system-directories", no_argument, NULL,
-++    OPTION_ERROR_POISON_SYSTEM_DIRECTORIES},
-++    '\0', NULL, N_("Give an error for -L options using system directories"),
-++    TWO_DASHES },
-+ };
-+ 
-+ #define OPTION_COUNT ARRAY_SIZE (ld_options)
-+@@ -525,6 +533,7 @@
-+   int ingroup = 0;
-+   char *default_dirlist = NULL;
-+   char *shortopts;
-++  char *BR_paranoid_env;
-+   struct option *longopts;
-+   struct option *really_longopts;
-+   int last_optind;
-+@@ -1458,6 +1467,14 @@
-+           }
-+           break;
-+ 
-++	case OPTION_NO_POISON_SYSTEM_DIRECTORIES:
-++	  command_line.poison_system_directories = FALSE;
-++	  break;
-++
-++	case OPTION_ERROR_POISON_SYSTEM_DIRECTORIES:
-++	  command_line.error_poison_system_directories = TRUE;
-++	  break;
-++
-+ 	case OPTION_PUSH_STATE:
-+ 	  input_flags.pushed = xmemdup (&input_flags,
-+ 					sizeof (input_flags),
-+@@ -1483,6 +1500,10 @@
-+       command_line.soname = NULL;
-+     }
-+ 
-++  BR_paranoid_env = getenv("BR_COMPILER_PARANOID_UNSAFE_PATH");
-++  if (BR_paranoid_env && strlen(BR_paranoid_env) > 0)
-++    command_line.error_poison_system_directories = TRUE;
-++
-+   while (ingroup)
-+     {
-+       lang_leave_group ();
-+
-diff --git a/package/binutils/2.25.1/700-enable-gold-on-mips.patch b/package/binutils/2.25.1/700-enable-gold-on-mips.patch
-new file mode 100644
-index 0000000..6b17f5b
---- /dev/null
-+++ b/package/binutils/2.25.1/700-enable-gold-on-mips.patch
-@@ -0,0 +1,12 @@
-+--- a/configure	2015-11-09 12:24:43.007572365 -0500
-++++ b/configure	2015-11-09 12:25:08.139468790 -0500
-+@@ -2972,7 +2972,7 @@
-+       # Check for target supported by gold.
-+       case "${target}" in
-+         i?86-*-* | x86_64-*-* | sparc*-*-* | powerpc*-*-* | arm*-*-* \
-+-        | aarch64*-*-* | tilegx*-*-*)
-++        | aarch64*-*-* | tilegx*-*-* | mips*-*-*)
-+ 	  configdirs="$configdirs gold"
-+ 	  if test x${ENABLE_GOLD} = xdefault; then
-+ 	    default_ld=gold
-+
-diff --git a/package/binutils/2.25.1/701-ignore-ld-assert.patch b/package/binutils/2.25.1/701-ignore-ld-assert.patch
-new file mode 100644
-index 0000000..637d118
---- /dev/null
-+++ b/package/binutils/2.25.1/701-ignore-ld-assert.patch
-@@ -0,0 +1,12 @@
-+--- a/ld/ldmain.c	2015-11-11 16:48:13.241128312 -0500
-++++ b/ld/ldmain.c	2015-11-11 16:41:43.982724231 -0500
-+@@ -216,7 +216,8 @@
-+   /* We want to notice and fail on those nasty BFD assertions which are
-+      likely to signal incorrect output being generated but otherwise may
-+      leave no trace.  */
-+-  default_bfd_assert_handler = bfd_set_assert_handler (ld_bfd_assert_handler);
-++  /* TODO(jfthibert) Re-enable assert failures once openssl issues are resolved */
-++  /*default_bfd_assert_handler = bfd_set_assert_handler (ld_bfd_assert_handler);*/
-+ 
-+   xatexit (ld_cleanup);
-+
-diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
-index 45f604a..aace4d0 100644
---- a/package/binutils/Config.in.host
-+++ b/package/binutils/Config.in.host
-@@ -26,6 +26,10 @@ choice
- 		depends on !BR2_avr32 && !BR2_bfin
- 		bool "binutils 2.24"
- 
-+	config BR2_BINUTILS_VERSION_2_25_1
-+		depends on !BR2_avr32 && !BR2_bfin
-+		bool "binutils 2.25.1"
-+
- endchoice
- 
- config BR2_BINUTILS_VERSION
-@@ -35,6 +39,7 @@ config BR2_BINUTILS_VERSION
- 	default "2.22"		if BR2_BINUTILS_VERSION_2_22
- 	default "2.23.2"	if BR2_BINUTILS_VERSION_2_23_2
- 	default "2.24"		if BR2_BINUTILS_VERSION_2_24
-+	default "2.25.1"	if BR2_BINUTILS_VERSION_2_25_1
- 
- config BR2_BINUTILS_EXTRA_CONFIG_OPTIONS
- 	string "Additional binutils options"
diff --git a/Build.Info/0010-Enable-xsi-math-to-fix-build-of-webrtc-b-25989577.patch b/Build.Info/0010-Enable-xsi-math-to-fix-build-of-webrtc-b-25989577.patch
new file mode 100644
index 0000000..477aaad
--- /dev/null
+++ b/Build.Info/0010-Enable-xsi-math-to-fix-build-of-webrtc-b-25989577.patch
@@ -0,0 +1,22 @@
+From 9285807f8d652e379bb4f15c7c63f4a0b2e3775c Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 16:41:11 -0700
+Subject: [PATCH 10/17] Enable xsi math to fix build of webrtc (b/25989577)
+
+---
+ package/uclibc/uClibc-ng.config | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/package/uclibc/uClibc-ng.config b/package/uclibc/uClibc-ng.config
+index 66c7688..3f8bc98 100644
+--- a/package/uclibc/uClibc-ng.config
++++ b/package/uclibc/uClibc-ng.config
+@@ -1,4 +1,5 @@
+ DO_C99_MATH=y
++DO_XSI_MATH=y
+ KERNEL_HEADERS="/usr/src/linux/include"
+ # LDSO_CACHE_SUPPORT is not set
+ # UCLIBC_STATIC_LDCONFIG is not set
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0010-enable-uclibc-xsi-math.patch b/Build.Info/0010-enable-uclibc-xsi-math.patch
deleted file mode 100644
index aa63c9d..0000000
--- a/Build.Info/0010-enable-uclibc-xsi-math.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From 40a111215b69331d3c9d3d9a191df8443c7ad52f Mon Sep 17 00:00:00 2001
-From: Jean-Francois Thibert <jfthibert@google.com>
-Date: Tue, 8 Dec 2015 17:19:44 -0500
-Subject: [PATCH] Enable xsi math to fix build of webrtc (b/25989577)
-
-
-diff --git a/package/uclibc/uClibc-0.9.33.config b/package/uclibc/uClibc-0.9.33.config
-index 6b9d2ed..a84155c 100644
---- a/package/uclibc/uClibc-0.9.33.config
-+++ b/package/uclibc/uClibc-0.9.33.config
-@@ -71,7 +71,7 @@ ARCH_USE_MMU=y
- UCLIBC_HAS_FLOATS=y
- UCLIBC_HAS_FPU=y
- DO_C99_MATH=y
--# DO_XSI_MATH is not set
-+DO_XSI_MATH=y
- # UCLIBC_HAS_FENV is not set
- UCLIBC_HAS_LONG_DOUBLE_MATH=y
- KERNEL_HEADERS="/usr/src/linux/include"
diff --git a/Build.Info/0011-Enable-sys_siglist-to-fix-Cast-build-b-26441616.patch b/Build.Info/0011-Enable-sys_siglist-to-fix-Cast-build-b-26441616.patch
new file mode 100644
index 0000000..8cb8030
--- /dev/null
+++ b/Build.Info/0011-Enable-sys_siglist-to-fix-Cast-build-b-26441616.patch
@@ -0,0 +1,24 @@
+From 05564afa38bf37395aae4a39649762fe576c2841 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 16:45:11 -0700
+Subject: [PATCH 11/17] Enable sys_siglist to fix Cast build (b/26441616)
+
+---
+ package/uclibc/uClibc-ng.config | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/package/uclibc/uClibc-ng.config b/package/uclibc/uClibc-ng.config
+index 3f8bc98..b9911b7 100644
+--- a/package/uclibc/uClibc-ng.config
++++ b/package/uclibc/uClibc-ng.config
+@@ -19,6 +19,7 @@ UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+ UCLIBC_HAS_GETPT=y
+ UCLIBC_HAS_LIBUTIL=y
+ UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
++UCLIBC_HAS_SYS_SIGLIST=y
+ UCLIBC_USE_NETLINK=y
+ UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+ UCLIBC_HAS_RESOLVER_SUPPORT=y
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0011-disable-resolv-link-warnings.patch b/Build.Info/0011-disable-resolv-link-warnings.patch
deleted file mode 100644
index 2317aac..0000000
--- a/Build.Info/0011-disable-resolv-link-warnings.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 488146b78fc256b0efdbecf19b6cc6dd9c5b8a7d Mon Sep 17 00:00:00 2001
-From: Jean-Francois Thibert <jfthibert@google.com>
-Date: Wed, 9 Dec 2015 13:43:14 -0500
-Subject: [PATCH] Disable link warnings in uclibc resolv.c
-
-
-diff --git a/package/uclibc/0.9.33.2/uclibc-0073-disable-resolv-link-warnings.patch b/package/uclibc/0.9.33.2/uclibc-0073-disable-resolv-link-warnings.patch
-new file mode 100644
-index 0000000..0bd87e9
---- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0073-disable-resolv-link-warnings.patch
-@@ -0,0 +1,13 @@
-+--- a/libc/inet/resolv.c	2015-12-09 13:39:37.762677867 -0500
-++++ b/libc/inet/resolv.c	2015-12-09 12:41:27.866151199 -0500
-+@@ -320,6 +320,10 @@
-+ #include <bits/uClibc_mutex.h>
-+ #include "internal/parse_config.h"
-+ 
-++/* TODO(jfthibert) Patch libraries using deprecated functions */
-++#undef link_warning
-++#define link_warning(A,B)
-++
-+ /* poll() is not supported in kernel <= 2.0, therefore if __NR_poll is
-+  * not available, we assume an old Linux kernel is in use and we will
-+  * use select() instead. */
diff --git a/Build.Info/0012-Enable-long-double-on-mips-for-C-11-functions.patch b/Build.Info/0012-Enable-long-double-on-mips-for-C-11-functions.patch
new file mode 100644
index 0000000..d6a9b95
--- /dev/null
+++ b/Build.Info/0012-Enable-long-double-on-mips-for-C-11-functions.patch
@@ -0,0 +1,45 @@
+From d21634d54081e2a8cb7e21caacf6e647f7313672 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 17:09:05 -0700
+Subject: [PATCH 12/17] Enable long double on mips for C++11 functions
+
+---
+ .../uclibc-0074-allow-long-double-on-mips.patch    | 26 ++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
+ create mode 100644 package/uclibc/uclibc-0074-allow-long-double-on-mips.patch
+
+diff --git a/package/uclibc/uclibc-0074-allow-long-double-on-mips.patch b/package/uclibc/uclibc-0074-allow-long-double-on-mips.patch
+new file mode 100644
+index 0000000..0fa17e6
+--- /dev/null
++++ b/package/uclibc/uclibc-0074-allow-long-double-on-mips.patch
+@@ -0,0 +1,26 @@
++--- a/extra/Configs/Config.in.arch	2012-05-15 03:20:09.000000000 -0400
+++++ b/extra/Configs/Config.in.arch	2016-01-08 11:16:53.007031385 -0500
++@@ -189,7 +189,7 @@
++ config UCLIBC_HAS_LONG_DOUBLE_MATH
++ 	bool "Enable long double support"
++ 	depends on DO_C99_MATH
++-	depends on TARGET_aarch64 || TARGET_alpha || TARGET_i386 || TARGET_ia64 || TARGET_m68k || TARGET_powerpc || TARGET_s390 || TARGET_sparc || TARGET_tile || TARGET_x86_64
+++	depends on TARGET_aarch64 || TARGET_alpha || TARGET_i386 || TARGET_ia64 || TARGET_m68k || TARGET_powerpc || TARGET_s390 || TARGET_sparc || TARGET_tile || TARGET_x86_64 || TARGET_mips
++ 	default y
++ 	help
++ 	  If you want the uClibc math library to contain the full set of C99
++
++--- a/libc/sysdeps/linux/mips/bits/mathdef.h	2012-05-15 03:20:09.000000000 -0400
+++++ b/libc/sysdeps/linux/mips/bits/mathdef.h	2016-02-03 16:09:21.976717193 -0500
++@@ -39,10 +39,6 @@
++ 
++ #endif	/* ISO C99 */
++ 
++-#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
++-/* Signal that we do not really have a `long double'.  This disables the
++-   declaration of all the `long double' function variants.  */
++-# define __NO_LONG_DOUBLE_MATH	1
++-#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++ # define __NO_LONG_DOUBLE_MATH	1
++ #endif
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0012-enable-uclibc-sys-siglist.patch b/Build.Info/0012-enable-uclibc-sys-siglist.patch
deleted file mode 100644
index cbd6716..0000000
--- a/Build.Info/0012-enable-uclibc-sys-siglist.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-From 18c08c51feed6ce7953af43999e74824c9775765 Mon Sep 17 00:00:00 2001
-From: Stephen McGruer <smcgruer@google.com>
-Date: Thu, 7 Jan 2016 12:29:41 -0500
-Subject: [PATCH] Enable sys_siglist to fix Cast build (b/26441616)
-
-diff --git a/package/uclibc/uClibc-0.9.33.config b/package/uclibc/uClibc-0.9.33.config
-index eb39df6..e47c07e 100644
---- a/package/uclibc/uClibc-0.9.33.config
-+++ b/package/uclibc/uClibc-0.9.33.config
-@@ -216,7 +216,7 @@ UCLIBC_HAS_PRINTF_M_SPEC=y
- UCLIBC_HAS_ERRNO_MESSAGES=y
- # UCLIBC_HAS_SYS_ERRLIST is not set
- UCLIBC_HAS_SIGNUM_MESSAGES=y
--# UCLIBC_HAS_SYS_SIGLIST is not set
-+UCLIBC_HAS_SYS_SIGLIST=y
- UCLIBC_HAS_GNU_GETOPT=y
- # UCLIBC_HAS_GNU_GETSUBOPT is not set
diff --git a/Build.Info/0013-Expose-strdup-for-POSIX-code.patch b/Build.Info/0013-Expose-strdup-for-POSIX-code.patch
new file mode 100644
index 0000000..cfaafea
--- /dev/null
+++ b/Build.Info/0013-Expose-strdup-for-POSIX-code.patch
@@ -0,0 +1,31 @@
+From 80cfc827c8260e32a521be20988cca6399f454db Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Thu, 24 Mar 2016 17:11:09 -0700
+Subject: [PATCH 13/17] Expose strdup for POSIX code
+
+---
+ .../uclibc/uclibc-0075-expose-strdup-for-posix-source.patch  | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+ create mode 100644 package/uclibc/uclibc-0075-expose-strdup-for-posix-source.patch
+
+diff --git a/package/uclibc/uclibc-0075-expose-strdup-for-posix-source.patch b/package/uclibc/uclibc-0075-expose-strdup-for-posix-source.patch
+new file mode 100644
+index 0000000..8e3a782
+--- /dev/null
++++ b/package/uclibc/uclibc-0075-expose-strdup-for-posix-source.patch
+@@ -0,0 +1,12 @@
++--- a/include/string.h
+++++ b/include/string.h
++@@ -141,7 +141,8 @@ extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
++ libc_hidden_proto(strxfrm_l)
++ #endif
++ 
++-#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
+++#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED \
+++      || defined __USE_XOPEN2K8
++ /* Duplicate S, returning an identical malloc'd string.  */
++ extern char *strdup (const char *__s)
++      __THROW __attribute_malloc__ __nonnull ((1));
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0013-enable-long-double.patch b/Build.Info/0013-enable-long-double.patch
deleted file mode 100644
index 266f997..0000000
--- a/Build.Info/0013-enable-long-double.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 6933f4f69d6a0f5f83b6af6070418d789a48f663 Mon Sep 17 00:00:00 2001
-From: Jean-Francois Thibert <jfthibert@google.com>
-Date: Thu, 4 Feb 2016 15:41:49 -0500
-Subject: [PATCH] Enable long double on mips for C++11 functions
-
-
-diff --git a/package/uclibc/0.9.33.2/uclibc-0074-allow-long-double-on-mips.patch b/package/uclibc/0.9.33.2/uclibc-0074-allow-long-double-on-mips.patch
-new file mode 100644
-index 0000000..e357857
---- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0074-allow-long-double-on-mips.patch
-@@ -0,0 +1,26 @@
-+--- a/extra/Configs/Config.in.arch	2012-05-15 03:20:09.000000000 -0400
-++++ b/extra/Configs/Config.in.arch	2016-01-08 11:16:53.007031385 -0500
-+@@ -189,7 +189,7 @@
-+ config UCLIBC_HAS_LONG_DOUBLE_MATH
-+ 	bool "Enable long double support"
-+ 	depends on DO_C99_MATH
-+-	depends on TARGET_i386 || TARGET_m68k || TARGET_sparc || TARGET_x86_64 || TARGET_powerpc || TARGET_sh || TARGET_microblaze
-++	depends on TARGET_i386 || TARGET_m68k || TARGET_sparc || TARGET_x86_64 || TARGET_powerpc || TARGET_sh || TARGET_microblaze || TARGET_mips
-+ 	default y
-+ 	help
-+ 	  If you want the uClibc math library to contain the full set of C99
-+
-+--- a/libc/sysdeps/linux/mips/bits/mathdef.h	2012-05-15 03:20:09.000000000 -0400
-++++ b/libc/sysdeps/linux/mips/bits/mathdef.h	2016-02-03 16:09:21.976717193 -0500
-+@@ -39,10 +39,6 @@
-+ 
-+ #endif	/* ISO C99 */
-+ 
-+-#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
-+-/* Signal that we do not really have a `long double'.  This disables the
-+-   declaration of all the `long double' function variants.  */
-+-# define __NO_LONG_DOUBLE_MATH	1
-+-#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
-++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
-+ # define __NO_LONG_DOUBLE_MATH	1
-+ #endif
diff --git a/Build.Info/0014-Enable-sigmask.patch b/Build.Info/0014-Enable-sigmask.patch
new file mode 100644
index 0000000..ce4d8b5
--- /dev/null
+++ b/Build.Info/0014-Enable-sigmask.patch
@@ -0,0 +1,42 @@
+From 01eefac216d6c7aa4b3c9ee60536935d223c0d80 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Sat, 26 Mar 2016 02:37:14 -0700
+Subject: [PATCH 14/17] Enable sigmask
+
+---
+ package/uclibc/uclibc-0076-enable-sigmask.patch | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+ create mode 100644 package/uclibc/uclibc-0076-enable-sigmask.patch
+
+diff --git a/package/uclibc/uclibc-0076-enable-sigmask.patch b/package/uclibc/uclibc-0076-enable-sigmask.patch
+new file mode 100644
+index 0000000..2b73fb1
+--- /dev/null
++++ b/package/uclibc/uclibc-0076-enable-sigmask.patch
+@@ -0,0 +1,23 @@
++--- a/include/signal.h	2016-02-01 07:40:56.000000000 -0800
+++++ b/include/signal.h	2016-03-26 02:33:24.493728529 -0700
++@@ -214,15 +214,18 @@
++ #endif
++ #endif /* __UCLIBC_SUSV4_LEGACY__ */
++ 
+++#ifdef __USE_BSD
+++/* Compute mask for signal SIG.  */
+++# define sigmask(sig)	__sigmask(sig)
+++
+++#endif /* Use BSD.  */
+++
++ #if 0 /*def __USE_BSD*/
++ /* None of the following functions should be used anymore.  They are here
++    only for compatibility.  A single word (`int') is not guaranteed to be
++    enough to hold a complete signal mask and therefore these functions
++    simply do not work in many situations.  Use `sigprocmask' instead.  */
++ 
++-/* Compute mask for signal SIG.  */
++-# define sigmask(sig)	__sigmask(sig)
++-
++ /* Block signals in MASK, returning the old mask.  */
++ extern int sigblock (int __mask) __THROW __attribute_deprecated__;
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0014-expose-strdup-for-posix-source.patch b/Build.Info/0014-expose-strdup-for-posix-source.patch
deleted file mode 100644
index 1348846..0000000
--- a/Build.Info/0014-expose-strdup-for-posix-source.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 43367ef55153c9552849611ab7f411af51641939 Mon Sep 17 00:00:00 2001
-From: Stephen McGruer <smcgruer@google.com>
-Date: Tues, 9 Feb 2016 15:46:49 -0500
-Subject: [PATCH] Expose strdup for POSIX code
-
-This enables strdup for code that defines _POSIX_C_SOURCE as >= 200809L, like
-glibc did SIX YEARS AGO.
-
-
-diff --git a/package/uclibc/0.9.33.2/uclibc-0075-expose-strdup-for-posix-source.patch b/package/uclibc/0.9.33.2/uclibc-0075-expose-strdup-for-posix-source.patch
-new file mode 100644
-index 0000000..e357857
---- /dev/null
-+++ b/package/uclibc/0.9.33.2/uclibc-0075-expose-strdup-for-posix-source.patch
-@@ -0,0 +1,12 @@
-+--- a/include/string.h  2012-05-15 03:20:09.000000000 -0400
-++++ b/include/string.h  2016-02-09 15:36:53.007031385 -0500
-+@@ -143,7 +143,8 @@
-+ #endif
-+ 
-+-#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-++#if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED \
-++      || defined __USE_XOPEN2K8
-+ /* Duplicate S, returning an identical malloc'd string.  */
-+ extern char *strdup (__const char *__s)
-+      __THROW __attribute_malloc__ __nonnull ((1));
-+ libc_hidden_proto(strdup)
diff --git a/Build.Info/0015-Build-golang-support.patch b/Build.Info/0015-Build-golang-support.patch
new file mode 100644
index 0000000..268cabb
--- /dev/null
+++ b/Build.Info/0015-Build-golang-support.patch
@@ -0,0 +1,58 @@
+From f914545ac97af24e269cdbd78dbdabce6c0b2e84 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Tue, 29 Mar 2016 18:32:28 -0700
+Subject: [PATCH 15/17] Build golang support
+
+---
+ package/gcc/5.3.0/110-libgo-runtime-initialize-variable.patch | 11 +++++++++++
+ package/gcc/gcc-final/gcc-final.mk                            |  2 +-
+ package/gcc/gcc.mk                                            |  2 +-
+ 3 files changed, 13 insertions(+), 2 deletions(-)
+ create mode 100644 package/gcc/5.3.0/110-libgo-runtime-initialize-variable.patch
+
+diff --git a/package/gcc/5.3.0/110-libgo-runtime-initialize-variable.patch b/package/gcc/5.3.0/110-libgo-runtime-initialize-variable.patch
+new file mode 100644
+index 0000000..f9306e7
+--- /dev/null
++++ b/package/gcc/5.3.0/110-libgo-runtime-initialize-variable.patch
+@@ -0,0 +1,11 @@
++--- a/libgo/runtime/mprof.goc	2014-07-19 14:36:26.000000000 -0700
+++++ b/libgo/runtime/mprof.goc	2016-03-29 22:13:19.272547481 -0700
++@@ -403,7 +403,7 @@
++ 
++ func Stack(b Slice, all bool) (n int) {
++ 	byte *pc, *sp;
++-	bool enablegc;
+++	bool enablegc = false;
++ 	
++ 	sp = runtime_getcallersp(&b);
++ 	pc = (byte*)(uintptr)runtime_getcallerpc(&b);
+diff --git a/package/gcc/gcc-final/gcc-final.mk b/package/gcc/gcc-final/gcc-final.mk
+index dbdb615..dfcf883 100644
+--- a/package/gcc/gcc-final/gcc-final.mk
++++ b/package/gcc/gcc-final/gcc-final.mk
+@@ -52,7 +52,7 @@ endef
+ 
+ 
+ # Languages supported by the cross-compiler
+-GCC_FINAL_CROSS_LANGUAGES-y = c
++GCC_FINAL_CROSS_LANGUAGES-y = c,go
+ GCC_FINAL_CROSS_LANGUAGES-$(BR2_INSTALL_LIBSTDCPP) += c++
+ GCC_FINAL_CROSS_LANGUAGES-$(BR2_TOOLCHAIN_BUILDROOT_FORTRAN) += fortran
+ GCC_FINAL_CROSS_LANGUAGES = $(subst $(space),$(comma),$(GCC_FINAL_CROSS_LANGUAGES-y))
+diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk
+index 07883d0..d5e403a 100644
+--- a/package/gcc/gcc.mk
++++ b/package/gcc/gcc.mk
+@@ -49,7 +49,7 @@ define HOST_GCC_APPLY_PATCHES
+ endef
+ 
+ HOST_GCC_EXCLUDES = \
+-	libjava/* libgo/* \
++	libjava/* \
+ 	gcc/testsuite/* libstdc++-v3/testsuite/*
+ 
+ define HOST_GCC_FAKE_TESTSUITE
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0016-enable-UCLIBC_SV4_DEPRECATED-for-ustat-call.patch b/Build.Info/0016-enable-UCLIBC_SV4_DEPRECATED-for-ustat-call.patch
new file mode 100644
index 0000000..b4b9fa2
--- /dev/null
+++ b/Build.Info/0016-enable-UCLIBC_SV4_DEPRECATED-for-ustat-call.patch
@@ -0,0 +1,25 @@
+From 3573d5696772ed7d06808b345da397d918ac4f55 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Wed, 30 Mar 2016 00:21:06 -0700
+Subject: [PATCH 16/17] enable UCLIBC_SV4_DEPRECATED for ustat call
+
+needed for libgo.so
+---
+ package/uclibc/uClibc-ng.config | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/package/uclibc/uClibc-ng.config b/package/uclibc/uClibc-ng.config
+index b9911b7..a76339f 100644
+--- a/package/uclibc/uClibc-ng.config
++++ b/package/uclibc/uClibc-ng.config
+@@ -15,6 +15,7 @@ UCLIBC_SUSV2_LEGACY=y
+ UCLIBC_SUSV3_LEGACY=y
+ UCLIBC_HAS_CONTEXT_FUNCS=y
+ UCLIBC_SUSV4_LEGACY=y
++UCLIBC_SV4_DEPRECATED=y
+ UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+ UCLIBC_HAS_GETPT=y
+ UCLIBC_HAS_LIBUTIL=y
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0017-add-rpath-to-locate-missing-libgcc_s.so.patch b/Build.Info/0017-add-rpath-to-locate-missing-libgcc_s.so.patch
new file mode 100644
index 0000000..958db46
--- /dev/null
+++ b/Build.Info/0017-add-rpath-to-locate-missing-libgcc_s.so.patch
@@ -0,0 +1,42 @@
+From 17bcfa9fa4bc20f056c015929809842c1d975367 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Wed, 30 Mar 2016 01:59:35 -0700
+Subject: [PATCH 17/17] add rpath to locate missing libgcc_s.so
+
+---
+ package/gcc/5.3.0/111-gotools-rpath.patch | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+ create mode 100644 package/gcc/5.3.0/111-gotools-rpath.patch
+
+diff --git a/package/gcc/5.3.0/111-gotools-rpath.patch b/package/gcc/5.3.0/111-gotools-rpath.patch
+new file mode 100644
+index 0000000..b77743b
+--- /dev/null
++++ b/package/gcc/5.3.0/111-gotools-rpath.patch
+@@ -0,0 +1,23 @@
++--- a/gotools/Makefile.am	2015-03-24 12:50:31.000000000 -0700
+++++ b/gotools/Makefile.am	2016-03-30 01:56:38.853458878 -0700
++@@ -38,7 +38,7 @@
++ GOCFLAGS = $(CFLAGS_FOR_TARGET)
++ GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
++ 
++-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
+++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs -Wl,-rpath,../gcc/
++ GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
++ 
++ cmdsrcdir = $(srcdir)/../libgo/go/cmd
++--- a/gotools/Makefile.in	2015-03-24 12:50:31.000000000 -0700
+++++ b/gotools/Makefile.in	2016-03-30 02:15:05.424411545 -0700
++@@ -230,7 +230,7 @@
++ # Use the compiler we just built.
++ @NATIVE_TRUE@GOCOMPILER = $(GOC_FOR_TARGET)
++ GOCOMPILE = $(GOCOMPILER) $(GOCFLAGS)
++-AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs
+++AM_LDFLAGS = -L $(libgodir) -L $(libgodir)/.libs -Wl,-rpath,../gcc/
++ GOLINK = $(GOCOMPILER) $(GOCFLAGS) $(AM_GOCFLAGS) $(LDFLAGS) $(AM_LDFLAGS) -o $@
++ cmdsrcdir = $(srcdir)/../libgo/go/cmd
++ go_cmd_go_files = \
++
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/0018-enable-wordexp-in-uClibc.patch b/Build.Info/0018-enable-wordexp-in-uClibc.patch
new file mode 100644
index 0000000..d86955b
--- /dev/null
+++ b/Build.Info/0018-enable-wordexp-in-uClibc.patch
@@ -0,0 +1,24 @@
+From 3bcbad2cb08199de63e7c495d37c208be1d5ec62 Mon Sep 17 00:00:00 2001
+From: Dan Padgett <dpadgett@google.com>
+Date: Wed, 20 Apr 2016 20:38:12 -0700
+Subject: [PATCH 18/18] enable wordexp in uClibc
+
+---
+ package/uclibc/uClibc-ng.config | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/package/uclibc/uClibc-ng.config b/package/uclibc/uClibc-ng.config
+index a76339f..c2e9f72 100644
+--- a/package/uclibc/uClibc-ng.config
++++ b/package/uclibc/uClibc-ng.config
+@@ -36,6 +36,7 @@ UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+ UCLIBC_HAS_PRINTF_M_SPEC=y
+ # UCLIBC_HAS_REGEX_OLD is not set
+ # UCLIBC_HAS_FNMATCH_OLD is not set
++UCLIBC_HAS_WORDEXP=y
+ UCLIBC_HAS_NFTW=y
+ UCLIBC_HAS_FTW=y
+ UCLIBC_HAS_GNU_GLOB=y
+-- 
+2.8.0.rc3.226.g39d4020
+
diff --git a/Build.Info/Readme.txt b/Build.Info/Readme.txt
index 8124f93..5434f5a 100644
--- a/Build.Info/Readme.txt
+++ b/Build.Info/Readme.txt
@@ -2,7 +2,7 @@
 
 git clone the buildroot tree.
 reset to this hash:
-b354417dcef5805adb33cb2e3249d7c7be64cac7
+2016.02
 
 Apply the patches in this directory, and copy over the config file here to the
 .config.
@@ -17,7 +17,7 @@
 
 git clone git://git.buildroot.net/buildroot
 cd buildroot
-git checkout b354417dcef5805adb33cb2e3249d7c7be64cac7
+git checkout 2016.02
 
 patch -p1 -i <path-to-this-folder>/0001-Build-libraries-statically-to-make-hermetic-builds-w.patch
 [... do for all patches in the folder...]
@@ -27,3 +27,24 @@
 make
 (this will bring up menuconfig, just exit and save)
 make -j12
+
+-----------------------
+dpadgett's notes:
+
+Let buildroot access the toolchain thru /bin instead of /usr/bin:
+
+mkdir bin
+cd bin
+cp ../Build.Info/proxy .
+for file in $(ls -l ../usr/bin | grep -- "-> toolchain-wrapper" | awk '{print $9}'); do echo $file; ln -s proxy $file; done
+for file in $(ls -l ../usr/bin | grep -v toolchain-wrapper | grep -v "\\.br_real" | awk '{print $9}'); do ln -s ../usr/bin/$file $file; done
+
+Copy / link .so files to legacy locations:
+
+ln -s ../usr/lib/libstdc++.so ../usr/mipsel-buildroot-linux-uclibc/sysroot/lib/libstdc++.so
+cp ../usr/mipsel-buildroot-linux-uclibc/lib/libstdc++.la ../usr/mipsel-buildroot-linux-uclibc/sysroot/lib/.
+ln -s libdl.so.1 ../usr/mipsel-buildroot-linux-uclibc/sysroot/lib/libdl.so.0
+ln -s librt.so.1 ../usr/mipsel-buildroot-linux-uclibc/sysroot/lib/librt.so.0
+ln -s libpthread.so.1 ../usr/mipsel-buildroot-linux-uclibc/sysroot/lib/libpthread.so.0
+ln -s libm.so.1 ../usr/mipsel-buildroot-linux-uclibc/sysroot/lib/libm.so.0
+ln -s libc.so.1 ../usr/mipsel-buildroot-linux-uclibc/sysroot/lib/libc.so.0
diff --git a/Build.Info/defconfig b/Build.Info/defconfig
index 675e296..6e5ecbb 100644
--- a/Build.Info/defconfig
+++ b/Build.Info/defconfig
@@ -7,9 +7,9 @@
 BR2_TOOLCHAIN_BUILDROOT_LOCALE=y
 BR2_PTHREAD_DEBUG=y
 BR2_TOOLCHAIN_BUILDROOT_USE_SSP=y
-BR2_BINUTILS_VERSION_2_25_1=y
+BR2_BINUTILS_VERSION_2_25_X=y
 BR2_BINUTILS_EXTRA_CONFIG_OPTIONS="--enable-gold --enable-plugins"
-BR2_GCC_VERSION_4_9_X=y
+BR2_GCC_VERSION_5_X=y
 BR2_TOOLCHAIN_BUILDROOT_CXX=y
 BR2_ENABLE_LOCALE_PURGE=y
 BR2_ENABLE_LOCALE_WHITELIST="C en_US"
@@ -17,3 +17,4 @@
 # BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
 BR2_PACKAGE_MAKE=y
 # BR2_TARGET_ROOTFS_TAR is not set
+BR_CROSS_PATH_REL=bin
diff --git a/Build.Info/proxy b/Build.Info/proxy
new file mode 100755
index 0000000..acadc4c
--- /dev/null
+++ b/Build.Info/proxy
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+bin=$(basename "$0")
+dir=$(realpath -s $(dirname $(realpath "$0"))/../usr/bin)
+echo cd "$(pwd)" "&&" "$0" -D_GLIBCXX_USE_CXX11_ABI=0 "$@" >> /tmp/commands
+$dir/$bin -D_GLIBCXX_USE_CXX11_ABI=0 "$@"
diff --git a/bin/ldconfig b/bin/ldconfig
deleted file mode 100755
index 6fe432c..0000000
--- a/bin/ldconfig
+++ /dev/null
Binary files differ
diff --git a/bin/ldconfig b/bin/ldconfig
new file mode 120000
index 0000000..8500f1c
--- /dev/null
+++ b/bin/ldconfig
@@ -0,0 +1 @@
+../usr/bin/ldconfig
\ No newline at end of file
diff --git a/bin/ldd b/bin/ldd
deleted file mode 100755
index 0eafc3b..0000000
--- a/bin/ldd
+++ /dev/null
Binary files differ
diff --git a/bin/ldd b/bin/ldd
new file mode 120000
index 0000000..fb77ac3
--- /dev/null
+++ b/bin/ldd
@@ -0,0 +1 @@
+../usr/bin/ldd
\ No newline at end of file
diff --git a/bin/m4 b/bin/m4
deleted file mode 100755
index 9c0e8e0..0000000
--- a/bin/m4
+++ /dev/null
Binary files differ
diff --git a/bin/m4 b/bin/m4
new file mode 120000
index 0000000..c088940
--- /dev/null
+++ b/bin/m4
@@ -0,0 +1 @@
+../usr/bin/m4
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-addr2line b/bin/mipsel-buildroot-linux-uclibc-addr2line
deleted file mode 100755
index ffa253f..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-addr2line
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-addr2line b/bin/mipsel-buildroot-linux-uclibc-addr2line
new file mode 120000
index 0000000..6a14007
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-addr2line
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-addr2line
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-ar b/bin/mipsel-buildroot-linux-uclibc-ar
deleted file mode 100755
index b6ddb0d..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-ar
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-ar b/bin/mipsel-buildroot-linux-uclibc-ar
new file mode 120000
index 0000000..1e167cc
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-ar
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-ar
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-as b/bin/mipsel-buildroot-linux-uclibc-as
deleted file mode 100755
index 38cd18d..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-as
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-as b/bin/mipsel-buildroot-linux-uclibc-as
new file mode 120000
index 0000000..e019d0b
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-as
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-as
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-c++ b/bin/mipsel-buildroot-linux-uclibc-c++
deleted file mode 100755
index cfca1d6..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-c++
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-c++ b/bin/mipsel-buildroot-linux-uclibc-c++
new file mode 120000
index 0000000..18cd353
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-c++
@@ -0,0 +1 @@
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-c++filt b/bin/mipsel-buildroot-linux-uclibc-c++filt
deleted file mode 100755
index ddc4c20..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-c++filt
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-c++filt b/bin/mipsel-buildroot-linux-uclibc-c++filt
new file mode 120000
index 0000000..943e665
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-c++filt
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-c++filt
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-cc b/bin/mipsel-buildroot-linux-uclibc-cc
index b3fe76d..18cd353 120000
--- a/bin/mipsel-buildroot-linux-uclibc-cc
+++ b/bin/mipsel-buildroot-linux-uclibc-cc
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-gcc
\ No newline at end of file
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-cpp b/bin/mipsel-buildroot-linux-uclibc-cpp
deleted file mode 100755
index f548ebb..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-cpp
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-cpp b/bin/mipsel-buildroot-linux-uclibc-cpp
new file mode 120000
index 0000000..18cd353
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-cpp
@@ -0,0 +1 @@
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-dwp b/bin/mipsel-buildroot-linux-uclibc-dwp
deleted file mode 100755
index 15e72a9..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-dwp
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-dwp b/bin/mipsel-buildroot-linux-uclibc-dwp
new file mode 120000
index 0000000..dbed41b
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-dwp
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-dwp
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-elfedit b/bin/mipsel-buildroot-linux-uclibc-elfedit
deleted file mode 100755
index bb8c19f..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-elfedit
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-elfedit b/bin/mipsel-buildroot-linux-uclibc-elfedit
new file mode 120000
index 0000000..d639190
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-elfedit
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-elfedit
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-g++ b/bin/mipsel-buildroot-linux-uclibc-g++
deleted file mode 100755
index cfca1d6..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-g++
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-g++ b/bin/mipsel-buildroot-linux-uclibc-g++
new file mode 120000
index 0000000..18cd353
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-g++
@@ -0,0 +1 @@
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc b/bin/mipsel-buildroot-linux-uclibc-gcc
deleted file mode 100755
index 64a9b5e..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-gcc
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc b/bin/mipsel-buildroot-linux-uclibc-gcc
new file mode 120000
index 0000000..18cd353
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gcc
@@ -0,0 +1 @@
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-4.9.1 b/bin/mipsel-buildroot-linux-uclibc-gcc-4.9.1
deleted file mode 100755
index 64a9b5e..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-gcc-4.9.1
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-5.3.0 b/bin/mipsel-buildroot-linux-uclibc-gcc-5.3.0
new file mode 120000
index 0000000..18cd353
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gcc-5.3.0
@@ -0,0 +1 @@
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-ar b/bin/mipsel-buildroot-linux-uclibc-gcc-ar
deleted file mode 100755
index 37afddd..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-gcc-ar
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-ar b/bin/mipsel-buildroot-linux-uclibc-gcc-ar
new file mode 120000
index 0000000..9d3c465
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gcc-ar
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gcc-ar
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-nm b/bin/mipsel-buildroot-linux-uclibc-gcc-nm
deleted file mode 100755
index da6042c..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-gcc-nm
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-nm b/bin/mipsel-buildroot-linux-uclibc-gcc-nm
new file mode 120000
index 0000000..9bc0838
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gcc-nm
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gcc-nm
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-ranlib b/bin/mipsel-buildroot-linux-uclibc-gcc-ranlib
deleted file mode 100755
index 0f73d96..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-gcc-ranlib
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcc-ranlib b/bin/mipsel-buildroot-linux-uclibc-gcc-ranlib
new file mode 120000
index 0000000..028b4ce
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gcc-ranlib
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gcc-ranlib
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gccgo b/bin/mipsel-buildroot-linux-uclibc-gccgo
new file mode 120000
index 0000000..91aefd8
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gccgo
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gccgo
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcov b/bin/mipsel-buildroot-linux-uclibc-gcov
deleted file mode 100755
index a1f75d4..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-gcov
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcov b/bin/mipsel-buildroot-linux-uclibc-gcov
new file mode 120000
index 0000000..61dca6f
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gcov
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gcov
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gcov-tool b/bin/mipsel-buildroot-linux-uclibc-gcov-tool
new file mode 120000
index 0000000..3cccd5b
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gcov-tool
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gcov-tool
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-go b/bin/mipsel-buildroot-linux-uclibc-go
new file mode 120000
index 0000000..03dfa82
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-go
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-go
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gofmt b/bin/mipsel-buildroot-linux-uclibc-gofmt
new file mode 120000
index 0000000..1b7d81c
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gofmt
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gofmt
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-gprof b/bin/mipsel-buildroot-linux-uclibc-gprof
deleted file mode 100755
index cfb733f..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-gprof
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-gprof b/bin/mipsel-buildroot-linux-uclibc-gprof
new file mode 120000
index 0000000..e66d53b
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-gprof
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-gprof
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-ld b/bin/mipsel-buildroot-linux-uclibc-ld
deleted file mode 100755
index 2769a67..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-ld
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-ld b/bin/mipsel-buildroot-linux-uclibc-ld
new file mode 120000
index 0000000..7c6428c
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-ld
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-ld
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-ld.bfd b/bin/mipsel-buildroot-linux-uclibc-ld.bfd
deleted file mode 100755
index 2769a67..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-ld.bfd
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-ld.bfd b/bin/mipsel-buildroot-linux-uclibc-ld.bfd
new file mode 120000
index 0000000..4b6abf2
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-ld.bfd
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-ld.bfd
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-ld.gold b/bin/mipsel-buildroot-linux-uclibc-ld.gold
deleted file mode 100755
index b758a92..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-ld.gold
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-ld.gold b/bin/mipsel-buildroot-linux-uclibc-ld.gold
new file mode 120000
index 0000000..d3e45ee
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-ld.gold
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-ld.gold
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-ldconfig b/bin/mipsel-buildroot-linux-uclibc-ldconfig
index aea3041..f4e5fd2 120000
--- a/bin/mipsel-buildroot-linux-uclibc-ldconfig
+++ b/bin/mipsel-buildroot-linux-uclibc-ldconfig
@@ -1 +1 @@
-ldconfig
\ No newline at end of file
+../usr/bin/mipsel-buildroot-linux-uclibc-ldconfig
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-ldd b/bin/mipsel-buildroot-linux-uclibc-ldd
index 033f9e7..eac528f 120000
--- a/bin/mipsel-buildroot-linux-uclibc-ldd
+++ b/bin/mipsel-buildroot-linux-uclibc-ldd
@@ -1 +1 @@
-ldd
\ No newline at end of file
+../usr/bin/mipsel-buildroot-linux-uclibc-ldd
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-nm b/bin/mipsel-buildroot-linux-uclibc-nm
deleted file mode 100755
index 042f7f0..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-nm
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-nm b/bin/mipsel-buildroot-linux-uclibc-nm
new file mode 120000
index 0000000..114d988
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-nm
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-nm
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-objcopy b/bin/mipsel-buildroot-linux-uclibc-objcopy
deleted file mode 100755
index 3bdc8f6..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-objcopy
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-objcopy b/bin/mipsel-buildroot-linux-uclibc-objcopy
new file mode 120000
index 0000000..abbe3d6
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-objcopy
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-objcopy
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-objdump b/bin/mipsel-buildroot-linux-uclibc-objdump
deleted file mode 100755
index 9e616b2..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-objdump
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-objdump b/bin/mipsel-buildroot-linux-uclibc-objdump
new file mode 120000
index 0000000..8a10334
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-objdump
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-objdump
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-ranlib b/bin/mipsel-buildroot-linux-uclibc-ranlib
deleted file mode 100755
index e10835e..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-ranlib
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-ranlib b/bin/mipsel-buildroot-linux-uclibc-ranlib
new file mode 120000
index 0000000..dae4724
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-ranlib
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-ranlib
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-readelf b/bin/mipsel-buildroot-linux-uclibc-readelf
deleted file mode 100755
index a9b5b6b..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-readelf
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-readelf b/bin/mipsel-buildroot-linux-uclibc-readelf
new file mode 120000
index 0000000..fbb19b8
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-readelf
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-readelf
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-size b/bin/mipsel-buildroot-linux-uclibc-size
deleted file mode 100755
index d1f3438..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-size
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-size b/bin/mipsel-buildroot-linux-uclibc-size
new file mode 120000
index 0000000..e8a46e1
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-size
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-size
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-strings b/bin/mipsel-buildroot-linux-uclibc-strings
deleted file mode 100755
index 1de3ac7..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-strings
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-strings b/bin/mipsel-buildroot-linux-uclibc-strings
new file mode 120000
index 0000000..51bbf75
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-strings
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-strings
\ No newline at end of file
diff --git a/bin/mipsel-buildroot-linux-uclibc-strip b/bin/mipsel-buildroot-linux-uclibc-strip
deleted file mode 100755
index 361c974..0000000
--- a/bin/mipsel-buildroot-linux-uclibc-strip
+++ /dev/null
Binary files differ
diff --git a/bin/mipsel-buildroot-linux-uclibc-strip b/bin/mipsel-buildroot-linux-uclibc-strip
new file mode 120000
index 0000000..c225437
--- /dev/null
+++ b/bin/mipsel-buildroot-linux-uclibc-strip
@@ -0,0 +1 @@
+../usr/bin/mipsel-buildroot-linux-uclibc-strip
\ No newline at end of file
diff --git a/bin/mipsel-linux-addr2line b/bin/mipsel-linux-addr2line
index a5dbfb1..c075e21 120000
--- a/bin/mipsel-linux-addr2line
+++ b/bin/mipsel-linux-addr2line
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-addr2line
\ No newline at end of file
+../usr/bin/mipsel-linux-addr2line
\ No newline at end of file
diff --git a/bin/mipsel-linux-ar b/bin/mipsel-linux-ar
index 09a96fc..dd266c9 120000
--- a/bin/mipsel-linux-ar
+++ b/bin/mipsel-linux-ar
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-ar
\ No newline at end of file
+../usr/bin/mipsel-linux-ar
\ No newline at end of file
diff --git a/bin/mipsel-linux-as b/bin/mipsel-linux-as
index 325fc37..e081e31 120000
--- a/bin/mipsel-linux-as
+++ b/bin/mipsel-linux-as
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-as
\ No newline at end of file
+../usr/bin/mipsel-linux-as
\ No newline at end of file
diff --git a/bin/mipsel-linux-c++ b/bin/mipsel-linux-c++
index 3169f80..18cd353 120000
--- a/bin/mipsel-linux-c++
+++ b/bin/mipsel-linux-c++
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-c++
\ No newline at end of file
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-linux-c++filt b/bin/mipsel-linux-c++filt
index 09a1f76..086da70 120000
--- a/bin/mipsel-linux-c++filt
+++ b/bin/mipsel-linux-c++filt
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-c++filt
\ No newline at end of file
+../usr/bin/mipsel-linux-c++filt
\ No newline at end of file
diff --git a/bin/mipsel-linux-cc b/bin/mipsel-linux-cc
index fef186d..18cd353 120000
--- a/bin/mipsel-linux-cc
+++ b/bin/mipsel-linux-cc
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-cc
\ No newline at end of file
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-linux-cpp b/bin/mipsel-linux-cpp
index c35295e..18cd353 120000
--- a/bin/mipsel-linux-cpp
+++ b/bin/mipsel-linux-cpp
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-cpp
\ No newline at end of file
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-linux-dwp b/bin/mipsel-linux-dwp
index de02593..56425c0 120000
--- a/bin/mipsel-linux-dwp
+++ b/bin/mipsel-linux-dwp
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-dwp
\ No newline at end of file
+../usr/bin/mipsel-linux-dwp
\ No newline at end of file
diff --git a/bin/mipsel-linux-elfedit b/bin/mipsel-linux-elfedit
index 20c143f..241044f 120000
--- a/bin/mipsel-linux-elfedit
+++ b/bin/mipsel-linux-elfedit
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-elfedit
\ No newline at end of file
+../usr/bin/mipsel-linux-elfedit
\ No newline at end of file
diff --git a/bin/mipsel-linux-g++ b/bin/mipsel-linux-g++
index 8165555..18cd353 120000
--- a/bin/mipsel-linux-g++
+++ b/bin/mipsel-linux-g++
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-g++
\ No newline at end of file
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcc b/bin/mipsel-linux-gcc
index b3fe76d..18cd353 120000
--- a/bin/mipsel-linux-gcc
+++ b/bin/mipsel-linux-gcc
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-gcc
\ No newline at end of file
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcc-4.9.1 b/bin/mipsel-linux-gcc-4.9.1
deleted file mode 120000
index 29876eb..0000000
--- a/bin/mipsel-linux-gcc-4.9.1
+++ /dev/null
@@ -1 +0,0 @@
-mipsel-buildroot-linux-uclibc-gcc-4.9.1
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcc-5.3.0 b/bin/mipsel-linux-gcc-5.3.0
new file mode 120000
index 0000000..18cd353
--- /dev/null
+++ b/bin/mipsel-linux-gcc-5.3.0
@@ -0,0 +1 @@
+proxy
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcc-ar b/bin/mipsel-linux-gcc-ar
index 5e3affa..b973c7c 120000
--- a/bin/mipsel-linux-gcc-ar
+++ b/bin/mipsel-linux-gcc-ar
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-gcc-ar
\ No newline at end of file
+../usr/bin/mipsel-linux-gcc-ar
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcc-nm b/bin/mipsel-linux-gcc-nm
index 3e7be5c..4d8268c 120000
--- a/bin/mipsel-linux-gcc-nm
+++ b/bin/mipsel-linux-gcc-nm
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-gcc-nm
\ No newline at end of file
+../usr/bin/mipsel-linux-gcc-nm
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcc-ranlib b/bin/mipsel-linux-gcc-ranlib
index 41d77cd..b9408df 120000
--- a/bin/mipsel-linux-gcc-ranlib
+++ b/bin/mipsel-linux-gcc-ranlib
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-gcc-ranlib
\ No newline at end of file
+../usr/bin/mipsel-linux-gcc-ranlib
\ No newline at end of file
diff --git a/bin/mipsel-linux-gccgo b/bin/mipsel-linux-gccgo
new file mode 120000
index 0000000..25db2c0
--- /dev/null
+++ b/bin/mipsel-linux-gccgo
@@ -0,0 +1 @@
+../usr/bin/mipsel-linux-gccgo
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcov b/bin/mipsel-linux-gcov
index e5401fa..5df6c17 120000
--- a/bin/mipsel-linux-gcov
+++ b/bin/mipsel-linux-gcov
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-gcov
\ No newline at end of file
+../usr/bin/mipsel-linux-gcov
\ No newline at end of file
diff --git a/bin/mipsel-linux-gcov-tool b/bin/mipsel-linux-gcov-tool
new file mode 120000
index 0000000..2814a46
--- /dev/null
+++ b/bin/mipsel-linux-gcov-tool
@@ -0,0 +1 @@
+../usr/bin/mipsel-linux-gcov-tool
\ No newline at end of file
diff --git a/bin/mipsel-linux-go b/bin/mipsel-linux-go
new file mode 120000
index 0000000..c229140
--- /dev/null
+++ b/bin/mipsel-linux-go
@@ -0,0 +1 @@
+../usr/bin/mipsel-linux-go
\ No newline at end of file
diff --git a/bin/mipsel-linux-gofmt b/bin/mipsel-linux-gofmt
new file mode 120000
index 0000000..9722f83
--- /dev/null
+++ b/bin/mipsel-linux-gofmt
@@ -0,0 +1 @@
+../usr/bin/mipsel-linux-gofmt
\ No newline at end of file
diff --git a/bin/mipsel-linux-gprof b/bin/mipsel-linux-gprof
index c738e00..b7e1c24 120000
--- a/bin/mipsel-linux-gprof
+++ b/bin/mipsel-linux-gprof
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-gprof
\ No newline at end of file
+../usr/bin/mipsel-linux-gprof
\ No newline at end of file
diff --git a/bin/mipsel-linux-ld b/bin/mipsel-linux-ld
index feeaaf3..d7f3f2f 120000
--- a/bin/mipsel-linux-ld
+++ b/bin/mipsel-linux-ld
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-ld
\ No newline at end of file
+../usr/bin/mipsel-linux-ld
\ No newline at end of file
diff --git a/bin/mipsel-linux-ld.bfd b/bin/mipsel-linux-ld.bfd
index a7b97d7..d1bdee6 120000
--- a/bin/mipsel-linux-ld.bfd
+++ b/bin/mipsel-linux-ld.bfd
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-ld.bfd
\ No newline at end of file
+../usr/bin/mipsel-linux-ld.bfd
\ No newline at end of file
diff --git a/bin/mipsel-linux-ld.gold b/bin/mipsel-linux-ld.gold
index 5b2e722..26c80cf 120000
--- a/bin/mipsel-linux-ld.gold
+++ b/bin/mipsel-linux-ld.gold
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-ld.gold
\ No newline at end of file
+../usr/bin/mipsel-linux-ld.gold
\ No newline at end of file
diff --git a/bin/mipsel-linux-ldconfig b/bin/mipsel-linux-ldconfig
index 4674ee0..d881c9e 120000
--- a/bin/mipsel-linux-ldconfig
+++ b/bin/mipsel-linux-ldconfig
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-ldconfig
\ No newline at end of file
+../usr/bin/mipsel-linux-ldconfig
\ No newline at end of file
diff --git a/bin/mipsel-linux-ldd b/bin/mipsel-linux-ldd
index 79b0ec7..a2fea2d 120000
--- a/bin/mipsel-linux-ldd
+++ b/bin/mipsel-linux-ldd
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-ldd
\ No newline at end of file
+../usr/bin/mipsel-linux-ldd
\ No newline at end of file
diff --git a/bin/mipsel-linux-nm b/bin/mipsel-linux-nm
index cc13288..e898755 120000
--- a/bin/mipsel-linux-nm
+++ b/bin/mipsel-linux-nm
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-nm
\ No newline at end of file
+../usr/bin/mipsel-linux-nm
\ No newline at end of file
diff --git a/bin/mipsel-linux-objcopy b/bin/mipsel-linux-objcopy
index c2cb624..a4ad7d8 120000
--- a/bin/mipsel-linux-objcopy
+++ b/bin/mipsel-linux-objcopy
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-objcopy
\ No newline at end of file
+../usr/bin/mipsel-linux-objcopy
\ No newline at end of file
diff --git a/bin/mipsel-linux-objdump b/bin/mipsel-linux-objdump
index 32a99ad..2acb4d1 120000
--- a/bin/mipsel-linux-objdump
+++ b/bin/mipsel-linux-objdump
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-objdump
\ No newline at end of file
+../usr/bin/mipsel-linux-objdump
\ No newline at end of file
diff --git a/bin/mipsel-linux-ranlib b/bin/mipsel-linux-ranlib
index 21bfcf7..672fb4d 120000
--- a/bin/mipsel-linux-ranlib
+++ b/bin/mipsel-linux-ranlib
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-ranlib
\ No newline at end of file
+../usr/bin/mipsel-linux-ranlib
\ No newline at end of file
diff --git a/bin/mipsel-linux-readelf b/bin/mipsel-linux-readelf
index 3787188..dd690f5 120000
--- a/bin/mipsel-linux-readelf
+++ b/bin/mipsel-linux-readelf
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-readelf
\ No newline at end of file
+../usr/bin/mipsel-linux-readelf
\ No newline at end of file
diff --git a/bin/mipsel-linux-size b/bin/mipsel-linux-size
index 19e9f1d..fe91255 120000
--- a/bin/mipsel-linux-size
+++ b/bin/mipsel-linux-size
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-size
\ No newline at end of file
+../usr/bin/mipsel-linux-size
\ No newline at end of file
diff --git a/bin/mipsel-linux-strings b/bin/mipsel-linux-strings
index 37ea47e..ebfeb9d 120000
--- a/bin/mipsel-linux-strings
+++ b/bin/mipsel-linux-strings
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-strings
\ No newline at end of file
+../usr/bin/mipsel-linux-strings
\ No newline at end of file
diff --git a/bin/mipsel-linux-strip b/bin/mipsel-linux-strip
index bfad82d..1f10c9c 120000
--- a/bin/mipsel-linux-strip
+++ b/bin/mipsel-linux-strip
@@ -1 +1 @@
-mipsel-buildroot-linux-uclibc-strip
\ No newline at end of file
+../usr/bin/mipsel-linux-strip
\ No newline at end of file
diff --git a/bin/proxy b/bin/proxy
new file mode 100755
index 0000000..acadc4c
--- /dev/null
+++ b/bin/proxy
@@ -0,0 +1,6 @@
+#!/bin/bash
+
+bin=$(basename "$0")
+dir=$(realpath -s $(dirname $(realpath "$0"))/../usr/bin)
+echo cd "$(pwd)" "&&" "$0" -D_GLIBCXX_USE_CXX11_ABI=0 "$@" >> /tmp/commands
+$dir/$bin -D_GLIBCXX_USE_CXX11_ABI=0 "$@"
diff --git a/include/gmp.h b/include/gmp.h
deleted file mode 100644
index dd5b3f0..0000000
--- a/include/gmp.h
+++ /dev/null
@@ -1,2301 +0,0 @@
-/* Definitions for GNU multiple precision functions.   -*- mode: c -*-
-
-Copyright 1991, 1993-1997, 1999-2014 Free Software Foundation, Inc.
-
-This file is part of the GNU MP Library.
-
-The GNU MP Library is free software; you can redistribute it and/or modify
-it under the terms of either:
-
-  * the GNU Lesser General Public License as published by the Free
-    Software Foundation; either version 3 of the License, or (at your
-    option) any later version.
-
-or
-
-  * the GNU General Public License as published by the Free Software
-    Foundation; either version 2 of the License, or (at your option) any
-    later version.
-
-or both in parallel, as here.
-
-The GNU MP Library 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 copies of the GNU General Public License and the
-GNU Lesser General Public License along with the GNU MP Library.  If not,
-see https://www.gnu.org/licenses/.  */
-
-#ifndef __GMP_H__
-
-#if defined (__cplusplus)
-#include <iosfwd>   /* for std::istream, std::ostream, std::string */
-#include <cstdio>
-#endif
-
-
-/* Instantiated by configure. */
-#if ! defined (__GMP_WITHIN_CONFIGURE)
-#define __GMP_HAVE_HOST_CPU_FAMILY_power   0
-#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0
-#define GMP_LIMB_BITS                      64
-#define GMP_NAIL_BITS                      0
-#endif
-#define GMP_NUMB_BITS     (GMP_LIMB_BITS - GMP_NAIL_BITS)
-#define GMP_NUMB_MASK     ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS)
-#define GMP_NUMB_MAX      GMP_NUMB_MASK
-#define GMP_NAIL_MASK     (~ GMP_NUMB_MASK)
-
-
-/* The following (everything under ifndef __GNU_MP__) must be identical in
-   gmp.h and mp.h to allow both to be included in an application or during
-   the library build.  */
-#ifndef __GNU_MP__
-#define __GNU_MP__ 5
-
-#include <stddef.h>    /* for size_t */
-
-/* Instantiated by configure. */
-#if ! defined (__GMP_WITHIN_CONFIGURE)
-/* #undef _LONG_LONG_LIMB */
-#define __GMP_LIBGMP_DLL  0
-#endif
-
-
-/* __GMP_DECLSPEC supports Windows DLL versions of libgmp, and is empty in
-   all other circumstances.
-
-   When compiling objects for libgmp, __GMP_DECLSPEC is an export directive,
-   or when compiling for an application it's an import directive.  The two
-   cases are differentiated by __GMP_WITHIN_GMP defined by the GMP Makefiles
-   (and not defined from an application).
-
-   __GMP_DECLSPEC_XX is similarly used for libgmpxx.  __GMP_WITHIN_GMPXX
-   indicates when building libgmpxx, and in that case libgmpxx functions are
-   exports, but libgmp functions which might get called are imports.
-
-   Libtool DLL_EXPORT define is not used.
-
-   There's no attempt to support GMP built both static and DLL.  Doing so
-   would mean applications would have to tell us which of the two is going
-   to be used when linking, and that seems very tedious and error prone if
-   using GMP by hand, and equally tedious from a package since autoconf and
-   automake don't give much help.
-
-   __GMP_DECLSPEC is required on all documented global functions and
-   variables, the various internals in gmp-impl.h etc can be left unadorned.
-   But internals used by the test programs or speed measuring programs
-   should have __GMP_DECLSPEC, and certainly constants or variables must
-   have it or the wrong address will be resolved.
-
-   In gcc __declspec can go at either the start or end of a prototype.
-
-   In Microsoft C __declspec must go at the start, or after the type like
-   void __declspec(...) *foo()".  There's no __dllexport or anything to
-   guard against someone foolish #defining dllexport.  _export used to be
-   available, but no longer.
-
-   In Borland C _export still exists, but needs to go after the type, like
-   "void _export foo();".  Would have to change the __GMP_DECLSPEC syntax to
-   make use of that.  Probably more trouble than it's worth.  */
-
-#if defined (__GNUC__)
-#define __GMP_DECLSPEC_EXPORT  __declspec(__dllexport__)
-#define __GMP_DECLSPEC_IMPORT  __declspec(__dllimport__)
-#endif
-#if defined (_MSC_VER) || defined (__BORLANDC__)
-#define __GMP_DECLSPEC_EXPORT  __declspec(dllexport)
-#define __GMP_DECLSPEC_IMPORT  __declspec(dllimport)
-#endif
-#ifdef __WATCOMC__
-#define __GMP_DECLSPEC_EXPORT  __export
-#define __GMP_DECLSPEC_IMPORT  __import
-#endif
-#ifdef __IBMC__
-#define __GMP_DECLSPEC_EXPORT  _Export
-#define __GMP_DECLSPEC_IMPORT  _Import
-#endif
-
-#if __GMP_LIBGMP_DLL
-#ifdef __GMP_WITHIN_GMP
-/* compiling to go into a DLL libgmp */
-#define __GMP_DECLSPEC  __GMP_DECLSPEC_EXPORT
-#else
-/* compiling to go into an application which will link to a DLL libgmp */
-#define __GMP_DECLSPEC  __GMP_DECLSPEC_IMPORT
-#endif
-#else
-/* all other cases */
-#define __GMP_DECLSPEC
-#endif
-
-
-#ifdef __GMP_SHORT_LIMB
-typedef unsigned int		mp_limb_t;
-typedef int			mp_limb_signed_t;
-#else
-#ifdef _LONG_LONG_LIMB
-typedef unsigned long long int	mp_limb_t;
-typedef long long int		mp_limb_signed_t;
-#else
-typedef unsigned long int	mp_limb_t;
-typedef long int		mp_limb_signed_t;
-#endif
-#endif
-typedef unsigned long int	mp_bitcnt_t;
-
-/* For reference, note that the name __mpz_struct gets into C++ mangled
-   function names, which means although the "__" suggests an internal, we
-   must leave this name for binary compatibility.  */
-typedef struct
-{
-  int _mp_alloc;		/* Number of *limbs* allocated and pointed
-				   to by the _mp_d field.  */
-  int _mp_size;			/* abs(_mp_size) is the number of limbs the
-				   last field points to.  If _mp_size is
-				   negative this is a negative number.  */
-  mp_limb_t *_mp_d;		/* Pointer to the limbs.  */
-} __mpz_struct;
-
-#endif /* __GNU_MP__ */
-
-
-typedef __mpz_struct MP_INT;    /* gmp 1 source compatibility */
-typedef __mpz_struct mpz_t[1];
-
-typedef mp_limb_t *		mp_ptr;
-typedef const mp_limb_t *	mp_srcptr;
-#if defined (_CRAY) && ! defined (_CRAYMPP)
-/* plain `int' is much faster (48 bits) */
-#define __GMP_MP_SIZE_T_INT     1
-typedef int			mp_size_t;
-typedef int			mp_exp_t;
-#else
-#define __GMP_MP_SIZE_T_INT     0
-typedef long int		mp_size_t;
-typedef long int		mp_exp_t;
-#endif
-
-typedef struct
-{
-  __mpz_struct _mp_num;
-  __mpz_struct _mp_den;
-} __mpq_struct;
-
-typedef __mpq_struct MP_RAT;    /* gmp 1 source compatibility */
-typedef __mpq_struct mpq_t[1];
-
-typedef struct
-{
-  int _mp_prec;			/* Max precision, in number of `mp_limb_t's.
-				   Set by mpf_init and modified by
-				   mpf_set_prec.  The area pointed to by the
-				   _mp_d field contains `prec' + 1 limbs.  */
-  int _mp_size;			/* abs(_mp_size) is the number of limbs the
-				   last field points to.  If _mp_size is
-				   negative this is a negative number.  */
-  mp_exp_t _mp_exp;		/* Exponent, in the base of `mp_limb_t'.  */
-  mp_limb_t *_mp_d;		/* Pointer to the limbs.  */
-} __mpf_struct;
-
-/* typedef __mpf_struct MP_FLOAT; */
-typedef __mpf_struct mpf_t[1];
-
-/* Available random number generation algorithms.  */
-typedef enum
-{
-  GMP_RAND_ALG_DEFAULT = 0,
-  GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT /* Linear congruential.  */
-} gmp_randalg_t;
-
-/* Random state struct.  */
-typedef struct
-{
-  mpz_t _mp_seed;	  /* _mp_d member points to state of the generator. */
-  gmp_randalg_t _mp_alg;  /* Currently unused. */
-  union {
-    void *_mp_lc;         /* Pointer to function pointers structure.  */
-  } _mp_algdata;
-} __gmp_randstate_struct;
-typedef __gmp_randstate_struct gmp_randstate_t[1];
-
-/* Types for function declarations in gmp files.  */
-/* ??? Should not pollute user name space with these ??? */
-typedef const __mpz_struct *mpz_srcptr;
-typedef __mpz_struct *mpz_ptr;
-typedef const __mpf_struct *mpf_srcptr;
-typedef __mpf_struct *mpf_ptr;
-typedef const __mpq_struct *mpq_srcptr;
-typedef __mpq_struct *mpq_ptr;
-
-
-/* This is not wanted in mp.h, so put it outside the __GNU_MP__ common
-   section. */
-#if __GMP_LIBGMP_DLL
-#ifdef __GMP_WITHIN_GMPXX
-/* compiling to go into a DLL libgmpxx */
-#define __GMP_DECLSPEC_XX  __GMP_DECLSPEC_EXPORT
-#else
-/* compiling to go into a application which will link to a DLL libgmpxx */
-#define __GMP_DECLSPEC_XX  __GMP_DECLSPEC_IMPORT
-#endif
-#else
-/* all other cases */
-#define __GMP_DECLSPEC_XX
-#endif
-
-
-#ifndef __MPN
-#define __MPN(x) __gmpn_##x
-#endif
-
-/* For reference, "defined(EOF)" cannot be used here.  In g++ 2.95.4,
-   <iostream> defines EOF but not FILE.  */
-#if defined (FILE)                                              \
-  || defined (H_STDIO)                                          \
-  || defined (_H_STDIO)               /* AIX */                 \
-  || defined (_STDIO_H)               /* glibc, Sun, SCO */     \
-  || defined (_STDIO_H_)              /* BSD, OSF */            \
-  || defined (__STDIO_H)              /* Borland */             \
-  || defined (__STDIO_H__)            /* IRIX */                \
-  || defined (_STDIO_INCLUDED)        /* HPUX */                \
-  || defined (__dj_include_stdio_h_)  /* DJGPP */               \
-  || defined (_FILE_DEFINED)          /* Microsoft */           \
-  || defined (__STDIO__)              /* Apple MPW MrC */       \
-  || defined (_MSL_STDIO_H)           /* Metrowerks */          \
-  || defined (_STDIO_H_INCLUDED)      /* QNX4 */		\
-  || defined (_ISO_STDIO_ISO_H)       /* Sun C++ */		\
-  || defined (__STDIO_LOADED)         /* VMS */
-#define _GMP_H_HAVE_FILE 1
-#endif
-
-/* In ISO C, if a prototype involving "struct obstack *" is given without
-   that structure defined, then the struct is scoped down to just the
-   prototype, causing a conflict if it's subsequently defined for real.  So
-   only give prototypes if we've got obstack.h.  */
-#if defined (_OBSTACK_H)   /* glibc <obstack.h> */
-#define _GMP_H_HAVE_OBSTACK 1
-#endif
-
-/* The prototypes for gmp_vprintf etc are provided only if va_list is defined,
-   via an application having included <stdarg.h>.  Usually va_list is a typedef
-   so can't be tested directly, but C99 specifies that va_start is a macro.
-
-   <stdio.h> will define some sort of va_list for vprintf and vfprintf, but
-   let's not bother trying to use that since it's not standard and since
-   application uses for gmp_vprintf etc will almost certainly require the
-   whole <stdarg.h> anyway.  */
-
-#ifdef va_start
-#define _GMP_H_HAVE_VA_LIST 1
-#endif
-
-/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */
-#if defined (__GNUC__) && defined (__GNUC_MINOR__)
-#define __GMP_GNUC_PREREQ(maj, min) \
-  ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-#else
-#define __GMP_GNUC_PREREQ(maj, min)  0
-#endif
-
-/* "pure" is in gcc 2.96 and up, see "(gcc)Function Attributes".  Basically
-   it means a function does nothing but examine its arguments and memory
-   (global or via arguments) to generate a return value, but changes nothing
-   and has no side-effects.  __GMP_NO_ATTRIBUTE_CONST_PURE lets
-   tune/common.c etc turn this off when trying to write timing loops.  */
-#if __GMP_GNUC_PREREQ (2,96) && ! defined (__GMP_NO_ATTRIBUTE_CONST_PURE)
-#define __GMP_ATTRIBUTE_PURE   __attribute__ ((__pure__))
-#else
-#define __GMP_ATTRIBUTE_PURE
-#endif
-
-
-/* __GMP_CAST allows us to use static_cast in C++, so our macros are clean
-   to "g++ -Wold-style-cast".
-
-   Casts in "extern inline" code within an extern "C" block don't induce
-   these warnings, so __GMP_CAST only needs to be used on documented
-   macros.  */
-
-#ifdef __cplusplus
-#define __GMP_CAST(type, expr)  (static_cast<type> (expr))
-#else
-#define __GMP_CAST(type, expr)  ((type) (expr))
-#endif
-
-
-/* An empty "throw ()" means the function doesn't throw any C++ exceptions,
-   this can save some stack frame info in applications.
-
-   Currently it's given only on functions which never divide-by-zero etc,
-   don't allocate memory, and are expected to never need to allocate memory.
-   This leaves open the possibility of a C++ throw from a future GMP
-   exceptions scheme.
-
-   mpz_set_ui etc are omitted to leave open the lazy allocation scheme
-   described in doc/tasks.html.  mpz_get_d etc are omitted to leave open
-   exceptions for float overflows.
-
-   Note that __GMP_NOTHROW must be given on any inlines the same as on their
-   prototypes (for g++ at least, where they're used together).  Note also
-   that g++ 3.0 demands that __GMP_NOTHROW is before other attributes like
-   __GMP_ATTRIBUTE_PURE.  */
-
-#if defined (__cplusplus)
-#define __GMP_NOTHROW  throw ()
-#else
-#define __GMP_NOTHROW
-#endif
-
-
-/* PORTME: What other compilers have a useful "extern inline"?  "static
-   inline" would be an acceptable substitute if the compiler (or linker)
-   discards unused statics.  */
-
- /* gcc has __inline__ in all modes, including strict ansi.  Give a prototype
-    for an inline too, so as to correctly specify "dllimport" on windows, in
-    case the function is called rather than inlined.
-    GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
-    inline semantics, unless -fgnu89-inline is used.  */
-#ifdef __GNUC__
-#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) \
-  || (defined __GNUC_GNU_INLINE__ && defined __cplusplus)
-#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__))
-#else
-#define __GMP_EXTERN_INLINE      extern __inline__
-#endif
-#define __GMP_INLINE_PROTOTYPES  1
-#endif
-
-/* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1
-   strict ANSI mode.  Inlining is done even when not optimizing (ie. -O0
-   mode, which is the default), but an unnecessary local copy of foo is
-   emitted unless -O is used.  "extern __inline" is accepted, but the
-   "extern" appears to be ignored, ie. it becomes a plain global function
-   but which is inlined within its file.  Don't know if all old versions of
-   DEC C supported __inline, but as a start let's do the right thing for
-   current versions.  */
-#ifdef __DECC
-#define __GMP_EXTERN_INLINE  static __inline
-#endif
-
-/* SCO OpenUNIX 8 cc supports "static inline foo()" but not in -Xc strict
-   ANSI mode (__STDC__ is 1 in that mode).  Inlining only actually takes
-   place under -O.  Without -O "foo" seems to be emitted whether it's used
-   or not, which is wasteful.  "extern inline foo()" isn't useful, the
-   "extern" is apparently ignored, so foo is inlined if possible but also
-   emitted as a global, which causes multiple definition errors when
-   building a shared libgmp.  */
-#ifdef __SCO_VERSION__
-#if __SCO_VERSION__ > 400000000 && __STDC__ != 1 \
-  && ! defined (__GMP_EXTERN_INLINE)
-#define __GMP_EXTERN_INLINE  static inline
-#endif
-#endif
-
-/* Microsoft's C compiler accepts __inline */
-#ifdef _MSC_VER
-#define __GMP_EXTERN_INLINE  __inline
-#endif
-
-/* Recent enough Sun C compilers want "inline" */
-#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x560 \
-  && ! defined (__GMP_EXTERN_INLINE)
-#define __GMP_EXTERN_INLINE  inline
-#endif
-
-/* Somewhat older Sun C compilers want "static inline" */
-#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x540 \
-  && ! defined (__GMP_EXTERN_INLINE)
-#define __GMP_EXTERN_INLINE  static inline
-#endif
-
-
-/* C++ always has "inline" and since it's a normal feature the linker should
-   discard duplicate non-inlined copies, or if it doesn't then that's a
-   problem for everyone, not just GMP.  */
-#if defined (__cplusplus) && ! defined (__GMP_EXTERN_INLINE)
-#define __GMP_EXTERN_INLINE  inline
-#endif
-
-/* Don't do any inlining within a configure run, since if the compiler ends
-   up emitting copies of the code into the object file it can end up
-   demanding the various support routines (like mpn_popcount) for linking,
-   making the "alloca" test and perhaps others fail.  And on hppa ia64 a
-   pre-release gcc 3.2 was seen not respecting the "extern" in "extern
-   __inline__", triggering this problem too.  */
-#if defined (__GMP_WITHIN_CONFIGURE) && ! __GMP_WITHIN_CONFIGURE_INLINE
-#undef __GMP_EXTERN_INLINE
-#endif
-
-/* By default, don't give a prototype when there's going to be an inline
-   version.  Note in particular that Cray C++ objects to the combination of
-   prototype and inline.  */
-#ifdef __GMP_EXTERN_INLINE
-#ifndef __GMP_INLINE_PROTOTYPES
-#define __GMP_INLINE_PROTOTYPES  0
-#endif
-#else
-#define __GMP_INLINE_PROTOTYPES  1
-#endif
-
-
-#define __GMP_ABS(x)   ((x) >= 0 ? (x) : -(x))
-#define __GMP_MAX(h,i) ((h) > (i) ? (h) : (i))
-
-/* __GMP_USHRT_MAX is not "~ (unsigned short) 0" because short is promoted
-   to int by "~". It still needs to have the promoted type.  */
-#define __GMP_UINT_MAX   (~ (unsigned) 0)
-#define __GMP_ULONG_MAX  (~ (unsigned long) 0)
-#define __GMP_USHRT_MAX  (0 + (unsigned short) ~0)
-
-
-/* __builtin_expect is in gcc 3.0, and not in 2.95. */
-#if __GMP_GNUC_PREREQ (3,0)
-#define __GMP_LIKELY(cond)    __builtin_expect ((cond) != 0, 1)
-#define __GMP_UNLIKELY(cond)  __builtin_expect ((cond) != 0, 0)
-#else
-#define __GMP_LIKELY(cond)    (cond)
-#define __GMP_UNLIKELY(cond)  (cond)
-#endif
-
-#ifdef _CRAY
-#define __GMP_CRAY_Pragma(str)  _Pragma (str)
-#else
-#define __GMP_CRAY_Pragma(str)
-#endif
-
-
-/* Allow direct user access to numerator and denominator of a mpq_t object.  */
-#define mpq_numref(Q) (&((Q)->_mp_num))
-#define mpq_denref(Q) (&((Q)->_mp_den))
-
-
-#if defined (__cplusplus)
-extern "C" {
-using std::FILE;
-#endif
-
-#define mp_set_memory_functions __gmp_set_memory_functions
-__GMP_DECLSPEC void mp_set_memory_functions (void *(*) (size_t),
-				      void *(*) (void *, size_t, size_t),
-				      void (*) (void *, size_t)) __GMP_NOTHROW;
-
-#define mp_get_memory_functions __gmp_get_memory_functions
-__GMP_DECLSPEC void mp_get_memory_functions (void *(**) (size_t),
-				      void *(**) (void *, size_t, size_t),
-				      void (**) (void *, size_t)) __GMP_NOTHROW;
-
-#define mp_bits_per_limb __gmp_bits_per_limb
-__GMP_DECLSPEC extern const int mp_bits_per_limb;
-
-#define gmp_errno __gmp_errno
-__GMP_DECLSPEC extern int gmp_errno;
-
-#define gmp_version __gmp_version
-__GMP_DECLSPEC extern const char * const gmp_version;
-
-
-/**************** Random number routines.  ****************/
-
-/* obsolete */
-#define gmp_randinit __gmp_randinit
-__GMP_DECLSPEC void gmp_randinit (gmp_randstate_t, gmp_randalg_t, ...);
-
-#define gmp_randinit_default __gmp_randinit_default
-__GMP_DECLSPEC void gmp_randinit_default (gmp_randstate_t);
-
-#define gmp_randinit_lc_2exp __gmp_randinit_lc_2exp
-__GMP_DECLSPEC void gmp_randinit_lc_2exp (gmp_randstate_t, mpz_srcptr, unsigned long int, mp_bitcnt_t);
-
-#define gmp_randinit_lc_2exp_size __gmp_randinit_lc_2exp_size
-__GMP_DECLSPEC int gmp_randinit_lc_2exp_size (gmp_randstate_t, mp_bitcnt_t);
-
-#define gmp_randinit_mt __gmp_randinit_mt
-__GMP_DECLSPEC void gmp_randinit_mt (gmp_randstate_t);
-
-#define gmp_randinit_set __gmp_randinit_set
-__GMP_DECLSPEC void gmp_randinit_set (gmp_randstate_t, const __gmp_randstate_struct *);
-
-#define gmp_randseed __gmp_randseed
-__GMP_DECLSPEC void gmp_randseed (gmp_randstate_t, mpz_srcptr);
-
-#define gmp_randseed_ui __gmp_randseed_ui
-__GMP_DECLSPEC void gmp_randseed_ui (gmp_randstate_t, unsigned long int);
-
-#define gmp_randclear __gmp_randclear
-__GMP_DECLSPEC void gmp_randclear (gmp_randstate_t);
-
-#define gmp_urandomb_ui __gmp_urandomb_ui
-__GMP_DECLSPEC unsigned long gmp_urandomb_ui (gmp_randstate_t, unsigned long);
-
-#define gmp_urandomm_ui __gmp_urandomm_ui
-__GMP_DECLSPEC unsigned long gmp_urandomm_ui (gmp_randstate_t, unsigned long);
-
-
-/**************** Formatted output routines.  ****************/
-
-#define gmp_asprintf __gmp_asprintf
-__GMP_DECLSPEC int gmp_asprintf (char **, const char *, ...);
-
-#define gmp_fprintf __gmp_fprintf
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC int gmp_fprintf (FILE *, const char *, ...);
-#endif
-
-#define gmp_obstack_printf __gmp_obstack_printf
-#if defined (_GMP_H_HAVE_OBSTACK)
-__GMP_DECLSPEC int gmp_obstack_printf (struct obstack *, const char *, ...);
-#endif
-
-#define gmp_obstack_vprintf __gmp_obstack_vprintf
-#if defined (_GMP_H_HAVE_OBSTACK) && defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_obstack_vprintf (struct obstack *, const char *, va_list);
-#endif
-
-#define gmp_printf __gmp_printf
-__GMP_DECLSPEC int gmp_printf (const char *, ...);
-
-#define gmp_snprintf __gmp_snprintf
-__GMP_DECLSPEC int gmp_snprintf (char *, size_t, const char *, ...);
-
-#define gmp_sprintf __gmp_sprintf
-__GMP_DECLSPEC int gmp_sprintf (char *, const char *, ...);
-
-#define gmp_vasprintf __gmp_vasprintf
-#if defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vasprintf (char **, const char *, va_list);
-#endif
-
-#define gmp_vfprintf __gmp_vfprintf
-#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vfprintf (FILE *, const char *, va_list);
-#endif
-
-#define gmp_vprintf __gmp_vprintf
-#if defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vprintf (const char *, va_list);
-#endif
-
-#define gmp_vsnprintf __gmp_vsnprintf
-#if defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vsnprintf (char *, size_t, const char *, va_list);
-#endif
-
-#define gmp_vsprintf __gmp_vsprintf
-#if defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vsprintf (char *, const char *, va_list);
-#endif
-
-
-/**************** Formatted input routines.  ****************/
-
-#define gmp_fscanf __gmp_fscanf
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC int gmp_fscanf (FILE *, const char *, ...);
-#endif
-
-#define gmp_scanf __gmp_scanf
-__GMP_DECLSPEC int gmp_scanf (const char *, ...);
-
-#define gmp_sscanf __gmp_sscanf
-__GMP_DECLSPEC int gmp_sscanf (const char *, const char *, ...);
-
-#define gmp_vfscanf __gmp_vfscanf
-#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vfscanf (FILE *, const char *, va_list);
-#endif
-
-#define gmp_vscanf __gmp_vscanf
-#if defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vscanf (const char *, va_list);
-#endif
-
-#define gmp_vsscanf __gmp_vsscanf
-#if defined (_GMP_H_HAVE_VA_LIST)
-__GMP_DECLSPEC int gmp_vsscanf (const char *, const char *, va_list);
-#endif
-
-
-/**************** Integer (i.e. Z) routines.  ****************/
-
-#define _mpz_realloc __gmpz_realloc
-#define mpz_realloc __gmpz_realloc
-__GMP_DECLSPEC void *_mpz_realloc (mpz_ptr, mp_size_t);
-
-#define mpz_abs __gmpz_abs
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_abs)
-__GMP_DECLSPEC void mpz_abs (mpz_ptr, mpz_srcptr);
-#endif
-
-#define mpz_add __gmpz_add
-__GMP_DECLSPEC void mpz_add (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_add_ui __gmpz_add_ui
-__GMP_DECLSPEC void mpz_add_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_addmul __gmpz_addmul
-__GMP_DECLSPEC void mpz_addmul (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_addmul_ui __gmpz_addmul_ui
-__GMP_DECLSPEC void mpz_addmul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_and __gmpz_and
-__GMP_DECLSPEC void mpz_and (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_array_init __gmpz_array_init
-__GMP_DECLSPEC void mpz_array_init (mpz_ptr, mp_size_t, mp_size_t);
-
-#define mpz_bin_ui __gmpz_bin_ui
-__GMP_DECLSPEC void mpz_bin_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_bin_uiui __gmpz_bin_uiui
-__GMP_DECLSPEC void mpz_bin_uiui (mpz_ptr, unsigned long int, unsigned long int);
-
-#define mpz_cdiv_q __gmpz_cdiv_q
-__GMP_DECLSPEC void mpz_cdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_cdiv_q_2exp __gmpz_cdiv_q_2exp
-__GMP_DECLSPEC void mpz_cdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t);
-
-#define mpz_cdiv_q_ui __gmpz_cdiv_q_ui
-__GMP_DECLSPEC unsigned long int mpz_cdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_cdiv_qr __gmpz_cdiv_qr
-__GMP_DECLSPEC void mpz_cdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_cdiv_qr_ui __gmpz_cdiv_qr_ui
-__GMP_DECLSPEC unsigned long int mpz_cdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_cdiv_r __gmpz_cdiv_r
-__GMP_DECLSPEC void mpz_cdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_cdiv_r_2exp __gmpz_cdiv_r_2exp
-__GMP_DECLSPEC void mpz_cdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t);
-
-#define mpz_cdiv_r_ui __gmpz_cdiv_r_ui
-__GMP_DECLSPEC unsigned long int mpz_cdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_cdiv_ui __gmpz_cdiv_ui
-__GMP_DECLSPEC unsigned long int mpz_cdiv_ui (mpz_srcptr, unsigned long int) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_clear __gmpz_clear
-__GMP_DECLSPEC void mpz_clear (mpz_ptr);
-
-#define mpz_clears __gmpz_clears
-__GMP_DECLSPEC void mpz_clears (mpz_ptr, ...);
-
-#define mpz_clrbit __gmpz_clrbit
-__GMP_DECLSPEC void mpz_clrbit (mpz_ptr, mp_bitcnt_t);
-
-#define mpz_cmp __gmpz_cmp
-__GMP_DECLSPEC int mpz_cmp (mpz_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_cmp_d __gmpz_cmp_d
-__GMP_DECLSPEC int mpz_cmp_d (mpz_srcptr, double) __GMP_ATTRIBUTE_PURE;
-
-#define _mpz_cmp_si __gmpz_cmp_si
-__GMP_DECLSPEC int _mpz_cmp_si (mpz_srcptr, signed long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define _mpz_cmp_ui __gmpz_cmp_ui
-__GMP_DECLSPEC int _mpz_cmp_ui (mpz_srcptr, unsigned long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_cmpabs __gmpz_cmpabs
-__GMP_DECLSPEC int mpz_cmpabs (mpz_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_cmpabs_d __gmpz_cmpabs_d
-__GMP_DECLSPEC int mpz_cmpabs_d (mpz_srcptr, double) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_cmpabs_ui __gmpz_cmpabs_ui
-__GMP_DECLSPEC int mpz_cmpabs_ui (mpz_srcptr, unsigned long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_com __gmpz_com
-__GMP_DECLSPEC void mpz_com (mpz_ptr, mpz_srcptr);
-
-#define mpz_combit __gmpz_combit
-__GMP_DECLSPEC void mpz_combit (mpz_ptr, mp_bitcnt_t);
-
-#define mpz_congruent_p __gmpz_congruent_p
-__GMP_DECLSPEC int mpz_congruent_p (mpz_srcptr, mpz_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_congruent_2exp_p __gmpz_congruent_2exp_p
-__GMP_DECLSPEC int mpz_congruent_2exp_p (mpz_srcptr, mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_congruent_ui_p __gmpz_congruent_ui_p
-__GMP_DECLSPEC int mpz_congruent_ui_p (mpz_srcptr, unsigned long, unsigned long) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_divexact __gmpz_divexact
-__GMP_DECLSPEC void mpz_divexact (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_divexact_ui __gmpz_divexact_ui
-__GMP_DECLSPEC void mpz_divexact_ui (mpz_ptr, mpz_srcptr, unsigned long);
-
-#define mpz_divisible_p __gmpz_divisible_p
-__GMP_DECLSPEC int mpz_divisible_p (mpz_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_divisible_ui_p __gmpz_divisible_ui_p
-__GMP_DECLSPEC int mpz_divisible_ui_p (mpz_srcptr, unsigned long) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_divisible_2exp_p __gmpz_divisible_2exp_p
-__GMP_DECLSPEC int mpz_divisible_2exp_p (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_dump __gmpz_dump
-__GMP_DECLSPEC void mpz_dump (mpz_srcptr);
-
-#define mpz_export __gmpz_export
-__GMP_DECLSPEC void *mpz_export (void *, size_t *, int, size_t, int, size_t, mpz_srcptr);
-
-#define mpz_fac_ui __gmpz_fac_ui
-__GMP_DECLSPEC void mpz_fac_ui (mpz_ptr, unsigned long int);
-
-#define mpz_2fac_ui __gmpz_2fac_ui
-__GMP_DECLSPEC void mpz_2fac_ui (mpz_ptr, unsigned long int);
-
-#define mpz_mfac_uiui __gmpz_mfac_uiui
-__GMP_DECLSPEC void mpz_mfac_uiui (mpz_ptr, unsigned long int, unsigned long int);
-
-#define mpz_primorial_ui __gmpz_primorial_ui
-__GMP_DECLSPEC void mpz_primorial_ui (mpz_ptr, unsigned long int);
-
-#define mpz_fdiv_q __gmpz_fdiv_q
-__GMP_DECLSPEC void mpz_fdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_fdiv_q_2exp __gmpz_fdiv_q_2exp
-__GMP_DECLSPEC void mpz_fdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t);
-
-#define mpz_fdiv_q_ui __gmpz_fdiv_q_ui
-__GMP_DECLSPEC unsigned long int mpz_fdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_fdiv_qr __gmpz_fdiv_qr
-__GMP_DECLSPEC void mpz_fdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_fdiv_qr_ui __gmpz_fdiv_qr_ui
-__GMP_DECLSPEC unsigned long int mpz_fdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_fdiv_r __gmpz_fdiv_r
-__GMP_DECLSPEC void mpz_fdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_fdiv_r_2exp __gmpz_fdiv_r_2exp
-__GMP_DECLSPEC void mpz_fdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t);
-
-#define mpz_fdiv_r_ui __gmpz_fdiv_r_ui
-__GMP_DECLSPEC unsigned long int mpz_fdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_fdiv_ui __gmpz_fdiv_ui
-__GMP_DECLSPEC unsigned long int mpz_fdiv_ui (mpz_srcptr, unsigned long int) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_fib_ui __gmpz_fib_ui
-__GMP_DECLSPEC void mpz_fib_ui (mpz_ptr, unsigned long int);
-
-#define mpz_fib2_ui __gmpz_fib2_ui
-__GMP_DECLSPEC void mpz_fib2_ui (mpz_ptr, mpz_ptr, unsigned long int);
-
-#define mpz_fits_sint_p __gmpz_fits_sint_p
-__GMP_DECLSPEC int mpz_fits_sint_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_fits_slong_p __gmpz_fits_slong_p
-__GMP_DECLSPEC int mpz_fits_slong_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_fits_sshort_p __gmpz_fits_sshort_p
-__GMP_DECLSPEC int mpz_fits_sshort_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_fits_uint_p __gmpz_fits_uint_p
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_uint_p)
-__GMP_DECLSPEC int mpz_fits_uint_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_fits_ulong_p __gmpz_fits_ulong_p
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ulong_p)
-__GMP_DECLSPEC int mpz_fits_ulong_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_fits_ushort_p __gmpz_fits_ushort_p
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ushort_p)
-__GMP_DECLSPEC int mpz_fits_ushort_p (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_gcd __gmpz_gcd
-__GMP_DECLSPEC void mpz_gcd (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_gcd_ui __gmpz_gcd_ui
-__GMP_DECLSPEC unsigned long int mpz_gcd_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_gcdext __gmpz_gcdext
-__GMP_DECLSPEC void mpz_gcdext (mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_get_d __gmpz_get_d
-__GMP_DECLSPEC double mpz_get_d (mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_get_d_2exp __gmpz_get_d_2exp
-__GMP_DECLSPEC double mpz_get_d_2exp (signed long int *, mpz_srcptr);
-
-#define mpz_get_si __gmpz_get_si
-__GMP_DECLSPEC /* signed */ long int mpz_get_si (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_get_str __gmpz_get_str
-__GMP_DECLSPEC char *mpz_get_str (char *, int, mpz_srcptr);
-
-#define mpz_get_ui __gmpz_get_ui
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_get_ui)
-__GMP_DECLSPEC unsigned long int mpz_get_ui (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_getlimbn __gmpz_getlimbn
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_getlimbn)
-__GMP_DECLSPEC mp_limb_t mpz_getlimbn (mpz_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_hamdist __gmpz_hamdist
-__GMP_DECLSPEC mp_bitcnt_t mpz_hamdist (mpz_srcptr, mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_import __gmpz_import
-__GMP_DECLSPEC void mpz_import (mpz_ptr, size_t, int, size_t, int, size_t, const void *);
-
-#define mpz_init __gmpz_init
-__GMP_DECLSPEC void mpz_init (mpz_ptr);
-
-#define mpz_init2 __gmpz_init2
-__GMP_DECLSPEC void mpz_init2 (mpz_ptr, mp_bitcnt_t);
-
-#define mpz_inits __gmpz_inits
-__GMP_DECLSPEC void mpz_inits (mpz_ptr, ...);
-
-#define mpz_init_set __gmpz_init_set
-__GMP_DECLSPEC void mpz_init_set (mpz_ptr, mpz_srcptr);
-
-#define mpz_init_set_d __gmpz_init_set_d
-__GMP_DECLSPEC void mpz_init_set_d (mpz_ptr, double);
-
-#define mpz_init_set_si __gmpz_init_set_si
-__GMP_DECLSPEC void mpz_init_set_si (mpz_ptr, signed long int);
-
-#define mpz_init_set_str __gmpz_init_set_str
-__GMP_DECLSPEC int mpz_init_set_str (mpz_ptr, const char *, int);
-
-#define mpz_init_set_ui __gmpz_init_set_ui
-__GMP_DECLSPEC void mpz_init_set_ui (mpz_ptr, unsigned long int);
-
-#define mpz_inp_raw __gmpz_inp_raw
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpz_inp_raw (mpz_ptr, FILE *);
-#endif
-
-#define mpz_inp_str __gmpz_inp_str
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpz_inp_str (mpz_ptr, FILE *, int);
-#endif
-
-#define mpz_invert __gmpz_invert
-__GMP_DECLSPEC int mpz_invert (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_ior __gmpz_ior
-__GMP_DECLSPEC void mpz_ior (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_jacobi __gmpz_jacobi
-__GMP_DECLSPEC int mpz_jacobi (mpz_srcptr, mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_kronecker mpz_jacobi  /* alias */
-
-#define mpz_kronecker_si __gmpz_kronecker_si
-__GMP_DECLSPEC int mpz_kronecker_si (mpz_srcptr, long) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_kronecker_ui __gmpz_kronecker_ui
-__GMP_DECLSPEC int mpz_kronecker_ui (mpz_srcptr, unsigned long) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_si_kronecker __gmpz_si_kronecker
-__GMP_DECLSPEC int mpz_si_kronecker (long, mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_ui_kronecker __gmpz_ui_kronecker
-__GMP_DECLSPEC int mpz_ui_kronecker (unsigned long, mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_lcm __gmpz_lcm
-__GMP_DECLSPEC void mpz_lcm (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_lcm_ui __gmpz_lcm_ui
-__GMP_DECLSPEC void mpz_lcm_ui (mpz_ptr, mpz_srcptr, unsigned long);
-
-#define mpz_legendre mpz_jacobi  /* alias */
-
-#define mpz_lucnum_ui __gmpz_lucnum_ui
-__GMP_DECLSPEC void mpz_lucnum_ui (mpz_ptr, unsigned long int);
-
-#define mpz_lucnum2_ui __gmpz_lucnum2_ui
-__GMP_DECLSPEC void mpz_lucnum2_ui (mpz_ptr, mpz_ptr, unsigned long int);
-
-#define mpz_millerrabin __gmpz_millerrabin
-__GMP_DECLSPEC int mpz_millerrabin (mpz_srcptr, int) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_mod __gmpz_mod
-__GMP_DECLSPEC void mpz_mod (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_mod_ui mpz_fdiv_r_ui /* same as fdiv_r because divisor unsigned */
-
-#define mpz_mul __gmpz_mul
-__GMP_DECLSPEC void mpz_mul (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_mul_2exp __gmpz_mul_2exp
-__GMP_DECLSPEC void mpz_mul_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t);
-
-#define mpz_mul_si __gmpz_mul_si
-__GMP_DECLSPEC void mpz_mul_si (mpz_ptr, mpz_srcptr, long int);
-
-#define mpz_mul_ui __gmpz_mul_ui
-__GMP_DECLSPEC void mpz_mul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_neg __gmpz_neg
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_neg)
-__GMP_DECLSPEC void mpz_neg (mpz_ptr, mpz_srcptr);
-#endif
-
-#define mpz_nextprime __gmpz_nextprime
-__GMP_DECLSPEC void mpz_nextprime (mpz_ptr, mpz_srcptr);
-
-#define mpz_out_raw __gmpz_out_raw
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpz_out_raw (FILE *, mpz_srcptr);
-#endif
-
-#define mpz_out_str __gmpz_out_str
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpz_out_str (FILE *, int, mpz_srcptr);
-#endif
-
-#define mpz_perfect_power_p __gmpz_perfect_power_p
-__GMP_DECLSPEC int mpz_perfect_power_p (mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_perfect_square_p __gmpz_perfect_square_p
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_perfect_square_p)
-__GMP_DECLSPEC int mpz_perfect_square_p (mpz_srcptr) __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_popcount __gmpz_popcount
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_popcount)
-__GMP_DECLSPEC mp_bitcnt_t mpz_popcount (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_pow_ui __gmpz_pow_ui
-__GMP_DECLSPEC void mpz_pow_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_powm __gmpz_powm
-__GMP_DECLSPEC void mpz_powm (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_powm_sec __gmpz_powm_sec
-__GMP_DECLSPEC void mpz_powm_sec (mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_powm_ui __gmpz_powm_ui
-__GMP_DECLSPEC void mpz_powm_ui (mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr);
-
-#define mpz_probab_prime_p __gmpz_probab_prime_p
-__GMP_DECLSPEC int mpz_probab_prime_p (mpz_srcptr, int) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_random __gmpz_random
-__GMP_DECLSPEC void mpz_random (mpz_ptr, mp_size_t);
-
-#define mpz_random2 __gmpz_random2
-__GMP_DECLSPEC void mpz_random2 (mpz_ptr, mp_size_t);
-
-#define mpz_realloc2 __gmpz_realloc2
-__GMP_DECLSPEC void mpz_realloc2 (mpz_ptr, mp_bitcnt_t);
-
-#define mpz_remove __gmpz_remove
-__GMP_DECLSPEC mp_bitcnt_t mpz_remove (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_root __gmpz_root
-__GMP_DECLSPEC int mpz_root (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_rootrem __gmpz_rootrem
-__GMP_DECLSPEC void mpz_rootrem (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_rrandomb __gmpz_rrandomb
-__GMP_DECLSPEC void mpz_rrandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t);
-
-#define mpz_scan0 __gmpz_scan0
-__GMP_DECLSPEC mp_bitcnt_t mpz_scan0 (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_scan1 __gmpz_scan1
-__GMP_DECLSPEC mp_bitcnt_t mpz_scan1 (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_set __gmpz_set
-__GMP_DECLSPEC void mpz_set (mpz_ptr, mpz_srcptr);
-
-#define mpz_set_d __gmpz_set_d
-__GMP_DECLSPEC void mpz_set_d (mpz_ptr, double);
-
-#define mpz_set_f __gmpz_set_f
-__GMP_DECLSPEC void mpz_set_f (mpz_ptr, mpf_srcptr);
-
-#define mpz_set_q __gmpz_set_q
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_set_q)
-__GMP_DECLSPEC void mpz_set_q (mpz_ptr, mpq_srcptr);
-#endif
-
-#define mpz_set_si __gmpz_set_si
-__GMP_DECLSPEC void mpz_set_si (mpz_ptr, signed long int);
-
-#define mpz_set_str __gmpz_set_str
-__GMP_DECLSPEC int mpz_set_str (mpz_ptr, const char *, int);
-
-#define mpz_set_ui __gmpz_set_ui
-__GMP_DECLSPEC void mpz_set_ui (mpz_ptr, unsigned long int);
-
-#define mpz_setbit __gmpz_setbit
-__GMP_DECLSPEC void mpz_setbit (mpz_ptr, mp_bitcnt_t);
-
-#define mpz_size __gmpz_size
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_size)
-__GMP_DECLSPEC size_t mpz_size (mpz_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpz_sizeinbase __gmpz_sizeinbase
-__GMP_DECLSPEC size_t mpz_sizeinbase (mpz_srcptr, int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_sqrt __gmpz_sqrt
-__GMP_DECLSPEC void mpz_sqrt (mpz_ptr, mpz_srcptr);
-
-#define mpz_sqrtrem __gmpz_sqrtrem
-__GMP_DECLSPEC void mpz_sqrtrem (mpz_ptr, mpz_ptr, mpz_srcptr);
-
-#define mpz_sub __gmpz_sub
-__GMP_DECLSPEC void mpz_sub (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_sub_ui __gmpz_sub_ui
-__GMP_DECLSPEC void mpz_sub_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_ui_sub __gmpz_ui_sub
-__GMP_DECLSPEC void mpz_ui_sub (mpz_ptr, unsigned long int, mpz_srcptr);
-
-#define mpz_submul __gmpz_submul
-__GMP_DECLSPEC void mpz_submul (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_submul_ui __gmpz_submul_ui
-__GMP_DECLSPEC void mpz_submul_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_swap __gmpz_swap
-__GMP_DECLSPEC void mpz_swap (mpz_ptr, mpz_ptr) __GMP_NOTHROW;
-
-#define mpz_tdiv_ui __gmpz_tdiv_ui
-__GMP_DECLSPEC unsigned long int mpz_tdiv_ui (mpz_srcptr, unsigned long int) __GMP_ATTRIBUTE_PURE;
-
-#define mpz_tdiv_q __gmpz_tdiv_q
-__GMP_DECLSPEC void mpz_tdiv_q (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_tdiv_q_2exp __gmpz_tdiv_q_2exp
-__GMP_DECLSPEC void mpz_tdiv_q_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t);
-
-#define mpz_tdiv_q_ui __gmpz_tdiv_q_ui
-__GMP_DECLSPEC unsigned long int mpz_tdiv_q_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_tdiv_qr __gmpz_tdiv_qr
-__GMP_DECLSPEC void mpz_tdiv_qr (mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_tdiv_qr_ui __gmpz_tdiv_qr_ui
-__GMP_DECLSPEC unsigned long int mpz_tdiv_qr_ui (mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_tdiv_r __gmpz_tdiv_r
-__GMP_DECLSPEC void mpz_tdiv_r (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_tdiv_r_2exp __gmpz_tdiv_r_2exp
-__GMP_DECLSPEC void mpz_tdiv_r_2exp (mpz_ptr, mpz_srcptr, mp_bitcnt_t);
-
-#define mpz_tdiv_r_ui __gmpz_tdiv_r_ui
-__GMP_DECLSPEC unsigned long int mpz_tdiv_r_ui (mpz_ptr, mpz_srcptr, unsigned long int);
-
-#define mpz_tstbit __gmpz_tstbit
-__GMP_DECLSPEC int mpz_tstbit (mpz_srcptr, mp_bitcnt_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpz_ui_pow_ui __gmpz_ui_pow_ui
-__GMP_DECLSPEC void mpz_ui_pow_ui (mpz_ptr, unsigned long int, unsigned long int);
-
-#define mpz_urandomb __gmpz_urandomb
-__GMP_DECLSPEC void mpz_urandomb (mpz_ptr, gmp_randstate_t, mp_bitcnt_t);
-
-#define mpz_urandomm __gmpz_urandomm
-__GMP_DECLSPEC void mpz_urandomm (mpz_ptr, gmp_randstate_t, mpz_srcptr);
-
-#define mpz_xor __gmpz_xor
-#define mpz_eor __gmpz_xor
-__GMP_DECLSPEC void mpz_xor (mpz_ptr, mpz_srcptr, mpz_srcptr);
-
-#define mpz_limbs_read __gmpz_limbs_read
-__GMP_DECLSPEC mp_srcptr mpz_limbs_read (mpz_srcptr);
-
-#define mpz_limbs_write __gmpz_limbs_write
-__GMP_DECLSPEC mp_ptr mpz_limbs_write (mpz_ptr, mp_size_t);
-
-#define mpz_limbs_modify __gmpz_limbs_modify
-__GMP_DECLSPEC mp_ptr mpz_limbs_modify (mpz_ptr, mp_size_t);
-
-#define mpz_limbs_finish __gmpz_limbs_finish
-__GMP_DECLSPEC void mpz_limbs_finish (mpz_ptr, mp_size_t);
-
-#define mpz_roinit_n __gmpz_roinit_n
-__GMP_DECLSPEC mpz_srcptr mpz_roinit_n (mpz_ptr, mp_srcptr, mp_size_t);
-
-#define MPZ_ROINIT_N(xp, xs) {{0, (xs),(xp) }}
-
-/**************** Rational (i.e. Q) routines.  ****************/
-
-#define mpq_abs __gmpq_abs
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_abs)
-__GMP_DECLSPEC void mpq_abs (mpq_ptr, mpq_srcptr);
-#endif
-
-#define mpq_add __gmpq_add
-__GMP_DECLSPEC void mpq_add (mpq_ptr, mpq_srcptr, mpq_srcptr);
-
-#define mpq_canonicalize __gmpq_canonicalize
-__GMP_DECLSPEC void mpq_canonicalize (mpq_ptr);
-
-#define mpq_clear __gmpq_clear
-__GMP_DECLSPEC void mpq_clear (mpq_ptr);
-
-#define mpq_clears __gmpq_clears
-__GMP_DECLSPEC void mpq_clears (mpq_ptr, ...);
-
-#define mpq_cmp __gmpq_cmp
-__GMP_DECLSPEC int mpq_cmp (mpq_srcptr, mpq_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define _mpq_cmp_si __gmpq_cmp_si
-__GMP_DECLSPEC int _mpq_cmp_si (mpq_srcptr, long, unsigned long) __GMP_ATTRIBUTE_PURE;
-
-#define _mpq_cmp_ui __gmpq_cmp_ui
-__GMP_DECLSPEC int _mpq_cmp_ui (mpq_srcptr, unsigned long int, unsigned long int) __GMP_ATTRIBUTE_PURE;
-
-#define mpq_div __gmpq_div
-__GMP_DECLSPEC void mpq_div (mpq_ptr, mpq_srcptr, mpq_srcptr);
-
-#define mpq_div_2exp __gmpq_div_2exp
-__GMP_DECLSPEC void mpq_div_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t);
-
-#define mpq_equal __gmpq_equal
-__GMP_DECLSPEC int mpq_equal (mpq_srcptr, mpq_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpq_get_num __gmpq_get_num
-__GMP_DECLSPEC void mpq_get_num (mpz_ptr, mpq_srcptr);
-
-#define mpq_get_den __gmpq_get_den
-__GMP_DECLSPEC void mpq_get_den (mpz_ptr, mpq_srcptr);
-
-#define mpq_get_d __gmpq_get_d
-__GMP_DECLSPEC double mpq_get_d (mpq_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpq_get_str __gmpq_get_str
-__GMP_DECLSPEC char *mpq_get_str (char *, int, mpq_srcptr);
-
-#define mpq_init __gmpq_init
-__GMP_DECLSPEC void mpq_init (mpq_ptr);
-
-#define mpq_inits __gmpq_inits
-__GMP_DECLSPEC void mpq_inits (mpq_ptr, ...);
-
-#define mpq_inp_str __gmpq_inp_str
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpq_inp_str (mpq_ptr, FILE *, int);
-#endif
-
-#define mpq_inv __gmpq_inv
-__GMP_DECLSPEC void mpq_inv (mpq_ptr, mpq_srcptr);
-
-#define mpq_mul __gmpq_mul
-__GMP_DECLSPEC void mpq_mul (mpq_ptr, mpq_srcptr, mpq_srcptr);
-
-#define mpq_mul_2exp __gmpq_mul_2exp
-__GMP_DECLSPEC void mpq_mul_2exp (mpq_ptr, mpq_srcptr, mp_bitcnt_t);
-
-#define mpq_neg __gmpq_neg
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_neg)
-__GMP_DECLSPEC void mpq_neg (mpq_ptr, mpq_srcptr);
-#endif
-
-#define mpq_out_str __gmpq_out_str
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpq_out_str (FILE *, int, mpq_srcptr);
-#endif
-
-#define mpq_set __gmpq_set
-__GMP_DECLSPEC void mpq_set (mpq_ptr, mpq_srcptr);
-
-#define mpq_set_d __gmpq_set_d
-__GMP_DECLSPEC void mpq_set_d (mpq_ptr, double);
-
-#define mpq_set_den __gmpq_set_den
-__GMP_DECLSPEC void mpq_set_den (mpq_ptr, mpz_srcptr);
-
-#define mpq_set_f __gmpq_set_f
-__GMP_DECLSPEC void mpq_set_f (mpq_ptr, mpf_srcptr);
-
-#define mpq_set_num __gmpq_set_num
-__GMP_DECLSPEC void mpq_set_num (mpq_ptr, mpz_srcptr);
-
-#define mpq_set_si __gmpq_set_si
-__GMP_DECLSPEC void mpq_set_si (mpq_ptr, signed long int, unsigned long int);
-
-#define mpq_set_str __gmpq_set_str
-__GMP_DECLSPEC int mpq_set_str (mpq_ptr, const char *, int);
-
-#define mpq_set_ui __gmpq_set_ui
-__GMP_DECLSPEC void mpq_set_ui (mpq_ptr, unsigned long int, unsigned long int);
-
-#define mpq_set_z __gmpq_set_z
-__GMP_DECLSPEC void mpq_set_z (mpq_ptr, mpz_srcptr);
-
-#define mpq_sub __gmpq_sub
-__GMP_DECLSPEC void mpq_sub (mpq_ptr, mpq_srcptr, mpq_srcptr);
-
-#define mpq_swap __gmpq_swap
-__GMP_DECLSPEC void mpq_swap (mpq_ptr, mpq_ptr) __GMP_NOTHROW;
-
-
-/**************** Float (i.e. F) routines.  ****************/
-
-#define mpf_abs __gmpf_abs
-__GMP_DECLSPEC void mpf_abs (mpf_ptr, mpf_srcptr);
-
-#define mpf_add __gmpf_add
-__GMP_DECLSPEC void mpf_add (mpf_ptr, mpf_srcptr, mpf_srcptr);
-
-#define mpf_add_ui __gmpf_add_ui
-__GMP_DECLSPEC void mpf_add_ui (mpf_ptr, mpf_srcptr, unsigned long int);
-#define mpf_ceil __gmpf_ceil
-__GMP_DECLSPEC void mpf_ceil (mpf_ptr, mpf_srcptr);
-
-#define mpf_clear __gmpf_clear
-__GMP_DECLSPEC void mpf_clear (mpf_ptr);
-
-#define mpf_clears __gmpf_clears
-__GMP_DECLSPEC void mpf_clears (mpf_ptr, ...);
-
-#define mpf_cmp __gmpf_cmp
-__GMP_DECLSPEC int mpf_cmp (mpf_srcptr, mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_cmp_d __gmpf_cmp_d
-__GMP_DECLSPEC int mpf_cmp_d (mpf_srcptr, double) __GMP_ATTRIBUTE_PURE;
-
-#define mpf_cmp_si __gmpf_cmp_si
-__GMP_DECLSPEC int mpf_cmp_si (mpf_srcptr, signed long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_cmp_ui __gmpf_cmp_ui
-__GMP_DECLSPEC int mpf_cmp_ui (mpf_srcptr, unsigned long int) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_div __gmpf_div
-__GMP_DECLSPEC void mpf_div (mpf_ptr, mpf_srcptr, mpf_srcptr);
-
-#define mpf_div_2exp __gmpf_div_2exp
-__GMP_DECLSPEC void mpf_div_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t);
-
-#define mpf_div_ui __gmpf_div_ui
-__GMP_DECLSPEC void mpf_div_ui (mpf_ptr, mpf_srcptr, unsigned long int);
-
-#define mpf_dump __gmpf_dump
-__GMP_DECLSPEC void mpf_dump (mpf_srcptr);
-
-#define mpf_eq __gmpf_eq
-__GMP_DECLSPEC int mpf_eq (mpf_srcptr, mpf_srcptr, mp_bitcnt_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpf_fits_sint_p __gmpf_fits_sint_p
-__GMP_DECLSPEC int mpf_fits_sint_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_fits_slong_p __gmpf_fits_slong_p
-__GMP_DECLSPEC int mpf_fits_slong_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_fits_sshort_p __gmpf_fits_sshort_p
-__GMP_DECLSPEC int mpf_fits_sshort_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_fits_uint_p __gmpf_fits_uint_p
-__GMP_DECLSPEC int mpf_fits_uint_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_fits_ulong_p __gmpf_fits_ulong_p
-__GMP_DECLSPEC int mpf_fits_ulong_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_fits_ushort_p __gmpf_fits_ushort_p
-__GMP_DECLSPEC int mpf_fits_ushort_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_floor __gmpf_floor
-__GMP_DECLSPEC void mpf_floor (mpf_ptr, mpf_srcptr);
-
-#define mpf_get_d __gmpf_get_d
-__GMP_DECLSPEC double mpf_get_d (mpf_srcptr) __GMP_ATTRIBUTE_PURE;
-
-#define mpf_get_d_2exp __gmpf_get_d_2exp
-__GMP_DECLSPEC double mpf_get_d_2exp (signed long int *, mpf_srcptr);
-
-#define mpf_get_default_prec __gmpf_get_default_prec
-__GMP_DECLSPEC mp_bitcnt_t mpf_get_default_prec (void) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_get_prec __gmpf_get_prec
-__GMP_DECLSPEC mp_bitcnt_t mpf_get_prec (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_get_si __gmpf_get_si
-__GMP_DECLSPEC long mpf_get_si (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_get_str __gmpf_get_str
-__GMP_DECLSPEC char *mpf_get_str (char *, mp_exp_t *, int, size_t, mpf_srcptr);
-
-#define mpf_get_ui __gmpf_get_ui
-__GMP_DECLSPEC unsigned long mpf_get_ui (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_init __gmpf_init
-__GMP_DECLSPEC void mpf_init (mpf_ptr);
-
-#define mpf_init2 __gmpf_init2
-__GMP_DECLSPEC void mpf_init2 (mpf_ptr, mp_bitcnt_t);
-
-#define mpf_inits __gmpf_inits
-__GMP_DECLSPEC void mpf_inits (mpf_ptr, ...);
-
-#define mpf_init_set __gmpf_init_set
-__GMP_DECLSPEC void mpf_init_set (mpf_ptr, mpf_srcptr);
-
-#define mpf_init_set_d __gmpf_init_set_d
-__GMP_DECLSPEC void mpf_init_set_d (mpf_ptr, double);
-
-#define mpf_init_set_si __gmpf_init_set_si
-__GMP_DECLSPEC void mpf_init_set_si (mpf_ptr, signed long int);
-
-#define mpf_init_set_str __gmpf_init_set_str
-__GMP_DECLSPEC int mpf_init_set_str (mpf_ptr, const char *, int);
-
-#define mpf_init_set_ui __gmpf_init_set_ui
-__GMP_DECLSPEC void mpf_init_set_ui (mpf_ptr, unsigned long int);
-
-#define mpf_inp_str __gmpf_inp_str
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpf_inp_str (mpf_ptr, FILE *, int);
-#endif
-
-#define mpf_integer_p __gmpf_integer_p
-__GMP_DECLSPEC int mpf_integer_p (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_mul __gmpf_mul
-__GMP_DECLSPEC void mpf_mul (mpf_ptr, mpf_srcptr, mpf_srcptr);
-
-#define mpf_mul_2exp __gmpf_mul_2exp
-__GMP_DECLSPEC void mpf_mul_2exp (mpf_ptr, mpf_srcptr, mp_bitcnt_t);
-
-#define mpf_mul_ui __gmpf_mul_ui
-__GMP_DECLSPEC void mpf_mul_ui (mpf_ptr, mpf_srcptr, unsigned long int);
-
-#define mpf_neg __gmpf_neg
-__GMP_DECLSPEC void mpf_neg (mpf_ptr, mpf_srcptr);
-
-#define mpf_out_str __gmpf_out_str
-#ifdef _GMP_H_HAVE_FILE
-__GMP_DECLSPEC size_t mpf_out_str (FILE *, int, size_t, mpf_srcptr);
-#endif
-
-#define mpf_pow_ui __gmpf_pow_ui
-__GMP_DECLSPEC void mpf_pow_ui (mpf_ptr, mpf_srcptr, unsigned long int);
-
-#define mpf_random2 __gmpf_random2
-__GMP_DECLSPEC void mpf_random2 (mpf_ptr, mp_size_t, mp_exp_t);
-
-#define mpf_reldiff __gmpf_reldiff
-__GMP_DECLSPEC void mpf_reldiff (mpf_ptr, mpf_srcptr, mpf_srcptr);
-
-#define mpf_set __gmpf_set
-__GMP_DECLSPEC void mpf_set (mpf_ptr, mpf_srcptr);
-
-#define mpf_set_d __gmpf_set_d
-__GMP_DECLSPEC void mpf_set_d (mpf_ptr, double);
-
-#define mpf_set_default_prec __gmpf_set_default_prec
-__GMP_DECLSPEC void mpf_set_default_prec (mp_bitcnt_t) __GMP_NOTHROW;
-
-#define mpf_set_prec __gmpf_set_prec
-__GMP_DECLSPEC void mpf_set_prec (mpf_ptr, mp_bitcnt_t);
-
-#define mpf_set_prec_raw __gmpf_set_prec_raw
-__GMP_DECLSPEC void mpf_set_prec_raw (mpf_ptr, mp_bitcnt_t) __GMP_NOTHROW;
-
-#define mpf_set_q __gmpf_set_q
-__GMP_DECLSPEC void mpf_set_q (mpf_ptr, mpq_srcptr);
-
-#define mpf_set_si __gmpf_set_si
-__GMP_DECLSPEC void mpf_set_si (mpf_ptr, signed long int);
-
-#define mpf_set_str __gmpf_set_str
-__GMP_DECLSPEC int mpf_set_str (mpf_ptr, const char *, int);
-
-#define mpf_set_ui __gmpf_set_ui
-__GMP_DECLSPEC void mpf_set_ui (mpf_ptr, unsigned long int);
-
-#define mpf_set_z __gmpf_set_z
-__GMP_DECLSPEC void mpf_set_z (mpf_ptr, mpz_srcptr);
-
-#define mpf_size __gmpf_size
-__GMP_DECLSPEC size_t mpf_size (mpf_srcptr) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpf_sqrt __gmpf_sqrt
-__GMP_DECLSPEC void mpf_sqrt (mpf_ptr, mpf_srcptr);
-
-#define mpf_sqrt_ui __gmpf_sqrt_ui
-__GMP_DECLSPEC void mpf_sqrt_ui (mpf_ptr, unsigned long int);
-
-#define mpf_sub __gmpf_sub
-__GMP_DECLSPEC void mpf_sub (mpf_ptr, mpf_srcptr, mpf_srcptr);
-
-#define mpf_sub_ui __gmpf_sub_ui
-__GMP_DECLSPEC void mpf_sub_ui (mpf_ptr, mpf_srcptr, unsigned long int);
-
-#define mpf_swap __gmpf_swap
-__GMP_DECLSPEC void mpf_swap (mpf_ptr, mpf_ptr) __GMP_NOTHROW;
-
-#define mpf_trunc __gmpf_trunc
-__GMP_DECLSPEC void mpf_trunc (mpf_ptr, mpf_srcptr);
-
-#define mpf_ui_div __gmpf_ui_div
-__GMP_DECLSPEC void mpf_ui_div (mpf_ptr, unsigned long int, mpf_srcptr);
-
-#define mpf_ui_sub __gmpf_ui_sub
-__GMP_DECLSPEC void mpf_ui_sub (mpf_ptr, unsigned long int, mpf_srcptr);
-
-#define mpf_urandomb __gmpf_urandomb
-__GMP_DECLSPEC void mpf_urandomb (mpf_t, gmp_randstate_t, mp_bitcnt_t);
-
-
-/************ Low level positive-integer (i.e. N) routines.  ************/
-
-/* This is ugly, but we need to make user calls reach the prefixed function. */
-
-#define mpn_add __MPN(add)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add)
-__GMP_DECLSPEC mp_limb_t mpn_add (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
-#endif
-
-#define mpn_add_1 __MPN(add_1)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add_1)
-__GMP_DECLSPEC mp_limb_t mpn_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) __GMP_NOTHROW;
-#endif
-
-#define mpn_add_n __MPN(add_n)
-__GMP_DECLSPEC mp_limb_t mpn_add_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-
-#define mpn_addmul_1 __MPN(addmul_1)
-__GMP_DECLSPEC mp_limb_t mpn_addmul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
-
-#define mpn_cmp __MPN(cmp)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_cmp)
-__GMP_DECLSPEC int mpn_cmp (mp_srcptr, mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-#endif
-
-#define mpn_divexact_by3(dst,src,size) \
-  mpn_divexact_by3c (dst, src, size, __GMP_CAST (mp_limb_t, 0))
-
-#define mpn_divexact_by3c __MPN(divexact_by3c)
-__GMP_DECLSPEC mp_limb_t mpn_divexact_by3c (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
-
-#define mpn_divmod_1(qp,np,nsize,dlimb) \
-  mpn_divrem_1 (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dlimb)
-
-#define mpn_divrem __MPN(divrem)
-__GMP_DECLSPEC mp_limb_t mpn_divrem (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t);
-
-#define mpn_divrem_1 __MPN(divrem_1)
-__GMP_DECLSPEC mp_limb_t mpn_divrem_1 (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t);
-
-#define mpn_divrem_2 __MPN(divrem_2)
-__GMP_DECLSPEC mp_limb_t mpn_divrem_2 (mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr);
-
-#define mpn_div_qr_1 __MPN(div_qr_1)
-__GMP_DECLSPEC mp_limb_t mpn_div_qr_1 (mp_ptr, mp_limb_t *, mp_srcptr, mp_size_t, mp_limb_t);
-
-#define mpn_div_qr_2 __MPN(div_qr_2)
-__GMP_DECLSPEC mp_limb_t mpn_div_qr_2 (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_srcptr);
-
-#define mpn_gcd __MPN(gcd)
-__GMP_DECLSPEC mp_size_t mpn_gcd (mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t);
-
-#define mpn_gcd_1 __MPN(gcd_1)
-__GMP_DECLSPEC mp_limb_t mpn_gcd_1 (mp_srcptr, mp_size_t, mp_limb_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_gcdext_1 __MPN(gcdext_1)
-__GMP_DECLSPEC mp_limb_t mpn_gcdext_1 (mp_limb_signed_t *, mp_limb_signed_t *, mp_limb_t, mp_limb_t);
-
-#define mpn_gcdext __MPN(gcdext)
-__GMP_DECLSPEC mp_size_t mpn_gcdext (mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t);
-
-#define mpn_get_str __MPN(get_str)
-__GMP_DECLSPEC size_t mpn_get_str (unsigned char *, int, mp_ptr, mp_size_t);
-
-#define mpn_hamdist __MPN(hamdist)
-__GMP_DECLSPEC mp_bitcnt_t mpn_hamdist (mp_srcptr, mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpn_lshift __MPN(lshift)
-__GMP_DECLSPEC mp_limb_t mpn_lshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int);
-
-#define mpn_mod_1 __MPN(mod_1)
-__GMP_DECLSPEC mp_limb_t mpn_mod_1 (mp_srcptr, mp_size_t, mp_limb_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_mul __MPN(mul)
-__GMP_DECLSPEC mp_limb_t mpn_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
-
-#define mpn_mul_1 __MPN(mul_1)
-__GMP_DECLSPEC mp_limb_t mpn_mul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
-
-#define mpn_mul_n __MPN(mul_n)
-__GMP_DECLSPEC void mpn_mul_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-
-#define mpn_sqr __MPN(sqr)
-__GMP_DECLSPEC void mpn_sqr (mp_ptr, mp_srcptr, mp_size_t);
-
-#define mpn_neg __MPN(neg)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_neg)
-__GMP_DECLSPEC mp_limb_t mpn_neg (mp_ptr, mp_srcptr, mp_size_t);
-#endif
-
-#define mpn_com __MPN(com)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_com)
-__GMP_DECLSPEC void mpn_com (mp_ptr, mp_srcptr, mp_size_t);
-#endif
-
-#define mpn_perfect_square_p __MPN(perfect_square_p)
-__GMP_DECLSPEC int mpn_perfect_square_p (mp_srcptr, mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_perfect_power_p __MPN(perfect_power_p)
-__GMP_DECLSPEC int mpn_perfect_power_p (mp_srcptr, mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_popcount __MPN(popcount)
-__GMP_DECLSPEC mp_bitcnt_t mpn_popcount (mp_srcptr, mp_size_t) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE;
-
-#define mpn_pow_1 __MPN(pow_1)
-__GMP_DECLSPEC mp_size_t mpn_pow_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr);
-
-/* undocumented now, but retained here for upward compatibility */
-#define mpn_preinv_mod_1 __MPN(preinv_mod_1)
-__GMP_DECLSPEC mp_limb_t mpn_preinv_mod_1 (mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_random __MPN(random)
-__GMP_DECLSPEC void mpn_random (mp_ptr, mp_size_t);
-
-#define mpn_random2 __MPN(random2)
-__GMP_DECLSPEC void mpn_random2 (mp_ptr, mp_size_t);
-
-#define mpn_rshift __MPN(rshift)
-__GMP_DECLSPEC mp_limb_t mpn_rshift (mp_ptr, mp_srcptr, mp_size_t, unsigned int);
-
-#define mpn_scan0 __MPN(scan0)
-__GMP_DECLSPEC mp_bitcnt_t mpn_scan0 (mp_srcptr, mp_bitcnt_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_scan1 __MPN(scan1)
-__GMP_DECLSPEC mp_bitcnt_t mpn_scan1 (mp_srcptr, mp_bitcnt_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_set_str __MPN(set_str)
-__GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
-
-#define mpn_sizeinbase __MPN(sizeinbase)
-__GMP_DECLSPEC size_t mpn_sizeinbase (mp_srcptr, mp_size_t, int);
-
-#define mpn_sqrtrem __MPN(sqrtrem)
-__GMP_DECLSPEC mp_size_t mpn_sqrtrem (mp_ptr, mp_ptr, mp_srcptr, mp_size_t);
-
-#define mpn_sub __MPN(sub)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub)
-__GMP_DECLSPEC mp_limb_t mpn_sub (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
-#endif
-
-#define mpn_sub_1 __MPN(sub_1)
-#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub_1)
-__GMP_DECLSPEC mp_limb_t mpn_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t) __GMP_NOTHROW;
-#endif
-
-#define mpn_sub_n __MPN(sub_n)
-__GMP_DECLSPEC mp_limb_t mpn_sub_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-
-#define mpn_submul_1 __MPN(submul_1)
-__GMP_DECLSPEC mp_limb_t mpn_submul_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t);
-
-#define mpn_tdiv_qr __MPN(tdiv_qr)
-__GMP_DECLSPEC void mpn_tdiv_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t);
-
-#define mpn_and_n __MPN(and_n)
-__GMP_DECLSPEC void mpn_and_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_andn_n __MPN(andn_n)
-__GMP_DECLSPEC void mpn_andn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_nand_n __MPN(nand_n)
-__GMP_DECLSPEC void mpn_nand_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_ior_n __MPN(ior_n)
-__GMP_DECLSPEC void mpn_ior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_iorn_n __MPN(iorn_n)
-__GMP_DECLSPEC void mpn_iorn_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_nior_n __MPN(nior_n)
-__GMP_DECLSPEC void mpn_nior_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_xor_n __MPN(xor_n)
-__GMP_DECLSPEC void mpn_xor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_xnor_n __MPN(xnor_n)
-__GMP_DECLSPEC void mpn_xnor_n (mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-
-#define mpn_copyi __MPN(copyi)
-__GMP_DECLSPEC void mpn_copyi (mp_ptr, mp_srcptr, mp_size_t);
-#define mpn_copyd __MPN(copyd)
-__GMP_DECLSPEC void mpn_copyd (mp_ptr, mp_srcptr, mp_size_t);
-#define mpn_zero __MPN(zero)
-__GMP_DECLSPEC void mpn_zero (mp_ptr, mp_size_t);
-
-#define mpn_cnd_add_n __MPN(cnd_add_n)
-__GMP_DECLSPEC mp_limb_t mpn_cnd_add_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-#define mpn_cnd_sub_n __MPN(cnd_sub_n)
-__GMP_DECLSPEC mp_limb_t mpn_cnd_sub_n (mp_limb_t, mp_ptr, mp_srcptr, mp_srcptr, mp_size_t);
-
-#define mpn_sec_add_1 __MPN(sec_add_1)
-__GMP_DECLSPEC mp_limb_t mpn_sec_add_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr);
-#define mpn_sec_add_1_itch __MPN(sec_add_1_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_add_1_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_sec_sub_1 __MPN(sec_sub_1)
-__GMP_DECLSPEC mp_limb_t mpn_sec_sub_1 (mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr);
-#define mpn_sec_sub_1_itch __MPN(sec_sub_1_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_sub_1_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_sec_mul __MPN(sec_mul)
-__GMP_DECLSPEC void mpn_sec_mul (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr);
-#define mpn_sec_mul_itch __MPN(sec_mul_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_mul_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_sec_sqr __MPN(sec_sqr)
-__GMP_DECLSPEC void mpn_sec_sqr (mp_ptr, mp_srcptr, mp_size_t, mp_ptr);
-#define mpn_sec_sqr_itch __MPN(sec_sqr_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_sqr_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_sec_powm __MPN(sec_powm)
-__GMP_DECLSPEC void mpn_sec_powm (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_bitcnt_t, mp_srcptr, mp_size_t, mp_ptr);
-#define mpn_sec_powm_itch __MPN(sec_powm_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_powm_itch (mp_size_t, mp_bitcnt_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_sec_tabselect __MPN(sec_tabselect)
-__GMP_DECLSPEC void mpn_sec_tabselect (volatile mp_limb_t *, volatile const mp_limb_t *, mp_size_t, mp_size_t, mp_size_t);
-
-#define mpn_sec_div_qr __MPN(sec_div_qr)
-__GMP_DECLSPEC mp_limb_t mpn_sec_div_qr (mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr);
-#define mpn_sec_div_qr_itch __MPN(sec_div_qr_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_div_qr_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
-#define mpn_sec_div_r __MPN(sec_div_r)
-__GMP_DECLSPEC void mpn_sec_div_r (mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_ptr);
-#define mpn_sec_div_r_itch __MPN(sec_div_r_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_div_r_itch (mp_size_t, mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-#define mpn_sec_invert __MPN(sec_invert)
-__GMP_DECLSPEC int mpn_sec_invert (mp_ptr, mp_ptr, mp_srcptr, mp_size_t, mp_bitcnt_t, mp_ptr);
-#define mpn_sec_invert_itch __MPN(sec_invert_itch)
-__GMP_DECLSPEC mp_size_t mpn_sec_invert_itch (mp_size_t) __GMP_ATTRIBUTE_PURE;
-
-
-/**************** mpz inlines ****************/
-
-/* The following are provided as inlines where possible, but always exist as
-   library functions too, for binary compatibility.
-
-   Within gmp itself this inlining generally isn't relied on, since it
-   doesn't get done for all compilers, whereas if something is worth
-   inlining then it's worth arranging always.
-
-   There are two styles of inlining here.  When the same bit of code is
-   wanted for the inline as for the library version, then __GMP_FORCE_foo
-   arranges for that code to be emitted and the __GMP_EXTERN_INLINE
-   directive suppressed, eg. mpz_fits_uint_p.  When a different bit of code
-   is wanted for the inline than for the library version, then
-   __GMP_FORCE_foo arranges the inline to be suppressed, eg. mpz_abs.  */
-
-#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_abs)
-__GMP_EXTERN_INLINE void
-mpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
-{
-  if (__gmp_w != __gmp_u)
-    mpz_set (__gmp_w, __gmp_u);
-  __gmp_w->_mp_size = __GMP_ABS (__gmp_w->_mp_size);
-}
-#endif
-
-#if GMP_NAIL_BITS == 0
-#define __GMPZ_FITS_UTYPE_P(z,maxval)					\
-  mp_size_t  __gmp_n = z->_mp_size;					\
-  mp_ptr  __gmp_p = z->_mp_d;						\
-  return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval));
-#else
-#define __GMPZ_FITS_UTYPE_P(z,maxval)					\
-  mp_size_t  __gmp_n = z->_mp_size;					\
-  mp_ptr  __gmp_p = z->_mp_d;						\
-  return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval)	\
-	  || (__gmp_n == 2 && __gmp_p[1] <= ((mp_limb_t) maxval >> GMP_NUMB_BITS)));
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_uint_p)
-#if ! defined (__GMP_FORCE_mpz_fits_uint_p)
-__GMP_EXTERN_INLINE
-#endif
-int
-mpz_fits_uint_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
-{
-  __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_UINT_MAX);
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ulong_p)
-#if ! defined (__GMP_FORCE_mpz_fits_ulong_p)
-__GMP_EXTERN_INLINE
-#endif
-int
-mpz_fits_ulong_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
-{
-  __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_ULONG_MAX);
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ushort_p)
-#if ! defined (__GMP_FORCE_mpz_fits_ushort_p)
-__GMP_EXTERN_INLINE
-#endif
-int
-mpz_fits_ushort_p (mpz_srcptr __gmp_z) __GMP_NOTHROW
-{
-  __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_USHRT_MAX);
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_get_ui)
-#if ! defined (__GMP_FORCE_mpz_get_ui)
-__GMP_EXTERN_INLINE
-#endif
-unsigned long
-mpz_get_ui (mpz_srcptr __gmp_z) __GMP_NOTHROW
-{
-  mp_ptr __gmp_p = __gmp_z->_mp_d;
-  mp_size_t __gmp_n = __gmp_z->_mp_size;
-  mp_limb_t __gmp_l = __gmp_p[0];
-  /* This is a "#if" rather than a plain "if" so as to avoid gcc warnings
-     about "<< GMP_NUMB_BITS" exceeding the type size, and to avoid Borland
-     C++ 6.0 warnings about condition always true for something like
-     "__GMP_ULONG_MAX < GMP_NUMB_MASK".  */
-#if GMP_NAIL_BITS == 0 || defined (_LONG_LONG_LIMB)
-  /* limb==long and no nails, or limb==longlong, one limb is enough */
-  return (__gmp_n != 0 ? __gmp_l : 0);
-#else
-  /* limb==long and nails, need two limbs when available */
-  __gmp_n = __GMP_ABS (__gmp_n);
-  if (__gmp_n <= 1)
-    return (__gmp_n != 0 ? __gmp_l : 0);
-  else
-    return __gmp_l + (__gmp_p[1] << GMP_NUMB_BITS);
-#endif
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_getlimbn)
-#if ! defined (__GMP_FORCE_mpz_getlimbn)
-__GMP_EXTERN_INLINE
-#endif
-mp_limb_t
-mpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) __GMP_NOTHROW
-{
-  mp_limb_t  __gmp_result = 0;
-  if (__GMP_LIKELY (__gmp_n >= 0 && __gmp_n < __GMP_ABS (__gmp_z->_mp_size)))
-    __gmp_result = __gmp_z->_mp_d[__gmp_n];
-  return __gmp_result;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_neg)
-__GMP_EXTERN_INLINE void
-mpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u)
-{
-  if (__gmp_w != __gmp_u)
-    mpz_set (__gmp_w, __gmp_u);
-  __gmp_w->_mp_size = - __gmp_w->_mp_size;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_perfect_square_p)
-#if ! defined (__GMP_FORCE_mpz_perfect_square_p)
-__GMP_EXTERN_INLINE
-#endif
-int
-mpz_perfect_square_p (mpz_srcptr __gmp_a)
-{
-  mp_size_t __gmp_asize;
-  int       __gmp_result;
-
-  __gmp_asize = __gmp_a->_mp_size;
-  __gmp_result = (__gmp_asize >= 0);  /* zero is a square, negatives are not */
-  if (__GMP_LIKELY (__gmp_asize > 0))
-    __gmp_result = mpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize);
-  return __gmp_result;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_popcount)
-#if ! defined (__GMP_FORCE_mpz_popcount)
-__GMP_EXTERN_INLINE
-#endif
-mp_bitcnt_t
-mpz_popcount (mpz_srcptr __gmp_u) __GMP_NOTHROW
-{
-  mp_size_t      __gmp_usize;
-  mp_bitcnt_t    __gmp_result;
-
-  __gmp_usize = __gmp_u->_mp_size;
-  __gmp_result = (__gmp_usize < 0 ? __GMP_ULONG_MAX : 0);
-  if (__GMP_LIKELY (__gmp_usize > 0))
-    __gmp_result =  mpn_popcount (__gmp_u->_mp_d, __gmp_usize);
-  return __gmp_result;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_set_q)
-#if ! defined (__GMP_FORCE_mpz_set_q)
-__GMP_EXTERN_INLINE
-#endif
-void
-mpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u)
-{
-  mpz_tdiv_q (__gmp_w, mpq_numref (__gmp_u), mpq_denref (__gmp_u));
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_size)
-#if ! defined (__GMP_FORCE_mpz_size)
-__GMP_EXTERN_INLINE
-#endif
-size_t
-mpz_size (mpz_srcptr __gmp_z) __GMP_NOTHROW
-{
-  return __GMP_ABS (__gmp_z->_mp_size);
-}
-#endif
-
-
-/**************** mpq inlines ****************/
-
-#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_abs)
-__GMP_EXTERN_INLINE void
-mpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
-{
-  if (__gmp_w != __gmp_u)
-    mpq_set (__gmp_w, __gmp_u);
-  __gmp_w->_mp_num._mp_size = __GMP_ABS (__gmp_w->_mp_num._mp_size);
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_neg)
-__GMP_EXTERN_INLINE void
-mpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u)
-{
-  if (__gmp_w != __gmp_u)
-    mpq_set (__gmp_w, __gmp_u);
-  __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size;
-}
-#endif
-
-
-/**************** mpn inlines ****************/
-
-/* The comments with __GMPN_ADD_1 below apply here too.
-
-   The test for FUNCTION returning 0 should predict well.  If it's assumed
-   {yp,ysize} will usually have a random number of bits then the high limb
-   won't be full and a carry out will occur a good deal less than 50% of the
-   time.
-
-   ysize==0 isn't a documented feature, but is used internally in a few
-   places.
-
-   Producing cout last stops it using up a register during the main part of
-   the calculation, though gcc (as of 3.0) on an "if (mpn_add (...))"
-   doesn't seem able to move the true and false legs of the conditional up
-   to the two places cout is generated.  */
-
-#define __GMPN_AORS(cout, wp, xp, xsize, yp, ysize, FUNCTION, TEST)     \
-  do {                                                                  \
-    mp_size_t  __gmp_i;                                                 \
-    mp_limb_t  __gmp_x;                                                 \
-                                                                        \
-    /* ASSERT ((ysize) >= 0); */                                        \
-    /* ASSERT ((xsize) >= (ysize)); */                                  \
-    /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, xp, xsize)); */      \
-    /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, yp, ysize)); */      \
-                                                                        \
-    __gmp_i = (ysize);                                                  \
-    if (__gmp_i != 0)                                                   \
-      {                                                                 \
-        if (FUNCTION (wp, xp, yp, __gmp_i))                             \
-          {                                                             \
-            do                                                          \
-              {                                                         \
-                if (__gmp_i >= (xsize))                                 \
-                  {                                                     \
-                    (cout) = 1;                                         \
-                    goto __gmp_done;                                    \
-                  }                                                     \
-                __gmp_x = (xp)[__gmp_i];                                \
-              }                                                         \
-            while (TEST);                                               \
-          }                                                             \
-      }                                                                 \
-    if ((wp) != (xp))                                                   \
-      __GMPN_COPY_REST (wp, xp, xsize, __gmp_i);                        \
-    (cout) = 0;                                                         \
-  __gmp_done:                                                           \
-    ;                                                                   \
-  } while (0)
-
-#define __GMPN_ADD(cout, wp, xp, xsize, yp, ysize)              \
-  __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_add_n,       \
-               (((wp)[__gmp_i++] = (__gmp_x + 1) & GMP_NUMB_MASK) == 0))
-#define __GMPN_SUB(cout, wp, xp, xsize, yp, ysize)              \
-  __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_sub_n,       \
-               (((wp)[__gmp_i++] = (__gmp_x - 1) & GMP_NUMB_MASK), __gmp_x == 0))
-
-
-/* The use of __gmp_i indexing is designed to ensure a compile time src==dst
-   remains nice and clear to the compiler, so that __GMPN_COPY_REST can
-   disappear, and the load/add/store gets a chance to become a
-   read-modify-write on CISC CPUs.
-
-   Alternatives:
-
-   Using a pair of pointers instead of indexing would be possible, but gcc
-   isn't able to recognise compile-time src==dst in that case, even when the
-   pointers are incremented more or less together.  Other compilers would
-   very likely have similar difficulty.
-
-   gcc could use "if (__builtin_constant_p(src==dst) && src==dst)" or
-   similar to detect a compile-time src==dst.  This works nicely on gcc
-   2.95.x, it's not good on gcc 3.0 where __builtin_constant_p(p==p) seems
-   to be always false, for a pointer p.  But the current code form seems
-   good enough for src==dst anyway.
-
-   gcc on x86 as usual doesn't give particularly good flags handling for the
-   carry/borrow detection.  It's tempting to want some multi instruction asm
-   blocks to help it, and this was tried, but in truth there's only a few
-   instructions to save and any gain is all too easily lost by register
-   juggling setting up for the asm.  */
-
-#if GMP_NAIL_BITS == 0
-#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB)		\
-  do {								\
-    mp_size_t  __gmp_i;						\
-    mp_limb_t  __gmp_x, __gmp_r;                                \
-								\
-    /* ASSERT ((n) >= 1); */					\
-    /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */	\
-								\
-    __gmp_x = (src)[0];						\
-    __gmp_r = __gmp_x OP (v);                                   \
-    (dst)[0] = __gmp_r;						\
-    if (CB (__gmp_r, __gmp_x, (v)))                             \
-      {								\
-	(cout) = 1;						\
-	for (__gmp_i = 1; __gmp_i < (n);)                       \
-	  {							\
-	    __gmp_x = (src)[__gmp_i];                           \
-	    __gmp_r = __gmp_x OP 1;                             \
-	    (dst)[__gmp_i] = __gmp_r;                           \
-	    ++__gmp_i;						\
-	    if (!CB (__gmp_r, __gmp_x, 1))                      \
-	      {							\
-		if ((src) != (dst))				\
-		  __GMPN_COPY_REST (dst, src, n, __gmp_i);      \
-		(cout) = 0;					\
-		break;						\
-	      }							\
-	  }							\
-      }								\
-    else							\
-      {								\
-	if ((src) != (dst))					\
-	  __GMPN_COPY_REST (dst, src, n, 1);			\
-	(cout) = 0;						\
-      }								\
-  } while (0)
-#endif
-
-#if GMP_NAIL_BITS >= 1
-#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB)		\
-  do {								\
-    mp_size_t  __gmp_i;						\
-    mp_limb_t  __gmp_x, __gmp_r;				\
-								\
-    /* ASSERT ((n) >= 1); */					\
-    /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */	\
-								\
-    __gmp_x = (src)[0];						\
-    __gmp_r = __gmp_x OP (v);					\
-    (dst)[0] = __gmp_r & GMP_NUMB_MASK;				\
-    if (__gmp_r >> GMP_NUMB_BITS != 0)				\
-      {								\
-	(cout) = 1;						\
-	for (__gmp_i = 1; __gmp_i < (n);)			\
-	  {							\
-	    __gmp_x = (src)[__gmp_i];				\
-	    __gmp_r = __gmp_x OP 1;				\
-	    (dst)[__gmp_i] = __gmp_r & GMP_NUMB_MASK;		\
-	    ++__gmp_i;						\
-	    if (__gmp_r >> GMP_NUMB_BITS == 0)			\
-	      {							\
-		if ((src) != (dst))				\
-		  __GMPN_COPY_REST (dst, src, n, __gmp_i);	\
-		(cout) = 0;					\
-		break;						\
-	      }							\
-	  }							\
-      }								\
-    else							\
-      {								\
-	if ((src) != (dst))					\
-	  __GMPN_COPY_REST (dst, src, n, 1);			\
-	(cout) = 0;						\
-      }								\
-  } while (0)
-#endif
-
-#define __GMPN_ADDCB(r,x,y) ((r) < (y))
-#define __GMPN_SUBCB(r,x,y) ((x) < (y))
-
-#define __GMPN_ADD_1(cout, dst, src, n, v)	     \
-  __GMPN_AORS_1(cout, dst, src, n, v, +, __GMPN_ADDCB)
-#define __GMPN_SUB_1(cout, dst, src, n, v)	     \
-  __GMPN_AORS_1(cout, dst, src, n, v, -, __GMPN_SUBCB)
-
-
-/* Compare {xp,size} and {yp,size}, setting "result" to positive, zero or
-   negative.  size==0 is allowed.  On random data usually only one limb will
-   need to be examined to get a result, so it's worth having it inline.  */
-#define __GMPN_CMP(result, xp, yp, size)                                \
-  do {                                                                  \
-    mp_size_t  __gmp_i;                                                 \
-    mp_limb_t  __gmp_x, __gmp_y;                                        \
-                                                                        \
-    /* ASSERT ((size) >= 0); */                                         \
-                                                                        \
-    (result) = 0;                                                       \
-    __gmp_i = (size);                                                   \
-    while (--__gmp_i >= 0)                                              \
-      {                                                                 \
-        __gmp_x = (xp)[__gmp_i];                                        \
-        __gmp_y = (yp)[__gmp_i];                                        \
-        if (__gmp_x != __gmp_y)                                         \
-          {                                                             \
-            /* Cannot use __gmp_x - __gmp_y, may overflow an "int" */   \
-            (result) = (__gmp_x > __gmp_y ? 1 : -1);                    \
-            break;                                                      \
-          }                                                             \
-      }                                                                 \
-  } while (0)
-
-
-#if defined (__GMPN_COPY) && ! defined (__GMPN_COPY_REST)
-#define __GMPN_COPY_REST(dst, src, size, start)                 \
-  do {                                                          \
-    /* ASSERT ((start) >= 0); */                                \
-    /* ASSERT ((start) <= (size)); */                           \
-    __GMPN_COPY ((dst)+(start), (src)+(start), (size)-(start)); \
-  } while (0)
-#endif
-
-/* Copy {src,size} to {dst,size}, starting at "start".  This is designed to
-   keep the indexing dst[j] and src[j] nice and simple for __GMPN_ADD_1,
-   __GMPN_ADD, etc.  */
-#if ! defined (__GMPN_COPY_REST)
-#define __GMPN_COPY_REST(dst, src, size, start)                 \
-  do {                                                          \
-    mp_size_t __gmp_j;                                          \
-    /* ASSERT ((size) >= 0); */                                 \
-    /* ASSERT ((start) >= 0); */                                \
-    /* ASSERT ((start) <= (size)); */                           \
-    /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, size)); */     \
-    __GMP_CRAY_Pragma ("_CRI ivdep");                           \
-    for (__gmp_j = (start); __gmp_j < (size); __gmp_j++)        \
-      (dst)[__gmp_j] = (src)[__gmp_j];                          \
-  } while (0)
-#endif
-
-/* Enhancement: Use some of the smarter code from gmp-impl.h.  Maybe use
-   mpn_copyi if there's a native version, and if we don't mind demanding
-   binary compatibility for it (on targets which use it).  */
-
-#if ! defined (__GMPN_COPY)
-#define __GMPN_COPY(dst, src, size)   __GMPN_COPY_REST (dst, src, size, 0)
-#endif
-
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add)
-#if ! defined (__GMP_FORCE_mpn_add)
-__GMP_EXTERN_INLINE
-#endif
-mp_limb_t
-mpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
-{
-  mp_limb_t  __gmp_c;
-  __GMPN_ADD (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize);
-  return __gmp_c;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add_1)
-#if ! defined (__GMP_FORCE_mpn_add_1)
-__GMP_EXTERN_INLINE
-#endif
-mp_limb_t
-mpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW
-{
-  mp_limb_t  __gmp_c;
-  __GMPN_ADD_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n);
-  return __gmp_c;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_cmp)
-#if ! defined (__GMP_FORCE_mpn_cmp)
-__GMP_EXTERN_INLINE
-#endif
-int
-mpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) __GMP_NOTHROW
-{
-  int __gmp_result;
-  __GMPN_CMP (__gmp_result, __gmp_xp, __gmp_yp, __gmp_size);
-  return __gmp_result;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub)
-#if ! defined (__GMP_FORCE_mpn_sub)
-__GMP_EXTERN_INLINE
-#endif
-mp_limb_t
-mpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize)
-{
-  mp_limb_t  __gmp_c;
-  __GMPN_SUB (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize);
-  return __gmp_c;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub_1)
-#if ! defined (__GMP_FORCE_mpn_sub_1)
-__GMP_EXTERN_INLINE
-#endif
-mp_limb_t
-mpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW
-{
-  mp_limb_t  __gmp_c;
-  __GMPN_SUB_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n);
-  return __gmp_c;
-}
-#endif
-
-#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_neg)
-#if ! defined (__GMP_FORCE_mpn_neg)
-__GMP_EXTERN_INLINE
-#endif
-mp_limb_t
-mpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n)
-{
-  mp_limb_t __gmp_ul, __gmp_cy;
-  __gmp_cy = 0;
-  do {
-      __gmp_ul = *__gmp_up++;
-      *__gmp_rp++ = -__gmp_ul - __gmp_cy;
-      __gmp_cy |= __gmp_ul != 0;
-  } while (--__gmp_n != 0);
-  return __gmp_cy;
-}
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-
-/* Allow faster testing for negative, zero, and positive.  */
-#define mpz_sgn(Z) ((Z)->_mp_size < 0 ? -1 : (Z)->_mp_size > 0)
-#define mpf_sgn(F) ((F)->_mp_size < 0 ? -1 : (F)->_mp_size > 0)
-#define mpq_sgn(Q) ((Q)->_mp_num._mp_size < 0 ? -1 : (Q)->_mp_num._mp_size > 0)
-
-/* When using GCC, optimize certain common comparisons.  */
-#if defined (__GNUC__) && __GNUC__ >= 2
-#define mpz_cmp_ui(Z,UI) \
-  (__builtin_constant_p (UI) && (UI) == 0				\
-   ? mpz_sgn (Z) : _mpz_cmp_ui (Z,UI))
-#define mpz_cmp_si(Z,SI)						\
-  (__builtin_constant_p ((SI) >= 0) && (SI) >= 0			\
-   ? mpz_cmp_ui (Z, __GMP_CAST (unsigned long, SI))			\
-   : _mpz_cmp_si (Z,SI))
-#define mpq_cmp_ui(Q,NUI,DUI)					\
-  (__builtin_constant_p (NUI) && (NUI) == 0 ? mpq_sgn (Q)	\
-   : __builtin_constant_p ((NUI) == (DUI)) && (NUI) == (DUI)	\
-   ? mpz_cmp (mpq_numref (Q), mpq_denref (Q))			\
-   : _mpq_cmp_ui (Q,NUI,DUI))
-#define mpq_cmp_si(q,n,d)				\
-  (__builtin_constant_p ((n) >= 0) && (n) >= 0		\
-   ? mpq_cmp_ui (q, __GMP_CAST (unsigned long, n), d)	\
-   : _mpq_cmp_si (q, n, d))
-#else
-#define mpz_cmp_ui(Z,UI) _mpz_cmp_ui (Z,UI)
-#define mpz_cmp_si(Z,UI) _mpz_cmp_si (Z,UI)
-#define mpq_cmp_ui(Q,NUI,DUI) _mpq_cmp_ui (Q,NUI,DUI)
-#define mpq_cmp_si(q,n,d)  _mpq_cmp_si(q,n,d)
-#endif
-
-
-/* Using "&" rather than "&&" means these can come out branch-free.  Every
-   mpz_t has at least one limb allocated, so fetching the low limb is always
-   allowed.  */
-#define mpz_odd_p(z)   (((z)->_mp_size != 0) & __GMP_CAST (int, (z)->_mp_d[0]))
-#define mpz_even_p(z)  (! mpz_odd_p (z))
-
-
-/**************** C++ routines ****************/
-
-#ifdef __cplusplus
-__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpz_srcptr);
-__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpq_srcptr);
-__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpf_srcptr);
-__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpz_ptr);
-__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpq_ptr);
-__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpf_ptr);
-#endif
-
-
-/* Source-level compatibility with GMP 2 and earlier. */
-#define mpn_divmod(qp,np,nsize,dp,dsize) \
-  mpn_divrem (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dp, dsize)
-
-/* Source-level compatibility with GMP 1.  */
-#define mpz_mdiv	mpz_fdiv_q
-#define mpz_mdivmod	mpz_fdiv_qr
-#define mpz_mmod	mpz_fdiv_r
-#define mpz_mdiv_ui	mpz_fdiv_q_ui
-#define mpz_mdivmod_ui(q,r,n,d) \
-  (((r) == 0) ? mpz_fdiv_q_ui (q,n,d) : mpz_fdiv_qr_ui (q,r,n,d))
-#define mpz_mmod_ui(r,n,d) \
-  (((r) == 0) ? mpz_fdiv_ui (n,d) : mpz_fdiv_r_ui (r,n,d))
-
-/* Useful synonyms, but not quite compatible with GMP 1.  */
-#define mpz_div		mpz_fdiv_q
-#define mpz_divmod	mpz_fdiv_qr
-#define mpz_div_ui	mpz_fdiv_q_ui
-#define mpz_divmod_ui	mpz_fdiv_qr_ui
-#define mpz_div_2exp	mpz_fdiv_q_2exp
-#define mpz_mod_2exp	mpz_fdiv_r_2exp
-
-enum
-{
-  GMP_ERROR_NONE = 0,
-  GMP_ERROR_UNSUPPORTED_ARGUMENT = 1,
-  GMP_ERROR_DIVISION_BY_ZERO = 2,
-  GMP_ERROR_SQRT_OF_NEGATIVE = 4,
-  GMP_ERROR_INVALID_ARGUMENT = 8
-};
-
-/* Define CC and CFLAGS which were used to build this version of GMP */
-#define __GMP_CC "/usr/bin/gcc -std=gnu99"
-#define __GMP_CFLAGS "-O2 -I/usr/local/google/home/smcgruer/Desktop/buildroot/output/host/usr/include"
-
-/* Major version number is the value of __GNU_MP__ too, above and in mp.h. */
-#define __GNU_MP_VERSION            6
-#define __GNU_MP_VERSION_MINOR      0
-#define __GNU_MP_VERSION_PATCHLEVEL 0
-#define __GNU_MP_RELEASE (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL)
-
-#define __GMP_H__
-#endif /* __GMP_H__ */
diff --git a/include/mpc.h b/include/mpc.h
deleted file mode 100644
index 1607cac..0000000
--- a/include/mpc.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/* mpc.h -- Include file for mpc.
-
-Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010, 2011, 2012, 2014 INRIA
-
-This file is part of GNU MPC.
-
-GNU MPC is free software; you can redistribute it and/or modify it under
-the terms of the GNU Lesser General Public License as published by the
-Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-GNU MPC 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 Lesser General Public License for
-more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this program. If not, see http://www.gnu.org/licenses/ .
-*/
-
-#ifndef __MPC_H
-#define __MPC_H
-
-#include "gmp.h"
-#include "mpfr.h"
-
-/* Backwards compatibility with mpfr<3.0.0 */
-#ifndef mpfr_exp_t
-#define mpfr_exp_t mp_exp_t
-#endif
-
-/* Define MPC version number */
-#define MPC_VERSION_MAJOR 1
-#define MPC_VERSION_MINOR 0
-#define MPC_VERSION_PATCHLEVEL 2
-#define MPC_VERSION_STRING "1.0.2"
-
-/* Macros dealing with MPC VERSION */
-#define MPC_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-#define MPC_VERSION                                                     \
-  MPC_VERSION_NUM(MPC_VERSION_MAJOR,MPC_VERSION_MINOR,MPC_VERSION_PATCHLEVEL)
-
-/* Check if stdint.h/inttypes.h is included */
-#if defined (INTMAX_C) && defined (UINTMAX_C)
-#define _MPC_H_HAVE_INTMAX_T 1
-#endif
-
-/* Return values */
-
-/* Transform negative to 2, positive to 1, leave 0 unchanged */
-#define MPC_INEX_POS(inex) (((inex) < 0) ? 2 : ((inex) == 0) ? 0 : 1)
-/* Transform 2 to negative, 1 to positive, leave 0 unchanged */
-#define MPC_INEX_NEG(inex) (((inex) == 2) ? -1 : ((inex) == 0) ? 0 : 1)
-
-/* The global inexact flag is made of (real flag) + 4 * (imaginary flag), where
-   each of the real and imaginary inexact flag are:
-   0 when the result is exact (no rounding error)
-   1 when the result is larger than the exact value
-   2 when the result is smaller than the exact value */
-#define MPC_INEX(inex_re, inex_im) \
-        (MPC_INEX_POS(inex_re) | (MPC_INEX_POS(inex_im) << 2))
-#define MPC_INEX_RE(inex) MPC_INEX_NEG((inex) & 3)
-#define MPC_INEX_IM(inex) MPC_INEX_NEG((inex) >> 2)
-
-/* For functions computing two results, the return value is
-   inexact1+16*inexact2, which is 0 iif both results are exact. */
-#define MPC_INEX12(inex1, inex2) (inex1 | (inex2 << 4))
-#define MPC_INEX1(inex) (inex & 15)
-#define MPC_INEX2(inex) (inex >> 4)
-
-/* Definition of rounding modes */
-
-/* a complex rounding mode is just a pair of two real rounding modes
-   we reserve four bits for a real rounding mode.  */
-typedef int mpc_rnd_t;
-
-#define MPC_RND(r1,r2) (((int)(r1)) + ((int)(r2) << 4))
-#define MPC_RND_RE(x) ((mpfr_rnd_t)((x) & 0x0F))
-#define MPC_RND_IM(x) ((mpfr_rnd_t)((x) >> 4))
-
-#define MPC_RNDNN MPC_RND (GMP_RNDN,GMP_RNDN)
-#define MPC_RNDNZ MPC_RND (GMP_RNDN,GMP_RNDZ)
-#define MPC_RNDNU MPC_RND (GMP_RNDN,GMP_RNDU)
-#define MPC_RNDND MPC_RND (GMP_RNDN,GMP_RNDD)
-
-#define MPC_RNDZN MPC_RND (GMP_RNDZ,GMP_RNDN)
-#define MPC_RNDZZ MPC_RND (GMP_RNDZ,GMP_RNDZ)
-#define MPC_RNDZU MPC_RND (GMP_RNDZ,GMP_RNDU)
-#define MPC_RNDZD MPC_RND (GMP_RNDZ,GMP_RNDD)
-
-#define MPC_RNDUN MPC_RND (GMP_RNDU,GMP_RNDN)
-#define MPC_RNDUZ MPC_RND (GMP_RNDU,GMP_RNDZ)
-#define MPC_RNDUU MPC_RND (GMP_RNDU,GMP_RNDU)
-#define MPC_RNDUD MPC_RND (GMP_RNDU,GMP_RNDD)
-
-#define MPC_RNDDN MPC_RND (GMP_RNDD,GMP_RNDN)
-#define MPC_RNDDZ MPC_RND (GMP_RNDD,GMP_RNDZ)
-#define MPC_RNDDU MPC_RND (GMP_RNDD,GMP_RNDU)
-#define MPC_RNDDD MPC_RND (GMP_RNDD,GMP_RNDD)
-
-
-/* Definitions of types and their semantics */
-
-typedef struct {
-  mpfr_t re;
-  mpfr_t im;
-}
-__mpc_struct;
-
-typedef __mpc_struct mpc_t[1];
-typedef __mpc_struct *mpc_ptr;
-typedef const __mpc_struct *mpc_srcptr;
-
-/* Support for WINDOWS DLL, see
-   http://lists.gforge.inria.fr/pipermail/mpc-discuss/2011-November/000990.html;
-   when building the DLL, export symbols, otherwise behave as GMP           */
-#if defined (__MPC_LIBRARY_BUILD) && __GMP_LIBGMP_DLL
-#define __MPC_DECLSPEC __GMP_DECLSPEC_EXPORT
-#else
-#define __MPC_DECLSPEC __GMP_DECLSPEC
-#endif
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-__MPC_DECLSPEC int  mpc_add       (mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_add_fr    (mpc_ptr, mpc_srcptr, mpfr_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_add_si    (mpc_ptr, mpc_srcptr, long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_add_ui    (mpc_ptr, mpc_srcptr, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_sub       (mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_sub_fr    (mpc_ptr, mpc_srcptr, mpfr_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_fr_sub    (mpc_ptr, mpfr_srcptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_sub_ui    (mpc_ptr, mpc_srcptr, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_ui_ui_sub (mpc_ptr, unsigned long int, unsigned long int, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_mul       (mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_mul_fr    (mpc_ptr, mpc_srcptr, mpfr_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_mul_ui    (mpc_ptr, mpc_srcptr, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_mul_si    (mpc_ptr, mpc_srcptr, long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_mul_i     (mpc_ptr, mpc_srcptr, int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_sqr       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_div       (mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_pow       (mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_pow_fr    (mpc_ptr, mpc_srcptr, mpfr_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_pow_ld    (mpc_ptr, mpc_srcptr, long double, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_pow_d     (mpc_ptr, mpc_srcptr, double, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_pow_si    (mpc_ptr, mpc_srcptr, long, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_pow_ui    (mpc_ptr, mpc_srcptr, unsigned long, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_pow_z     (mpc_ptr, mpc_srcptr, mpz_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_div_fr    (mpc_ptr, mpc_srcptr, mpfr_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_fr_div    (mpc_ptr, mpfr_srcptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_div_ui    (mpc_ptr, mpc_srcptr, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_ui_div    (mpc_ptr, unsigned long int, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_div_2ui   (mpc_ptr, mpc_srcptr, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_mul_2ui   (mpc_ptr, mpc_srcptr, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_div_2si   (mpc_ptr, mpc_srcptr, long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_mul_2si   (mpc_ptr, mpc_srcptr, long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_conj      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_neg       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_norm      (mpfr_ptr, mpc_srcptr, mpfr_rnd_t);
-__MPC_DECLSPEC int  mpc_abs       (mpfr_ptr, mpc_srcptr, mpfr_rnd_t);
-__MPC_DECLSPEC int  mpc_sqrt      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_d     (mpc_ptr, double, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_d_d   (mpc_ptr, double, double, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_ld    (mpc_ptr, long double, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_ld_ld (mpc_ptr, long double, long double, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_f     (mpc_ptr, mpf_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_f_f   (mpc_ptr, mpf_srcptr, mpf_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_fr    (mpc_ptr, mpfr_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_fr_fr (mpc_ptr, mpfr_srcptr, mpfr_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_q     (mpc_ptr, mpq_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_q_q   (mpc_ptr, mpq_srcptr, mpq_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_si    (mpc_ptr, long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_si_si (mpc_ptr, long int, long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_ui    (mpc_ptr, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_ui_ui (mpc_ptr, unsigned long int, unsigned long int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_z     (mpc_ptr, mpz_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_z_z   (mpc_ptr, mpz_srcptr, mpz_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC void mpc_swap      (mpc_ptr, mpc_ptr);
-__MPC_DECLSPEC int  mpc_fma       (mpc_ptr, mpc_srcptr, mpc_srcptr, mpc_srcptr, mpc_rnd_t);
-
-__MPC_DECLSPEC void mpc_set_nan   (mpc_ptr);
-
-__MPC_DECLSPEC int  mpc_real      (mpfr_ptr, mpc_srcptr, mpfr_rnd_t);
-__MPC_DECLSPEC int  mpc_imag      (mpfr_ptr, mpc_srcptr, mpfr_rnd_t);
-__MPC_DECLSPEC int  mpc_arg       (mpfr_ptr, mpc_srcptr, mpfr_rnd_t);
-__MPC_DECLSPEC int  mpc_proj      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_cmp       (mpc_srcptr, mpc_srcptr);
-__MPC_DECLSPEC int  mpc_cmp_si_si (mpc_srcptr, long int, long int);
-__MPC_DECLSPEC int  mpc_exp       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_log       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_log10     (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_sin       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_cos       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_sin_cos   (mpc_ptr, mpc_ptr, mpc_srcptr, mpc_rnd_t, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_tan       (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_sinh      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_cosh      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_tanh      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_asin      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_acos      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_atan      (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_asinh     (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_acosh     (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_atanh     (mpc_ptr, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC void mpc_clear     (mpc_ptr);
-__MPC_DECLSPEC int  mpc_urandom   (mpc_ptr, gmp_randstate_t);
-__MPC_DECLSPEC void mpc_init2     (mpc_ptr, mpfr_prec_t);
-__MPC_DECLSPEC void mpc_init3     (mpc_ptr, mpfr_prec_t, mpfr_prec_t);
-__MPC_DECLSPEC mpfr_prec_t mpc_get_prec (mpc_srcptr x);
-__MPC_DECLSPEC void mpc_get_prec2 (mpfr_prec_t *pr, mpfr_prec_t *pi, mpc_srcptr x);
-__MPC_DECLSPEC void mpc_set_prec  (mpc_ptr, mpfr_prec_t);
-__MPC_DECLSPEC const char * mpc_get_version (void);
-
-__MPC_DECLSPEC int  mpc_strtoc    (mpc_ptr, const char *, char **, int, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_str   (mpc_ptr, const char *, int, mpc_rnd_t);
-__MPC_DECLSPEC char * mpc_get_str (int, size_t, mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC void mpc_free_str  (char *);
-
-/* declare certain functions only if appropriate headers have been included */
-#ifdef _MPC_H_HAVE_INTMAX_T
-__MPC_DECLSPEC int  mpc_set_sj    (mpc_ptr, intmax_t, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_uj    (mpc_ptr, uintmax_t,  mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_sj_sj (mpc_ptr, intmax_t, intmax_t, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_uj_uj (mpc_ptr, uintmax_t, uintmax_t, mpc_rnd_t);
-#endif
-
-#ifdef _Complex_I
-__MPC_DECLSPEC int  mpc_set_dc    (mpc_ptr, double _Complex, mpc_rnd_t);
-__MPC_DECLSPEC int  mpc_set_ldc   (mpc_ptr, long double _Complex, mpc_rnd_t);
-__MPC_DECLSPEC double _Complex mpc_get_dc (mpc_srcptr, mpc_rnd_t);
-__MPC_DECLSPEC long double _Complex mpc_get_ldc (mpc_srcptr, mpc_rnd_t);
-#endif
-
-#ifdef _GMP_H_HAVE_FILE
-__MPC_DECLSPEC int mpc_inp_str    (mpc_ptr, FILE *, size_t *, int, mpc_rnd_t);
-__MPC_DECLSPEC size_t mpc_out_str (FILE *, int, size_t, mpc_srcptr, mpc_rnd_t);
-#endif
-
-#if defined (__cplusplus)
-}
-#endif
-
-#define mpc_realref(x) ((x)->re)
-#define mpc_imagref(x) ((x)->im)
-
-#define mpc_cmp_si(x, y) \
- ( mpc_cmp_si_si ((x), (y), 0l) )
-#define mpc_ui_sub(x, y, z, r) mpc_ui_ui_sub (x, y, 0ul, z, r)
-
-/*
-   Define a fake mpfr_set_fr so that, for instance, mpc_set_fr_z would
-   be defined as follows:
-   mpc_set_fr_z (mpc_t rop, mpfr_t x, mpz_t y, mpc_rnd_t rnd)
-       MPC_SET_X_Y (fr, z, rop, x, y, rnd)
-*/
-#ifndef mpfr_set_fr
-#define mpfr_set_fr mpfr_set
-#endif
-#define MPC_SET_X_Y(real_t, imag_t, z, real_value, imag_value, rnd)     \
-  {                                                                     \
-    int _inex_re, _inex_im;                                             \
-    _inex_re = (mpfr_set_ ## real_t) (mpc_realref (z), (real_value), MPC_RND_RE (rnd)); \
-    _inex_im = (mpfr_set_ ## imag_t) (mpc_imagref (z), (imag_value), MPC_RND_IM (rnd)); \
-    return MPC_INEX (_inex_re, _inex_im);                               \
-  }
-
-#endif /* ifndef __MPC_H */
diff --git a/include/mpf2mpfr.h b/include/mpf2mpfr.h
deleted file mode 100644
index ef6ab82..0000000
--- a/include/mpf2mpfr.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* mpf2mpfr.h -- Compatibility include file with mpf.
-
-Copyright 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
-Contributed by the AriC and Caramel projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library 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 Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
-http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_FROM_MPF__
-#define __MPFR_FROM_MPF__
-
-/* types */
-#define mpf_t mpfr_t
-#define mpf_srcptr mpfr_srcptr
-#define mpf_ptr mpfr_ptr
-
-/* Get current Rounding Mode */
-#ifndef MPFR_DEFAULT_RND
-# define MPFR_DEFAULT_RND mpfr_get_default_rounding_mode ()
-#endif
-
-/* mpf_init initalizes at 0 */
-#undef mpf_init
-#define mpf_init(x) mpfr_init_set_ui ((x), 0, MPFR_DEFAULT_RND)
-#undef mpf_init2
-#define mpf_init2(x,p) (mpfr_init2((x),(p)), mpfr_set_ui ((x), 0, MPFR_DEFAULT_RND))
-
-/* functions which don't take as argument the rounding mode */
-#undef mpf_ceil
-#define mpf_ceil mpfr_ceil
-#undef mpf_clear
-#define mpf_clear mpfr_clear
-#undef mpf_cmp
-#define mpf_cmp mpfr_cmp
-#undef mpf_cmp_si
-#define mpf_cmp_si mpfr_cmp_si
-#undef mpf_cmp_ui
-#define mpf_cmp_ui mpfr_cmp_ui
-#undef mpf_cmp_d
-#define mpf_cmp_d mpfr_cmp_d
-#undef mpf_eq
-#define mpf_eq mpfr_eq
-#undef mpf_floor
-#define mpf_floor mpfr_floor
-#undef mpf_get_prec
-#define mpf_get_prec mpfr_get_prec
-#undef mpf_integer_p
-#define mpf_integer_p mpfr_integer_p
-#undef mpf_random2
-#define mpf_random2 mpfr_random2
-#undef mpf_set_default_prec
-#define mpf_set_default_prec mpfr_set_default_prec
-#undef mpf_get_default_prec
-#define mpf_get_default_prec mpfr_get_default_prec
-#undef mpf_set_prec
-#define mpf_set_prec mpfr_set_prec
-#undef mpf_set_prec_raw
-#define mpf_set_prec_raw(x,p) mpfr_prec_round(x,p,MPFR_DEFAULT_RND)
-#undef mpf_trunc
-#define mpf_trunc mpfr_trunc
-#undef mpf_sgn
-#define mpf_sgn mpfr_sgn
-#undef mpf_swap
-#define mpf_swap mpfr_swap
-#undef mpf_dump
-#define mpf_dump mpfr_dump
-
-/* functions which take as argument the rounding mode */
-#undef mpf_abs
-#define mpf_abs(x,y) mpfr_abs(x,y,MPFR_DEFAULT_RND)
-#undef mpf_add
-#define mpf_add(x,y,z) mpfr_add(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_add_ui
-#define mpf_add_ui(x,y,z) mpfr_add_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_div
-#define mpf_div(x,y,z) mpfr_div(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_div_ui
-#define mpf_div_ui(x,y,z) mpfr_div_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_div_2exp
-#define mpf_div_2exp(x,y,z) mpfr_div_2exp(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_fits_slong_p
-#define mpf_fits_slong_p(x) mpfr_fits_ulong_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_ulong_p
-#define mpf_fits_ulong_p(x) mpfr_fits_ulong_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_sint_p
-#define mpf_fits_sint_p(x) mpfr_fits_uint_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_uint_p
-#define mpf_fits_uint_p(x) mpfr_fits_uint_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_sshort_p
-#define mpf_fits_sshort_p(x) mpfr_fits_ushort_p(x,MPFR_DEFAULT_RND)
-#undef mpf_fits_ushort_p
-#define mpf_fits_ushort_p(x) mpfr_fits_ushort_p(x,MPFR_DEFAULT_RND)
-#undef mpf_get_str
-#define mpf_get_str(x,y,z,t,u) mpfr_get_str(x,y,z,t,u,MPFR_DEFAULT_RND)
-#undef mpf_get_d
-#define mpf_get_d(x) mpfr_get_d(x,MPFR_DEFAULT_RND)
-#undef mpf_get_d_2exp
-#define mpf_get_d_2exp(e,x) mpfr_get_d_2exp(e,x,MPFR_DEFAULT_RND)
-#undef mpf_get_ui
-#define mpf_get_ui(x) mpfr_get_ui(x,MPFR_DEFAULT_RND)
-#undef mpf_get_si
-#define mpf_get_si(x) mpfr_get_ui(x,MPFR_DEFAULT_RND)
-#undef mpf_inp_str
-#define mpf_inp_str(x,y,z) mpfr_inp_str(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_set_str
-#define mpf_set_str(x,y,z) mpfr_set_str(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_init_set
-#define mpf_init_set(x,y) mpfr_init_set(x,y,MPFR_DEFAULT_RND)
-#undef mpf_init_set_d
-#define mpf_init_set_d(x,y) mpfr_init_set_d(x,y,MPFR_DEFAULT_RND)
-#undef mpf_init_set_si
-#define mpf_init_set_si(x,y) mpfr_init_set_si(x,y,MPFR_DEFAULT_RND)
-#undef mpf_init_set_str
-#define mpf_init_set_str(x,y,z) mpfr_init_set_str(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_init_set_ui
-#define mpf_init_set_ui(x,y) mpfr_init_set_ui(x,y,MPFR_DEFAULT_RND)
-#undef mpf_mul
-#define mpf_mul(x,y,z) mpfr_mul(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_mul_2exp
-#define mpf_mul_2exp(x,y,z) mpfr_mul_2exp(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_mul_ui
-#define mpf_mul_ui(x,y,z) mpfr_mul_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_neg
-#define mpf_neg(x,y) mpfr_neg(x,y,MPFR_DEFAULT_RND)
-#undef mpf_out_str
-#define mpf_out_str(x,y,z,t) mpfr_out_str(x,y,z,t,MPFR_DEFAULT_RND)
-#undef mpf_pow_ui
-#define mpf_pow_ui(x,y,z) mpfr_pow_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_reldiff
-#define mpf_reldiff(x,y,z) mpfr_reldiff(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_set
-#define mpf_set(x,y) mpfr_set(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_d
-#define mpf_set_d(x,y) mpfr_set_d(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_q
-#define mpf_set_q(x,y) mpfr_set_q(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_si
-#define mpf_set_si(x,y) mpfr_set_si(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_ui
-#define mpf_set_ui(x,y) mpfr_set_ui(x,y,MPFR_DEFAULT_RND)
-#undef mpf_set_z
-#define mpf_set_z(x,y) mpfr_set_z(x,y,MPFR_DEFAULT_RND)
-#undef mpf_sqrt
-#define mpf_sqrt(x,y) mpfr_sqrt(x,y,MPFR_DEFAULT_RND)
-#undef mpf_sqrt_ui
-#define mpf_sqrt_ui(x,y) mpfr_sqrt_ui(x,y,MPFR_DEFAULT_RND)
-#undef mpf_sub
-#define mpf_sub(x,y,z) mpfr_sub(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_sub_ui
-#define mpf_sub_ui(x,y,z) mpfr_sub_ui(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_ui_div
-#define mpf_ui_div(x,y,z) mpfr_ui_div(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_ui_sub
-#define mpf_ui_sub(x,y,z) mpfr_ui_sub(x,y,z,MPFR_DEFAULT_RND)
-#undef mpf_urandomb
-#define mpf_urandomb(x,y,n) mpfr_urandomb(x,y)
-
-#undef mpz_set_f
-#define mpz_set_f(z,f) mpfr_get_z(z,f,MPFR_DEFAULT_RND)
-
-#endif /* __MPFR_FROM_MPF__ */
diff --git a/include/mpfr.h b/include/mpfr.h
deleted file mode 100644
index a3241dc..0000000
--- a/include/mpfr.h
+++ /dev/null
@@ -1,1059 +0,0 @@
-/* mpfr.h -- Include file for mpfr.
-
-Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
-Contributed by the AriC and Caramel projects, INRIA.
-
-This file is part of the GNU MPFR Library.
-
-The GNU MPFR Library is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 3 of the License, or (at your
-option) any later version.
-
-The GNU MPFR Library 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 Lesser General Public
-License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
-http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
-51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-#ifndef __MPFR_H
-#define __MPFR_H
-
-/* Define MPFR version number */
-#define MPFR_VERSION_MAJOR 3
-#define MPFR_VERSION_MINOR 1
-#define MPFR_VERSION_PATCHLEVEL 2
-#define MPFR_VERSION_STRING "3.1.2"
-
-/* Macros dealing with MPFR VERSION */
-#define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
-#define MPFR_VERSION \
-MPFR_VERSION_NUM(MPFR_VERSION_MAJOR,MPFR_VERSION_MINOR,MPFR_VERSION_PATCHLEVEL)
-
-/* Check if GMP is included, and try to include it (Works with local GMP) */
-#ifndef __GMP_H__
-# include <gmp.h>
-#endif
-
-/* GMP's internal __gmp_const macro has been removed on 2012-03-04:
-     http://gmplib.org:8000/gmp/rev/d287cfaf6732
-   const is standard and now assumed to be available. If the __gmp_const
-   definition is no longer present in GMP, this probably means that GMP
-   assumes that const is available; thus let's define it to const.
-   Note: this is a temporary fix that can be backported to previous MPFR
-   versions. In the future, __gmp_const should be replaced by const like
-   in GMP. */
-#ifndef __gmp_const
-# define __gmp_const const
-#endif
-
-/* Avoid some problems with macro expansion if the user defines macros
-   with the same name as keywords. By convention, identifiers and macro
-   names starting with mpfr_ are reserved by MPFR. */
-typedef void            mpfr_void;
-typedef int             mpfr_int;
-typedef unsigned int    mpfr_uint;
-typedef long            mpfr_long;
-typedef unsigned long   mpfr_ulong;
-typedef size_t          mpfr_size_t;
-
-/* Definition of rounding modes (DON'T USE MPFR_RNDNA!).
-   Warning! Changing the contents of this enum should be seen as an
-   interface change since the old and the new types are not compatible
-   (the integer type compatible with the enumerated type can even change,
-   see ISO C99, 6.7.2.2#4), and in Makefile.am, AGE should be set to 0.
-
-   MPFR_RNDU must appear just before MPFR_RNDD (see
-   MPFR_IS_RNDUTEST_OR_RNDDNOTTEST in mpfr-impl.h).
-
-   MPFR_RNDF has been added, though not implemented yet, in order to avoid
-   to break the ABI once faithful rounding gets implemented.
-
-   If you change the order of the rounding modes, please update the routines
-   in texceptions.c which assume 0=RNDN, 1=RNDZ, 2=RNDU, 3=RNDD, 4=RNDA.
-*/
-typedef enum {
-  MPFR_RNDN=0,  /* round to nearest, with ties to even */
-  MPFR_RNDZ,    /* round toward zero */
-  MPFR_RNDU,    /* round toward +Inf */
-  MPFR_RNDD,    /* round toward -Inf */
-  MPFR_RNDA,    /* round away from zero */
-  MPFR_RNDF,    /* faithful rounding (not implemented yet) */
-  MPFR_RNDNA=-1 /* round to nearest, with ties away from zero (mpfr_round) */
-} mpfr_rnd_t;
-
-/* kept for compatibility with MPFR 2.4.x and before */
-#define GMP_RNDN MPFR_RNDN
-#define GMP_RNDZ MPFR_RNDZ
-#define GMP_RNDU MPFR_RNDU
-#define GMP_RNDD MPFR_RNDD
-
-/* Note: With the following default choices for _MPFR_PREC_FORMAT and
-   _MPFR_EXP_FORMAT, mpfr_exp_t will be the same as [mp_exp_t] (at least
-   up to GMP 5). */
-
-/* Define precision: 1 (short), 2 (int) or 3 (long) (DON'T USE IT!) */
-#ifndef _MPFR_PREC_FORMAT
-# if __GMP_MP_SIZE_T_INT == 1
-#  define _MPFR_PREC_FORMAT 2
-# else
-#  define _MPFR_PREC_FORMAT 3
-# endif
-#endif
-
-/* Define exponent: 1 (short), 2 (int), 3 (long) or 4 (intmax_t)
-   (DON'T USE IT!) */
-#ifndef _MPFR_EXP_FORMAT
-# define _MPFR_EXP_FORMAT _MPFR_PREC_FORMAT
-#endif
-
-#if _MPFR_PREC_FORMAT > _MPFR_EXP_FORMAT
-# error "mpfr_prec_t must not be larger than mpfr_exp_t"
-#endif
-
-/* Let's make mpfr_prec_t signed in order to avoid problems due to the
-   usual arithmetic conversions when mixing mpfr_prec_t and mpfr_exp_t
-   in an expression (for error analysis) if casts are forgotten. */
-#if   _MPFR_PREC_FORMAT == 1
-typedef short mpfr_prec_t;
-typedef unsigned short mpfr_uprec_t;
-#elif _MPFR_PREC_FORMAT == 2
-typedef int   mpfr_prec_t;
-typedef unsigned int   mpfr_uprec_t;
-#elif _MPFR_PREC_FORMAT == 3
-typedef long  mpfr_prec_t;
-typedef unsigned long  mpfr_uprec_t;
-#else
-# error "Invalid MPFR Prec format"
-#endif
-
-/* Definition of precision limits without needing <limits.h> */
-/* Note: the casts allows the expression to yield the wanted behavior
-   for _MPFR_PREC_FORMAT == 1 (due to integer promotion rules). */
-#define MPFR_PREC_MIN 2
-#define MPFR_PREC_MAX ((mpfr_prec_t)((mpfr_uprec_t)(~(mpfr_uprec_t)0)>>1))
-
-/* Definition of sign */
-typedef int          mpfr_sign_t;
-
-/* Definition of the exponent. _MPFR_EXP_FORMAT must be large enough
-   so that mpfr_exp_t has at least 32 bits. */
-#if   _MPFR_EXP_FORMAT == 1
-typedef short mpfr_exp_t;
-typedef unsigned short mpfr_uexp_t;
-#elif _MPFR_EXP_FORMAT == 2
-typedef int mpfr_exp_t;
-typedef unsigned int mpfr_uexp_t;
-#elif _MPFR_EXP_FORMAT == 3
-typedef long mpfr_exp_t;
-typedef unsigned long mpfr_uexp_t;
-#elif _MPFR_EXP_FORMAT == 4
-/* Note: in this case, intmax_t and uintmax_t must be defined before
-   the inclusion of mpfr.h (we do not include <stdint.h> here because
-   of some non-ISO C99 implementations that support these types). */
-typedef intmax_t mpfr_exp_t;
-typedef uintmax_t mpfr_uexp_t;
-#else
-# error "Invalid MPFR Exp format"
-#endif
-
-/* Definition of the standard exponent limits */
-#define MPFR_EMAX_DEFAULT ((mpfr_exp_t) (((mpfr_ulong) 1 << 30) - 1))
-#define MPFR_EMIN_DEFAULT (-(MPFR_EMAX_DEFAULT))
-
-/* DON'T USE THIS! (For MPFR-public macros only, see below.)
-   The mpfr_sgn macro uses the fact that __MPFR_EXP_NAN and __MPFR_EXP_ZERO
-   are the smallest values. */
-#define __MPFR_EXP_MAX ((mpfr_exp_t) (((mpfr_uexp_t) -1) >> 1))
-#define __MPFR_EXP_NAN  (1 - __MPFR_EXP_MAX)
-#define __MPFR_EXP_ZERO (0 - __MPFR_EXP_MAX)
-#define __MPFR_EXP_INF  (2 - __MPFR_EXP_MAX)
-
-/* Definition of the main structure */
-typedef struct {
-  mpfr_prec_t  _mpfr_prec;
-  mpfr_sign_t  _mpfr_sign;
-  mpfr_exp_t   _mpfr_exp;
-  mp_limb_t   *_mpfr_d;
-} __mpfr_struct;
-
-/* Compatibility with previous types of MPFR */
-#ifndef mp_rnd_t
-# define mp_rnd_t  mpfr_rnd_t
-#endif
-#ifndef mp_prec_t
-# define mp_prec_t mpfr_prec_t
-#endif
-
-/*
-   The represented number is
-      _sign*(_d[k-1]/B+_d[k-2]/B^2+...+_d[0]/B^k)*2^_exp
-   where k=ceil(_mp_prec/GMP_NUMB_BITS) and B=2^GMP_NUMB_BITS.
-
-   For the msb (most significant bit) normalized representation, we must have
-      _d[k-1]>=B/2, unless the number is singular.
-
-   We must also have the last k*GMP_NUMB_BITS-_prec bits set to zero.
-*/
-
-typedef __mpfr_struct mpfr_t[1];
-typedef __mpfr_struct *mpfr_ptr;
-typedef __gmp_const __mpfr_struct *mpfr_srcptr;
-
-/* For those who need a direct and fast access to the sign field.
-   However it is not in the API, thus use it at your own risk: it might
-   not be supported, or change name, in further versions!
-   Unfortunately, it must be defined here (instead of MPFR's internal
-   header file mpfr-impl.h) because it is used by some macros below.
-*/
-#define MPFR_SIGN(x) ((x)->_mpfr_sign)
-
-/* Stack interface */
-typedef enum {
-  MPFR_NAN_KIND = 0,
-  MPFR_INF_KIND = 1, MPFR_ZERO_KIND = 2, MPFR_REGULAR_KIND = 3
-} mpfr_kind_t;
-
-/* GMP defines:
-    + size_t:                Standard size_t
-    + __GMP_ATTRIBUTE_PURE   Attribute for math functions.
-    + __GMP_NOTHROW          For C++: can't throw .
-    + __GMP_EXTERN_INLINE    Attribute for inline function.
-    * __gmp_const            const (Supports for K&R compiler only for mpfr.h).
-    + __GMP_DECLSPEC_EXPORT  compiling to go into a DLL
-    + __GMP_DECLSPEC_IMPORT  compiling to go into a application
-*/
-/* Extra MPFR defines */
-#define __MPFR_SENTINEL_ATTR
-#if defined (__GNUC__)
-# if __GNUC__ >= 4
-#  undef __MPFR_SENTINEL_ATTR
-#  define __MPFR_SENTINEL_ATTR __attribute__ ((sentinel))
-# endif
-#endif
-
-/* Prototypes: Support of K&R compiler */
-#if defined (__GMP_PROTO)
-# define _MPFR_PROTO __GMP_PROTO
-#elif defined (__STDC__) || defined (__cplusplus)
-# define _MPFR_PROTO(x) x
-#else
-# define _MPFR_PROTO(x) ()
-#endif
-/* Support for WINDOWS Dll:
-   Check if we are inside a MPFR build, and if so export the functions.
-   Otherwise does the same thing as GMP */
-#if defined(__MPFR_WITHIN_MPFR) && __GMP_LIBGMP_DLL
-# define __MPFR_DECLSPEC __GMP_DECLSPEC_EXPORT
-#else
-# define __MPFR_DECLSPEC __GMP_DECLSPEC
-#endif
-
-/* Use MPFR_DEPRECATED to mark MPFR functions, types or variables as
-   deprecated. Code inspired by Apache Subversion's svn_types.h file. */
-#if defined(__GNUC__) && \
-  (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
-# define MPFR_DEPRECATED __attribute__ ((deprecated))
-#elif defined(_MSC_VER) && _MSC_VER >= 1300
-# define MPFR_DEPRECATED __declspec(deprecated)
-#else
-# define MPFR_DEPRECATED
-#endif
-
-/* Note: In order to be declared, some functions need a specific
-   system header to be included *before* "mpfr.h". If the user
-   forgets to include the header, the MPFR function prototype in
-   the user object file is not correct. To avoid wrong results,
-   we raise a linker error in that case by changing their internal
-   name in the library (prefixed by __gmpfr instead of mpfr). See
-   the lines of the form "#define mpfr_xxx __gmpfr_xxx" below. */
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-__MPFR_DECLSPEC __gmp_const char * mpfr_get_version _MPFR_PROTO ((void));
-__MPFR_DECLSPEC __gmp_const char * mpfr_get_patches _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_buildopt_tls_p          _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_buildopt_decimal_p      _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_buildopt_gmpinternals_p _MPFR_PROTO ((void));
-__MPFR_DECLSPEC __gmp_const char * mpfr_buildopt_tune_case _MPFR_PROTO ((void));
-
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emin     _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int        mpfr_set_emin     _MPFR_PROTO ((mpfr_exp_t));
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emin_min _MPFR_PROTO ((void));
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emin_max _MPFR_PROTO ((void));
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emax     _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int        mpfr_set_emax     _MPFR_PROTO ((mpfr_exp_t));
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emax_min _MPFR_PROTO ((void));
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_emax_max _MPFR_PROTO ((void));
-
-__MPFR_DECLSPEC void mpfr_set_default_rounding_mode _MPFR_PROTO((mpfr_rnd_t));
-__MPFR_DECLSPEC mpfr_rnd_t mpfr_get_default_rounding_mode _MPFR_PROTO((void));
-__MPFR_DECLSPEC __gmp_const char *
-   mpfr_print_rnd_mode _MPFR_PROTO((mpfr_rnd_t));
-
-__MPFR_DECLSPEC void mpfr_clear_flags _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_clear_underflow _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_clear_overflow _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_clear_divby0 _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_clear_nanflag _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_clear_inexflag _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_clear_erangeflag _MPFR_PROTO ((void));
-
-__MPFR_DECLSPEC void mpfr_set_underflow _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_set_overflow _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_set_divby0 _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_set_nanflag _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_set_inexflag _MPFR_PROTO ((void));
-__MPFR_DECLSPEC void mpfr_set_erangeflag _MPFR_PROTO ((void));
-
-__MPFR_DECLSPEC int mpfr_underflow_p _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_overflow_p _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_divby0_p _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_nanflag_p _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_inexflag_p _MPFR_PROTO ((void));
-__MPFR_DECLSPEC int mpfr_erangeflag_p _MPFR_PROTO ((void));
-
-__MPFR_DECLSPEC int
-  mpfr_check_range _MPFR_PROTO ((mpfr_ptr, int, mpfr_rnd_t));
-
-__MPFR_DECLSPEC void mpfr_init2 _MPFR_PROTO ((mpfr_ptr, mpfr_prec_t));
-__MPFR_DECLSPEC void mpfr_init _MPFR_PROTO ((mpfr_ptr));
-__MPFR_DECLSPEC void mpfr_clear _MPFR_PROTO ((mpfr_ptr));
-
-__MPFR_DECLSPEC void
-  mpfr_inits2 _MPFR_PROTO ((mpfr_prec_t, mpfr_ptr, ...)) __MPFR_SENTINEL_ATTR;
-__MPFR_DECLSPEC void
-  mpfr_inits _MPFR_PROTO ((mpfr_ptr, ...)) __MPFR_SENTINEL_ATTR;
-__MPFR_DECLSPEC void
-  mpfr_clears _MPFR_PROTO ((mpfr_ptr, ...)) __MPFR_SENTINEL_ATTR;
-
-__MPFR_DECLSPEC int
-  mpfr_prec_round _MPFR_PROTO ((mpfr_ptr, mpfr_prec_t, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_can_round _MPFR_PROTO ((mpfr_srcptr, mpfr_exp_t, mpfr_rnd_t, mpfr_rnd_t,
-                               mpfr_prec_t));
-__MPFR_DECLSPEC mpfr_prec_t mpfr_min_prec _MPFR_PROTO ((mpfr_srcptr));
-
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_exp _MPFR_PROTO ((mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_set_exp _MPFR_PROTO ((mpfr_ptr, mpfr_exp_t));
-__MPFR_DECLSPEC mpfr_prec_t mpfr_get_prec _MPFR_PROTO((mpfr_srcptr));
-__MPFR_DECLSPEC void mpfr_set_prec _MPFR_PROTO((mpfr_ptr, mpfr_prec_t));
-__MPFR_DECLSPEC void mpfr_set_prec_raw _MPFR_PROTO((mpfr_ptr, mpfr_prec_t));
-__MPFR_DECLSPEC void mpfr_set_default_prec _MPFR_PROTO((mpfr_prec_t));
-__MPFR_DECLSPEC mpfr_prec_t mpfr_get_default_prec _MPFR_PROTO((void));
-
-__MPFR_DECLSPEC int mpfr_set_d _MPFR_PROTO ((mpfr_ptr, double, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_set_flt _MPFR_PROTO ((mpfr_ptr, float, mpfr_rnd_t));
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-__MPFR_DECLSPEC int mpfr_set_decimal64 _MPFR_PROTO ((mpfr_ptr, _Decimal64,
-                                                     mpfr_rnd_t));
-#endif
-__MPFR_DECLSPEC int
-  mpfr_set_ld _MPFR_PROTO ((mpfr_ptr, long double, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_z _MPFR_PROTO ((mpfr_ptr, mpz_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_z_2exp _MPFR_PROTO ((mpfr_ptr, mpz_srcptr, mpfr_exp_t, mpfr_rnd_t));
-__MPFR_DECLSPEC void mpfr_set_nan _MPFR_PROTO ((mpfr_ptr));
-__MPFR_DECLSPEC void mpfr_set_inf _MPFR_PROTO ((mpfr_ptr, int));
-__MPFR_DECLSPEC void mpfr_set_zero _MPFR_PROTO ((mpfr_ptr, int));
-__MPFR_DECLSPEC int
-  mpfr_set_f _MPFR_PROTO ((mpfr_ptr, mpf_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_get_f _MPFR_PROTO ((mpf_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_set_si _MPFR_PROTO ((mpfr_ptr, long, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_ui _MPFR_PROTO ((mpfr_ptr, unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_si_2exp _MPFR_PROTO ((mpfr_ptr, long, mpfr_exp_t, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_ui_2exp _MPFR_PROTO ((mpfr_ptr,unsigned long,mpfr_exp_t,mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_q _MPFR_PROTO ((mpfr_ptr, mpq_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_str _MPFR_PROTO ((mpfr_ptr, __gmp_const char *, int, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_init_set_str _MPFR_PROTO ((mpfr_ptr, __gmp_const char *, int,
-                                  mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set4 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t, int));
-__MPFR_DECLSPEC int
-  mpfr_abs _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_neg _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_signbit _MPFR_PROTO ((mpfr_srcptr));
-__MPFR_DECLSPEC int
-  mpfr_setsign _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, int, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_copysign _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC mpfr_exp_t mpfr_get_z_2exp _MPFR_PROTO ((mpz_ptr, mpfr_srcptr));
-__MPFR_DECLSPEC float mpfr_get_flt _MPFR_PROTO ((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC double mpfr_get_d _MPFR_PROTO ((mpfr_srcptr, mpfr_rnd_t));
-#ifdef MPFR_WANT_DECIMAL_FLOATS
-__MPFR_DECLSPEC _Decimal64 mpfr_get_decimal64 _MPFR_PROTO ((mpfr_srcptr,
-                                                           mpfr_rnd_t));
-#endif
-__MPFR_DECLSPEC long double mpfr_get_ld _MPFR_PROTO ((mpfr_srcptr,
-                                                      mpfr_rnd_t));
-__MPFR_DECLSPEC double mpfr_get_d1 _MPFR_PROTO ((mpfr_srcptr));
-__MPFR_DECLSPEC double mpfr_get_d_2exp _MPFR_PROTO ((long*, mpfr_srcptr,
-                                                     mpfr_rnd_t));
-__MPFR_DECLSPEC long double mpfr_get_ld_2exp _MPFR_PROTO ((long*, mpfr_srcptr,
-                                                           mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_frexp _MPFR_PROTO ((mpfr_exp_t*, mpfr_ptr,
-                                             mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC long mpfr_get_si _MPFR_PROTO ((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC unsigned long mpfr_get_ui _MPFR_PROTO ((mpfr_srcptr,
-                                                        mpfr_rnd_t));
-__MPFR_DECLSPEC char*mpfr_get_str _MPFR_PROTO ((char*, mpfr_exp_t*, int, size_t,
-                                                mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_get_z _MPFR_PROTO ((mpz_ptr z, mpfr_srcptr f,
-                                             mpfr_rnd_t));
-
-__MPFR_DECLSPEC void mpfr_free_str _MPFR_PROTO ((char *));
-
-__MPFR_DECLSPEC int mpfr_urandom _MPFR_PROTO ((mpfr_ptr, gmp_randstate_t,
-                                               mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_grandom _MPFR_PROTO ((mpfr_ptr, mpfr_ptr, gmp_randstate_t,
-                                               mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_urandomb _MPFR_PROTO ((mpfr_ptr, gmp_randstate_t));
-
-__MPFR_DECLSPEC void mpfr_nextabove _MPFR_PROTO ((mpfr_ptr));
-__MPFR_DECLSPEC void mpfr_nextbelow _MPFR_PROTO ((mpfr_ptr));
-__MPFR_DECLSPEC void mpfr_nexttoward _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr));
-
-__MPFR_DECLSPEC int mpfr_printf _MPFR_PROTO ((__gmp_const char*, ...));
-__MPFR_DECLSPEC int mpfr_asprintf _MPFR_PROTO ((char**, __gmp_const char*,
-                                                ...));
-__MPFR_DECLSPEC int mpfr_sprintf _MPFR_PROTO ((char*, __gmp_const char*,
-                                               ...));
-__MPFR_DECLSPEC int mpfr_snprintf _MPFR_PROTO ((char*, size_t,
-                                                __gmp_const char*, ...));
-
-__MPFR_DECLSPEC int mpfr_pow _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                           mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_pow_si _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              long int, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_pow_ui _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              unsigned long int, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_ui_pow_ui _MPFR_PROTO ((mpfr_ptr, unsigned long int,
-                                             unsigned long int, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_ui_pow _MPFR_PROTO ((mpfr_ptr, unsigned long int,
-                                              mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_pow_z _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpz_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_sqrt _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                            mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sqrt_ui _MPFR_PROTO ((mpfr_ptr, unsigned long,
-                                               mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_rec_sqrt _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_add _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                           mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sub _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                           mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_mul _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                           mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                           mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_add_ui _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sub_ui _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_ui_sub _MPFR_PROTO ((mpfr_ptr, unsigned long,
-                                              mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_mul_ui _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_ui _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_ui_div _MPFR_PROTO ((mpfr_ptr, unsigned long,
-                                              mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_add_si _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              long int, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sub_si _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              long int, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_si_sub _MPFR_PROTO ((mpfr_ptr, long int,
-                                              mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_mul_si _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              long int, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_si _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              long int, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_si_div _MPFR_PROTO ((mpfr_ptr, long int,
-                                              mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_add_d _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              double, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sub_d _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              double, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_d_sub _MPFR_PROTO ((mpfr_ptr, double,
-                                              mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_mul_d _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              double, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_d _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                              double, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_d_div _MPFR_PROTO ((mpfr_ptr, double,
-                                              mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_sqr _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_const_pi _MPFR_PROTO ((mpfr_ptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_const_log2 _MPFR_PROTO ((mpfr_ptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_const_euler _MPFR_PROTO ((mpfr_ptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_const_catalan _MPFR_PROTO ((mpfr_ptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_agm _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
-                                           mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_log _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_log2 _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_log10 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_log1p _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_exp _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_exp2 _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_exp10 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_expm1 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_eint _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_li2 _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_cmp  _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_cmp3 _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr, int));
-__MPFR_DECLSPEC int mpfr_cmp_d _MPFR_PROTO ((mpfr_srcptr, double));
-__MPFR_DECLSPEC int mpfr_cmp_ld _MPFR_PROTO ((mpfr_srcptr, long double));
-__MPFR_DECLSPEC int mpfr_cmpabs _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_cmp_ui _MPFR_PROTO ((mpfr_srcptr, unsigned long));
-__MPFR_DECLSPEC int mpfr_cmp_si _MPFR_PROTO ((mpfr_srcptr, long));
-__MPFR_DECLSPEC int mpfr_cmp_ui_2exp _MPFR_PROTO ((mpfr_srcptr, unsigned long,
-                                                   mpfr_exp_t));
-__MPFR_DECLSPEC int mpfr_cmp_si_2exp _MPFR_PROTO ((mpfr_srcptr, long,
-                                                   mpfr_exp_t));
-__MPFR_DECLSPEC void mpfr_reldiff _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_eq _MPFR_PROTO((mpfr_srcptr, mpfr_srcptr,
-                                         unsigned long));
-__MPFR_DECLSPEC int mpfr_sgn _MPFR_PROTO ((mpfr_srcptr));
-
-__MPFR_DECLSPEC int mpfr_mul_2exp _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_2exp _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_mul_2ui _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                               unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_2ui _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                               unsigned long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_mul_2si _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                               long, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_2si _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                               long, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_rint _MPFR_PROTO((mpfr_ptr,mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_round _MPFR_PROTO((mpfr_ptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_trunc _MPFR_PROTO((mpfr_ptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_ceil _MPFR_PROTO((mpfr_ptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_floor _MPFR_PROTO((mpfr_ptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_rint_round _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                  mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_rint_trunc _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                  mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_rint_ceil _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                 mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_rint_floor _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                  mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_frac _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_modf _MPFR_PROTO ((mpfr_ptr, mpfr_ptr, mpfr_srcptr,
-                                                  mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_remquo _MPFR_PROTO ((mpfr_ptr, long*, mpfr_srcptr,
-                                              mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_remainder _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                 mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fmod _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                                 mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_fits_ulong_p _MPFR_PROTO((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fits_slong_p _MPFR_PROTO((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fits_uint_p _MPFR_PROTO((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fits_sint_p _MPFR_PROTO((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fits_ushort_p _MPFR_PROTO((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fits_sshort_p _MPFR_PROTO((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fits_uintmax_p _MPFR_PROTO((mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fits_intmax_p _MPFR_PROTO((mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC void mpfr_extract _MPFR_PROTO ((mpz_ptr, mpfr_srcptr,
-                                                unsigned int));
-__MPFR_DECLSPEC void mpfr_swap _MPFR_PROTO ((mpfr_ptr, mpfr_ptr));
-__MPFR_DECLSPEC void mpfr_dump _MPFR_PROTO ((mpfr_srcptr));
-
-__MPFR_DECLSPEC int mpfr_nan_p _MPFR_PROTO((mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_inf_p _MPFR_PROTO((mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_number_p _MPFR_PROTO((mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_integer_p _MPFR_PROTO ((mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_zero_p _MPFR_PROTO ((mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_regular_p _MPFR_PROTO ((mpfr_srcptr));
-
-__MPFR_DECLSPEC int mpfr_greater_p _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_greaterequal_p _MPFR_PROTO ((mpfr_srcptr,
-                                                      mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_less_p _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_lessequal_p _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_lessgreater_p _MPFR_PROTO((mpfr_srcptr,mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_equal_p _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr));
-__MPFR_DECLSPEC int mpfr_unordered_p _MPFR_PROTO ((mpfr_srcptr, mpfr_srcptr));
-
-__MPFR_DECLSPEC int mpfr_atanh _MPFR_PROTO((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_acosh _MPFR_PROTO((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_asinh _MPFR_PROTO((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_cosh _MPFR_PROTO((mpfr_ptr,mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sinh _MPFR_PROTO((mpfr_ptr,mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_tanh _MPFR_PROTO((mpfr_ptr,mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sinh_cosh _MPFR_PROTO ((mpfr_ptr, mpfr_ptr,
-                                               mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_sech _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_csch _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_coth _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_acos _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_asin _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_atan _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sin _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sin_cos _MPFR_PROTO ((mpfr_ptr, mpfr_ptr,
-                                               mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_cos _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_tan _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_atan2 _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_srcptr,
-                                             mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sec _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_csc _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_cot _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_hypot _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_erf _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_erfc _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_cbrt _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_root _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,unsigned long,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_gamma _MPFR_PROTO((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_lngamma _MPFR_PROTO((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_lgamma _MPFR_PROTO((mpfr_ptr,int*,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_digamma _MPFR_PROTO((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_zeta _MPFR_PROTO ((mpfr_ptr,mpfr_srcptr,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_zeta_ui _MPFR_PROTO ((mpfr_ptr,unsigned long,mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fac_ui _MPFR_PROTO ((mpfr_ptr, unsigned long int,
-                                              mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_j0 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_j1 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_jn _MPFR_PROTO ((mpfr_ptr, long, mpfr_srcptr,
-                                          mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_y0 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_y1 _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_yn _MPFR_PROTO ((mpfr_ptr, long, mpfr_srcptr,
-                                          mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_ai _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_min _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
-                                           mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_max _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
-                                           mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_dim _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
-                                           mpfr_rnd_t));
-
-__MPFR_DECLSPEC int mpfr_mul_z _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpz_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_z _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpz_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_add_z _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpz_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sub_z _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpz_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_z_sub _MPFR_PROTO ((mpfr_ptr, mpz_srcptr,
-                                             mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_cmp_z _MPFR_PROTO ((mpfr_srcptr, mpz_srcptr));
-
-__MPFR_DECLSPEC int mpfr_mul_q _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpq_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_div_q _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpq_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_add_q _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpq_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sub_q _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr,
-                                             mpq_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_cmp_q _MPFR_PROTO ((mpfr_srcptr, mpq_srcptr));
-
-__MPFR_DECLSPEC int mpfr_cmp_f _MPFR_PROTO ((mpfr_srcptr, mpf_srcptr));
-
-__MPFR_DECLSPEC int mpfr_fma _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
-                                           mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_fms _MPFR_PROTO ((mpfr_ptr, mpfr_srcptr, mpfr_srcptr,
-                                           mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_sum _MPFR_PROTO ((mpfr_ptr, mpfr_ptr *__gmp_const,
-                                           unsigned long, mpfr_rnd_t));
-
-__MPFR_DECLSPEC void mpfr_free_cache _MPFR_PROTO ((void));
-
-__MPFR_DECLSPEC int  mpfr_subnormalize _MPFR_PROTO ((mpfr_ptr, int,
-                                                     mpfr_rnd_t));
-
-__MPFR_DECLSPEC int  mpfr_strtofr _MPFR_PROTO ((mpfr_ptr, __gmp_const char *,
-                                                char **, int, mpfr_rnd_t));
-
-__MPFR_DECLSPEC size_t mpfr_custom_get_size   _MPFR_PROTO ((mpfr_prec_t));
-__MPFR_DECLSPEC void   mpfr_custom_init    _MPFR_PROTO ((void *, mpfr_prec_t));
-__MPFR_DECLSPEC void * mpfr_custom_get_significand _MPFR_PROTO ((mpfr_srcptr));
-__MPFR_DECLSPEC mpfr_exp_t mpfr_custom_get_exp  _MPFR_PROTO ((mpfr_srcptr));
-__MPFR_DECLSPEC void   mpfr_custom_move       _MPFR_PROTO ((mpfr_ptr, void *));
-__MPFR_DECLSPEC void   mpfr_custom_init_set   _MPFR_PROTO ((mpfr_ptr, int,
-                                             mpfr_exp_t, mpfr_prec_t, void *));
-__MPFR_DECLSPEC int    mpfr_custom_get_kind   _MPFR_PROTO ((mpfr_srcptr));
-
-#if defined (__cplusplus)
-}
-#endif
-
-/* Define MPFR_USE_EXTENSION to avoid "gcc -pedantic" warnings. */
-#ifndef MPFR_EXTENSION
-# if defined(MPFR_USE_EXTENSION)
-#  define MPFR_EXTENSION __extension__
-# else
-#  define MPFR_EXTENSION
-# endif
-#endif
-
-/* Warning! This macro doesn't work with K&R C (e.g., compare the "gcc -E"
-   output with and without -traditional) and shouldn't be used internally.
-   For public use only, but see the MPFR manual. */
-#define MPFR_DECL_INIT(_x, _p)                                        \
-  MPFR_EXTENSION mp_limb_t __gmpfr_local_tab_##_x[((_p)-1)/GMP_NUMB_BITS+1]; \
-  MPFR_EXTENSION mpfr_t _x = {{(_p),1,__MPFR_EXP_NAN,__gmpfr_local_tab_##_x}}
-
-/* Fast access macros to replace function interface.
-   If the USER don't want to use the macro interface, let him make happy
-   even if it produces faster and smaller code. */
-#ifndef MPFR_USE_NO_MACRO
-
-/* Inlining theses functions is both faster and smaller */
-#define mpfr_nan_p(_x)      ((_x)->_mpfr_exp == __MPFR_EXP_NAN)
-#define mpfr_inf_p(_x)      ((_x)->_mpfr_exp == __MPFR_EXP_INF)
-#define mpfr_zero_p(_x)     ((_x)->_mpfr_exp == __MPFR_EXP_ZERO)
-#define mpfr_regular_p(_x)  ((_x)->_mpfr_exp >  __MPFR_EXP_INF)
-#define mpfr_sgn(_x)                                               \
-  ((_x)->_mpfr_exp < __MPFR_EXP_INF ?                              \
-   (mpfr_nan_p (_x) ? mpfr_set_erangeflag () : (mpfr_void) 0), 0 : \
-   MPFR_SIGN (_x))
-
-/* Prevent them from using as lvalues */
-#define MPFR_VALUE_OF(x)  (0 ? (x) : (x))
-#define mpfr_get_prec(_x) MPFR_VALUE_OF((_x)->_mpfr_prec)
-#define mpfr_get_exp(_x)  MPFR_VALUE_OF((_x)->_mpfr_exp)
-/* Note: if need be, the MPFR_VALUE_OF can be used for other expressions
-   (of any type). Thanks to Wojtek Lerch and Tim Rentsch for the idea. */
-
-#define mpfr_round(a,b) mpfr_rint((a), (b), MPFR_RNDNA)
-#define mpfr_trunc(a,b) mpfr_rint((a), (b), MPFR_RNDZ)
-#define mpfr_ceil(a,b)  mpfr_rint((a), (b), MPFR_RNDU)
-#define mpfr_floor(a,b) mpfr_rint((a), (b), MPFR_RNDD)
-
-#define mpfr_cmp_ui(b,i) mpfr_cmp_ui_2exp((b),(i),0)
-#define mpfr_cmp_si(b,i) mpfr_cmp_si_2exp((b),(i),0)
-#define mpfr_set(a,b,r)  mpfr_set4(a,b,r,MPFR_SIGN(b))
-#define mpfr_abs(a,b,r)  mpfr_set4(a,b,r,1)
-#define mpfr_copysign(a,b,c,r) mpfr_set4(a,b,r,MPFR_SIGN(c))
-#define mpfr_setsign(a,b,s,r) mpfr_set4(a,b,r,(s) ? -1 : 1)
-#define mpfr_signbit(x)  (MPFR_SIGN(x) < 0)
-#define mpfr_cmp(b, c)   mpfr_cmp3(b, c, 1)
-#define mpfr_mul_2exp(y,x,n,r) mpfr_mul_2ui((y),(x),(n),(r))
-#define mpfr_div_2exp(y,x,n,r) mpfr_div_2ui((y),(x),(n),(r))
-
-
-/* When using GCC, optimize certain common comparisons and affectations.
-   + Remove ICC since it defines __GNUC__ but produces a
-     huge number of warnings if you use this code.
-     VL: I couldn't reproduce a single warning when enabling these macros
-     with icc 10.1 20080212 on Itanium. But with this version, __ICC isn't
-     defined (__INTEL_COMPILER is, though), so that these macros are enabled
-     anyway. Checking with other ICC versions is needed. Possibly detect
-     whether warnings are produced or not with a configure test.
-   + Remove C++ too, since it complains too much. */
-/* Added casts to improve robustness in case of undefined behavior and
-   compiler extensions based on UB (in particular -fwrapv). MPFR doesn't
-   use such extensions, but these macros will be used by 3rd-party code,
-   where such extensions may be required.
-   Moreover casts to unsigned long have been added to avoid warnings in
-   programs that use MPFR and are compiled with -Wconversion; such casts
-   are OK since if X is a constant expression, then (unsigned long) X is
-   also a constant expression, so that the optimizations still work. The
-   warnings are probably related to the following two bugs:
-     http://gcc.gnu.org/bugzilla/show_bug.cgi?id=4210
-     http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38470 (possibly a variant)
-   and the casts could be removed once these bugs are fixed.
-   Casts shouldn't be used on the generic calls (to the ..._2exp functions),
-   where implicit conversions are performed. Indeed, having at least one
-   implicit conversion in the macro allows the compiler to emit diagnostics
-   when normally expected, for instance in the following call:
-     mpfr_set_ui (x, "foo", MPFR_RNDN);
-   If this is not possible (for future macros), one of the tricks described
-   on http://groups.google.com/group/comp.std.c/msg/e92abd24bf9eaf7b could
-   be used. */
-#if defined (__GNUC__) && !defined(__ICC) && !defined(__cplusplus)
-#if (__GNUC__ >= 2)
-#undef mpfr_cmp_ui
-/* We use the fact that mpfr_sgn on NaN sets the erange flag and returns 0.
-   But warning! mpfr_sgn is specified as a macro in the API, thus the macro
-   mustn't be used if side effects are possible, like here. */
-#define mpfr_cmp_ui(_f,_u)                                      \
-  (__builtin_constant_p (_u) && (mpfr_ulong) (_u) == 0 ?        \
-   (mpfr_sgn) (_f) :                                            \
-   mpfr_cmp_ui_2exp ((_f), (_u), 0))
-#undef mpfr_cmp_si
-#define mpfr_cmp_si(_f,_s)                                      \
-  (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ?         \
-   mpfr_cmp_ui ((_f), (mpfr_ulong) (mpfr_long) (_s)) :          \
-   mpfr_cmp_si_2exp ((_f), (_s), 0))
-#if __GNUC__ > 2 || __GNUC_MINOR__ >= 95
-#undef mpfr_set_ui
-#define mpfr_set_ui(_f,_u,_r)                                   \
-  (__builtin_constant_p (_u) && (mpfr_ulong) (_u) == 0 ?        \
-   __extension__ ({                                             \
-       mpfr_ptr _p = (_f);                                      \
-       _p->_mpfr_sign = 1;                                      \
-       _p->_mpfr_exp = __MPFR_EXP_ZERO;                         \
-       (mpfr_void) (_r); 0; }) :                                \
-   mpfr_set_ui_2exp ((_f), (_u), 0, (_r)))
-#endif
-#undef mpfr_set_si
-#define mpfr_set_si(_f,_s,_r)                                   \
-  (__builtin_constant_p (_s) && (mpfr_long) (_s) >= 0 ?         \
-   mpfr_set_ui ((_f), (mpfr_ulong) (mpfr_long) (_s), (_r)) :    \
-   mpfr_set_si_2exp ((_f), (_s), 0, (_r)))
-#endif
-#endif
-
-/* Macro version of mpfr_stack interface for fast access */
-#define mpfr_custom_get_size(p) ((mpfr_size_t)                          \
-       (((p)+GMP_NUMB_BITS-1)/GMP_NUMB_BITS*sizeof (mp_limb_t)))
-#define mpfr_custom_init(m,p) do {} while (0)
-#define mpfr_custom_get_significand(x) ((mpfr_void*)((x)->_mpfr_d))
-#define mpfr_custom_get_exp(x) ((x)->_mpfr_exp)
-#define mpfr_custom_move(x,m) do { ((x)->_mpfr_d = (mp_limb_t*)(m)); } while (0)
-#define mpfr_custom_init_set(x,k,e,p,m) do {                   \
-  mpfr_ptr _x = (x);                                           \
-  mpfr_exp_t _e;                                               \
-  mpfr_kind_t _t;                                              \
-  mpfr_int _s, _k;                                             \
-  _k = (k);                                                    \
-  if (_k >= 0)  {                                              \
-    _t = (mpfr_kind_t) _k;                                     \
-    _s = 1;                                                    \
-  } else {                                                     \
-    _t = (mpfr_kind_t) -k;                                     \
-    _s = -1;                                                   \
-  }                                                            \
-  _e = _t == MPFR_REGULAR_KIND ? (e) :                         \
-    _t == MPFR_NAN_KIND ? __MPFR_EXP_NAN :                     \
-    _t == MPFR_INF_KIND ? __MPFR_EXP_INF : __MPFR_EXP_ZERO;    \
-  _x->_mpfr_prec = (p);                                        \
-  _x->_mpfr_sign = _s;                                         \
-  _x->_mpfr_exp  = _e;                                         \
-  _x->_mpfr_d    = (mp_limb_t*) (m);                           \
- } while (0)
-#define mpfr_custom_get_kind(x)                                         \
-  ( (x)->_mpfr_exp >  __MPFR_EXP_INF ?                                  \
-    (mpfr_int) MPFR_REGULAR_KIND * MPFR_SIGN (x)                        \
-  : (x)->_mpfr_exp == __MPFR_EXP_INF ?                                  \
-    (mpfr_int) MPFR_INF_KIND * MPFR_SIGN (x)                            \
-  : (x)->_mpfr_exp == __MPFR_EXP_NAN ? (mpfr_int) MPFR_NAN_KIND         \
-  : (mpfr_int) MPFR_ZERO_KIND * MPFR_SIGN (x) )
-
-
-#endif /* MPFR_USE_NO_MACRO */
-
-/* Theses are defined to be macros */
-#define mpfr_init_set_si(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_si((x), (i), (rnd)) )
-#define mpfr_init_set_ui(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_ui((x), (i), (rnd)) )
-#define mpfr_init_set_d(x, d, rnd) \
- ( mpfr_init(x), mpfr_set_d((x), (d), (rnd)) )
-#define mpfr_init_set_ld(x, d, rnd) \
- ( mpfr_init(x), mpfr_set_ld((x), (d), (rnd)) )
-#define mpfr_init_set_z(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_z((x), (i), (rnd)) )
-#define mpfr_init_set_q(x, i, rnd) \
- ( mpfr_init(x), mpfr_set_q((x), (i), (rnd)) )
-#define mpfr_init_set(x, y, rnd) \
- ( mpfr_init(x), mpfr_set((x), (y), (rnd)) )
-#define mpfr_init_set_f(x, y, rnd) \
- ( mpfr_init(x), mpfr_set_f((x), (y), (rnd)) )
-
-/* Compatibility layer -- obsolete functions and macros */
-/* Note: it is not possible to output warnings, unless one defines
- * a deprecated variable and uses it, e.g.
- *   MPFR_DEPRECATED extern int mpfr_deprecated_feature;
- *   #define MPFR_EMIN_MIN ((void)mpfr_deprecated_feature,mpfr_get_emin_min())
- * (the cast to void avoids a warning because the left-hand operand
- * has no effect).
- */
-#define mpfr_cmp_abs mpfr_cmpabs
-#define mpfr_round_prec(x,r,p) mpfr_prec_round(x,p,r)
-#define __gmp_default_rounding_mode (mpfr_get_default_rounding_mode())
-#define __mpfr_emin (mpfr_get_emin())
-#define __mpfr_emax (mpfr_get_emax())
-#define __mpfr_default_fp_bit_precision (mpfr_get_default_fp_bit_precision())
-#define MPFR_EMIN_MIN mpfr_get_emin_min()
-#define MPFR_EMIN_MAX mpfr_get_emin_max()
-#define MPFR_EMAX_MIN mpfr_get_emax_min()
-#define MPFR_EMAX_MAX mpfr_get_emax_max()
-#define mpfr_version (mpfr_get_version())
-#ifndef mpz_set_fr
-# define mpz_set_fr mpfr_get_z
-#endif
-#define mpfr_add_one_ulp(x,r) \
- (mpfr_sgn (x) > 0 ? mpfr_nextabove (x) : mpfr_nextbelow (x))
-#define mpfr_sub_one_ulp(x,r) \
- (mpfr_sgn (x) > 0 ? mpfr_nextbelow (x) : mpfr_nextabove (x))
-#define mpfr_get_z_exp mpfr_get_z_2exp
-#define mpfr_custom_get_mantissa mpfr_custom_get_significand
-
-#endif /* __MPFR_H */
-
-
-/* Check if <stdint.h> / <inttypes.h> is included or if the user
-   explicitly wants intmax_t. Automatical detection is done by
-   checking:
-     - INTMAX_C and UINTMAX_C, but not if the compiler is a C++ one
-       (as suggested by Patrick Pelissier) because the test does not
-       work well in this case. See:
-         https://sympa.inria.fr/sympa/arc/mpfr/2010-02/msg00025.html
-       We do not check INTMAX_MAX and UINTMAX_MAX because under Solaris,
-       these macros are always defined by <limits.h> (i.e. even when
-       <stdint.h> and <inttypes.h> are not included).
-     - _STDINT_H (defined by the glibc), _STDINT_H_ (defined under
-       Mac OS X) and _STDINT (defined under MS Visual Studio), but
-       this test may not work with all implementations.
-       Portable software should not rely on these tests.
-*/
-#if (defined (INTMAX_C) && defined (UINTMAX_C) && !defined(__cplusplus)) || \
-  defined (MPFR_USE_INTMAX_T) || \
-  defined (_STDINT_H) || defined (_STDINT_H_) || defined (_STDINT)
-# ifndef _MPFR_H_HAVE_INTMAX_T
-# define _MPFR_H_HAVE_INTMAX_T 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_set_sj __gmpfr_set_sj
-#define mpfr_set_sj_2exp __gmpfr_set_sj_2exp
-#define mpfr_set_uj __gmpfr_set_uj
-#define mpfr_set_uj_2exp __gmpfr_set_uj_2exp
-#define mpfr_get_sj __gmpfr_mpfr_get_sj
-#define mpfr_get_uj __gmpfr_mpfr_get_uj
-__MPFR_DECLSPEC int mpfr_set_sj _MPFR_PROTO ((mpfr_t, intmax_t, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_sj_2exp _MPFR_PROTO ((mpfr_t, intmax_t, intmax_t, mpfr_rnd_t));
-__MPFR_DECLSPEC int mpfr_set_uj _MPFR_PROTO ((mpfr_t, uintmax_t, mpfr_rnd_t));
-__MPFR_DECLSPEC int
-  mpfr_set_uj_2exp _MPFR_PROTO ((mpfr_t, uintmax_t, intmax_t, mpfr_rnd_t));
-__MPFR_DECLSPEC intmax_t mpfr_get_sj _MPFR_PROTO ((mpfr_srcptr, mpfr_rnd_t));
-__MPFR_DECLSPEC uintmax_t mpfr_get_uj _MPFR_PROTO ((mpfr_srcptr, mpfr_rnd_t));
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_INTMAX_T */
-#endif
-
-
-/* Check if <stdio.h> has been included or if the user wants FILE */
-#if defined (_GMP_H_HAVE_FILE) || defined (MPFR_USE_FILE)
-# ifndef _MPFR_H_HAVE_FILE
-# define _MPFR_H_HAVE_FILE 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_inp_str __gmpfr_inp_str
-#define mpfr_out_str __gmpfr_out_str
-__MPFR_DECLSPEC size_t mpfr_inp_str _MPFR_PROTO ((mpfr_ptr, FILE*, int,
-                                                  mpfr_rnd_t));
-__MPFR_DECLSPEC size_t mpfr_out_str _MPFR_PROTO ((FILE*, int, size_t,
-                                                  mpfr_srcptr, mpfr_rnd_t));
-#define mpfr_fprintf __gmpfr_fprintf
-__MPFR_DECLSPEC int mpfr_fprintf _MPFR_PROTO ((FILE*, __gmp_const char*,
-                                               ...));
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_FILE */
-#endif
-
-
-/* check if <stdarg.h> has been included or if the user wants va_list */
-#if defined (_GMP_H_HAVE_VA_LIST) || defined (MPFR_USE_VA_LIST)
-# ifndef _MPFR_H_HAVE_VA_LIST
-# define _MPFR_H_HAVE_VA_LIST 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_vprintf __gmpfr_vprintf
-#define mpfr_vasprintf __gmpfr_vasprintf
-#define mpfr_vsprintf __gmpfr_vsprintf
-#define mpfr_vsnprintf __gmpfr_vsnprintf
-__MPFR_DECLSPEC int mpfr_vprintf _MPFR_PROTO ((__gmp_const char*, va_list));
-__MPFR_DECLSPEC int mpfr_vasprintf _MPFR_PROTO ((char**, __gmp_const char*,
-                                                 va_list));
-__MPFR_DECLSPEC int mpfr_vsprintf _MPFR_PROTO ((char*, __gmp_const char*,
-                                               va_list));
-__MPFR_DECLSPEC int mpfr_vsnprintf _MPFR_PROTO ((char*, size_t,
-                                                __gmp_const char*, va_list));
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_VA_LIST */
-#endif
-
-
-/* check if <stdarg.h> has been included and if FILE is available
-   (see above) */
-#if defined (_MPFR_H_HAVE_VA_LIST) && defined (_MPFR_H_HAVE_FILE)
-# ifndef _MPFR_H_HAVE_VA_LIST_FILE
-# define _MPFR_H_HAVE_VA_LIST_FILE 1
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define mpfr_vfprintf __gmpfr_vfprintf
-__MPFR_DECLSPEC int mpfr_vfprintf _MPFR_PROTO ((FILE*, __gmp_const char*,
-                                                va_list));
-
-#if defined (__cplusplus)
-}
-#endif
-
-# endif /* _MPFR_H_HAVE_VA_LIST_FILE */
-#endif
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbegin.o b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbegin.o
deleted file mode 100644
index bddff5e..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbegin.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbeginS.o b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbeginS.o
deleted file mode 100644
index 1d2e1dc..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbeginS.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbeginT.o b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbeginT.o
deleted file mode 100644
index d4f3edb..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtbeginT.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtend.o b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtend.o
deleted file mode 100644
index ab12521..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtend.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtendS.o b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtendS.o
deleted file mode 100644
index ac9e9be..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtendS.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtfastmath.o b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtfastmath.o
deleted file mode 100644
index d17e113..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/crtfastmath.o
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include-fixed/limits.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include-fixed/limits.h
deleted file mode 100644
index 8c6a4d3..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include-fixed/limits.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Copyright (C) 1992-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option) any later
-version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* This administrivia gets added to the beginning of limits.h
-   if the system has its own version of limits.h.  */
-
-/* We use _GCC_LIMITS_H_ because we want this not to match
-   any macros that the system's limits.h uses for its own purposes.  */
-#ifndef _GCC_LIMITS_H_  /* Terminated in limity.h.  */
-#define _GCC_LIMITS_H_
-
-#ifndef _LIBC_LIMITS_H_
-/* Use "..." so that we find syslimits.h only in this same directory.  */
-#include "syslimits.h"
-#endif
-/* Copyright (C) 1991-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option) any later
-version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-#ifndef _LIMITS_H___
-#define _LIMITS_H___
-
-/* Number of bits in a `char'.  */
-#undef CHAR_BIT
-#define CHAR_BIT __CHAR_BIT__
-
-/* Maximum length of a multibyte character.  */
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 1
-#endif
-
-/* Minimum and maximum values a `signed char' can hold.  */
-#undef SCHAR_MIN
-#define SCHAR_MIN (-SCHAR_MAX - 1)
-#undef SCHAR_MAX
-#define SCHAR_MAX __SCHAR_MAX__
-
-/* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */
-#undef UCHAR_MAX
-#if __SCHAR_MAX__ == __INT_MAX__
-# define UCHAR_MAX (SCHAR_MAX * 2U + 1U)
-#else
-# define UCHAR_MAX (SCHAR_MAX * 2 + 1)
-#endif
-
-/* Minimum and maximum values a `char' can hold.  */
-#ifdef __CHAR_UNSIGNED__
-# undef CHAR_MIN
-# if __SCHAR_MAX__ == __INT_MAX__
-#  define CHAR_MIN 0U
-# else
-#  define CHAR_MIN 0
-# endif
-# undef CHAR_MAX
-# define CHAR_MAX UCHAR_MAX
-#else
-# undef CHAR_MIN
-# define CHAR_MIN SCHAR_MIN
-# undef CHAR_MAX
-# define CHAR_MAX SCHAR_MAX
-#endif
-
-/* Minimum and maximum values a `signed short int' can hold.  */
-#undef SHRT_MIN
-#define SHRT_MIN (-SHRT_MAX - 1)
-#undef SHRT_MAX
-#define SHRT_MAX __SHRT_MAX__
-
-/* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */
-#undef USHRT_MAX
-#if __SHRT_MAX__ == __INT_MAX__
-# define USHRT_MAX (SHRT_MAX * 2U + 1U)
-#else
-# define USHRT_MAX (SHRT_MAX * 2 + 1)
-#endif
-
-/* Minimum and maximum values a `signed int' can hold.  */
-#undef INT_MIN
-#define INT_MIN (-INT_MAX - 1)
-#undef INT_MAX
-#define INT_MAX __INT_MAX__
-
-/* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */
-#undef UINT_MAX
-#define UINT_MAX (INT_MAX * 2U + 1U)
-
-/* Minimum and maximum values a `signed long int' can hold.
-   (Same as `int').  */
-#undef LONG_MIN
-#define LONG_MIN (-LONG_MAX - 1L)
-#undef LONG_MAX
-#define LONG_MAX __LONG_MAX__
-
-/* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
-#undef ULONG_MAX
-#define ULONG_MAX (LONG_MAX * 2UL + 1UL)
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-/* Minimum and maximum values a `signed long long int' can hold.  */
-# undef LLONG_MIN
-# define LLONG_MIN (-LLONG_MAX - 1LL)
-# undef LLONG_MAX
-# define LLONG_MAX __LONG_LONG_MAX__
-
-/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
-# undef ULLONG_MAX
-# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
-#endif
-
-#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
-/* Minimum and maximum values a `signed long long int' can hold.  */
-# undef LONG_LONG_MIN
-# define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
-# undef LONG_LONG_MAX
-# define LONG_LONG_MAX __LONG_LONG_MAX__
-
-/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
-# undef ULONG_LONG_MAX
-# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
-#endif
-
-#endif /* _LIMITS_H___ */
-/* This administrivia gets added to the end of limits.h
-   if the system has its own version of limits.h.  */
-
-#else /* not _GCC_LIMITS_H_ */
-
-#ifdef _GCC_NEXT_LIMITS_H
-#include_next <limits.h>		/* recurse down to the real one */
-#endif
-
-#endif /* not _GCC_LIMITS_H_ */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include-fixed/tgmath.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include-fixed/tgmath.h
deleted file mode 100644
index 6417c52..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include-fixed/tgmath.h
+++ /dev/null
@@ -1,441 +0,0 @@
-/*  DO NOT EDIT THIS FILE.
-
-    It has been auto-edited by fixincludes from:
-
-	"/usr/local/google/home/smcgruer/Desktop/buildroot/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot/usr/include/tgmath.h"
-
-    This had to be done to correct non-standard usages in the
-    original, manufacturer supplied header file.  */
-
-/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library 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
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-/*
- *	ISO C99 Standard: 7.22 Type-generic math	<tgmath.h>
- */
-
-#ifndef _TGMATH_H
-#define _TGMATH_H	1
-
-/* Include the needed headers.  */
-#include <math.h>
-#include <complex.h>
-
-
-/* Since `complex' is currently not really implemented in most C compilers
-   and if it is implemented, the implementations differ.  This makes it
-   quite difficult to write a generic implementation of this header.  We
-   do not try this for now and instead concentrate only on GNU CC.  Once
-   we have more information support for other compilers might follow.  */
-
-#if __GNUC_PREREQ (2, 7)
-
-# ifdef __NO_LONG_DOUBLE_MATH
-#  define __tgml(fct) fct
-# else
-#  define __tgml(fct) fct ## l
-# endif
-
-/* This is ugly but unless gcc gets appropriate builtins we have to do
-   something like this.  Don't ask how it works.  */
-
-/* 1 if 'type' is a floating type, 0 if 'type' is an integer type.
-   Allows for _Bool.  Expands to an integer constant expression.  */
-# define __floating_type(type) (__builtin_classify_type ((type) 0) == 8 || (__builtin_classify_type ((type) 0) == 9 && __builtin_classify_type (__real__ ((type) 0)) == 8))
-
-/* The tgmath real type for T, where E is 0 if T is an integer type and
-   1 for a floating type.  */
-# define __tgmath_real_type_sub(T, E) \
-  __typeof__(*(0 ? (__typeof__ (0 ? (double *) 0 : (void *) (E))) 0	      \
-		 : (__typeof__ (0 ? (T *) 0 : (void *) (!(E)))) 0))
-
-/* The tgmath real type of EXPR.  */
-# define __tgmath_real_type(expr) \
-  __tgmath_real_type_sub(__typeof__(expr), __floating_type(__typeof__(expr)))
-
-
-/* We have two kinds of generic macros: to support functions which are
-   only defined on real valued parameters and those which are defined
-   for complex functions as well.  */
-# define __TGMATH_UNARY_REAL_ONLY(Val, Fct) \
-     (__extension__ ({ __tgmath_real_type (Val) __tgmres;		      \
-		       if (sizeof (Val) == sizeof (double)		      \
-			   || __builtin_classify_type (Val) != 8)	      \
-			 __tgmres = Fct (Val);				      \
-		       else if (sizeof (Val) == sizeof (float))		      \
-			 __tgmres = Fct##f (Val);			      \
-		       else						      \
-			 __tgmres = __tgml(Fct) (Val);			      \
-		       __tgmres; }))
-
-# define __TGMATH_BINARY_FIRST_REAL_ONLY(Val1, Val2, Fct) \
-     (__extension__ ({ __tgmath_real_type (Val1) __tgmres;		      \
-		       if (sizeof (Val1) == sizeof (double)		      \
-			   || __builtin_classify_type (Val1) != 8)	      \
-			 __tgmres = Fct (Val1, Val2);			      \
-		       else if (sizeof (Val1) == sizeof (float))	      \
-			 __tgmres = Fct##f (Val1, Val2);		      \
-		       else						      \
-			 __tgmres = __tgml(Fct) (Val1, Val2);		      \
-		       __tgmres; }))
-
-# define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \
-     (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres;	      \
-		       if ((sizeof (Val1) > sizeof (double)		      \
-			    || sizeof (Val2) > sizeof (double))		      \
-			   && __builtin_classify_type ((Val1) + (Val2)) == 8) \
-			 __tgmres = __tgml(Fct) (Val1, Val2);		      \
-		       else if (sizeof (Val1) == sizeof (double)	      \
-				|| sizeof (Val2) == sizeof (double)	      \
-				|| __builtin_classify_type (Val1) != 8	      \
-				|| __builtin_classify_type (Val2) != 8)	      \
-			 __tgmres = Fct (Val1, Val2);			      \
-		       else						      \
-			 __tgmres = Fct##f (Val1, Val2);		      \
-		       __tgmres; }))
-
-# define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
-     (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres;	      \
-		       if ((sizeof (Val1) > sizeof (double)		      \
-			    || sizeof (Val2) > sizeof (double))		      \
-			   && __builtin_classify_type ((Val1) + (Val2)) == 8) \
-			 __tgmres = __tgml(Fct) (Val1, Val2, Val3);	      \
-		       else if (sizeof (Val1) == sizeof (double)	      \
-				|| sizeof (Val2) == sizeof (double)	      \
-				|| __builtin_classify_type (Val1) != 8	      \
-				|| __builtin_classify_type (Val2) != 8)	      \
-			 __tgmres = Fct (Val1, Val2, Val3);		      \
-		       else						      \
-			 __tgmres = Fct##f (Val1, Val2, Val3);		      \
-		       __tgmres; }))
-
-# define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
-     (__extension__ ({ __tgmath_real_type ((Val1) + (Val2) + (Val3)) __tgmres;\
-		       if ((sizeof (Val1) > sizeof (double)		      \
-			    || sizeof (Val2) > sizeof (double)		      \
-			    || sizeof (Val3) > sizeof (double))		      \
-			   && __builtin_classify_type ((Val1) + (Val2)	      \
-						       + (Val3)) == 8)	      \
-			 __tgmres = __tgml(Fct) (Val1, Val2, Val3);	      \
-		       else if (sizeof (Val1) == sizeof (double)	      \
-				|| sizeof (Val2) == sizeof (double)	      \
-				|| sizeof (Val3) == sizeof (double)	      \
-				|| __builtin_classify_type (Val1) != 8	      \
-				|| __builtin_classify_type (Val2) != 8	      \
-				|| __builtin_classify_type (Val3) != 8)	      \
-			 __tgmres = Fct (Val1, Val2, Val3);		      \
-		       else						      \
-			 __tgmres = Fct##f (Val1, Val2, Val3);		      \
-		       __tgmres; }))
-
-/* XXX This definition has to be changed as soon as the compiler understands
-   the imaginary keyword.  */
-# define __TGMATH_UNARY_REAL_IMAG(Val, Fct, Cfct) \
-     (__extension__ ({ __tgmath_real_type (Val) __tgmres;		      \
-		       if (sizeof (__real__ (Val)) > sizeof (double)	      \
-			   && __builtin_classify_type (__real__ (Val)) == 8)  \
-			 {						      \
-			   if (sizeof (__real__ (Val)) == sizeof (Val))	      \
-			     __tgmres = __tgml(Fct) (Val);		      \
-			   else						      \
-			     __tgmres = __tgml(Cfct) (Val);		      \
-			 }						      \
-		       else if (sizeof (__real__ (Val)) == sizeof (double)    \
-				|| __builtin_classify_type (__real__ (Val))   \
-				   != 8)				      \
-			 {						      \
-			   if (sizeof (__real__ (Val)) == sizeof (Val))	      \
-			     __tgmres = Fct (Val);			      \
-			   else						      \
-			     __tgmres = Cfct (Val);			      \
-			 }						      \
-		       else						      \
-			 {						      \
-			   if (sizeof (__real__ (Val)) == sizeof (Val))	      \
-			     __tgmres = Fct##f (Val);			      \
-			   else						      \
-			     __tgmres = Cfct##f (Val);			      \
-			 }						      \
-		       __tgmres; }))
-
-/* XXX This definition has to be changed as soon as the compiler understands
-   the imaginary keyword.  */
-# define __TGMATH_UNARY_IMAG_ONLY(Val, Fct) \
-     (__extension__ ({ __tgmath_real_type (Val) __tgmres;		      \
-		       if (sizeof (Val) == sizeof (__complex__ double)	      \
-			   || __builtin_classify_type (__real__ (Val)) != 8)  \
-			 __tgmres = Fct (Val);				      \
-		       else if (sizeof (Val) == sizeof (__complex__ float))   \
-			 __tgmres = Fct##f (Val);			      \
-		       else						      \
-			 __tgmres = __tgml(Fct) (Val);			      \
-		       __tgmres; }))
-
-/* XXX This definition has to be changed as soon as the compiler understands
-   the imaginary keyword.  */
-# define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \
-     (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres;	      \
-		       if ((sizeof (__real__ (Val1)) > sizeof (double)	      \
-			    || sizeof (__real__ (Val2)) > sizeof (double))    \
-			   && __builtin_classify_type (__real__ (Val1)	      \
-						       + __real__ (Val2))     \
-			      == 8)					      \
-			 {						      \
-			   if (sizeof (__real__ (Val1)) == sizeof (Val1)      \
-			       && sizeof (__real__ (Val2)) == sizeof (Val2))  \
-			     __tgmres = __tgml(Fct) (Val1, Val2);	      \
-			   else						      \
-			     __tgmres = __tgml(Cfct) (Val1, Val2);	      \
-			 }						      \
-		       else if (sizeof (__real__ (Val1)) == sizeof (double)   \
-				|| sizeof (__real__ (Val2)) == sizeof(double) \
-				|| (__builtin_classify_type (__real__ (Val1)) \
-				    != 8)				      \
-				|| (__builtin_classify_type (__real__ (Val2)) \
-				    != 8))				      \
-			 {						      \
-			   if (sizeof (__real__ (Val1)) == sizeof (Val1)      \
-			       && sizeof (__real__ (Val2)) == sizeof (Val2))  \
-			     __tgmres = Fct (Val1, Val2);		      \
-			   else						      \
-			     __tgmres = Cfct (Val1, Val2);		      \
-			 }						      \
-		       else						      \
-			 {						      \
-			   if (sizeof (__real__ (Val1)) == sizeof (Val1)      \
-			       && sizeof (__real__ (Val2)) == sizeof (Val2))  \
-			     __tgmres = Fct##f (Val1, Val2);		      \
-			   else						      \
-			     __tgmres = Cfct##f (Val1, Val2);		      \
-			 }						      \
-		       __tgmres; }))
-#else
-# error "Unsupported compiler; you cannot use <tgmath.h>"
-#endif
-
-
-/* Unary functions defined for real and complex values.  */
-
-
-/* Trigonometric functions.  */
-
-/* Arc cosine of X.  */
-#define acos(Val) __TGMATH_UNARY_REAL_IMAG (Val, acos, cacos)
-/* Arc sine of X.  */
-#define asin(Val) __TGMATH_UNARY_REAL_IMAG (Val, asin, casin)
-/* Arc tangent of X.  */
-#define atan(Val) __TGMATH_UNARY_REAL_IMAG (Val, atan, catan)
-/* Arc tangent of Y/X.  */
-#define atan2(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, atan2)
-
-/* Cosine of X.  */
-#define cos(Val) __TGMATH_UNARY_REAL_IMAG (Val, cos, ccos)
-/* Sine of X.  */
-#define sin(Val) __TGMATH_UNARY_REAL_IMAG (Val, sin, csin)
-/* Tangent of X.  */
-#define tan(Val) __TGMATH_UNARY_REAL_IMAG (Val, tan, ctan)
-
-
-/* Hyperbolic functions.  */
-
-/* Hyperbolic arc cosine of X.  */
-#define acosh(Val) __TGMATH_UNARY_REAL_IMAG (Val, acosh, cacosh)
-/* Hyperbolic arc sine of X.  */
-#define asinh(Val) __TGMATH_UNARY_REAL_IMAG (Val, asinh, casinh)
-/* Hyperbolic arc tangent of X.  */
-#define atanh(Val) __TGMATH_UNARY_REAL_IMAG (Val, atanh, catanh)
-
-/* Hyperbolic cosine of X.  */
-#define cosh(Val) __TGMATH_UNARY_REAL_IMAG (Val, cosh, ccosh)
-/* Hyperbolic sine of X.  */
-#define sinh(Val) __TGMATH_UNARY_REAL_IMAG (Val, sinh, csinh)
-/* Hyperbolic tangent of X.  */
-#define tanh(Val) __TGMATH_UNARY_REAL_IMAG (Val, tanh, ctanh)
-
-
-/* Exponential and logarithmic functions.  */
-
-/* Exponential function of X.  */
-#define exp(Val) __TGMATH_UNARY_REAL_IMAG (Val, exp, cexp)
-
-/* Break VALUE into a normalized fraction and an integral power of 2.  */
-#define frexp(Val1, Val2) __TGMATH_BINARY_FIRST_REAL_ONLY (Val1, Val2, frexp)
-
-/* X times (two to the EXP power).  */
-#define ldexp(Val1, Val2) __TGMATH_BINARY_FIRST_REAL_ONLY (Val1, Val2, ldexp)
-
-/* Natural logarithm of X.  */
-#define log(Val) __TGMATH_UNARY_REAL_IMAG (Val, log, clog)
-
-/* Base-ten logarithm of X.  */
-#ifdef __USE_GNU
-# define log10(Val) __TGMATH_UNARY_REAL_IMAG (Val, log10, __clog10)
-#else
-# define log10(Val) __TGMATH_UNARY_REAL_ONLY (Val, log10)
-#endif
-
-/* Return exp(X) - 1.  */
-#define expm1(Val) __TGMATH_UNARY_REAL_ONLY (Val, expm1)
-
-/* Return log(1 + X).  */
-#define log1p(Val) __TGMATH_UNARY_REAL_ONLY (Val, log1p)
-
-/* Return the base 2 signed integral exponent of X.  */
-#define logb(Val) __TGMATH_UNARY_REAL_ONLY (Val, logb)
-
-/* Compute base-2 exponential of X.  */
-#define exp2(Val) __TGMATH_UNARY_REAL_ONLY (Val, exp2)
-
-/* Compute base-2 logarithm of X.  */
-#define log2(Val) __TGMATH_UNARY_REAL_ONLY (Val, log2)
-
-
-/* Power functions.  */
-
-/* Return X to the Y power.  */
-#define pow(Val1, Val2) __TGMATH_BINARY_REAL_IMAG (Val1, Val2, pow, cpow)
-
-/* Return the square root of X.  */
-#define sqrt(Val) __TGMATH_UNARY_REAL_IMAG (Val, sqrt, csqrt)
-
-/* Return `sqrt(X*X + Y*Y)'.  */
-#define hypot(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, hypot)
-
-/* Return the cube root of X.  */
-#define cbrt(Val) __TGMATH_UNARY_REAL_ONLY (Val, cbrt)
-
-
-/* Nearest integer, absolute value, and remainder functions.  */
-
-/* Smallest integral value not less than X.  */
-#define ceil(Val) __TGMATH_UNARY_REAL_ONLY (Val, ceil)
-
-/* Absolute value of X.  */
-#define fabs(Val) __TGMATH_UNARY_REAL_IMAG (Val, fabs, cabs)
-
-/* Largest integer not greater than X.  */
-#define floor(Val) __TGMATH_UNARY_REAL_ONLY (Val, floor)
-
-/* Floating-point modulo remainder of X/Y.  */
-#define fmod(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmod)
-
-/* Round X to integral valuein floating-point format using current
-   rounding direction, but do not raise inexact exception.  */
-#define nearbyint(Val) __TGMATH_UNARY_REAL_ONLY (Val, nearbyint)
-
-/* Round X to nearest integral value, rounding halfway cases away from
-   zero.  */
-#define round(Val) __TGMATH_UNARY_REAL_ONLY (Val, round)
-
-/* Round X to the integral value in floating-point format nearest but
-   not larger in magnitude.  */
-#define trunc(Val) __TGMATH_UNARY_REAL_ONLY (Val, trunc)
-
-/* Compute remainder of X and Y and put in *QUO a value with sign of x/y
-   and magnitude congruent `mod 2^n' to the magnitude of the integral
-   quotient x/y, with n >= 3.  */
-#define remquo(Val1, Val2, Val3) \
-     __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY (Val1, Val2, Val3, remquo)
-
-/* Round X to nearest integral value according to current rounding
-   direction.  */
-#define lrint(Val) __TGMATH_UNARY_REAL_ONLY (Val, lrint)
-#define llrint(Val) __TGMATH_UNARY_REAL_ONLY (Val, llrint)
-
-/* Round X to nearest integral value, rounding halfway cases away from
-   zero.  */
-#define lround(Val) __TGMATH_UNARY_REAL_ONLY (Val, lround)
-#define llround(Val) __TGMATH_UNARY_REAL_ONLY (Val, llround)
-
-
-/* Return X with its signed changed to Y's.  */
-#define copysign(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, copysign)
-
-/* Error and gamma functions.  */
-#define erf(Val) __TGMATH_UNARY_REAL_ONLY (Val, erf)
-#define erfc(Val) __TGMATH_UNARY_REAL_ONLY (Val, erfc)
-#define tgamma(Val) __TGMATH_UNARY_REAL_ONLY (Val, tgamma)
-#define lgamma(Val) __TGMATH_UNARY_REAL_ONLY (Val, lgamma)
-
-
-/* Return the integer nearest X in the direction of the
-   prevailing rounding mode.  */
-#define rint(Val) __TGMATH_UNARY_REAL_ONLY (Val, rint)
-
-/* Return X + epsilon if X < Y, X - epsilon if X > Y.  */
-#define nextafter(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, nextafter)
-#define nexttoward(Val1, Val2) \
-     __TGMATH_BINARY_FIRST_REAL_ONLY (Val1, Val2, nexttoward)
-
-/* Return the remainder of integer divison X / Y with infinite precision.  */
-#define remainder(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, remainder)
-
-#if defined __UCLIBC_SUSV3_LEGACY__
-/* Return X times (2 to the Nth power).  */
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
-# define scalb(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, scalb)
-#endif
-
-/* Return X times (2 to the Nth power).  */
-#define scalbn(Val1, Val2) __TGMATH_BINARY_FIRST_REAL_ONLY (Val1, Val2, scalbn)
-
-/* Return X times (2 to the Nth power).  */
-#define scalbln(Val1, Val2) \
-     __TGMATH_BINARY_FIRST_REAL_ONLY (Val1, Val2, scalbln)
-#endif /* UCLIBC_SUSV3_LEGACY */
-
-/* Return the binary exponent of X, which must be nonzero.  */
-#define ilogb(Val) __TGMATH_UNARY_REAL_ONLY (Val, ilogb)
-
-
-/* Return positive difference between X and Y.  */
-#define fdim(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fdim)
-
-/* Return maximum numeric value from X and Y.  */
-#define fmax(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmax)
-
-/* Return minimum numeric value from X and Y.  */
-#define fmin(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, fmin)
-
-
-/* Multiply-add function computed as a ternary operation.  */
-#define fma(Val1, Val2, Val3) \
-     __TGMATH_TERNARY_REAL_ONLY (Val1, Val2, Val3, fma)
-
-
-/* Absolute value, conjugates, and projection.  */
-
-/* Argument value of Z.  */
-#define carg(Val) __TGMATH_UNARY_IMAG_ONLY (Val, carg)
-
-/* Complex conjugate of Z.  */
-#define conj(Val) __TGMATH_UNARY_IMAG_ONLY (Val, conj)
-
-/* Projection of Z onto the Riemann sphere.  */
-#define cproj(Val) __TGMATH_UNARY_IMAG_ONLY (Val, cproj)
-
-
-/* Decomposing complex values.  */
-
-/* Imaginary part of Z.  */
-#define cimag(Val) __TGMATH_UNARY_IMAG_ONLY (Val, cimag)
-
-/* Real part of Z.  */
-#define creal(Val) __TGMATH_UNARY_IMAG_ONLY (Val, creal)
-
-#endif /* tgmath.h */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/float.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/float.h
deleted file mode 100644
index a8e05bf..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/float.h
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/*
- * ISO C Standard:  5.2.4.2.2  Characteristics of floating types <float.h>
- */
-
-#ifndef _FLOAT_H___
-#define _FLOAT_H___
-
-/* Radix of exponent representation, b. */
-#undef FLT_RADIX
-#define FLT_RADIX	__FLT_RADIX__
-
-/* Number of base-FLT_RADIX digits in the significand, p.  */
-#undef FLT_MANT_DIG
-#undef DBL_MANT_DIG
-#undef LDBL_MANT_DIG
-#define FLT_MANT_DIG	__FLT_MANT_DIG__
-#define DBL_MANT_DIG	__DBL_MANT_DIG__
-#define LDBL_MANT_DIG	__LDBL_MANT_DIG__
-
-/* Number of decimal digits, q, such that any floating-point number with q
-   decimal digits can be rounded into a floating-point number with p radix b
-   digits and back again without change to the q decimal digits,
-
-	p * log10(b)			if b is a power of 10
-	floor((p - 1) * log10(b))	otherwise
-*/
-#undef FLT_DIG
-#undef DBL_DIG
-#undef LDBL_DIG
-#define FLT_DIG		__FLT_DIG__
-#define DBL_DIG		__DBL_DIG__
-#define LDBL_DIG	__LDBL_DIG__
-
-/* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */
-#undef FLT_MIN_EXP
-#undef DBL_MIN_EXP
-#undef LDBL_MIN_EXP
-#define FLT_MIN_EXP	__FLT_MIN_EXP__
-#define DBL_MIN_EXP	__DBL_MIN_EXP__
-#define LDBL_MIN_EXP	__LDBL_MIN_EXP__
-
-/* Minimum negative integer such that 10 raised to that power is in the
-   range of normalized floating-point numbers,
-
-	ceil(log10(b) * (emin - 1))
-*/
-#undef FLT_MIN_10_EXP
-#undef DBL_MIN_10_EXP
-#undef LDBL_MIN_10_EXP
-#define FLT_MIN_10_EXP	__FLT_MIN_10_EXP__
-#define DBL_MIN_10_EXP	__DBL_MIN_10_EXP__
-#define LDBL_MIN_10_EXP	__LDBL_MIN_10_EXP__
-
-/* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax.  */
-#undef FLT_MAX_EXP
-#undef DBL_MAX_EXP
-#undef LDBL_MAX_EXP
-#define FLT_MAX_EXP	__FLT_MAX_EXP__
-#define DBL_MAX_EXP	__DBL_MAX_EXP__
-#define LDBL_MAX_EXP	__LDBL_MAX_EXP__
-
-/* Maximum integer such that 10 raised to that power is in the range of
-   representable finite floating-point numbers,
-
-	floor(log10((1 - b**-p) * b**emax))
-*/
-#undef FLT_MAX_10_EXP
-#undef DBL_MAX_10_EXP
-#undef LDBL_MAX_10_EXP
-#define FLT_MAX_10_EXP	__FLT_MAX_10_EXP__
-#define DBL_MAX_10_EXP	__DBL_MAX_10_EXP__
-#define LDBL_MAX_10_EXP	__LDBL_MAX_10_EXP__
-
-/* Maximum representable finite floating-point number,
-
-	(1 - b**-p) * b**emax
-*/
-#undef FLT_MAX
-#undef DBL_MAX
-#undef LDBL_MAX
-#define FLT_MAX		__FLT_MAX__
-#define DBL_MAX		__DBL_MAX__
-#define LDBL_MAX	__LDBL_MAX__
-
-/* The difference between 1 and the least value greater than 1 that is
-   representable in the given floating point type, b**1-p.  */
-#undef FLT_EPSILON
-#undef DBL_EPSILON
-#undef LDBL_EPSILON
-#define FLT_EPSILON	__FLT_EPSILON__
-#define DBL_EPSILON	__DBL_EPSILON__
-#define LDBL_EPSILON	__LDBL_EPSILON__
-
-/* Minimum normalized positive floating-point number, b**(emin - 1).  */
-#undef FLT_MIN
-#undef DBL_MIN
-#undef LDBL_MIN
-#define FLT_MIN		__FLT_MIN__
-#define DBL_MIN		__DBL_MIN__
-#define LDBL_MIN	__LDBL_MIN__
-
-/* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown.  */
-/* ??? This is supposed to change with calls to fesetround in <fenv.h>.  */
-#undef FLT_ROUNDS
-#define FLT_ROUNDS 1
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-/* The floating-point expression evaluation method.
-        -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type float and double
-            to the range and precision of the double type, evaluate
-            long double operations and constants to the range and
-            precision of the long double type
-         2  evaluate all operations and constants to the range and
-            precision of the long double type
-
-   ??? This ought to change with the setting of the fp control word;
-   the value provided by the compiler assumes the widest setting.  */
-#undef FLT_EVAL_METHOD
-#define FLT_EVAL_METHOD	__FLT_EVAL_METHOD__
-
-/* Number of decimal digits, n, such that any floating-point number in the
-   widest supported floating type with pmax radix b digits can be rounded
-   to a floating-point number with n decimal digits and back again without
-   change to the value,
-
-	pmax * log10(b)			if b is a power of 10
-	ceil(1 + pmax * log10(b))	otherwise
-*/
-#undef DECIMAL_DIG
-#define DECIMAL_DIG	__DECIMAL_DIG__
-
-#endif /* C99 */
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
-/* Versions of DECIMAL_DIG for each floating-point type.  */
-#undef FLT_DECIMAL_DIG
-#undef DBL_DECIMAL_DIG
-#undef LDBL_DECIMAL_DIG
-#define FLT_DECIMAL_DIG		__FLT_DECIMAL_DIG__
-#define DBL_DECIMAL_DIG		__DBL_DECIMAL_DIG__
-#define LDBL_DECIMAL_DIG	__DECIMAL_DIG__
-
-/* Whether types support subnormal numbers.  */
-#undef FLT_HAS_SUBNORM
-#undef DBL_HAS_SUBNORM
-#undef LDBL_HAS_SUBNORM
-#define FLT_HAS_SUBNORM		__FLT_HAS_DENORM__
-#define DBL_HAS_SUBNORM		__DBL_HAS_DENORM__
-#define LDBL_HAS_SUBNORM	__LDBL_HAS_DENORM__
-
-/* Minimum positive values, including subnormals.  */
-#undef FLT_TRUE_MIN
-#undef DBL_TRUE_MIN
-#undef LDBL_TRUE_MIN
-#if __FLT_HAS_DENORM__
-#define FLT_TRUE_MIN	__FLT_DENORM_MIN__
-#else
-#define FLT_TRUE_MIN	__FLT_MIN__
-#endif
-#if __DBL_HAS_DENORM__
-#define DBL_TRUE_MIN	__DBL_DENORM_MIN__
-#else
-#define DBL_TRUE_MIN	__DBL_MIN__
-#endif
-#if __LDBL_HAS_DENORM__
-#define LDBL_TRUE_MIN	__LDBL_DENORM_MIN__
-#else
-#define LDBL_TRUE_MIN	__LDBL_MIN__
-#endif
-
-#endif /* C11 */
-
-#ifdef __STDC_WANT_DEC_FP__
-/* Draft Technical Report 24732, extension for decimal floating-point
-   arithmetic: Characteristic of decimal floating types <float.h>.  */
-
-/* Number of base-FLT_RADIX digits in the significand, p.  */
-#undef DEC32_MANT_DIG
-#undef DEC64_MANT_DIG
-#undef DEC128_MANT_DIG
-#define DEC32_MANT_DIG	__DEC32_MANT_DIG__
-#define DEC64_MANT_DIG	__DEC64_MANT_DIG__
-#define DEC128_MANT_DIG	__DEC128_MANT_DIG__
-
-/* Minimum exponent. */
-#undef DEC32_MIN_EXP
-#undef DEC64_MIN_EXP
-#undef DEC128_MIN_EXP
-#define DEC32_MIN_EXP	__DEC32_MIN_EXP__
-#define DEC64_MIN_EXP	__DEC64_MIN_EXP__
-#define DEC128_MIN_EXP	__DEC128_MIN_EXP__
-
-/* Maximum exponent. */
-#undef DEC32_MAX_EXP
-#undef DEC64_MAX_EXP
-#undef DEC128_MAX_EXP
-#define DEC32_MAX_EXP	__DEC32_MAX_EXP__
-#define DEC64_MAX_EXP	__DEC64_MAX_EXP__
-#define DEC128_MAX_EXP	__DEC128_MAX_EXP__
-
-/* Maximum representable finite decimal floating-point number
-   (there are 6, 15, and 33 9s after the decimal points respectively). */
-#undef DEC32_MAX
-#undef DEC64_MAX
-#undef DEC128_MAX
-#define DEC32_MAX   __DEC32_MAX__
-#define DEC64_MAX   __DEC64_MAX__
-#define DEC128_MAX  __DEC128_MAX__
-
-/* The difference between 1 and the least value greater than 1 that is
-   representable in the given floating point type. */
-#undef DEC32_EPSILON
-#undef DEC64_EPSILON
-#undef DEC128_EPSILON
-#define DEC32_EPSILON	__DEC32_EPSILON__
-#define DEC64_EPSILON	__DEC64_EPSILON__
-#define DEC128_EPSILON	__DEC128_EPSILON__
-
-/* Minimum normalized positive floating-point number. */
-#undef DEC32_MIN
-#undef DEC64_MIN
-#undef DEC128_MIN
-#define DEC32_MIN	__DEC32_MIN__
-#define DEC64_MIN	__DEC64_MIN__
-#define DEC128_MIN	__DEC128_MIN__
-
-/* Minimum subnormal positive floating-point number. */
-#undef DEC32_SUBNORMAL_MIN
-#undef DEC64_SUBNORMAL_MIN
-#undef DEC128_SUBNORMAL_MIN
-#define DEC32_SUBNORMAL_MIN       __DEC32_SUBNORMAL_MIN__
-#define DEC64_SUBNORMAL_MIN       __DEC64_SUBNORMAL_MIN__
-#define DEC128_SUBNORMAL_MIN      __DEC128_SUBNORMAL_MIN__
-
-/* The floating-point expression evaluation method.
-         -1  indeterminate
-         0  evaluate all operations and constants just to the range and
-            precision of the type
-         1  evaluate operations and constants of type _Decimal32 
-	    and _Decimal64 to the range and precision of the _Decimal64 
-            type, evaluate _Decimal128 operations and constants to the 
-	    range and precision of the _Decimal128 type;
-	 2  evaluate all operations and constants to the range and
-	    precision of the _Decimal128 type.  */
-
-#undef DEC_EVAL_METHOD
-#define DEC_EVAL_METHOD	__DEC_EVAL_METHOD__
-
-#endif /* __STDC_WANT_DEC_FP__ */
-
-#endif /* _FLOAT_H___ */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/iso646.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/iso646.h
deleted file mode 100644
index 89bc8f4..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/iso646.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 1997-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/*
- * ISO C Standard:  7.9  Alternative spellings  <iso646.h>
- */
-
-#ifndef _ISO646_H
-#define _ISO646_H
-
-#ifndef __cplusplus
-#define and	&&
-#define and_eq	&=
-#define bitand	&
-#define bitor	|
-#define compl	~
-#define not	!
-#define not_eq	!=
-#define or	||
-#define or_eq	|=
-#define xor	^
-#define xor_eq	^=
-#endif
-
-#endif
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/loongson.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/loongson.h
deleted file mode 100644
index 6e3de0d..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/loongson.h
+++ /dev/null
@@ -1,690 +0,0 @@
-/* Intrinsics for ST Microelectronics Loongson-2E/2F SIMD operations.
-
-   Copyright (C) 2008-2014 Free Software Foundation, Inc.
-   Contributed by CodeSourcery.
-
-   This file is part of GCC.
-
-   GCC 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, or (at your
-   option) any later version.
-
-   GCC 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.
-
-   Under Section 7 of GPL version 3, you are granted additional
-   permissions described in the GCC Runtime Library Exception, version
-   3.1, as published by the Free Software Foundation.
-
-   You should have received a copy of the GNU General Public License and
-   a copy of the GCC Runtime Library Exception along with this program;
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _GCC_LOONGSON_H
-#define _GCC_LOONGSON_H
-
-#if !defined(__mips_loongson_vector_rev)
-# error "You must select -march=loongson2e or -march=loongson2f to use loongson.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <stdint.h>
-
-/* Vectors of unsigned bytes, halfwords and words.  */
-typedef uint8_t uint8x8_t __attribute__((vector_size (8)));
-typedef uint16_t uint16x4_t __attribute__((vector_size (8)));
-typedef uint32_t uint32x2_t __attribute__((vector_size (8)));
-
-/* Vectors of signed bytes, halfwords and words.  */
-typedef int8_t int8x8_t __attribute__((vector_size (8)));
-typedef int16_t int16x4_t __attribute__((vector_size (8)));
-typedef int32_t int32x2_t __attribute__((vector_size (8)));
-
-/* SIMD intrinsics.
-   Unless otherwise noted, calls to the functions below will expand into
-   precisely one machine instruction, modulo any moves required to
-   satisfy register allocation constraints.  */
-
-/* Pack with signed saturation.  */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-packsswh (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_packsswh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-packsshb (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_packsshb (s, t);
-}
-
-/* Pack with unsigned saturation.  */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-packushb (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_packushb (s, t);
-}
-
-/* Vector addition, treating overflow by wraparound.  */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-paddw_u (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_paddw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-paddh_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_paddh_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-paddb_u (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_paddb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-paddw_s (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_paddw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-paddh_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_paddh_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-paddb_s (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_paddb_s (s, t);
-}
-
-/* Addition of doubleword integers, treating overflow by wraparound.  */
-__extension__ static __inline uint64_t __attribute__ ((__always_inline__))
-paddd_u (uint64_t s, uint64_t t)
-{
-  return __builtin_loongson_paddd_u (s, t);
-}
-
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-paddd_s (int64_t s, int64_t t)
-{
-  return __builtin_loongson_paddd_s (s, t);
-}
-
-/* Vector addition, treating overflow by signed saturation.  */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-paddsh (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_paddsh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-paddsb (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_paddsb (s, t);
-}
-
-/* Vector addition, treating overflow by unsigned saturation.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-paddush (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_paddush (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-paddusb (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_paddusb (s, t);
-}
-
-/* Logical AND NOT.  */
-__extension__ static __inline uint64_t __attribute__ ((__always_inline__))
-pandn_ud (uint64_t s, uint64_t t)
-{
-  return __builtin_loongson_pandn_ud (s, t);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-pandn_uw (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_pandn_uw (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pandn_uh (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pandn_uh (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pandn_ub (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_pandn_ub (s, t);
-}
-
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-pandn_sd (int64_t s, int64_t t)
-{
-  return __builtin_loongson_pandn_sd (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pandn_sw (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_pandn_sw (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pandn_sh (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pandn_sh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pandn_sb (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_pandn_sb (s, t);
-}
-
-/* Average.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pavgh (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pavgh (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pavgb (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_pavgb (s, t);
-}
-
-/* Equality test.  */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-pcmpeqw_u (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_pcmpeqw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pcmpeqh_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pcmpeqh_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pcmpeqb_u (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_pcmpeqb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pcmpeqw_s (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_pcmpeqw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pcmpeqh_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pcmpeqh_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pcmpeqb_s (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_pcmpeqb_s (s, t);
-}
-
-/* Greater-than test.  */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-pcmpgtw_u (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_pcmpgtw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pcmpgth_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pcmpgth_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pcmpgtb_u (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_pcmpgtb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pcmpgtw_s (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_pcmpgtw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pcmpgth_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pcmpgth_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pcmpgtb_s (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_pcmpgtb_s (s, t);
-}
-
-/* Extract halfword.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pextrh_u (uint16x4_t s, int field /* 0--3 */)
-{
-  return __builtin_loongson_pextrh_u (s, field);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pextrh_s (int16x4_t s, int field /* 0--3 */)
-{
-  return __builtin_loongson_pextrh_s (s, field);
-}
-
-/* Insert halfword.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_0_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pinsrh_0_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_1_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pinsrh_1_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_2_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pinsrh_2_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pinsrh_3_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pinsrh_3_u (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_0_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pinsrh_0_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_1_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pinsrh_1_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_2_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pinsrh_2_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pinsrh_3_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pinsrh_3_s (s, t);
-}
-
-/* Multiply and add.  */
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-pmaddhw (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pmaddhw (s, t);
-}
-
-/* Maximum of signed halfwords.  */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pmaxsh (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pmaxsh (s, t);
-}
-
-/* Maximum of unsigned bytes.  */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pmaxub (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_pmaxub (s, t);
-}
-
-/* Minimum of signed halfwords.  */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pminsh (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pminsh (s, t);
-}
-
-/* Minimum of unsigned bytes.  */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pminub (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_pminub (s, t);
-}
-
-/* Move byte mask.  */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pmovmskb_u (uint8x8_t s)
-{
-  return __builtin_loongson_pmovmskb_u (s);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-pmovmskb_s (int8x8_t s)
-{
-  return __builtin_loongson_pmovmskb_s (s);
-}
-
-/* Multiply unsigned integers and store high result.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pmulhuh (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_pmulhuh (s, t);
-}
-
-/* Multiply signed integers and store high result.  */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pmulhh (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pmulhh (s, t);
-}
-
-/* Multiply signed integers and store low result.  */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pmullh (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_pmullh (s, t);
-}
-
-/* Multiply unsigned word integers.  */
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-pmuluw (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_pmuluw (s, t);
-}
-
-/* Absolute difference.  */
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-pasubub (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_pasubub (s, t);
-}
-
-/* Sum of unsigned byte integers.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-biadd (uint8x8_t s)
-{
-  return __builtin_loongson_biadd (s);
-}
-
-/* Sum of absolute differences.
-   Note that this intrinsic expands into two machine instructions:
-   PASUBUB followed by BIADD.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psadbh (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_psadbh (s, t);
-}
-
-/* Shuffle halfwords.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-pshufh_u (uint16x4_t dest, uint16x4_t s, uint8_t order)
-{
-  return __builtin_loongson_pshufh_u (s, order);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-pshufh_s (int16x4_t dest, int16x4_t s, uint8_t order)
-{
-  return __builtin_loongson_pshufh_s (s, order);
-}
-
-/* Shift left logical.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psllh_u (uint16x4_t s, uint8_t amount)
-{
-  return __builtin_loongson_psllh_u (s, amount);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psllh_s (int16x4_t s, uint8_t amount)
-{
-  return __builtin_loongson_psllh_s (s, amount);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psllw_u (uint32x2_t s, uint8_t amount)
-{
-  return __builtin_loongson_psllw_u (s, amount);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psllw_s (int32x2_t s, uint8_t amount)
-{
-  return __builtin_loongson_psllw_s (s, amount);
-}
-
-/* Shift right logical.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psrlh_u (uint16x4_t s, uint8_t amount)
-{
-  return __builtin_loongson_psrlh_u (s, amount);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psrlh_s (int16x4_t s, uint8_t amount)
-{
-  return __builtin_loongson_psrlh_s (s, amount);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psrlw_u (uint32x2_t s, uint8_t amount)
-{
-  return __builtin_loongson_psrlw_u (s, amount);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psrlw_s (int32x2_t s, uint8_t amount)
-{
-  return __builtin_loongson_psrlw_s (s, amount);
-}
-
-/* Shift right arithmetic.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psrah_u (uint16x4_t s, uint8_t amount)
-{
-  return __builtin_loongson_psrah_u (s, amount);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psrah_s (int16x4_t s, uint8_t amount)
-{
-  return __builtin_loongson_psrah_s (s, amount);
-}
-
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psraw_u (uint32x2_t s, uint8_t amount)
-{
-  return __builtin_loongson_psraw_u (s, amount);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psraw_s (int32x2_t s, uint8_t amount)
-{
-  return __builtin_loongson_psraw_s (s, amount);
-}
-
-/* Vector subtraction, treating overflow by wraparound.  */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-psubw_u (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_psubw_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psubh_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_psubh_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-psubb_u (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_psubb_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-psubw_s (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_psubw_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psubh_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_psubh_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-psubb_s (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_psubb_s (s, t);
-}
-
-/* Subtraction of doubleword integers, treating overflow by wraparound.  */
-__extension__ static __inline uint64_t __attribute__ ((__always_inline__))
-psubd_u (uint64_t s, uint64_t t)
-{
-  return __builtin_loongson_psubd_u (s, t);
-}
-
-__extension__ static __inline int64_t __attribute__ ((__always_inline__))
-psubd_s (int64_t s, int64_t t)
-{
-  return __builtin_loongson_psubd_s (s, t);
-}
-
-/* Vector subtraction, treating overflow by signed saturation.  */
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-psubsh (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_psubsh (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-psubsb (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_psubsb (s, t);
-}
-
-/* Vector subtraction, treating overflow by unsigned saturation.  */
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-psubush (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_psubush (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-psubusb (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_psubusb (s, t);
-}
-
-/* Unpack high data.  */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-punpckhwd_u (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_punpckhwd_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-punpckhhw_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_punpckhhw_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-punpckhbh_u (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_punpckhbh_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-punpckhwd_s (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_punpckhwd_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-punpckhhw_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_punpckhhw_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-punpckhbh_s (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_punpckhbh_s (s, t);
-}
-
-/* Unpack low data.  */
-__extension__ static __inline uint32x2_t __attribute__ ((__always_inline__))
-punpcklwd_u (uint32x2_t s, uint32x2_t t)
-{
-  return __builtin_loongson_punpcklwd_u (s, t);
-}
-
-__extension__ static __inline uint16x4_t __attribute__ ((__always_inline__))
-punpcklhw_u (uint16x4_t s, uint16x4_t t)
-{
-  return __builtin_loongson_punpcklhw_u (s, t);
-}
-
-__extension__ static __inline uint8x8_t __attribute__ ((__always_inline__))
-punpcklbh_u (uint8x8_t s, uint8x8_t t)
-{
-  return __builtin_loongson_punpcklbh_u (s, t);
-}
-
-__extension__ static __inline int32x2_t __attribute__ ((__always_inline__))
-punpcklwd_s (int32x2_t s, int32x2_t t)
-{
-  return __builtin_loongson_punpcklwd_s (s, t);
-}
-
-__extension__ static __inline int16x4_t __attribute__ ((__always_inline__))
-punpcklhw_s (int16x4_t s, int16x4_t t)
-{
-  return __builtin_loongson_punpcklhw_s (s, t);
-}
-
-__extension__ static __inline int8x8_t __attribute__ ((__always_inline__))
-punpcklbh_s (int8x8_t s, int8x8_t t)
-{
-  return __builtin_loongson_punpcklbh_s (s, t);
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdalign.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdalign.h
deleted file mode 100644
index ee2d81f..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdalign.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2011-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* ISO C1X: 7.15 Alignment <stdalign.h>.  */
-
-#ifndef _STDALIGN_H
-#define _STDALIGN_H
-
-#ifndef __cplusplus
-
-#define alignas _Alignas
-#define alignof _Alignof
-
-#define __alignas_is_defined 1
-#define __alignof_is_defined 1
-
-#endif
-
-#endif	/* stdalign.h */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdarg.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdarg.h
deleted file mode 100644
index 1d4418b..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdarg.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/* Copyright (C) 1989-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/*
- * ISO C Standard:  7.15  Variable arguments  <stdarg.h>
- */
-
-#ifndef _STDARG_H
-#ifndef _ANSI_STDARG_H_
-#ifndef __need___va_list
-#define _STDARG_H
-#define _ANSI_STDARG_H_
-#endif /* not __need___va_list */
-#undef __need___va_list
-
-/* Define __gnuc_va_list.  */
-
-#ifndef __GNUC_VA_LIST
-#define __GNUC_VA_LIST
-typedef __builtin_va_list __gnuc_va_list;
-#endif
-
-/* Define the standard macros for the user,
-   if this invocation was from the user program.  */
-#ifdef _STDARG_H
-
-#define va_start(v,l)	__builtin_va_start(v,l)
-#define va_end(v)	__builtin_va_end(v)
-#define va_arg(v,l)	__builtin_va_arg(v,l)
-#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L || defined(__GXX_EXPERIMENTAL_CXX0X__)
-#define va_copy(d,s)	__builtin_va_copy(d,s)
-#endif
-#define __va_copy(d,s)	__builtin_va_copy(d,s)
-
-/* Define va_list, if desired, from __gnuc_va_list. */
-/* We deliberately do not define va_list when called from
-   stdio.h, because ANSI C says that stdio.h is not supposed to define
-   va_list.  stdio.h needs to have access to that data type, 
-   but must not use that name.  It should use the name __gnuc_va_list,
-   which is safe because it is reserved for the implementation.  */
-
-#ifdef _BSD_VA_LIST
-#undef _BSD_VA_LIST
-#endif
-
-#if defined(__svr4__) || (defined(_SCO_DS) && !defined(__VA_LIST))
-/* SVR4.2 uses _VA_LIST for an internal alias for va_list,
-   so we must avoid testing it and setting it here.
-   SVR4 uses _VA_LIST as a flag in stdarg.h, but we should
-   have no conflict with that.  */
-#ifndef _VA_LIST_
-#define _VA_LIST_
-#ifdef __i860__
-#ifndef _VA_LIST
-#define _VA_LIST va_list
-#endif
-#endif /* __i860__ */
-typedef __gnuc_va_list va_list;
-#ifdef _SCO_DS
-#define __VA_LIST
-#endif
-#endif /* _VA_LIST_ */
-#else /* not __svr4__ || _SCO_DS */
-
-/* The macro _VA_LIST_ is the same thing used by this file in Ultrix.
-   But on BSD NET2 we must not test or define or undef it.
-   (Note that the comments in NET 2's ansi.h
-   are incorrect for _VA_LIST_--see stdio.h!)  */
-#if !defined (_VA_LIST_) || defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__) || defined(WINNT)
-/* The macro _VA_LIST_DEFINED is used in Windows NT 3.5  */
-#ifndef _VA_LIST_DEFINED
-/* The macro _VA_LIST is used in SCO Unix 3.2.  */
-#ifndef _VA_LIST
-/* The macro _VA_LIST_T_H is used in the Bull dpx2  */
-#ifndef _VA_LIST_T_H
-/* The macro __va_list__ is used by BeOS.  */
-#ifndef __va_list__
-typedef __gnuc_va_list va_list;
-#endif /* not __va_list__ */
-#endif /* not _VA_LIST_T_H */
-#endif /* not _VA_LIST */
-#endif /* not _VA_LIST_DEFINED */
-#if !(defined (__BSD_NET2__) || defined (____386BSD____) || defined (__bsdi__) || defined (__sequent__) || defined (__FreeBSD__))
-#define _VA_LIST_
-#endif
-#ifndef _VA_LIST
-#define _VA_LIST
-#endif
-#ifndef _VA_LIST_DEFINED
-#define _VA_LIST_DEFINED
-#endif
-#ifndef _VA_LIST_T_H
-#define _VA_LIST_T_H
-#endif
-#ifndef __va_list__
-#define __va_list__
-#endif
-
-#endif /* not _VA_LIST_, except on certain systems */
-
-#endif /* not __svr4__ */
-
-#endif /* _STDARG_H */
-
-#endif /* not _ANSI_STDARG_H_ */
-#endif /* not _STDARG_H */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdatomic.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdatomic.h
deleted file mode 100644
index 108259b..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdatomic.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/* Copyright (C) 2013-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* ISO C11 Standard:  7.17  Atomics <stdatomic.h>.  */
-
-#ifndef _STDATOMIC_H
-#define _STDATOMIC_H
-
-typedef enum
-  {
-    memory_order_relaxed = __ATOMIC_RELAXED,
-    memory_order_consume = __ATOMIC_CONSUME,
-    memory_order_acquire = __ATOMIC_ACQUIRE,
-    memory_order_release = __ATOMIC_RELEASE,
-    memory_order_acq_rel = __ATOMIC_ACQ_REL,
-    memory_order_seq_cst = __ATOMIC_SEQ_CST
-  } memory_order;
-
-
-typedef _Atomic _Bool atomic_bool;
-typedef _Atomic char atomic_char;
-typedef _Atomic signed char atomic_schar;
-typedef _Atomic unsigned char atomic_uchar;
-typedef _Atomic short atomic_short;
-typedef _Atomic unsigned short atomic_ushort;
-typedef _Atomic int atomic_int;
-typedef _Atomic unsigned int atomic_uint;
-typedef _Atomic long atomic_long;
-typedef _Atomic unsigned long atomic_ulong;
-typedef _Atomic long long atomic_llong;
-typedef _Atomic unsigned long long atomic_ullong;
-typedef _Atomic __CHAR16_TYPE__ atomic_char16_t;
-typedef _Atomic __CHAR32_TYPE__ atomic_char32_t;
-typedef _Atomic __WCHAR_TYPE__ atomic_wchar_t;
-typedef _Atomic __INT_LEAST8_TYPE__ atomic_int_least8_t;
-typedef _Atomic __UINT_LEAST8_TYPE__ atomic_uint_least8_t;
-typedef _Atomic __INT_LEAST16_TYPE__ atomic_int_least16_t;
-typedef _Atomic __UINT_LEAST16_TYPE__ atomic_uint_least16_t;
-typedef _Atomic __INT_LEAST32_TYPE__ atomic_int_least32_t;
-typedef _Atomic __UINT_LEAST32_TYPE__ atomic_uint_least32_t;
-typedef _Atomic __INT_LEAST64_TYPE__ atomic_int_least64_t;
-typedef _Atomic __UINT_LEAST64_TYPE__ atomic_uint_least64_t;
-typedef _Atomic __INT_FAST8_TYPE__ atomic_int_fast8_t;
-typedef _Atomic __UINT_FAST8_TYPE__ atomic_uint_fast8_t;
-typedef _Atomic __INT_FAST16_TYPE__ atomic_int_fast16_t;
-typedef _Atomic __UINT_FAST16_TYPE__ atomic_uint_fast16_t;
-typedef _Atomic __INT_FAST32_TYPE__ atomic_int_fast32_t;
-typedef _Atomic __UINT_FAST32_TYPE__ atomic_uint_fast32_t;
-typedef _Atomic __INT_FAST64_TYPE__ atomic_int_fast64_t;
-typedef _Atomic __UINT_FAST64_TYPE__ atomic_uint_fast64_t;
-typedef _Atomic __INTPTR_TYPE__ atomic_intptr_t;
-typedef _Atomic __UINTPTR_TYPE__ atomic_uintptr_t;
-typedef _Atomic __SIZE_TYPE__ atomic_size_t;
-typedef _Atomic __PTRDIFF_TYPE__ atomic_ptrdiff_t;
-typedef _Atomic __INTMAX_TYPE__ atomic_intmax_t;
-typedef _Atomic __UINTMAX_TYPE__ atomic_uintmax_t;        
-
-
-#define ATOMIC_VAR_INIT(VALUE)	(VALUE)
-#define atomic_init(PTR, VAL)			\
-  do						\
-    {						\
-      *(PTR) = (VAL);				\
-    }						\
-  while (0)
-
-#define kill_dependency(Y)			\
-  __extension__					\
-  ({						\
-    __auto_type __kill_dependency_tmp = (Y);	\
-    __kill_dependency_tmp;			\
-  })
-
-#define atomic_thread_fence(MO)	__atomic_thread_fence (MO)
-#define atomic_signal_fence(MO)	__atomic_signal_fence  (MO)
-#define atomic_is_lock_free(OBJ) __atomic_is_lock_free (sizeof (*(OBJ)), (OBJ))
-
-#define __atomic_type_lock_free(T)				\
-  (__atomic_always_lock_free (sizeof (T), (void *) 0)		\
-   ? 2								\
-   : (__atomic_is_lock_free (sizeof (T), (void *) 0) ? 1 : 0))
-#define ATOMIC_BOOL_LOCK_FREE			\
-  __atomic_type_lock_free (atomic_bool)
-#define ATOMIC_CHAR_LOCK_FREE			\
-  __atomic_type_lock_free (atomic_char)
-#define ATOMIC_CHAR16_T_LOCK_FREE		\
-  __atomic_type_lock_free (atomic_char16_t)
-#define ATOMIC_CHAR32_T_LOCK_FREE		\
-  __atomic_type_lock_free (atomic_char32_t)
-#define ATOMIC_WCHAR_T_LOCK_FREE		\
-  __atomic_type_lock_free (atomic_wchar_t)
-#define ATOMIC_SHORT_LOCK_FREE 			\
-  __atomic_type_lock_free (atomic_short)
-#define ATOMIC_INT_LOCK_FREE 			\
-  __atomic_type_lock_free (atomic_int)
-#define ATOMIC_LONG_LOCK_FREE			\
-  __atomic_type_lock_free (atomic_long)
-#define ATOMIC_LLONG_LOCK_FREE			\
-  __atomic_type_lock_free (atomic_llong)
-#define ATOMIC_POINTER_LOCK_FREE		\
-  __atomic_type_lock_free (void * _Atomic)
-
-
-/* Note that these macros require __typeof__ and __auto_type to remove
-   _Atomic qualifiers (and const qualifiers, if those are valid on
-   macro operands).
-   
-   Also note that the header file uses the generic form of __atomic
-   builtins, which requires the address to be taken of the value
-   parameter, and then we pass that value on.  This allows the macros
-   to work for any type, and the compiler is smart enough to convert
-   these to lock-free _N variants if possible, and throw away the
-   temps.  */
-
-#define atomic_store_explicit(PTR, VAL, MO)				\
-  __extension__								\
-  ({									\
-    __auto_type __atomic_store_ptr = (PTR);				\
-    __typeof__ (*__atomic_store_ptr) __atomic_store_tmp = (VAL);	\
-    __atomic_store (__atomic_store_ptr, &__atomic_store_tmp, (MO));	\
-  })
-
-#define atomic_store(PTR, VAL)				\
-  atomic_store_explicit (PTR, VAL, __ATOMIC_SEQ_CST)
-
-
-#define atomic_load_explicit(PTR, MO)					\
-  __extension__								\
-  ({									\
-    __auto_type __atomic_load_ptr = (PTR);				\
-    __typeof__ (*__atomic_load_ptr) __atomic_load_tmp;			\
-    __atomic_load (__atomic_load_ptr, &__atomic_load_tmp, (MO));	\
-    __atomic_load_tmp;							\
-  })
-
-#define atomic_load(PTR)  atomic_load_explicit (PTR, __ATOMIC_SEQ_CST)
-
-
-#define atomic_exchange_explicit(PTR, VAL, MO)				\
-  __extension__								\
-  ({									\
-    __auto_type __atomic_exchange_ptr = (PTR);				\
-    __typeof__ (*__atomic_exchange_ptr) __atomic_exchange_val = (VAL);	\
-    __typeof__ (*__atomic_exchange_ptr) __atomic_exchange_tmp;		\
-    __atomic_exchange (__atomic_exchange_ptr, &__atomic_exchange_val,	\
-		       &__atomic_exchange_tmp, (MO));			\
-    __atomic_exchange_tmp;						\
-  })
-
-#define atomic_exchange(PTR, VAL) 			\
-  atomic_exchange_explicit (PTR, VAL, __ATOMIC_SEQ_CST)
-
-
-#define atomic_compare_exchange_strong_explicit(PTR, VAL, DES, SUC, FAIL) \
-  __extension__								\
-  ({									\
-    __auto_type __atomic_compare_exchange_ptr = (PTR);			\
-    __typeof__ (*__atomic_compare_exchange_ptr) __atomic_compare_exchange_tmp \
-      = (DES);								\
-    __atomic_compare_exchange (__atomic_compare_exchange_ptr, (VAL),	\
-			       &__atomic_compare_exchange_tmp, 0,	\
-			       (SUC), (FAIL));				\
-  })
-
-#define atomic_compare_exchange_strong(PTR, VAL, DES) 			   \
-  atomic_compare_exchange_strong_explicit (PTR, VAL, DES, __ATOMIC_SEQ_CST, \
-					   __ATOMIC_SEQ_CST)
-
-#define atomic_compare_exchange_weak_explicit(PTR, VAL, DES, SUC, FAIL) \
-  __extension__								\
-  ({									\
-    __auto_type __atomic_compare_exchange_ptr = (PTR);			\
-    __typeof__ (*__atomic_compare_exchange_ptr) __atomic_compare_exchange_tmp \
-      = (DES);								\
-    __atomic_compare_exchange (__atomic_compare_exchange_ptr, (VAL),	\
-			       &__atomic_compare_exchange_tmp, 1,	\
-			       (SUC), (FAIL));				\
-  })
-
-#define atomic_compare_exchange_weak(PTR, VAL, DES)			\
-  atomic_compare_exchange_weak_explicit (PTR, VAL, DES, __ATOMIC_SEQ_CST, \
-					 __ATOMIC_SEQ_CST)
-
-
-
-#define atomic_fetch_add(PTR, VAL) __atomic_fetch_add ((PTR), (VAL), 	\
-						       __ATOMIC_SEQ_CST)
-#define atomic_fetch_add_explicit(PTR, VAL, MO) 			\
-			  __atomic_fetch_add ((PTR), (VAL), (MO))
-
-#define atomic_fetch_sub(PTR, VAL) __atomic_fetch_sub ((PTR), (VAL), 	\
-						       __ATOMIC_SEQ_CST)
-#define atomic_fetch_sub_explicit(PTR, VAL, MO) 			\
-			  __atomic_fetch_sub ((PTR), (VAL), (MO))
-
-#define atomic_fetch_or(PTR, VAL) __atomic_fetch_or ((PTR), (VAL), 	\
-						       __ATOMIC_SEQ_CST)
-#define atomic_fetch_or_explicit(PTR, VAL, MO) 			\
-			  __atomic_fetch_or ((PTR), (VAL), (MO))
-
-#define atomic_fetch_xor(PTR, VAL) __atomic_fetch_xor ((PTR), (VAL), 	\
-						       __ATOMIC_SEQ_CST)
-#define atomic_fetch_xor_explicit(PTR, VAL, MO) 			\
-			  __atomic_fetch_xor ((PTR), (VAL), (MO))
-
-#define atomic_fetch_and(PTR, VAL) __atomic_fetch_and ((PTR), (VAL), 	\
-						       __ATOMIC_SEQ_CST)
-#define atomic_fetch_and_explicit(PTR, VAL, MO) 			\
-			  __atomic_fetch_and ((PTR), (VAL), (MO))
-
-
-typedef _Atomic struct
-{
-#if __GCC_ATOMIC_TEST_AND_SET_TRUEVAL == 1
-  _Bool __val;
-#else
-  unsigned char __val;
-#endif
-} atomic_flag;
-
-#define ATOMIC_FLAG_INIT	{ 0 }
-
-
-#define atomic_flag_test_and_set(PTR) 					\
-			__atomic_test_and_set ((PTR), __ATOMIC_SEQ_CST)
-#define atomic_flag_test_and_set_explicit(PTR, MO)			\
-			__atomic_test_and_set ((PTR), (MO))
-
-#define atomic_flag_clear(PTR)	__atomic_clear ((PTR), __ATOMIC_SEQ_CST)
-#define atomic_flag_clear_explicit(PTR, MO)   __atomic_clear ((PTR), (MO))
-
-#endif  /* _STDATOMIC_H */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdbool.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdbool.h
deleted file mode 100644
index f4e802f..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdbool.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 1998-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/*
- * ISO C Standard:  7.16  Boolean type and values  <stdbool.h>
- */
-
-#ifndef _STDBOOL_H
-#define _STDBOOL_H
-
-#ifndef __cplusplus
-
-#define bool	_Bool
-#define true	1
-#define false	0
-
-#else /* __cplusplus */
-
-/* Supporting <stdbool.h> in C++ is a GCC extension.  */
-#define _Bool	bool
-#define bool	bool
-#define false	false
-#define true	true
-
-#endif /* __cplusplus */
-
-/* Signal that all the definitions are present.  */
-#define __bool_true_false_are_defined	1
-
-#endif	/* stdbool.h */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stddef.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stddef.h
deleted file mode 100644
index 5212a27..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stddef.h
+++ /dev/null
@@ -1,442 +0,0 @@
-/* Copyright (C) 1989-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/*
- * ISO C Standard:  7.17  Common definitions  <stddef.h>
- */
-#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \
-     && !defined(__STDDEF_H__)) \
-    || defined(__need_wchar_t) || defined(__need_size_t) \
-    || defined(__need_ptrdiff_t) || defined(__need_NULL) \
-    || defined(__need_wint_t)
-
-/* Any one of these symbols __need_* means that GNU libc
-   wants us just to define one data type.  So don't define
-   the symbols that indicate this file's entire job has been done.  */
-#if (!defined(__need_wchar_t) && !defined(__need_size_t)	\
-     && !defined(__need_ptrdiff_t) && !defined(__need_NULL)	\
-     && !defined(__need_wint_t))
-#define _STDDEF_H
-#define _STDDEF_H_
-/* snaroff@next.com says the NeXT needs this.  */
-#define _ANSI_STDDEF_H
-#endif
-
-#ifndef __sys_stdtypes_h
-/* This avoids lossage on SunOS but only if stdtypes.h comes first.
-   There's no way to win with the other order!  Sun lossage.  */
-
-/* On 4.3bsd-net2, make sure ansi.h is included, so we have
-   one less case to deal with in the following.  */
-#if defined (__BSD_NET2__) || defined (____386BSD____) || (defined (__FreeBSD__) && (__FreeBSD__ < 5)) || defined(__NetBSD__)
-#include <machine/ansi.h>
-#endif
-/* On FreeBSD 5, machine/ansi.h does not exist anymore... */
-#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
-#include <sys/_types.h>
-#endif
-
-/* In 4.3bsd-net2, machine/ansi.h defines these symbols, which are
-   defined if the corresponding type is *not* defined.
-   FreeBSD-2.1 defines _MACHINE_ANSI_H_ instead of _ANSI_H_.
-   NetBSD defines _I386_ANSI_H_ and _X86_64_ANSI_H_ instead of _ANSI_H_ */
-#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_)  || defined(_I386_ANSI_H_)
-#if !defined(_SIZE_T_) && !defined(_BSD_SIZE_T_)
-#define _SIZE_T
-#endif
-#if !defined(_PTRDIFF_T_) && !defined(_BSD_PTRDIFF_T_)
-#define _PTRDIFF_T
-#endif
-/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
-   instead of _WCHAR_T_. */
-#if !defined(_WCHAR_T_) && !defined(_BSD_WCHAR_T_)
-#ifndef _BSD_WCHAR_T_
-#define _WCHAR_T
-#endif
-#endif
-/* Undef _FOO_T_ if we are supposed to define foo_t.  */
-#if defined (__need_ptrdiff_t) || defined (_STDDEF_H_)
-#undef _PTRDIFF_T_
-#undef _BSD_PTRDIFF_T_
-#endif
-#if defined (__need_size_t) || defined (_STDDEF_H_)
-#undef _SIZE_T_
-#undef _BSD_SIZE_T_
-#endif
-#if defined (__need_wchar_t) || defined (_STDDEF_H_)
-#undef _WCHAR_T_
-#undef _BSD_WCHAR_T_
-#endif
-#endif /* defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_) */
-
-/* Sequent's header files use _PTRDIFF_T_ in some conflicting way.
-   Just ignore it.  */
-#if defined (__sequent__) && defined (_PTRDIFF_T_)
-#undef _PTRDIFF_T_
-#endif
-
-/* On VxWorks, <type/vxTypesBase.h> may have defined macros like
-   _TYPE_size_t which will typedef size_t.  fixincludes patched the
-   vxTypesBase.h so that this macro is only defined if _GCC_SIZE_T is
-   not defined, and so that defining this macro defines _GCC_SIZE_T.
-   If we find that the macros are still defined at this point, we must
-   invoke them so that the type is defined as expected.  */
-#if defined (_TYPE_ptrdiff_t) && (defined (__need_ptrdiff_t) || defined (_STDDEF_H_))
-_TYPE_ptrdiff_t;
-#undef _TYPE_ptrdiff_t
-#endif
-#if defined (_TYPE_size_t) && (defined (__need_size_t) || defined (_STDDEF_H_))
-_TYPE_size_t;
-#undef _TYPE_size_t
-#endif
-#if defined (_TYPE_wchar_t) && (defined (__need_wchar_t) || defined (_STDDEF_H_))
-_TYPE_wchar_t;
-#undef _TYPE_wchar_t
-#endif
-
-/* In case nobody has defined these types, but we aren't running under
-   GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
-   __WCHAR_TYPE__ have reasonable values.  This can happen if the
-   parts of GCC is compiled by an older compiler, that actually
-   include gstddef.h, such as collect2.  */
-
-/* Signed type of difference of two pointers.  */
-
-/* Define this type if we are doing the whole job,
-   or if we want this type in particular.  */
-#if defined (_STDDEF_H) || defined (__need_ptrdiff_t)
-#ifndef _PTRDIFF_T	/* in case <sys/types.h> has defined it. */
-#ifndef _T_PTRDIFF_
-#ifndef _T_PTRDIFF
-#ifndef __PTRDIFF_T
-#ifndef _PTRDIFF_T_
-#ifndef _BSD_PTRDIFF_T_
-#ifndef ___int_ptrdiff_t_h
-#ifndef _GCC_PTRDIFF_T
-#define _PTRDIFF_T
-#define _T_PTRDIFF_
-#define _T_PTRDIFF
-#define __PTRDIFF_T
-#define _PTRDIFF_T_
-#define _BSD_PTRDIFF_T_
-#define ___int_ptrdiff_t_h
-#define _GCC_PTRDIFF_T
-#ifndef __PTRDIFF_TYPE__
-#define __PTRDIFF_TYPE__ long int
-#endif
-typedef __PTRDIFF_TYPE__ ptrdiff_t;
-#endif /* _GCC_PTRDIFF_T */
-#endif /* ___int_ptrdiff_t_h */
-#endif /* _BSD_PTRDIFF_T_ */
-#endif /* _PTRDIFF_T_ */
-#endif /* __PTRDIFF_T */
-#endif /* _T_PTRDIFF */
-#endif /* _T_PTRDIFF_ */
-#endif /* _PTRDIFF_T */
-
-/* If this symbol has done its job, get rid of it.  */
-#undef	__need_ptrdiff_t
-
-#endif /* _STDDEF_H or __need_ptrdiff_t.  */
-
-/* Unsigned type of `sizeof' something.  */
-
-/* Define this type if we are doing the whole job,
-   or if we want this type in particular.  */
-#if defined (_STDDEF_H) || defined (__need_size_t)
-#ifndef __size_t__	/* BeOS */
-#ifndef __SIZE_T__	/* Cray Unicos/Mk */
-#ifndef _SIZE_T	/* in case <sys/types.h> has defined it. */
-#ifndef _SYS_SIZE_T_H
-#ifndef _T_SIZE_
-#ifndef _T_SIZE
-#ifndef __SIZE_T
-#ifndef _SIZE_T_
-#ifndef _BSD_SIZE_T_
-#ifndef _SIZE_T_DEFINED_
-#ifndef _SIZE_T_DEFINED
-#ifndef _BSD_SIZE_T_DEFINED_	/* Darwin */
-#ifndef _SIZE_T_DECLARED	/* FreeBSD 5 */
-#ifndef ___int_size_t_h
-#ifndef _GCC_SIZE_T
-#ifndef _SIZET_
-#ifndef __size_t
-#ifndef __DEFINED_size_t /* musl */
-#define __size_t__	/* BeOS */
-#define __SIZE_T__	/* Cray Unicos/Mk */
-#define _SIZE_T
-#define _SYS_SIZE_T_H
-#define _T_SIZE_
-#define _T_SIZE
-#define __SIZE_T
-#define _SIZE_T_
-#define _BSD_SIZE_T_
-#define _SIZE_T_DEFINED_
-#define _SIZE_T_DEFINED
-#define _BSD_SIZE_T_DEFINED_	/* Darwin */
-#define _SIZE_T_DECLARED	/* FreeBSD 5 */
-#define ___int_size_t_h
-#define _GCC_SIZE_T
-#define _SIZET_
-#define __DEFINED_size_t /* musl */
-#if (defined (__FreeBSD__) && (__FreeBSD__ >= 5)) \
-  || defined(__FreeBSD_kernel__)
-/* __size_t is a typedef on FreeBSD 5, must not trash it. */
-#elif defined (__VMS__)
-/* __size_t is also a typedef on VMS.  */
-#else
-#define __size_t
-#endif
-#ifndef __SIZE_TYPE__
-#define __SIZE_TYPE__ long unsigned int
-#endif
-#if !(defined (__GNUG__) && defined (size_t))
-typedef __SIZE_TYPE__ size_t;
-#ifdef __BEOS__
-typedef long ssize_t;
-#endif /* __BEOS__ */
-#endif /* !(defined (__GNUG__) && defined (size_t)) */
-#endif /* __DEFINED_size_t */
-#endif /* __size_t */
-#endif /* _SIZET_ */
-#endif /* _GCC_SIZE_T */
-#endif /* ___int_size_t_h */
-#endif /* _SIZE_T_DECLARED */
-#endif /* _BSD_SIZE_T_DEFINED_ */
-#endif /* _SIZE_T_DEFINED */
-#endif /* _SIZE_T_DEFINED_ */
-#endif /* _BSD_SIZE_T_ */
-#endif /* _SIZE_T_ */
-#endif /* __SIZE_T */
-#endif /* _T_SIZE */
-#endif /* _T_SIZE_ */
-#endif /* _SYS_SIZE_T_H */
-#endif /* _SIZE_T */
-#endif /* __SIZE_T__ */
-#endif /* __size_t__ */
-#undef	__need_size_t
-#endif /* _STDDEF_H or __need_size_t.  */
-
-
-/* Wide character type.
-   Locale-writers should change this as necessary to
-   be big enough to hold unique values not between 0 and 127,
-   and not (wchar_t) -1, for each defined multibyte character.  */
-
-/* Define this type if we are doing the whole job,
-   or if we want this type in particular.  */
-#if defined (_STDDEF_H) || defined (__need_wchar_t)
-#ifndef __wchar_t__	/* BeOS */
-#ifndef __WCHAR_T__	/* Cray Unicos/Mk */
-#ifndef _WCHAR_T
-#ifndef _T_WCHAR_
-#ifndef _T_WCHAR
-#ifndef __WCHAR_T
-#ifndef _WCHAR_T_
-#ifndef _BSD_WCHAR_T_
-#ifndef _BSD_WCHAR_T_DEFINED_    /* Darwin */
-#ifndef _BSD_RUNE_T_DEFINED_	/* Darwin */
-#ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */
-#ifndef _WCHAR_T_DEFINED_
-#ifndef _WCHAR_T_DEFINED
-#ifndef _WCHAR_T_H
-#ifndef ___int_wchar_t_h
-#ifndef __INT_WCHAR_T_H
-#ifndef _GCC_WCHAR_T
-#define __wchar_t__	/* BeOS */
-#define __WCHAR_T__	/* Cray Unicos/Mk */
-#define _WCHAR_T
-#define _T_WCHAR_
-#define _T_WCHAR
-#define __WCHAR_T
-#define _WCHAR_T_
-#define _BSD_WCHAR_T_
-#define _WCHAR_T_DEFINED_
-#define _WCHAR_T_DEFINED
-#define _WCHAR_T_H
-#define ___int_wchar_t_h
-#define __INT_WCHAR_T_H
-#define _GCC_WCHAR_T
-#define _WCHAR_T_DECLARED
-
-/* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
-   instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
-   symbols in the _FOO_T_ family, stays defined even after its
-   corresponding type is defined).  If we define wchar_t, then we
-   must undef _WCHAR_T_; for BSD/386 1.1 (and perhaps others), if
-   we undef _WCHAR_T_, then we must also define rune_t, since 
-   headers like runetype.h assume that if machine/ansi.h is included,
-   and _BSD_WCHAR_T_ is not defined, then rune_t is available.
-   machine/ansi.h says, "Note that _WCHAR_T_ and _RUNE_T_ must be of
-   the same type." */
-#ifdef _BSD_WCHAR_T_
-#undef _BSD_WCHAR_T_
-#ifdef _BSD_RUNE_T_
-#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
-typedef _BSD_RUNE_T_ rune_t;
-#define _BSD_WCHAR_T_DEFINED_
-#define _BSD_RUNE_T_DEFINED_	/* Darwin */
-#if defined (__FreeBSD__) && (__FreeBSD__ < 5)
-/* Why is this file so hard to maintain properly?  In contrast to
-   the comment above regarding BSD/386 1.1, on FreeBSD for as long
-   as the symbol has existed, _BSD_RUNE_T_ must not stay defined or
-   redundant typedefs will occur when stdlib.h is included after this file. */
-#undef _BSD_RUNE_T_
-#endif
-#endif
-#endif
-#endif
-/* FreeBSD 5 can't be handled well using "traditional" logic above
-   since it no longer defines _BSD_RUNE_T_ yet still desires to export
-   rune_t in some cases... */
-#if defined (__FreeBSD__) && (__FreeBSD__ >= 5)
-#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
-#if __BSD_VISIBLE
-#ifndef _RUNE_T_DECLARED
-typedef __rune_t        rune_t;
-#define _RUNE_T_DECLARED
-#endif
-#endif
-#endif
-#endif
-
-#ifndef __WCHAR_TYPE__
-#define __WCHAR_TYPE__ int
-#endif
-#ifndef __cplusplus
-typedef __WCHAR_TYPE__ wchar_t;
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif /* _WCHAR_T_DECLARED */
-#endif /* _BSD_RUNE_T_DEFINED_ */
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif
-#endif /* __WCHAR_T__ */
-#endif /* __wchar_t__ */
-#undef	__need_wchar_t
-#endif /* _STDDEF_H or __need_wchar_t.  */
-
-#if defined (__need_wint_t)
-#ifndef _WINT_T
-#define _WINT_T
-
-#ifndef __WINT_TYPE__
-#define __WINT_TYPE__ unsigned int
-#endif
-typedef __WINT_TYPE__ wint_t;
-#endif
-#undef __need_wint_t
-#endif
-
-/*  In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
-    are already defined.  */
-/*  BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here.  */
-/*  NetBSD 5 requires the I386_ANSI_H and X86_64_ANSI_H checks here.  */
-#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_) || defined(_X86_64_ANSI_H_) || defined(_I386_ANSI_H_)
-/*  The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_
-    are probably typos and should be removed before 2.8 is released.  */
-#ifdef _GCC_PTRDIFF_T_
-#undef _PTRDIFF_T_
-#undef _BSD_PTRDIFF_T_
-#endif
-#ifdef _GCC_SIZE_T_
-#undef _SIZE_T_
-#undef _BSD_SIZE_T_
-#endif
-#ifdef _GCC_WCHAR_T_
-#undef _WCHAR_T_
-#undef _BSD_WCHAR_T_
-#endif
-/*  The following ones are the real ones.  */
-#ifdef _GCC_PTRDIFF_T
-#undef _PTRDIFF_T_
-#undef _BSD_PTRDIFF_T_
-#endif
-#ifdef _GCC_SIZE_T
-#undef _SIZE_T_
-#undef _BSD_SIZE_T_
-#endif
-#ifdef _GCC_WCHAR_T
-#undef _WCHAR_T_
-#undef _BSD_WCHAR_T_
-#endif
-#endif /* _ANSI_H_ || _MACHINE_ANSI_H_ || _X86_64_ANSI_H_ || _I386_ANSI_H_ */
-
-#endif /* __sys_stdtypes_h */
-
-/* A null pointer constant.  */
-
-#if defined (_STDDEF_H) || defined (__need_NULL)
-#undef NULL		/* in case <stdio.h> has defined it. */
-#ifdef __GNUG__
-#define NULL __null
-#else   /* G++ */
-#ifndef __cplusplus
-#define NULL ((void *)0)
-#else   /* C++ */
-#define NULL 0
-#endif  /* C++ */
-#endif  /* G++ */
-#endif	/* NULL not defined and <stddef.h> or need NULL.  */
-#undef	__need_NULL
-
-#ifdef _STDDEF_H
-
-/* Offset of member MEMBER in a struct of type TYPE. */
-#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
-
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L) \
-  || (defined(__cplusplus) && __cplusplus >= 201103L)
-#ifndef _GCC_MAX_ALIGN_T
-#define _GCC_MAX_ALIGN_T
-/* Type whose alignment is supported in every context and is at least
-   as great as that of any standard type not using alignment
-   specifiers.  */
-typedef struct {
-  long long __max_align_ll __attribute__((__aligned__(__alignof__(long long))));
-  long double __max_align_ld __attribute__((__aligned__(__alignof__(long double))));
-} max_align_t;
-#endif
-#endif /* C11 or C++11.  */
-
-#if defined(__cplusplus) && __cplusplus >= 201103L
-#ifndef _GXX_NULLPTR_T
-#define _GXX_NULLPTR_T
-  typedef decltype(nullptr) nullptr_t;
-#endif
-#endif /* C++11.  */
-
-#endif /* _STDDEF_H was defined this time */
-
-#endif /* !_STDDEF_H && !_STDDEF_H_ && !_ANSI_STDDEF_H && !__STDDEF_H__
-	  || __need_XXX was not defined before */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdfix.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdfix.h
deleted file mode 100644
index 93e759a..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdfix.h
+++ /dev/null
@@ -1,204 +0,0 @@
-/* Copyright (C) 2007-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* ISO/IEC JTC1 SC22 WG14 N1169
- * Date: 2006-04-04
- * ISO/IEC TR 18037
- * Programming languages - C - Extensions to support embedded processors
- */
-
-#ifndef _STDFIX_H
-#define _STDFIX_H
-
-/* 7.18a.1 Introduction.  */
-
-#undef fract
-#undef accum
-#undef sat
-#define fract		_Fract
-#define accum		_Accum
-#define sat		_Sat
-
-/* 7.18a.3 Precision macros.  */
-
-#undef SFRACT_FBIT
-#undef SFRACT_MIN
-#undef SFRACT_MAX
-#undef SFRACT_EPSILON
-#define SFRACT_FBIT	__SFRACT_FBIT__
-#define SFRACT_MIN	__SFRACT_MIN__
-#define SFRACT_MAX	__SFRACT_MAX__
-#define SFRACT_EPSILON	__SFRACT_EPSILON__
-
-#undef USFRACT_FBIT
-#undef USFRACT_MIN
-#undef USFRACT_MAX
-#undef USFRACT_EPSILON
-#define USFRACT_FBIT	__USFRACT_FBIT__
-#define USFRACT_MIN	__USFRACT_MIN__		/* GCC extension.  */
-#define USFRACT_MAX	__USFRACT_MAX__
-#define USFRACT_EPSILON	__USFRACT_EPSILON__
-
-#undef FRACT_FBIT
-#undef FRACT_MIN
-#undef FRACT_MAX
-#undef FRACT_EPSILON
-#define FRACT_FBIT	__FRACT_FBIT__
-#define FRACT_MIN	__FRACT_MIN__
-#define FRACT_MAX	__FRACT_MAX__
-#define FRACT_EPSILON	__FRACT_EPSILON__
-
-#undef UFRACT_FBIT
-#undef UFRACT_MIN
-#undef UFRACT_MAX
-#undef UFRACT_EPSILON
-#define UFRACT_FBIT	__UFRACT_FBIT__
-#define UFRACT_MIN	__UFRACT_MIN__		/* GCC extension.  */
-#define UFRACT_MAX	__UFRACT_MAX__
-#define UFRACT_EPSILON	__UFRACT_EPSILON__
-
-#undef LFRACT_FBIT
-#undef LFRACT_MIN
-#undef LFRACT_MAX
-#undef LFRACT_EPSILON
-#define LFRACT_FBIT	__LFRACT_FBIT__
-#define LFRACT_MIN	__LFRACT_MIN__
-#define LFRACT_MAX	__LFRACT_MAX__
-#define LFRACT_EPSILON	__LFRACT_EPSILON__
-
-#undef ULFRACT_FBIT
-#undef ULFRACT_MIN
-#undef ULFRACT_MAX
-#undef ULFRACT_EPSILON
-#define ULFRACT_FBIT	__ULFRACT_FBIT__
-#define ULFRACT_MIN	__ULFRACT_MIN__		/* GCC extension.  */
-#define ULFRACT_MAX	__ULFRACT_MAX__
-#define ULFRACT_EPSILON	__ULFRACT_EPSILON__
-
-#undef LLFRACT_FBIT
-#undef LLFRACT_MIN
-#undef LLFRACT_MAX
-#undef LLFRACT_EPSILON
-#define LLFRACT_FBIT	__LLFRACT_FBIT__	/* GCC extension.  */
-#define LLFRACT_MIN	__LLFRACT_MIN__		/* GCC extension.  */
-#define LLFRACT_MAX	__LLFRACT_MAX__		/* GCC extension.  */
-#define LLFRACT_EPSILON	__LLFRACT_EPSILON__	/* GCC extension.  */
-
-#undef ULLFRACT_FBIT
-#undef ULLFRACT_MIN
-#undef ULLFRACT_MAX
-#undef ULLFRACT_EPSILON
-#define ULLFRACT_FBIT	__ULLFRACT_FBIT__	/* GCC extension.  */
-#define ULLFRACT_MIN	__ULLFRACT_MIN__	/* GCC extension.  */
-#define ULLFRACT_MAX	__ULLFRACT_MAX__	/* GCC extension.  */
-#define ULLFRACT_EPSILON	__ULLFRACT_EPSILON__	/* GCC extension.  */
-
-#undef SACCUM_FBIT
-#undef SACCUM_IBIT
-#undef SACCUM_MIN
-#undef SACCUM_MAX
-#undef SACCUM_EPSILON
-#define SACCUM_FBIT	__SACCUM_FBIT__
-#define SACCUM_IBIT	__SACCUM_IBIT__
-#define SACCUM_MIN	__SACCUM_MIN__
-#define SACCUM_MAX	__SACCUM_MAX__
-#define SACCUM_EPSILON	__SACCUM_EPSILON__
-
-#undef USACCUM_FBIT
-#undef USACCUM_IBIT
-#undef USACCUM_MIN
-#undef USACCUM_MAX
-#undef USACCUM_EPSILON
-#define USACCUM_FBIT	__USACCUM_FBIT__
-#define USACCUM_IBIT	__USACCUM_IBIT__
-#define USACCUM_MIN	__USACCUM_MIN__		/* GCC extension.  */
-#define USACCUM_MAX	__USACCUM_MAX__
-#define USACCUM_EPSILON	__USACCUM_EPSILON__
-
-#undef ACCUM_FBIT
-#undef ACCUM_IBIT
-#undef ACCUM_MIN
-#undef ACCUM_MAX
-#undef ACCUM_EPSILON
-#define ACCUM_FBIT	__ACCUM_FBIT__
-#define ACCUM_IBIT	__ACCUM_IBIT__
-#define ACCUM_MIN	__ACCUM_MIN__
-#define ACCUM_MAX	__ACCUM_MAX__
-#define ACCUM_EPSILON	__ACCUM_EPSILON__
-
-#undef UACCUM_FBIT
-#undef UACCUM_IBIT
-#undef UACCUM_MIN
-#undef UACCUM_MAX
-#undef UACCUM_EPSILON
-#define UACCUM_FBIT	__UACCUM_FBIT__
-#define UACCUM_IBIT	__UACCUM_IBIT__
-#define UACCUM_MIN	__UACCUM_MIN__		/* GCC extension.  */
-#define UACCUM_MAX	__UACCUM_MAX__
-#define UACCUM_EPSILON	__UACCUM_EPSILON__
-
-#undef LACCUM_FBIT
-#undef LACCUM_IBIT
-#undef LACCUM_MIN
-#undef LACCUM_MAX
-#undef LACCUM_EPSILON
-#define LACCUM_FBIT	__LACCUM_FBIT__
-#define LACCUM_IBIT	__LACCUM_IBIT__
-#define LACCUM_MIN	__LACCUM_MIN__
-#define LACCUM_MAX	__LACCUM_MAX__
-#define LACCUM_EPSILON	__LACCUM_EPSILON__
-
-#undef ULACCUM_FBIT
-#undef ULACCUM_IBIT
-#undef ULACCUM_MIN
-#undef ULACCUM_MAX
-#undef ULACCUM_EPSILON
-#define ULACCUM_FBIT	__ULACCUM_FBIT__
-#define ULACCUM_IBIT	__ULACCUM_IBIT__
-#define ULACCUM_MIN	__ULACCUM_MIN__		/* GCC extension.  */
-#define ULACCUM_MAX	__ULACCUM_MAX__
-#define ULACCUM_EPSILON	__ULACCUM_EPSILON__
-
-#undef LLACCUM_FBIT
-#undef LLACCUM_IBIT
-#undef LLACCUM_MIN
-#undef LLACCUM_MAX
-#undef LLACCUM_EPSILON
-#define LLACCUM_FBIT	__LLACCUM_FBIT__	/* GCC extension.  */
-#define LLACCUM_IBIT	__LLACCUM_IBIT__	/* GCC extension.  */
-#define LLACCUM_MIN	__LLACCUM_MIN__		/* GCC extension.  */
-#define LLACCUM_MAX	__LLACCUM_MAX__		/* GCC extension.  */
-#define LLACCUM_EPSILON	__LLACCUM_EPSILON__	/* GCC extension.  */
-
-#undef ULLACCUM_FBIT
-#undef ULLACCUM_IBIT
-#undef ULLACCUM_MIN
-#undef ULLACCUM_MAX
-#undef ULLACCUM_EPSILON
-#define ULLACCUM_FBIT	__ULLACCUM_FBIT__	/* GCC extension.  */
-#define ULLACCUM_IBIT	__ULLACCUM_IBIT__	/* GCC extension.  */
-#define ULLACCUM_MIN	__ULLACCUM_MIN__	/* GCC extension.  */
-#define ULLACCUM_MAX	__ULLACCUM_MAX__	/* GCC extension.  */
-#define ULLACCUM_EPSILON	__ULLACCUM_EPSILON__	/* GCC extension.  */
-
-#endif /* _STDFIX_H */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdint-gcc.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdint-gcc.h
deleted file mode 100644
index 1470cea..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdint-gcc.h
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright (C) 2008-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/*
- * ISO C Standard:  7.18  Integer types  <stdint.h>
- */
-
-#ifndef _GCC_STDINT_H
-#define _GCC_STDINT_H
-
-/* 7.8.1.1 Exact-width integer types */
-
-#ifdef __INT8_TYPE__
-typedef __INT8_TYPE__ int8_t;
-#endif
-#ifdef __INT16_TYPE__
-typedef __INT16_TYPE__ int16_t;
-#endif
-#ifdef __INT32_TYPE__
-typedef __INT32_TYPE__ int32_t;
-#endif
-#ifdef __INT64_TYPE__
-typedef __INT64_TYPE__ int64_t;
-#endif
-#ifdef __UINT8_TYPE__
-typedef __UINT8_TYPE__ uint8_t;
-#endif
-#ifdef __UINT16_TYPE__
-typedef __UINT16_TYPE__ uint16_t;
-#endif
-#ifdef __UINT32_TYPE__
-typedef __UINT32_TYPE__ uint32_t;
-#endif
-#ifdef __UINT64_TYPE__
-typedef __UINT64_TYPE__ uint64_t;
-#endif
-
-/* 7.8.1.2 Minimum-width integer types */
-
-typedef __INT_LEAST8_TYPE__ int_least8_t;
-typedef __INT_LEAST16_TYPE__ int_least16_t;
-typedef __INT_LEAST32_TYPE__ int_least32_t;
-typedef __INT_LEAST64_TYPE__ int_least64_t;
-typedef __UINT_LEAST8_TYPE__ uint_least8_t;
-typedef __UINT_LEAST16_TYPE__ uint_least16_t;
-typedef __UINT_LEAST32_TYPE__ uint_least32_t;
-typedef __UINT_LEAST64_TYPE__ uint_least64_t;
-
-/* 7.8.1.3 Fastest minimum-width integer types */
-
-typedef __INT_FAST8_TYPE__ int_fast8_t;
-typedef __INT_FAST16_TYPE__ int_fast16_t;
-typedef __INT_FAST32_TYPE__ int_fast32_t;
-typedef __INT_FAST64_TYPE__ int_fast64_t;
-typedef __UINT_FAST8_TYPE__ uint_fast8_t;
-typedef __UINT_FAST16_TYPE__ uint_fast16_t;
-typedef __UINT_FAST32_TYPE__ uint_fast32_t;
-typedef __UINT_FAST64_TYPE__ uint_fast64_t;
-
-/* 7.8.1.4 Integer types capable of holding object pointers */
-
-#ifdef __INTPTR_TYPE__
-typedef __INTPTR_TYPE__ intptr_t;
-#endif
-#ifdef __UINTPTR_TYPE__
-typedef __UINTPTR_TYPE__ uintptr_t;
-#endif
-
-/* 7.8.1.5 Greatest-width integer types */
-
-typedef __INTMAX_TYPE__ intmax_t;
-typedef __UINTMAX_TYPE__ uintmax_t;
-
-#if (!defined __cplusplus || __cplusplus >= 201103L \
-     || defined __STDC_LIMIT_MACROS)
-
-/* 7.18.2 Limits of specified-width integer types */
-
-#ifdef __INT8_MAX__
-# undef INT8_MAX
-# define INT8_MAX __INT8_MAX__
-# undef INT8_MIN
-# define INT8_MIN (-INT8_MAX - 1)
-#endif
-#ifdef __UINT8_MAX__
-# undef UINT8_MAX
-# define UINT8_MAX __UINT8_MAX__
-#endif
-#ifdef __INT16_MAX__
-# undef INT16_MAX
-# define INT16_MAX __INT16_MAX__
-# undef INT16_MIN
-# define INT16_MIN (-INT16_MAX - 1)
-#endif
-#ifdef __UINT16_MAX__
-# undef UINT16_MAX
-# define UINT16_MAX __UINT16_MAX__
-#endif
-#ifdef __INT32_MAX__
-# undef INT32_MAX
-# define INT32_MAX __INT32_MAX__
-# undef INT32_MIN
-# define INT32_MIN (-INT32_MAX - 1)
-#endif
-#ifdef __UINT32_MAX__
-# undef UINT32_MAX
-# define UINT32_MAX __UINT32_MAX__
-#endif
-#ifdef __INT64_MAX__
-# undef INT64_MAX
-# define INT64_MAX __INT64_MAX__
-# undef INT64_MIN
-# define INT64_MIN (-INT64_MAX - 1)
-#endif
-#ifdef __UINT64_MAX__
-# undef UINT64_MAX
-# define UINT64_MAX __UINT64_MAX__
-#endif
-
-#undef INT_LEAST8_MAX
-#define INT_LEAST8_MAX __INT_LEAST8_MAX__
-#undef INT_LEAST8_MIN
-#define INT_LEAST8_MIN (-INT_LEAST8_MAX - 1)
-#undef UINT_LEAST8_MAX
-#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
-#undef INT_LEAST16_MAX
-#define INT_LEAST16_MAX __INT_LEAST16_MAX__
-#undef INT_LEAST16_MIN
-#define INT_LEAST16_MIN (-INT_LEAST16_MAX - 1)
-#undef UINT_LEAST16_MAX
-#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
-#undef INT_LEAST32_MAX
-#define INT_LEAST32_MAX __INT_LEAST32_MAX__
-#undef INT_LEAST32_MIN
-#define INT_LEAST32_MIN (-INT_LEAST32_MAX - 1)
-#undef UINT_LEAST32_MAX
-#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
-#undef INT_LEAST64_MAX
-#define INT_LEAST64_MAX __INT_LEAST64_MAX__
-#undef INT_LEAST64_MIN
-#define INT_LEAST64_MIN (-INT_LEAST64_MAX - 1)
-#undef UINT_LEAST64_MAX
-#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
-
-#undef INT_FAST8_MAX
-#define INT_FAST8_MAX __INT_FAST8_MAX__
-#undef INT_FAST8_MIN
-#define INT_FAST8_MIN (-INT_FAST8_MAX - 1)
-#undef UINT_FAST8_MAX
-#define UINT_FAST8_MAX __UINT_FAST8_MAX__
-#undef INT_FAST16_MAX
-#define INT_FAST16_MAX __INT_FAST16_MAX__
-#undef INT_FAST16_MIN
-#define INT_FAST16_MIN (-INT_FAST16_MAX - 1)
-#undef UINT_FAST16_MAX
-#define UINT_FAST16_MAX __UINT_FAST16_MAX__
-#undef INT_FAST32_MAX
-#define INT_FAST32_MAX __INT_FAST32_MAX__
-#undef INT_FAST32_MIN
-#define INT_FAST32_MIN (-INT_FAST32_MAX - 1)
-#undef UINT_FAST32_MAX
-#define UINT_FAST32_MAX __UINT_FAST32_MAX__
-#undef INT_FAST64_MAX
-#define INT_FAST64_MAX __INT_FAST64_MAX__
-#undef INT_FAST64_MIN
-#define INT_FAST64_MIN (-INT_FAST64_MAX - 1)
-#undef UINT_FAST64_MAX
-#define UINT_FAST64_MAX __UINT_FAST64_MAX__
-
-#ifdef __INTPTR_MAX__
-# undef INTPTR_MAX
-# define INTPTR_MAX __INTPTR_MAX__
-# undef INTPTR_MIN
-# define INTPTR_MIN (-INTPTR_MAX - 1)
-#endif
-#ifdef __UINTPTR_MAX__
-# undef UINTPTR_MAX
-# define UINTPTR_MAX __UINTPTR_MAX__
-#endif
-
-#undef INTMAX_MAX
-#define INTMAX_MAX __INTMAX_MAX__
-#undef INTMAX_MIN
-#define INTMAX_MIN (-INTMAX_MAX - 1)
-#undef UINTMAX_MAX
-#define UINTMAX_MAX __UINTMAX_MAX__
-
-/* 7.18.3 Limits of other integer types */
-
-#undef PTRDIFF_MAX
-#define PTRDIFF_MAX __PTRDIFF_MAX__
-#undef PTRDIFF_MIN
-#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
-
-#undef SIG_ATOMIC_MAX
-#define SIG_ATOMIC_MAX __SIG_ATOMIC_MAX__
-#undef SIG_ATOMIC_MIN
-#define SIG_ATOMIC_MIN __SIG_ATOMIC_MIN__
-
-#undef SIZE_MAX
-#define SIZE_MAX __SIZE_MAX__
-
-#undef WCHAR_MAX
-#define WCHAR_MAX __WCHAR_MAX__
-#undef WCHAR_MIN
-#define WCHAR_MIN __WCHAR_MIN__
-
-#undef WINT_MAX
-#define WINT_MAX __WINT_MAX__
-#undef WINT_MIN
-#define WINT_MIN __WINT_MIN__
-
-#endif /* (!defined __cplusplus || __cplusplus >= 201103L
-	   || defined __STDC_LIMIT_MACROS)  */
-
-#if (!defined __cplusplus || __cplusplus >= 201103L \
-     || defined __STDC_CONSTANT_MACROS)
-
-#undef INT8_C
-#define INT8_C(c) __INT8_C(c)
-#undef INT16_C
-#define INT16_C(c) __INT16_C(c)
-#undef INT32_C
-#define INT32_C(c) __INT32_C(c)
-#undef INT64_C
-#define INT64_C(c) __INT64_C(c)
-#undef UINT8_C
-#define UINT8_C(c) __UINT8_C(c)
-#undef UINT16_C
-#define UINT16_C(c) __UINT16_C(c)
-#undef UINT32_C
-#define UINT32_C(c) __UINT32_C(c)
-#undef UINT64_C
-#define UINT64_C(c) __UINT64_C(c)
-#undef INTMAX_C
-#define INTMAX_C(c) __INTMAX_C(c)
-#undef UINTMAX_C
-#define UINTMAX_C(c) __UINTMAX_C(c)
-
-#endif /* (!defined __cplusplus || __cplusplus >= 201103L
-	   || defined __STDC_CONSTANT_MACROS) */
-
-#endif /* _GCC_STDINT_H */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdnoreturn.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdnoreturn.h
deleted file mode 100644
index 0134137..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/stdnoreturn.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2011-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option)
-any later version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* ISO C1X: 7.23 _Noreturn <stdnoreturn.h>.  */
-
-#ifndef _STDNORETURN_H
-#define _STDNORETURN_H
-
-#ifndef __cplusplus
-
-#define noreturn _Noreturn
-
-#endif
-
-#endif	/* stdnoreturn.h */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/unwind.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/unwind.h
deleted file mode 100644
index d351fb9..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/include/unwind.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/* Exception handling and frame unwind runtime interface routines.
-   Copyright (C) 2001-2014 Free Software Foundation, Inc.
-
-   This file is part of GCC.
-
-   GCC 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, or (at your option)
-   any later version.
-
-   GCC 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.
-
-   Under Section 7 of GPL version 3, you are granted additional
-   permissions described in the GCC Runtime Library Exception, version
-   3.1, as published by the Free Software Foundation.
-
-   You should have received a copy of the GNU General Public License and
-   a copy of the GCC Runtime Library Exception along with this program;
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This is derived from the C++ ABI for IA-64.  Where we diverge
-   for cross-architecture compatibility are noted with "@@@".  */
-
-#ifndef _UNWIND_H
-#define _UNWIND_H
-
-#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
-/* Only for _GCC_specific_handler.  */
-#include <windows.h>
-#endif
-
-#ifndef HIDE_EXPORTS
-#pragma GCC visibility push(default)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Level 1: Base ABI  */
-
-/* @@@ The IA-64 ABI uses uint64 throughout.  Most places this is
-   inefficient for 32-bit and smaller machines.  */
-typedef unsigned _Unwind_Word __attribute__((__mode__(__unwind_word__)));
-typedef signed _Unwind_Sword __attribute__((__mode__(__unwind_word__)));
-#if defined(__ia64__) && defined(__hpux__)
-typedef unsigned _Unwind_Ptr __attribute__((__mode__(__word__)));
-#else
-typedef unsigned _Unwind_Ptr __attribute__((__mode__(__pointer__)));
-#endif
-typedef unsigned _Unwind_Internal_Ptr __attribute__((__mode__(__pointer__)));
-
-/* @@@ The IA-64 ABI uses a 64-bit word to identify the producer and
-   consumer of an exception.  We'll go along with this for now even on
-   32-bit machines.  We'll need to provide some other option for
-   16-bit machines and for machines with > 8 bits per byte.  */
-typedef unsigned _Unwind_Exception_Class __attribute__((__mode__(__DI__)));
-
-/* The unwind interface uses reason codes in several contexts to
-   identify the reasons for failures or other actions.  */
-typedef enum
-{
-  _URC_NO_REASON = 0,
-  _URC_FOREIGN_EXCEPTION_CAUGHT = 1,
-  _URC_FATAL_PHASE2_ERROR = 2,
-  _URC_FATAL_PHASE1_ERROR = 3,
-  _URC_NORMAL_STOP = 4,
-  _URC_END_OF_STACK = 5,
-  _URC_HANDLER_FOUND = 6,
-  _URC_INSTALL_CONTEXT = 7,
-  _URC_CONTINUE_UNWIND = 8
-} _Unwind_Reason_Code;
-
-
-/* The unwind interface uses a pointer to an exception header object
-   as its representation of an exception being thrown. In general, the
-   full representation of an exception object is language- and
-   implementation-specific, but it will be prefixed by a header
-   understood by the unwind interface.  */
-
-struct _Unwind_Exception;
-
-typedef void (*_Unwind_Exception_Cleanup_Fn) (_Unwind_Reason_Code,
-					      struct _Unwind_Exception *);
-
-struct _Unwind_Exception
-{
-  _Unwind_Exception_Class exception_class;
-  _Unwind_Exception_Cleanup_Fn exception_cleanup;
-
-#if !defined (__USING_SJLJ_EXCEPTIONS__) && defined (__SEH__)
-  _Unwind_Word private_[6];
-#else
-  _Unwind_Word private_1;
-  _Unwind_Word private_2;
-#endif
-
-  /* @@@ The IA-64 ABI says that this structure must be double-word aligned.
-     Taking that literally does not make much sense generically.  Instead we
-     provide the maximum alignment required by any type for the machine.  */
-} __attribute__((__aligned__));
-
-
-/* The ACTIONS argument to the personality routine is a bitwise OR of one
-   or more of the following constants.  */
-typedef int _Unwind_Action;
-
-#define _UA_SEARCH_PHASE	1
-#define _UA_CLEANUP_PHASE	2
-#define _UA_HANDLER_FRAME	4
-#define _UA_FORCE_UNWIND	8
-#define _UA_END_OF_STACK	16
-
-/* The target can override this macro to define any back-end-specific
-   attributes required for the lowest-level stack frame.  */
-#ifndef LIBGCC2_UNWIND_ATTRIBUTE
-#define LIBGCC2_UNWIND_ATTRIBUTE
-#endif
-
-/* This is an opaque type used to refer to a system-specific data
-   structure used by the system unwinder. This context is created and
-   destroyed by the system, and passed to the personality routine
-   during unwinding.  */
-struct _Unwind_Context;
-
-/* Raise an exception, passing along the given exception object.  */
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_RaiseException (struct _Unwind_Exception *);
-
-/* Raise an exception for forced unwinding.  */
-
-typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
-     (int, _Unwind_Action, _Unwind_Exception_Class,
-      struct _Unwind_Exception *, struct _Unwind_Context *, void *);
-
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_ForcedUnwind (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-
-/* Helper to invoke the exception_cleanup routine.  */
-extern void _Unwind_DeleteException (struct _Unwind_Exception *);
-
-/* Resume propagation of an existing exception.  This is used after
-   e.g. executing cleanup code, and not to implement rethrowing.  */
-extern void LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_Resume (struct _Unwind_Exception *);
-
-/* @@@ Resume propagation of a FORCE_UNWIND exception, or to rethrow
-   a normal exception that was handled.  */
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_Resume_or_Rethrow (struct _Unwind_Exception *);
-
-/* @@@ Use unwind data to perform a stack backtrace.  The trace callback
-   is called for every stack frame in the call chain, but no cleanup
-   actions are performed.  */
-typedef _Unwind_Reason_Code (*_Unwind_Trace_Fn)
-     (struct _Unwind_Context *, void *);
-
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_Backtrace (_Unwind_Trace_Fn, void *);
-
-/* These functions are used for communicating information about the unwind
-   context (i.e. the unwind descriptors and the user register state) between
-   the unwind library and the personality routine and landing pad.  Only
-   selected registers may be manipulated.  */
-
-extern _Unwind_Word _Unwind_GetGR (struct _Unwind_Context *, int);
-extern void _Unwind_SetGR (struct _Unwind_Context *, int, _Unwind_Word);
-
-extern _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *);
-extern _Unwind_Ptr _Unwind_GetIPInfo (struct _Unwind_Context *, int *);
-extern void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr);
-
-/* @@@ Retrieve the CFA of the given context.  */
-extern _Unwind_Word _Unwind_GetCFA (struct _Unwind_Context *);
-
-extern void *_Unwind_GetLanguageSpecificData (struct _Unwind_Context *);
-
-extern _Unwind_Ptr _Unwind_GetRegionStart (struct _Unwind_Context *);
-
-
-/* The personality routine is the function in the C++ (or other language)
-   runtime library which serves as an interface between the system unwind
-   library and language-specific exception handling semantics.  It is
-   specific to the code fragment described by an unwind info block, and
-   it is always referenced via the pointer in the unwind info block, and
-   hence it has no ABI-specified name.
-
-   Note that this implies that two different C++ implementations can
-   use different names, and have different contents in the language
-   specific data area.  Moreover, that the language specific data
-   area contains no version info because name of the function invoked
-   provides more effective versioning by detecting at link time the
-   lack of code to handle the different data format.  */
-
-typedef _Unwind_Reason_Code (*_Unwind_Personality_Fn)
-     (int, _Unwind_Action, _Unwind_Exception_Class,
-      struct _Unwind_Exception *, struct _Unwind_Context *);
-
-/* @@@ The following alternate entry points are for setjmp/longjmp
-   based unwinding.  */
-
-struct SjLj_Function_Context;
-extern void _Unwind_SjLj_Register (struct SjLj_Function_Context *);
-extern void _Unwind_SjLj_Unregister (struct SjLj_Function_Context *);
-
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_RaiseException (struct _Unwind_Exception *);
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_ForcedUnwind (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-extern void LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_Resume (struct _Unwind_Exception *);
-extern _Unwind_Reason_Code LIBGCC2_UNWIND_ATTRIBUTE
-_Unwind_SjLj_Resume_or_Rethrow (struct _Unwind_Exception *);
-
-/* @@@ The following provide access to the base addresses for text
-   and data-relative addressing in the LDSA.  In order to stay link
-   compatible with the standard ABI for IA-64, we inline these.  */
-
-#ifdef __ia64__
-#include <stdlib.h>
-
-static inline _Unwind_Ptr
-_Unwind_GetDataRelBase (struct _Unwind_Context *_C)
-{
-  /* The GP is stored in R1.  */
-  return _Unwind_GetGR (_C, 1);
-}
-
-static inline _Unwind_Ptr
-_Unwind_GetTextRelBase (struct _Unwind_Context *_C __attribute__ ((__unused__)))
-{
-  abort ();
-  return 0;
-}
-
-/* @@@ Retrieve the Backing Store Pointer of the given context.  */
-extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *);
-#else
-extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *);
-extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *);
-#endif
-
-/* @@@ Given an address, return the entry point of the function that
-   contains it.  */
-extern void * _Unwind_FindEnclosingFunction (void *pc);
-
-#ifndef __SIZEOF_LONG__
-  #error "__SIZEOF_LONG__ macro not defined"
-#endif
-
-#ifndef __SIZEOF_POINTER__
-  #error "__SIZEOF_POINTER__ macro not defined"
-#endif
-
-
-/* leb128 type numbers have a potentially unlimited size.
-   The target of the following definitions of _sleb128_t and _uleb128_t
-   is to have efficient data types large enough to hold the leb128 type
-   numbers used in the unwind code.
-   Mostly these types will simply be defined to long and unsigned long
-   except when a unsigned long data type on the target machine is not
-   capable of storing a pointer.  */
-
-#if __SIZEOF_LONG__ >= __SIZEOF_POINTER__
-  typedef long _sleb128_t;
-  typedef unsigned long _uleb128_t;
-#elif __SIZEOF_LONG_LONG__ >= __SIZEOF_POINTER__
-  typedef long long _sleb128_t;
-  typedef unsigned long long _uleb128_t;
-#else
-# error "What type shall we use for _sleb128_t?"
-#endif
-
-#if defined (__SEH__) && !defined (__USING_SJLJ_EXCEPTIONS__)
-/* Handles the mapping from SEH to GCC interfaces.  */
-EXCEPTION_DISPOSITION _GCC_specific_handler (PEXCEPTION_RECORD, void *,
-					     PCONTEXT, PDISPATCHER_CONTEXT,
-					     _Unwind_Personality_Fn);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef HIDE_EXPORTS
-#pragma GCC visibility pop
-#endif
-
-#endif /* unwind.h */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/install-tools/include/limits.h b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/install-tools/include/limits.h
deleted file mode 100644
index 8c6a4d3..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/install-tools/include/limits.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Copyright (C) 1992-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option) any later
-version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-/* This administrivia gets added to the beginning of limits.h
-   if the system has its own version of limits.h.  */
-
-/* We use _GCC_LIMITS_H_ because we want this not to match
-   any macros that the system's limits.h uses for its own purposes.  */
-#ifndef _GCC_LIMITS_H_  /* Terminated in limity.h.  */
-#define _GCC_LIMITS_H_
-
-#ifndef _LIBC_LIMITS_H_
-/* Use "..." so that we find syslimits.h only in this same directory.  */
-#include "syslimits.h"
-#endif
-/* Copyright (C) 1991-2014 Free Software Foundation, Inc.
-
-This file is part of GCC.
-
-GCC 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, or (at your option) any later
-version.
-
-GCC 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.
-
-Under Section 7 of GPL version 3, you are granted additional
-permissions described in the GCC Runtime Library Exception, version
-3.1, as published by the Free Software Foundation.
-
-You should have received a copy of the GNU General Public License and
-a copy of the GCC Runtime Library Exception along with this program;
-see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-<http://www.gnu.org/licenses/>.  */
-
-#ifndef _LIMITS_H___
-#define _LIMITS_H___
-
-/* Number of bits in a `char'.  */
-#undef CHAR_BIT
-#define CHAR_BIT __CHAR_BIT__
-
-/* Maximum length of a multibyte character.  */
-#ifndef MB_LEN_MAX
-#define MB_LEN_MAX 1
-#endif
-
-/* Minimum and maximum values a `signed char' can hold.  */
-#undef SCHAR_MIN
-#define SCHAR_MIN (-SCHAR_MAX - 1)
-#undef SCHAR_MAX
-#define SCHAR_MAX __SCHAR_MAX__
-
-/* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */
-#undef UCHAR_MAX
-#if __SCHAR_MAX__ == __INT_MAX__
-# define UCHAR_MAX (SCHAR_MAX * 2U + 1U)
-#else
-# define UCHAR_MAX (SCHAR_MAX * 2 + 1)
-#endif
-
-/* Minimum and maximum values a `char' can hold.  */
-#ifdef __CHAR_UNSIGNED__
-# undef CHAR_MIN
-# if __SCHAR_MAX__ == __INT_MAX__
-#  define CHAR_MIN 0U
-# else
-#  define CHAR_MIN 0
-# endif
-# undef CHAR_MAX
-# define CHAR_MAX UCHAR_MAX
-#else
-# undef CHAR_MIN
-# define CHAR_MIN SCHAR_MIN
-# undef CHAR_MAX
-# define CHAR_MAX SCHAR_MAX
-#endif
-
-/* Minimum and maximum values a `signed short int' can hold.  */
-#undef SHRT_MIN
-#define SHRT_MIN (-SHRT_MAX - 1)
-#undef SHRT_MAX
-#define SHRT_MAX __SHRT_MAX__
-
-/* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */
-#undef USHRT_MAX
-#if __SHRT_MAX__ == __INT_MAX__
-# define USHRT_MAX (SHRT_MAX * 2U + 1U)
-#else
-# define USHRT_MAX (SHRT_MAX * 2 + 1)
-#endif
-
-/* Minimum and maximum values a `signed int' can hold.  */
-#undef INT_MIN
-#define INT_MIN (-INT_MAX - 1)
-#undef INT_MAX
-#define INT_MAX __INT_MAX__
-
-/* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */
-#undef UINT_MAX
-#define UINT_MAX (INT_MAX * 2U + 1U)
-
-/* Minimum and maximum values a `signed long int' can hold.
-   (Same as `int').  */
-#undef LONG_MIN
-#define LONG_MIN (-LONG_MAX - 1L)
-#undef LONG_MAX
-#define LONG_MAX __LONG_MAX__
-
-/* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
-#undef ULONG_MAX
-#define ULONG_MAX (LONG_MAX * 2UL + 1UL)
-
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
-/* Minimum and maximum values a `signed long long int' can hold.  */
-# undef LLONG_MIN
-# define LLONG_MIN (-LLONG_MAX - 1LL)
-# undef LLONG_MAX
-# define LLONG_MAX __LONG_LONG_MAX__
-
-/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
-# undef ULLONG_MAX
-# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL)
-#endif
-
-#if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
-/* Minimum and maximum values a `signed long long int' can hold.  */
-# undef LONG_LONG_MIN
-# define LONG_LONG_MIN (-LONG_LONG_MAX - 1LL)
-# undef LONG_LONG_MAX
-# define LONG_LONG_MAX __LONG_LONG_MAX__
-
-/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
-# undef ULONG_LONG_MAX
-# define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1ULL)
-#endif
-
-#endif /* _LIMITS_H___ */
-/* This administrivia gets added to the end of limits.h
-   if the system has its own version of limits.h.  */
-
-#else /* not _GCC_LIMITS_H_ */
-
-#ifdef _GCC_NEXT_LIMITS_H
-#include_next <limits.h>		/* recurse down to the real one */
-#endif
-
-#endif /* not _GCC_LIMITS_H_ */
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/install-tools/mkheaders.conf b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/install-tools/mkheaders.conf
deleted file mode 100644
index 2855c3a..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/install-tools/mkheaders.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-SYSTEM_HEADER_DIR="/usr/local/google/home/smcgruer/Desktop/buildroot/output/host/usr/mipsel-buildroot-linux-uclibc/sysroot${sysroot_headers_suffix}/usr/include"
-OTHER_FIXINCLUDES_DIRS=""
-STMP_FIXINC="stmp-fixinc"
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcc.a b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcc.a
deleted file mode 100644
index 859b0da..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcc.a
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcc_eh.a b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcc_eh.a
deleted file mode 100644
index 56cd837..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcc_eh.a
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcov.a b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcov.a
deleted file mode 100644
index 92dcbda..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/libgcov.a
+++ /dev/null
Binary files differ
diff --git a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/plugin/gtype.state b/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/plugin/gtype.state
deleted file mode 100644
index 5175756..0000000
--- a/lib/gcc/mipsel-buildroot-linux-uclibc/4.9.1/plugin/gtype.state
+++ /dev/null
@@ -1,27966 +0,0 @@
-;;;;@@@@ GCC gengtype state
-;;; DON'T EDIT THIS FILE, since generated by GCC's gengtype
-;;; The format of this file is tied to a particular version of GCC.
-;;; Don't parse this file wihout knowing GCC gengtype internals.
-;;; This file should be parsed by the same gengtype which wrote it.
-
-(!version  "4.9.1")
-(!srcdir  "../../gcc")
-(!languages 9 ada c cp fortran go java lto objc objcp)
-(!fileslist 191
- (!srcfile 511  "../libcpp/include/line-map.h")
- (!srcfile 511  "../libcpp/include/cpplib.h")
- (!srcfile 511  "../libcpp/include/cpp-id-data.h")
- (!srcfile 511  "input.h")
- (!srcfile 511  "coretypes.h")
- (!file 511  "auto-host.h")
- (!srcfile 511  "../include/ansidecl.h")
- (!file 511  "options.h")
- (!srcfile 511  "config/dbxelf.h")
- (!srcfile 511  "config/elfos.h")
- (!srcfile 511  "config/gnu-user.h")
- (!srcfile 511  "config/linux.h")
- (!srcfile 511  "config/linux-android.h")
- (!srcfile 511  "config/glibc-stdint.h")
- (!srcfile 511  "config/vxworks-dummy.h")
- (!srcfile 511  "config/mips/mips.h")
- (!srcfile 511  "config/mips/gnu-user.h")
- (!srcfile 511  "config/mips/linux.h")
- (!srcfile 511  "config/mips/linux-common.h")
- (!srcfile 511  "config/initfini-array.h")
- (!srcfile 511  "defaults.h")
- (!srcfile 511  "../include/hashtab.h")
- (!srcfile 511  "../include/splay-tree.h")
- (!srcfile 511  "bitmap.h")
- (!srcfile 511  "alias.h")
- (!srcfile 511  "coverage.c")
- (!srcfile 511  "rtl.h")
- (!srcfile 511  "optabs.h")
- (!srcfile 511  "tree.h")
- (!srcfile 511  "tree-core.h")
- (!srcfile 511  "libfuncs.h")
- (!srcfile 511  "../libcpp/include/symtab.h")
- (!srcfile 511  "../include/obstack.h")
- (!srcfile 511  "real.h")
- (!srcfile 511  "function.h")
- (!srcfile 511  "insn-addr.h")
- (!srcfile 511  "hwint.h")
- (!srcfile 511  "fixed-value.h")
- (!srcfile 511  "output.h")
- (!srcfile 511  "cfgloop.h")
- (!srcfile 511  "cselib.h")
- (!srcfile 511  "basic-block.h")
- (!srcfile 511  "ipa-ref.h")
- (!srcfile 511  "cgraph.h")
- (!srcfile 511  "reload.h")
- (!srcfile 511  "caller-save.c")
- (!srcfile 511  "symtab.c")
- (!srcfile 511  "alias.c")
- (!srcfile 511  "bitmap.c")
- (!srcfile 511  "cselib.c")
- (!srcfile 511  "cgraph.c")
- (!srcfile 511  "ipa-prop.c")
- (!srcfile 511  "ipa-cp.c")
- (!srcfile 511  "ipa-utils.h")
- (!srcfile 511  "dbxout.c")
- (!srcfile 511  "dwarf2out.h")
- (!srcfile 511  "dwarf2asm.c")
- (!srcfile 511  "dwarf2cfi.c")
- (!srcfile 511  "dwarf2out.c")
- (!srcfile 511  "tree-vect-generic.c")
- (!srcfile 511  "dojump.c")
- (!srcfile 511  "emit-rtl.c")
- (!srcfile 511  "except.h")
- (!srcfile 511  "explow.c")
- (!srcfile 511  "expr.c")
- (!srcfile 511  "expr.h")
- (!srcfile 511  "function.c")
- (!srcfile 511  "except.c")
- (!srcfile 511  "gcse.c")
- (!srcfile 511  "godump.c")
- (!srcfile 511  "lists.c")
- (!srcfile 511  "optabs.c")
- (!srcfile 511  "profile.c")
- (!srcfile 511  "mcf.c")
- (!srcfile 511  "reg-stack.c")
- (!srcfile 511  "cfgrtl.c")
- (!srcfile 511  "sdbout.c")
- (!srcfile 511  "stor-layout.c")
- (!srcfile 511  "stringpool.c")
- (!srcfile 511  "tree.c")
- (!srcfile 511  "varasm.c")
- (!srcfile 511  "gimple.h")
- (!srcfile 511  "gimple-ssa.h")
- (!srcfile 511  "tree-ssanames.c")
- (!srcfile 511  "tree-eh.c")
- (!srcfile 511  "tree-ssa-address.c")
- (!srcfile 511  "tree-cfg.c")
- (!srcfile 511  "tree-dfa.c")
- (!srcfile 511  "tree-iterator.c")
- (!srcfile 511  "gimple-expr.c")
- (!srcfile 511  "tree-chrec.h")
- (!srcfile 511  "tree-scalar-evolution.c")
- (!srcfile 511  "tree-ssa-operands.h")
- (!srcfile 511  "tree-profile.c")
- (!srcfile 511  "tree-nested.c")
- (!srcfile 511  "tree-parloops.c")
- (!srcfile 511  "omp-low.c")
- (!srcfile 511  "targhooks.c")
- (!srcfile 511  "config/mips/mips.c")
- (!srcfile 511  "passes.c")
- (!srcfile 511  "cgraphunit.c")
- (!srcfile 511  "cgraphclones.c")
- (!srcfile 511  "tree-ssa-propagate.c")
- (!srcfile 511  "tree-phinodes.c")
- (!srcfile 511  "tree-ssa-alias.h")
- (!srcfile 511  "tree-ssanames.h")
- (!srcfile 511  "ipa-prop.h")
- (!srcfile 511  "trans-mem.c")
- (!srcfile 511  "lto-streamer.h")
- (!srcfile 511  "target-globals.h")
- (!srcfile 511  "ipa-inline.h")
- (!srcfile 511  "vtable-verify.c")
- (!srcfile 511  "asan.c")
- (!srcfile 511  "ubsan.c")
- (!srcfile 511  "tsan.c")
- (!srcfile 511  "ipa-devirt.c")
- (!srcfile 1  "ada/gcc-interface/ada-tree.h")
- (!srcfile 1  "ada/gcc-interface/gigi.h")
- (!srcfile 1  "ada/gcc-interface/decl.c")
- (!srcfile 1  "ada/gcc-interface/trans.c")
- (!srcfile 1  "ada/gcc-interface/utils.c")
- (!srcfile 1  "ada/gcc-interface/misc.c")
- (!srcfile 2  "c/c-lang.c")
- (!srcfile 130  "c/c-tree.h")
- (!srcfile 130  "c/c-decl.c")
- (!srcfile 390  "c-family/c-common.c")
- (!srcfile 390  "c-family/c-common.h")
- (!srcfile 390  "c-family/c-objc.h")
- (!srcfile 386  "c-family/c-cppbuiltin.c")
- (!srcfile 390  "c-family/c-pragma.h")
- (!srcfile 390  "c-family/c-pragma.c")
- (!srcfile 130  "c/c-objc-common.c")
- (!srcfile 130  "c/c-parser.c")
- (!srcfile 130  "c/c-lang.h")
- (!srcfile 260  "cp/rtti.c")
- (!srcfile 260  "cp/mangle.c")
- (!srcfile 260  "cp/name-lookup.h")
- (!srcfile 260  "cp/name-lookup.c")
- (!srcfile 260  "cp/cp-tree.h")
- (!srcfile 260  "cp/decl.h")
- (!srcfile 260  "cp/call.c")
- (!srcfile 260  "cp/decl.c")
- (!srcfile 260  "cp/decl2.c")
- (!srcfile 260  "cp/pt.c")
- (!srcfile 260  "cp/repo.c")
- (!srcfile 260  "cp/semantics.c")
- (!srcfile 260  "cp/tree.c")
- (!srcfile 260  "cp/parser.h")
- (!srcfile 260  "cp/parser.c")
- (!srcfile 260  "cp/method.c")
- (!srcfile 260  "cp/typeck2.c")
- (!srcfile 260  "c-family/c-lex.c")
- (!srcfile 260  "cp/class.c")
- (!srcfile 260  "cp/cp-objcp-common.c")
- (!srcfile 4  "cp/cp-lang.c")
- (!srcfile 4  "cp/except.c")
- (!srcfile 4  "cp/vtable-class-hierarchy.c")
- (!srcfile 8  "fortran/f95-lang.c")
- (!srcfile 8  "fortran/trans-decl.c")
- (!srcfile 8  "fortran/trans-intrinsic.c")
- (!srcfile 8  "fortran/trans-io.c")
- (!srcfile 8  "fortran/trans-stmt.c")
- (!srcfile 8  "fortran/trans-types.c")
- (!srcfile 8  "fortran/trans-types.h")
- (!srcfile 8  "fortran/trans.h")
- (!srcfile 8  "fortran/trans-const.h")
- (!srcfile 16  "go/go-lang.c")
- (!srcfile 16  "go/go-c.h")
- (!srcfile 32  "java/java-tree.h")
- (!srcfile 32  "java/jcf.h")
- (!srcfile 32  "java/parse.h")
- (!srcfile 32  "java/builtins.c")
- (!srcfile 32  "java/class.c")
- (!srcfile 32  "java/constants.c")
- (!srcfile 32  "java/decl.c")
- (!srcfile 32  "java/expr.c")
- (!srcfile 32  "java/jcf-parse.c")
- (!srcfile 32  "java/lang.c")
- (!srcfile 32  "java/mangle.c")
- (!srcfile 32  "java/resource.c")
- (!srcfile 64  "lto/lto-tree.h")
- (!srcfile 64  "lto/lto-lang.c")
- (!srcfile 64  "lto/lto.c")
- (!srcfile 64  "lto/lto.h")
- (!srcfile 384  "objc/objc-map.h")
- (!srcfile 384  "objc/objc-act.h")
- (!srcfile 384  "objc/objc-act.c")
- (!srcfile 384  "objc/objc-runtime-shared-support.c")
- (!srcfile 384  "objc/objc-gnu-runtime-abi-01.c")
- (!srcfile 384  "objc/objc-next-runtime-abi-01.c")
- (!srcfile 384  "objc/objc-next-runtime-abi-02.c")
-)
-(!structures 1088
- 
- (!type user_struct 1 
-  (!type pointer 2 nil  gc_used
-   (!type already_seen 1)
-  )
-  gc_pointed_to "vec<ivarref_entry,va_gc>"
-  (!srcfileloc  "objc/objc-next-runtime-abi-02.c" 2765)
-  (!fields 2 
-   (!pair  "va_gc"
-    (!type undefined 3 nil  gc_unused "va_gc"
-     (!srcfileloc  "rtl.h" 238)
-    )
-    (!srcfileloc  "objc/objc-next-runtime-abi-02.c" 2765)
-    nil )
-   (!pair  "ivarref_entry"
-    (!type struct 4 nil  gc_used "ivarref_entry"
-     (!srcfileloc  "objc/objc-next-runtime-abi-02.c" 2763)
-     (!fields 2 
-      (!pair  "decl"
-       (!type pointer 5 
-        (!type pointer 6 nil  gc_used
-         (!type already_seen 5)
-        )
-        gc_pointed_to
-        (!type union 7 
-         (!type already_seen 5)
-         gc_pointed_to "tree_node"
-         (!srcfileloc  "tree-core.h" 1631)
-         (!fields 38 
-          (!pair  "base"
-           (!type struct 8 nil  gc_used "tree_base"
-            (!srcfileloc  "tree-core.h" 766)
-            (!fields 18 
-             (!pair  "code"
-              (!type scalar_nonchar 9 
-               (!type pointer 10 
-                (!type pointer 11 nil  gc_unused
-                 (!type already_seen 10)
-                )
-                gc_used
-                (!type already_seen 9)
-               )
-               gc_pointed_to)
-              (!srcfileloc  "tree-core.h" 711)
-              nil )
-             (!pair  "side_effects_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 713)
-              nil )
-             (!pair  "constant_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 714)
-              nil )
-             (!pair  "addressable_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 715)
-              nil )
-             (!pair  "volatile_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 716)
-              nil )
-             (!pair  "readonly_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 717)
-              nil )
-             (!pair  "asm_written_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 718)
-              nil )
-             (!pair  "nowarning_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 719)
-              nil )
-             (!pair  "visited"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 720)
-              nil )
-             (!pair  "used_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 722)
-              nil )
-             (!pair  "nothrow_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 723)
-              nil )
-             (!pair  "static_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 724)
-              nil )
-             (!pair  "public_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 725)
-              nil )
-             (!pair  "private_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 726)
-              nil )
-             (!pair  "protected_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 727)
-              nil )
-             (!pair  "deprecated_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 728)
-              nil )
-             (!pair  "default_def_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 729)
-              nil )
-             (!pair  "u"
-              (!type union 12 nil  gc_unused "anonymous:../../gcc/tree-core.h:731"
-               (!srcfileloc  "tree-core.h" 765)
-               (!fields 3 
-                (!pair  "bits"
-                 (!type struct 13 nil  gc_unused "anonymous:../../gcc/tree-core.h:734"
-                  (!srcfileloc  "tree-core.h" 757)
-                  (!fields 16 
-                   (!pair  "lang_flag_0"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 735)
-                    nil )
-                   (!pair  "lang_flag_1"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 736)
-                    nil )
-                   (!pair  "lang_flag_2"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 737)
-                    nil )
-                   (!pair  "lang_flag_3"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 738)
-                    nil )
-                   (!pair  "lang_flag_4"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 739)
-                    nil )
-                   (!pair  "lang_flag_5"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 740)
-                    nil )
-                   (!pair  "lang_flag_6"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 741)
-                    nil )
-                   (!pair  "saturating_flag"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 742)
-                    nil )
-                   (!pair  "unsigned_flag"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 744)
-                    nil )
-                   (!pair  "packed_flag"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 745)
-                    nil )
-                   (!pair  "user_align"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 746)
-                    nil )
-                   (!pair  "nameless_flag"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 747)
-                    nil )
-                   (!pair  "atomic_flag"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 748)
-                    nil )
-                   (!pair  "spare0"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 749)
-                    nil )
-                   (!pair  "spare1"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 751)
-                    nil )
-                   (!pair  "address_space"
-                    (!type already_seen 9)
-                    (!srcfileloc  "tree-core.h" 756)
-                    nil )
-                  )
-                  nil 511 nil nil )
-                 (!srcfileloc  "tree-core.h" 757)
-                 nil )
-                (!pair  "length"
-                 (!type already_seen 9)
-                 (!srcfileloc  "tree-core.h" 762)
-                 nil )
-                (!pair  "version"
-                 (!type already_seen 9)
-                 (!srcfileloc  "tree-core.h" 764)
-                 nil )
-               )
-               nil 511 nil )
-              (!srcfileloc  "tree-core.h" 765)
-              (!options 
-               (!option skip string  "")
-              )
-             )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1589)
-           (!options 
-            (!option tag string  "TS_BASE")
-           )
-          )
-          (!pair  "typed"
-           (!type struct 14 nil  gc_used "tree_typed"
-            (!srcfileloc  "tree-core.h" 1042)
-            (!fields 2 
-             (!pair  "base"
-              (!type already_seen 8)
-              (!srcfileloc  "tree-core.h" 1040)
-              nil )
-             (!pair  "type"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1041)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1590)
-           (!options 
-            (!option tag string  "TS_TYPED")
-           )
-          )
-          (!pair  "common"
-           (!type struct 15 nil  gc_used "tree_common"
-            (!srcfileloc  "tree-core.h" 1047)
-            (!fields 2 
-             (!pair  "typed"
-              (!type already_seen 14)
-              (!srcfileloc  "tree-core.h" 1045)
-              nil )
-             (!pair  "chain"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1046)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1591)
-           (!options 
-            (!option tag string  "TS_COMMON")
-           )
-          )
-          (!pair  "int_cst"
-           (!type struct 16 nil  gc_used "tree_int_cst"
-            (!srcfileloc  "tree-core.h" 1052)
-            (!fields 2 
-             (!pair  "typed"
-              (!type already_seen 14)
-              (!srcfileloc  "tree-core.h" 1050)
-              nil )
-             (!pair  "int_cst"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1051)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1592)
-           (!options 
-            (!option tag string  "TS_INT_CST")
-           )
-          )
-          (!pair  "real_cst"
-           (!type struct 17 nil  gc_used "tree_real_cst"
-            (!srcfileloc  "tree-core.h" 1058)
-            (!fields 2 
-             (!pair  "typed"
-              (!type already_seen 14)
-              (!srcfileloc  "tree-core.h" 1056)
-              nil )
-             (!pair  "real_cst_ptr"
-              (!type pointer 18 nil  gc_used
-               (!type struct 19 
-                (!type already_seen 18)
-                gc_pointed_to "real_value"
-                (!srcfileloc  "real.h" 52)
-                (!fields 7 
-                 (!pair  "cl"
-                  (!type already_seen 9)
-                  (!srcfileloc  "real.h" 45)
-                  nil )
-                 (!pair  "decimal"
-                  (!type already_seen 9)
-                  (!srcfileloc  "real.h" 46)
-                  nil )
-                 (!pair  "sign"
-                  (!type already_seen 9)
-                  (!srcfileloc  "real.h" 47)
-                  nil )
-                 (!pair  "signalling"
-                  (!type already_seen 9)
-                  (!srcfileloc  "real.h" 48)
-                  nil )
-                 (!pair  "canonical"
-                  (!type already_seen 9)
-                  (!srcfileloc  "real.h" 49)
-                  nil )
-                 (!pair  "uexp"
-                  (!type already_seen 9)
-                  (!srcfileloc  "real.h" 50)
-                  nil )
-                 (!pair  "sig"
-                  (!type array 20 nil  gc_used "SIGSZ" 
-                   (!type already_seen 9)
-                  )
-                  (!srcfileloc  "real.h" 51)
-                  nil )
-                )
-                nil 511 nil nil )
-              )
-              (!srcfileloc  "tree-core.h" 1057)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1593)
-           (!options 
-            (!option tag string  "TS_REAL_CST")
-           )
-          )
-          (!pair  "fixed_cst"
-           (!type struct 21 nil  gc_used "tree_fixed_cst"
-            (!srcfileloc  "tree-core.h" 1063)
-            (!fields 2 
-             (!pair  "typed"
-              (!type already_seen 14)
-              (!srcfileloc  "tree-core.h" 1061)
-              nil )
-             (!pair  "fixed_cst_ptr"
-              (!type pointer 22 nil  gc_used
-               (!type struct 23 
-                (!type already_seen 22)
-                gc_pointed_to "fixed_value"
-                (!srcfileloc  "fixed-value.h" 31)
-                (!fields 2 
-                 (!pair  "data"
-                  (!type already_seen 9)
-                  (!srcfileloc  "fixed-value.h" 29)
-                  nil )
-                 (!pair  "mode"
-                  (!type already_seen 9)
-                  (!srcfileloc  "fixed-value.h" 30)
-                  nil )
-                )
-                nil 511 nil nil )
-              )
-              (!srcfileloc  "tree-core.h" 1062)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1594)
-           (!options 
-            (!option tag string  "TS_FIXED_CST")
-           )
-          )
-          (!pair  "vector"
-           (!type struct 24 nil  gc_used "tree_vector"
-            (!srcfileloc  "tree-core.h" 1080)
-            (!fields 2 
-             (!pair  "typed"
-              (!type already_seen 14)
-              (!srcfileloc  "tree-core.h" 1078)
-              nil )
-             (!pair  "elts"
-              (!type array 25 nil  gc_used "1" 
-               (!type already_seen 5)
-              )
-              (!srcfileloc  "tree-core.h" 1079)
-              (!options 
-               (!option length string  "TYPE_VECTOR_SUBPARTS (TREE_TYPE ((tree)&%h))")
-              )
-             )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1595)
-           (!options 
-            (!option tag string  "TS_VECTOR")
-           )
-          )
-          (!pair  "string"
-           (!type struct 26 nil  gc_used "tree_string"
-            (!srcfileloc  "tree-core.h" 1069)
-            (!fields 3 
-             (!pair  "typed"
-              (!type already_seen 14)
-              (!srcfileloc  "tree-core.h" 1066)
-              nil )
-             (!pair  "length"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1067)
-              nil )
-             (!pair  "str"
-              (!type array 27 nil  gc_used "1" 
-               (!type scalar_char 28 
-                (!type pointer 29 
-                 (!type pointer 30 nil  gc_unused
-                  (!type already_seen 29)
-                 )
-                 gc_unused
-                 (!type already_seen 28)
-                )
-                gc_used)
-              )
-              (!srcfileloc  "tree-core.h" 1068)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1596)
-           (!options 
-            (!option tag string  "TS_STRING")
-           )
-          )
-          (!pair  "complex"
-           (!type struct 31 nil  gc_used "tree_complex"
-            (!srcfileloc  "tree-core.h" 1075)
-            (!fields 3 
-             (!pair  "typed"
-              (!type already_seen 14)
-              (!srcfileloc  "tree-core.h" 1072)
-              nil )
-             (!pair  "real"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1073)
-              nil )
-             (!pair  "imag"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1074)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1597)
-           (!options 
-            (!option tag string  "TS_COMPLEX")
-           )
-          )
-          (!pair  "identifier"
-           (!type struct 32 nil  gc_used "tree_identifier"
-            (!srcfileloc  "tree-core.h" 1085)
-            (!fields 2 
-             (!pair  "common"
-              (!type already_seen 15)
-              (!srcfileloc  "tree-core.h" 1083)
-              nil )
-             (!pair  "id"
-              (!type struct 33 
-               (!type pointer 34 
-                (!type pointer 35 nil  gc_unused
-                 (!type already_seen 34)
-                )
-                gc_unused
-                (!type already_seen 33)
-               )
-               gc_used "ht_identifier"
-               (!srcfileloc  "../libcpp/include/symtab.h" 35)
-               (!fields 3 
-                (!pair  "str"
-                 (!type string 36 nil  gc_used)
-                 (!srcfileloc  "../libcpp/include/symtab.h" 32)
-                 nil )
-                (!pair  "len"
-                 (!type already_seen 9)
-                 (!srcfileloc  "../libcpp/include/symtab.h" 33)
-                 nil )
-                (!pair  "hash_value"
-                 (!type already_seen 9)
-                 (!srcfileloc  "../libcpp/include/symtab.h" 34)
-                 nil )
-               )
-               nil 511 nil nil )
-              (!srcfileloc  "tree-core.h" 1084)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1598)
-           (!options 
-            (!option tag string  "TS_IDENTIFIER")
-           )
-          )
-          (!pair  "decl_minimal"
-           (!type struct 37 nil  gc_used "tree_decl_minimal"
-            (!srcfileloc  "tree-core.h" 1319)
-            (!fields 5 
-             (!pair  "common"
-              (!type already_seen 15)
-              (!srcfileloc  "tree-core.h" 1314)
-              nil )
-             (!pair  "locus"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1315)
-              nil )
-             (!pair  "uid"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1316)
-              nil )
-             (!pair  "name"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1317)
-              nil )
-             (!pair  "context"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1318)
-              nil )
-            )
-            nil 511 nil nil )
-           (!srcfileloc  "tree-core.h" 1599)
-           (!options 
-            (!option tag string  "TS_DECL_MINIMAL")
-           )
-          )
-          (!pair  "decl_common"
-           (!type struct 38 nil  gc_used "tree_decl_common"
-            (!srcfileloc  "tree-core.h" 1385)
-            (!fields 35 
-             (!pair  "common"
-              (!type already_seen 37)
-              (!srcfileloc  "tree-core.h" 1322)
-              nil )
-             (!pair  "size"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1323)
-              nil )
-             (!pair  "mode"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1325)
-              nil )
-             (!pair  "nonlocal_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1327)
-              nil )
-             (!pair  "virtual_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1328)
-              nil )
-             (!pair  "ignored_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1329)
-              nil )
-             (!pair  "abstract_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1330)
-              nil )
-             (!pair  "artificial_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1331)
-              nil )
-             (!pair  "preserve_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1332)
-              nil )
-             (!pair  "debug_expr_is_from"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1333)
-              nil )
-             (!pair  "lang_flag_0"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1335)
-              nil )
-             (!pair  "lang_flag_1"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1336)
-              nil )
-             (!pair  "lang_flag_2"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1337)
-              nil )
-             (!pair  "lang_flag_3"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1338)
-              nil )
-             (!pair  "lang_flag_4"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1339)
-              nil )
-             (!pair  "lang_flag_5"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1340)
-              nil )
-             (!pair  "lang_flag_6"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1341)
-              nil )
-             (!pair  "lang_flag_7"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1342)
-              nil )
-             (!pair  "lang_flag_8"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1343)
-              nil )
-             (!pair  "decl_flag_0"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1346)
-              nil )
-             (!pair  "decl_flag_1"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1350)
-              nil )
-             (!pair  "decl_flag_2"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1354)
-              nil )
-             (!pair  "decl_flag_3"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1356)
-              nil )
-             (!pair  "gimple_reg_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1359)
-              nil )
-             (!pair  "decl_by_reference_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1361)
-              nil )
-             (!pair  "decl_read_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1363)
-              nil )
-             (!pair  "decl_nonshareable_flag"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1365)
-              nil )
-             (!pair  "off_align"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1368)
-              nil )
-             (!pair  "align"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1373)
-              nil )
-             (!pair  "pt_uid"
-              (!type already_seen 9)
-              (!srcfileloc  "tree-core.h" 1376)
-              nil )
-             (!pair  "size_unit"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1378)
-              nil )
-             (!pair  "initial"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1379)
-              nil )
-             (!pair  "attributes"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1380)
-              nil )
-             (!pair  "abstract_origin"
-              (!type already_seen 5)
-              (!srcfileloc  "tree-core.h" 1381)
-              nil )
-             (!pair  "lang_specific"
-              (!type pointer 39 nil  gc_used
-               (!type lang_struct 40 
-                (!type already_seen 39)
-                gc_pointed_to "lang_decl"
-                (!srcfileloc  "ada/gcc-interface/ada-tree.h" 41)
-                (!fields 0 )
-                (!options 
-                 (!option variable_size string  "")
-                )
-                511 
-                (!homotypes 7
-                 (!type struct 41 nil  gc_pointed_to "lang_decl"
-                  (!srcfileloc  "lto/lto-tree.h" 34)
-                  (!fields 1 
-                   (!pair  "dummy"
-                    (!type already_seen 9)
-                    (!srcfileloc  "lto/lto-tree.h" 33)
-                    nil )
-                  )
-                  (!options 
-                   (!option variable_size string  "")
-                  )
-                  64 
-                  (!type already_seen 40)
-                  nil )
-                 
-                 (!type struct 42 nil  gc_pointed_to "lang_decl"
-                  (!srcfileloc  "java/java-tree.h" 818)
-                  (!fields 2 
-                   (!pair  "desc"
-                    (!type already_seen 9)
-                    (!srcfileloc  "java/java-tree.h" 812)
-                    nil )
-                   (!pair  "u"
-                    (!type union 43 nil  gc_used "lang_decl_u"
-                     (!srcfileloc  "java/java-tree.h" 817)
-                     (!fields 2 
-                      (!pair  "f"
-                       (!type struct 44 nil  gc_used "lang_decl_func"
-                        (!srcfileloc  "java/java-tree.h" 744)
-                        (!fields 20 
-                         (!pair  "code_offset"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 717)
-                          nil )
-                         (!pair  "code_length"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 718)
-                          nil )
-                         (!pair  "linenumbers_offset"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 719)
-                          nil )
-                         (!pair  "localvariables_offset"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 720)
-                          nil )
-                         (!pair  "arg_slots"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 721)
-                          nil )
-                         (!pair  "max_locals"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 722)
-                          nil )
-                         (!pair  "max_stack"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 723)
-                          nil )
-                         (!pair  "arg_slot_count"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 724)
-                          nil )
-                         (!pair  "last_line"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 725)
-                          nil )
-                         (!pair  "throws_list"
-                          (!type pointer 45 nil  gc_used
-                           (!type user_struct 46 
-                            (!type already_seen 45)
-                            gc_pointed_to "vec<tree,va_gc>"
-                            (!srcfileloc  "tree-core.h" 1233)
-                            (!fields 2 
-                             (!pair  "va_gc"
-                              (!type already_seen 3)
-                              (!srcfileloc  "tree-core.h" 1233)
-                              nil )
-                             (!pair  "tree"
-                              (!type already_seen 5)
-                              (!srcfileloc  "tree-core.h" 1233)
-                              nil )
-                            )
-                           )
-                          )
-                          (!srcfileloc  "java/java-tree.h" 726)
-                          nil )
-                         (!pair  "exc_obj"
-                          (!type already_seen 5)
-                          (!srcfileloc  "java/java-tree.h" 727)
-                          nil )
-                         (!pair  "init_test_table"
-                          (!type pointer 47 nil  gc_used
-                           (!type param_struct 48 
-                            (!type already_seen 47)
-                            gc_pointed_to
-                            (!type struct 49 
-                             (!type pointer 50 nil  gc_unused
-                              (!type already_seen 49)
-                             )
-                             gc_used "htab"
-                             (!srcfileloc  "../include/hashtab.h" 142)
-                             (!fields 15 
-                              (!pair  "hash_f"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 102)
-                               nil )
-                              (!pair  "eq_f"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 105)
-                               nil )
-                              (!pair  "del_f"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 108)
-                               nil )
-                              (!pair  "entries"
-                               (!type already_seen 11)
-                               (!srcfileloc  "../include/hashtab.h" 111)
-                               (!options 
-                                (!option length string  "%h.size")
-                                (!option use_param string  "")
-                               )
-                              )
-                              (!pair  "size"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 114)
-                               nil )
-                              (!pair  "n_elements"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 117)
-                               nil )
-                              (!pair  "n_deleted"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 120)
-                               nil )
-                              (!pair  "searches"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 124)
-                               nil )
-                              (!pair  "collisions"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 128)
-                               nil )
-                              (!pair  "alloc_f"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 131)
-                               nil )
-                              (!pair  "free_f"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 132)
-                               nil )
-                              (!pair  "alloc_arg"
-                               (!type already_seen 10)
-                               (!srcfileloc  "../include/hashtab.h" 135)
-                               (!options 
-                                (!option skip string  "")
-                               )
-                              )
-                              (!pair  "alloc_with_arg_f"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 136)
-                               nil )
-                              (!pair  "free_with_arg_f"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 137)
-                               nil )
-                              (!pair  "size_prime_index"
-                               (!type already_seen 9)
-                               (!srcfileloc  "../include/hashtab.h" 141)
-                               nil )
-                             )
-                             nil 511 nil nil )
-                            
-                            (!type pointer 51 nil  gc_used
-                             (!type struct 52 
-                              (!type already_seen 51)
-                              gc_pointed_to "treetreehash_entry"
-                              (!srcfileloc  "java/java-tree.h" 749)
-                              (!fields 2 
-                               (!pair  "key"
-                                (!type already_seen 5)
-                                (!srcfileloc  "java/java-tree.h" 747)
-                                nil )
-                               (!pair  "value"
-                                (!type already_seen 5)
-                                (!srcfileloc  "java/java-tree.h" 748)
-                                nil )
-                              )
-                              nil 32 nil nil )
-                            )
-                            nil nil nil nil nil nil nil nil nil nil )
-                          )
-                          (!srcfileloc  "java/java-tree.h" 730)
-                          (!options 
-                           (!option param_is type 
-                            (!type already_seen 52)
-                           )
-                          )
-                         )
-                         (!pair  "ict"
-                          (!type pointer 53 nil  gc_used
-                           (!type param_struct 54 
-                            (!type already_seen 53)
-                            gc_pointed_to
-                            (!type already_seen 49)
-                            
-                            (!type already_seen 5)
-                            nil nil nil nil nil nil nil nil nil nil )
-                          )
-                          (!srcfileloc  "java/java-tree.h" 733)
-                          (!options 
-                           (!option param_is type 
-                            (!type already_seen 7)
-                           )
-                          )
-                         )
-                         (!pair  "native"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 735)
-                          nil )
-                         (!pair  "strictfp"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 736)
-                          nil )
-                         (!pair  "invisible"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 737)
-                          nil )
-                         (!pair  "dummy"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 740)
-                          nil )
-                         (!pair  "local_cni"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 741)
-                          nil )
-                         (!pair  "bridge"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 742)
-                          nil )
-                         (!pair  "varargs"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 743)
-                          nil )
-                        )
-                        nil 32 nil nil )
-                       (!srcfileloc  "java/java-tree.h" 815)
-                       (!options 
-                        (!option tag string  "LANG_DECL_FUNC")
-                       )
-                      )
-                      (!pair  "v"
-                       (!type struct 55 nil  gc_used "lang_decl_var"
-                        (!srcfileloc  "java/java-tree.h" 805)
-                        (!fields 10 
-                         (!pair  "slot_number"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 795)
-                          nil )
-                         (!pair  "start_pc"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 796)
-                          nil )
-                         (!pair  "end_pc"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 797)
-                          nil )
-                         (!pair  "slot_chain"
-                          (!type already_seen 5)
-                          (!srcfileloc  "java/java-tree.h" 798)
-                          nil )
-                         (!pair  "owner"
-                          (!type already_seen 5)
-                          (!srcfileloc  "java/java-tree.h" 799)
-                          nil )
-                         (!pair  "freed"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 800)
-                          nil )
-                         (!pair  "local_slot"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 801)
-                          nil )
-                         (!pair  "class_field"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 802)
-                          nil )
-                         (!pair  "vtable"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 803)
-                          nil )
-                         (!pair  "field_enum"
-                          (!type already_seen 9)
-                          (!srcfileloc  "java/java-tree.h" 804)
-                          nil )
-                        )
-                        nil 32 nil nil )
-                       (!srcfileloc  "java/java-tree.h" 816)
-                       (!options 
-                        (!option tag string  "LANG_DECL_VAR")
-                       )
-                      )
-                     )
-                     nil 32 
-                     (!type lang_struct 56 nil  gc_used "lang_decl_u"
-                      (!srcfileloc  "cp/cp-tree.h" 2071)
-                      (!fields 0 )
-                      (!options 
-                       (!option desc string  "%h.base.selector")
-                      )
-                      292 
-                      (!homotypes 2
-                       (!type already_seen 43)
-                       
-                       (!type union 57 nil  gc_used "lang_decl_u"
-                        (!srcfileloc  "cp/cp-tree.h" 2071)
-                        (!fields 5 
-                         (!pair  "base"
-                          (!type struct 58 nil  gc_used "lang_decl_base"
-                           (!srcfileloc  "cp/cp-tree.h" 1950)
-                           (!fields 12 
-                            (!pair  "selector"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1937)
-                             nil )
-                            (!pair  "language"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1938)
-                             nil )
-                            (!pair  "use_template"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1939)
-                             nil )
-                            (!pair  "not_really_extern"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1940)
-                             nil )
-                            (!pair  "initialized_in_class"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1941)
-                             nil )
-                            (!pair  "repo_available_p"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1942)
-                             nil )
-                            (!pair  "threadprivate_or_deleted_p"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1943)
-                             nil )
-                            (!pair  "anticipated_p"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1944)
-                             nil )
-                            (!pair  "friend_attr"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1945)
-                             nil )
-                            (!pair  "template_conv_p"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1946)
-                             nil )
-                            (!pair  "odr_used"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1947)
-                             nil )
-                            (!pair  "u2sel"
-                             (!type already_seen 9)
-                             (!srcfileloc  "cp/cp-tree.h" 1948)
-                             nil )
-                           )
-                           nil 260 nil nil )
-                          (!srcfileloc  "cp/cp-tree.h" 2066)
-                          (!options 
-                           (!option default string  "")
-                          )
-                         )
-                         (!pair  "min"
-                          (!type struct 59 nil  gc_used "lang_decl_min"
-                           (!srcfileloc  "cp/cp-tree.h" 1982)
-                           (!fields 3 
-                            (!pair  "base"
-                             (!type already_seen 58)
-                             (!srcfileloc  "cp/cp-tree.h" 1964)
-                             nil )
-                            (!pair  "template_info"
-                             (!type already_seen 5)
-                             (!srcfileloc  "cp/cp-tree.h" 1971)
-                             nil )
-                            (!pair  "u2"
-                             (!type union 60 nil  gc_used "lang_decl_u2"
-                              (!srcfileloc  "cp/cp-tree.h" 1981)
-                              (!fields 2 
-                               (!pair  "access"
-                                (!type already_seen 5)
-                                (!srcfileloc  "cp/cp-tree.h" 1977)
-                                (!options 
-                                 (!option tag string  "0")
-                                )
-                               )
-                               (!pair  "discriminator"
-                                (!type already_seen 9)
-                                (!srcfileloc  "cp/cp-tree.h" 1980)
-                                (!options 
-                                 (!option tag string  "1")
-                                )
-                               )
-                              )
-                              nil 260 nil )
-                             (!srcfileloc  "cp/cp-tree.h" 1981)
-                             (!options 
-                              (!option desc string  "%0.u.base.u2sel")
-                             )
-                            )
-                           )
-                           nil 260 nil nil )
-                          (!srcfileloc  "cp/cp-tree.h" 2067)
-                          (!options 
-                           (!option tag string  "0")
-                          )
-                         )
-                         (!pair  "fn"
-                          (!type struct 61 nil  gc_used "lang_decl_fn"
-