• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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