AndroidConfig.h revision cfb61c272075e0fc25c39110b105825c128ac91f
1/*
2 * Copyright (C) 2005 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * Android config -- "Linux".  Used for desktop x86 Linux.
19 */
20#ifndef _ANDROID_CONFIG_H
21#define _ANDROID_CONFIG_H
22
23/*
24 * ===========================================================================
25 *                              !!! IMPORTANT !!!
26 * ===========================================================================
27 *
28 * This file is included by ALL C/C++ source files.  Don't put anything in
29 * here unless you are absolutely certain it can't go anywhere else.
30 *
31 * Any C++ stuff must be wrapped with "#ifdef __cplusplus".  Do not use "//"
32 * comments.
33 */
34
35/*
36 * Threading model.  Choose one:
37 *
38 * HAVE_PTHREADS - use the pthreads library.
39 * HAVE_WIN32_THREADS - use Win32 thread primitives.
40 *  -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX
41 */
42#define HAVE_PTHREADS
43
44/*
45 * Do we have the futex syscall?
46 */
47
48#define HAVE_FUTEX
49
50/*
51 * Process creation model.  Choose one:
52 *
53 * HAVE_FORKEXEC - use fork() and exec()
54 * HAVE_WIN32_PROC - use CreateProcess()
55 */
56#define HAVE_FORKEXEC
57
58/*
59 * Process out-of-memory adjustment.  Set if running on Linux,
60 * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory
61 * badness adjustment.
62 */
63#define HAVE_OOM_ADJ
64
65/*
66 * IPC model.  Choose one:
67 *
68 * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget).
69 * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap).
70 * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping).
71 * HAVE_ANDROID_IPC - use Android versions (?, mmap).
72 */
73#define HAVE_SYSV_IPC
74
75/*
76 * Memory-mapping model. Choose one:
77 *
78 * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h
79 * HAVE_WIN32_FILEMAP - use Win32 filemaps
80 */
81#define  HAVE_POSIX_FILEMAP
82
83/*
84 * Define this if you have <termio.h>
85 */
86#define  HAVE_TERMIO_H
87
88/*
89 * Define this if you have <sys/sendfile.h>
90 */
91#define  HAVE_SYS_SENDFILE_H 1
92
93/*
94 * Define this if you build against MSVCRT.DLL
95 */
96/* #define HAVE_MS_C_RUNTIME */
97
98/*
99 * Define this if you have sys/uio.h
100 */
101#define  HAVE_SYS_UIO_H
102
103/*
104 * Define this if your platforms implements symbolic links
105 * in its filesystems
106 */
107#define HAVE_SYMLINKS
108
109/*
110 * Define this if we have localtime_r().
111 */
112#define HAVE_LOCALTIME_R
113
114/*
115 * Define this if we have gethostbyname_r().
116 */
117#define HAVE_GETHOSTBYNAME_R
118
119/*
120 * Define this if we have ioctl().
121 */
122#define HAVE_IOCTL
123
124/*
125 * Define this if we want to use WinSock.
126 */
127/* #define HAVE_WINSOCK */
128
129/*
130 * Define this if have clock_gettime() and friends
131 *
132 * Desktop Linux has this in librt, but it's broken in goobuntu, yielding
133 * mildly or wildly inaccurate results.
134 */
135/*#define HAVE_POSIX_CLOCKS*/
136
137/*
138 * Define this if we have pthread_cond_timedwait_monotonic() and
139 * clock_gettime(CLOCK_MONOTONIC).
140 */
141/* #define HAVE_TIMEDWAIT_MONOTONIC */
142
143/*
144 * Define this if we have linux style epoll()
145 */
146#define HAVE_EPOLL
147
148/*
149 * Endianness of the target machine.  Choose one:
150 *
151 * HAVE_ENDIAN_H -- have endian.h header we can include.
152 * HAVE_LITTLE_ENDIAN -- we are little endian.
153 * HAVE_BIG_ENDIAN -- we are big endian.
154 */
155#define HAVE_ENDIAN_H
156#define HAVE_LITTLE_ENDIAN
157
158/*
159 * We need to choose between 32-bit and 64-bit off_t.  All of our code should
160 * agree on the same size.  For desktop systems, use 64-bit values,
161 * because some of our libraries (e.g. wxWidgets) expect to be built that way.
162 */
163#define _FILE_OFFSET_BITS 64
164#define _LARGEFILE_SOURCE 1
165
166/*
167 * Define if platform has off64_t (and lseek64 and other xxx64 functions)
168 */
169#define HAVE_OFF64_T
170
171/*
172 * Defined if we have the backtrace() call for retrieving a stack trace.
173 * Needed for CallStack to operate; if not defined, CallStack is
174 * non-functional.
175 */
176#define HAVE_BACKTRACE 1
177
178/*
179 * Defined if we have the dladdr() call for retrieving the symbol associated
180 * with a memory address.  If not defined, stack crawls will not have symbolic
181 * information.
182 */
183#define HAVE_DLADDR 1
184
185/*
186 * Defined if we have the cxxabi.h header for demangling C++ symbols.  If
187 * not defined, stack crawls will be displayed with raw mangled symbols
188 */
189#define HAVE_CXXABI 0
190
191/*
192 * Defined if we have the gettid() system call.
193 */
194/* #define HAVE_GETTID */
195
196/*
197 * Defined if we have the sched_setscheduler() call
198 */
199#define HAVE_SCHED_SETSCHEDULER
200
201/*
202 * Add any extra platform-specific defines here.
203 */
204
205/*
206 * Define if we have <malloc.h> header
207 */
208#define HAVE_MALLOC_H
209
210/*
211 * Define if we have Linux-style non-filesystem Unix Domain Sockets
212 */
213
214/*
215 * What CPU architecture does this platform use?
216 */
217#define ARCH_X86
218
219
220/*
221 * Define if we have Linux's inotify in <sys/inotify.h>.
222 */
223/*#define HAVE_INOTIFY 1*/
224
225/*
226 * Define if we have madvise() in <sys/mman.h>
227 */
228#define HAVE_MADVISE 1
229
230/*
231 * Define if tm struct has tm_gmtoff field
232 */
233#define HAVE_TM_GMTOFF 1
234
235/*
236 * Define if dirent struct has d_type field
237 */
238#define HAVE_DIRENT_D_TYPE 1
239
240/*
241 * Define if libc includes Android system properties implementation.
242 */
243/* #define HAVE_LIBC_SYSTEM_PROPERTIES */
244
245/*
246 * Define if system provides a system property server (should be
247 * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).
248 */
249#define HAVE_SYSTEM_PROPERTY_SERVER
250
251/*
252 * sprintf() format string for shared library naming.
253 */
254#define OS_SHARED_LIB_FORMAT_STR    "lib%s.so"
255
256/*
257 * type for the third argument to mincore().
258 */
259#define MINCORE_POINTER_TYPE unsigned char *
260
261/*
262 * Do we have the sigaction flag SA_NOCLDWAIT?
263 */
264#define HAVE_SA_NOCLDWAIT
265
266/*
267 * The default path separator for the platform
268 */
269#define OS_PATH_SEPARATOR '/'
270
271/*
272 * Is the filesystem case sensitive?
273 */
274#define OS_CASE_SENSITIVE
275
276/*
277 * Define if <sys/socket.h> exists.
278 */
279#define HAVE_SYS_SOCKET_H 1
280
281/*
282 * Define if the strlcpy() function exists on the system.
283 */
284/* #define HAVE_STRLCPY 1 */
285
286/*
287 * Define if the open_memstream() function exists on the system.
288 */
289#define HAVE_OPEN_MEMSTREAM 1
290
291/*
292 * Define if the BSD funopen() function exists on the system.
293 */
294/* #define HAVE_FUNOPEN 1 */
295
296/*
297 * Define if prctl() exists
298 */
299#define HAVE_PRCTL 1
300
301/*
302 * Define if writev() exists
303 */
304#define HAVE_WRITEV 1
305
306/*
307 * Define if <stdint.h> exists.
308 */
309#define HAVE_STDINT_H 1
310
311/*
312 * Define if <stdbool.h> exists.
313 */
314#define HAVE_STDBOOL_H 1
315
316/*
317 * Define if <sched.h> exists.
318 */
319#define HAVE_SCHED_H 1
320
321/*
322 * Define if pread() exists
323 */
324#define HAVE_PREAD 1
325
326/*
327 * Define if we have st_mtim in struct stat
328 */
329#define HAVE_STAT_ST_MTIM 1
330
331/*
332 * Define if printf() supports %zd for size_t arguments
333 */
334#define HAVE_PRINTF_ZD 1
335
336#endif /*_ANDROID_CONFIG_H*/
337