Refresh 64-bit headers/libs; upgrade libc++ to r207307

to bionic: adfc007dbf936bd021d79ba2d2c360a3cfc77be9  5/19 2014

Change-Id: Id9994bab1ab8240853890c108e8aaa3ebac47fa8
diff --git a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so
index 9ecd85b..ffacf31 100755
--- a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so
+++ b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a
index 06d06dd..1f5fbaa 100644
--- a/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a
+++ b/8/sources/cxx-stl/gabi++/libs/arm64-v8a/libgabi++_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so
index 619aae4..7f9dd06 100755
--- a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so
+++ b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a
index e3df545..74dc7d9 100644
--- a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a
+++ b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so
index 7f740c8..84d658e 100755
--- a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so
+++ b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a
index ed2ff2a..c13194d 100644
--- a/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a
+++ b/8/sources/cxx-stl/gabi++/libs/x86_64/libgabi++_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so
index 9700b0b..5979cd5 100755
--- a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so
+++ b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a
index ac67197..4d85c30 100644
--- a/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a
+++ b/8/sources/cxx-stl/stlport/libs/arm64-v8a/libstlport_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so
index 02b57ab..9261638 100755
--- a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so
+++ b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a
index d2eb250..b524d5c 100644
--- a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a
+++ b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so
index 0654d95..3441c2e 100755
--- a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so
+++ b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_shared.so
Binary files differ
diff --git a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a
index 67cd68e..47fdc0c 100644
--- a/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a
+++ b/8/sources/cxx-stl/stlport/libs/x86_64/libstlport_static.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/include/android/dlext.h b/9/platforms/android-19/arch-arm64/usr/include/android/dlext.h
new file mode 100644
index 0000000..90962fa
--- /dev/null
+++ b/9/platforms/android-19/arch-arm64/usr/include/android/dlext.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ANDROID_DLEXT_H__
+#define __ANDROID_DLEXT_H__
+
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/* bitfield definitions for android_dlextinfo.flags */
+enum {
+  /* When set, the reserved_addr and reserved_size fields must point to an
+   * already-reserved region of address space which will be used to load the
+   * library if it fits. If the reserved region is not large enough, the load
+   * will fail.
+   */
+  ANDROID_DLEXT_RESERVED_ADDRESS      = 0x1,
+
+  /* As DLEXT_RESERVED_ADDRESS, but if the reserved region is not large enough,
+   * the linker will choose an available address instead.
+   */
+  ANDROID_DLEXT_RESERVED_ADDRESS_HINT = 0x2,
+
+  /* When set, write the GNU RELRO section of the mapped library to relro_fd
+   * after relocation has been performed, to allow it to be reused by another
+   * process loading the same library at the same address. This implies
+   * ANDROID_DLEXT_USE_RELRO.
+   */
+  ANDROID_DLEXT_WRITE_RELRO           = 0x4,
+
+  /* When set, compare the GNU RELRO section of the mapped library to relro_fd
+   * after relocation has been performed, and replace any relocated pages that
+   * are identical with a version mapped from the file.
+   */
+  ANDROID_DLEXT_USE_RELRO             = 0x8,
+
+  /* Mask of valid bits */
+  ANDROID_DLEXT_VALID_FLAG_BITS       = ANDROID_DLEXT_RESERVED_ADDRESS |
+                                        ANDROID_DLEXT_RESERVED_ADDRESS_HINT |
+                                        ANDROID_DLEXT_WRITE_RELRO |
+                                        ANDROID_DLEXT_USE_RELRO,
+};
+
+typedef struct {
+  int     flags;
+  void*   reserved_addr;
+  size_t  reserved_size;
+  int     relro_fd;
+} android_dlextinfo;
+
+extern void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo);
+
+__END_DECLS
+
+#endif /* __ANDROID_DLEXT_H__ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h b/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h
index fe7d9a0..e103240 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/asm-generic/signal.h
@@ -66,9 +66,9 @@
 #define SIGSYS 31
 #define SIGUNUSED 31
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#ifndef SIGRTMAX
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#ifndef __SIGRTMAX
+#define __SIGRTMAX _KERNEL__NSIG
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SA_NOCLDSTOP 0x00000001
diff --git a/9/platforms/android-19/arch-arm64/usr/include/ctype.h b/9/platforms/android-19/arch-arm64/usr/include/ctype.h
index 5557e31..7edd8cc 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/ctype.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/ctype.h
@@ -44,12 +44,16 @@
 
 #define	_CTYPE_U	0x01
 #define	_CTYPE_L	0x02
-#define	_CTYPE_N	0x04
+#define	_CTYPE_D	0x04
 #define	_CTYPE_S	0x08
 #define	_CTYPE_P	0x10
 #define	_CTYPE_C	0x20
 #define	_CTYPE_X	0x40
 #define	_CTYPE_B	0x80
+#define	_CTYPE_R	(_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
+#define	_CTYPE_A	(_CTYPE_L|_CTYPE_U)
+
+#define _CTYPE_N    _CTYPE_D
 
 __BEGIN_DECLS
 
@@ -57,17 +61,6 @@
 extern const short	*_tolower_tab_;
 extern const short	*_toupper_tab_;
 
-/* extern __inline is a GNU C extension */
-#ifdef __GNUC__
-#  if defined(__GNUC_STDC_INLINE__)
-#define	__CTYPE_INLINE	extern __inline __attribute__((__gnu_inline__))
-#  else
-#define	__CTYPE_INLINE	extern __inline
-#  endif
-#else
-#define	__CTYPE_INLINE	static __inline
-#endif
-
 #if defined(__GNUC__) || defined(_ANSI_LIBRARY) || defined(lint)
 int	isalnum(int);
 int	isalpha(int);
@@ -97,111 +90,6 @@
 
 #endif /* __GNUC__ || _ANSI_LIBRARY || lint */
 
-#if defined(NDEBUG)
-
-__CTYPE_INLINE int isalnum(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int isalpha(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L)));
-}
-
-__CTYPE_INLINE int iscntrl(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_C));
-}
-
-__CTYPE_INLINE int isdigit(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_N));
-}
-
-__CTYPE_INLINE int isgraph(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int islower(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_L));
-}
-
-__CTYPE_INLINE int isprint(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
-}
-
-__CTYPE_INLINE int ispunct(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_P));
-}
-
-__CTYPE_INLINE int isspace(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_S));
-}
-
-__CTYPE_INLINE int isupper(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_U));
-}
-
-__CTYPE_INLINE int isxdigit(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_N|_CTYPE_X)));
-}
-
-__CTYPE_INLINE int tolower(int c)
-{
-	if ((unsigned int)c > 255)
-		return (c);
-	return ((_tolower_tab_ + 1)[c]);
-}
-
-__CTYPE_INLINE int toupper(int c)
-{
-	if ((unsigned int)c > 255)
-		return (c);
-	return ((_toupper_tab_ + 1)[c]);
-}
-
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __POSIX_VISIBLE > 200112 \
-    || __XPG_VISIBLE > 600
-__CTYPE_INLINE int isblank(int c)
-{
-	return (c == ' ' || c == '\t');
-}
-#endif
-
-#if __BSD_VISIBLE || __XPG_VISIBLE
-__CTYPE_INLINE int isascii(int c)
-{
-	return ((unsigned int)c <= 0177);
-}
-
-__CTYPE_INLINE int toascii(int c)
-{
-	return (c & 0177);
-}
-
-__CTYPE_INLINE int _tolower(int c)
-{
-	return (c - 'A' + 'a');
-}
-
-__CTYPE_INLINE int _toupper(int c)
-{
-	return (c - 'a' + 'A');
-}
-#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
-
-#endif /* NDEBUG */
-
 __END_DECLS
 
-#undef __CTYPE_INLINE
-
 #endif /* !_CTYPE_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/inttypes.h b/9/platforms/android-19/arch-arm64/usr/include/inttypes.h
index 2fd2415..8853c08 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/inttypes.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/inttypes.h
@@ -254,16 +254,14 @@
 } imaxdiv_t;
 
 __BEGIN_DECLS
-
 intmax_t	imaxabs(intmax_t) __pure2;
 imaxdiv_t	imaxdiv(intmax_t, intmax_t) __pure2;
-
 intmax_t	strtoimax(const char *, char **, int);
 uintmax_t	strtoumax(const char *, char **, int);
-
-intmax_t	strntoimax(const char *nptr, char **endptr, int base, size_t n);
-uintmax_t	strntoumax(const char *nptr, char **endptr, int base, size_t n);
-
+intmax_t	wcstoimax(const wchar_t * __restrict,
+		    wchar_t ** __restrict, int);
+uintmax_t	wcstoumax(const wchar_t * __restrict,
+		    wchar_t ** __restrict, int);
 __END_DECLS
 
 #endif /* _INTTYPES_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/limits.h b/9/platforms/android-19/arch-arm64/usr/include/limits.h
index a70021a..dc45902 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/limits.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/limits.h
@@ -112,7 +112,7 @@
 
 #define SSIZE_MAX LONG_MAX
 
-#define MB_LEN_MAX 1 /* No multibyte characters. */
+#define MB_LEN_MAX 6
 
 /* New code should use sysconf(_SC_PAGE_SIZE) instead. */
 #ifndef PAGE_SIZE
diff --git a/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h b/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h
index 87c7e2f..baa597e 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/linux/prctl.h
@@ -117,7 +117,8 @@
 #define PR_GET_NO_NEW_PRIVS 39
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PR_GET_TID_ADDRESS 40
+#define PR_SET_TIMERSLACK_PID 41
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
-#endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/9/platforms/android-19/arch-arm64/usr/include/locale.h b/9/platforms/android-19/arch-arm64/usr/include/locale.h
index 6989851..7fd8c2c 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/locale.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/locale.h
@@ -33,21 +33,19 @@
 
 __BEGIN_DECLS
 
-enum {
-    LC_CTYPE     = 0,
-    LC_NUMERIC   = 1,
-    LC_TIME      = 2,
-    LC_COLLATE   = 3,
-    LC_MONETARY  = 4,
-    LC_MESSAGES  = 5,
-    LC_ALL       = 6,
-    LC_PAPER     = 7,
-    LC_NAME      = 8,
-    LC_ADDRESS   = 9,
-    LC_TELEPHONE      = 10,
-    LC_MEASUREMENT    = 11,
-    LC_IDENTIFICATION = 12
-};
+#define LC_CTYPE           0
+#define LC_NUMERIC         1
+#define LC_TIME            2
+#define LC_COLLATE         3
+#define LC_MONETARY        4
+#define LC_MESSAGES        5
+#define LC_ALL             6
+#define LC_PAPER           7
+#define LC_NAME            8
+#define LC_ADDRESS         9
+#define LC_TELEPHONE      10
+#define LC_MEASUREMENT    11
+#define LC_IDENTIFICATION 12
 
 #define LC_CTYPE_MASK          (1 << LC_CTYPE)
 #define LC_NUMERIC_MASK        (1 << LC_NUMERIC)
diff --git a/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h b/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h
index cf2c1fc..c579969 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/machine/ieee.h
@@ -1,4 +1,4 @@
-/*	$OpenBSD: ieee.h,v 1.1 2004/02/01 05:09:49 drahn Exp $	*/
+/*	$OpenBSD: ieee.h,v 1.4 2011/11/08 17:06:51 deraadt Exp $	*/
 /*	$NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $	*/
 
 /*
@@ -45,147 +45,74 @@
  *	@(#)ieee.h	8.1 (Berkeley) 6/11/93
  */
 
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point.
- */
+#ifndef _MACHINE_IEEE_H_
+#define _MACHINE_IEEE_H_
 
-/*
- * Define the number of bits in each fraction and exponent.
- *
- *		     k	         k+1
- * Note that  1.0 x 2  == 0.1 x 2      and that denorms are represented
- *
- *					  (-exp_bias+1)
- * as fractions that look like 0.fffff x 2             .  This means that
- *
- *			 -126
- * the number 0.10000 x 2    , for instance, is the same as the normalized
- *
- *		-127			   -128
- * float 1.0 x 2    .  Thus, to represent 2    , we need one leading zero
- *
- *				  -129
- * in the fraction; to represent 2    , we need two, and so on.  This
- *
- *						     (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- *						-126		-149
- * instance, we get .00000000000000000000001 x 2    , or 1.0 x 2    , and
- *
- * -149 == -127 - 23 + 1.
- */
+#include <sys/types.h>
 
-/*
- * The ARM has two sets of FP data formats.  The FPA supports 32-bit, 64-bit
- * and 96-bit IEEE formats, with the words in big-endian order.  VFP supports
- * 32-bin and 64-bit IEEE formats with the words in the CPU's native byte
- * order.
- *
- * The FPA also has two packed decimal formats, but we ignore them here.
- */
+__BEGIN_DECLS
 
-#define	SNG_EXPBITS	8
-#define	SNG_FRACBITS	23
+#define SNG_EXPBITS	8
+#define SNG_FRACBITS	23
 
-#define	DBL_EXPBITS	11
-#define	DBL_FRACBITS	52
-
-#ifndef __VFP_FP__
-#define	E80_EXPBITS	15
-#define	E80_FRACBITS	64
-
-#define	EXT_EXPBITS	15
-#define	EXT_FRACBITS	112
-#endif
+#define SNG_EXP_INFNAN	255
+#define SNG_EXP_BIAS	127
 
 struct ieee_single {
-	u_int	sng_frac:23;
-	u_int	sng_exponent:8;
-	u_int	sng_sign:1;
+  unsigned sng_frac:23;
+  unsigned sng_exp:8;
+  unsigned sng_sign:1;
 };
 
-#ifdef __VFP_FP__
+#define DBL_EXPBITS	11
+#define DBL_FRACHBITS	20
+#define DBL_FRACLBITS	32
+#define DBL_FRACBITS	52
+
+#define DBL_EXP_INFNAN	2047
+#define DBL_EXP_BIAS	1023
+
 struct ieee_double {
-#ifdef __AARCH64EB__
-	u_int	dbl_sign:1;
-	u_int	dbl_exp:11;
-	u_int	dbl_frach:20;
-	u_int	dbl_fracl;
-#else /* !__AARCH64EB__ */
-	u_int	dbl_fracl;
-	u_int	dbl_frach:20;
-	u_int	dbl_exp:11;
-	u_int	dbl_sign:1;
-#endif /* !__AARCH64EB__ */
-};
-#else /* !__VFP_FP__ */
-struct ieee_double {
-	u_int	dbl_frach:20;
-	u_int	dbl_exp:11;
-	u_int	dbl_sign:1;
-	u_int	dbl_fracl;
+  unsigned dbl_fracl;
+  unsigned dbl_frach:20;
+  unsigned dbl_exp:11;
+  unsigned dbl_sign:1;
 };
 
-union ieee_double_u {
-	double                  dblu_d;
-	struct ieee_double      dblu_dbl;
-};
+#if __LP64__
 
+/* 64-bit Android uses ld128 long doubles. */
 
-struct ieee_e80 {
-	u_int	e80_exp:15;
-	u_int	e80_zero:16;
-	u_int	e80_sign:1;
-	u_int	e80_frach:31;
-	u_int	e80_j:1;
-	u_int	e80_fracl;
-};
+#define EXT_EXPBITS	15
+#define EXT_FRACHBITS	16
+#define EXT_FRACHMBITS	32
+#define EXT_FRACLMBITS	32
+#define EXT_FRACLBITS	32
+#define EXT_FRACBITS	112
+
+#define EXT_EXP_INFNAN	32767
+#define EXT_EXP_BIAS	16383
+
+#define EXT_IMPLICIT_NBIT
+
+#define EXT_TO_ARRAY32(p, a) do { \
+  (a)[0] = (uint32_t)(p)->ext_fracl; \
+  (a)[1] = (uint32_t)(p)->ext_fraclm; \
+  (a)[2] = (uint32_t)(p)->ext_frachm; \
+  (a)[3] = (uint32_t)(p)->ext_frach; \
+} while(0)
 
 struct ieee_ext {
-	u_int	ext_frach:16;
-	u_int	ext_exp:15;
-	u_int	ext_sign:1;
-	u_int	ext_frachm;
-	u_int	ext_fraclm;
-	u_int	ext_fracl;
+  unsigned ext_fracl;
+  unsigned ext_fraclm;
+  unsigned ext_frachm;
+  unsigned ext_frach:16;
+  unsigned ext_exp:15;
+  unsigned ext_sign:1;
 };
-#endif /* !__VFP_FP__ */
 
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'.  Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define	SNG_EXP_INFNAN	255
-#define	DBL_EXP_INFNAN	2047
-#ifndef __VFP_FP__
-#define	E80_EXP_INFNAN	32767
-#define	EXT_EXP_INFNAN	32767
-#endif /* !__VFP_FP__ */
-
-#if 0
-#define	SNG_QUIETNAN	(1 << 22)
-#define	DBL_QUIETNAN	(1 << 19)
-#ifndef __VFP_FP__
-#define	E80_QUIETNAN	(1 << 15)
-#define	EXT_QUIETNAN	(1 << 15)
-#endif /* !__VFP_FP__ */
 #endif
 
-/*
- * Exponent biases.
- */
-#define	SNG_EXP_BIAS	127
-#define	DBL_EXP_BIAS	1023
-#ifndef __VFP_FP__
-#define	E80_EXP_BIAS	16383
-#define	EXT_EXP_BIAS	16383
-#endif /* !__VFP_FP__ */
+__END_DECLS
+
+#endif /* _MACHINE_IEEE_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/machine/wchar_limits.h b/9/platforms/android-19/arch-arm64/usr/include/machine/wchar_limits.h
new file mode 100644
index 0000000..94cbd7e
--- /dev/null
+++ b/9/platforms/android-19/arch-arm64/usr/include/machine/wchar_limits.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _MACHINE_WCHAR_LIMITS_H_
+#define _MACHINE_WCHAR_LIMITS_H_
+
+/* Both GCC and clang define __WCHAR_MAX__. */
+#define WCHAR_MAX __WCHAR_MAX__
+
+/* As of 3.4, clang still doesn't define __WCHAR_MIN__. */
+#if defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN L'\0'
+#else
+#  define WCHAR_MIN (-(WCHAR_MAX) - 1)
+#endif
+
+#endif /* _MACHINE_WCHAR_LIMITS_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/math.h b/9/platforms/android-19/arch-arm64/usr/include/math.h
index bd0241b..c264583 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/math.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/math.h
@@ -396,16 +396,23 @@
  * long double versions of ISO/POSIX math functions
  */
 #if __ISO_C_VISIBLE >= 1999
+long double	acoshl(long double);
 long double	acosl(long double);
+long double	asinhl(long double);
 long double	asinl(long double);
 long double	atan2l(long double, long double);
+long double	atanhl(long double);
 long double	atanl(long double);
 long double	cbrtl(long double);
 long double	ceill(long double);
 long double	copysignl(long double, long double) __pure2;
+long double	coshl(long double);
 long double	cosl(long double);
+long double	erfcl(long double);
+long double	erfl(long double);
 long double	exp2l(long double);
 long double	expl(long double);
+long double	expm1l(long double);
 long double	fabsl(long double) __pure2;
 long double	fdiml(long double, long double);
 long double	floorl(long double);
@@ -417,9 +424,14 @@
 long double	hypotl(long double, long double);
 int		ilogbl(long double) __pure2;
 long double	ldexpl(long double, int);
+long double	lgammal(long double);
 long long	llrintl(long double);
 long long	llroundl(long double);
+long double	log10l(long double);
+long double	log1pl(long double);
+long double	log2l(long double);
 long double	logbl(long double);
+long double	logl(long double);
 long		lrintl(long double);
 long		lroundl(long double);
 long double	modfl(long double, long double *); /* fundamentally !__pure2 */
@@ -429,53 +441,29 @@
 double		nexttoward(double, long double);
 float		nexttowardf(float, long double);
 long double	nexttowardl(long double, long double);
+long double	powl(long double, long double);
 long double	remainderl(long double, long double);
 long double	remquol(long double, long double, int *);
 long double	rintl(long double);
 long double	roundl(long double);
 long double	scalblnl(long double, long);
 long double	scalbnl(long double, int);
+long double	sinhl(long double);
 long double	sinl(long double);
 long double	sqrtl(long double);
+long double	tanhl(long double);
 long double	tanl(long double);
+long double	tgammal(long double);
 long double	truncl(long double);
 
 #endif /* __ISO_C_VISIBLE >= 1999 */
+
+#if defined(_GNU_SOURCE)
+void sincos(double, double*, double*);
+void sincosf(float, float*, float*);
+void sincosl(long double, long double*, long double*);
+#endif /* _GNU_SOURCE */
+
 __END_DECLS
 
 #endif /* !_MATH_H_ */
-
-/* separate header for cmath */
-#ifndef _MATH_EXTRA_H_
-#if __ISO_C_VISIBLE >= 1999
-#if _DECLARE_C99_LDBL_MATH
-
-#define _MATH_EXTRA_H_
-
-/*
- * extra long double versions of math functions for C99 and cmath
- */
-__BEGIN_DECLS
-
-long double	acoshl(long double);
-long double	asinhl(long double);
-long double	atanhl(long double);
-long double	coshl(long double);
-long double	erfcl(long double);
-long double	erfl(long double);
-long double	expm1l(long double);
-long double	lgammal(long double);
-long double	log10l(long double);
-long double	log1pl(long double);
-long double	log2l(long double);
-long double	logl(long double);
-long double	powl(long double, long double);
-long double	sinhl(long double);
-long double	tanhl(long double);
-long double	tgammal(long double);
-
-__END_DECLS
-
-#endif /* !_DECLARE_C99_LDBL_MATH */
-#endif /* __ISO_C_VISIBLE >= 1999 */
-#endif /* !_MATH_EXTRA_H_ */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/pthread.h b/9/platforms/android-19/arch-arm64/usr/include/pthread.h
index f93f9e9..7b8de81 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/pthread.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/pthread.h
@@ -35,17 +35,26 @@
 #include <limits.h>
 #include <sys/types.h>
 
+#ifdef __LP64__
+  #define __RESERVED_INITIALIZER , {0}
+#else
+  #define __RESERVED_INITIALIZER
+#endif
+
 typedef struct {
   int volatile value;
+#ifdef __LP64__
+  char __reserved[36];
+#endif
 } pthread_mutex_t;
 
 #define  __PTHREAD_MUTEX_INIT_VALUE            0
 #define  __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE  0x4000
 #define  __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
 
-#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE}
-#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE}
-#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE}
+#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
 
 enum {
     PTHREAD_MUTEX_NORMAL = 0,
@@ -60,9 +69,12 @@
 
 typedef struct {
   int volatile value;
+#ifdef __LP64__
+  char __reserved[44];
+#endif
 } pthread_cond_t;
 
-#define PTHREAD_COND_INITIALIZER  {0}
+#define PTHREAD_COND_INITIALIZER  {0 __RESERVED_INITIALIZER}
 
 typedef struct {
   uint32_t flags;
@@ -71,21 +83,24 @@
   size_t guard_size;
   int32_t sched_policy;
   int32_t sched_priority;
+#ifdef __LP64__
+  char __reserved[16];
+#endif
 } pthread_attr_t;
 
 typedef long pthread_mutexattr_t;
 typedef long pthread_condattr_t;
 
-typedef int pthread_rwlockattr_t;
+typedef long pthread_rwlockattr_t;
 
 typedef struct {
-  pthread_mutex_t  lock;
-  pthread_cond_t   cond;
-  int              numLocks;
-  int              writerThreadId;
-  int              pendingReaders;
-  int              pendingWriters;
-  void*            reserved[4];  /* for future extensibility */
+  pthread_mutex_t lock;
+  pthread_cond_t cond;
+  int numLocks;
+  int writerThreadId;
+  int pendingReaders;
+  int pendingWriters;
+  void* __reserved[4];
 } pthread_rwlock_t;
 
 #define PTHREAD_RWLOCK_INITIALIZER  { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, { NULL, NULL, NULL, NULL } }
@@ -95,7 +110,7 @@
 
 typedef volatile int pthread_once_t;
 
-#define PTHREAD_ONCE_INIT    0
+#define PTHREAD_ONCE_INIT 0
 
 #define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
 
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sched.h b/9/platforms/android-19/arch-arm64/usr/include/sched.h
index 7649e83..68115bb 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sched.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sched.h
@@ -59,151 +59,90 @@
 extern int sched_getcpu(void);
 extern int setns(int, int);
 
-/* Our implementation supports up to 32 independent CPUs, which is also
- * the maximum supported by the kernel at the moment. GLibc uses 1024 by
- * default.
- *
- * If you want to use more than that, you should use CPU_ALLOC() / CPU_FREE()
- * and the CPU_XXX_S() macro variants.
- */
-#define CPU_SETSIZE   32
+#ifdef __LP32__
+#define CPU_SETSIZE 32
+#else
+#define CPU_SETSIZE 1024
+#endif
 
-#define __CPU_BITTYPE    unsigned long int  /* mandated by the kernel  */
-#define __CPU_BITSHIFT   5                  /* should be log2(BITTYPE) */
-#define __CPU_BITS       (1 << __CPU_BITSHIFT)
-#define __CPU_ELT(x)     ((x) >> __CPU_BITSHIFT)
-#define __CPU_MASK(x)    ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS-1)))
+#define __CPU_BITTYPE  unsigned long int  /* mandated by the kernel  */
+#define __CPU_BITS     (8 * sizeof(__CPU_BITTYPE))
+#define __CPU_ELT(x)   ((x) / __CPU_BITS)
+#define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
 typedef struct {
-    __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
+  __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
 extern int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set);
 
 extern int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set);
 
-/* Provide optimized implementation for 32-bit cpu_set_t */
-#if CPU_SETSIZE == __CPU_BITS
+#define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
 
-#  define CPU_ZERO(set_)   \
-    do{ \
-        (set_)->__bits[0] = 0; \
-    }while(0)
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
 
-#  define CPU_SET(cpu_,set_) \
-    do {\
-        size_t __cpu = (cpu_); \
-        if (__cpu < CPU_SETSIZE) \
-            (set_)->__bits[0] |= __CPU_MASK(__cpu); \
-    }while (0)
-
-#  define CPU_CLR(cpu_,set_) \
-    do {\
-        size_t __cpu = (cpu_); \
-        if (__cpu < CPU_SETSIZE) \
-            (set_)->__bits[0] &= ~__CPU_MASK(__cpu); \
-    }while (0)
-
-#  define CPU_ISSET(cpu_, set_) \
-    (__extension__({\
-        size_t  __cpu = (cpu_); \
-        (cpu_ < CPU_SETSIZE) \
-            ? ((set_)->__bits[0] & __CPU_MASK(__cpu)) != 0 \
-            : 0; \
-    }))
-
-#  define CPU_EQUAL(set1_, set2_) \
-    ((set1_)->__bits[0] == (set2_)->__bits[0])
-
-#  define __CPU_OP(dst_, set1_, set2_, op_) \
-    do { \
-        (dst_)->__bits[0] = (set1_)->__bits[0] op_ (set2_)->__bits[0]; \
-    } while (0)
-
-#  define CPU_COUNT(set_)  __builtin_popcountl((set_)->__bits[0])
-
-#else /* CPU_SETSIZE != __CPU_BITS */
-
-#  define CPU_ZERO(set_)          CPU_ZERO_S(sizeof(cpu_set_t), set_)
-#  define CPU_SET(cpu_,set_)      CPU_SET_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_CLR(cpu_,set_)      CPU_CLR_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_ISSET(cpu_,set_)    CPU_ISSET_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_COUNT(set_)         CPU_COUNT_S(sizeof(cpu_set_t),set_)
-#  define CPU_EQUAL(set1_,set2_)  CPU_EQUAL_S(sizeof(cpu_set_t),set1_,set2_)
-
-#  define __CPU_OP(dst_,set1_,set2_,op_)  __CPU_OP_S(sizeof(cpu_set_t),dst_,set1_,set2_,op_)
-
-#endif /* CPU_SETSIZE != __CPU_BITS */
-
-#define CPU_AND(set1_,set2_)   __CPU_OP(set1_,set2_,&)
-#define CPU_OR(set1_,set2_)    __CPU_OP(set1_,set2_,|)
-#define CPU_XOR(set1_,set2_)   __CPU_OP(set1_,set2_,^)
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
 
 /* Support for dynamically-allocated cpu_set_t */
 
 #define CPU_ALLOC_SIZE(count) \
-    __CPU_ELT((count) + (__CPU_BITS-1))*sizeof(__CPU_BITTYPE)
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-#define CPU_ALLOC(count)   __sched_cpualloc((count));
-#define CPU_FREE(set)      __sched_cpufree((set))
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+#define CPU_FREE(set)     __sched_cpufree((set))
 
 extern cpu_set_t* __sched_cpualloc(size_t count);
 extern void       __sched_cpufree(cpu_set_t* set);
 
