am d4b49c6c: am 8edf8ef6: Merge "Refresh sysroot headers for aarch64."

* commit 'd4b49c6ccfea428f0af5010ee164efa6727dc592':
  Refresh sysroot headers for aarch64.
This commit is contained in:
Ben Cheng
2013-10-17 15:56:59 -07:00
committed by Android Git Automerger
7 changed files with 273 additions and 137 deletions

View File

@@ -1,6 +1,6 @@
/* $OpenBSD: _types.h,v 1.3 2006/02/14 18:12:58 miod Exp $ */ /* $OpenBSD: _types.h,v 1.13 2013/07/05 19:46:27 guenther Exp $ */
/*- /*
* Copyright (c) 1990, 1993 * Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved. * The Regents of the University of California. All rights reserved.
* *
@@ -32,8 +32,28 @@
* @(#)ansi.h 8.2 (Berkeley) 1/4/94 * @(#)ansi.h 8.2 (Berkeley) 1/4/94
*/ */
#ifndef _ARM__TYPES_H_ #ifndef _MACHINE__TYPES_H_
#define _ARM__TYPES_H_ #define _MACHINE__TYPES_H_
/*
* _ALIGN(p) rounds p (pointer or byte index) up to a correctly-aligned
* value for all data types (int, long, ...). The result is an
* unsigned long and must be cast to any desired pointer type.
*
* _ALIGNED_POINTER is a boolean macro that checks whether an address
* is valid to fetch data elements of type t from on this architecture.
* This does not reflect the optimal alignment, just the possibility
* (within reasonable limits).
*/
#define _ALIGNBYTES (sizeof(long) - 1)
#define _ALIGN(p) (((unsigned long)(p) + _ALIGNBYTES) &~_ALIGNBYTES)
#define _ALIGNED_POINTER(p,t) 1
#if defined(_KERNEL)
typedef struct label_t {
long val[8];
} label_t;
#endif
/* 7.18.1.1 Exact-width integer types */ /* 7.18.1.1 Exact-width integer types */
typedef __signed char __int8_t; typedef __signed char __int8_t;
@@ -66,17 +86,29 @@ typedef __int32_t __int_fast32_t;
typedef __uint32_t __uint_fast32_t; typedef __uint32_t __uint_fast32_t;
typedef __int64_t __int_fast64_t; typedef __int64_t __int_fast64_t;
typedef __uint64_t __uint_fast64_t; typedef __uint64_t __uint_fast64_t;
#define __INT_FAST8_MIN INT32_MIN
#define __INT_FAST16_MIN INT32_MIN
#define __INT_FAST32_MIN INT32_MIN
#define __INT_FAST64_MIN INT64_MIN
#define __INT_FAST8_MAX INT32_MAX
#define __INT_FAST16_MAX INT32_MAX
#define __INT_FAST32_MAX INT32_MAX
#define __INT_FAST64_MAX INT64_MAX
#define __UINT_FAST8_MAX UINT32_MAX
#define __UINT_FAST16_MAX UINT32_MAX
#define __UINT_FAST32_MAX UINT32_MAX
#define __UINT_FAST64_MAX UINT64_MAX
/* 7.18.1.4 Integer types capable of holding object pointers */ /* 7.18.1.4 Integer types capable of holding object pointers */
typedef int __intptr_t; typedef long __intptr_t;
typedef unsigned int __uintptr_t; typedef unsigned long __uintptr_t;
/* 7.18.1.5 Greatest-width integer types */ /* 7.18.1.5 Greatest-width integer types */
typedef __int64_t __intmax_t; typedef __int64_t __intmax_t;
typedef __uint64_t __uintmax_t; typedef __uint64_t __uintmax_t;
/* Register size */ /* Register size */
typedef __int32_t __register_t; typedef long __register_t;
/* VM system types */ /* VM system types */
typedef unsigned long __vaddr_t; typedef unsigned long __vaddr_t;
@@ -85,15 +117,14 @@ typedef unsigned long __vsize_t;
typedef unsigned long __psize_t; typedef unsigned long __psize_t;
/* Standard system types */ /* Standard system types */
typedef int __clock_t; typedef double __double_t;
typedef int __clockid_t; typedef float __float_t;
typedef long __ptrdiff_t; typedef long __ptrdiff_t;
typedef int __time_t; typedef long __ssize_t;
typedef int __timer_t;
#if defined(__GNUC__) && __GNUC__ >= 3 #if defined(__GNUC__) && __GNUC__ >= 3
typedef __builtin_va_list __va_list; typedef __builtin_va_list __va_list;
#else #else
typedef char * __va_list; typedef char * __va_list;
#endif #endif
/* Wide character support types */ /* Wide character support types */
@@ -105,4 +136,4 @@ typedef int __rune_t;
typedef void * __wctrans_t; typedef void * __wctrans_t;
typedef void * __wctype_t; typedef void * __wctype_t;
#endif /* _ARM__TYPES_H_ */ #endif /* _MACHINE__TYPES_H_ */

