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