-#define CPU_ZERO_S(setsize_,set_)  \
-    do { \
-        size_t __nn = 0; \
-        size_t __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) \
-            (set_)->__bits[__nn] = 0; \
-    } while (0)
+#define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
-#define CPU_SET_S(cpu_,setsize_,set_) \
-    do { \
-        size_t __cpu = (cpu_); \
-        if (__cpu < 8*(setsize_)) \
-            (set_)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
-    } while (0)
+#define CPU_SET_S(cpu, setsize, set) \
+  do { \
+    size_t __cpu = (cpu); \
+    if (__cpu < 8 * (setsize)) \
+      (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
+  } while (0)
 
-#define CPU_CLR_S(cpu_,setsize_,set_) \
-    do { \
-        size_t __cpu = (cpu_); \
-        if (__cpu < 8*(setsize_)) \
-            (set_)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
-    } while (0)
+#define CPU_CLR_S(cpu, setsize, set) \
+  do { \
+    size_t __cpu = (cpu); \
+    if (__cpu < 8 * (setsize)) \
+      (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
+  } while (0)
 
-#define CPU_ISSET_S(cpu_, setsize_, set_) \
-    (__extension__ ({ \
-        size_t __cpu = (cpu_); \
-        (__cpu < 8*(setsize_)) \
-          ? ((set_)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
-          : 0; \
-    }))
+#define CPU_ISSET_S(cpu, setsize, set) \
+  (__extension__ ({ \
+    size_t __cpu = (cpu); \
+    (__cpu < 8 * (setsize)) \
+      ? ((set)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
+      : 0; \
+  }))
 
-#define CPU_EQUAL_S(setsize_, set1_, set2_) \
-    (__extension__ ({ \
-        __const __CPU_BITTYPE* __src1 = (set1_)->__bits; \
-        __const __CPU_BITTYPE* __src2 = (set2_)->__bits; \
-        size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) { \
-            if (__src1[__nn] != __src2[__nn]) \
-                break; \
-        } \
-        __nn == __nn_max; \
-    }))
+#define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
-#define __CPU_OP_S(setsize_, dstset_, srcset1_, srcset2_, op) \
-    do { \
-        cpu_set_t* __dst = (dstset); \
-        const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
-        const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
-        size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) \
-            (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
-    } while (0)
+#define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+#define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+#define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
-#define CPU_COUNT_S(setsize_, set_) \
-    __sched_cpucount((setsize_), (set_))
+#define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
+  do { \
+    cpu_set_t* __dst = (dstset); \
+    const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
+    const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
+    size_t __nn = 0, __nn_max = (setsize)/sizeof(__CPU_BITTYPE); \
+    for (; __nn < __nn_max; __nn++) \
+      (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
+  } while (0)
+
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
 
 extern int __sched_cpucount(size_t setsize, cpu_set_t* set);
 
diff --git a/9/platforms/android-19/arch-arm64/usr/include/semaphore.h b/9/platforms/android-19/arch-arm64/usr/include/semaphore.h
index 30e3123..7ae3c3a 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/semaphore.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/semaphore.h
@@ -33,10 +33,13 @@
 __BEGIN_DECLS
 
 typedef struct {
-    volatile unsigned int  count;
+  volatile unsigned int count;
+#ifdef __LP64__
+  int __reserved[3];
+#endif
 } sem_t;
 
-#define  SEM_FAILED  NULL
+#define SEM_FAILED NULL
 
 extern int sem_init(sem_t *sem, int pshared, unsigned int value);
 
diff --git a/9/platforms/android-19/arch-arm64/usr/include/signal.h b/9/platforms/android-19/arch-arm64/usr/include/signal.h
index 267f3e6..45c1cda 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/signal.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/signal.h
@@ -60,6 +60,12 @@
 #define _NSIG (_KERNEL__NSIG + 1)
 #define NSIG _NSIG
 
+/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
+#define SIGRTMIN (__libc_current_sigrtmin())
+#define SIGRTMAX (__libc_current_sigrtmax())
+extern int __libc_current_sigrtmin(void);
+extern int __libc_current_sigrtmax(void);
+
 extern const char* const sys_siglist[];
 extern const char* const sys_signame[]; /* BSD compatibility. */
 
diff --git a/9/platforms/android-19/arch-arm64/usr/include/stdint.h b/9/platforms/android-19/arch-arm64/usr/include/stdint.h
index 1f3d003..f34843c 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/stdint.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/stdint.h
@@ -30,6 +30,7 @@
 #define _STDINT_H
 
 #include <stddef.h>
+#include <machine/wchar_limits.h>
 
 typedef __signed char __int8_t;
 typedef unsigned char __uint8_t;
@@ -86,7 +87,7 @@
 typedef int64_t       int_fast64_t;
 typedef uint64_t      uint_fast64_t;
 
-#ifdef __LP64__
+#if defined(__LP64__)
 typedef int64_t       int_fast16_t;
 typedef uint64_t      uint_fast16_t;
 typedef int64_t       int_fast32_t;
@@ -135,7 +136,7 @@
 #define INTMAX_C(c)       INT64_C(c)
 #define UINTMAX_C(c)      UINT64_C(c)
 
-#ifdef __LP64__
+#if defined(__LP64__)
 #  define INT64_C(c)      c ## L
 #  define UINT64_C(c)     c ## UL
 #  define INTPTR_C(c)     INT64_C(c)
@@ -200,15 +201,15 @@
 #define SIG_ATOMIC_MAX   INT32_MAX
 #define SIG_ATOMIC_MIN   INT32_MIN
 
-#ifndef WCHAR_MAX /* These might also have been defined by <wchar.h>. */
-#  define WCHAR_MAX      INT32_MAX
-#  define WCHAR_MIN      INT32_MIN
+#if defined(__WINT_UNSIGNED__)
+#  define WINT_MAX       UINT32_MAX
+#  define WINT_MIN       UINT32_MIN
+#else
+#  define WINT_MAX       INT32_MAX
+#  define WINT_MIN       INT32_MIN
 #endif
 
-#define WINT_MAX         INT32_MAX
-#define WINT_MIN         INT32_MIN
-
-#ifdef __LP64__
+#if defined(__LP64__)
 #  define INTPTR_MIN     INT64_MIN
 #  define INTPTR_MAX     INT64_MAX
 #  define UINTPTR_MAX    UINT64_MAX
diff --git a/9/platforms/android-19/arch-arm64/usr/include/stdlib.h b/9/platforms/android-19/arch-arm64/usr/include/stdlib.h
index 2c797c5..834dcda 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/stdlib.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/stdlib.h
@@ -46,10 +46,15 @@
 extern __noreturn void _Exit(int);
 extern int atexit(void (*)(void));
 
-extern char *getenv(const char *);
-extern int putenv(const char *);
-extern int setenv(const char *, const char *, int);
-extern int unsetenv(const char *);
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+int at_quick_exit(void (*)(void));
+void quick_exit(int) __noreturn;
+#endif
+
+extern char* getenv(const char*);
+extern int putenv(char*);
+extern int setenv(const char*, const char*, int);
+extern int unsetenv(const char*);
 extern int clearenv(void);
 
 extern char* mkdtemp(char*);
@@ -65,9 +70,10 @@
 extern int posix_memalign(void **memptr, size_t alignment, size_t size);
 
 extern double atof(const char*);
-extern double strtod(const char*, char**);
-extern float strtof(const char*, char**);
-extern long double strtold(const char*, char**);
+
+extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
 
 extern int atoi(const char*) __purefunc;
 extern long atol(const char*) __purefunc;
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h b/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h
index bb846b7..0479230 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/cdefs_elf.h
@@ -32,7 +32,7 @@
 
 #ifdef __LEADING_UNDERSCORE
 #define	_C_LABEL(x)	__CONCAT(_,x)
-#define _C_LABEL_STRING(x)	"_"x
+#define _C_LABEL_STRING(x)	"_" x
 #else
 #define	_C_LABEL(x)	x
 #define _C_LABEL_STRING(x)	x
@@ -61,24 +61,11 @@
 #define	__SECTIONSTRING(_sec, _str)					\
 	__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
 
-/* GCC visibility helper macro */
-/* This must be used to tag non-static functions that are private, i.e.
- * never exposed by the shared library. */
-#define __LIBC_HIDDEN__							\
-	__attribute__ ((visibility ("hidden")))
+/* Used to tag non-static symbols that are private and never exposed by the shared library. */
+#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden")))
 
-/* This must be used to tag non-static functions that are public, i.e.
- * exposed by the shared library, and part of the stable NDK ABI */
-#define __LIBC_ABI_PUBLIC__ \
-        __attribute__ ((visibility ("default")))
-
-/* This must be used to tag non-static functions that must be exported
- * by the shared library, but whose implementation is private to the
- * platform. For now this is equivalent to __LIBC_ABI_PUBLIC__, but we
- * may want to change this later.
- */
-#define __LIBC_ABI_PRIVATE__ \
-        __attribute__ ((visibility ("default")))
+/* Used to tag non-static symbols that are public and exposed by the shared library. */
+#define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default")))
 
 #define	__IDSTRING(_n,_s)		__SECTIONSTRING(.ident,_s)
 
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h b/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h
index c06a081..4a5a37c 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/epoll.h
@@ -67,7 +67,11 @@
 struct epoll_event {
   uint32_t events;
   epoll_data_t data;
-};
+}
+#ifdef __x86_64__
+__packed
+#endif
+;
 
 int epoll_create(int);
 int epoll_create1(int);
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/types.h b/9/platforms/android-19/arch-arm64/usr/include/sys/types.h
index dc847d2..9a76ad2 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/types.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/types.h
@@ -63,7 +63,7 @@
 typedef __kernel_key_t __key_t;
 typedef __key_t key_t;
 
-typedef uint32_t __ino_t;
+typedef __kernel_ino_t __ino_t;
 typedef __ino_t ino_t;
 
 typedef uint32_t __nlink_t;
@@ -72,9 +72,10 @@
 typedef void* __timer_t;
 typedef __timer_t timer_t;
 
-typedef int32_t __suseconds_t;
+typedef __kernel_suseconds_t __suseconds_t;
 typedef __suseconds_t suseconds_t;
 
+/* useconds_t is 32-bit on both LP32 and LP64. */
 typedef uint32_t __useconds_t;
 typedef __useconds_t useconds_t;
 
diff --git a/9/platforms/android-19/arch-arm64/usr/include/sys/user.h b/9/platforms/android-19/arch-arm64/usr/include/sys/user.h
index 5348dd8..c578a6f 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/sys/user.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/sys/user.h
@@ -36,7 +36,7 @@
 
 #if __i386__
 
-struct user_i387_struct {
+struct user_fpregs_struct {
   long cwd;
   long swd;
   long twd;
@@ -83,7 +83,7 @@
 struct user {
   struct user_regs_struct regs;
   int u_fpvalid;
-  struct user_i387_struct i387;
+  struct user_fpregs_struct i387;
   unsigned long int u_tsize;
   unsigned long int u_dsize;
   unsigned long int u_ssize;
@@ -92,7 +92,7 @@
   long int signal;
   int reserved;
   unsigned long u_ar0;
-  struct user_i387_struct* u_fpstate;
+  struct user_fpregs_struct* u_fpstate;
   unsigned long magic;
   char u_comm[32];
   int u_debugreg[8];
@@ -100,7 +100,7 @@
 
 #elif defined(__x86_64__)
 
-struct user_i387_struct {
+struct user_fpregs_struct {
   unsigned short cwd;
   unsigned short swd;
   unsigned short twd;
@@ -146,7 +146,7 @@
   struct user_regs_struct regs;
   int u_fpvalid;
   int pad0;
-  struct user_i387_struct i387;
+  struct user_fpregs_struct i387;
   unsigned long int u_tsize;
   unsigned long int u_dsize;
   unsigned long int u_ssize;
@@ -156,7 +156,7 @@
   int reserved;
   int pad1;
   unsigned long u_ar0;
-  struct user_i387_struct* u_fpstate;
+  struct user_fpregs_struct* u_fpstate;
   unsigned long magic;
   char u_comm[32];
   unsigned long u_debugreg[8];
diff --git a/9/platforms/android-19/arch-arm64/usr/include/time64.h b/9/platforms/android-19/arch-arm64/usr/include/time64.h
index 7ec05af..905669d 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/time64.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/time64.h
@@ -31,29 +31,36 @@
 #ifndef TIME64_H
 #define TIME64_H
 
+#if defined(__LP64__)
+
+#error Your time_t is already 64-bit.
+
+#else
+
+/* Legacy cruft for LP32 where time_t was 32-bit. */
+
 #include <sys/cdefs.h>
 #include <time.h>
 #include <stdint.h>
 
 __BEGIN_DECLS
 
-typedef int64_t  time64_t;
+typedef int64_t time64_t;
 
-struct tm *gmtime64_r (const time64_t *, struct tm *);
-struct tm *localtime64_r (const time64_t *, struct tm *);
-struct tm *gmtime64 (const time64_t *);
-struct tm *localtime64 (const time64_t *);
-
-char *asctime64 (const struct tm *);
-char *asctime64_r (const struct tm *, char *);
-
-char *ctime64 (const time64_t*);
-char *ctime64_r (const time64_t*, char*);
-
-time64_t timegm64 (const struct tm *);
-time64_t mktime64 (const struct tm *);
-time64_t timelocal64 (const struct tm *);
+char* asctime64(const struct tm*);
+char* asctime64_r(const struct tm*, char*);
+char* ctime64(const time64_t*);
+char* ctime64_r(const time64_t*, char*);
+struct tm* gmtime64(const time64_t*);
+struct tm* gmtime64_r(const time64_t*, struct tm*);
+struct tm* localtime64(const time64_t*);
+struct tm* localtime64_r(const time64_t*, struct tm*);
+time64_t mktime64(const struct tm*);
+time64_t timegm64(const struct tm*);
+time64_t timelocal64(const struct tm*);
 
 __END_DECLS
 
+#endif
+
 #endif /* TIME64_H */
diff --git a/9/platforms/android-19/arch-arm64/usr/include/unistd.h b/9/platforms/android-19/arch-arm64/usr/include/unistd.h
index d21f23d..6cb36d8 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/unistd.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/unistd.h
@@ -47,7 +47,8 @@
 #define SEEK_CUR 1
 #define SEEK_END 2
 
-extern char **environ;
+extern char** environ;
+
 extern __noreturn void _exit(int);
 
 extern pid_t  fork(void);
diff --git a/9/platforms/android-19/arch-arm64/usr/include/utmp.h b/9/platforms/android-19/arch-arm64/usr/include/utmp.h
index ffd3c92..d764227 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/utmp.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/utmp.h
@@ -36,9 +36,15 @@
 #define _PATH_WTMP      "/var/log/wtmp"
 #define _PATH_LASTLOG   "/var/log/lastlog"
 
-#define	UT_NAMESIZE	8
-#define	UT_LINESIZE	8
-#define	UT_HOSTSIZE	16
+#ifdef __LP64__
+#define UT_NAMESIZE 32
+#define UT_LINESIZE 32
+#define UT_HOSTSIZE 256
+#else
+#define UT_NAMESIZE 8
+#define UT_LINESIZE 8
+#define UT_HOSTSIZE 16
+#endif
 
 #define USER_PROCESS 7
 
diff --git a/9/platforms/android-19/arch-arm64/usr/include/wchar.h b/9/platforms/android-19/arch-arm64/usr/include/wchar.h
index 89c6fb6..fe2fe07 100644
--- a/9/platforms/android-19/arch-arm64/usr/include/wchar.h
+++ b/9/platforms/android-19/arch-arm64/usr/include/wchar.h
@@ -34,12 +34,20 @@
 #include <stdarg.h>
 #include <stddef.h>
 #include <time.h>
-#include <malloc.h>
+
+#include <machine/wchar_limits.h>
 
 __BEGIN_DECLS
 
-typedef __WINT_TYPE__           wint_t;
-typedef struct { int  dummy; }  mbstate_t;
+typedef __WINT_TYPE__  wint_t;
+typedef struct {
+#ifdef __LP32__
+  int dummy;
+#else
+  // 8 bytes should be enough to support at least UTF-8
+  char __reserved[8];
+#endif
+} mbstate_t;
 
 typedef enum {
     WC_TYPE_INVALID = 0,
@@ -58,11 +66,6 @@
     WC_TYPE_MAX
 } wctype_t;
 
-#ifndef WCHAR_MAX
-#define  WCHAR_MAX   INT_MAX
-#define  WCHAR_MIN   INT_MIN
-#endif
-
 #define  WEOF        ((wint_t)(-1))
 
 extern wint_t            btowc(int);
@@ -70,6 +73,7 @@
 extern int               fwscanf(FILE *, const wchar_t *, ...);
 extern int               iswalnum(wint_t);
 extern int               iswalpha(wint_t);
+extern int               iswblank(wint_t);
 extern int               iswcntrl(wint_t);
 extern int               iswdigit(wint_t);
 extern int               iswgraph(wint_t);
@@ -90,7 +94,8 @@
 extern int               mbsinit(const mbstate_t *);
 extern size_t            mbrlen(const char *, size_t, mbstate_t *);
 extern size_t            mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t            mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
 extern size_t            mbstowcs(wchar_t *, const char *, size_t);
 extern wint_t            putwc(wchar_t, FILE *);
 extern wint_t            putwchar(wchar_t);
@@ -99,9 +104,12 @@
 extern wint_t            towlower(wint_t);
 extern wint_t            towupper(wint_t);
 extern wint_t            ungetwc(wint_t, FILE *);
-extern int               vfwprintf(FILE *, const wchar_t *, va_list);
-extern int               vwprintf(const wchar_t *, va_list);
-extern int               vswprintf(wchar_t *, size_t, const wchar_t *, va_list);
+extern int vfwprintf(FILE*, const wchar_t*, va_list);
+extern int vfwscanf(FILE*, const wchar_t*, va_list);
+extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
+extern int vwprintf(const wchar_t*, va_list);
+extern int vwscanf(const wchar_t*, va_list);
 extern size_t            wcrtomb(char *, wchar_t, mbstate_t *);
 extern int               wcscasecmp(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcscat(wchar_t *, const wchar_t *);
@@ -116,16 +124,20 @@
 extern wchar_t          *wcsncat(wchar_t *, const wchar_t *, size_t);
 extern int               wcsncmp(const wchar_t *, const wchar_t *, size_t);
 extern wchar_t          *wcsncpy(wchar_t *, const wchar_t *, size_t);
+extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
 extern wchar_t          *wcspbrk(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcsrchr(const wchar_t *, wchar_t);
-extern size_t            wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
 extern size_t            wcsspn(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcsstr(const wchar_t *, const wchar_t *);
-extern double            wcstod(const wchar_t *, wchar_t **);
-extern wchar_t          *wcstok(wchar_t *, const wchar_t *, wchar_t **);
-extern long int          wcstol(const wchar_t *, wchar_t **, int);
-extern size_t            wcstombs(char *, const wchar_t *, size_t);
-extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
+extern double wcstod(const wchar_t*, wchar_t**);
+extern float wcstof(const wchar_t*, wchar_t**);
+extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+extern long wcstol(const wchar_t*, wchar_t**, int);
+extern long long wcstoll(const wchar_t*, wchar_t**, int);
+extern long double wcstold(const wchar_t*, wchar_t**);
+extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
 extern wchar_t          *wcswcs(const wchar_t *, const wchar_t *);
 extern int               wcswidth(const wchar_t *, size_t);
 extern size_t            wcsxfrm(wchar_t *, const wchar_t *, size_t);
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o
index 03629d2..b8c3e04 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o
index ae913aa..93f4f91 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o
index 03629d2..b8c3e04 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o b/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o
index a8bbf0d..a5bf084 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtend_android.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o b/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o
index 84a2f46..8330c9d 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o
+++ b/9/platforms/android-19/arch-arm64/usr/lib/crtend_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so b/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so
index 8d12e8f..1e15167 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so
index 69ee24d..c9fb7c9 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so
index 5ac6347..c153102 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so
index b0ab4f6..e0c4fca 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so b/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so
index 40665c5..1339835 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so b/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so
index 5b6d7e3..a7f2935 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so b/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so
index 3a78f16..ebba01d 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libc.a b/9/platforms/android-19/arch-arm64/usr/lib/libc.a
index 244f178..737b48d 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libc.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libc.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libc.so b/9/platforms/android-19/arch-arm64/usr/lib/libc.so
index 7041545..3dadbfc 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libc.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libc.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libdl.so b/9/platforms/android-19/arch-arm64/usr/lib/libdl.so
index 6aed7c1..364775d 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libdl.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libdl.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so b/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so
index 4c47cb4..37268de 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/liblog.so b/9/platforms/android-19/arch-arm64/usr/lib/liblog.so
index 11aafff..214ee45 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/liblog.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/liblog.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libm.a b/9/platforms/android-19/arch-arm64/usr/lib/libm.a
index 1ef1f14..2c5d4f8 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libm.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libm.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libm.so b/9/platforms/android-19/arch-arm64/usr/lib/libm.so
index c9a409a..a63d39a 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libm.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libm.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a
index c60c482..35b02d5 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so
index 4bcbe9b..1fafc4b 100755
--- a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so
Binary files differ
diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libz.a b/9/platforms/android-19/arch-arm64/usr/lib/libz.a
index 616d6fd..c6b60b0 100644
--- a/9/platforms/android-19/arch-arm64/usr/lib/libz.a
+++ b/9/platforms/android-19/arch-arm64/usr/lib/libz.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/include/android/dlext.h b/9/platforms/android-19/arch-mips64/usr/include/android/dlext.h
new file mode 100644
index 0000000..90962fa
--- /dev/null
+++ b/9/platforms/android-19/arch-mips64/usr/include/android/dlext.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ANDROID_DLEXT_H__
+#define __ANDROID_DLEXT_H__
+
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/* bitfield definitions for android_dlextinfo.flags */
+enum {
+  /* When set, the reserved_addr and reserved_size fields must point to an
+   * already-reserved region of address space which will be used to load the
+   * library if it fits. If the reserved region is not large enough, the load
+   * will fail.
+   */
+  ANDROID_DLEXT_RESERVED_ADDRESS      = 0x1,
+
+  /* As DLEXT_RESERVED_ADDRESS, but if the reserved region is not large enough,
+   * the linker will choose an available address instead.
+   */
+  ANDROID_DLEXT_RESERVED_ADDRESS_HINT = 0x2,
+
+  /* When set, write the GNU RELRO section of the mapped library to relro_fd
+   * after relocation has been performed, to allow it to be reused by another
+   * process loading the same library at the same address. This implies
+   * ANDROID_DLEXT_USE_RELRO.
+   */
+  ANDROID_DLEXT_WRITE_RELRO           = 0x4,
+
+  /* When set, compare the GNU RELRO section of the mapped library to relro_fd
+   * after relocation has been performed, and replace any relocated pages that
+   * are identical with a version mapped from the file.
+   */
+  ANDROID_DLEXT_USE_RELRO             = 0x8,
+
+  /* Mask of valid bits */
+  ANDROID_DLEXT_VALID_FLAG_BITS       = ANDROID_DLEXT_RESERVED_ADDRESS |
+                                        ANDROID_DLEXT_RESERVED_ADDRESS_HINT |
+                                        ANDROID_DLEXT_WRITE_RELRO |
+                                        ANDROID_DLEXT_USE_RELRO,
+};
+
+typedef struct {
+  int     flags;
+  void*   reserved_addr;
+  size_t  reserved_size;
+  int     relro_fd;
+} android_dlextinfo;
+
+extern void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo);
+
+__END_DECLS
+
+#endif /* __ANDROID_DLEXT_H__ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h b/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h
index fe7d9a0..e103240 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/asm-generic/signal.h
@@ -66,9 +66,9 @@
 #define SIGSYS 31
 #define SIGUNUSED 31
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#ifndef SIGRTMAX
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#ifndef __SIGRTMAX
+#define __SIGRTMAX _KERNEL__NSIG
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SA_NOCLDSTOP 0x00000001
diff --git a/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h b/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h
index 45b418a..5397c62 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/asm/siginfo.h
@@ -27,6 +27,7 @@
 #define __ARCH_SI_PREAMBLE_SIZE (3 * sizeof(int))
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #ifdef __LP64__
+#undef __ARCH_SI_PREAMBLE_SIZE
 #define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
 #endif
 #include <asm-generic/siginfo.h>
diff --git a/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h b/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h
index 53f5015..b774a66 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/asm/signal.h
@@ -71,8 +71,8 @@
 #define SIGXCPU 30
 #define SIGXFSZ 31
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#define __SIGRTMAX _KERNEL__NSIG
 #define SA_ONSTACK 0x08000000
 #define SA_RESETHAND 0x80000000
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/ctype.h b/9/platforms/android-19/arch-mips64/usr/include/ctype.h
index 5557e31..7edd8cc 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/ctype.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/ctype.h
@@ -44,12 +44,16 @@
 
 #define	_CTYPE_U	0x01
 #define	_CTYPE_L	0x02
-#define	_CTYPE_N	0x04
+#define	_CTYPE_D	0x04
 #define	_CTYPE_S	0x08
 #define	_CTYPE_P	0x10
 #define	_CTYPE_C	0x20
 #define	_CTYPE_X	0x40
 #define	_CTYPE_B	0x80
+#define	_CTYPE_R	(_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
+#define	_CTYPE_A	(_CTYPE_L|_CTYPE_U)
+
+#define _CTYPE_N    _CTYPE_D
 
 __BEGIN_DECLS
 
@@ -57,17 +61,6 @@
 extern const short	*_tolower_tab_;
 extern const short	*_toupper_tab_;
 
-/* extern __inline is a GNU C extension */
-#ifdef __GNUC__
-#  if defined(__GNUC_STDC_INLINE__)
-#define	__CTYPE_INLINE	extern __inline __attribute__((__gnu_inline__))
-#  else
-#define	__CTYPE_INLINE	extern __inline
-#  endif
-#else
-#define	__CTYPE_INLINE	static __inline
-#endif
-
 #if defined(__GNUC__) || defined(_ANSI_LIBRARY) || defined(lint)
 int	isalnum(int);
 int	isalpha(int);
@@ -97,111 +90,6 @@
 
 #endif /* __GNUC__ || _ANSI_LIBRARY || lint */
 
-#if defined(NDEBUG)
-
-__CTYPE_INLINE int isalnum(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int isalpha(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L)));
-}
-
-__CTYPE_INLINE int iscntrl(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_C));
-}
-
-__CTYPE_INLINE int isdigit(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_N));
-}
-
-__CTYPE_INLINE int isgraph(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int islower(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_L));
-}
-
-__CTYPE_INLINE int isprint(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
-}
-
-__CTYPE_INLINE int ispunct(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_P));
-}
-
-__CTYPE_INLINE int isspace(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_S));
-}
-
-__CTYPE_INLINE int isupper(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_U));
-}
-
-__CTYPE_INLINE int isxdigit(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_N|_CTYPE_X)));
-}
-
-__CTYPE_INLINE int tolower(int c)
-{
-	if ((unsigned int)c > 255)
-		return (c);
-	return ((_tolower_tab_ + 1)[c]);
-}
-
-__CTYPE_INLINE int toupper(int c)
-{
-	if ((unsigned int)c > 255)
-		return (c);
-	return ((_toupper_tab_ + 1)[c]);
-}
-
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __POSIX_VISIBLE > 200112 \
-    || __XPG_VISIBLE > 600
-__CTYPE_INLINE int isblank(int c)
-{
-	return (c == ' ' || c == '\t');
-}
-#endif
-
-#if __BSD_VISIBLE || __XPG_VISIBLE
-__CTYPE_INLINE int isascii(int c)
-{
-	return ((unsigned int)c <= 0177);
-}
-
-__CTYPE_INLINE int toascii(int c)
-{
-	return (c & 0177);
-}
-
-__CTYPE_INLINE int _tolower(int c)
-{
-	return (c - 'A' + 'a');
-}
-
-__CTYPE_INLINE int _toupper(int c)
-{
-	return (c - 'a' + 'A');
-}
-#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
-
-#endif /* NDEBUG */
-
 __END_DECLS
 
-#undef __CTYPE_INLINE
-
 #endif /* !_CTYPE_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/inttypes.h b/9/platforms/android-19/arch-mips64/usr/include/inttypes.h
index 2fd2415..8853c08 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/inttypes.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/inttypes.h
@@ -254,16 +254,14 @@
 } imaxdiv_t;
 
 __BEGIN_DECLS
-
 intmax_t	imaxabs(intmax_t) __pure2;
 imaxdiv_t	imaxdiv(intmax_t, intmax_t) __pure2;
-
 intmax_t	strtoimax(const char *, char **, int);
 uintmax_t	strtoumax(const char *, char **, int);
-
-intmax_t	strntoimax(const char *nptr, char **endptr, int base, size_t n);
-uintmax_t	strntoumax(const char *nptr, char **endptr, int base, size_t n);
-
+intmax_t	wcstoimax(const wchar_t * __restrict,
+		    wchar_t ** __restrict, int);
+uintmax_t	wcstoumax(const wchar_t * __restrict,
+		    wchar_t ** __restrict, int);
 __END_DECLS
 
 #endif /* _INTTYPES_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/limits.h b/9/platforms/android-19/arch-mips64/usr/include/limits.h
index a70021a..dc45902 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/limits.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/limits.h
@@ -112,7 +112,7 @@
 
 #define SSIZE_MAX LONG_MAX
 
-#define MB_LEN_MAX 1 /* No multibyte characters. */
+#define MB_LEN_MAX 6
 
 /* New code should use sysconf(_SC_PAGE_SIZE) instead. */
 #ifndef PAGE_SIZE
diff --git a/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h b/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h
index 87c7e2f..baa597e 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/linux/prctl.h
@@ -117,7 +117,8 @@
 #define PR_GET_NO_NEW_PRIVS 39
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PR_GET_TID_ADDRESS 40
+#define PR_SET_TIMERSLACK_PID 41
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
-#endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/9/platforms/android-19/arch-mips64/usr/include/locale.h b/9/platforms/android-19/arch-mips64/usr/include/locale.h
index 6989851..7fd8c2c 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/locale.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/locale.h
@@ -33,21 +33,19 @@
 
 __BEGIN_DECLS
 
-enum {
-    LC_CTYPE     = 0,
-    LC_NUMERIC   = 1,
-    LC_TIME      = 2,
-    LC_COLLATE   = 3,
-    LC_MONETARY  = 4,
-    LC_MESSAGES  = 5,
-    LC_ALL       = 6,
-    LC_PAPER     = 7,
-    LC_NAME      = 8,
-    LC_ADDRESS   = 9,
-    LC_TELEPHONE      = 10,
-    LC_MEASUREMENT    = 11,
-    LC_IDENTIFICATION = 12
-};
+#define LC_CTYPE           0
+#define LC_NUMERIC         1
+#define LC_TIME            2
+#define LC_COLLATE         3
+#define LC_MONETARY        4
+#define LC_MESSAGES        5
+#define LC_ALL             6
+#define LC_PAPER           7
+#define LC_NAME            8
+#define LC_ADDRESS         9
+#define LC_TELEPHONE      10
+#define LC_MEASUREMENT    11
+#define LC_IDENTIFICATION 12
 
 #define LC_CTYPE_MASK          (1 << LC_CTYPE)
 #define LC_NUMERIC_MASK        (1 << LC_NUMERIC)
diff --git a/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h b/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h
index 520a77b..c579969 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/machine/ieee.h
@@ -1,4 +1,5 @@
-/*	$OpenBSD: ieee.h,v 1.4 2010/01/23 19:11:21 miod Exp $	*/
+/*	$OpenBSD: ieee.h,v 1.4 2011/11/08 17:06:51 deraadt Exp $	*/
+/*	$NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -21,7 +22,11 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
@@ -40,130 +45,74 @@
  *	@(#)ieee.h	8.1 (Berkeley) 6/11/93
  */
 
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point.  It does *not* define (yet?) any of the rounding
- * mode bits, exceptions, and so forth.
- */
+#ifndef _MACHINE_IEEE_H_
+#define _MACHINE_IEEE_H_
 
-/*
- * Define the number of bits in each fraction and exponent.
- *
- *		     k	         k+1
- * Note that  1.0 x 2  == 0.1 x 2      and that denorms are represented
- *
- *					  (-exp_bias+1)
- * as fractions that look like 0.fffff x 2             .  This means that
- *
- *			 -126
- * the number 0.10000 x 2    , for instance, is the same as the normalized
- *
- *		-127			   -128
- * float 1.0 x 2    .  Thus, to represent 2    , we need one leading zero
- *
- *				  -129
- * in the fraction; to represent 2    , we need two, and so on.  This
- *
- *						     (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- *						-126		-149
- * instance, we get .00000000000000000000001 x 2    , or 1.0 x 2    , and
- *
- * -149 == -127 - 23 + 1.
- */
-#define	SNG_EXPBITS	8
-#define	SNG_FRACBITS	23
+#include <sys/types.h>
 
