2 // The following configuration file is designed to work for CygWin
3 // platforms using GNU C++.
5 #ifndef ACE_CONFIG_CYGWIN32_H
6 #define ACE_CONFIG_CYGWIN32_H
8 #include /**/ "ace/pre.h"
10 #if !defined (ACE_MT_SAFE)
16 // We trust this file will get included before <sys/types.h>
17 #if !defined(FD_SETSIZE)
18 # define FD_SETSIZE 1024
21 #if !defined (ACE_IOV_MAX)
22 # define ACE_IOV_MAX 64
23 #endif /* ACE_IOV_MAX */
25 // Define custom export macros for export/import of symbols from/of dll's
26 #if !defined (ACE_HAS_CUSTOM_EXPORT_MACROS)
27 # define ACE_HAS_CUSTOM_EXPORT_MACROS 1
28 # define ACE_Proper_Export_Flag __declspec (dllexport)
29 # define ACE_Proper_Import_Flag __declspec (dllimport)
30 # define ACE_EXPORT_SINGLETON_DECLARATION(T) template class __declspec (dllexport) T
31 # define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class __declspec (dllexport) SINGLETON_TYPE<CLASS, LOCK>;
32 # define ACE_IMPORT_SINGLETON_DECLARATION(T) extern template class T
33 # define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) extern template class SINGLETON_TYPE <CLASS, LOCK>;
36 #define ACE_HAS_SELECT_H
38 #define ACE_LACKS_PRAGMA_ONCE
40 #if ! defined (__ACE_INLINE__)
41 # define __ACE_INLINE__
42 #endif /* ! __ACE_INLINE__ */
44 #include /**/ <cygwin/version.h>
46 #if CYGWIN_VERSION_API_MINOR >= 338
47 // Code #defines added to support the latest (as of 6/2019) version of Cygwin
48 #define ACE_HAS_UCONTEXT_T 1
49 #define ACE_LACKS_CUSERID 1
51 #define ACE_DISABLE_MKTEMP
52 #define ACE_HAS_3_PARAM_WCSTOK
53 #define ACE_LACKS_WCSICMP
54 #define ACE_LACKS_WCSNICMP
55 #define ACE_LACKS_STRPTIME
56 #define ACE_LACKS_SWAB
57 #define ACE_LACKS_STD_WSTRING
61 // Needed to differentiate between libc 5 and libc 6 (aka glibc).
62 // It's there on all libc 5 systems I checked.
63 #include /**/ <features.h>
65 // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
66 // this must appear before its #include.
67 #define ACE_HAS_STRING_CLASS
69 #if defined (__GNUG__)
70 # include "ace/config-g++-common.h"
72 # ifdef __cplusplus /* Let it slide for C compilers. */
73 # error unsupported compiler in ace/config-cygwin32.h
74 # endif /* __cplusplus */
77 #define ACE_HAS_VOIDPTR_SOCKOPT 1
78 #define ACE_HAS_UALARM 1
79 #define ACE_HAS_STRNLEN 1
80 #define ACE_HAS_POSIX_NONBLOCK 1
81 #define ACE_HAS_POSIX_TIME
82 #define ACE_HAS_CLOCK_GETTIME 1
83 #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
85 #define ACE_DEFAULT_BASE_ADDR ((char *) 0x8000000)
86 #define ACE_HAS_NONCONST_SELECT_TIMEVAL
87 #define ACE_HAS_SVR4_DYNAMIC_LINKING
88 #define ACE_HAS_VOIDPTR_MMAP
89 #define ACE_HAS_CPLUSPLUS_HEADERS
91 #define ACE_HAS_SOCKADDR_MSG_NAME 1
92 #define ACE_LACKS_PRI_T 1
94 // Compiler/platform supports alloca().
95 // Although ACE does have alloca() on this compiler/platform combination, it is
96 // disabled by default since it can be dangerous. Uncomment the following line
97 // if you want ACE to use it.
98 //#define ACE_HAS_ALLOCA
100 // Compiler/platform has the getrusage() system call.
101 #define ACE_HAS_GETRUSAGE
103 #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
105 // Optimize ACE_Handle_Set for select().
106 #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
108 #define ACE_HAS_IP_MULTICAST
110 #define ACE_HAS_BIG_FD_SET
112 // Platform has POSIX terminal interface.
113 #define ACE_HAS_TERMIOS
115 #define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
117 #define ACE_DEFAULT_SELECT_REACTOR_SIZE 256
119 #define ACE_HAS_GETPAGESIZE
121 #define ACE_HAS_VOIDPTR_GETTIMEOFDAY
123 #define ACE_HAS_STRSIGNAL
125 // Compiler supports the ssize_t typedef.
126 #define ACE_HAS_SSIZE_T
128 #define ACE_HAS_SOCKLEN_T 1
130 #define ACE_HAS_GPERF
132 #define ACE_HAS_DIRENT
133 #define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
135 #define ACE_LACKS_MKFIFO
136 #define ACE_LACKS_SIGINFO_H
137 #define ACE_LACKS_UCONTEXT_H
138 #define ACE_LACKS_STROPTS_H
139 #define ACE_LACKS_FGETWC 1
140 #define ACE_LACKS_NAMED_POSIX_SEM
141 #define ACE_LACKS_STRRECVFD
142 #define ACE_LACKS_MADVISE
143 #define ACE_LACKS_GETPGID_PROTOTYPE
144 #define ACE_LACKS_GETHOSTENT
145 #define ACE_LACKS_ITOW 1
146 #define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
147 #define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS 1
148 #define ACE_LACKS_RLIMIT
149 #define ACE_LACKS_RWLOCK_T 1
150 #define ACE_LACKS_SUSECONDS_T
151 #define ACE_LACKS_SYS_SYSCTL_H
153 #define ACE_LACKS_FGETWS 1
154 #define ACE_LACKS_FPUTWS 1
156 #define ACE_LACKS_WCSTOULL 1
157 #define ACE_LACKS_ISCTYPE
159 #define ACE_HAS_AUTOMATIC_INIT_FINI
161 #define ACE_HAS_SIGWAIT
162 #define ACE_HAS_SIGINFO_T
163 #define ACE_HAS_SIGACTION_CONSTP2
164 #define ACE_HAS_SIGSUSPEND
165 #define ACE_HAS_SIG_C_FUNC 1
166 #define ACE_HAS_SIG_ATOMIC_T
168 #define ACE_HAS_POSIX_SEM
170 #define ACE_HAS_P_READ_WRITE
172 #define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
174 // Cygwin DLL suffix is .dll
175 #define ACE_DLL_SUFFIX ACE_TEXT (".dll")
177 // Cygwin runs on Windows, so we have to get the environment variable PATH and
178 // not LD_LIBRARY_PATH which is the default in ACE
179 #define ACE_LD_SEARCH_PATH ACE_TEXT ("PATH")
182 // Yes, we do have threads.
183 # define ACE_HAS_THREADS
184 // And they're even POSIX pthreads (LinuxThreads implementation)
185 # define ACE_HAS_PTHREADS
187 # define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
189 // Compiler/platform has thread-specific storage
190 # define ACE_HAS_THREAD_SPECIFIC_STORAGE
192 # define ACE_HAS_PTHREADS_UNIX98_EXT
193 # define ACE_HAS_PTHREAD_CONTINUE 1
194 # define ACE_HAS_PTHREAD_SUSPEND 1
196 # define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
197 // Cygwin (see pthread.h): Not supported or implemented.
198 # define ACE_LACKS_SETSCHED
199 # define ACE_LACKS_SETDETACH
200 # define ACE_LACKS_PTHREAD_CANCEL
201 # define ACE_LACKS_THREAD_PROCESS_SCOPING
202 # define ACE_LACKS_MUTEXATTR_PSHARED
203 # define ACE_LACKS_RWLOCKATTR_PSHARED
204 # define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
205 # define ACE_LACKS_PTHREAD_YIELD 1
206 # define ACE_LACKS_PTHREAD_ATTR_SETSTACK
208 #if CYGWIN_VERSION_API_MINOR < 207
209 // In the 1.5.9 release of Cygwin the pthread_kill gives an access violation
210 // so for the time being we say Cygwin doesn't support pthread_kill.
211 # define ACE_LACKS_PTHREAD_KILL
214 #endif /* ACE_MT_SAFE */
216 #if CYGWIN_VERSION_API_MINOR >= 207
218 #define ACE_HAS_VWPRINTF
219 #define ACE_HAS_VFWPRINTF
220 #define ACE_HAS_VSWPRINTF
223 #include /**/ "ace/post.h"
225 #endif /* ACE_CONFIG_CYGWIN32_H */