diff options
author | Andrew Hsieh <andrewhsieh@google.com> | 2014-05-09 21:37:30 +0800 |
---|---|---|
committer | Andrew Hsieh <andrewhsieh@google.com> | 2014-05-09 23:42:43 +0800 |
commit | 1b1d56acc5281d0201fdbe8539012a2dbf09bc8f (patch) | |
tree | 5c6aeb7acb5aa97762a1b97c74e754855455e083 | |
parent | 5fd2a238a3a2697a4cde0e4ed2a8b05b3791fb43 (diff) | |
download | prebuilts_ndk-1b1d56acc5281d0201fdbe8539012a2dbf09bc8f.zip prebuilts_ndk-1b1d56acc5281d0201fdbe8539012a2dbf09bc8f.tar.gz prebuilts_ndk-1b1d56acc5281d0201fdbe8539012a2dbf09bc8f.tar.bz2 |
Refresh 64-bit headers/libs; upgrade libc++ to r207307
to bionic: adfc007dbf936bd021d79ba2d2c360a3cfc77be9 5/19 2014
Change-Id: Id9994bab1ab8240853890c108e8aaa3ebac47fa8
280 files changed, 2200 insertions, 1955 deletions
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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_shared.so Binary files differindex 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 diff --git a/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a b/8/sources/cxx-stl/gabi++/libs/mips64/libgabi++_static.a Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_shared.so Binary files differindex 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 diff --git a/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a b/8/sources/cxx-stl/stlport/libs/mips64/libstlport_static.a Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 char *_ctype_; 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 @@ int _toupper(int); #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 @@ typedef struct { } 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. - */ - -/* - * 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. - */ - -/* - * 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. - */ +#ifndef _MACHINE_IEEE_H_ +#define _MACHINE_IEEE_H_ -#define SNG_EXPBITS 8 -#define SNG_FRACBITS 23 +#include <sys/types.h> -#define DBL_EXPBITS 11 -#define DBL_FRACBITS 52 +__BEGIN_DECLS -#ifndef __VFP_FP__ -#define E80_EXPBITS 15 -#define E80_FRACBITS 64 +#define SNG_EXPBITS 8 +#define SNG_FRACBITS 23 -#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__ -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__ */ +#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_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 @@ float significandf(float); * 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 frexpl(long double value, int *); /* fundamentally !__pure2 */ 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 @@ long double nextafterl(long double, long double); 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 */ -__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); +#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 /* !_DECLARE_C99_LDBL_MATH */ -#endif /* __ISO_C_VISIBLE >= 1999 */ -#endif /* !_MATH_EXTRA_H_ */ +#endif /* !_MATH_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 @@ enum { 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 @@ typedef struct { 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 long pthread_t; 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 unshare(int); 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_) \ - do{ \ - (set_)->__bits[0] = 0; \ - }while(0) - -# 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_) +#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) -#endif /* CPU_SETSIZE != __CPU_BITS */ +#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_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_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_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_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_)) +#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_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_EQUAL_S(setsize, set1, set2) (__builtin_memcmp(set1, set2, setsize) == 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_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 @@ typedef int sig_atomic_t; #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 uint8_t uint_fast8_t; 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 @@ typedef int64_t intmax_t; #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 @@ typedef int64_t intmax_t; #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 __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 unsigned long long strtoull(const char *, char **, int); 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"))) - -/* 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 private and never exposed by the shared library. */ +#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden"))) + +/* 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 @@ typedef union epoll_data { 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 __mode_t mode_t; 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 __nlink_t nlink_t; 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 @@ __BEGIN_DECLS #if __i386__ -struct user_i387_struct { +struct user_fpregs_struct { long cwd; long swd; long twd; @@ -83,7 +83,7 @@ struct user_regs_struct { 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 @@ struct user { 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 @@ struct user { #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 { 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 @@ struct user { 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 @@ Modified for Bionic by the Android Open Source Project #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 @@ __BEGIN_DECLS #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 @@ typedef enum { 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 fwprintf(FILE *, const wchar_t *, ...); 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 wint_t getwchar(void); 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 int swscanf(const wchar_t *, const wchar_t *, ...); 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 int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so b/9/platforms/android-19/arch-arm64/usr/lib/libEGL.so Binary files differindex 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 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 Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv2.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so b/9/platforms/android-19/arch-arm64/usr/lib/libGLESv3.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so b/9/platforms/android-19/arch-arm64/usr/lib/libOpenMAXAL.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so b/9/platforms/android-19/arch-arm64/usr/lib/libOpenSLES.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so b/9/platforms/android-19/arch-arm64/usr/lib/libandroid.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libc.a b/9/platforms/android-19/arch-arm64/usr/lib/libc.a Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libc.so b/9/platforms/android-19/arch-arm64/usr/lib/libc.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libdl.so b/9/platforms/android-19/arch-arm64/usr/lib/libdl.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so b/9/platforms/android-19/arch-arm64/usr/lib/libjnigraphics.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/liblog.so b/9/platforms/android-19/arch-arm64/usr/lib/liblog.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libm.a b/9/platforms/android-19/arch-arm64/usr/lib/libm.a Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libm.so b/9/platforms/android-19/arch-arm64/usr/lib/libm.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.a Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so b/9/platforms/android-19/arch-arm64/usr/lib/libstdc++.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-arm64/usr/lib/libz.a b/9/platforms/android-19/arch-arm64/usr/lib/libz.a Binary files differindex 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 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 @@ struct siginfo; #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 @@ typedef unsigned long old_sigset_t; #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 char *_ctype_; 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 @@ int _toupper(int); #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 @@ typedef struct { } 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 - -#define DBL_EXPBITS 11 -#define DBL_FRACHBITS 20 -#define DBL_FRACLBITS 32 -#define DBL_FRACBITS 52 - -#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_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) +#include <sys/types.h> + +__BEGIN_DECLS + +#define SNG_EXPBITS 8 +#define SNG_FRACBITS 23 + +#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 @@ float significandf(float); * 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 frexpl(long double value, int *); /* fundamentally !__pure2 */ 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 @@ long double nextafterl(long double, long double); 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 */ -__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); +#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 /* !_DECLARE_C99_LDBL_MATH */ -#endif /* __ISO_C_VISIBLE >= 1999 */ -#endif /* !_MATH_EXTRA_H_ */ +#endif /* !_MATH_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 @@ enum { 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 @@ typedef struct { 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 long pthread_t; 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 unshare(int); 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_) \ - do{ \ - (set_)->__bits[0] = 0; \ - }while(0) - -# 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_) +#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) -#endif /* CPU_SETSIZE != __CPU_BITS */ +#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_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_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_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_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_)) +#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_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_EQUAL_S(setsize, set1, set2) (__builtin_memcmp(set1, set2, setsize) == 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_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 @@ typedef int sig_atomic_t; #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 uint8_t uint_fast8_t; 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 @@ typedef int64_t intmax_t; #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 @@ typedef int64_t intmax_t; #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 __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 unsigned long long strtoull(const char *, char **, int); 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"))) - -/* 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 private and never exposed by the shared library. */ +#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden"))) + +/* 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 @@ typedef union epoll_data { 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 __mode_t mode_t; 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 __nlink_t nlink_t; 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 @@ __BEGIN_DECLS #if __i386__ -struct user_i387_struct { +struct user_fpregs_struct { long cwd; long swd; long twd; @@ -83,7 +83,7 @@ struct user_regs_struct { 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 @@ struct user { 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 @@ struct user { #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 { 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 @@ struct user { 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 @@ Modified for Bionic by the Android Open Source Project #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 @@ __BEGIN_DECLS #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 @@ typedef enum { 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 fwprintf(FILE *, const wchar_t *, ...); 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 wint_t getwchar(void); 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 int swscanf(const wchar_t *, const wchar_t *, ...); 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 int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so b/9/platforms/android-19/arch-mips64/usr/lib/libEGL.so Binary files differindex 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 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 Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv2.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so b/9/platforms/android-19/arch-mips64/usr/lib/libGLESv3.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so b/9/platforms/android-19/arch-mips64/usr/lib/libOpenMAXAL.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so b/9/platforms/android-19/arch-mips64/usr/lib/libOpenSLES.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so b/9/platforms/android-19/arch-mips64/usr/lib/libandroid.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libc.a b/9/platforms/android-19/arch-mips64/usr/lib/libc.a Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libc.so b/9/platforms/android-19/arch-mips64/usr/lib/libc.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libdl.so b/9/platforms/android-19/arch-mips64/usr/lib/libdl.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so b/9/platforms/android-19/arch-mips64/usr/lib/libjnigraphics.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/liblog.so b/9/platforms/android-19/arch-mips64/usr/lib/liblog.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libm.a b/9/platforms/android-19/arch-mips64/usr/lib/libm.a Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libm.so b/9/platforms/android-19/arch-mips64/usr/lib/libm.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.a Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so b/9/platforms/android-19/arch-mips64/usr/lib/libstdc++.so Binary files differindex 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 diff --git a/9/platforms/android-19/arch-mips64/usr/lib/libz.a b/9/platforms/android-19/arch-mips64/usr/lib/libz.a Binary files differindex 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 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 @@ typedef unsigned long sigset_t; #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 char *_ctype_; 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 @@ int _toupper(int); #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 @@ typedef struct { } 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 - -#define DBL_EXPBITS 11 -#define DBL_FRACHBITS 20 -#define DBL_FRACLBITS 32 -#define DBL_FRACBITS 52 - -#define EXT_EXPBITS 15 -#define EXT_FRACHBITS 32 -#define EXT_FRACLBITS 32 -#define EXT_FRACBITS 64 - -#define EXT_TO_ARRAY32(p, a) do { \ - (a)[0] = (uint32_t)(p)->ext_fracl; \ - (a)[1] = (uint32_t)(p)->ext_frach; \ -} while(0) +#include <sys/types.h> + +__BEGIN_DECLS + +#define SNG_EXPBITS 8 +#define SNG_FRACBITS 23 + +#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 @@ float significandf(float); * 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 frexpl(long double value, int *); /* fundamentally !__pure2 */ 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 @@ long double nextafterl(long double, long double); 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 */ -__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); +#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 /* !_DECLARE_C99_LDBL_MATH */ -#endif /* __ISO_C_VISIBLE >= 1999 */ -#endif /* !_MATH_EXTRA_H_ */ +#endif /* !_MATH_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 @@ enum { 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 @@ typedef struct { 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 long pthread_t; 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 unshare(int); 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_) \ - do{ \ - (set_)->__bits[0] = 0; \ - }while(0) - -# 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_) +#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) -#endif /* CPU_SETSIZE != __CPU_BITS */ +#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_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_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_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_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_)) +#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_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_EQUAL_S(setsize, set1, set2) (__builtin_memcmp(set1, set2, setsize) == 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_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 @@ typedef int sig_atomic_t; #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 uint8_t uint_fast8_t; 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 @@ typedef int64_t intmax_t; #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 @@ typedef int64_t intmax_t; #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 __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 unsigned long long strtoull(const char *, char **, int); 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"))) - -/* 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 private and never exposed by the shared library. */ +#define __LIBC_HIDDEN__ __attribute__((visibility ("hidden"))) + +/* 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 @@ typedef union epoll_data { 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 __mode_t mode_t; 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 __nlink_t nlink_t; 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 @@ __BEGIN_DECLS #if __i386__ -struct user_i387_struct { +struct user_fpregs_struct { long cwd; long swd; long twd; @@ -83,7 +83,7 @@ struct user_regs_struct { 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 @@ struct user { 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 @@ struct user { #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 { 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 @@ struct user { 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 @@ Modified for Bionic by the Android Open Source Project #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 @@ __BEGIN_DECLS #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 @@ typedef enum { 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 fwprintf(FILE *, const wchar_t *, ...); 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 wint_t getwchar(void); 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 int swscanf(const wchar_t *, const wchar_t *, ...); 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 int wcsncasecmp(const wchar_t *, const wchar_t *, size_t); 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ public: 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differnew file mode 100755 index 0000000..b5a5fcc --- /dev/null +++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_shared.so 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 Binary files differnew file mode 100644 index 0000000..b45fdbc --- /dev/null +++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi-v7a/thumb/libgabi++_static.a 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differnew file mode 100755 index 0000000..1fb4b76 --- /dev/null +++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_shared.so 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 Binary files differnew file mode 100644 index 0000000..5e57fe5 --- /dev/null +++ b/9/sources/cxx-stl/EH/gabi++/libs/armeabi/thumb/libgabi++_static.a 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differnew file mode 100755 index 0000000..c56babf --- /dev/null +++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_shared.so 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 Binary files differnew file mode 100644 index 0000000..37d7bd8 --- /dev/null +++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi-v7a/thumb/libstlport_static.a 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differnew file mode 100755 index 0000000..cd41ca2 --- /dev/null +++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_shared.so 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 Binary files differnew file mode 100644 index 0000000..f1830e8 --- /dev/null +++ b/9/sources/cxx-stl/EH/stlport/libs/armeabi/thumb/libstlport_static.a 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // 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 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION 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 @@ namespace std #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std /* 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 @@ namespace std /* 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ namespace std #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std /* 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 @@ namespace std /* 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ namespace std #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std /* 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 @@ namespace std /* 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION 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 @@ _GLIBCXX_END_NAMESPACE_VERSION 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 @@ _GLIBCXX_END_NAMESPACE_VERSION __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 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION 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 @@ namespace std #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std /* 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 @@ namespace std /* 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ namespace std #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std /* 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 @@ namespace std /* 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ namespace std #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std #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 @@ namespace std #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 @@ namespace std /* #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 @@ namespace std /* 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 @@ namespace std /* 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 @@ namespace std { } } +#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 @@ namespace _LIBCPP_NAMESPACE { 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 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); #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 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); #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 @@ using namespace _LIBCPP_NAMESPACE __attribute__((__strong__)); namespace std { } +#define _LIBCPP_HAS_NO_ASAN + #elif defined(__IBMCPP__) #define _ALIGNAS(x) __attribute__((__aligned__(x))) @@ -537,6 +560,8 @@ namespace std { } } +#define _LIBCPP_HAS_NO_ASAN + #endif // __clang__ || __GNUC__ || _MSC_VER || __IBMCPP__ #ifdef _LIBCPP_HAS_NO_UNICODE_CHARS @@ -544,6 +569,10 @@ typedef unsigned short char16_t; 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 @@ template <unsigned> struct __static_assert_check {}; #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 @@ public: 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 @@ public: 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 @@ __tree<_Tp, _Compare, _Allocator>::erase(const_iterator __p) __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 ForwardIterator, class OutputIterator> 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 ForwardIterator, class Compare> 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 ForwardIterator, class Compare> 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 ForwardIterator, class Compare> 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 @@ template <class BidirectionalIterator, class Compare> _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 @@ struct __equal_to 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 @@ rotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterato // 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 @@ min_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) 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 @@ min(const _Tp& __a, const _Tp& __b, _Compare __comp) } 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 @@ min(const _Tp& __a, const _Tp& __b) #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 @@ min(initializer_list<_Tp> __t) // 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 @@ max_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp) 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 @@ max(const _Tp& __a, const _Tp& __b, _Compare __comp) } 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 @@ max(const _Tp& __a, const _Tp& __b) #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 @@ inline _LIBCPP_INLINE_VISIBILITY 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 @@ minmax(const _Tp& __a, const _Tp& __b, _Compare __comp) } 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 @@ minmax(const _Tp& __a, const _Tp& __b) #ifndef _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS -template<class _Tp> -inline _LIBCPP_INLINE_VISIBILITY +template<class _Tp, class _Compare> +inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 pair<_Tp, _Tp> -minmax(initializer_list<_Tp> __t) +minmax(initializer_list<_Tp> __t, _Compare __comp) { - pair<const _Tp*, const _Tp*> __p = - _VSTD::minmax_element(__t.begin(), __t.end()); - 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, class _Compare> -inline _LIBCPP_INLINE_VISIBILITY +template<class _Tp> +inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 pair<_Tp, _Tp> -minmax(initializer_list<_Tp> __t, _Compare __comp) +minmax(initializer_list<_Tp> __t) { - pair<const _Tp*, const _Tp*> __p = - _VSTD::minmax_element(__t.begin(), __t.end(), __comp); - return pair<_Tp, _Tp>(*__p.first, *__p.second); + 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 @@ fdim(_A1 __x, _A2 __y) _NOEXCEPT // 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 @@ _LIBCPP_BEGIN_NAMESPACE_STD 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 __libcpp_putc(int __c, FILE* __stream) {ret 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 @@ public: 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 @@ template <> struct _LIBCPP_TYPE_VIS_ONLY hash<char *> 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 @@ public: 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 @@ function<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc& __a0, _Fp _ 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 @@ template <class _Fp> __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 @@ __packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function( : __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 @@ std::basic_ostream<_CharT, _Traits> & __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 @@ template <class Iterator> 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 @@ template <class C> auto crend(const C& c) -> decltype(std::rend(c)); // */ #include <__config> +#include <__functional_base> #include <type_traits> #include <cstddef> #include <iosfwd> @@ -534,7 +537,7 @@ class _LIBCPP_TYPE_VIS_ONLY reverse_iterator 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 @@ public: 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 @@ operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_i 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 @@ protected: 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 @@ protected: 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 @@ public: 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 @@ operator+(typename __wrap_iter<_Iter>::difference_type __n, } 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 @@ begin(_Tp (&__array)[_Np]) } 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 @@ reverse_iterator<const _Ep*> rend(initializer_list<_Ep> __il) } 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 @@ public: 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 @@ public: 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 @@ public: 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 @@ public: 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 @@ public: 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 @@ template <class _Ptr1, class _Ptr2> 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 @@ template<class _CharT, class _Traits> 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 @@ template<class _Traits> 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 @@ template<class _Traits> 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 @@ basic_ostream<_CharT, _Traits>& 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 @@ class match_results 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 @@ template <class ST, class SA, class Allocator, class charT, class traits> 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 @@ template <class ST, class SA, class Allocator, class charT, class traits> 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 @@ public: 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 @@ public: 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 @@ private: 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 @@ regex_search(const basic_string<_CharT, _ST, _SA>& __s, 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 @@ regex_match(const basic_string<_CharT, _ST, _SA>& __s, 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 @@ public: 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 @@ public: 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 @@ public: 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 @@ public: 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_(value_compare()) {} + + _LIBCPP_INLINE_VISIBILITY + 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 - set(const value_compare& __comp, const allocator_type& __a) + explicit set(const value_compare& __comp, const allocator_type& __a) : __tree_(__comp, __a) {} template <class _InputIterator> _LIBCPP_INLINE_VISIBILITY @@ -822,14 +830,22 @@ public: // 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_(value_compare()) {} + + _LIBCPP_INLINE_VISIBILITY + 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 - multiset(const value_compare& __comp, const allocator_type& __a) + 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 @@ template <class Mutex> _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 @@ class _LIBCPP_TYPE_VIS shared_mutex 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 @@ public: 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 @@ shared_mutex::try_lock_until( 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 @@ public: 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 @@ public: 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 @@ public: 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 @@ public: 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 @@ public: 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 @@ public: _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 @@ public: 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 @@ public: _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 @@ public: _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 @@ public: 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 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s, { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __s 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 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s, { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s, { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __st 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 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s, { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _ { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string& 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 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* _ { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c, 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 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __ { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string& 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 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __ { _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 @@ basic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c, 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 @@ const unspecified ignore; 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; // undefined 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 @@ public: 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 @@ public: >::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 @@ constexpr _T1&& get(tuple<_Args...>&& __tup) noexcept // 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 @@ namespace std 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 @@ struct _LIBCPP_TYPE_VIS_ONLY integral_constant 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<long> : public tr 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_abstract<_Tp, false> : public false_type {} 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 @@ template <class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_empty : public __libcpp_emp // 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 @@ typedef __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 @@ typedef __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< signed long, true> {typedef long ty 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< signed long, true> {typedef unsigned l 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 @@ class _LIBCPP_TYPE_VIS_ONLY result_of<_Fn(_A0, _A1, _A2)> #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 @@ struct __is_constructible2_void_check<true, _Tp, _A0, _A1> // 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 @@ struct __is_constructible2_imp<false, _Ap[], _A0, _A1> {}; #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 @@ public: #include <__config> #include <exception> #include <cstddef> +#include <cstdint> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header @@ -73,32 +74,75 @@ class _LIBCPP_EXCEPTION_ABI type_info 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 @@ constexpr piecewise_construct_t piecewise_construct = piecewise_construct_t(); 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 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 Binary files differindex 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 |