-#define	DBL_EXPBITS	11
-#define	DBL_FRACHBITS	20
-#define	DBL_FRACLBITS	32
-#define	DBL_FRACBITS	52
+__BEGIN_DECLS
 
-#define	EXT_EXPBITS	15
-#define	EXT_FRACHBITS	16
-#define	EXT_FRACHMBITS	32
-#define	EXT_FRACLMBITS	32
-#define	EXT_FRACLBITS	32
-#define	EXT_FRACBITS	112
+#define SNG_EXPBITS	8
+#define SNG_FRACBITS	23
 
-#define	EXT_IMPLICIT_NBIT
-
-#define	EXT_TO_ARRAY32(p, a) do {		\
-	(a)[0] = (uint32_t)(p)->ext_fracl;	\
-	(a)[1] = (uint32_t)(p)->ext_fraclm;	\
-	(a)[2] = (uint32_t)(p)->ext_frachm;	\
-	(a)[3] = (uint32_t)(p)->ext_frach;	\
-} while(0)
+#define SNG_EXP_INFNAN	255
+#define SNG_EXP_BIAS	127
 
 struct ieee_single {
-#ifdef __MIPSEB__
-	u_int	sng_sign:1;
-	u_int	sng_exp:8;
-	u_int	sng_frac:23;
-#else
-	u_int	sng_frac:23;
-	u_int	sng_exp:8;
-	u_int	sng_sign:1;
-#endif
+  unsigned sng_frac:23;
+  unsigned sng_exp:8;
+  unsigned sng_sign:1;
 };
 
+#define DBL_EXPBITS	11
+#define DBL_FRACHBITS	20
+#define DBL_FRACLBITS	32
+#define DBL_FRACBITS	52
+
+#define DBL_EXP_INFNAN	2047
+#define DBL_EXP_BIAS	1023
+
 struct ieee_double {
-#ifdef __MIPSEB__
-	u_int	dbl_sign:1;
-	u_int	dbl_exp:11;
-	u_int	dbl_frach:20;
-	u_int	dbl_fracl;
-#else
-	u_int	dbl_fracl;
-	u_int	dbl_frach:20;
-	u_int	dbl_exp:11;
-	u_int	dbl_sign:1;
-#endif
+  unsigned dbl_fracl;
+  unsigned dbl_frach:20;
+  unsigned dbl_exp:11;
+  unsigned dbl_sign:1;
 };
 
+#if __LP64__
+
+/* 64-bit Android uses ld128 long doubles. */
+
+#define EXT_EXPBITS	15
+#define EXT_FRACHBITS	16
+#define EXT_FRACHMBITS	32
+#define EXT_FRACLMBITS	32
+#define EXT_FRACLBITS	32
+#define EXT_FRACBITS	112
+
+#define EXT_EXP_INFNAN	32767
+#define EXT_EXP_BIAS	16383
+
+#define EXT_IMPLICIT_NBIT
+
+#define EXT_TO_ARRAY32(p, a) do { \
+  (a)[0] = (uint32_t)(p)->ext_fracl; \
+  (a)[1] = (uint32_t)(p)->ext_fraclm; \
+  (a)[2] = (uint32_t)(p)->ext_frachm; \
+  (a)[3] = (uint32_t)(p)->ext_frach; \
+} while(0)
+
 struct ieee_ext {
-#ifdef __MIPSEB__
-	u_int	ext_sign:1;
-	u_int	ext_exp:15;
-	u_int	ext_frach:16;
-	u_int	ext_frachm;
-	u_int	ext_fraclm;
-	u_int	ext_fracl;
-#else
-	u_int	ext_fracl;
-	u_int	ext_fraclm;
-	u_int	ext_frachm;
-	u_int	ext_frach:16;
-	u_int	ext_exp:15;
-	u_int	ext_sign:1;
-#endif
+  unsigned ext_fracl;
+  unsigned ext_fraclm;
+  unsigned ext_frachm;
+  unsigned ext_frach:16;
+  unsigned ext_exp:15;
+  unsigned ext_sign:1;
 };
 
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'.  Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define	SNG_EXP_INFNAN	255
-#define	DBL_EXP_INFNAN	2047
-#define	EXT_EXP_INFNAN	32767
-
-#if 0
-#define	SNG_QUIETNAN	(1 << 22)
-#define	DBL_QUIETNAN	(1 << 19)
-#define	EXT_QUIETNAN	(1 << 15)
 #endif
 
-/*
- * Exponent biases.
- */
-#define	SNG_EXP_BIAS	127
-#define	DBL_EXP_BIAS	1023
-#define	EXT_EXP_BIAS	16383
+__END_DECLS
+
+#endif /* _MACHINE_IEEE_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/machine/wchar_limits.h b/9/platforms/android-19/arch-mips64/usr/include/machine/wchar_limits.h
new file mode 100644
index 0000000..94cbd7e
--- /dev/null
+++ b/9/platforms/android-19/arch-mips64/usr/include/machine/wchar_limits.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _MACHINE_WCHAR_LIMITS_H_
+#define _MACHINE_WCHAR_LIMITS_H_
+
+/* Both GCC and clang define __WCHAR_MAX__. */
+#define WCHAR_MAX __WCHAR_MAX__
+
+/* As of 3.4, clang still doesn't define __WCHAR_MIN__. */
+#if defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN L'\0'
+#else
+#  define WCHAR_MIN (-(WCHAR_MAX) - 1)
+#endif
+
+#endif /* _MACHINE_WCHAR_LIMITS_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/math.h b/9/platforms/android-19/arch-mips64/usr/include/math.h
index bd0241b..c264583 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/math.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/math.h
@@ -396,16 +396,23 @@
  * long double versions of ISO/POSIX math functions
  */
 #if __ISO_C_VISIBLE >= 1999
+long double	acoshl(long double);
 long double	acosl(long double);
+long double	asinhl(long double);
 long double	asinl(long double);
 long double	atan2l(long double, long double);
+long double	atanhl(long double);
 long double	atanl(long double);
 long double	cbrtl(long double);
 long double	ceill(long double);
 long double	copysignl(long double, long double) __pure2;
+long double	coshl(long double);
 long double	cosl(long double);
+long double	erfcl(long double);
+long double	erfl(long double);
 long double	exp2l(long double);
 long double	expl(long double);
+long double	expm1l(long double);
 long double	fabsl(long double) __pure2;
 long double	fdiml(long double, long double);
 long double	floorl(long double);
@@ -417,9 +424,14 @@
 long double	hypotl(long double, long double);
 int		ilogbl(long double) __pure2;
 long double	ldexpl(long double, int);
+long double	lgammal(long double);
 long long	llrintl(long double);
 long long	llroundl(long double);
+long double	log10l(long double);
+long double	log1pl(long double);
+long double	log2l(long double);
 long double	logbl(long double);
+long double	logl(long double);
 long		lrintl(long double);
 long		lroundl(long double);
 long double	modfl(long double, long double *); /* fundamentally !__pure2 */
@@ -429,53 +441,29 @@
 double		nexttoward(double, long double);
 float		nexttowardf(float, long double);
 long double	nexttowardl(long double, long double);
+long double	powl(long double, long double);
 long double	remainderl(long double, long double);
 long double	remquol(long double, long double, int *);
 long double	rintl(long double);
 long double	roundl(long double);
 long double	scalblnl(long double, long);
 long double	scalbnl(long double, int);
+long double	sinhl(long double);
 long double	sinl(long double);
 long double	sqrtl(long double);
+long double	tanhl(long double);
 long double	tanl(long double);
+long double	tgammal(long double);
 long double	truncl(long double);
 
 #endif /* __ISO_C_VISIBLE >= 1999 */
+
+#if defined(_GNU_SOURCE)
+void sincos(double, double*, double*);
+void sincosf(float, float*, float*);
+void sincosl(long double, long double*, long double*);
+#endif /* _GNU_SOURCE */
+
 __END_DECLS
 
 #endif /* !_MATH_H_ */
-
-/* separate header for cmath */
-#ifndef _MATH_EXTRA_H_
-#if __ISO_C_VISIBLE >= 1999
-#if _DECLARE_C99_LDBL_MATH
-
-#define _MATH_EXTRA_H_
-
-/*
- * extra long double versions of math functions for C99 and cmath
- */
-__BEGIN_DECLS
-
-long double	acoshl(long double);
-long double	asinhl(long double);
-long double	atanhl(long double);
-long double	coshl(long double);
-long double	erfcl(long double);
-long double	erfl(long double);
-long double	expm1l(long double);
-long double	lgammal(long double);
-long double	log10l(long double);
-long double	log1pl(long double);
-long double	log2l(long double);
-long double	logl(long double);
-long double	powl(long double, long double);
-long double	sinhl(long double);
-long double	tanhl(long double);
-long double	tgammal(long double);
-
-__END_DECLS
-
-#endif /* !_DECLARE_C99_LDBL_MATH */
-#endif /* __ISO_C_VISIBLE >= 1999 */
-#endif /* !_MATH_EXTRA_H_ */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/pthread.h b/9/platforms/android-19/arch-mips64/usr/include/pthread.h
index f93f9e9..7b8de81 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/pthread.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/pthread.h
@@ -35,17 +35,26 @@
 #include <limits.h>
 #include <sys/types.h>
 
+#ifdef __LP64__
+  #define __RESERVED_INITIALIZER , {0}
+#else
+  #define __RESERVED_INITIALIZER
+#endif
+
 typedef struct {
   int volatile value;
+#ifdef __LP64__
+  char __reserved[36];
+#endif
 } pthread_mutex_t;
 
 #define  __PTHREAD_MUTEX_INIT_VALUE            0
 #define  __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE  0x4000
 #define  __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
 
-#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE}
-#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE}
-#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE}
+#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
 
 enum {
     PTHREAD_MUTEX_NORMAL = 0,
@@ -60,9 +69,12 @@
 
 typedef struct {
   int volatile value;
+#ifdef __LP64__
+  char __reserved[44];
+#endif
 } pthread_cond_t;
 
-#define PTHREAD_COND_INITIALIZER  {0}
+#define PTHREAD_COND_INITIALIZER  {0 __RESERVED_INITIALIZER}
 
 typedef struct {
   uint32_t flags;
@@ -71,21 +83,24 @@
   size_t guard_size;
   int32_t sched_policy;
   int32_t sched_priority;
+#ifdef __LP64__
+  char __reserved[16];
+#endif
 } pthread_attr_t;
 
 typedef long pthread_mutexattr_t;
 typedef long pthread_condattr_t;
 
-typedef int pthread_rwlockattr_t;
+typedef long pthread_rwlockattr_t;
 
 typedef struct {
-  pthread_mutex_t  lock;
-  pthread_cond_t   cond;
-  int              numLocks;
-  int              writerThreadId;
-  int              pendingReaders;
-  int              pendingWriters;
-  void*            reserved[4];  /* for future extensibility */
+  pthread_mutex_t lock;
+  pthread_cond_t cond;
+  int numLocks;
+  int writerThreadId;
+  int pendingReaders;
+  int pendingWriters;
+  void* __reserved[4];
 } pthread_rwlock_t;
 
 #define PTHREAD_RWLOCK_INITIALIZER  { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, { NULL, NULL, NULL, NULL } }
@@ -95,7 +110,7 @@
 
 typedef volatile int pthread_once_t;
 
-#define PTHREAD_ONCE_INIT    0
+#define PTHREAD_ONCE_INIT 0
 
 #define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
 
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sched.h b/9/platforms/android-19/arch-mips64/usr/include/sched.h
index 7649e83..68115bb 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sched.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sched.h
@@ -59,151 +59,90 @@
 extern int sched_getcpu(void);
 extern int setns(int, int);
 
-/* Our implementation supports up to 32 independent CPUs, which is also
- * the maximum supported by the kernel at the moment. GLibc uses 1024 by
- * default.
- *
- * If you want to use more than that, you should use CPU_ALLOC() / CPU_FREE()
- * and the CPU_XXX_S() macro variants.
- */
-#define CPU_SETSIZE   32
+#ifdef __LP32__
+#define CPU_SETSIZE 32
+#else
+#define CPU_SETSIZE 1024
+#endif
 
-#define __CPU_BITTYPE    unsigned long int  /* mandated by the kernel  */
-#define __CPU_BITSHIFT   5                  /* should be log2(BITTYPE) */
-#define __CPU_BITS       (1 << __CPU_BITSHIFT)
-#define __CPU_ELT(x)     ((x) >> __CPU_BITSHIFT)
-#define __CPU_MASK(x)    ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS-1)))
+#define __CPU_BITTYPE  unsigned long int  /* mandated by the kernel  */
+#define __CPU_BITS     (8 * sizeof(__CPU_BITTYPE))
+#define __CPU_ELT(x)   ((x) / __CPU_BITS)
+#define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
 typedef struct {
-    __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
+  __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
 extern int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set);
 
 extern int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set);
 
-/* Provide optimized implementation for 32-bit cpu_set_t */
-#if CPU_SETSIZE == __CPU_BITS
+#define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
 
-#  define CPU_ZERO(set_)   \
-    do{ \
-        (set_)->__bits[0] = 0; \
-    }while(0)
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
 
-#  define CPU_SET(cpu_,set_) \
-    do {\
-        size_t __cpu = (cpu_); \
-        if (__cpu < CPU_SETSIZE) \
-            (set_)->__bits[0] |= __CPU_MASK(__cpu); \
-    }while (0)
-
-#  define CPU_CLR(cpu_,set_) \
-    do {\
-        size_t __cpu = (cpu_); \
-        if (__cpu < CPU_SETSIZE) \
-            (set_)->__bits[0] &= ~__CPU_MASK(__cpu); \
-    }while (0)
-
-#  define CPU_ISSET(cpu_, set_) \
-    (__extension__({\
-        size_t  __cpu = (cpu_); \
-        (cpu_ < CPU_SETSIZE) \
-            ? ((set_)->__bits[0] & __CPU_MASK(__cpu)) != 0 \
-            : 0; \
-    }))
-
-#  define CPU_EQUAL(set1_, set2_) \
-    ((set1_)->__bits[0] == (set2_)->__bits[0])
-
-#  define __CPU_OP(dst_, set1_, set2_, op_) \
-    do { \
-        (dst_)->__bits[0] = (set1_)->__bits[0] op_ (set2_)->__bits[0]; \
-    } while (0)
-
-#  define CPU_COUNT(set_)  __builtin_popcountl((set_)->__bits[0])
-
-#else /* CPU_SETSIZE != __CPU_BITS */
-
-#  define CPU_ZERO(set_)          CPU_ZERO_S(sizeof(cpu_set_t), set_)
-#  define CPU_SET(cpu_,set_)      CPU_SET_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_CLR(cpu_,set_)      CPU_CLR_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_ISSET(cpu_,set_)    CPU_ISSET_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_COUNT(set_)         CPU_COUNT_S(sizeof(cpu_set_t),set_)
-#  define CPU_EQUAL(set1_,set2_)  CPU_EQUAL_S(sizeof(cpu_set_t),set1_,set2_)
-
-#  define __CPU_OP(dst_,set1_,set2_,op_)  __CPU_OP_S(sizeof(cpu_set_t),dst_,set1_,set2_,op_)
-
-#endif /* CPU_SETSIZE != __CPU_BITS */
-
-#define CPU_AND(set1_,set2_)   __CPU_OP(set1_,set2_,&)
-#define CPU_OR(set1_,set2_)    __CPU_OP(set1_,set2_,|)
-#define CPU_XOR(set1_,set2_)   __CPU_OP(set1_,set2_,^)
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
 
 /* Support for dynamically-allocated cpu_set_t */
 
 #define CPU_ALLOC_SIZE(count) \
-    __CPU_ELT((count) + (__CPU_BITS-1))*sizeof(__CPU_BITTYPE)
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-#define CPU_ALLOC(count)   __sched_cpualloc((count));
-#define CPU_FREE(set)      __sched_cpufree((set))
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+#define CPU_FREE(set)     __sched_cpufree((set))
 
 extern cpu_set_t* __sched_cpualloc(size_t count);
 extern void       __sched_cpufree(cpu_set_t* set);
 
-#define CPU_ZERO_S(setsize_,set_)  \
-    do { \
-        size_t __nn = 0; \
-        size_t __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) \
-            (set_)->__bits[__nn] = 0; \
-    } while (0)
+#define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
-#define CPU_SET_S(cpu_,setsize_,set_) \
-    do { \
-        size_t __cpu = (cpu_); \
-        if (__cpu < 8*(setsize_)) \
-            (set_)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
-    } while (0)
+#define CPU_SET_S(cpu, setsize, set) \
+  do { \
+    size_t __cpu = (cpu); \
+    if (__cpu < 8 * (setsize)) \
+      (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
+  } while (0)
 
-#define CPU_CLR_S(cpu_,setsize_,set_) \
-    do { \
-        size_t __cpu = (cpu_); \
-        if (__cpu < 8*(setsize_)) \
-            (set_)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
-    } while (0)
+#define CPU_CLR_S(cpu, setsize, set) \
+  do { \
+    size_t __cpu = (cpu); \
+    if (__cpu < 8 * (setsize)) \
+      (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
+  } while (0)
 
-#define CPU_ISSET_S(cpu_, setsize_, set_) \
-    (__extension__ ({ \
-        size_t __cpu = (cpu_); \
-        (__cpu < 8*(setsize_)) \
-          ? ((set_)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
-          : 0; \
-    }))
+#define CPU_ISSET_S(cpu, setsize, set) \
+  (__extension__ ({ \
+    size_t __cpu = (cpu); \
+    (__cpu < 8 * (setsize)) \
+      ? ((set)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
+      : 0; \
+  }))
 
-#define CPU_EQUAL_S(setsize_, set1_, set2_) \
-    (__extension__ ({ \
-        __const __CPU_BITTYPE* __src1 = (set1_)->__bits; \
-        __const __CPU_BITTYPE* __src2 = (set2_)->__bits; \
-        size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) { \
-            if (__src1[__nn] != __src2[__nn]) \
-                break; \
-        } \
-        __nn == __nn_max; \
-    }))
+#define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
-#define __CPU_OP_S(setsize_, dstset_, srcset1_, srcset2_, op) \
-    do { \
-        cpu_set_t* __dst = (dstset); \
-        const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
-        const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
-        size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) \
-            (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
-    } while (0)
+#define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+#define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+#define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
-#define CPU_COUNT_S(setsize_, set_) \
-    __sched_cpucount((setsize_), (set_))
+#define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
+  do { \
+    cpu_set_t* __dst = (dstset); \
+    const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
+    const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
+    size_t __nn = 0, __nn_max = (setsize)/sizeof(__CPU_BITTYPE); \
+    for (; __nn < __nn_max; __nn++) \
+      (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
+  } while (0)
+
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
 
 extern int __sched_cpucount(size_t setsize, cpu_set_t* set);
 
diff --git a/9/platforms/android-19/arch-mips64/usr/include/semaphore.h b/9/platforms/android-19/arch-mips64/usr/include/semaphore.h
index 30e3123..7ae3c3a 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/semaphore.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/semaphore.h
@@ -33,10 +33,13 @@
 __BEGIN_DECLS
 
 typedef struct {
-    volatile unsigned int  count;
+  volatile unsigned int count;
+#ifdef __LP64__
+  int __reserved[3];
+#endif
 } sem_t;
 
-#define  SEM_FAILED  NULL
+#define SEM_FAILED NULL
 
 extern int sem_init(sem_t *sem, int pshared, unsigned int value);
 
diff --git a/9/platforms/android-19/arch-mips64/usr/include/signal.h b/9/platforms/android-19/arch-mips64/usr/include/signal.h
index 267f3e6..45c1cda 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/signal.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/signal.h
@@ -60,6 +60,12 @@
 #define _NSIG (_KERNEL__NSIG + 1)
 #define NSIG _NSIG
 
+/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
+#define SIGRTMIN (__libc_current_sigrtmin())
+#define SIGRTMAX (__libc_current_sigrtmax())
+extern int __libc_current_sigrtmin(void);
+extern int __libc_current_sigrtmax(void);
+
 extern const char* const sys_siglist[];
 extern const char* const sys_signame[]; /* BSD compatibility. */
 
diff --git a/9/platforms/android-19/arch-mips64/usr/include/stdint.h b/9/platforms/android-19/arch-mips64/usr/include/stdint.h
index 1f3d003..f34843c 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/stdint.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/stdint.h
@@ -30,6 +30,7 @@
 #define _STDINT_H
 
 #include <stddef.h>
+#include <machine/wchar_limits.h>
 
 typedef __signed char __int8_t;
 typedef unsigned char __uint8_t;
@@ -86,7 +87,7 @@
 typedef int64_t       int_fast64_t;
 typedef uint64_t      uint_fast64_t;
 
-#ifdef __LP64__
+#if defined(__LP64__)
 typedef int64_t       int_fast16_t;
 typedef uint64_t      uint_fast16_t;
 typedef int64_t       int_fast32_t;
@@ -135,7 +136,7 @@
 #define INTMAX_C(c)       INT64_C(c)
 #define UINTMAX_C(c)      UINT64_C(c)
 
-#ifdef __LP64__
+#if defined(__LP64__)
 #  define INT64_C(c)      c ## L
 #  define UINT64_C(c)     c ## UL
 #  define INTPTR_C(c)     INT64_C(c)
@@ -200,15 +201,15 @@
 #define SIG_ATOMIC_MAX   INT32_MAX
 #define SIG_ATOMIC_MIN   INT32_MIN
 
-#ifndef WCHAR_MAX /* These might also have been defined by <wchar.h>. */
-#  define WCHAR_MAX      INT32_MAX
-#  define WCHAR_MIN      INT32_MIN
+#if defined(__WINT_UNSIGNED__)
+#  define WINT_MAX       UINT32_MAX
+#  define WINT_MIN       UINT32_MIN
+#else
+#  define WINT_MAX       INT32_MAX
+#  define WINT_MIN       INT32_MIN
 #endif
 
-#define WINT_MAX         INT32_MAX
-#define WINT_MIN         INT32_MIN
-
-#ifdef __LP64__
+#if defined(__LP64__)
 #  define INTPTR_MIN     INT64_MIN
 #  define INTPTR_MAX     INT64_MAX
 #  define UINTPTR_MAX    UINT64_MAX
diff --git a/9/platforms/android-19/arch-mips64/usr/include/stdlib.h b/9/platforms/android-19/arch-mips64/usr/include/stdlib.h
index 2c797c5..834dcda 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/stdlib.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/stdlib.h
@@ -46,10 +46,15 @@
 extern __noreturn void _Exit(int);
 extern int atexit(void (*)(void));
 
-extern char *getenv(const char *);
-extern int putenv(const char *);
-extern int setenv(const char *, const char *, int);
-extern int unsetenv(const char *);
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+int at_quick_exit(void (*)(void));
+void quick_exit(int) __noreturn;
+#endif
+
+extern char* getenv(const char*);
+extern int putenv(char*);
+extern int setenv(const char*, const char*, int);
+extern int unsetenv(const char*);
 extern int clearenv(void);
 
 extern char* mkdtemp(char*);
@@ -65,9 +70,10 @@
 extern int posix_memalign(void **memptr, size_t alignment, size_t size);
 
 extern double atof(const char*);
-extern double strtod(const char*, char**);
-extern float strtof(const char*, char**);
-extern long double strtold(const char*, char**);
+
+extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
 
 extern int atoi(const char*) __purefunc;
 extern long atol(const char*) __purefunc;
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h b/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h
index bb846b7..0479230 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/cdefs_elf.h
@@ -32,7 +32,7 @@
 
 #ifdef __LEADING_UNDERSCORE
 #define	_C_LABEL(x)	__CONCAT(_,x)
-#define _C_LABEL_STRING(x)	"_"x
+#define _C_LABEL_STRING(x)	"_" x
 #else
 #define	_C_LABEL(x)	x
 #define _C_LABEL_STRING(x)	x
@@ -61,24 +61,11 @@
 #define	__SECTIONSTRING(_sec, _str)					\
 	__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
 
-/* GCC visibility helper macro */
-/* This must be used to tag non-static functions that are private, i.e.
- * never exposed by the shared library. */
-#define __LIBC_HIDDEN__							\
-	__attribute__ ((visibility ("hidden")))
+/* Used to tag non-static symbols that are private and never exposed by the shared library. */
+#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden")))
 
-/* This must be used to tag non-static functions that are public, i.e.
- * exposed by the shared library, and part of the stable NDK ABI */
-#define __LIBC_ABI_PUBLIC__ \
-        __attribute__ ((visibility ("default")))
-
-/* This must be used to tag non-static functions that must be exported
- * by the shared library, but whose implementation is private to the
- * platform. For now this is equivalent to __LIBC_ABI_PUBLIC__, but we
- * may want to change this later.
- */
-#define __LIBC_ABI_PRIVATE__ \
-        __attribute__ ((visibility ("default")))
+/* Used to tag non-static symbols that are public and exposed by the shared library. */
+#define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default")))
 
 #define	__IDSTRING(_n,_s)		__SECTIONSTRING(.ident,_s)
 
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h b/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h
index c06a081..4a5a37c 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/epoll.h
@@ -67,7 +67,11 @@
 struct epoll_event {
   uint32_t events;
   epoll_data_t data;
-};
+}
+#ifdef __x86_64__
+__packed
+#endif
+;
 
 int epoll_create(int);
 int epoll_create1(int);
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/types.h b/9/platforms/android-19/arch-mips64/usr/include/sys/types.h
index dc847d2..9a76ad2 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/types.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/types.h
@@ -63,7 +63,7 @@
 typedef __kernel_key_t __key_t;
 typedef __key_t key_t;
 
-typedef uint32_t __ino_t;
+typedef __kernel_ino_t __ino_t;
 typedef __ino_t ino_t;
 
 typedef uint32_t __nlink_t;
@@ -72,9 +72,10 @@
 typedef void* __timer_t;
 typedef __timer_t timer_t;
 
-typedef int32_t __suseconds_t;
+typedef __kernel_suseconds_t __suseconds_t;
 typedef __suseconds_t suseconds_t;
 
+/* useconds_t is 32-bit on both LP32 and LP64. */
 typedef uint32_t __useconds_t;
 typedef __useconds_t useconds_t;
 
diff --git a/9/platforms/android-19/arch-mips64/usr/include/sys/user.h b/9/platforms/android-19/arch-mips64/usr/include/sys/user.h
index 5348dd8..c578a6f 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/sys/user.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/sys/user.h
@@ -36,7 +36,7 @@
 
 #if __i386__
 
-struct user_i387_struct {
+struct user_fpregs_struct {
   long cwd;
   long swd;
   long twd;
@@ -83,7 +83,7 @@
 struct user {
   struct user_regs_struct regs;
   int u_fpvalid;
-  struct user_i387_struct i387;
+  struct user_fpregs_struct i387;
   unsigned long int u_tsize;
   unsigned long int u_dsize;
   unsigned long int u_ssize;
@@ -92,7 +92,7 @@
   long int signal;
   int reserved;
   unsigned long u_ar0;
-  struct user_i387_struct* u_fpstate;
+  struct user_fpregs_struct* u_fpstate;
   unsigned long magic;
   char u_comm[32];
   int u_debugreg[8];
@@ -100,7 +100,7 @@
 
 #elif defined(__x86_64__)
 
-struct user_i387_struct {
+struct user_fpregs_struct {
   unsigned short cwd;
   unsigned short swd;
   unsigned short twd;
@@ -146,7 +146,7 @@
   struct user_regs_struct regs;
   int u_fpvalid;
   int pad0;
-  struct user_i387_struct i387;
+  struct user_fpregs_struct i387;
   unsigned long int u_tsize;
   unsigned long int u_dsize;
   unsigned long int u_ssize;
@@ -156,7 +156,7 @@
   int reserved;
   int pad1;
   unsigned long u_ar0;
-  struct user_i387_struct* u_fpstate;
+  struct user_fpregs_struct* u_fpstate;
   unsigned long magic;
   char u_comm[32];
   unsigned long u_debugreg[8];
diff --git a/9/platforms/android-19/arch-mips64/usr/include/time64.h b/9/platforms/android-19/arch-mips64/usr/include/time64.h
index 7ec05af..905669d 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/time64.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/time64.h
@@ -31,29 +31,36 @@
 #ifndef TIME64_H
 #define TIME64_H
 
+#if defined(__LP64__)
+
+#error Your time_t is already 64-bit.
+
+#else
+
+/* Legacy cruft for LP32 where time_t was 32-bit. */
+
 #include <sys/cdefs.h>
 #include <time.h>
 #include <stdint.h>
 
 __BEGIN_DECLS
 
-typedef int64_t  time64_t;
+typedef int64_t time64_t;
 
-struct tm *gmtime64_r (const time64_t *, struct tm *);
-struct tm *localtime64_r (const time64_t *, struct tm *);
-struct tm *gmtime64 (const time64_t *);
-struct tm *localtime64 (const time64_t *);
-
-char *asctime64 (const struct tm *);
-char *asctime64_r (const struct tm *, char *);
-
-char *ctime64 (const time64_t*);
-char *ctime64_r (const time64_t*, char*);
-
-time64_t timegm64 (const struct tm *);
-time64_t mktime64 (const struct tm *);
-time64_t timelocal64 (const struct tm *);
+char* asctime64(const struct tm*);
+char* asctime64_r(const struct tm*, char*);
+char* ctime64(const time64_t*);
+char* ctime64_r(const time64_t*, char*);
+struct tm* gmtime64(const time64_t*);
+struct tm* gmtime64_r(const time64_t*, struct tm*);
+struct tm* localtime64(const time64_t*);
+struct tm* localtime64_r(const time64_t*, struct tm*);
+time64_t mktime64(const struct tm*);
+time64_t timegm64(const struct tm*);
+time64_t timelocal64(const struct tm*);
 
 __END_DECLS
 
+#endif
+
 #endif /* TIME64_H */
diff --git a/9/platforms/android-19/arch-mips64/usr/include/unistd.h b/9/platforms/android-19/arch-mips64/usr/include/unistd.h
index d21f23d..6cb36d8 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/unistd.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/unistd.h
@@ -47,7 +47,8 @@
 #define SEEK_CUR 1
 #define SEEK_END 2
 
-extern char **environ;
+extern char** environ;
+
 extern __noreturn void _exit(int);
 
 extern pid_t  fork(void);
diff --git a/9/platforms/android-19/arch-mips64/usr/include/utmp.h b/9/platforms/android-19/arch-mips64/usr/include/utmp.h
index ffd3c92..d764227 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/utmp.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/utmp.h
@@ -36,9 +36,15 @@
 #define _PATH_WTMP      "/var/log/wtmp"
 #define _PATH_LASTLOG   "/var/log/lastlog"
 
-#define	UT_NAMESIZE	8
-#define	UT_LINESIZE	8
-#define	UT_HOSTSIZE	16
+#ifdef __LP64__
+#define UT_NAMESIZE 32
+#define UT_LINESIZE 32
+#define UT_HOSTSIZE 256
+#else
+#define UT_NAMESIZE 8
+#define UT_LINESIZE 8
+#define UT_HOSTSIZE 16
+#endif
 
 #define USER_PROCESS 7
 
diff --git a/9/platforms/android-19/arch-mips64/usr/include/wchar.h b/9/platforms/android-19/arch-mips64/usr/include/wchar.h
index 89c6fb6..fe2fe07 100644
--- a/9/platforms/android-19/arch-mips64/usr/include/wchar.h
+++ b/9/platforms/android-19/arch-mips64/usr/include/wchar.h
@@ -34,12 +34,20 @@
 #include <stdarg.h>
 #include <stddef.h>
 #include <time.h>
-#include <malloc.h>
+
+#include <machine/wchar_limits.h>
 
 __BEGIN_DECLS
 
-typedef __WINT_TYPE__           wint_t;
-typedef struct { int  dummy; }  mbstate_t;
+typedef __WINT_TYPE__  wint_t;
+typedef struct {
+#ifdef __LP32__
+  int dummy;
+#else
+  // 8 bytes should be enough to support at least UTF-8
+  char __reserved[8];
+#endif
+} mbstate_t;
 
 typedef enum {
     WC_TYPE_INVALID = 0,
@@ -58,11 +66,6 @@
     WC_TYPE_MAX
 } wctype_t;
 
-#ifndef WCHAR_MAX
-#define  WCHAR_MAX   INT_MAX
-#define  WCHAR_MIN   INT_MIN
-#endif
-
 #define  WEOF        ((wint_t)(-1))
 
 extern wint_t            btowc(int);
@@ -70,6 +73,7 @@
 extern int               fwscanf(FILE *, const wchar_t *, ...);
 extern int               iswalnum(wint_t);
 extern int               iswalpha(wint_t);
+extern int               iswblank(wint_t);
 extern int               iswcntrl(wint_t);
 extern int               iswdigit(wint_t);
 extern int               iswgraph(wint_t);
@@ -90,7 +94,8 @@
 extern int               mbsinit(const mbstate_t *);
 extern size_t            mbrlen(const char *, size_t, mbstate_t *);
 extern size_t            mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t            mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
 extern size_t            mbstowcs(wchar_t *, const char *, size_t);
 extern wint_t            putwc(wchar_t, FILE *);
 extern wint_t            putwchar(wchar_t);
@@ -99,9 +104,12 @@
 extern wint_t            towlower(wint_t);
 extern wint_t            towupper(wint_t);
 extern wint_t            ungetwc(wint_t, FILE *);
-extern int               vfwprintf(FILE *, const wchar_t *, va_list);
-extern int               vwprintf(const wchar_t *, va_list);
-extern int               vswprintf(wchar_t *, size_t, const wchar_t *, va_list);
+extern int vfwprintf(FILE*, const wchar_t*, va_list);
+extern int vfwscanf(FILE*, const wchar_t*, va_list);
+extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
+extern int vwprintf(const wchar_t*, va_list);
+extern int vwscanf(const wchar_t*, va_list);
 extern size_t            wcrtomb(char *, wchar_t, mbstate_t *);
 extern int               wcscasecmp(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcscat(wchar_t *, const wchar_t *);
@@ -116,16 +124,20 @@
 extern wchar_t          *wcsncat(wchar_t *, const wchar_t *, size_t);
 extern int               wcsncmp(const wchar_t *, const wchar_t *, size_t);
 extern wchar_t          *wcsncpy(wchar_t *, const wchar_t *, size_t);
+extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
 extern wchar_t          *wcspbrk(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcsrchr(const wchar_t *, wchar_t);
-extern size_t            wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
 extern size_t            wcsspn(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcsstr(const wchar_t *, const wchar_t *);
-extern double            wcstod(const wchar_t *, wchar_t **);
-extern wchar_t          *wcstok(wchar_t *, const wchar_t *, wchar_t **);
-extern long int          wcstol(const wchar_t *, wchar_t **, int);
-extern size_t            wcstombs(char *, const wchar_t *, size_t);
-extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
+extern double wcstod(const wchar_t*, wchar_t**);
+extern float wcstof(const wchar_t*, wchar_t**);
+extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+extern long wcstol(const wchar_t*, wchar_t**, int);
+extern long long wcstoll(const wchar_t*, wchar_t**, int);
+extern long double wcstold(const wchar_t*, wchar_t**);
+extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
 extern wchar_t          *wcswcs(const wchar_t *, const wchar_t *);
 extern int               wcswidth(const wchar_t *, size_t);
 extern size_t            wcsxfrm(wchar_t *, const wchar_t *, size_t);
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o
index 9beaa1e..50fae0e 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o
index db3db62..2ceaeaf 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o
index 9beaa1e..50fae0e 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtbegin_static.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o b/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o
index e0df8d0..b0f2ebe 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtend_android.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o b/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o
index 5ddfa34..df274e5 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o
+++ b/9/platforms/android-19/arch-mips64/usr/lib/crtend_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so b/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so
index c84ca24..06ec580 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so
index 5d63aeb..a1dc42e 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv1_CM.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so
index e4ee672..6abacf1 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so
index 38f7f60..412d028 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so b/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so
index e4da56c..744cc99 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so b/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so
index f6fb5f6..0a9e081 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so b/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so
index e2327b3..86c2273 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libc.a b/9/platforms/android-19/arch-mips64/usr/lib/libc.a
index 09b2558..277ae8d 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libc.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libc.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libc.so b/9/platforms/android-19/arch-mips64/usr/lib/libc.so
index 11d6438..a84fc91 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libc.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libc.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libdl.so b/9/platforms/android-19/arch-mips64/usr/lib/libdl.so
index d6240b3..b364515 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libdl.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libdl.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so b/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so
index 382f792..0e05f4d 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/liblog.so b/9/platforms/android-19/arch-mips64/usr/lib/liblog.so
index 617f50f..30af96a 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/liblog.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/liblog.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libm.a b/9/platforms/android-19/arch-mips64/usr/lib/libm.a
index ae9dc4e..e2bd16d 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libm.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libm.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libm.so b/9/platforms/android-19/arch-mips64/usr/lib/libm.so
index c5b97ea..2e8d062 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libm.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libm.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a
index 63df4a8..e1df123 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so
index 802e808..bb3fbde 100755
--- a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so
Binary files differ
diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libz.a b/9/platforms/android-19/arch-mips64/usr/lib/libz.a
index 712b818..7363542 100644
--- a/9/platforms/android-19/arch-mips64/usr/lib/libz.a
+++ b/9/platforms/android-19/arch-mips64/usr/lib/libz.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/android/dlext.h b/9/platforms/android-19/arch-x86_64/usr/include/android/dlext.h
new file mode 100644
index 0000000..90962fa
--- /dev/null
+++ b/9/platforms/android-19/arch-x86_64/usr/include/android/dlext.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ANDROID_DLEXT_H__
+#define __ANDROID_DLEXT_H__
+
+#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+/* bitfield definitions for android_dlextinfo.flags */
+enum {
+  /* When set, the reserved_addr and reserved_size fields must point to an
+   * already-reserved region of address space which will be used to load the
+   * library if it fits. If the reserved region is not large enough, the load
+   * will fail.
+   */
+  ANDROID_DLEXT_RESERVED_ADDRESS      = 0x1,
+
+  /* As DLEXT_RESERVED_ADDRESS, but if the reserved region is not large enough,
+   * the linker will choose an available address instead.
+   */
+  ANDROID_DLEXT_RESERVED_ADDRESS_HINT = 0x2,
+
+  /* When set, write the GNU RELRO section of the mapped library to relro_fd
+   * after relocation has been performed, to allow it to be reused by another
+   * process loading the same library at the same address. This implies
+   * ANDROID_DLEXT_USE_RELRO.
+   */
+  ANDROID_DLEXT_WRITE_RELRO           = 0x4,
+
+  /* When set, compare the GNU RELRO section of the mapped library to relro_fd
+   * after relocation has been performed, and replace any relocated pages that
+   * are identical with a version mapped from the file.
+   */
+  ANDROID_DLEXT_USE_RELRO             = 0x8,
+
+  /* Mask of valid bits */
+  ANDROID_DLEXT_VALID_FLAG_BITS       = ANDROID_DLEXT_RESERVED_ADDRESS |
+                                        ANDROID_DLEXT_RESERVED_ADDRESS_HINT |
+                                        ANDROID_DLEXT_WRITE_RELRO |
+                                        ANDROID_DLEXT_USE_RELRO,
+};
+
+typedef struct {
+  int     flags;
+  void*   reserved_addr;
+  size_t  reserved_size;
+  int     relro_fd;
+} android_dlextinfo;
+
+extern void* android_dlopen_ext(const char* filename, int flag, const android_dlextinfo* extinfo);
+
+__END_DECLS
+
+#endif /* __ANDROID_DLEXT_H__ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h b/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h
index fe7d9a0..e103240 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/asm-generic/signal.h
@@ -66,9 +66,9 @@
 #define SIGSYS 31
 #define SIGUNUSED 31
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#ifndef SIGRTMAX
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#ifndef __SIGRTMAX
+#define __SIGRTMAX _KERNEL__NSIG
 #endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SA_NOCLDSTOP 0x00000001
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h b/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h
index 6f5b435..308c7a9 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/asm/signal.h
@@ -71,8 +71,8 @@
 #define SIGSYS 31
 #define SIGUNUSED 31
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
-#define SIGRTMIN 32
-#define SIGRTMAX _KERNEL__NSIG
+#define __SIGRTMIN 32
+#define __SIGRTMAX _KERNEL__NSIG
 #define SA_NOCLDSTOP 0x00000001u
 #define SA_NOCLDWAIT 0x00000002u
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/ctype.h b/9/platforms/android-19/arch-x86_64/usr/include/ctype.h
index 5557e31..7edd8cc 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/ctype.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/ctype.h
@@ -44,12 +44,16 @@
 
 #define	_CTYPE_U	0x01
 #define	_CTYPE_L	0x02
-#define	_CTYPE_N	0x04
+#define	_CTYPE_D	0x04
 #define	_CTYPE_S	0x08
 #define	_CTYPE_P	0x10
 #define	_CTYPE_C	0x20
 #define	_CTYPE_X	0x40
 #define	_CTYPE_B	0x80
+#define	_CTYPE_R	(_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_D|_CTYPE_B)
+#define	_CTYPE_A	(_CTYPE_L|_CTYPE_U)
+
+#define _CTYPE_N    _CTYPE_D
 
 __BEGIN_DECLS
 
@@ -57,17 +61,6 @@
 extern const short	*_tolower_tab_;
 extern const short	*_toupper_tab_;
 
-/* extern __inline is a GNU C extension */
-#ifdef __GNUC__
-#  if defined(__GNUC_STDC_INLINE__)
-#define	__CTYPE_INLINE	extern __inline __attribute__((__gnu_inline__))
-#  else
-#define	__CTYPE_INLINE	extern __inline
-#  endif
-#else
-#define	__CTYPE_INLINE	static __inline
-#endif
-
 #if defined(__GNUC__) || defined(_ANSI_LIBRARY) || defined(lint)
 int	isalnum(int);
 int	isalpha(int);
@@ -97,111 +90,6 @@
 
 #endif /* __GNUC__ || _ANSI_LIBRARY || lint */
 
-#if defined(NDEBUG)
-
-__CTYPE_INLINE int isalnum(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int isalpha(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_U|_CTYPE_L)));
-}
-
-__CTYPE_INLINE int iscntrl(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_C));
-}
-
-__CTYPE_INLINE int isdigit(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_N));
-}
-
-__CTYPE_INLINE int isgraph(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N)));
-}
-
-__CTYPE_INLINE int islower(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_L));
-}
-
-__CTYPE_INLINE int isprint(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_P|_CTYPE_U|_CTYPE_L|_CTYPE_N|_CTYPE_B)));
-}
-
-__CTYPE_INLINE int ispunct(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_P));
-}
-
-__CTYPE_INLINE int isspace(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_S));
-}
-
-__CTYPE_INLINE int isupper(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & _CTYPE_U));
-}
-
-__CTYPE_INLINE int isxdigit(int c)
-{
-	return (c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)c] & (_CTYPE_N|_CTYPE_X)));
-}
-
-__CTYPE_INLINE int tolower(int c)
-{
-	if ((unsigned int)c > 255)
-		return (c);
-	return ((_tolower_tab_ + 1)[c]);
-}
-
-__CTYPE_INLINE int toupper(int c)
-{
-	if ((unsigned int)c > 255)
-		return (c);
-	return ((_toupper_tab_ + 1)[c]);
-}
-
-#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999 || __POSIX_VISIBLE > 200112 \
-    || __XPG_VISIBLE > 600
-__CTYPE_INLINE int isblank(int c)
-{
-	return (c == ' ' || c == '\t');
-}
-#endif
-
-#if __BSD_VISIBLE || __XPG_VISIBLE
-__CTYPE_INLINE int isascii(int c)
-{
-	return ((unsigned int)c <= 0177);
-}
-
-__CTYPE_INLINE int toascii(int c)
-{
-	return (c & 0177);
-}
-
-__CTYPE_INLINE int _tolower(int c)
-{
-	return (c - 'A' + 'a');
-}
-
-__CTYPE_INLINE int _toupper(int c)
-{
-	return (c - 'a' + 'A');
-}
-#endif /* __BSD_VISIBLE || __XPG_VISIBLE */
-
-#endif /* NDEBUG */
-
 __END_DECLS
 
