1 // The following configuration file is designed to work for GNU/Hurd
2 // platforms using GNU C++.
3 #ifndef ACE_CONFIG_HURD_H
4 #define ACE_CONFIG_HURD_H
5 #include /**/ "ace/pre.h"
7 #if !defined (ACE_MT_SAFE)
11 #define ACE_PLATFORM_CONFIG config-hurd.h
12 #define ACE_LACKS_SYS_SYSCTL_H
15 ? #define ACE_USES_FIFO_SEM
17 ACE_LACKS_PERFECT_MULTICAST_FILTERING
20 // Needed to differentiate between libc 5 and libc 6 (aka glibc).
23 #if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)
24 # define ACE_HAS_PTHREADS_UNIX98_EXT
25 #endif /* _XOPEN_SOURCE - 0 >= 500 */
27 # include "ace/config-posix.h"
29 // AIO support pulls in the rt library, which pulls in the pthread
30 // library. Disable AIO in single-threaded builds.
31 #if defined (ACE_HAS_THREADS)
32 # define ACE_HAS_CLOCK_GETTIME
33 # define ACE_HAS_CLOCK_SETTIME
35 # undef ACE_HAS_AIO_CALLS
38 // Then glibc/libc5 specific parts
40 #if defined(__GLIBC__)
41 # define ACE_HAS_SOCKLEN_T
42 # define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
44 // glibc defines both of these, used in OS_String.
45 # if defined (_GNU_SOURCE)
46 # define ACE_HAS_STRNLEN
47 # define ACE_HAS_WCSNLEN
50 // To avoid the strangeness with Linux's ::select (), which modifies
51 // its timeout argument, use ::poll () instead.
54 # define ACE_HAS_SIGINFO_T
55 # define ACE_LACKS_SIGINFO_H
56 # define ACE_HAS_UCONTEXT_T
57 # define ACE_HAS_SIGTIMEDWAIT
59 #endif /* __GLIBC__ */
61 #define ACE_HAS_LSEEK64
62 //#define ACE_LACKS_LSEEK64_PROTOTYPE
64 #define ACE_HAS_P_READ_WRITE
65 // Use ACE's alternate cuserid() implementation since the use of the
66 // system cuserid() is discouraged.
67 #define ACE_HAS_ALT_CUSERID
69 #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)
70 # define ACE_HAS_ISASTREAM_PROTOTYPE
71 # define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
72 # define ACE_HAS_CPU_SET_T
73 #endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */
75 #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 30)
76 # define ACE_LACKS_SYS_SYSCTL_H
77 #endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 30) */
79 // Then the compiler specific parts
81 #if defined (__GNUG__)
82 // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so
83 // this must appear before its #include.
84 # define ACE_HAS_STRING_CLASS
85 # include "ace/config-g++-common.h"
86 #elif defined (__GNUC__)
90 * We need to recognize the GNU C compiler since TAO has at least one
91 * C source header and file
92 * (TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.{h,c}) that may indirectly
95 #else /* ! __GNUG__ */
96 # ifdef __cplusplus /* Let it slide for C compilers. */
97 # error unsupported compiler in ace/config-hurd.h
98 # endif /* __cplusplus */
99 #endif /* ! __GNUG__*/
101 // Completely common part :-)
103 // Platform/compiler has the sigwait(2) prototype
104 #define ACE_HAS_SIGWAIT
106 #define ACE_HAS_SIGSUSPEND
108 #define ACE_HAS_UALARM
110 #define ACE_HAS_STRSIGNAL
112 #define ACE_HAS_XPG4_MULTIBYTE_CHAR
113 #define ACE_HAS_VFWPRINTF
115 #define ACE_LACKS_ITOW
116 #define ACE_LACKS_WCSICMP
117 #define ACE_LACKS_WCSNICMP
118 #define ACE_LACKS_ISWASCII
120 #define ACE_HAS_3_PARAM_WCSTOK
122 #define ACE_HAS_3_PARAM_READDIR_R
124 #if !defined (ACE_DEFAULT_BASE_ADDR)
125 # define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
126 #endif /* ! ACE_DEFAULT_BASE_ADDR */
128 #define ACE_HAS_ALLOCA
130 // Compiler/platform has <alloca.h>
131 #define ACE_HAS_ALLOCA_H
132 #define ACE_HAS_SYS_SYSINFO_H
134 // Compiler/platform has the getrusage() system call.
135 #define ACE_HAS_GETRUSAGE
136 #define ACE_HAS_GETRUSAGE_PROTOTYPE
138 #define ACE_HAS_BYTESWAP_H
139 #define ACE_HAS_BSWAP_16
140 #define ACE_HAS_BSWAP_32
142 #if defined (__GNUC__)
143 # define ACE_HAS_BSWAP_64
146 #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
148 // Optimize ACE_Handle_Set for select().
149 #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
151 // ONLY define this if you have config'd multicast into a 2.0.34 or
152 // prior kernel. It is enabled by default in 2.0.35 kernels.
153 #if !defined (ACE_HAS_IP_MULTICAST)
154 # define ACE_HAS_IP_MULTICAST
155 #endif /* ! ACE_HAS_IP_MULTICAST */
157 // At least for IPv4, Linux lacks perfect filtering.
158 #if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
159 # define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
160 #endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
162 #define ACE_HAS_BIG_FD_SET
164 // Linux defines struct msghdr in /usr/include/socket.h
167 // Linux "improved" the interface to select() so that it modifies
168 // the struct timeval to reflect the amount of time not slept
169 // (see NOTES in Linux's select(2) man page).
170 #define ACE_HAS_NONCONST_SELECT_TIMEVAL
172 #define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
174 #define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
176 #define ACE_HAS_GETPAGESIZE 1
178 // Platform defines struct timespec but not timespec_t
179 #define ACE_LACKS_TIMESPEC_T
181 // A conflict appears when including both <ucontext.h> and
182 // <sys/procfs.h> with recent glibc headers.
183 //#define ACE_HAS_PROC_FS
185 // Platform supports System V IPC (most versions of UNIX, but not Win32)
186 #define ACE_HAS_SYSV_IPC
188 // Compiler/platform contains the <sys/syscall.h> file.
189 #define ACE_HAS_SYS_SYSCALL_H
191 // Platform/compiler supports global timezone variable.
192 #define ACE_HAS_TIMEZONE
194 #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
196 // Compiler supports the ssize_t typedef.
197 #define ACE_HAS_SSIZE_T
199 // Compiler/platform defines the sig_atomic_t typedef.
200 #define ACE_HAS_SIG_ATOMIC_T
202 // Compiler/platform defines a union semun for SysV shared memory.
203 #define ACE_HAS_SEMUN
205 #define ACE_HAS_POSIX_TIME
207 #define ACE_HAS_GPERF
209 #define ACE_HAS_DIRENT
211 #define ACE_HAS_STRBUF_T
213 #define ACE_SIZEOF_WCHAR 4
215 #define ACE_LACKS_GETIPNODEBYADDR
216 #define ACE_LACKS_GETIPNODEBYNAME
218 // Platform has POSIX terminal interface.
219 #define ACE_HAS_TERMIOS
221 // Linux implements sendfile().
222 #define ACE_HAS_SENDFILE 1
224 #define ACE_HAS_VOIDPTR_MMAP
226 #define ACE_HAS_ICMP_SUPPORT 1
228 #define ACE_HAS_VASPRINTF
230 // According to man pages Linux uses different (compared to UNIX systems) types
231 // for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP
232 // in setsockopt/getsockopt.
233 #define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1
234 #define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1
235 #define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1
237 #define ACE_HAS_GETIFADDRS
239 #define ACE_HAS_SVR4_DYNAMIC_LINKING
240 #define ACE_HAS_AUTOMATIC_INIT_FINI
241 #define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE
242 #define ACE_HAS_RECURSIVE_MUTEXES
243 #define ACE_HAS_THREAD_SPECIFIC_STORAGE
244 #define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
245 #define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
246 #define ACE_HAS_REENTRANT_FUNCTIONS
248 #include /**/ "ace/post.h"
250 #endif /* ACE_CONFIG_HURD_H */