View File

@@ -1,7 +1,7 @@
/* $OpenBSD: endian.h,v 1.3 2005/12/13 00:35:23 millert Exp $ */ /* $OpenBSD: endian.h,v 1.6 2011/11/08 17:06:51 deraadt Exp $ */
/* /*
* Copyright (C) 2010 The Android Open Source Project * Copyright (C) 2013 The Android Open Source Project
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -28,62 +28,12 @@
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#ifndef _ARM_ENDIAN_H_ #ifndef __AARCH64_ENDIAN_H_
#define _ARM_ENDIAN_H_ #define __AARCH64_ENDIAN_H_
#ifdef __GNUC__ /* FIXME - work in progress */
/*
* REV and REV16 weren't available on ARM5 or ARM4.
* We don't include <machine/cpu-features.h> because it pollutes the
* namespace with macros like PLD.
*/
#if !defined __ARM_ARCH_5__ && !defined __ARM_ARCH_5T__ && \
!defined __ARM_ARCH_5TE__ && !defined __ARM_ARCH_5TEJ__ && \
!defined __ARM_ARCH_4T__ && !defined __ARM_ARCH_4__
/* According to RealView Assembler User's Guide, REV and REV16 are available
* in Thumb code and 16-bit instructions when used in Thumb-2 code.
*
* REV Rd, Rm
* Rd and Rm must both be Lo registers.
*
* REV16 Rd, Rm
* Rd and Rm must both be Lo registers.
*
* The +l constraint takes care of this without constraining us in ARM mode.
*/
#define __swap16md(x) ({ \
register u_int16_t _x = (x); \
__asm volatile ("rev16 %0, %0" : "+l" (_x)); \
_x; \
})
#define __swap32md(x) ({ \
register u_int32_t _x = (x); \
__asm volatile ("rev %0, %0" : "+l" (_x)); \
_x; \
})
#define __swap64md(x) ({ \
u_int64_t _swap64md_x = (x); \
(u_int64_t) __swap32md(_swap64md_x >> 32) | \
(u_int64_t) __swap32md(_swap64md_x & 0xffffffff) << 32; \
})
/* Tell sys/endian.h we have MD variants of the swap macros. */
#define MD_SWAP
#endif /* __ARM_ARCH__ */
#endif /* __GNUC__ */
#if defined(__ARMEB__)
#define _BYTE_ORDER _BIG_ENDIAN
#else
#define _BYTE_ORDER _LITTLE_ENDIAN #define _BYTE_ORDER _LITTLE_ENDIAN
#endif
#define __STRICT_ALIGNMENT #define __STRICT_ALIGNMENT
#include <sys/types.h>
#include <sys/endian.h> #include <sys/endian.h>
#endif /* !_ARM_ENDIAN_H_ */ #endif /* __AARCH64_ENDIAN_H_ */

View File