-#undef __CTYPE_INLINE
-
 #endif /* !_CTYPE_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h b/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h
index 2fd2415..8853c08 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/inttypes.h
@@ -254,16 +254,14 @@
 } imaxdiv_t;
 
 __BEGIN_DECLS
-
 intmax_t	imaxabs(intmax_t) __pure2;
 imaxdiv_t	imaxdiv(intmax_t, intmax_t) __pure2;
-
 intmax_t	strtoimax(const char *, char **, int);
 uintmax_t	strtoumax(const char *, char **, int);
-
-intmax_t	strntoimax(const char *nptr, char **endptr, int base, size_t n);
-uintmax_t	strntoumax(const char *nptr, char **endptr, int base, size_t n);
-
+intmax_t	wcstoimax(const wchar_t * __restrict,
+		    wchar_t ** __restrict, int);
+uintmax_t	wcstoumax(const wchar_t * __restrict,
+		    wchar_t ** __restrict, int);
 __END_DECLS
 
 #endif /* _INTTYPES_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/limits.h b/9/platforms/android-19/arch-x86_64/usr/include/limits.h
index a70021a..dc45902 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/limits.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/limits.h
@@ -112,7 +112,7 @@
 
 #define SSIZE_MAX LONG_MAX
 
-#define MB_LEN_MAX 1 /* No multibyte characters. */
+#define MB_LEN_MAX 6
 
 /* New code should use sysconf(_SC_PAGE_SIZE) instead. */
 #ifndef PAGE_SIZE
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h b/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h
index 87c7e2f..baa597e 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/linux/prctl.h
@@ -117,7 +117,8 @@
 #define PR_GET_NO_NEW_PRIVS 39
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PR_GET_TID_ADDRESS 40
+#define PR_SET_TIMERSLACK_PID 41
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
-#endif
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/locale.h b/9/platforms/android-19/arch-x86_64/usr/include/locale.h
index 6989851..7fd8c2c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/locale.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/locale.h
@@ -33,21 +33,19 @@
 
 __BEGIN_DECLS
 
-enum {
-    LC_CTYPE     = 0,
-    LC_NUMERIC   = 1,
-    LC_TIME      = 2,
-    LC_COLLATE   = 3,
-    LC_MONETARY  = 4,
-    LC_MESSAGES  = 5,
-    LC_ALL       = 6,
-    LC_PAPER     = 7,
-    LC_NAME      = 8,
-    LC_ADDRESS   = 9,
-    LC_TELEPHONE      = 10,
-    LC_MEASUREMENT    = 11,
-    LC_IDENTIFICATION = 12
-};
+#define LC_CTYPE           0
+#define LC_NUMERIC         1
+#define LC_TIME            2
+#define LC_COLLATE         3
+#define LC_MONETARY        4
+#define LC_MESSAGES        5
+#define LC_ALL             6
+#define LC_PAPER           7
+#define LC_NAME            8
+#define LC_ADDRESS         9
+#define LC_TELEPHONE      10
+#define LC_MEASUREMENT    11
+#define LC_IDENTIFICATION 12
 
 #define LC_CTYPE_MASK          (1 << LC_CTYPE)
 #define LC_NUMERIC_MASK        (1 << LC_NUMERIC)
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h b/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h
index 74856b2..c579969 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/machine/ieee.h
@@ -1,5 +1,5 @@
-/*	$OpenBSD: ieee.h,v 1.2 2008/09/07 20:36:06 martynas Exp $ */
-/*	$NetBSD: ieee.h,v 1.1 1996/09/30 16:34:25 ws Exp $ */
+/*	$OpenBSD: ieee.h,v 1.4 2011/11/08 17:06:51 deraadt Exp $	*/
+/*	$NetBSD: ieee.h,v 1.2 2001/02/21 17:43:50 bjh21 Exp $	*/
 
 /*
  * Copyright (c) 1992, 1993
@@ -22,7 +22,11 @@
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
@@ -41,102 +45,74 @@
  *	@(#)ieee.h	8.1 (Berkeley) 6/11/93
  */
 
-/*
- * ieee.h defines the machine-dependent layout of the machine's IEEE
- * floating point.  It does *not* define (yet?) any of the rounding
- * mode bits, exceptions, and so forth.
- */
+#ifndef _MACHINE_IEEE_H_
+#define _MACHINE_IEEE_H_
 
-/*
- * Define the number of bits in each fraction and exponent.
- *
- *		     k	         k+1
- * Note that  1.0 x 2  == 0.1 x 2      and that denorms are represented
- *
- *					  (-exp_bias+1)
- * as fractions that look like 0.fffff x 2             .  This means that
- *
- *			 -126
- * the number 0.10000 x 2    , for instance, is the same as the normalized
- *
- *		-127			   -128
- * float 1.0 x 2    .  Thus, to represent 2    , we need one leading zero
- *
- *				  -129
- * in the fraction; to represent 2    , we need two, and so on.  This
- *
- *						     (-exp_bias-fracbits+1)
- * implies that the smallest denormalized number is 2
- *
- * for whichever format we are talking about: for single precision, for
- *
- *						-126		-149
- * instance, we get .00000000000000000000001 x 2    , or 1.0 x 2    , and
- *
- * -149 == -127 - 23 + 1.
- */
-#define	SNG_EXPBITS	8
-#define	SNG_FRACBITS	23
+#include <sys/types.h>
 
-#define	DBL_EXPBITS	11
-#define	DBL_FRACHBITS	20
-#define	DBL_FRACLBITS	32
-#define	DBL_FRACBITS	52
+__BEGIN_DECLS
 
-#define	EXT_EXPBITS	15
-#define	EXT_FRACHBITS	32
-#define	EXT_FRACLBITS	32
-#define	EXT_FRACBITS	64
+#define SNG_EXPBITS	8
+#define SNG_FRACBITS	23
 
-#define	EXT_TO_ARRAY32(p, a) do {		\
-	(a)[0] = (uint32_t)(p)->ext_fracl;	\
-	(a)[1] = (uint32_t)(p)->ext_frach;	\
-} while(0)
+#define SNG_EXP_INFNAN	255
+#define SNG_EXP_BIAS	127
 
 struct ieee_single {
-	u_int	sng_frac:23;
-	u_int	sng_exp:8;
-	u_int	sng_sign:1;
+  unsigned sng_frac:23;
+  unsigned sng_exp:8;
+  unsigned sng_sign:1;
 };
 
+#define DBL_EXPBITS	11
+#define DBL_FRACHBITS	20
+#define DBL_FRACLBITS	32
+#define DBL_FRACBITS	52
+
+#define DBL_EXP_INFNAN	2047
+#define DBL_EXP_BIAS	1023
+
 struct ieee_double {
-	u_int	dbl_fracl;
-	u_int	dbl_frach:20;
-	u_int	dbl_exp:11;
-	u_int	dbl_sign:1;
+  unsigned dbl_fracl;
+  unsigned dbl_frach:20;
+  unsigned dbl_exp:11;
+  unsigned dbl_sign:1;
 };
 
+#if __LP64__
+
+/* 64-bit Android uses ld128 long doubles. */
+
+#define EXT_EXPBITS	15
+#define EXT_FRACHBITS	16
+#define EXT_FRACHMBITS	32
+#define EXT_FRACLMBITS	32
+#define EXT_FRACLBITS	32
+#define EXT_FRACBITS	112
+
+#define EXT_EXP_INFNAN	32767
+#define EXT_EXP_BIAS	16383
+
+#define EXT_IMPLICIT_NBIT
+
+#define EXT_TO_ARRAY32(p, a) do { \
+  (a)[0] = (uint32_t)(p)->ext_fracl; \
+  (a)[1] = (uint32_t)(p)->ext_fraclm; \
+  (a)[2] = (uint32_t)(p)->ext_frachm; \
+  (a)[3] = (uint32_t)(p)->ext_frach; \
+} while(0)
+
 struct ieee_ext {
-	u_int	ext_fracl;
-	u_int	ext_frach;
-	u_int	ext_exp:15;
-	u_int	ext_sign:1;
-	u_int	ext_padl:16;
-	u_int	ext_padh;
+  unsigned ext_fracl;
+  unsigned ext_fraclm;
+  unsigned ext_frachm;
+  unsigned ext_frach:16;
+  unsigned ext_exp:15;
+  unsigned ext_sign:1;
 };
 
-/*
- * Floats whose exponent is in [1..INFNAN) (of whatever type) are
- * `normal'.  Floats whose exponent is INFNAN are either Inf or NaN.
- * Floats whose exponent is zero are either zero (iff all fraction
- * bits are zero) or subnormal values.
- *
- * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
- * high fraction; if the bit is set, it is a `quiet NaN'.
- */
-#define	SNG_EXP_INFNAN	255
-#define	DBL_EXP_INFNAN	2047
-#define	EXT_EXP_INFNAN	32767
-
-#if 0
-#define	SNG_QUIETNAN	(1 << 22)
-#define	DBL_QUIETNAN	(1 << 19)
-#define	EXT_QUIETNAN	(1 << 15)
 #endif
 
-/*
- * Exponent biases.
- */
-#define	SNG_EXP_BIAS	127
-#define	DBL_EXP_BIAS	1023
-#define	EXT_EXP_BIAS	16383
+__END_DECLS
+
+#endif /* _MACHINE_IEEE_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/machine/wchar_limits.h b/9/platforms/android-19/arch-x86_64/usr/include/machine/wchar_limits.h
new file mode 100644
index 0000000..94cbd7e
--- /dev/null
+++ b/9/platforms/android-19/arch-x86_64/usr/include/machine/wchar_limits.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _MACHINE_WCHAR_LIMITS_H_
+#define _MACHINE_WCHAR_LIMITS_H_
+
+/* Both GCC and clang define __WCHAR_MAX__. */
+#define WCHAR_MAX __WCHAR_MAX__
+
+/* As of 3.4, clang still doesn't define __WCHAR_MIN__. */
+#if defined(__WCHAR_UNSIGNED__)
+#  define WCHAR_MIN L'\0'
+#else
+#  define WCHAR_MIN (-(WCHAR_MAX) - 1)
+#endif
+
+#endif /* _MACHINE_WCHAR_LIMITS_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/math.h b/9/platforms/android-19/arch-x86_64/usr/include/math.h
index bd0241b..c264583 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/math.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/math.h
@@ -396,16 +396,23 @@
  * long double versions of ISO/POSIX math functions
  */
 #if __ISO_C_VISIBLE >= 1999
+long double	acoshl(long double);
 long double	acosl(long double);
+long double	asinhl(long double);
 long double	asinl(long double);
 long double	atan2l(long double, long double);
+long double	atanhl(long double);
 long double	atanl(long double);
 long double	cbrtl(long double);
 long double	ceill(long double);
 long double	copysignl(long double, long double) __pure2;
+long double	coshl(long double);
 long double	cosl(long double);
+long double	erfcl(long double);
+long double	erfl(long double);
 long double	exp2l(long double);
 long double	expl(long double);
+long double	expm1l(long double);
 long double	fabsl(long double) __pure2;
 long double	fdiml(long double, long double);
 long double	floorl(long double);
@@ -417,9 +424,14 @@
 long double	hypotl(long double, long double);
 int		ilogbl(long double) __pure2;
 long double	ldexpl(long double, int);
+long double	lgammal(long double);
 long long	llrintl(long double);
 long long	llroundl(long double);
+long double	log10l(long double);
+long double	log1pl(long double);
+long double	log2l(long double);
 long double	logbl(long double);
+long double	logl(long double);
 long		lrintl(long double);
 long		lroundl(long double);
 long double	modfl(long double, long double *); /* fundamentally !__pure2 */
@@ -429,53 +441,29 @@
 double		nexttoward(double, long double);
 float		nexttowardf(float, long double);
 long double	nexttowardl(long double, long double);
+long double	powl(long double, long double);
 long double	remainderl(long double, long double);
 long double	remquol(long double, long double, int *);
 long double	rintl(long double);
 long double	roundl(long double);
 long double	scalblnl(long double, long);
 long double	scalbnl(long double, int);
+long double	sinhl(long double);
 long double	sinl(long double);
 long double	sqrtl(long double);
+long double	tanhl(long double);
 long double	tanl(long double);
+long double	tgammal(long double);
 long double	truncl(long double);
 
 #endif /* __ISO_C_VISIBLE >= 1999 */
+
+#if defined(_GNU_SOURCE)
+void sincos(double, double*, double*);
+void sincosf(float, float*, float*);
+void sincosl(long double, long double*, long double*);
+#endif /* _GNU_SOURCE */
+
 __END_DECLS
 
 #endif /* !_MATH_H_ */
-
-/* separate header for cmath */
-#ifndef _MATH_EXTRA_H_
-#if __ISO_C_VISIBLE >= 1999
-#if _DECLARE_C99_LDBL_MATH
-
-#define _MATH_EXTRA_H_
-
-/*
- * extra long double versions of math functions for C99 and cmath
- */
-__BEGIN_DECLS
-
-long double	acoshl(long double);
-long double	asinhl(long double);
-long double	atanhl(long double);
-long double	coshl(long double);
-long double	erfcl(long double);
-long double	erfl(long double);
-long double	expm1l(long double);
-long double	lgammal(long double);
-long double	log10l(long double);
-long double	log1pl(long double);
-long double	log2l(long double);
-long double	logl(long double);
-long double	powl(long double, long double);
-long double	sinhl(long double);
-long double	tanhl(long double);
-long double	tgammal(long double);
-
-__END_DECLS
-
-#endif /* !_DECLARE_C99_LDBL_MATH */
-#endif /* __ISO_C_VISIBLE >= 1999 */
-#endif /* !_MATH_EXTRA_H_ */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/pthread.h b/9/platforms/android-19/arch-x86_64/usr/include/pthread.h
index f93f9e9..7b8de81 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/pthread.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/pthread.h
@@ -35,17 +35,26 @@
 #include <limits.h>
 #include <sys/types.h>
 
+#ifdef __LP64__
+  #define __RESERVED_INITIALIZER , {0}
+#else
+  #define __RESERVED_INITIALIZER
+#endif
+
 typedef struct {
   int volatile value;
+#ifdef __LP64__
+  char __reserved[36];
+#endif
 } pthread_mutex_t;
 
 #define  __PTHREAD_MUTEX_INIT_VALUE            0
 #define  __PTHREAD_RECURSIVE_MUTEX_INIT_VALUE  0x4000
 #define  __PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE 0x8000
 
