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