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 #if defined (__GNUG__)
66 # include "ace/config-g++-common.h"
68 # ifdef __cplusplus /* Let it slide for C compilers. */
69 # error unsupported compiler in ace/config-cygwin32.h
70 # endif /* __cplusplus */
73 #define ACE_HAS_VOIDPTR_SOCKOPT 1
74 #define ACE_HAS_UALARM 1
75 #define ACE_HAS_STRNLEN 1
76 #define ACE_HAS_POSIX_NONBLOCK 1
77 #define ACE_HAS_POSIX_TIME
78 #define ACE_HAS_CLOCK_GETTIME 1
79 #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
81 #define ACE_DEFAULT_BASE_ADDR ((char *) 0x8000000)
82 #define ACE_HAS_NONCONST_SELECT_TIMEVAL
83 #define ACE_HAS_SVR4_DYNAMIC_LINKING
84 #define ACE_HAS_VOIDPTR_MMAP
86 #define ACE_HAS_SOCKADDR_MSG_NAME 1
88 // Compiler/platform supports alloca().
89 // Although ACE does have alloca() on this compiler/platform combination, it is
90 // disabled by default since it can be dangerous. Uncomment the following line
91 // if you want ACE to use it.
92 //#define ACE_HAS_ALLOCA
94 // Compiler/platform has the getrusage() system call.
95 #define ACE_HAS_GETRUSAGE
97 #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
99 // Optimize ACE_Handle_Set for select().
100 #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
102 #define ACE_HAS_IP_MULTICAST
104 #define ACE_HAS_BIG_FD_SET
106 // Platform has POSIX terminal interface.
107 #define ACE_HAS_TERMIOS
109 #define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
111 #define ACE_DEFAULT_SELECT_REACTOR_SIZE 256
113 #define ACE_HAS_GETPAGESIZE
115 #define ACE_HAS_VOIDPTR_GETTIMEOFDAY
117 #define ACE_HAS_STRSIGNAL
119 // Compiler supports the ssize_t typedef.
120 #define ACE_HAS_SSIZE_T
122 #define ACE_HAS_SOCKLEN_T 1
124 #define ACE_HAS_GPERF
126 #define ACE_HAS_DIRENT
127 #define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
129 #define ACE_LACKS_MKFIFO
130 #define ACE_LACKS_SIGINFO_H
131 #define ACE_LACKS_UCONTEXT_H
132 #define ACE_LACKS_STROPTS_H
133 #define ACE_LACKS_FGETWC 1
134 #define ACE_LACKS_NAMED_POSIX_SEM
135 #define ACE_LACKS_STRRECVFD
136 #define ACE_LACKS_MADVISE
137 #define ACE_LACKS_GETPGID_PROTOTYPE
138 #define ACE_LACKS_GETHOSTENT
139 #define ACE_LACKS_ITOW 1
140 #define ACE_LACKS_LINEBUFFERED_STREAMBUF 1
141 #define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS 1
142 #define ACE_LACKS_RLIMIT
143 #define ACE_LACKS_RWLOCK_T 1
144 #define ACE_LACKS_SUSECONDS_T
145 #define ACE_LACKS_SYS_SYSCTL_H
147 #define ACE_LACKS_FGETWS 1
148 #define ACE_LACKS_FPUTWS 1
150 #define ACE_LACKS_WCSTOULL 1
151 #define ACE_LACKS_ISCTYPE
153 #define ACE_HAS_AUTOMATIC_INIT_FINI
155 #define ACE_HAS_SIGWAIT
156 #define ACE_HAS_SIGINFO_T
157 #define ACE_HAS_SIGACTION_CONSTP2
158 #define ACE_HAS_SIGSUSPEND
159 #define ACE_HAS_SIG_C_FUNC 1
160 #define ACE_HAS_SIG_ATOMIC_T
162 #define ACE_HAS_POSIX_SEM
164 #define ACE_HAS_P_READ_WRITE
166 #define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
168 // Cygwin DLL suffix is .dll
169 #define ACE_DLL_SUFFIX ACE_TEXT (".dll")
171 // Cygwin runs on Windows, so we have to get the environment variable PATH and
172 // not LD_LIBRARY_PATH which is the default in ACE
173 #define ACE_LD_SEARCH_PATH ACE_TEXT ("PATH")
176 // Yes, we do have threads.
177 # define ACE_HAS_THREADS
178 // And they're even POSIX pthreads (LinuxThreads implementation)
179 # define ACE_HAS_PTHREADS
181 # define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
183 // Compiler/platform has thread-specific storage
184 # define ACE_HAS_THREAD_SPECIFIC_STORAGE
186 # define ACE_HAS_PTHREADS_UNIX98_EXT
187 # define ACE_HAS_PTHREAD_CONTINUE 1
188 # define ACE_HAS_PTHREAD_SUSPEND 1
190 # define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
191 // Cygwin (see pthread.h): Not supported or implemented.
192 # define ACE_LACKS_SETSCHED
193 # define ACE_LACKS_SETDETACH
194 # define ACE_LACKS_PTHREAD_CANCEL
195 # define ACE_LACKS_THREAD_PROCESS_SCOPING
196 # define ACE_LACKS_MUTEXATTR_PSHARED
197 # define ACE_LACKS_RWLOCKATTR_PSHARED
198 # define ACE_LACKS_PTHREAD_THR_SIGSETMASK 1
199 # define ACE_LACKS_PTHREAD_YIELD 1
200 # define ACE_LACKS_PTHREAD_ATTR_SETSTACK
202 #if CYGWIN_VERSION_API_MINOR < 207
203 // In the 1.5.9 release of Cygwin the pthread_kill gives an access violation
204 // so for the time being we say Cygwin doesn't support pthread_kill.
205 # define ACE_LACKS_PTHREAD_KILL
208 #endif /* ACE_MT_SAFE */
210 #if CYGWIN_VERSION_API_MINOR >= 207
212 #define ACE_HAS_VWPRINTF
213 #define ACE_HAS_VFWPRINTF
214 #define ACE_HAS_VSWPRINTF
217 #include /**/ "ace/post.h"
219 #endif /* ACE_CONFIG_CYGWIN32_H */