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 /9/platforms/android-19/arch-arm64/usr | |
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
Diffstat (limited to '9/platforms/android-19/arch-arm64/usr')
46 files changed, 424 insertions, 524 deletions
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 |