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