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
63 #define ACE_HAS_P_READ_WRITE
64 // Use ACE's alternate cuserid() implementation since the use of the
65 // system cuserid() is discouraged.
66 #define ACE_HAS_ALT_CUSERID
68 #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)
69 # define ACE_HAS_ISASTREAM_PROTOTYPE
70 # define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE
71 # define ACE_HAS_CPU_SET_T
72 #endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */
74 #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 30)
75 # define ACE_LACKS_SYS_SYSCTL_H
76 #endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 30) */
78 // Then the compiler specific parts
80 #if defined (__GNUG__)
81 # include "ace/config-g++-common.h"
82 #elif defined (__GNUC__)
86 * We need to recognize the GNU C compiler since TAO has at least one
87 * C source header and file
88 * (TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.{h,c}) that may indirectly
91 #else /* ! __GNUG__ */
92 # ifdef __cplusplus /* Let it slide for C compilers. */
93 # error unsupported compiler in ace/config-hurd.h
94 # endif /* __cplusplus */
95 #endif /* ! __GNUG__*/
97 // Completely common part :-)
99 // Platform/compiler has the sigwait(2) prototype
100 #define ACE_HAS_SIGWAIT
102 #define ACE_HAS_SIGSUSPEND
104 #define ACE_HAS_UALARM
106 #define ACE_HAS_STRSIGNAL
108 #define ACE_HAS_XPG4_MULTIBYTE_CHAR
109 #define ACE_HAS_VFWPRINTF
111 #define ACE_LACKS_ITOW
112 #define ACE_LACKS_WCSICMP
113 #define ACE_LACKS_WCSNICMP
114 #define ACE_LACKS_ISWASCII
116 #define ACE_HAS_3_PARAM_WCSTOK
118 #if !defined (ACE_DEFAULT_BASE_ADDR)
119 # define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
120 #endif /* ! ACE_DEFAULT_BASE_ADDR */
122 #define ACE_HAS_ALLOCA
124 // Compiler/platform has <alloca.h>
125 #define ACE_HAS_ALLOCA_H
126 #define ACE_HAS_SYS_SYSINFO_H
128 // Compiler/platform has the getrusage() system call.
129 #define ACE_HAS_GETRUSAGE
130 #define ACE_HAS_GETRUSAGE_PROTOTYPE
132 #define ACE_HAS_BYTESWAP_H
133 #define ACE_HAS_BSWAP_16
134 #define ACE_HAS_BSWAP_32
136 #if defined (__GNUC__)
137 # define ACE_HAS_BSWAP_64
140 #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
142 // Optimize ACE_Handle_Set for select().
143 #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
145 // ONLY define this if you have config'd multicast into a 2.0.34 or
146 // prior kernel. It is enabled by default in 2.0.35 kernels.
147 #if !defined (ACE_HAS_IP_MULTICAST)
148 # define ACE_HAS_IP_MULTICAST
149 #endif /* ! ACE_HAS_IP_MULTICAST */
151 // At least for IPv4, Linux lacks perfect filtering.
152 #if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
153 # define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
154 #endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
156 #define ACE_HAS_BIG_FD_SET
158 // Linux defines struct msghdr in /usr/include/socket.h
161 // Linux "improved" the interface to select() so that it modifies
162 // the struct timeval to reflect the amount of time not slept
163 // (see NOTES in Linux's select(2) man page).
164 #define ACE_HAS_NONCONST_SELECT_TIMEVAL
166 #define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
168 #define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
170 #define ACE_HAS_GETPAGESIZE 1
172 // Platform defines struct timespec but not timespec_t
173 #define ACE_LACKS_TIMESPEC_T
175 // A conflict appears when including both <ucontext.h> and
176 // <sys/procfs.h> with recent glibc headers.
177 //#define ACE_HAS_PROC_FS
179 // Platform supports System V IPC (most versions of UNIX, but not Win32)
180 #define ACE_HAS_SYSV_IPC
182 // Compiler/platform contains the <sys/syscall.h> file.
183 #define ACE_HAS_SYS_SYSCALL_H
185 // Platform/compiler supports global timezone variable.
186 #define ACE_HAS_TIMEZONE
188 #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
190 // Compiler supports the ssize_t typedef.
191 #define ACE_HAS_SSIZE_T
193 // Compiler/platform defines the sig_atomic_t typedef.
194 #define ACE_HAS_SIG_ATOMIC_T
196 // Compiler/platform defines a union semun for SysV shared memory.
197 #define ACE_HAS_SEMUN
199 #define ACE_HAS_POSIX_TIME
201 #define ACE_HAS_GPERF
203 #define ACE_HAS_DIRENT
205 #define ACE_SIZEOF_WCHAR 4
207 #define ACE_LACKS_GETIPNODEBYADDR
208 #define ACE_LACKS_GETIPNODEBYNAME
209 #define ACE_LACKS_STROPTS_H
210 #define ACE_LACKS_STRRECVFD
212 // Platform has POSIX terminal interface.
213 #define ACE_HAS_TERMIOS
215 // Linux implements sendfile().
216 #define ACE_HAS_SENDFILE 1
218 #define ACE_HAS_VOIDPTR_MMAP
220 #define ACE_HAS_ICMP_SUPPORT 1
222 #define ACE_HAS_VASPRINTF
224 // According to man pages Linux uses different (compared to UNIX systems) types
225 // for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP
226 // in setsockopt/getsockopt.
227 #define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1
228 #define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1
229 #define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1
231 #define ACE_HAS_GETIFADDRS
233 #define ACE_HAS_SVR4_DYNAMIC_LINKING
234 #define ACE_HAS_AUTOMATIC_INIT_FINI
235 #define ACE_HAS_RECURSIVE_MUTEXES
236 #define ACE_HAS_THREAD_SPECIFIC_STORAGE
237 #define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
238 #define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
239 #define ACE_HAS_REENTRANT_FUNCTIONS
241 #include /**/ "ace/post.h"
243 #endif /* ACE_CONFIG_HURD_H */