-#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE}
-#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE}
-#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE}
+#define  PTHREAD_MUTEX_INITIALIZER             {__PTHREAD_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_RECURSIVE_MUTEX_INITIALIZER   {__PTHREAD_RECURSIVE_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
+#define  PTHREAD_ERRORCHECK_MUTEX_INITIALIZER  {__PTHREAD_ERRORCHECK_MUTEX_INIT_VALUE __RESERVED_INITIALIZER}
 
 enum {
     PTHREAD_MUTEX_NORMAL = 0,
@@ -60,9 +69,12 @@
 
 typedef struct {
   int volatile value;
+#ifdef __LP64__
+  char __reserved[44];
+#endif
 } pthread_cond_t;
 
-#define PTHREAD_COND_INITIALIZER  {0}
+#define PTHREAD_COND_INITIALIZER  {0 __RESERVED_INITIALIZER}
 
 typedef struct {
   uint32_t flags;
@@ -71,21 +83,24 @@
   size_t guard_size;
   int32_t sched_policy;
   int32_t sched_priority;
+#ifdef __LP64__
+  char __reserved[16];
+#endif
 } pthread_attr_t;
 
 typedef long pthread_mutexattr_t;
 typedef long pthread_condattr_t;
 
-typedef int pthread_rwlockattr_t;
+typedef long pthread_rwlockattr_t;
 
 typedef struct {
-  pthread_mutex_t  lock;
-  pthread_cond_t   cond;
-  int              numLocks;
-  int              writerThreadId;
-  int              pendingReaders;
-  int              pendingWriters;
-  void*            reserved[4];  /* for future extensibility */
+  pthread_mutex_t lock;
+  pthread_cond_t cond;
+  int numLocks;
+  int writerThreadId;
+  int pendingReaders;
+  int pendingWriters;
+  void* __reserved[4];
 } pthread_rwlock_t;
 
 #define PTHREAD_RWLOCK_INITIALIZER  { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0, 0, 0, { NULL, NULL, NULL, NULL } }
@@ -95,7 +110,7 @@
 
 typedef volatile int pthread_once_t;
 
-#define PTHREAD_ONCE_INIT    0
+#define PTHREAD_ONCE_INIT 0
 
 #define PTHREAD_STACK_MIN (2 * PAGE_SIZE)
 
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sched.h b/9/platforms/android-19/arch-x86_64/usr/include/sched.h
index 7649e83..68115bb 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sched.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sched.h
@@ -59,151 +59,90 @@
 extern int sched_getcpu(void);
 extern int setns(int, int);
 
-/* Our implementation supports up to 32 independent CPUs, which is also
- * the maximum supported by the kernel at the moment. GLibc uses 1024 by
- * default.
- *
- * If you want to use more than that, you should use CPU_ALLOC() / CPU_FREE()
- * and the CPU_XXX_S() macro variants.
- */
-#define CPU_SETSIZE   32
+#ifdef __LP32__
+#define CPU_SETSIZE 32
+#else
+#define CPU_SETSIZE 1024
+#endif
 
-#define __CPU_BITTYPE    unsigned long int  /* mandated by the kernel  */
-#define __CPU_BITSHIFT   5                  /* should be log2(BITTYPE) */
-#define __CPU_BITS       (1 << __CPU_BITSHIFT)
-#define __CPU_ELT(x)     ((x) >> __CPU_BITSHIFT)
-#define __CPU_MASK(x)    ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS-1)))
+#define __CPU_BITTYPE  unsigned long int  /* mandated by the kernel  */
+#define __CPU_BITS     (8 * sizeof(__CPU_BITTYPE))
+#define __CPU_ELT(x)   ((x) / __CPU_BITS)
+#define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
 typedef struct {
-    __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
+  __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
 extern int sched_setaffinity(pid_t pid, size_t setsize, const cpu_set_t* set);
 
 extern int sched_getaffinity(pid_t pid, size_t setsize, cpu_set_t* set);
 
-/* Provide optimized implementation for 32-bit cpu_set_t */
-#if CPU_SETSIZE == __CPU_BITS
+#define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
 
-#  define CPU_ZERO(set_)   \
-    do{ \
-        (set_)->__bits[0] = 0; \
-    }while(0)
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
 
-#  define CPU_SET(cpu_,set_) \
-    do {\
-        size_t __cpu = (cpu_); \
-        if (__cpu < CPU_SETSIZE) \
-            (set_)->__bits[0] |= __CPU_MASK(__cpu); \
-    }while (0)
-
-#  define CPU_CLR(cpu_,set_) \
-    do {\
-        size_t __cpu = (cpu_); \
-        if (__cpu < CPU_SETSIZE) \
-            (set_)->__bits[0] &= ~__CPU_MASK(__cpu); \
-    }while (0)
-
-#  define CPU_ISSET(cpu_, set_) \
-    (__extension__({\
-        size_t  __cpu = (cpu_); \
-        (cpu_ < CPU_SETSIZE) \
-            ? ((set_)->__bits[0] & __CPU_MASK(__cpu)) != 0 \
-            : 0; \
-    }))
-
-#  define CPU_EQUAL(set1_, set2_) \
-    ((set1_)->__bits[0] == (set2_)->__bits[0])
-
-#  define __CPU_OP(dst_, set1_, set2_, op_) \
-    do { \
-        (dst_)->__bits[0] = (set1_)->__bits[0] op_ (set2_)->__bits[0]; \
-    } while (0)
-
-#  define CPU_COUNT(set_)  __builtin_popcountl((set_)->__bits[0])
-
-#else /* CPU_SETSIZE != __CPU_BITS */
-
-#  define CPU_ZERO(set_)          CPU_ZERO_S(sizeof(cpu_set_t), set_)
-#  define CPU_SET(cpu_,set_)      CPU_SET_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_CLR(cpu_,set_)      CPU_CLR_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_ISSET(cpu_,set_)    CPU_ISSET_S(cpu_,sizeof(cpu_set_t),set_)
-#  define CPU_COUNT(set_)         CPU_COUNT_S(sizeof(cpu_set_t),set_)
-#  define CPU_EQUAL(set1_,set2_)  CPU_EQUAL_S(sizeof(cpu_set_t),set1_,set2_)
-
-#  define __CPU_OP(dst_,set1_,set2_,op_)  __CPU_OP_S(sizeof(cpu_set_t),dst_,set1_,set2_,op_)
-
-#endif /* CPU_SETSIZE != __CPU_BITS */
-
-#define CPU_AND(set1_,set2_)   __CPU_OP(set1_,set2_,&)
-#define CPU_OR(set1_,set2_)    __CPU_OP(set1_,set2_,|)
-#define CPU_XOR(set1_,set2_)   __CPU_OP(set1_,set2_,^)
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
 
 /* Support for dynamically-allocated cpu_set_t */
 
 #define CPU_ALLOC_SIZE(count) \
-    __CPU_ELT((count) + (__CPU_BITS-1))*sizeof(__CPU_BITTYPE)
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-#define CPU_ALLOC(count)   __sched_cpualloc((count));
-#define CPU_FREE(set)      __sched_cpufree((set))
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+#define CPU_FREE(set)     __sched_cpufree((set))
 
 extern cpu_set_t* __sched_cpualloc(size_t count);
 extern void       __sched_cpufree(cpu_set_t* set);
 
-#define CPU_ZERO_S(setsize_,set_)  \
-    do { \
-        size_t __nn = 0; \
-        size_t __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) \
-            (set_)->__bits[__nn] = 0; \
-    } while (0)
+#define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
-#define CPU_SET_S(cpu_,setsize_,set_) \
-    do { \
-        size_t __cpu = (cpu_); \
-        if (__cpu < 8*(setsize_)) \
-            (set_)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
-    } while (0)
+#define CPU_SET_S(cpu, setsize, set) \
+  do { \
+    size_t __cpu = (cpu); \
+    if (__cpu < 8 * (setsize)) \
+      (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
+  } while (0)
 
-#define CPU_CLR_S(cpu_,setsize_,set_) \
-    do { \
-        size_t __cpu = (cpu_); \
-        if (__cpu < 8*(setsize_)) \
-            (set_)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
-    } while (0)
+#define CPU_CLR_S(cpu, setsize, set) \
+  do { \
+    size_t __cpu = (cpu); \
+    if (__cpu < 8 * (setsize)) \
+      (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
+  } while (0)
 
-#define CPU_ISSET_S(cpu_, setsize_, set_) \
-    (__extension__ ({ \
-        size_t __cpu = (cpu_); \
-        (__cpu < 8*(setsize_)) \
-          ? ((set_)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
-          : 0; \
-    }))
+#define CPU_ISSET_S(cpu, setsize, set) \
+  (__extension__ ({ \
+    size_t __cpu = (cpu); \
+    (__cpu < 8 * (setsize)) \
+      ? ((set)->__bits[__CPU_ELT(__cpu)] & __CPU_MASK(__cpu)) != 0 \
+      : 0; \
+  }))
 
-#define CPU_EQUAL_S(setsize_, set1_, set2_) \
-    (__extension__ ({ \
-        __const __CPU_BITTYPE* __src1 = (set1_)->__bits; \
-        __const __CPU_BITTYPE* __src2 = (set2_)->__bits; \
-        size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) { \
-            if (__src1[__nn] != __src2[__nn]) \
-                break; \
-        } \
-        __nn == __nn_max; \
-    }))
+#define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
-#define __CPU_OP_S(setsize_, dstset_, srcset1_, srcset2_, op) \
-    do { \
-        cpu_set_t* __dst = (dstset); \
-        const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
-        const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
-        size_t __nn = 0, __nn_max = (setsize_)/sizeof(__CPU_BITTYPE); \
-        for (; __nn < __nn_max; __nn++) \
-            (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
-    } while (0)
+#define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+#define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+#define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
-#define CPU_COUNT_S(setsize_, set_) \
-    __sched_cpucount((setsize_), (set_))
+#define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
+  do { \
+    cpu_set_t* __dst = (dstset); \
+    const __CPU_BITTYPE* __src1 = (srcset1)->__bits; \
+    const __CPU_BITTYPE* __src2 = (srcset2)->__bits; \
+    size_t __nn = 0, __nn_max = (setsize)/sizeof(__CPU_BITTYPE); \
+    for (; __nn < __nn_max; __nn++) \
+      (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
+  } while (0)
+
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
 
 extern int __sched_cpucount(size_t setsize, cpu_set_t* set);
 
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h b/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h
index 30e3123..7ae3c3a 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/semaphore.h
@@ -33,10 +33,13 @@
 __BEGIN_DECLS
 
 typedef struct {
-    volatile unsigned int  count;
+  volatile unsigned int count;
+#ifdef __LP64__
+  int __reserved[3];
+#endif
 } sem_t;
 
-#define  SEM_FAILED  NULL
+#define SEM_FAILED NULL
 
 extern int sem_init(sem_t *sem, int pshared, unsigned int value);
 
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/signal.h b/9/platforms/android-19/arch-x86_64/usr/include/signal.h
index 267f3e6..45c1cda 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/signal.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/signal.h
@@ -60,6 +60,12 @@
 #define _NSIG (_KERNEL__NSIG + 1)
 #define NSIG _NSIG
 
+/* We take a few real-time signals for ourselves. May as well use the same names as glibc. */
+#define SIGRTMIN (__libc_current_sigrtmin())
+#define SIGRTMAX (__libc_current_sigrtmax())
+extern int __libc_current_sigrtmin(void);
+extern int __libc_current_sigrtmax(void);
+
 extern const char* const sys_siglist[];
 extern const char* const sys_signame[]; /* BSD compatibility. */
 
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/stdint.h b/9/platforms/android-19/arch-x86_64/usr/include/stdint.h
index 1f3d003..f34843c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/stdint.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/stdint.h
@@ -30,6 +30,7 @@
 #define _STDINT_H
 
 #include <stddef.h>
+#include <machine/wchar_limits.h>
 
 typedef __signed char __int8_t;
 typedef unsigned char __uint8_t;
@@ -86,7 +87,7 @@
 typedef int64_t       int_fast64_t;
 typedef uint64_t      uint_fast64_t;
 
-#ifdef __LP64__
+#if defined(__LP64__)
 typedef int64_t       int_fast16_t;
 typedef uint64_t      uint_fast16_t;
 typedef int64_t       int_fast32_t;
@@ -135,7 +136,7 @@
 #define INTMAX_C(c)       INT64_C(c)
 #define UINTMAX_C(c)      UINT64_C(c)
 
-#ifdef __LP64__
+#if defined(__LP64__)
 #  define INT64_C(c)      c ## L
 #  define UINT64_C(c)     c ## UL
 #  define INTPTR_C(c)     INT64_C(c)
@@ -200,15 +201,15 @@
 #define SIG_ATOMIC_MAX   INT32_MAX
 #define SIG_ATOMIC_MIN   INT32_MIN
 
-#ifndef WCHAR_MAX /* These might also have been defined by <wchar.h>. */
-#  define WCHAR_MAX      INT32_MAX
-#  define WCHAR_MIN      INT32_MIN
+#if defined(__WINT_UNSIGNED__)
+#  define WINT_MAX       UINT32_MAX
+#  define WINT_MIN       UINT32_MIN
+#else
+#  define WINT_MAX       INT32_MAX
+#  define WINT_MIN       INT32_MIN
 #endif
 
-#define WINT_MAX         INT32_MAX
-#define WINT_MIN         INT32_MIN
-
-#ifdef __LP64__
+#if defined(__LP64__)
 #  define INTPTR_MIN     INT64_MIN
 #  define INTPTR_MAX     INT64_MAX
 #  define UINTPTR_MAX    UINT64_MAX
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h b/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h
index 2c797c5..834dcda 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/stdlib.h
@@ -46,10 +46,15 @@
 extern __noreturn void _Exit(int);
 extern int atexit(void (*)(void));
 
-extern char *getenv(const char *);
-extern int putenv(const char *);
-extern int setenv(const char *, const char *, int);
-extern int unsetenv(const char *);
+#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L
+int at_quick_exit(void (*)(void));
+void quick_exit(int) __noreturn;
+#endif
+
+extern char* getenv(const char*);
+extern int putenv(char*);
+extern int setenv(const char*, const char*, int);
+extern int unsetenv(const char*);
 extern int clearenv(void);
 
 extern char* mkdtemp(char*);
@@ -65,9 +70,10 @@
 extern int posix_memalign(void **memptr, size_t alignment, size_t size);
 
 extern double atof(const char*);
-extern double strtod(const char*, char**);
-extern float strtof(const char*, char**);
-extern long double strtold(const char*, char**);
+
+extern double strtod(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern float strtof(const char*, char**) __LIBC_ABI_PUBLIC__;
+extern long double strtold(const char*, char**) __LIBC_ABI_PUBLIC__;
 
 extern int atoi(const char*) __purefunc;
 extern long atol(const char*) __purefunc;
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h
index bb846b7..0479230 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/cdefs_elf.h
@@ -32,7 +32,7 @@
 
 #ifdef __LEADING_UNDERSCORE
 #define	_C_LABEL(x)	__CONCAT(_,x)
-#define _C_LABEL_STRING(x)	"_"x
+#define _C_LABEL_STRING(x)	"_" x
 #else
 #define	_C_LABEL(x)	x
 #define _C_LABEL_STRING(x)	x
@@ -61,24 +61,11 @@
 #define	__SECTIONSTRING(_sec, _str)					\
 	__asm__(".section " #_sec "\n\t.asciz \"" _str "\"\n\t.previous")
 
-/* GCC visibility helper macro */
-/* This must be used to tag non-static functions that are private, i.e.
- * never exposed by the shared library. */
-#define __LIBC_HIDDEN__							\
-	__attribute__ ((visibility ("hidden")))
+/* Used to tag non-static symbols that are private and never exposed by the shared library. */
+#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden")))
 
-/* This must be used to tag non-static functions that are public, i.e.
- * exposed by the shared library, and part of the stable NDK ABI */
-#define __LIBC_ABI_PUBLIC__ \
-        __attribute__ ((visibility ("default")))
-
-/* This must be used to tag non-static functions that must be exported
- * by the shared library, but whose implementation is private to the
- * platform. For now this is equivalent to __LIBC_ABI_PUBLIC__, but we
- * may want to change this later.
- */
-#define __LIBC_ABI_PRIVATE__ \
-        __attribute__ ((visibility ("default")))
+/* Used to tag non-static symbols that are public and exposed by the shared library. */
+#define __LIBC_ABI_PUBLIC__ __attribute__((visibility ("default")))
 
 #define	__IDSTRING(_n,_s)		__SECTIONSTRING(.ident,_s)
 
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h
index c06a081..4a5a37c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/epoll.h
@@ -67,7 +67,11 @@
 struct epoll_event {
   uint32_t events;
   epoll_data_t data;
-};
+}
+#ifdef __x86_64__
+__packed
+#endif
+;
 
 int epoll_create(int);
 int epoll_create1(int);
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h
index dc847d2..9a76ad2 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/types.h
@@ -63,7 +63,7 @@
 typedef __kernel_key_t __key_t;
 typedef __key_t key_t;
 
-typedef uint32_t __ino_t;
+typedef __kernel_ino_t __ino_t;
 typedef __ino_t ino_t;
 
 typedef uint32_t __nlink_t;
@@ -72,9 +72,10 @@
 typedef void* __timer_t;
 typedef __timer_t timer_t;
 
-typedef int32_t __suseconds_t;
+typedef __kernel_suseconds_t __suseconds_t;
 typedef __suseconds_t suseconds_t;
 
+/* useconds_t is 32-bit on both LP32 and LP64. */
 typedef uint32_t __useconds_t;
 typedef __useconds_t useconds_t;
 
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h
index 5348dd8..c578a6f 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/user.h
@@ -36,7 +36,7 @@
 
 #if __i386__
 
-struct user_i387_struct {
+struct user_fpregs_struct {
   long cwd;
   long swd;
   long twd;
@@ -83,7 +83,7 @@
 struct user {
   struct user_regs_struct regs;
   int u_fpvalid;
-  struct user_i387_struct i387;
+  struct user_fpregs_struct i387;
   unsigned long int u_tsize;
   unsigned long int u_dsize;
   unsigned long int u_ssize;
@@ -92,7 +92,7 @@
   long int signal;
   int reserved;
   unsigned long u_ar0;
-  struct user_i387_struct* u_fpstate;
+  struct user_fpregs_struct* u_fpstate;
   unsigned long magic;
   char u_comm[32];
   int u_debugreg[8];
@@ -100,7 +100,7 @@
 
 #elif defined(__x86_64__)
 
-struct user_i387_struct {
+struct user_fpregs_struct {
   unsigned short cwd;
   unsigned short swd;
   unsigned short twd;
@@ -146,7 +146,7 @@
   struct user_regs_struct regs;
   int u_fpvalid;
   int pad0;
-  struct user_i387_struct i387;
+  struct user_fpregs_struct i387;
   unsigned long int u_tsize;
   unsigned long int u_dsize;
   unsigned long int u_ssize;
@@ -156,7 +156,7 @@
   int reserved;
   int pad1;
   unsigned long u_ar0;
-  struct user_i387_struct* u_fpstate;
+  struct user_fpregs_struct* u_fpstate;
   unsigned long magic;
   char u_comm[32];
   unsigned long u_debugreg[8];
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/time64.h b/9/platforms/android-19/arch-x86_64/usr/include/time64.h
index 7ec05af..905669d 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/time64.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/time64.h
@@ -31,29 +31,36 @@
 #ifndef TIME64_H
 #define TIME64_H
 
+#if defined(__LP64__)
+
+#error Your time_t is already 64-bit.
+
+#else
+
+/* Legacy cruft for LP32 where time_t was 32-bit. */
+
 #include <sys/cdefs.h>
 #include <time.h>
 #include <stdint.h>
 
 __BEGIN_DECLS
 
-typedef int64_t  time64_t;
+typedef int64_t time64_t;
 
-struct tm *gmtime64_r (const time64_t *, struct tm *);
-struct tm *localtime64_r (const time64_t *, struct tm *);
-struct tm *gmtime64 (const time64_t *);
-struct tm *localtime64 (const time64_t *);
-
-char *asctime64 (const struct tm *);
-char *asctime64_r (const struct tm *, char *);
-
-char *ctime64 (const time64_t*);
-char *ctime64_r (const time64_t*, char*);
-
-time64_t timegm64 (const struct tm *);
-time64_t mktime64 (const struct tm *);
-time64_t timelocal64 (const struct tm *);
+char* asctime64(const struct tm*);
+char* asctime64_r(const struct tm*, char*);
+char* ctime64(const time64_t*);
+char* ctime64_r(const time64_t*, char*);
+struct tm* gmtime64(const time64_t*);
+struct tm* gmtime64_r(const time64_t*, struct tm*);
+struct tm* localtime64(const time64_t*);
+struct tm* localtime64_r(const time64_t*, struct tm*);
+time64_t mktime64(const struct tm*);
+time64_t timegm64(const struct tm*);
+time64_t timelocal64(const struct tm*);
 
 __END_DECLS
 
+#endif
+
 #endif /* TIME64_H */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/unistd.h b/9/platforms/android-19/arch-x86_64/usr/include/unistd.h
index d21f23d..6cb36d8 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/unistd.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/unistd.h
@@ -47,7 +47,8 @@
 #define SEEK_CUR 1
 #define SEEK_END 2
 
-extern char **environ;
+extern char** environ;
+
 extern __noreturn void _exit(int);
 
 extern pid_t  fork(void);
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/utmp.h b/9/platforms/android-19/arch-x86_64/usr/include/utmp.h
index ffd3c92..d764227 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/utmp.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/utmp.h
@@ -36,9 +36,15 @@
 #define _PATH_WTMP      "/var/log/wtmp"
 #define _PATH_LASTLOG   "/var/log/lastlog"
 
-#define	UT_NAMESIZE	8
-#define	UT_LINESIZE	8
-#define	UT_HOSTSIZE	16
+#ifdef __LP64__
+#define UT_NAMESIZE 32
+#define UT_LINESIZE 32
+#define UT_HOSTSIZE 256
+#else
+#define UT_NAMESIZE 8
+#define UT_LINESIZE 8
+#define UT_HOSTSIZE 16
+#endif
 
 #define USER_PROCESS 7
 
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/wchar.h b/9/platforms/android-19/arch-x86_64/usr/include/wchar.h
index 89c6fb6..fe2fe07 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/wchar.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/wchar.h
@@ -34,12 +34,20 @@
 #include <stdarg.h>
 #include <stddef.h>
 #include <time.h>
-#include <malloc.h>
+
+#include <machine/wchar_limits.h>
 
 __BEGIN_DECLS
 
-typedef __WINT_TYPE__           wint_t;
-typedef struct { int  dummy; }  mbstate_t;
+typedef __WINT_TYPE__  wint_t;
+typedef struct {
+#ifdef __LP32__
+  int dummy;
+#else
+  // 8 bytes should be enough to support at least UTF-8
+  char __reserved[8];
+#endif
+} mbstate_t;
 
 typedef enum {
     WC_TYPE_INVALID = 0,
@@ -58,11 +66,6 @@
     WC_TYPE_MAX
 } wctype_t;
 
-#ifndef WCHAR_MAX
-#define  WCHAR_MAX   INT_MAX
-#define  WCHAR_MIN   INT_MIN
-#endif
-
 #define  WEOF        ((wint_t)(-1))
 
 extern wint_t            btowc(int);
@@ -70,6 +73,7 @@
 extern int               fwscanf(FILE *, const wchar_t *, ...);
 extern int               iswalnum(wint_t);
 extern int               iswalpha(wint_t);
+extern int               iswblank(wint_t);
 extern int               iswcntrl(wint_t);
 extern int               iswdigit(wint_t);
 extern int               iswgraph(wint_t);
@@ -90,7 +94,8 @@
 extern int               mbsinit(const mbstate_t *);
 extern size_t            mbrlen(const char *, size_t, mbstate_t *);
 extern size_t            mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
-extern size_t            mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
+extern size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
+extern size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
 extern size_t            mbstowcs(wchar_t *, const char *, size_t);
 extern wint_t            putwc(wchar_t, FILE *);
 extern wint_t            putwchar(wchar_t);
@@ -99,9 +104,12 @@
 extern wint_t            towlower(wint_t);
 extern wint_t            towupper(wint_t);
 extern wint_t            ungetwc(wint_t, FILE *);
-extern int               vfwprintf(FILE *, const wchar_t *, va_list);
-extern int               vwprintf(const wchar_t *, va_list);
-extern int               vswprintf(wchar_t *, size_t, const wchar_t *, va_list);
+extern int vfwprintf(FILE*, const wchar_t*, va_list);
+extern int vfwscanf(FILE*, const wchar_t*, va_list);
+extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list);
+extern int vswscanf(const wchar_t*, const wchar_t*, va_list);
+extern int vwprintf(const wchar_t*, va_list);
+extern int vwscanf(const wchar_t*, va_list);
 extern size_t            wcrtomb(char *, wchar_t, mbstate_t *);
 extern int               wcscasecmp(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcscat(wchar_t *, const wchar_t *);
@@ -116,16 +124,20 @@
 extern wchar_t          *wcsncat(wchar_t *, const wchar_t *, size_t);
 extern int               wcsncmp(const wchar_t *, const wchar_t *, size_t);
 extern wchar_t          *wcsncpy(wchar_t *, const wchar_t *, size_t);
+extern size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
 extern wchar_t          *wcspbrk(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcsrchr(const wchar_t *, wchar_t);
-extern size_t            wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
+extern size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
 extern size_t            wcsspn(const wchar_t *, const wchar_t *);
 extern wchar_t          *wcsstr(const wchar_t *, const wchar_t *);
-extern double            wcstod(const wchar_t *, wchar_t **);
-extern wchar_t          *wcstok(wchar_t *, const wchar_t *, wchar_t **);
-extern long int          wcstol(const wchar_t *, wchar_t **, int);
-extern size_t            wcstombs(char *, const wchar_t *, size_t);
-extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int);
+extern double wcstod(const wchar_t*, wchar_t**);
+extern float wcstof(const wchar_t*, wchar_t**);
+extern wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
+extern long wcstol(const wchar_t*, wchar_t**, int);
+extern long long wcstoll(const wchar_t*, wchar_t**, int);
+extern long double wcstold(const wchar_t*, wchar_t**);
+extern unsigned long wcstoul(const wchar_t*, wchar_t**, int);
+extern unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
 extern wchar_t          *wcswcs(const wchar_t *, const wchar_t *);
 extern int               wcswidth(const wchar_t *, size_t);
 extern size_t            wcsxfrm(wchar_t *, const wchar_t *, size_t);
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o
index 03cbdea..ba6df6e 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_dynamic.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o
index d6768bf..7523940 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o
index 03cbdea..ba6df6e 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtbegin_static.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o
index 2149bf1..1c39bb4 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_android.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o
index e0041da..0de25a4 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/crtend_so.o
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so
index da6d74e..4202ae5 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libEGL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so
index 16a7659..2b7c271 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv1_CM.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so
index 57104ab..869d0fb 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv2.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so
index 70c97cb..96867fb 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libGLESv3.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so
index ac27304..4330696 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenMAXAL.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so
index 95ecb48..fc0bf45 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libOpenSLES.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so
index a7a40ef..c7f412a 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libandroid.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a
index 58c1a03..f26b0ef 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so
index 24fac15..ed64078 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libc.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so
index afeda71..d1da8b0 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libdl.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so
index 0ba220e..f54e0c4 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libjnigraphics.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so b/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so
index 007044d..43d75cb 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/liblog.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a
index 0fd1900..a3f8af6 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so
index d07c215..f762946 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libm.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a
index 91b8ae2..b54d0f9 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.a
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so
index 9fa5287..fc35a00 100755
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libstdc++.so
Binary files differ
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a b/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a
index a715308..55f47cb 100644
--- a/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a
+++ b/9/platforms/android-19/arch-x86_64/usr/lib64/libz.a
Binary files differ
diff --git a/9/sources/android/support/include/locale.h b/9/sources/android/support/include/locale.h
index d7bd677..7dda229 100644
--- a/9/sources/android/support/include/locale.h
+++ b/9/sources/android/support/include/locale.h
@@ -36,6 +36,8 @@
 #include <xlocale.h>
 
 /* Define all LC_XXX to itself.  Sounds silly but libc++ expects it's defined, not in enum */
+#include <android/api-level.h>
+#if __ANDROID_API__ < 19
 #define LC_CTYPE           LC_CTYPE
 #define LC_NUMERIC         LC_NUMERIC
 #define LC_TIME            LC_TIME
@@ -49,6 +51,7 @@
 #define LC_TELEPHONE       LC_TELEPHONE
 #define LC_MEASUREMENT     LC_MEASUREMENT
 #define LC_IDENTIFICATION  LC_IDENTIFICATION
+#endif
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h b/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h
index 718b919..d16a6be 100644
--- a/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h
+++ b/9/sources/cxx-stl/EH/gabi++/include/gabixx_config.h
@@ -53,6 +53,9 @@
 // never be exposed to client code.
 #define _GABIXX_HIDDEN  __attribute__((__visibility__("hidden")))
 
+// Use _GABIXX_DEFAULT to prevent user command -fvisibility=hidden
+#define _GABIXX_DEFAULT __attribute__((__visibility__("default")))
+
 // Use _GABIXX_WEAK to define a symbol with weak linkage.
 #define _GABIXX_WEAK  __attribute__((__weak__))
 
diff --git a/9/sources/cxx-stl/EH/gabi++/include/new b/9/sources/cxx-stl/EH/gabi++/include/new
index 1643e01..935731d 100644
--- a/9/sources/cxx-stl/EH/gabi++/include/new
+++ b/9/sources/cxx-stl/EH/gabi++/include/new
@@ -48,6 +48,23 @@
   virtual const char* what() const throw();
 };
 
+class bad_array_new_length : public bad_alloc {
+public:
+  bad_array_new_length() throw();
+  virtual ~bad_array_new_length() throw();
+  virtual const char* what() const throw();
+};
+
+#if __cplusplus > 201103L
+// C++14 stuff
+class bad_array_length : public bad_alloc {
+public:
+  bad_array_length() throw();
+  virtual ~bad_array_length() throw();
+  virtual const char* what() const throw();
+};
+#endif
+
 typedef void (*new_handler)();
 new_handler set_new_handler(new_handler) throw();
 new_handler get_new_handler() throw();
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so
index e3fce3d..8be0a04 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a
index 5f6f285..147aa64 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/arm64-v8a/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so
index 0a2ab96..a36160d 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a
index c3cc91a..f39af75 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.so
new file mode 100755
index 0000000..b5a5fcc
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.a
new file mode 100644
index 0000000..b45fdbc
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so
index db1ec08..7ab5bad 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a
index 5c11732..f5fcda3 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.so
new file mode 100755
index 0000000..1fb4b76
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.a
new file mode 100644
index 0000000..5e57fe5
--- /dev/null
+++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so
index 2bb1c76..eed48a3 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a
index 4e851c7..dfbdb5f 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so
index 35747d3..aa6aae7 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a
index 63523de..ab05fa2 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/mips64/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so
index d2029d4..021d8f5 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a
index 11f3cd3..c070dbe 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so
index 236ae2c..ae1e391 100755
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a
index fcd7cca..a01b19d 100644
--- a/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a
+++ b/9/sources/cxx-stl/EH/gabi++/libs/x86_64/libgabi++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so
index 97993fb..f0562a2 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a
index a0f36cf..dbdc63a 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/arm64-v8a/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so
index ea96aec..e08bfb1 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a
index fe9fb0f..5df48c3 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.so
new file mode 100755
index 0000000..c56babf
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.a
new file mode 100644
index 0000000..37d7bd8
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so
index 15d2dbd..89b403b 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a
index af09bf4..aaf4391 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.so
new file mode 100755
index 0000000..cd41ca2
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.a
new file mode 100644
index 0000000..f1830e8
--- /dev/null
+++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so
index 536cb61..b56cd59 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a
index 5144f21..718206c 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so
index 35f9e4d..651fdfd 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a
index d3b7354..a7843b0 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/mips64/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so
index 3a24efe..18eea32 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a
index 9e06ae0..7e93c1f 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so
index 1732a66..47084de 100755
--- a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a
index bca5998..cc2f905 100644
--- a/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a
+++ b/9/sources/cxx-stl/EH/stlport/libs/x86_64/libstlport_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi-v7a/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/mips/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h
index 926b233..64a3bc5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.6/libs/x86/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/opt_random.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/opt_random.h
deleted file mode 100644
index 76c9155..0000000
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/bits/opt_random.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Optimizations for random number handling, generic version -*- C++ -*-
-
-// Copyright (C) 2012-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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.
-
-// This 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.
-
-// 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/>.
-
-/** @file bits/opt_random.h
- *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{random}
- */
-
-#ifndef _BITS_OPT_RANDOM_H
-#define _BITS_OPT_RANDOM_H 1
-
-#pragma GCC system_header
-
-
-
-
-#endif // _BITS_OPT_RANDOM_H
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h
index 88698bb..a439627 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/atomicity.h
@@ -43,8 +43,7 @@
   // To abstract locking primitives across all thread policies, use:
   // __exchange_and_add_dispatch
   // __atomic_add_dispatch
-#if defined(_GLIBCXX_ATOMIC_BUILTINS) && (!defined(__clang__) || defined(__i386__))
-  // NOTE: clang arm/mips can't compile the following two library calls yet.
+#ifdef _GLIBCXX_ATOMIC_BUILTINS
   static inline _Atomic_word 
   __exchange_and_add(volatile _Atomic_word* __mem, int __val)
   { return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/opt_random.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/opt_random.h
deleted file mode 100644
index 61f47de..0000000
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/ext/opt_random.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// Optimizations for random number extensions, generic version -*- C++ -*-
-
-// Copyright (C) 2012-2013 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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.
-
-// This 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.
-
-// 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/>.
-
-/** @file ext/opt_random.h
- *  This is an internal header file, included by other library headers.
- *  Do not attempt to use it directly. @headername{ext/random}
- */
-
-#ifndef _EXT_OPT_RANDOM_H
-#define _EXT_OPT_RANDOM_H 1
-
-#pragma GCC system_header
-
-
-
-
-#endif // _EXT_OPT_RANDOM_H
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits
index b5f8c79..9b7b986 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/include/type_traits
@@ -264,7 +264,7 @@
     struct __is_floating_point_helper<long double>
     : public true_type { };
 
-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__clang__)
+#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
   template<>
     struct __is_floating_point_helper<__float128>
     : public true_type { };
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h
index 1fa46a5..ddf4ed9 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/include/bits/c++config.h
@@ -470,13 +470,13 @@
 #define _GLIBCXX_HAVE_ACOSF 1
 
 /* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
 
 /* Define to 1 if you have the `asinf' function. */
 #define _GLIBCXX_HAVE_ASINF 1
 
 /* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
 
 /* Define to 1 if the target assembler supports .symver directive. */
 #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -491,7 +491,7 @@
 #define _GLIBCXX_HAVE_ATANF 1
 
 /* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
 
 /* Define to 1 if you have the `at_quick_exit' function. */
 /* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -515,10 +515,10 @@
 #define _GLIBCXX_HAVE_COSHF 1
 
 /* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
 
 /* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define _GLIBCXX_HAVE_DLFCN_H 1
@@ -689,7 +689,7 @@
 /* #undef _GLIBCXX_HAVE_ISNANL */
 
 /* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
 
 /* Define if LC_MESSAGES is available in <locale.h>. */
 #define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -728,13 +728,13 @@
 #define _GLIBCXX_HAVE_LOG10F 1
 
 /* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
 
 /* Define to 1 if you have the `logf' function. */
 #define _GLIBCXX_HAVE_LOGF 1
 
 /* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
 
 /* Define to 1 if you have the <machine/endian.h> header file. */
 #define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -767,7 +767,7 @@
 #define _GLIBCXX_HAVE_POWF 1
 
 /* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
 
 /* Define to 1 if you have the `qfpclass' function. */
 /* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -779,13 +779,13 @@
 /* #undef _GLIBCXX_HAVE_SETENV */
 
 /* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
 
 /* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
 
 /* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
 
 /* Define to 1 if you have the `sinf' function. */
 #define _GLIBCXX_HAVE_SINF 1
@@ -794,10 +794,10 @@
 #define _GLIBCXX_HAVE_SINHF 1
 
 /* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
 
 /* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
 
 /* Defined if sleep exists. */
 /* #undef _GLIBCXX_HAVE_SLEEP */
@@ -900,10 +900,10 @@
 #define _GLIBCXX_HAVE_TANHF 1
 
 /* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
 
 /* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
 
 /* Define to 1 if you have the <tgmath.h> header file. */
 /* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -918,19 +918,19 @@
 /* #undef _GLIBCXX_HAVE_USLEEP */
 
 /* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
 
 /* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
 
 /* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define _GLIBCXX_HAVE_WCHAR_H 1
 
 /* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
 
 /* Define to 1 if you have the <wctype.h> header file. */
 #define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1261,7 +1261,7 @@
 
 /* Define if wchar_t C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in <cmath>
    in namespace std. */
@@ -1269,7 +1269,7 @@
 
 /* Define if C99 functions or macros in <math.h> should be imported in
    <tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
 
 /* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
    namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so
index d09ad91..3acb7b7 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a
index 470123e..1af89cd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a
index e110f67..cc011fc 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/arm64-v8a/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi-v7a/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/armeabi/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h
index 1fa46a5..ddf4ed9 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/include/bits/c++config.h
@@ -470,13 +470,13 @@
 #define _GLIBCXX_HAVE_ACOSF 1
 
 /* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
 
 /* Define to 1 if you have the `asinf' function. */
 #define _GLIBCXX_HAVE_ASINF 1
 
 /* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
 
 /* Define to 1 if the target assembler supports .symver directive. */
 #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -491,7 +491,7 @@
 #define _GLIBCXX_HAVE_ATANF 1
 
 /* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
 
 /* Define to 1 if you have the `at_quick_exit' function. */
 /* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -515,10 +515,10 @@
 #define _GLIBCXX_HAVE_COSHF 1
 
 /* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
 
 /* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define _GLIBCXX_HAVE_DLFCN_H 1
@@ -689,7 +689,7 @@
 /* #undef _GLIBCXX_HAVE_ISNANL */
 
 /* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
 
 /* Define if LC_MESSAGES is available in <locale.h>. */
 #define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -728,13 +728,13 @@
 #define _GLIBCXX_HAVE_LOG10F 1
 
 /* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
 
 /* Define to 1 if you have the `logf' function. */
 #define _GLIBCXX_HAVE_LOGF 1
 
 /* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
 
 /* Define to 1 if you have the <machine/endian.h> header file. */
 #define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -767,7 +767,7 @@
 #define _GLIBCXX_HAVE_POWF 1
 
 /* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
 
 /* Define to 1 if you have the `qfpclass' function. */
 /* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -779,13 +779,13 @@
 /* #undef _GLIBCXX_HAVE_SETENV */
 
 /* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
 
 /* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
 
 /* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
 
 /* Define to 1 if you have the `sinf' function. */
 #define _GLIBCXX_HAVE_SINF 1
@@ -794,10 +794,10 @@
 #define _GLIBCXX_HAVE_SINHF 1
 
 /* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
 
 /* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
 
 /* Defined if sleep exists. */
 /* #undef _GLIBCXX_HAVE_SLEEP */
@@ -900,10 +900,10 @@
 #define _GLIBCXX_HAVE_TANHF 1
 
 /* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
 
 /* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
 
 /* Define to 1 if you have the <tgmath.h> header file. */
 /* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -918,19 +918,19 @@
 /* #undef _GLIBCXX_HAVE_USLEEP */
 
 /* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
 
 /* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
 
 /* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define _GLIBCXX_HAVE_WCHAR_H 1
 
 /* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
 
 /* Define to 1 if you have the <wctype.h> header file. */
 #define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1261,7 +1261,7 @@
 
 /* Define if wchar_t C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in <cmath>
    in namespace std. */
@@ -1269,7 +1269,7 @@
 
 /* Define if C99 functions or macros in <math.h> should be imported in
    <tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
 
 /* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
    namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so
index b3c3e2c..ab31a5d 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a
index a3b5b19..68a9cfb 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a
index 97cb30e..a28f8b3 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/mips64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h
index 2cfd69e..d33e9f6 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86/include/bits/ctype_base.h
@@ -30,6 +30,20 @@
 
 // Support for Solaris 2.5.1
 
+#if !defined(_U)
+#if !defined(_CTYPE_U)
+#error Bionic header ctype.h does not define either _U nor _CTYPE_U
+#endif
+#define _U _CTYPE_U
+#define _L _CTYPE_L
+#define _N _CTYPE_N
+#define _S _CTYPE_S
+#define _P _CTYPE_P
+#define _C _CTYPE_C
+#define _X _CTYPE_X
+#define _B _CTYPE_B
+#endif
+
 namespace std _GLIBCXX_VISIBILITY(default)
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h
index 15f2467..389758c 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/include/bits/c++config.h
@@ -470,13 +470,13 @@
 #define _GLIBCXX_HAVE_ACOSF 1
 
 /* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
 
 /* Define to 1 if you have the `asinf' function. */
 #define _GLIBCXX_HAVE_ASINF 1
 
 /* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
 
 /* Define to 1 if the target assembler supports .symver directive. */
 #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -491,7 +491,7 @@
 #define _GLIBCXX_HAVE_ATANF 1
 
 /* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
 
 /* Define to 1 if you have the `at_quick_exit' function. */
 /* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -515,10 +515,10 @@
 #define _GLIBCXX_HAVE_COSHF 1
 
 /* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
 
 /* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define _GLIBCXX_HAVE_DLFCN_H 1
@@ -689,7 +689,7 @@
 /* #undef _GLIBCXX_HAVE_ISNANL */
 
 /* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
 
 /* Define if LC_MESSAGES is available in <locale.h>. */
 #define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -728,13 +728,13 @@
 #define _GLIBCXX_HAVE_LOG10F 1
 
 /* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
 
 /* Define to 1 if you have the `logf' function. */
 #define _GLIBCXX_HAVE_LOGF 1
 
 /* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
 
 /* Define to 1 if you have the <machine/endian.h> header file. */
 #define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -767,7 +767,7 @@
 #define _GLIBCXX_HAVE_POWF 1
 
 /* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
 
 /* Define to 1 if you have the `qfpclass' function. */
 /* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -779,13 +779,13 @@
 /* #undef _GLIBCXX_HAVE_SETENV */
 
 /* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
 
 /* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
 
 /* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
 
 /* Define to 1 if you have the `sinf' function. */
 #define _GLIBCXX_HAVE_SINF 1
@@ -794,10 +794,10 @@
 #define _GLIBCXX_HAVE_SINHF 1
 
 /* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
 
 /* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
 
 /* Defined if sleep exists. */
 /* #undef _GLIBCXX_HAVE_SLEEP */
@@ -900,10 +900,10 @@
 #define _GLIBCXX_HAVE_TANHF 1
 
 /* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
 
 /* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
 
 /* Define to 1 if you have the <tgmath.h> header file. */
 /* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -918,19 +918,19 @@
 /* #undef _GLIBCXX_HAVE_USLEEP */
 
 /* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
 
 /* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
 
 /* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define _GLIBCXX_HAVE_WCHAR_H 1
 
 /* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
 
 /* Define to 1 if you have the <wctype.h> header file. */
 #define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1261,7 +1261,7 @@
 
 /* Define if wchar_t C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in <cmath>
    in namespace std. */
@@ -1269,7 +1269,7 @@
 
 /* Define if C99 functions or macros in <math.h> should be imported in
    <tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
 
 /* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
    namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so
index d86bdb3..787b008 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a
index e51e015..98a78b5 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a
index 44a6c3a..1cb7360 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.8/libs/x86_64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h
index 7d2ba75..242459a 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/bits/atomic_base.h
@@ -768,11 +768,11 @@
 
       bool
       is_lock_free() const noexcept
-      { return __atomic_is_lock_free(_M_type_size(1), nullptr); }
+      { return __atomic_is_lock_free(sizeof(__pointer_type), nullptr); }
 
       bool
       is_lock_free() const volatile noexcept
-      { return __atomic_is_lock_free(_M_type_size(1), nullptr); }
+      { return __atomic_is_lock_free(sizeof(__pointer_type), nullptr); }
 
       _GLIBCXX_ALWAYS_INLINE void
       store(__pointer_type __p,
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip
index b2c7b95..73822db 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/iomanip
@@ -415,8 +415,6 @@
 		 const _Quoted_string<basic_string<_CharT, _Traits, _Alloc>&,
 				      _CharT>& __str)
       {
-	__str._M_string.clear();
-
 	_CharT __c;
 	__is >> __c;
 	if (!__is.good())
@@ -427,6 +425,7 @@
 	    __is >> __str._M_string;
 	    return __is;
 	  }
+	__str._M_string.clear();
 	std::ios_base::fmtflags __flags
 	  = __is.flags(__is.flags() & ~std::ios_base::skipws);
 	do
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits
index 0261c7d..86fde9e 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/include/type_traits
@@ -259,7 +259,7 @@
     struct __is_floating_point_helper<long double>
     : public true_type { };
 
-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128)
+#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
   template<>
     struct __is_floating_point_helper<__float128>
     : public true_type { };
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h
index 99057ea..103fa47 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/include/bits/c++config.h
@@ -31,7 +31,7 @@
 #define _GLIBCXX_CXX_CONFIG_H 1
 
 // The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
 
 // Macros for various attributes.
 //   _GLIBCXX_PURE
@@ -474,13 +474,13 @@
 #define _GLIBCXX_HAVE_ACOSF 1
 
 /* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
 
 /* Define to 1 if you have the `asinf' function. */
 #define _GLIBCXX_HAVE_ASINF 1
 
 /* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
 
 /* Define to 1 if the target assembler supports .symver directive. */
 #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -495,7 +495,7 @@
 #define _GLIBCXX_HAVE_ATANF 1
 
 /* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
 
 /* Define to 1 if you have the `at_quick_exit' function. */
 /* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -519,10 +519,10 @@
 #define _GLIBCXX_HAVE_COSHF 1
 
 /* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
 
 /* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define _GLIBCXX_HAVE_DLFCN_H 1
@@ -693,7 +693,7 @@
 /* #undef _GLIBCXX_HAVE_ISNANL */
 
 /* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
 
 /* Define if LC_MESSAGES is available in <locale.h>. */
 #define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -732,13 +732,13 @@
 #define _GLIBCXX_HAVE_LOG10F 1
 
 /* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
 
 /* Define to 1 if you have the `logf' function. */
 #define _GLIBCXX_HAVE_LOGF 1
 
 /* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
 
 /* Define to 1 if you have the <machine/endian.h> header file. */
 #define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -771,7 +771,7 @@
 #define _GLIBCXX_HAVE_POWF 1
 
 /* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
 
 /* Define to 1 if you have the `qfpclass' function. */
 /* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -783,13 +783,13 @@
 /* #undef _GLIBCXX_HAVE_SETENV */
 
 /* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
 
 /* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
 
 /* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
 
 /* Define to 1 if you have the `sinf' function. */
 #define _GLIBCXX_HAVE_SINF 1
@@ -798,10 +798,10 @@
 #define _GLIBCXX_HAVE_SINHF 1
 
 /* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
 
 /* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
 
 /* Defined if sleep exists. */
 /* #undef _GLIBCXX_HAVE_SLEEP */
@@ -904,10 +904,10 @@
 #define _GLIBCXX_HAVE_TANHF 1
 
 /* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
 
 /* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
 
 /* Define to 1 if you have the <tgmath.h> header file. */
 /* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -922,19 +922,19 @@
 /* #undef _GLIBCXX_HAVE_USLEEP */
 
 /* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
 
 /* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
 
 /* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define _GLIBCXX_HAVE_WCHAR_H 1
 
 /* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
 
 /* Define to 1 if you have the <wctype.h> header file. */
 #define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1265,7 +1265,7 @@
 
 /* Define if wchar_t C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in <cmath>
    in namespace std. */
@@ -1273,7 +1273,7 @@
 
 /* Define if C99 functions or macros in <math.h> should be imported in
    <tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
 
 /* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
    namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
index b998a74..9c28e0a 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a
index 30ac46e..24d5885 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a
index 7ce29d1..75ee34b 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/arm64-v8a/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h
index 3500133..a31d1dd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/include/bits/c++config.h
@@ -31,7 +31,7 @@
 #define _GLIBCXX_CXX_CONFIG_H 1
 
 // The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
 
 // Macros for various attributes.
 //   _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h
index 3500133..a31d1dd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include/bits/c++config.h
@@ -31,7 +31,7 @@
 #define _GLIBCXX_CXX_CONFIG_H 1
 
 // The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
 
 // Macros for various attributes.
 //   _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h
index 3500133..a31d1dd 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips/include/bits/c++config.h
@@ -31,7 +31,7 @@
 #define _GLIBCXX_CXX_CONFIG_H 1
 
 // The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
 
 // Macros for various attributes.
 //   _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h
index 99057ea..103fa47 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/include/bits/c++config.h
@@ -31,7 +31,7 @@
 #define _GLIBCXX_CXX_CONFIG_H 1
 
 // The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
 
 // Macros for various attributes.
 //   _GLIBCXX_PURE
@@ -474,13 +474,13 @@
 #define _GLIBCXX_HAVE_ACOSF 1
 
 /* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
 
 /* Define to 1 if you have the `asinf' function. */
 #define _GLIBCXX_HAVE_ASINF 1
 
 /* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
 
 /* Define to 1 if the target assembler supports .symver directive. */
 #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -495,7 +495,7 @@
 #define _GLIBCXX_HAVE_ATANF 1
 
 /* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
 
 /* Define to 1 if you have the `at_quick_exit' function. */
 /* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -519,10 +519,10 @@
 #define _GLIBCXX_HAVE_COSHF 1
 
 /* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
 
 /* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define _GLIBCXX_HAVE_DLFCN_H 1
@@ -693,7 +693,7 @@
 /* #undef _GLIBCXX_HAVE_ISNANL */
 
 /* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
 
 /* Define if LC_MESSAGES is available in <locale.h>. */
 #define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -732,13 +732,13 @@
 #define _GLIBCXX_HAVE_LOG10F 1
 
 /* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
 
 /* Define to 1 if you have the `logf' function. */
 #define _GLIBCXX_HAVE_LOGF 1
 
 /* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
 
 /* Define to 1 if you have the <machine/endian.h> header file. */
 #define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -771,7 +771,7 @@
 #define _GLIBCXX_HAVE_POWF 1
 
 /* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
 
 /* Define to 1 if you have the `qfpclass' function. */
 /* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -783,13 +783,13 @@
 /* #undef _GLIBCXX_HAVE_SETENV */
 
 /* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
 
 /* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
 
 /* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
 
 /* Define to 1 if you have the `sinf' function. */
 #define _GLIBCXX_HAVE_SINF 1
@@ -798,10 +798,10 @@
 #define _GLIBCXX_HAVE_SINHF 1
 
 /* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
 
 /* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
 
 /* Defined if sleep exists. */
 /* #undef _GLIBCXX_HAVE_SLEEP */
@@ -904,10 +904,10 @@
 #define _GLIBCXX_HAVE_TANHF 1
 
 /* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
 
 /* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
 
 /* Define to 1 if you have the <tgmath.h> header file. */
 /* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -922,19 +922,19 @@
 /* #undef _GLIBCXX_HAVE_USLEEP */
 
 /* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
 
 /* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
 
 /* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define _GLIBCXX_HAVE_WCHAR_H 1
 
 /* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
 
 /* Define to 1 if you have the <wctype.h> header file. */
 #define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1265,7 +1265,7 @@
 
 /* Define if wchar_t C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in <cmath>
    in namespace std. */
@@ -1273,7 +1273,7 @@
 
 /* Define if C99 functions or macros in <math.h> should be imported in
    <tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
 
 /* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
    namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so
index f7bbec4..1027125 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a
index 9d11e57..03b05b4 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a
index b2cb3d1..94187b2 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/mips64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h
index 8f12d8c..6200953 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/include/bits/c++config.h
@@ -31,7 +31,7 @@
 #define _GLIBCXX_CXX_CONFIG_H 1
 
 // The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
 
 // Macros for various attributes.
 //   _GLIBCXX_PURE
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h
index 356809d..a8dc524 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/include/bits/c++config.h
@@ -31,7 +31,7 @@
 #define _GLIBCXX_CXX_CONFIG_H 1
 
 // The current version of the C++ library in compressed ISO date format.
-#define __GLIBCXX__ 20140324
+#define __GLIBCXX__ 20140422
 
 // Macros for various attributes.
 //   _GLIBCXX_PURE
@@ -474,13 +474,13 @@
 #define _GLIBCXX_HAVE_ACOSF 1
 
 /* Define to 1 if you have the `acosl' function. */
-/* #undef _GLIBCXX_HAVE_ACOSL */
+#define _GLIBCXX_HAVE_ACOSL 1
 
 /* Define to 1 if you have the `asinf' function. */
 #define _GLIBCXX_HAVE_ASINF 1
 
 /* Define to 1 if you have the `asinl' function. */
-/* #undef _GLIBCXX_HAVE_ASINL */
+#define _GLIBCXX_HAVE_ASINL 1
 
 /* Define to 1 if the target assembler supports .symver directive. */
 #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1
@@ -495,7 +495,7 @@
 #define _GLIBCXX_HAVE_ATANF 1
 
 /* Define to 1 if you have the `atanl' function. */
-/* #undef _GLIBCXX_HAVE_ATANL */
+#define _GLIBCXX_HAVE_ATANL 1
 
 /* Define to 1 if you have the `at_quick_exit' function. */
 /* #undef _GLIBCXX_HAVE_AT_QUICK_EXIT */
@@ -519,10 +519,10 @@
 #define _GLIBCXX_HAVE_COSHF 1
 
 /* Define to 1 if you have the `coshl' function. */
-/* #undef _GLIBCXX_HAVE_COSHL */
+#define _GLIBCXX_HAVE_COSHL 1
 
 /* Define to 1 if you have the `cosl' function. */
-/* #undef _GLIBCXX_HAVE_COSL */
+#define _GLIBCXX_HAVE_COSL 1
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #define _GLIBCXX_HAVE_DLFCN_H 1
@@ -693,7 +693,7 @@
 /* #undef _GLIBCXX_HAVE_ISNANL */
 
 /* Defined if iswblank exists. */
-/* #undef _GLIBCXX_HAVE_ISWBLANK */
+#define _GLIBCXX_HAVE_ISWBLANK 1
 
 /* Define if LC_MESSAGES is available in <locale.h>. */
 #define _GLIBCXX_HAVE_LC_MESSAGES 1
@@ -732,13 +732,13 @@
 #define _GLIBCXX_HAVE_LOG10F 1
 
 /* Define to 1 if you have the `log10l' function. */
-/* #undef _GLIBCXX_HAVE_LOG10L */
+#define _GLIBCXX_HAVE_LOG10L 1
 
 /* Define to 1 if you have the `logf' function. */
 #define _GLIBCXX_HAVE_LOGF 1
 
 /* Define to 1 if you have the `logl' function. */
-/* #undef _GLIBCXX_HAVE_LOGL */
+#define _GLIBCXX_HAVE_LOGL 1
 
 /* Define to 1 if you have the <machine/endian.h> header file. */
 #define _GLIBCXX_HAVE_MACHINE_ENDIAN_H 1
@@ -771,7 +771,7 @@
 #define _GLIBCXX_HAVE_POWF 1
 
 /* Define to 1 if you have the `powl' function. */
-/* #undef _GLIBCXX_HAVE_POWL */
+#define _GLIBCXX_HAVE_POWL 1
 
 /* Define to 1 if you have the `qfpclass' function. */
 /* #undef _GLIBCXX_HAVE_QFPCLASS */
@@ -783,13 +783,13 @@
 /* #undef _GLIBCXX_HAVE_SETENV */
 
 /* Define to 1 if you have the `sincos' function. */
-/* #undef _GLIBCXX_HAVE_SINCOS */
+#define _GLIBCXX_HAVE_SINCOS 1
 
 /* Define to 1 if you have the `sincosf' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSF */
+#define _GLIBCXX_HAVE_SINCOSF 1
 
 /* Define to 1 if you have the `sincosl' function. */
-/* #undef _GLIBCXX_HAVE_SINCOSL */
+#define _GLIBCXX_HAVE_SINCOSL 1
 
 /* Define to 1 if you have the `sinf' function. */
 #define _GLIBCXX_HAVE_SINF 1
@@ -798,10 +798,10 @@
 #define _GLIBCXX_HAVE_SINHF 1
 
 /* Define to 1 if you have the `sinhl' function. */
-/* #undef _GLIBCXX_HAVE_SINHL */
+#define _GLIBCXX_HAVE_SINHL 1
 
 /* Define to 1 if you have the `sinl' function. */
-/* #undef _GLIBCXX_HAVE_SINL */
+#define _GLIBCXX_HAVE_SINL 1
 
 /* Defined if sleep exists. */
 /* #undef _GLIBCXX_HAVE_SLEEP */
@@ -904,10 +904,10 @@
 #define _GLIBCXX_HAVE_TANHF 1
 
 /* Define to 1 if you have the `tanhl' function. */
-/* #undef _GLIBCXX_HAVE_TANHL */
+#define _GLIBCXX_HAVE_TANHL 1
 
 /* Define to 1 if you have the `tanl' function. */
-/* #undef _GLIBCXX_HAVE_TANL */
+#define _GLIBCXX_HAVE_TANL 1
 
 /* Define to 1 if you have the <tgmath.h> header file. */
 /* #undef _GLIBCXX_HAVE_TGMATH_H */
@@ -922,19 +922,19 @@
 /* #undef _GLIBCXX_HAVE_USLEEP */
 
 /* Defined if vfwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VFWSCANF */
+#define _GLIBCXX_HAVE_VFWSCANF 1
 
 /* Defined if vswscanf exists. */
-/* #undef _GLIBCXX_HAVE_VSWSCANF */
+#define _GLIBCXX_HAVE_VSWSCANF 1
 
 /* Defined if vwscanf exists. */
-/* #undef _GLIBCXX_HAVE_VWSCANF */
+#define _GLIBCXX_HAVE_VWSCANF 1
 
 /* Define to 1 if you have the <wchar.h> header file. */
 #define _GLIBCXX_HAVE_WCHAR_H 1
 
 /* Defined if wcstof exists. */
-/* #undef _GLIBCXX_HAVE_WCSTOF */
+#define _GLIBCXX_HAVE_WCSTOF 1
 
 /* Define to 1 if you have the <wctype.h> header file. */
 #define _GLIBCXX_HAVE_WCTYPE_H 1
@@ -1265,7 +1265,7 @@
 
 /* Define if wchar_t C99 functions in <inttypes.h> should be imported in
    <tr1/cinttypes> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 */
+#define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1
 
 /* Define if C99 functions or macros in <math.h> should be imported in <cmath>
    in namespace std. */
@@ -1273,7 +1273,7 @@
 
 /* Define if C99 functions or macros in <math.h> should be imported in
    <tr1/cmath> in namespace std::tr1. */
-/* #undef _GLIBCXX_USE_C99_MATH_TR1 */
+#define _GLIBCXX_USE_C99_MATH_TR1 1
 
 /* Define if C99 types in <stdint.h> should be imported in <tr1/cstdint> in
    namespace std::tr1. */
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so
index a63d987..0a33be7 100755
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a
index 37af57a..5d96f9e 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libgnustl_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a
index ad3df6d..31b9c68 100644
--- a/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a
+++ b/9/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86_64/libsupc++.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config
index 31cbcd4..1eb734c 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__config
@@ -199,10 +199,16 @@
 
 #ifndef _LIBCPP_ALWAYS_INLINE
 #define _LIBCPP_ALWAYS_INLINE  __attribute__ ((__visibility__("hidden"), __always_inline__))
+#define _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49 _LIBCPP_ALWAYS_INLINE
 #endif
 
 #if defined(__clang__)
 
+#if defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) &&        \
+    !defined(__arm__)
+#define _LIBCPP_ALTERNATE_STRING_LAYOUT
+#endif
+
 #if __has_feature(cxx_alignas)
 #  define _ALIGNAS_TYPE(x) alignas(x)
 #  define _ALIGNAS(x) alignas(x)
@@ -215,7 +221,7 @@
 #define _LIBCPP_HAS_NO_TEMPLATE_ALIASES
 #endif
 
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
+#if __cplusplus < 201103L
 #ifdef __linux__
 #define _LIBCPP_HAS_NO_UNICODE_CHARS
 #else
@@ -347,8 +353,18 @@
   }
 }
 
+#if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer)
+#define _LIBCPP_HAS_NO_ASAN
+#endif
+
 #elif defined(__GNUC__)
 
+// FixME: GCC4.9 fails some always_inline cases
+# if (_GNUC_VER == 409)
+#undef _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49
+#define _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49 inline
+#endif
+
 #define _ALIGNAS(x) __attribute__((__aligned__(x)))
 #define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x))))
 
@@ -421,13 +437,18 @@
 using namespace _LIBCPP_NAMESPACE __attribute__((__strong__));
 }
 
+#if !defined(_LIBCPP_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__)
+#define _LIBCPP_HAS_NO_ASAN
+#endif
+
 // Emulation of clang's __has_feature() for GCC on known cases
 #ifndef __has_feature
 
 #define __gxx__cxx_access_control_sfinae          !defined(_LIBCPP_HAS_NO_TRAILING_RETURN) || !defined(_LIBCPP_HAS_NO_ADVANCED_SFINAE) // Also see usage in 7 tests
 #define __gxx__cxx_alias_templates                !defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
+#define __gxx__cxx_address_sanitizer              !defined(_LIBCPP_HAS_NO_ASAN)
 #define __gxx__cxx_alignas                        0  // Not sure, doesn't matter.
-#define __gxx__cxx_atomic                         0  // In c11-atomic branch targeted for GCC 4.9.  Also see usages in 20+ places
+#define __gxx__cxx_atomic                         0  // (_GNUC_VER >= 409) seems to support _Atomic in -std=c11 not -std=c++11 !
 #define __gxx__cxx_attributes                     0  // Not sure. Also see usage in libcxx/test/utilities/meta/meta.unary/meta.unary.prop/is_polymorphic.pass.cpp
 #define __gxx__cxx_auto_type                      !defined(_LIBCPP_HAS_NO_AUTO_TYPE)
 #define __gxx__cxx_constexpr                      !defined(_LIBCPP_HAS_NO_CONSTEXPR)
@@ -440,7 +461,7 @@
 #define __gxx__cxx_lambdas                        !defined(_LIBCPP_HAS_NO_LAMBDAS)
 #define __gxx__cxx_noexcept                       0  // Not sure, doesn't matter.
 #define __gxx__cxx_nullptr                        !defined(_LIBCPP_HAS_NO_NULLPTR)
-#define __gxx__cxx_reference_qualified_functions  (_GNUC_VER > 408) || ((_GNUC_VER == 408) && (__GNUC_PATCHLEVEL__ >= 1))  // See usage in libcxx/include/type_traits
+#define __gxx__cxx_reference_qualified_functions  (_GNUC_VER >= 408)  // Since 4.8.1
 #ifdef _LIBCPP_NO_RTTI
 #define __gxx__cxx_rtti                           0
 #else
@@ -493,7 +514,7 @@
 #define _ALIGNAS(x) __declspec(align(x))
 #define _LIBCPP_HAS_NO_VARIADICS
 
-#define _NOEXCEPT throw()
+#define _NOEXCEPT throw ()
 #define _NOEXCEPT_(x)
 #define _NOEXCEPT_OR_FALSE(x) false
 
@@ -505,6 +526,8 @@
 namespace std {
 }
 
+#define _LIBCPP_HAS_NO_ASAN
+
 #elif defined(__IBMCPP__)
 
 #define _ALIGNAS(x) __attribute__((__aligned__(x)))
@@ -537,6 +560,8 @@
   }
 }
 
+#define _LIBCPP_HAS_NO_ASAN
+
 #endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__
 
 #ifdef _LIBCPP_HAS_NO_UNICODE_CHARS
@@ -544,6 +569,10 @@
 typedef unsigned int   char32_t;
 #endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
 
+#ifndef __SIZEOF_INT128__
+#define _LIBCPP_HAS_NO_INT128
+#endif
+
 #ifdef _LIBCPP_HAS_NO_STATIC_ASSERT
 
 template <bool> struct __static_assert_test;
@@ -619,6 +648,10 @@
 #define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__;
 #endif
 
+#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__)
+#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63)
+#endif
+
 #if defined(__APPLE__) || defined(__FreeBSD__) || defined(_WIN32) || defined(__sun__) || defined(__NetBSD__)
 #define _LIBCPP_LOCALE__L_EXTENSIONS 1
 #endif
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale
index 5c33038..d078810 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__locale
@@ -21,7 +21,7 @@
 #include <locale.h>
 #if defined(_LIBCPP_MSVCRT) || defined(__MINGW32__)
 # include <support/win32/locale_win32.h>
-#elif _AIX
+#elif defined(_AIX)
 # include <support/ibm/xlocale.h>
 #elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)) || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)
 # include <xlocale.h>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base
index abb1c12..293fead 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__mutex_base
@@ -282,7 +282,7 @@
     void notify_one() _NOEXCEPT;
     void notify_all() _NOEXCEPT;
 
-    void wait(unique_lock<mutex>& __lk);
+    void wait(unique_lock<mutex>& __lk) _NOEXCEPT;
     template <class _Predicate>
         void wait(unique_lock<mutex>& __lk, _Predicate __pred);
 
@@ -313,7 +313,7 @@
 
 private:
     void __do_timed_wait(unique_lock<mutex>& __lk,
-                 chrono::time_point<chrono::system_clock, chrono::nanoseconds>);
+       chrono::time_point<chrono::system_clock, chrono::nanoseconds>) _NOEXCEPT;
 };
 
 template <class _To, class _Rep, class _Period>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree
index acf8759..8e5447a 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/__tree
@@ -1980,9 +1980,9 @@
         __begin_node() = __r.__ptr_;
     --size();
     __node_allocator& __na = __node_alloc();
-    __node_traits::destroy(__na, const_cast<value_type*>(_VSTD::addressof(*__p)));
     __tree_remove(__end_node()->__left_,
                   static_cast<__node_base_pointer>(__np));
+    __node_traits::destroy(__na, const_cast<value_type*>(_VSTD::addressof(*__p)));
     __node_traits::deallocate(__na, __np, 1);
     return __r;
 }
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm b/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm
index 367489f..303ec7d 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/algorithm
@@ -281,11 +281,12 @@
 
 template <class RandomAccessIterator>
     void
-    random_shuffle(RandomAccessIterator first, RandomAccessIterator last);
+    random_shuffle(RandomAccessIterator first, RandomAccessIterator last); // deprecated in C++14
 
 template <class RandomAccessIterator, class RandomNumberGenerator>
     void
-    random_shuffle(RandomAccessIterator first, RandomAccessIterator last, RandomNumberGenerator& rand);
+    random_shuffle(RandomAccessIterator first, RandomAccessIterator last,
+                   RandomNumberGenerator& rand);  // deprecated in C++14
 
 template<class RandomAccessIterator, class UniformRandomNumberGenerator>
     void shuffle(RandomAccessIterator first, RandomAccessIterator last,
@@ -528,19 +529,19 @@
 
 template <class T>
     const T&
-    min(const T& a, const T& b);
+    min(const T& a, const T& b);  // constexpr in C++14
 
 template <class T, class Compare>
     const T&
-    min(const T& a, const T& b, Compare comp);
+    min(const T& a, const T& b, Compare comp);  // constexpr in C++14
 
 template<class T>
     T
-    min(initializer_list<T> t);
+    min(initializer_list<T> t);  // constexpr in C++14
 
 template<class T, class Compare>
     T
-    min(initializer_list<T> t, Compare comp);
+    min(initializer_list<T> t, Compare comp);  // constexpr in C++14
 
 template <class ForwardIterator>
     ForwardIterator
@@ -552,19 +553,19 @@
 
 template <class T>
     const T&
-    max(const T& a, const T& b);
+    max(const T& a, const T& b); // constexpr in C++14
 
 template <class T, class Compare>
     const T&
-    max(const T& a, const T& b, Compare comp);
+    max(const T& a, const T& b, Compare comp);  // constexpr in C++14
 
 template<class T>
     T
-    max(initializer_list<T> t);
+    max(initializer_list<T> t);  // constexpr in C++14
 
 template<class T, class Compare>
     T
-    max(initializer_list<T> t, Compare comp);
+    max(initializer_list<T> t, Compare comp);  // constexpr in C++14
 
 template<class ForwardIterator>
     pair<ForwardIterator, ForwardIterator>
@@ -576,19 +577,19 @@
 
 template<class T>
     pair<const T&, const T&>
-    minmax(const T& a, const T& b);
+    minmax(const T& a, const T& b);  // constexpr in C++14
 
 template<class T, class Compare>
     pair<const T&, const T&>
-    minmax(const T& a, const T& b, Compare comp);
+    minmax(const T& a, const T& b, Compare comp);  // constexpr in C++14
 
 template<class T>
     pair<T, T>
-    minmax(initializer_list<T> t);
+    minmax(initializer_list<T> t);  // constexpr in C++14
 
 template<class T, class Compare>
     pair<T, T>
-    minmax(initializer_list<T> t, Compare comp);
+    minmax(initializer_list<T> t, Compare comp);  // constexpr in C++14
 
 template <class InputIterator1, class InputIterator2>
     bool
@@ -643,6 +644,9 @@
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
+// I'd like to replace these with _VSTD::equal_to<void>, but can't because:
+//   * That only works with C++14 and later, and
+//   * We haven't included <functional> here.
 template <class _T1, class _T2 = _T1>
 struct __equal_to
 {
@@ -655,46 +659,59 @@
 template <class _T1>
 struct __equal_to<_T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
 };
 
 template <class _T1>
 struct __equal_to<const _T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
 };
 
 template <class _T1>
 struct __equal_to<_T1, const _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}
 };
 
 template <class _T1, class _T2 = _T1>
 struct __less
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}
+
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}
+
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}
 };
 
 template <class _T1>
 struct __less<_T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
 };
 
 template <class _T1>
 struct __less<const _T1, _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
 };
 
 template <class _T1>
 struct __less<_T1, const _T1>
 {
-    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
+    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}
 };
 
 template <class _Predicate>