@@ -1,50 +1,48 @@
/* $OpenBSD: exec.h,v 1.9 2003/04/17 03:42:14 drahn Exp $ */ /* $OpenBSD: exec.h,v 1.4 2012/09/11 15:44:17 deraadt Exp $ */
/* $NetBSD: exec.h,v 1.6 1994/10/27 04:16:05 cgd Exp $ */ /*
* Written by Artur Grabowski <art@openbsd.org> Public Domain
*/
/* /*
* Copyright (c) 1993 Christopher G. Demetriou * Copyright (C) 2013 The Android Open Source Project
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
* are met: * are met:
* 1. Redistributions of source code must retain the above copyright * * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer. * notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright * * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the * notice, this list of conditions and the following disclaimer in
* documentation and/or other materials provided with the distribution. * the documentation and/or other materials provided with the
* 3. The name of the author may not be used to endorse or promote products * distribution.
* derived from this software without specific prior written permission
* *
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * 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 _ARM_EXEC_H_ #ifndef _MACHINE_EXEC_H_
#define _ARM_EXEC_H_ #define _MACHINE_EXEC_H_
#define __LDPGSZ 4096 #define __LDPGSZ 4096
#define NATIVE_EXEC_ELF #define ARCH_ELFSIZE 64
#define ARCH_ELFSIZE 32 #define ELF_TARG_CLASS ELFCLASS64
#define ELF_TARG_CLASS ELFCLASS32
#define ELF_TARG_DATA ELFDATA2LSB #define ELF_TARG_DATA ELFDATA2LSB
#define ELF_TARG_MACH EM_ARM #define ELF_TARG_MACH EM_AARCH64
#define _NLIST_DO_AOUT
#define _NLIST_DO_ELF #define _NLIST_DO_ELF
#define _KERN_DO_ELF64
#define _KERN_DO_AOUT #endif
#define _KERN_DO_ELF
#endif /* _ARM_EXEC_H_ */

View File

@@ -1,10 +0,0 @@
/* $OpenBSD: internal_types.h,v 1.2 2004/05/06 15:53:39 drahn Exp $ */
/* Public domain */
#ifndef _ARM_INTERNAL_TYPES_H_
#define _ARM_INTERNAL_TYPES_H_
#ifdef __CHAR_UNSIGNED__
#define __machine_has_unsigned_chars
#endif
#endif

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2008 The Android Open Source Project * Copyright (C) 2013 The Android Open Source Project
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -25,18 +25,19 @@
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
*/ */
#ifndef _ARCH_ARM_KERNEL_H
#define _ARCH_ARM_KERNEL_H #ifndef _ARCH_AARCH64_KERNEL_H
#define _ARCH_AARCH64_KERNEL_H
/* this file contains kernel-specific definitions that were optimized out of /* this file contains kernel-specific definitions that were optimized out of
our processed kernel headers, but still useful nonetheless... */ our processed kernel headers, but still useful nonetheless... */
typedef unsigned long __kernel_blkcnt_t; typedef __kernel_ulong_t __kernel_blkcnt_t;
typedef unsigned long __kernel_blksize_t; typedef __kernel_ulong_t __kernel_blksize_t;
/* these aren't really defined by the kernel headers though... */ /* these aren't really defined by the kernel headers though... */
typedef unsigned long __kernel_fsblkcnt_t; typedef __kernel_ulong_t __kernel_fsblkcnt_t;
typedef unsigned long __kernel_fsfilcnt_t; typedef __kernel_ulong_t __kernel_fsfilcnt_t;
typedef unsigned int __kernel_id_t; typedef unsigned int __kernel_id_t;
#endif /* _ARCH_ARM_KERNEL_H */ #endif /* _ARCH_AARCH64_KERNEL_H */

View File

