19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifndef __stl_config__android_h
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define __stl_config__android_h
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_PLATFORM "Android"
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
6e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// Mostly Unix-like.
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_UNIX 1
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Have pthreads support.
109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _PTHREADS
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Don't have native <cplusplus> headers
139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_HAS_NO_NEW_C_HEADERS 1
149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
15e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// Use unix for streams
16e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_USE_UNIX_IO 1
179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// No rtti support
19e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_NO_RTTI 1
209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// C library is in the global namespace.
229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_VENDOR_GLOBAL_CSTD 1
239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Don't have underlying local support.
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#undef _STLP_REAL_LOCALE_IMPLEMENTED
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// No pthread_spinlock_t in Android
289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_DONT_USE_PTHREAD_SPINLOCK 1
299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
30f4c9fc3867a265561218d08fbbad64d017d8e93dDavid 'Digit' Turner// Enable thread support
31f4c9fc3867a265561218d08fbbad64d017d8e93dDavid 'Digit' Turner#undef _NOTHREADS
329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Little endian platform.
349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_LITTLE_ENDIAN 1
359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// No <exception> headers
379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NO_EXCEPTION_HEADER 1
389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// No throwing exceptions
409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NO_EXCEPTIONS 1
419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// No need to define our own namespace
439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NO_OWN_NAMESPACE 1
449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Use __new_alloc instead of __node_alloc, so we don't need static functions.
469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_USE_SIMPLE_NODE_ALLOC 1
479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Don't use extern versions of range errors, so we don't need to
499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// compile as a library.
509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_USE_NO_EXTERN_RANGE_ERRORS 1
519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// The system math library doesn't have long double variants, e.g
539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// sinl, cosl, etc
549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NO_VENDOR_MATH_L 1
559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block// Define how to include our native headers.
579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NATIVE_HEADER(header) <libstdc++/include/header>
589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NATIVE_C_HEADER(header) <../include/header>
599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NATIVE_CPP_C_HEADER(header) <libstdc++/include/header>
60e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <libstdc++/include/header>
619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <libstdc++/include/header>
629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <libstdc++/include/header>
639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
64e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// Include most of the gcc settings.
65e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#include <stl/config/_gcc.h>
66e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
67e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// Do not use glibc, Android is missing some things.
68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#undef _STLP_USE_GLIBC
69e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
70e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// No exceptions.
71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT 1
72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT 1
73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott// Android does have include_next but it doesn't work well in our build system.
75e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#undef _STLP_HAS_INCLUDE_NEXT
76e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
77f2a92bde67bec20683304eb94b3aacb2433c7572Shih-wei Liao#if !defined(__BUILDING_STLPORT)
78f2a92bde67bec20683304eb94b3aacb2433c7572Shih-wei Liao// Turn off container extension which fails correct, standard-compliant code.
79f2a92bde67bec20683304eb94b3aacb2433c7572Shih-wei Liao// Note: Container extension uses template member function to implement
80f2a92bde67bec20683304eb94b3aacb2433c7572Shih-wei Liao// insert, find, ... member functions of the containers.
81f2a92bde67bec20683304eb94b3aacb2433c7572Shih-wei Liao#define _STLP_NO_CONTAINERS_EXTENSION 1
82f2a92bde67bec20683304eb94b3aacb2433c7572Shih-wei Liao#endif
83f2a92bde67bec20683304eb94b3aacb2433c7572Shih-wei Liao
849720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif /* __stl_config__android_h */
85