@@ -2505,9 +2522,9 @@
 // min_element
 
 template <class _ForwardIterator, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _ForwardIterator
-min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+__min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
 {
     if (__first != __last)
     {
@@ -2519,19 +2536,27 @@
     return __first;
 }
 
+template <class _ForwardIterator, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY
+_ForwardIterator
+min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+{
+    return __min_element(__first, __last, __comp);
+}
+
 template <class _ForwardIterator>
 inline _LIBCPP_INLINE_VISIBILITY
 _ForwardIterator
 min_element(_ForwardIterator __first, _ForwardIterator __last)
 {
-    return _VSTD::min_element(__first, __last,
+    return __min_element(__first, __last,
               __less<typename iterator_traits<_ForwardIterator>::value_type>());
 }
 
 // min
 
 template <class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 min(const _Tp& __a, const _Tp& __b, _Compare __comp)
 {
@@ -2539,7 +2564,7 @@
 }
 
 template <class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 min(const _Tp& __a, const _Tp& __b)
 {
@@ -2549,19 +2574,19 @@
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
 template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 min(initializer_list<_Tp> __t, _Compare __comp)
 {
-    return *_VSTD::min_element(__t.begin(), __t.end(), __comp);
+    return *__min_element(__t.begin(), __t.end(), __comp);
 }
 
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 min(initializer_list<_Tp> __t)
 {
-    return *_VSTD::min_element(__t.begin(), __t.end());
+    return *__min_element(__t.begin(), __t.end(), __less<_Tp>());
 }
 
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
@@ -2569,9 +2594,9 @@
 // max_element
 
 template <class _ForwardIterator, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _ForwardIterator
-max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+__max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
 {
     if (__first != __last)
     {
@@ -2583,19 +2608,28 @@
     return __first;
 }
 
+
+template <class _ForwardIterator, class _Compare>
+inline _LIBCPP_INLINE_VISIBILITY
+_ForwardIterator
+max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
+{
+    return __max_element(__first, __last, __comp);
+}
+
 template <class _ForwardIterator>
 inline _LIBCPP_INLINE_VISIBILITY
 _ForwardIterator
 max_element(_ForwardIterator __first, _ForwardIterator __last)
 {
-    return _VSTD::max_element(__first, __last,
+    return __max_element(__first, __last,
               __less<typename iterator_traits<_ForwardIterator>::value_type>());
 }
 
 // max
 
 template <class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 max(const _Tp& __a, const _Tp& __b, _Compare __comp)
 {
@@ -2603,7 +2637,7 @@
 }
 
 template <class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 const _Tp&
 max(const _Tp& __a, const _Tp& __b)
 {
@@ -2613,19 +2647,19 @@
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
 template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 max(initializer_list<_Tp> __t, _Compare __comp)
 {
-    return *_VSTD::max_element(__t.begin(), __t.end(), __comp);
+    return *__max_element(__t.begin(), __t.end(), __comp);
 }
 
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp
 max(initializer_list<_Tp> __t)
 {
-    return *_VSTD::max_element(__t.begin(), __t.end());
+    return *__max_element(__t.begin(), __t.end(), __less<_Tp>());
 }
 
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
@@ -2684,13 +2718,14 @@
 std::pair<_ForwardIterator, _ForwardIterator>
 minmax_element(_ForwardIterator __first, _ForwardIterator __last)
 {
-    return _VSTD::minmax_element(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>());
+    return _VSTD::minmax_element(__first, __last,
+              __less<typename iterator_traits<_ForwardIterator>::value_type>());
 }
 
 // minmax
 
 template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 pair<const _Tp&, const _Tp&>
 minmax(const _Tp& __a, const _Tp& __b, _Compare __comp)
 {
@@ -2699,7 +2734,7 @@
 }
 
 template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 pair<const _Tp&, const _Tp&>
 minmax(const _Tp& __a, const _Tp& __b)
 {
@@ -2708,24 +2743,49 @@
 
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
 
-template<class _Tp>
-inline _LIBCPP_INLINE_VISIBILITY
-pair<_Tp, _Tp>
-minmax(initializer_list<_Tp> __t)
-{
-    pair<const _Tp*, const _Tp*> __p =
-                                   _VSTD::minmax_element(__t.begin(), __t.end());
-    return pair<_Tp, _Tp>(*__p.first, *__p.second);
-}
-
 template<class _Tp, class _Compare>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 pair<_Tp, _Tp>
 minmax(initializer_list<_Tp> __t, _Compare __comp)
 {
-    pair<const _Tp*, const _Tp*> __p =
-                           _VSTD::minmax_element(__t.begin(), __t.end(), __comp);
-    return pair<_Tp, _Tp>(*__p.first, *__p.second);
+    typedef typename initializer_list<_Tp>::const_iterator _Iter;
+    _Iter __first = __t.begin();
+    _Iter __last  = __t.end();
+    std::pair<_Tp, _Tp> __result ( *__first, *__first );
+
+    ++__first;
+    if (__t.size() % 2 == 0)
+    {
+        if (__comp(*__first,  __result.first))
+            __result.first  = *__first;
+        else
+            __result.second = *__first;
+        ++__first;
+    }
+    
+    while (__first != __last)
+    {
+        _Tp __prev = *__first++;
+        if (__comp(__prev, *__first)) {
+            if (__comp(__prev, __result.first))    __result.first  = __prev;
+            if (__comp(__result.second, *__first)) __result.second = *__first;
+            }
+        else {
+            if (__comp(*__first, __result.first)) __result.first  = *__first;
+            if (__comp(__result.second, __prev))  __result.second = __prev;
+            }
+                
+        __first++;
+    }
+    return __result;
+}
+
+template<class _Tp>
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
+pair<_Tp, _Tp>
+minmax(initializer_list<_Tp> __t)
+{
+    return _VSTD::minmax(__t, __less<_Tp>());
 }
 
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath
index def49c0..964c672 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cmath
@@ -1208,11 +1208,7 @@
 
 // fma
 
-inline _LIBCPP_INLINE_VISIBILITY float fmaf(float __x, float __y, float __z) _NOEXCEPT {return (float)((double)__x*__y + __z);}
-#ifndef FP_FAST_FMAF
-#define FP_FAST_FMAF
-#endif
-
+using ::fmaf;
 using ::fma;
 
 inline _LIBCPP_INLINE_VISIBILITY float       fma(float __x, float __y, float __z) _NOEXCEPT                   {return fmaf(__x, __y, __z);}
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef
index 7ef16ff..0030ec2 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstddef
@@ -52,7 +52,12 @@
 using ::ptrdiff_t;
 using ::size_t;
 
+#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T)
+// Re-use the compiler's <stddef.h> max_align_t where possible.
+using ::max_align_t;
+#else
 typedef long double max_align_t;
+#endif
 
 #ifdef _LIBCPP_HAS_NO_NULLPTR
 
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio
index 7787fad..8f2a7b0 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/cstdio
@@ -126,6 +126,19 @@
 inline _LIBCPP_INLINE_VISIBILITY int putc(int __c, FILE* __stream) {return __libcpp_putc(__c, __stream);}
 #endif  // putc
 
+#ifdef __ANDROID__
+// In bionic's stdio.h, putchar appears as both a function prototype and a macro (later
+// in the same header).  Because it's defined as a macro, the following code snippet replaces
+// it with a function but with *different* visibility.  GCC 4.x complains [-Wattributes]
+//
+//   include/stdio.h:236:5: warning: conflicts with previous declaration here [-Wattributes]
+//     int  putchar(int);
+//
+// Undefine putchar to avoid redefinition, and putchar does exist in libc.so
+//
+#undef putchar
+#endif
+
 #ifdef putchar
 inline _LIBCPP_INLINE_VISIBILITY int __libcpp_putchar(int __c) {return putchar(__c);}
 #undef putchar
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque b/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque
index f099000..9b256b7 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/deque
@@ -1208,7 +1208,7 @@
     deque()
         _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)
         {}
-    _LIBCPP_INLINE_VISIBILITY deque(const allocator_type& __a) : __base(__a) {}
+    _LIBCPP_INLINE_VISIBILITY explicit deque(const allocator_type& __a) : __base(__a) {}
     explicit deque(size_type __n);
 #if _LIBCPP_STD_VER > 11
     explicit deque(size_type __n, const _Allocator& __a);
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash
index c0523cc..5675d54 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/__hash
@@ -19,8 +19,7 @@
 namespace __gnu_cxx {
 using namespace std;
 
-template <typename _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash : public std::hash<_Tp>
-    { };
+template <typename _Tp> struct _LIBCPP_TYPE_VIS_ONLY hash { };
 
 template <> struct _LIBCPP_TYPE_VIS_ONLY hash<const char*>
     : public unary_function<const char*, size_t>
@@ -41,6 +40,96 @@
         return __do_string_hash<const char *>(__c, __c + strlen(__c));
     }
 };
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char>
+    : public unary_function<char, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(char __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<signed char>
+    : public unary_function<signed char, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(signed char __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char>
+    : public unary_function<unsigned char, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned char __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<short>
+    : public unary_function<short, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(short __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short>
+    : public unary_function<unsigned short, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned short __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<int>
+    : public unary_function<int, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(int __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int>
+    : public unary_function<unsigned int, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned int __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<long>
+    : public unary_function<long, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(long __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
+
+template <> struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long>
+    : public unary_function<unsigned long, size_t>
+{
+    _LIBCPP_INLINE_VISIBILITY
+    size_t operator()(unsigned long __c) const _NOEXCEPT
+    {
+        return __c;
+    }
+};
 }
 
 #endif  // _LIBCPP_EXT_HASH
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map
index 225b72b..36cd595 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ext/hash_map
@@ -430,9 +430,9 @@
     typedef const value_type&                                    reference;
     typedef typename __pointer_traits::template
 #ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
-            rebind<value_type>
+            rebind<const value_type>
 #else
-            rebind<value_type>::other
+            rebind<const value_type>::other
 #endif
                                                                  pointer;
 
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional b/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional
index 891ed46..167790b 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/functional
@@ -1617,21 +1617,22 @@
     if (__not_null(__f))
     {
         typedef __function::__func<_Fp, _Alloc, _Rp(_ArgTypes...)> _FF;
-        if (sizeof(_FF) <= sizeof(__buf_) && is_nothrow_copy_constructible<_Fp>::value)
+        typedef typename __alloc_traits::template
+#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
+            rebind_alloc<_FF>
+#else
+            rebind_alloc<_FF>::other
+#endif
+            _Ap;
+        _Ap __a(__a0);
+        if (sizeof(_FF) <= sizeof(__buf_) && 
+            is_nothrow_copy_constructible<_Fp>::value && is_nothrow_copy_constructible<_Ap>::value)
         {
             __f_ = (__base*)&__buf_;
-            ::new (__f_) _FF(_VSTD::move(__f));
+            ::new (__f_) _FF(_VSTD::move(__f), _Alloc(__a));
         }
         else
         {
-            typedef typename __alloc_traits::template
-#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
-                rebind_alloc<_FF>
-#else
-                rebind_alloc<_FF>::other
-#endif
-                                                         _Ap;
-            _Ap __a(__a0);
             typedef __allocator_destructor<_Ap> _Dp;
             unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));
             ::new (__hold.get()) _FF(_VSTD::move(__f), _Alloc(__a));
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/future b/9/sources/cxx-stl/llvm-libc++/libcxx/include/future
index 73d5456..de00f25 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/future
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/future
@@ -1872,7 +1872,7 @@
 __packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(_Fp&& __f)
     : __f_(nullptr)
 {
-    typedef typename remove_reference<_Fp>::type _FR;
+    typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;
     typedef __packaged_task_func<_FR, allocator<_FR>, _Rp(_ArgTypes...)> _FF;
     if (sizeof(_FF) <= sizeof(__buf_))
     {
@@ -1897,7 +1897,7 @@
     : __f_(nullptr)
 {
     typedef allocator_traits<_Alloc> __alloc_traits;
-    typedef typename remove_reference<_Fp>::type _FR;
+    typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;
     typedef __packaged_task_func<_FR, _Alloc, _Rp(_ArgTypes...)> _FF;
     if (sizeof(_FF) <= sizeof(__buf_))
     {
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip
index e334c7d..a5042c7 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iomanip
@@ -519,15 +519,16 @@
 __quoted_output ( basic_ostream<_CharT, _Traits> &__os, 
         _ForwardIterator __first, _ForwardIterator __last, _CharT __delim, _CharT __escape )
 {
-    __os << __delim;
+    _VSTD::basic_string<_CharT, _Traits> __str;
+    __str.push_back(__delim);
     for ( ; __first != __last; ++ __first )
     {
         if (_Traits::eq (*__first, __escape) || _Traits::eq (*__first, __delim))
-            __os << __escape;
-        __os << *__first;
+            __str.push_back(__escape);
+        __str.push_back(*__first);
     }
-    __os << __delim;
-    return __os;
+    __str.push_back(__delim);
+    return __put_character_sequence(__os, __str.data(), __str.size());
 }
 
 template <class _CharT, class _Traits, class _String>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator
index c6dd033..f338e01 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/iterator
@@ -138,6 +138,8 @@
 reverse_iterator<Iterator>
 operator+(typename reverse_iterator<Iterator>::difference_type n, const reverse_iterator<Iterator>& x);
 
+template <class Iterator> reverse_iterator<Iterator> make_reverse_iterator(Iterator i); // C++14
+
 template <class Container>
 class back_insert_iterator
 {
@@ -327,6 +329,7 @@
 */
 
 #include <__config>
+#include <__functional_base>
 #include <type_traits>
 #include <cstddef>
 #include <iosfwd>
@@ -534,7 +537,7 @@
                       typename iterator_traits<_Iter>::reference>
 {
 private:
-    mutable _Iter __t;
+    mutable _Iter __t;  // no longer used as of LWG #2360, not removed due to ABI break
 protected:
     _Iter current;
 public:
@@ -548,8 +551,8 @@
     template <class _Up> _LIBCPP_INLINE_VISIBILITY reverse_iterator(const reverse_iterator<_Up>& __u)
         : __t(__u.base()), current(__u.base()) {}
     _LIBCPP_INLINE_VISIBILITY _Iter base() const {return current;}
-    _LIBCPP_INLINE_VISIBILITY reference operator*() const {__t = current; return *--__t;}
-    _LIBCPP_INLINE_VISIBILITY pointer  operator->() const {return &(operator*());}
+    _LIBCPP_INLINE_VISIBILITY reference operator*() const {_Iter __tmp = current; return *--__tmp;}
+    _LIBCPP_INLINE_VISIBILITY pointer  operator->() const {return _VSTD::addressof(operator*());}
     _LIBCPP_INLINE_VISIBILITY reverse_iterator& operator++() {--current; return *this;}
     _LIBCPP_INLINE_VISIBILITY reverse_iterator  operator++(int)
         {reverse_iterator __tmp(*this); --current; return __tmp;}
@@ -632,6 +635,15 @@
     return reverse_iterator<_Iter>(__x.base() - __n);
 }
 
+#if _LIBCPP_STD_VER > 11
+template <class _Iter>
+inline _LIBCPP_INLINE_VISIBILITY
+reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
+{
+    return reverse_iterator<_Iter>(__i);
+}
+#endif
+
 template <class _Container>
 class _LIBCPP_TYPE_VIS_ONLY back_insert_iterator
     : public iterator<output_iterator_tag,
@@ -645,7 +657,7 @@
 public:
     typedef _Container container_type;
 
-    _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(&__x) {}
+    _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}
     _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator=(const typename _Container::value_type& __value_)
         {container->push_back(__value_); return *this;}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -678,7 +690,7 @@
 public:
     typedef _Container container_type;
 
-    _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(&__x) {}
+    _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}
     _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator=(const typename _Container::value_type& __value_)
         {container->push_front(__value_); return *this;}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -713,7 +725,7 @@
     typedef _Container container_type;
 
     _LIBCPP_INLINE_VISIBILITY insert_iterator(_Container& __x, typename _Container::iterator __i)
-        : container(&__x), iter(__i) {}
+        : container(_VSTD::addressof(__x)), iter(__i) {}
     _LIBCPP_INLINE_VISIBILITY insert_iterator& operator=(const typename _Container::value_type& __value_)
         {iter = container->insert(iter, __value_); ++iter; return *this;}
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
@@ -1386,7 +1398,7 @@
 }
 
 template <class _Tp, size_t _Np>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp*
 begin(_Tp (&__array)[_Np])
 {
@@ -1394,7 +1406,7 @@
 }
 
 template <class _Tp, size_t _Np>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 _Tp*
 end(_Tp (&__array)[_Np])
 {
@@ -1466,17 +1478,17 @@
 }
 
 template <class _Cp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 auto cbegin(const _Cp& __c) -> decltype(begin(__c))
 {
-    return _VSTD::begin(__c);
+    return begin(__c);
 }
 
 template <class _Cp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 auto cend(const _Cp& __c) -> decltype(end(__c))
 {
-    return _VSTD::end(__c);
+    return end(__c);
 }
 
 template <class _Cp>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale b/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale
index cdfe120..7a94613 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/locale
@@ -2799,7 +2799,7 @@
     explicit moneypunct_byname(const char* __nm, size_t __refs = 0)
         : moneypunct<_CharT, _International>(__refs) {init(__nm);}
 
-    _LIBCPP_ALWAYS_INLINE
+    _LIBCPP_ALWAYS_INLINE_EXCEPT_GCC49
     explicit moneypunct_byname(const string& __nm, size_t __refs = 0)
         : moneypunct<_CharT, _International>(__refs) {init(__nm.c_str());}
 
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/map b/9/sources/cxx-stl/llvm-libc++/libcxx/include/map
index 9779b70..5534e40 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/map
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/map
@@ -835,11 +835,18 @@
     typedef _VSTD::reverse_iterator<const_iterator>         const_reverse_iterator;
 
     _LIBCPP_INLINE_VISIBILITY
-    explicit map(const key_compare& __comp = key_compare())
+    map()
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
             is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(__vc(key_compare())) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit map(const key_compare& __comp)
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
         : __tree_(__vc(__comp)) {}
 
     _LIBCPP_INLINE_VISIBILITY
@@ -1568,11 +1575,18 @@
     typedef _VSTD::reverse_iterator<const_iterator>         const_reverse_iterator;
 
     _LIBCPP_INLINE_VISIBILITY
-    explicit multimap(const key_compare& __comp = key_compare())
+    multimap()
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
             is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(__vc(key_compare())) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit multimap(const key_compare& __comp)
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
         : __tree_(__vc(__comp)) {}
 
     _LIBCPP_INLINE_VISIBILITY
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory b/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory
index b9f61c2..d19bb7f 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/memory
@@ -479,6 +479,8 @@
     template<class Y> weak_ptr(shared_ptr<Y> const& r) noexcept;
     weak_ptr(weak_ptr const& r) noexcept;
     template<class Y> weak_ptr(weak_ptr<Y> const& r) noexcept;
+    weak_ptr(weak_ptr&& r) noexcept;                      // C++14
+    template<class Y> weak_ptr(weak_ptr<Y>&& r) noexcept; // C++14
 
     // destructor
     ~weak_ptr();
@@ -487,6 +489,8 @@
     weak_ptr& operator=(weak_ptr const& r) noexcept;
     template<class Y> weak_ptr& operator=(weak_ptr<Y> const& r) noexcept;
     template<class Y> weak_ptr& operator=(shared_ptr<Y> const& r) noexcept;
+    weak_ptr& operator=(weak_ptr&& r) noexcept;                      // C++14
+    template<class Y> weak_ptr& operator=(weak_ptr<Y>&& r) noexcept; // C++14
 
     // modifiers
     void swap(weak_ptr& r) noexcept;
@@ -2397,13 +2401,14 @@
 struct __same_or_less_cv_qualified_imp<_Ptr1, _Ptr2, false>
     : false_type {};
 
-template <class _Ptr1, class _Ptr2, bool = is_scalar<_Ptr1>::value &&
-                                         !is_pointer<_Ptr1>::value>
+template <class _Ptr1, class _Ptr2, bool = is_pointer<_Ptr1>::value ||
+                                           is_same<_Ptr1, _Ptr2>::value ||
+                                           __has_element_type<_Ptr1>::value>
 struct __same_or_less_cv_qualified
     : __same_or_less_cv_qualified_imp<_Ptr1, _Ptr2> {};
 
 template <class _Ptr1, class _Ptr2>
-struct __same_or_less_cv_qualified<_Ptr1, _Ptr2, true>
+struct __same_or_less_cv_qualified<_Ptr1, _Ptr2, false>
     : false_type {};
 
 // default_delete
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream
index 20587a1..9d96fd8 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/ostream
@@ -765,7 +765,7 @@
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os, _CharT __c)
 {
-	return _VSTD::__put_character_sequence(__os, &__c, 1);
+    return _VSTD::__put_character_sequence(__os, &__c, 1);
 }
 
 template<class _CharT, class _Traits>
@@ -805,28 +805,28 @@
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, char __c)
 {
-	return _VSTD::__put_character_sequence(__os, &__c, 1);
+    return _VSTD::__put_character_sequence(__os, &__c, 1);
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, signed char __c)
 {
-	return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
+    return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, unsigned char __c)
 {
-	return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
+    return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);
 }
 
 template<class _CharT, class _Traits>
 basic_ostream<_CharT, _Traits>&
 operator<<(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str)
 {
-	return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
+    return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
 }
 
 template<class _CharT, class _Traits>
@@ -879,23 +879,23 @@
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, const char* __str)
 {
-	return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
+    return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, const signed char* __str)
 {
-	const char *__s = (const char *) __str;
-	return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
+    const char *__s = (const char *) __str;
+    return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
 }
 
 template<class _Traits>
 basic_ostream<char, _Traits>&
 operator<<(basic_ostream<char, _Traits>& __os, const unsigned char* __str)
 {
-	const char *__s = (const char *) __str;
-	return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
+    const char *__s = (const char *) __str;
+    return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));
 }
 
 template <class _CharT, class _Traits>
@@ -1065,7 +1065,7 @@
 operator<<(basic_ostream<_CharT, _Traits>& __os,
            const basic_string<_CharT, _Traits, _Allocator>& __str)
 {
-	return _VSTD::__put_character_sequence(__os, __str.data(), __str.size());
+    return _VSTD::__put_character_sequence(__os, __str.data(), __str.size());
 }
 
 template <class _CharT, class _Traits>
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex b/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex
index 8c95145..26ade48 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/regex
@@ -437,7 +437,7 @@
 public:
     typedef sub_match<BidirectionalIterator>                  value_type;
     typedef const value_type&                                 const_reference;
-    typedef const_reference                                   reference;
+    typedef value_type&                                       reference;
     typedef /implementation-defined/                          const_iterator;
     typedef const_iterator                                    iterator;
     typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type;
@@ -546,6 +546,13 @@
                 const basic_regex<charT, traits>& e,
                 regex_constants::match_flag_type flags = regex_constants::match_default);
 
+template <class ST, class SA, class Allocator, class charT, class traits>
+    bool
+    regex_match(const basic_string<charT, ST, SA>&& s,
+                match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,
+                const basic_regex<charT, traits>& e,
+                regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14
+
 template <class charT, class traits>
     bool
     regex_match(const charT* str, const basic_regex<charT, traits>& e,
@@ -594,6 +601,13 @@
                  const basic_regex<charT, traits>& e,
                  regex_constants::match_flag_type flags = regex_constants::match_default);
 
+template <class ST, class SA, class Allocator, class charT, class traits>
+    bool
+    regex_search(const basic_string<charT, ST, SA>&& s,
+                 match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,
+                 const basic_regex<charT, traits>& e,
+                 regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14
+
 template <class OutputIterator, class BidirectionalIterator,
           class traits, class charT, class ST, class SA>
     OutputIterator
@@ -655,6 +669,10 @@
     regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
                    const regex_type& re,
                    regex_constants::match_flag_type m = regex_constants::match_default);
+    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                   const regex_type&& __re,
+                   regex_constants::match_flag_type __m 
+                                     = regex_constants::match_default) = delete; // C++14
     regex_iterator(const regex_iterator&);
     regex_iterator& operator=(const regex_iterator&);
 
@@ -691,15 +709,28 @@
                          const regex_type& re, int submatch = 0,
                          regex_constants::match_flag_type m = regex_constants::match_default);
     regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                         const regex_type&& re, int submatch = 0,
+                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
+    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
                          const regex_type& re, const vector<int>& submatches,
                          regex_constants::match_flag_type m = regex_constants::match_default);
     regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                         const regex_type&& re, const vector<int>& submatches,
+                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
+    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
                          const regex_type& re, initializer_list<int> submatches,
                          regex_constants::match_flag_type m = regex_constants::match_default);
+    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                         const regex_type&& re, initializer_list<int> submatches,
+                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14
     template <size_t N>
         regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
                              const regex_type& re, const int (&submatches)[N],
                              regex_constants::match_flag_type m = regex_constants::match_default);
