Home | History | Annotate | Download | only in linux-x86
      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 1
     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 1
    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 1
    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 /*
    337  * Define to 1 if <stdlib.h> provides qsort_r() with a BSD style function prototype.
    338  */
    339 #define HAVE_BSD_QSORT_R 0
    340 
    341 /*
    342  * Define to 1 if <stdlib.h> provides qsort_r() with a GNU style function prototype.
    343  */
    344 #if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8)
    345 #define HAVE_GNU_QSORT_R 1
    346 #else
    347 #define HAVE_GNU_QSORT_R 0
    348 #endif
    349 
    350 #endif /*_ANDROID_CONFIG_H*/
    351