111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __stl_config__android_h
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __stl_config__android_h
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_PLATFORM "Android"
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Mostly Unix-like.
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_UNIX 1
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Have pthreads support.
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _PTHREADS
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Don't have native <cplusplus> headers
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_HAS_NO_NEW_C_HEADERS 1
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Use unix for streams
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_USE_UNIX_IO 1
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// We do have rtti support now through GAbi++
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef _STLP_NO_RTTI
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// C library is in the global namespace.
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_VENDOR_GLOBAL_CSTD 1
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Don't have underlying local support.
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef _STLP_REAL_LOCALE_IMPLEMENTED
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// No pthread_spinlock_t in Android
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Enable thread support
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef _NOTHREADS
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Little endian platform.
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_LITTLE_ENDIAN 1
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// No <exception> headers
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NO_EXCEPTION_HEADER 1
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// No throwing exceptions
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NO_EXCEPTIONS 1
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// No need to define our own namespace
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NO_OWN_NAMESPACE 1
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Use __new_alloc instead of __node_alloc, so we don't need static functions.
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_USE_SIMPLE_NODE_ALLOC 1
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Don't use extern versions of range errors, so we don't need to
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// compile as a library.
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_USE_NO_EXTERN_RANGE_ERRORS 1
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// The system math library doesn't have long double variants, e.g
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// sinl, cosl, etc
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NO_VENDOR_MATH_L 1
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Define how to include our native headers.
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NATIVE_HEADER(header) <usr/include/header>
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NATIVE_C_HEADER(header) <../include/header>
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NATIVE_CPP_C_HEADER(header) <../../gabi++/include/header>
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../../gabi++/include/header>
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <usr/include/header>
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Include most of the gcc settings.
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <stl/config/_gcc.h>
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Do not use glibc, Android is missing some things.
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef _STLP_USE_GLIBC
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// No exceptions.
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT 1
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT 1
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _ANDROID_NDK_BLAZE_
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Android does have include_next but it doesn't work well in our build system.
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#undef _STLP_HAS_INCLUDE_NEXT
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* __stl_config__android_h */
79