+    template <size_t N>
+        regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,
+                             const regex_type& re, const int (&submatches)[N],
+                             regex_constants::match_flag_type m = regex_constants::match_default) = delete // C++14;
     regex_token_iterator(const regex_token_iterator&);
     regex_token_iterator& operator=(const regex_token_iterator&);
 
@@ -5232,7 +5263,7 @@
 public:
     _BidirectionalIterator __position_start_;
     typedef const value_type&                                 const_reference;
-    typedef const_reference                                   reference;
+    typedef value_type&                                       reference;
     typedef typename __container_type::const_iterator         const_iterator;
     typedef const_iterator                                    iterator;
     typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type;
@@ -5943,6 +5974,15 @@
     return __r;
 }
 
+#if _LIBCPP_STD_VER > 11
+template <class _ST, class _SA, class _Ap, class _Cp, class _Tp>
+bool
+regex_search(const basic_string<_Cp, _ST, _SA>&& __s,
+             match_results<typename basic_string<_Cp, _ST, _SA>::const_iterator, _Ap>&,
+             const basic_regex<_Cp, _Tp>& __e,
+             regex_constants::match_flag_type __flags = regex_constants::match_default) = delete; 
+#endif
+
 // regex_match
 
 template <class _BidirectionalIterator, class _Allocator, class _CharT, class _Traits>
