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