@@ -1,5 +1,4 @@
/* $OpenBSD: limits.h,v 1.3 2006/01/06 22:48:46 millert Exp $ */ /* $OpenBSD: limits.h,v 1.5 2009/11/27 19:54:35 guenther Exp $ */
/* $NetBSD: limits.h,v 1.4 2003/04/28 23:16:18 bjh21 Exp $ */
/* /*
* Copyright (c) 1988 The Regents of the University of California. * Copyright (c) 1988 The Regents of the University of California.
@@ -29,25 +28,23 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* from: @(#)limits.h 7.2 (Berkeley) 6/28/90 * @(#)limits.h 7.2 (Berkeley) 6/28/90
*/ */
#ifndef _ARM32_LIMITS_H_ #ifndef _MACHINE_LIMITS_H_
#define _ARM32_LIMITS_H_ #define _MACHINE_LIMITS_H_
#include <sys/cdefs.h> #include <sys/cdefs.h>
#define MB_LEN_MAX 1 /* no multibyte characters */ #if __POSIX_VISIBLE || __XPG_VISIBLE
#ifndef SIZE_MAX #ifndef SIZE_MAX
#define SIZE_MAX UINT_MAX /* max value for a size_t */ #define SIZE_MAX ULONG_MAX /* max value for a size_t */
#endif #endif
#ifndef SSIZE_MAX #define SSIZE_MAX LONG_MAX /* max value for a ssize_t */
#define SSIZE_MAX INT_MAX /* max value for a ssize_t */
#endif #endif
#if __BSD_VISIBLE #if __BSD_VISIBLE
#define SIZE_T_MAX UINT_MAX /* max value for a size_t (historic) */ #define SIZE_T_MAX ULONG_MAX /* max value for a size_t (historic) */
#define UQUAD_MAX 0xffffffffffffffffULL /* max unsigned quad */ #define UQUAD_MAX 0xffffffffffffffffULL /* max unsigned quad */
#define QUAD_MAX 0x7fffffffffffffffLL /* max signed quad */ #define QUAD_MAX 0x7fffffffffffffffLL /* max signed quad */
@@ -55,9 +52,4 @@
#endif /* __BSD_VISIBLE */ #endif /* __BSD_VISIBLE */
#define LONGLONG_BIT 64 #endif /* _MACHINE_LIMITS_H_ */
#define LONGLONG_MIN (-9223372036854775807LL-1)
#define LONGLONG_MAX 9223372036854775807LL
#define ULONGLONG_MAX 18446744073709551615ULL
#endif /* _ARM32_LIMITS_H_ */

View File