@@ -5995,6 +6035,16 @@
     return _VSTD::regex_match(__s.begin(), __s.end(), __m, __e, __flags);
 }
 
+#if _LIBCPP_STD_VER > 11
+template <class _ST, class _SA, class _Allocator, class _CharT, class _Traits>
+inline _LIBCPP_INLINE_VISIBILITY
+bool
+regex_match(const basic_string<_CharT, _ST, _SA>&& __s,
+            match_results<typename basic_string<_CharT, _ST, _SA>::const_iterator, _Allocator>& __m,
+            const basic_regex<_CharT, _Traits>& __e,
+            regex_constants::match_flag_type __flags = regex_constants::match_default) = delete; 
+#endif
+
 template <class _CharT, class _Traits>
 inline _LIBCPP_INLINE_VISIBILITY
 bool
@@ -6040,7 +6090,14 @@
     regex_iterator();
     regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
                    const regex_type& __re,
-                   regex_constants::match_flag_type __m = regex_constants::match_default);
+                   regex_constants::match_flag_type __m
+                                              = regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                   const regex_type&& __re,
+                   regex_constants::match_flag_type __m 
+                                     = regex_constants::match_default) = delete;
+#endif
 
     bool operator==(const regex_iterator& __x) const;
     _LIBCPP_INLINE_VISIBILITY
@@ -6156,16 +6213,38 @@
                          const regex_type& __re, int __submatch = 0,
                          regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                         const regex_type&& __re, int __submatch = 0,
+                         regex_constants::match_flag_type __m =
+                                       regex_constants::match_default) = delete;
+#endif
+
     regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
                          const regex_type& __re, const vector<int>& __submatches,
                          regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                         const regex_type&& __re, const vector<int>& __submatches,
+                         regex_constants::match_flag_type __m =
+                                     regex_constants::match_default) = delete;
+#endif
+
 #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
     regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
                          const regex_type& __re,
                          initializer_list<int> __submatches,
                          regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+
+#if _LIBCPP_STD_VER > 11
+    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,
+                         const regex_type&& __re,
+                         initializer_list<int> __submatches,
+                         regex_constants::match_flag_type __m =
+                                       regex_constants::match_default) = delete;
+#endif
 #endif  // _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS
     template <size_t _Np>
         regex_token_iterator(_BidirectionalIterator __a,
@@ -6174,6 +6253,16 @@
                              const int (&__submatches)[_Np],
                              regex_constants::match_flag_type __m =
                                                 regex_constants::match_default);
+#if _LIBCPP_STD_VER > 11
+    template <std::size_t _Np>
+        regex_token_iterator(_BidirectionalIterator __a,
+                             _BidirectionalIterator __b,
+                             const regex_type&& __re,
+                             const int (&__submatches)[_Np],
+                             regex_constants::match_flag_type __m =
+                                      regex_constants::match_default) = delete;
+#endif
+
     regex_token_iterator(const regex_token_iterator&);
     regex_token_iterator& operator=(const regex_token_iterator&);
 
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/set b/9/sources/cxx-stl/llvm-libc++/libcxx/include/set
index a537c5f..b9e776d 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/set
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/set
@@ -425,14 +425,22 @@
     typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;
 
     _LIBCPP_INLINE_VISIBILITY
-    explicit set(const value_compare& __comp = value_compare())
+    set()
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
             is_nothrow_copy_constructible<key_compare>::value)
-        : __tree_(__comp) {}
+        : __tree_(value_compare()) {}
+
     _LIBCPP_INLINE_VISIBILITY
-    set(const value_compare& __comp, const allocator_type& __a)
+    explicit set(const value_compare& __comp)
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(__comp) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit set(const value_compare& __comp, const allocator_type& __a)
         : __tree_(__comp, __a) {}
     template <class _InputIterator>
         _LIBCPP_INLINE_VISIBILITY
@@ -822,14 +830,22 @@
 
     // construct/copy/destroy:
     _LIBCPP_INLINE_VISIBILITY
-    explicit multiset(const value_compare& __comp = value_compare())
+    multiset()
         _NOEXCEPT_(
             is_nothrow_default_constructible<allocator_type>::value &&
             is_nothrow_default_constructible<key_compare>::value &&
             is_nothrow_copy_constructible<key_compare>::value)
-        : __tree_(__comp) {}
+        : __tree_(value_compare()) {}
+
     _LIBCPP_INLINE_VISIBILITY
-    multiset(const value_compare& __comp, const allocator_type& __a)
+    explicit multiset(const value_compare& __comp)
+        _NOEXCEPT_(
+            is_nothrow_default_constructible<allocator_type>::value &&
+            is_nothrow_copy_constructible<key_compare>::value)
+        : __tree_(__comp) {}
+
+    _LIBCPP_INLINE_VISIBILITY
+    explicit multiset(const value_compare& __comp, const allocator_type& __a)
         : __tree_(__comp, __a) {}
     template <class _InputIterator>
         _LIBCPP_INLINE_VISIBILITY
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex b/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex
index 5b1f53a..7661054 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/shared_mutex
@@ -19,14 +19,14 @@
 namespace std
 {
 
-class shared_mutex
+class shared_timed_mutex
 {
 public:
-    shared_mutex();
-    ~shared_mutex();
+    shared_timed_mutex();
+    ~shared_timed_mutex();
 
-    shared_mutex(const shared_mutex&) = delete;
-    shared_mutex& operator=(const shared_mutex&) = delete;
+    shared_timed_mutex(const shared_timed_mutex&) = delete;
+    shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
 
     // Exclusive ownership
     void lock(); // blocking
@@ -114,7 +114,7 @@
 
 _LIBCPP_BEGIN_NAMESPACE_STD
 
-class _LIBCPP_TYPE_VIS shared_mutex
+class _LIBCPP_TYPE_VIS shared_timed_mutex
 {
     mutex               __mut_;
     condition_variable  __gate1_;
@@ -124,11 +124,11 @@
     static const unsigned __write_entered_ = 1U << (sizeof(unsigned)*__CHAR_BIT__ - 1);
     static const unsigned __n_readers_ = ~__write_entered_;
 public:
-    shared_mutex();
-    _LIBCPP_INLINE_VISIBILITY ~shared_mutex() = default;
+    shared_timed_mutex();
+    _LIBCPP_INLINE_VISIBILITY ~shared_timed_mutex() = default;
 
-    shared_mutex(const shared_mutex&) = delete;
-    shared_mutex& operator=(const shared_mutex&) = delete;
+    shared_timed_mutex(const shared_timed_mutex&) = delete;
+    shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;
 
     // Exclusive ownership
     void lock();
@@ -163,7 +163,7 @@
 
 template <class _Clock, class _Duration>
 bool
-shared_mutex::try_lock_until(
+shared_timed_mutex::try_lock_until(
                         const chrono::time_point<_Clock, _Duration>& __abs_time)
 {
     unique_lock<mutex> __lk(__mut_);
@@ -198,7 +198,7 @@
 
 template <class _Clock, class _Duration>
 bool
-shared_mutex::try_lock_shared_until(
+shared_timed_mutex::try_lock_shared_until(
                         const chrono::time_point<_Clock, _Duration>& __abs_time)
 {
     unique_lock<mutex> __lk(__mut_);
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/string b/9/sources/cxx-stl/llvm-libc++/libcxx/include/string
index f93fac1..7e61909 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/string
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/string
@@ -161,7 +161,7 @@
     basic_string& operator+=(initializer_list<value_type>);
 
     basic_string& append(const basic_string& str);
-    basic_string& append(const basic_string& str, size_type pos, size_type n);
+    basic_string& append(const basic_string& str, size_type pos, size_type n=npos); //C++14
     basic_string& append(const value_type* s, size_type n);
     basic_string& append(const value_type* s);
     basic_string& append(size_type n, value_type c);
@@ -178,7 +178,7 @@
 
     basic_string& assign(const basic_string& str);
     basic_string& assign(basic_string&& str);
-    basic_string& assign(const basic_string& str, size_type pos, size_type n);
+    basic_string& assign(const basic_string& str, size_type pos, size_type n=npos); // C++14
     basic_string& assign(const value_type* s, size_type n);
     basic_string& assign(const value_type* s);
     basic_string& assign(size_type n, value_type c);
@@ -189,7 +189,7 @@
     basic_string& insert(size_type pos1, const basic_string& str);
     basic_string& insert(size_type pos1, const basic_string& str,
                          size_type pos2, size_type n);
-    basic_string& insert(size_type pos, const value_type* s, size_type n);
+    basic_string& insert(size_type pos, const value_type* s, size_type n=npos); //C++14
     basic_string& insert(size_type pos, const value_type* s);
     basic_string& insert(size_type pos, size_type n, value_type c);
     iterator      insert(const_iterator p, value_type c);
@@ -204,7 +204,7 @@
 
     basic_string& replace(size_type pos1, size_type n1, const basic_string& str);
     basic_string& replace(size_type pos1, size_type n1, const basic_string& str,
-                          size_type pos2, size_type n2);
+                          size_type pos2, size_type n2=npos); // C++14
     basic_string& replace(size_type pos, size_type n1, const value_type* s, size_type n2);
     basic_string& replace(size_type pos, size_type n1, const value_type* s);
     basic_string& replace(size_type pos, size_type n1, size_type n2, value_type c);
@@ -261,7 +261,7 @@
     int compare(const basic_string& str) const noexcept;
     int compare(size_type pos1, size_type n1, const basic_string& str) const;
     int compare(size_type pos1, size_type n1, const basic_string& str,
-                size_type pos2, size_type n2) const;
+                size_type pos2, size_type n2=npos) const; // C++14
     int compare(const value_type* s) const noexcept;
     int compare(size_type pos1, size_type n1, const value_type* s) const;
     int compare(size_type pos1, size_type n1, const value_type* s, size_type n2) const;
@@ -1426,7 +1426,7 @@
 
     _LIBCPP_INLINE_VISIBILITY
     basic_string& append(const basic_string& __str);
-    basic_string& append(const basic_string& __str, size_type __pos, size_type __n);
+    basic_string& append(const basic_string& __str, size_type __pos, size_type __n=npos);
     basic_string& append(const value_type* __s, size_type __n);
     basic_string& append(const value_type* __s);
     basic_string& append(size_type __n, value_type __c);
@@ -1465,7 +1465,7 @@
     basic_string& assign(basic_string&& str)
         {*this = _VSTD::move(str); return *this;}
 #endif
-    basic_string& assign(const basic_string& __str, size_type __pos, size_type __n);
+    basic_string& assign(const basic_string& __str, size_type __pos, size_type __n=npos);
     basic_string& assign(const value_type* __s, size_type __n);
     basic_string& assign(const value_type* __s);
     basic_string& assign(size_type __n, value_type __c);
@@ -1491,7 +1491,7 @@
 
     _LIBCPP_INLINE_VISIBILITY
     basic_string& insert(size_type __pos1, const basic_string& __str);
-    basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n);
+    basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n=npos);
     basic_string& insert(size_type __pos, const value_type* __s, size_type __n);
     basic_string& insert(size_type __pos, const value_type* __s);
     basic_string& insert(size_type __pos, size_type __n, value_type __c);
@@ -1527,7 +1527,7 @@
 
     _LIBCPP_INLINE_VISIBILITY
     basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str);
-    basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2);
+    basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos);
     basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);
     basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);
     basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);
@@ -1619,7 +1619,7 @@
     int compare(const basic_string& __str) const _NOEXCEPT;
     _LIBCPP_INLINE_VISIBILITY
     int compare(size_type __pos1, size_type __n1, const basic_string& __str) const;
-    int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2) const;
+    int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const;
     int compare(const value_type* __s) const _NOEXCEPT;
     int compare(size_type __pos1, size_type __n1, const value_type* __s) const;
     int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;
@@ -3467,7 +3467,7 @@
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_first_of(): recieved nullptr");
     return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3477,7 +3477,7 @@
                                                          size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3488,7 +3488,7 @@
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_first_of(): recieved nullptr");
     return _VSTD::__find_first_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3510,7 +3510,7 @@
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_last_of(): recieved nullptr");
     return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3520,7 +3520,7 @@
                                                         size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3531,7 +3531,7 @@
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_last_of(): recieved nullptr");
     return _VSTD::__find_last_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3553,7 +3553,7 @@
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_first_not_of(): recieved nullptr");
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3563,7 +3563,7 @@
                                                              size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3574,7 +3574,7 @@
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_first_not_of(): recieved nullptr");
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3584,7 +3584,7 @@
                                                              size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_first_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __c, __pos);
+        (data(), size(), __c, __pos);
 }
 
 // find_last_not_of
@@ -3597,7 +3597,7 @@
 {
     _LIBCPP_ASSERT(__n == 0 || __s != nullptr, "string::find_last_not_of(): recieved nullptr");
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, __n);
+        (data(), size(), __s, __pos, __n);
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3607,7 +3607,7 @@
                                                             size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __str.data(), __pos, __str.size());
+        (data(), size(), __str.data(), __pos, __str.size());
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3618,7 +3618,7 @@
 {
     _LIBCPP_ASSERT(__s != nullptr, "string::find_last_not_of(): recieved nullptr");
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __s, __pos, traits_type::length(__s));
+        (data(), size(), __s, __pos, traits_type::length(__s));
 }
 
 template<class _CharT, class _Traits, class _Allocator>
@@ -3628,7 +3628,7 @@
                                                             size_type __pos) const _NOEXCEPT
 {
     return _VSTD::__find_last_not_of<value_type, size_type, traits_type, npos>
-    	(data(), size(), __c, __pos);
+        (data(), size(), __c, __pos);
 }
 
 // compare
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple b/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple
index 24e086d..27a5a46 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/tuple
@@ -74,7 +74,7 @@
 
 template <class... T> tuple<V...>  make_tuple(T&&...); // constexpr in C++14
 template <class... T> tuple<ATypes...> forward_as_tuple(T&&...) noexcept; // constexpr in C++14
-template <class... T> tuple<T&...> tie(T&...) noexcept;
+template <class... T> tuple<T&...> tie(T&...) noexcept; // constexpr in C++14
 template <class... Tuples> tuple<CTypes...> tuple_cat(Tuples&&... tpls); // constexpr in C++14
   
 // 20.4.1.4, tuple helper classes:
@@ -82,13 +82,15 @@
 template <class... T> class tuple_size<tuple<T...>>;
 template <intsize_t I, class T> class tuple_element; // undefined
 template <intsize_t I, class... T> class tuple_element<I, tuple<T...>>;
+template <size_t _Ip, class ..._Tp>
+  using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type; // C++14
 
 // 20.4.1.5, element access:
 template <intsize_t I, class... T>
     typename tuple_element<I, tuple<T...>>::type&
     get(tuple<T...>&) noexcept; // constexpr in C++14
 template <intsize_t I, class... T>
-    typename tuple_element<I, tuple<T...>>::type const&
+    typename const tuple_element<I, tuple<T...>>::type &
     get(const tuple<T...>&) noexcept; // constexpr in C++14
 template <intsize_t I, class... T>
     typename tuple_element<I, tuple<T...>>::type&&
@@ -152,6 +154,11 @@
     typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;
 };
 
+#if _LIBCPP_STD_VER > 11
+template <size_t _Ip, class ..._Tp>
+using tuple_element_t = typename tuple_element <_Ip, _Tp...>::type;
+#endif
+
 // __tuple_leaf
 
 template <size_t _Ip, class _Hp, bool=is_empty<_Hp>::value
@@ -261,17 +268,8 @@
                                 >::value)),
        "Attempted to construct a reference element in a tuple with an rvalue");}
 
-    _LIBCPP_INLINE_VISIBILITY
-    _LIBCPP_CONSTEXPR_AFTER_CXX11
-    __tuple_leaf(const __tuple_leaf& __t) _NOEXCEPT_(is_nothrow_copy_constructible<_Hp>::value)
-        : value(__t.get())
-        {static_assert(!is_rvalue_reference<_Hp>::value, "Can not copy a tuple with rvalue reference member");}
-
-    _LIBCPP_INLINE_VISIBILITY
-    _LIBCPP_CONSTEXPR_AFTER_CXX11
-    __tuple_leaf(__tuple_leaf&& __t) _NOEXCEPT_(is_nothrow_move_constructible<_Hp>::value)
-        : value(_VSTD::forward<_Hp>(__t.get()))
-        {}
+    __tuple_leaf(const __tuple_leaf& __t) = default;
+    __tuple_leaf(__tuple_leaf&& __t) = default;
 
     template <class _Tp>
         _LIBCPP_INLINE_VISIBILITY
@@ -796,7 +794,7 @@
 // tie
 
 template <class ..._Tp>
-inline _LIBCPP_INLINE_VISIBILITY
+inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
 tuple<_Tp&...>
 tie(_Tp&... __t) _NOEXCEPT
 {
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits b/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits
index 3e3d8b7..b5f4b3e 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/type_traits
@@ -91,6 +91,7 @@
     template <class T> struct is_empty;
     template <class T> struct is_polymorphic;
     template <class T> struct is_abstract;
+    template <class T> struct is_final; // C++14
 
     template <class T, class... Args> struct is_constructible;
     template <class T>                struct is_default_constructible;
@@ -236,10 +237,10 @@
     typedef _Tp               value_type;
     typedef integral_constant type;
     _LIBCPP_INLINE_VISIBILITY
-        _LIBCPP_CONSTEXPR operator value_type() const {return value;}
+        _LIBCPP_CONSTEXPR operator value_type() const _NOEXCEPT {return value;}
 #if _LIBCPP_STD_VER > 11
     _LIBCPP_INLINE_VISIBILITY
-         constexpr value_type operator ()() const {return value;}
+         constexpr value_type operator ()() const _NOEXCEPT {return value;}
 #endif
 };
 
@@ -324,6 +325,10 @@
 template <>          struct __libcpp_is_integral<unsigned long>      : public true_type {};
 template <>          struct __libcpp_is_integral<long long>          : public true_type {};
 template <>          struct __libcpp_is_integral<unsigned long long> : public true_type {};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <>          struct __libcpp_is_integral<__int128_t>         : public true_type {};
+template <>          struct __libcpp_is_integral<__uint128_t>        : public true_type {};
+#endif
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_integral
     : public __libcpp_is_integral<typename remove_cv<_Tp>::type> {};
@@ -759,6 +764,13 @@
 
 template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_abstract : public __libcpp_abstract<_Tp> {};
 
+// is_final
+
+#if _LIBCPP_STD_VER > 11 && __has_feature(is_final)
+template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY 
+is_final : public integral_constant<bool, __is_final(_Tp)> {};
+#endif
+
 // is_base_of
 
 #ifdef _LIBCPP_HAS_IS_BASE_OF
@@ -946,7 +958,7 @@
 
 // is_polymorphic
 
-#if __has_feature(is_polymorphic)
+#if __has_feature(is_polymorphic) || defined(_LIBCPP_MSVC)
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY is_polymorphic
@@ -1239,7 +1251,13 @@
     __type_list<signed int,
     __type_list<signed long,
     __type_list<signed long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+    __type_list<__int128_t,
+#endif
     __nat
+#ifndef _LIBCPP_HAS_NO_INT128
+    >
+#endif
     > > > > > __signed_types;
 
 typedef
@@ -1248,7 +1266,13 @@
     __type_list<unsigned int,
     __type_list<unsigned long,
     __type_list<unsigned long long,
+#ifndef _LIBCPP_HAS_NO_INT128
+    __type_list<__uint128_t,
+#endif
     __nat
+#ifndef _LIBCPP_HAS_NO_INT128
+    >
+#endif
     > > > > > __unsigned_types;
 
 template <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first;
@@ -1332,6 +1356,10 @@
 template <> struct __make_signed<unsigned long,      true> {typedef long      type;};
 template <> struct __make_signed<  signed long long, true> {typedef long long type;};
 template <> struct __make_signed<unsigned long long, true> {typedef long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_signed<__int128_t,         true> {typedef __int128_t type;};
+template <> struct __make_signed<__uint128_t,        true> {typedef __int128_t type;};
+#endif
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY make_signed
@@ -1361,6 +1389,10 @@
 template <> struct __make_unsigned<unsigned long,      true> {typedef unsigned long      type;};
 template <> struct __make_unsigned<  signed long long, true> {typedef unsigned long long type;};
 template <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;};
+#ifndef _LIBCPP_HAS_NO_INT128
+template <> struct __make_unsigned<__int128_t,         true> {typedef __uint128_t        type;};
+template <> struct __make_unsigned<__uint128_t,        true> {typedef __uint128_t        type;};
+#endif
 
 template <class _Tp>
 struct _LIBCPP_TYPE_VIS_ONLY make_unsigned
@@ -2002,10 +2034,24 @@
 
 #endif  // _LIBCPP_HAS_NO_VARIADICS
 
-#ifndef _LIBCPP_HAS_NO_VARIADICS
-
 // template <class T, class... Args> struct is_constructible;
 
+namespace __is_construct
+{
+struct __nat {};
+}
+
+#if __has_feature(is_constructible)
+
+template <class _Tp, class ..._Args>
+struct _LIBCPP_TYPE_VIS_ONLY is_constructible
+    : public integral_constant<bool, __is_constructible(_Tp, _Args...)>
+    {};
+
+#else
+
+#ifndef _LIBCPP_HAS_NO_VARIADICS
+
 //      main is_constructible test
 
 template <class _Tp, class ..._Args>
@@ -2233,13 +2279,6 @@
 
 //      is_constructible entry point
 
-namespace __is_construct
-{
-
-struct __nat {};
-
-}
-
 template <class _Tp, class _A0 = __is_construct::__nat,
                      class _A1 = __is_construct::__nat>
 struct _LIBCPP_TYPE_VIS_ONLY is_constructible
@@ -2304,6 +2343,7 @@
     {};
 
 #endif  // _LIBCPP_HAS_NO_VARIADICS
+#endif  // __has_feature(is_constructible)
 
 // is_default_constructible
 
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo b/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo
index 6ffee0f..14ef77b 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/typeinfo
@@ -60,6 +60,7 @@
 #include <__config>
 #include <exception>
 #include <cstddef>
+#include <cstdint>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #pragma GCC system_header
@@ -73,32 +74,75 @@
     type_info& operator=(const type_info&);
     type_info(const type_info&);
 protected:
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
     const char* __type_name;
+#else
+    // A const char* with the non-unique RTTI bit possibly set.
+    uintptr_t __type_name;
+#endif
 
     _LIBCPP_INLINE_VISIBILITY
     explicit type_info(const char* __n)
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         : __type_name(__n) {}
+#else
+        : __type_name(reinterpret_cast<uintptr_t>(__n)) {}
+#endif
 
 public:
     virtual ~type_info();
 
     _LIBCPP_INLINE_VISIBILITY
-    const char* name() const _NOEXCEPT {return __type_name;}
+    const char* name() const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
+        {return __type_name;}
+#else
+        {return reinterpret_cast<const char*>(__type_name & ~_LIBCPP_NONUNIQUE_RTTI_BIT);}
+#endif
 
     _LIBCPP_INLINE_VISIBILITY
     bool before(const type_info& __arg) const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         {return __type_name < __arg.__type_name;}
+#else
+        {if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))
+           return __type_name < __arg.__type_name;
+         return __compare_nonunique_names(__arg) < 0;}
+#endif
+
     _LIBCPP_INLINE_VISIBILITY
     size_t hash_code() const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         {return *reinterpret_cast<const size_t*>(&__type_name);}
+#else
+        {if (!(__type_name & _LIBCPP_NONUNIQUE_RTTI_BIT)) return __type_name;
+         const char *__ptr = name();
+         size_t __hash = 5381;
+         while (unsigned char __c = static_cast<unsigned char>(*__ptr++))
+           __hash = (__hash * 33) ^ __c;
+         return __hash;}
+#endif
 
     _LIBCPP_INLINE_VISIBILITY
     bool operator==(const type_info& __arg) const _NOEXCEPT
+#ifndef _LIBCPP_NONUNIQUE_RTTI_BIT
         {return __type_name == __arg.__type_name;}
+#else
+        {if (__type_name == __arg.__type_name) return true;
+         if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))
+           return false;
+         return __compare_nonunique_names(__arg) == 0;}
+#endif
     _LIBCPP_INLINE_VISIBILITY
     bool operator!=(const type_info& __arg) const _NOEXCEPT
         {return !operator==(__arg);}
 
+#ifdef _LIBCPP_NONUNIQUE_RTTI_BIT
+  private:
+    _LIBCPP_INLINE_VISIBILITY
+    int __compare_nonunique_names(const type_info &__arg) const _NOEXCEPT
+        {return __builtin_strcmp(name(), __arg.name());}
+#endif
 };
 
 class _LIBCPP_EXCEPTION_ABI bad_cast
diff --git a/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility b/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility
index 0a1a7f1..8a7e1dc 100644
--- a/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility
+++ b/9/sources/cxx-stl/llvm-libc++/libcxx/include/utility
@@ -101,30 +101,30 @@
 template <class T> class tuple_size;
 template <size_t I, class T> class tuple_element;
 
-template <class T1, class T2> struct tuple_size<std::pair<T1, T2> >;
-template <class T1, class T2> struct tuple_element<0, std::pair<T1, T2> >;
-template <class T1, class T2> struct tuple_element<1, std::pair<T1, T2> >;
+template <class T1, class T2> struct tuple_size<pair<T1, T2> >;
+template <class T1, class T2> struct tuple_element<0, pair<T1, T2> >;
+template <class T1, class T2> struct tuple_element<1, pair<T1, T2> >;
 
 template<size_t I, class T1, class T2>
-    typename tuple_element<I, std::pair<T1, T2> >::type&
-    get(std::pair<T1, T2>&) noexcept; // constexpr in C++14
+    typename tuple_element<I, pair<T1, T2> >::type&
+    get(pair<T1, T2>&) noexcept; // constexpr in C++14
 
 template<size_t I, class T1, class T2>
-    const typename const tuple_element<I, std::pair<T1, T2> >::type&
-    get(const std::pair<T1, T2>&) noexcept; // constexpr in C++14
+    const typename const tuple_element<I, pair<T1, T2> >::type&
+    get(const pair<T1, T2>&) noexcept; // constexpr in C++14
 
 template<size_t I, class T1, class T2>
-    typename tuple_element<I, std::pair<T1, T2> >::type&&
-    get(std::pair<T1, T2>&&) noexcept; // constexpr in C++14
+    typename tuple_element<I, pair<T1, T2> >::type&&
+    get(pair<T1, T2>&&) noexcept; // constexpr in C++14
 
 template<class T1, class T2>
-    constexpr T1& get(std::pair<T1, T2>&) noexcept; // C++14
+    constexpr T1& get(pair<T1, T2>&) noexcept; // C++14
 
 template<size_t I, class T1, class T2>
-    constexpr T1 const& get(std::pair<T1, T2> const &) noexcept; // C++14
+    constexpr T1 const& get(pair<T1, T2> const &) noexcept; // C++14
 
 template<size_t I, class T1, class T2>
-    constexpr T1&& get(std::pair<T1, T2>&&) noexcept; // C++14
+    constexpr T1&& get(pair<T1, T2>&&) noexcept; // C++14
 
 // C++14
 
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so
index 86bbfb6..54e0b3f 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a
index 8b13246..8a86d58 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so
index 11e2864..7c4e3cf 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a
index 38191cb..5ccc58a 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so
index 3af2ada..6533e92 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a
index 9229848..2b70f71 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/thumb/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so
index 5300f35..2a0d239 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a
index 6f546be..3bfc9cb 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so
index 3f785ff..37d95fd 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a
index 02af75c..e93005c 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/armeabi/thumb/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so
index 14706d6..1e5b532 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a
index 434d660..9a2d7ae 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so
index bae8240..945f5d9 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a
index 6601913..3336917 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/mips64/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so
index c5deddc..b8c1c8c 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a
index bdc24a5..f9eee7d 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86/libc++_static.a
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
index e8e9f86..b0a31c4 100755
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_shared.so
Binary files differ
diff --git a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a
index 62495e6..38a4769 100644
--- a/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a
+++ b/9/sources/cxx-stl/llvm-libc++/libs/x86_64/libc++_static.a
Binary files differ