Home | History | Annotate | Download | only in pthreads-win32
      1 /* config.h  */
      2 
      3 #ifndef PTW32_CONFIG_H
      4 #define PTW32_CONFIG_H
      5 
      6 /*********************************************************************
      7  * Defaults: see target specific redefinitions below.
      8  *********************************************************************/
      9 
     10 /* We're building the pthreads-win32 library */
     11 #define PTW32_BUILD
     12 
     13 /* Do we know about the C type sigset_t? */
     14 #undef HAVE_SIGSET_T
     15 
     16 /* Define if you have the <signal.h> header file.  */
     17 #undef HAVE_SIGNAL_H
     18 
     19 /* Define if you have the Borland TASM32 or compatible assembler.  */
     20 #undef HAVE_TASM32
     21 
     22 /* Define if you don't have Win32 DuplicateHandle. (eg. WinCE) */
     23 #undef NEED_DUPLICATEHANDLE
     24 
     25 /* Define if you don't have Win32 _beginthreadex. (eg. WinCE) */
     26 #undef NEED_CREATETHREAD
     27 
     28 /* Define if you don't have Win32 errno. (eg. WinCE) */
     29 #undef NEED_ERRNO
     30 
     31 /* Define if you don't have Win32 calloc. (eg. WinCE)  */
     32 #undef NEED_CALLOC
     33 
     34 /* Define if you don't have Win32 ftime. (eg. WinCE)  */
     35 #undef NEED_FTIME
     36 
     37 /* Define if you don't have Win32 semaphores. (eg. WinCE 2.1 or earlier)  */
     38 #undef NEED_SEM
     39 
     40 /* Define if you need to convert string parameters to unicode. (eg. WinCE)  */
     41 #undef NEED_UNICODE_CONSTS
     42 
     43 /* Define if your C (not C++) compiler supports "inline" functions. */
     44 #undef HAVE_C_INLINE
     45 
     46 /* Do we know about type mode_t? */
     47 #undef HAVE_MODE_T
     48 
     49 /*
     50  * Define if GCC has atomic builtins, i.e. __sync_* intrinsics
     51  * __sync_lock_* is implemented in mingw32 gcc 4.5.2 at least
     52  * so this define does not turn those on or off. If you get an
     53  * error from __sync_lock* then consider upgrading your gcc.
     54  */
     55 #undef HAVE_GCC_ATOMIC_BUILTINS
     56 
     57 /* Define if you have the timespec struct */
     58 #undef HAVE_STRUCT_TIMESPEC
     59 
     60 /* Define if you don't have the GetProcessAffinityMask() */
     61 #undef NEED_PROCESS_AFFINITY_MASK
     62 
     63 /* Define if your version of Windows TLSGetValue() clears WSALastError
     64  * and calling SetLastError() isn't enough restore it. You'll also need to
     65  * link against wsock32.lib (or libwsock32.a for MinGW).
     66  */
     67 #undef RETAIN_WSALASTERROR
     68 
     69 /*
     70 # ----------------------------------------------------------------------
     71 # The library can be built with some alternative behaviour to better
     72 # facilitate development of applications on Win32 that will be ported
     73 # to other POSIX systems.
     74 #
     75 # Nothing described here will make the library non-compliant and strictly
     76 # compliant applications will not be affected in any way, but
     77 # applications that make assumptions that POSIX does not guarantee are
     78 # not strictly compliant and may fail or misbehave with some settings.
     79 #
     80 # PTW32_THREAD_ID_REUSE_INCREMENT
     81 # Purpose:
     82 # POSIX says that applications should assume that thread IDs can be
     83 # recycled. However, Solaris (and some other systems) use a [very large]
     84 # sequence number as the thread ID, which provides virtual uniqueness.
     85 # This provides a very high but finite level of safety for applications
     86 # that are not meticulous in tracking thread lifecycles e.g. applications
     87 # that call functions which target detached threads without some form of
     88 # thread exit synchronisation.
     89 #
     90 # Usage:
     91 # Set to any value in the range: 0 <= value < 2^wordsize.
     92 # Set to 0 to emulate reusable thread ID behaviour like Linux or *BSD.
     93 # Set to 1 for unique thread IDs like Solaris (this is the default).
     94 # Set to some factor of 2^wordsize to emulate smaller word size types
     95 # (i.e. will wrap sooner). This might be useful to emulate some embedded
     96 # systems.
     97 #
     98 # define PTW32_THREAD_ID_REUSE_INCREMENT 0
     99 #
    100 # ----------------------------------------------------------------------
    101  */
    102 #undef PTW32_THREAD_ID_REUSE_INCREMENT
    103 
    104 
    105 /*********************************************************************
    106  * Target specific groups
    107  *
    108  * If you find that these are incorrect or incomplete please report it
    109  * to the pthreads-win32 maintainer. Thanks.
    110  *********************************************************************/
    111 #if defined(WINCE)
    112 #define NEED_DUPLICATEHANDLE
    113 #define NEED_CREATETHREAD
    114 #define NEED_ERRNO
    115 #define NEED_CALLOC
    116 #define NEED_FTIME
    117 /* #define NEED_SEM */
    118 #define NEED_UNICODE_CONSTS
    119 #define NEED_PROCESS_AFFINITY_MASK
    120 /* This may not be needed */
    121 #define RETAIN_WSALASTERROR
    122 #endif
    123 
    124 #if defined(_UWIN)
    125 #define HAVE_MODE_T
    126 #define HAVE_STRUCT_TIMESPEC
    127 #endif
    128 
    129 #if defined(__GNUC__)
    130 #define HAVE_C_INLINE
    131 #endif
    132 
    133 #if defined(__MINGW64__)
    134 #define HAVE_MODE_T
    135 #define HAVE_STRUCT_TIMESPEC
    136 #elif defined(__MINGW32__)
    137 #define HAVE_MODE_T
    138 #endif
    139 
    140 #if defined(__BORLANDC__)
    141 #endif
    142 
    143 #if defined(__WATCOMC__)
    144 #endif
    145 
    146 #if defined(__DMC__)
    147 #define HAVE_SIGNAL_H
    148 #define HAVE_C_INLINE
    149 #endif
    150 
    151 
    152 
    153 #endif
    154