@@ -0,0 +1,174 @@
/* $OpenBSD: limits.h,v 1.6 2005/12/13 00:35:23 millert Exp $ */
/*
* Copyright (c) 2002 Marc Espie.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 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.
*
* THIS SOFTWARE IS PROVIDED BY THE OPENBSD PROJECT 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 OPENBSD
* PROJECT 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 _SYS_LIMITS_H_
#define _SYS_LIMITS_H_
#include <sys/cdefs.h>
#include <linux/limits.h>
/* Common definitions for limits.h. */
/* Legacy */
#include <machine/limits.h>
#define CHAR_BIT 8 /* number of bits in a char */
#define SCHAR_MAX 0x7f /* max value for a signed char */
#define SCHAR_MIN (-0x7f-1) /* min value for a signed char */
#define UCHAR_MAX 0xffU /* max value for an unsigned char */
#ifdef __CHAR_UNSIGNED__
# define CHAR_MIN 0 /* min value for a char */
# define CHAR_MAX 0xff /* max value for a char */
#else
# define CHAR_MAX 0x7f
# define CHAR_MIN (-0x7f-1)
#endif
#define USHRT_MAX 0xffffU /* max value for an unsigned short */
#define SHRT_MAX 0x7fff /* max value for a short */
#define SHRT_MIN (-0x7fff-1) /* min value for a short */
#define UINT_MAX 0xffffffffU /* max value for an unsigned int */
#define INT_MAX 0x7fffffff /* max value for an int */
#define INT_MIN (-0x7fffffff-1) /* min value for an int */
#ifdef __LP64__
# define ULONG_MAX 0xffffffffffffffffUL
/* max value for unsigned long */
# define LONG_MAX 0x7fffffffffffffffL
/* max value for a signed long */
# define LONG_MIN (-0x7fffffffffffffffL-1)
/* min value for a signed long */
#else
# define ULONG_MAX 0xffffffffUL /* max value for an unsigned long */
# define LONG_MAX 0x7fffffffL /* max value for a long */
# define LONG_MIN (-0x7fffffffL-1)/* min value for a long */
#endif
#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 1999
# define ULLONG_MAX 0xffffffffffffffffULL
/* max value for unsigned long long */
# define LLONG_MAX 0x7fffffffffffffffLL
/* max value for a signed long long */
# define LLONG_MIN (-0x7fffffffffffffffLL-1)
/* min value for a signed long long */
#endif
#if __BSD_VISIBLE
# define UID_MAX UINT_MAX /* max value for a uid_t */
# define GID_MAX UINT_MAX /* max value for a gid_t */
#endif
#ifdef __LP64__
# define LONG_BIT 64
#else
# define LONG_BIT 32
#endif
/* float.h defines these as well */
# if !defined(DBL_DIG)
# if defined(__DBL_DIG)
# define DBL_DIG __DBL_DIG
# define DBL_MAX __DBL_MAX
# define DBL_MIN __DBL_MIN
# define FLT_DIG __FLT_DIG
# define FLT_MAX __FLT_MAX
# define FLT_MIN __FLT_MIN
# else
# define DBL_DIG 15
# define DBL_MAX 1.7976931348623157E+308
# define DBL_MIN 2.2250738585072014E-308
# define FLT_DIG 6
# define FLT_MAX 3.40282347E+38F
# define FLT_MIN 1.17549435E-38F
# endif
# endif
/* Bionic: the following has been optimized out from our processed kernel headers */
#define CHILD_MAX 999
#define OPEN_MAX 256
/* Bionic-specific definitions */
#define _POSIX_VERSION 200112L /* Posix C language bindings version */
#define _POSIX2_VERSION -1 /* we don't support Posix command-line tools */
#define _POSIX2_C_VERSION _POSIX_VERSION
#define _XOPEN_VERSION 500 /* by Posix definition */
#define _XOPEN_XCU_VERSION -1 /* we don't support command-line utilities */
/* tell what we implement legacy stuff when appropriate */
#if _POSIX_VERSION > 0
#define _XOPEN_XPG2 1
#define _XOPEN_XPG3 1
#define _XOPEN_XPG4 1
#define _XOPEN_UNIX 1
#endif
#define _XOPEN_ENH_I18N -1 /* we don't support internationalization in the C library */
#define _XOPEN_CRYPT -1 /* don't support X/Open Encryption */
#define _XOPEN_LEGACY -1 /* don't claim we support these, we have some of them but not all */
#define _XOPEN_REALTIME -1 /* we don't support all these functions */
#define _XOPEN_REALTIME_THREADS -1 /* same here */
#define _POSIX_REALTIME_SIGNALS -1 /* for now, this is not supported */
#define _POSIX_PRIORITY_SCHEDULING 1 /* priority scheduling is a Linux feature */
#define _POSIX_TIMERS 1 /* Posix timers are supported */
#undef _POSIX_ASYNCHRONOUS_IO /* aio_ functions are not supported */
#define _POSIX_SYNCHRONIZED_IO 1 /* synchronized i/o supported */
#define _POSIX_FSYNC 1 /* fdatasync() supported */
#define _POSIX_MAPPED_FILES 1 /* mmap-ed files supported */
/* XXX: TODO: complete and check list here */
#define _POSIX_THREADS 1 /* we support threads */
#define _POSIX_THREAD_STACKADDR 1 /* we support thread stack address */
#define _POSIX_THREAD_STACKSIZE 1 /* we support thread stack size */
#define _POSIX_THREAD_PRIO_INHERIT 200112L /* linux feature */
#define _POSIX_THREAD_PRIO_PROTECT 200112L /* linux feature */
#undef _POSIX_PROCESS_SHARED /* we don't support process-shared synchronization */
#undef _POSIX_THREAD_SAFE_FUNCTIONS /* most functions are, but not everything yet */
#define _POSIX_CHOWN_RESTRICTED 1 /* yes, chown requires appropriate privileges */
#define _POSIX_MONOTONIC_CLOCK 0 /* the monotonic clock may be available; ask sysconf */
#define _POSIX_NO_TRUNC 1 /* very long pathnames generate an error */
#define _POSIX_SAVED_IDS 1 /* saved user ids is a Linux feature */
#define _POSIX_JOB_CONTROL 1 /* job control is a Linux feature */
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 /* the minimum mandated by POSIX */
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
#define _POSIX_THREAD_KEYS_MAX 128 /* the minimum mandated by POSIX */
#define PTHREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX
#define _POSIX_THREAD_THREADS_MAX 64 /* the minimum mandated by POSIX */
#define PTHREAD_THREADS_MAX /* bionic has no specific limit */
#endif