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_CPU_SET_T
71 #endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */
73 #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 30)
74 # define ACE_LACKS_SYS_SYSCTL_H
75 #endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 30) */
77 // Then the compiler specific parts
79 #if defined (__GNUG__)
80 # include "ace/config-g++-common.h"
81 #elif defined (__GNUC__)
85 * We need to recognize the GNU C compiler since TAO has at least one
86 * C source header and file
87 * (TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.{h,c}) that may indirectly
90 #else /* ! __GNUG__ */
91 # ifdef __cplusplus /* Let it slide for C compilers. */
92 # error unsupported compiler in ace/config-hurd.h
93 # endif /* __cplusplus */
94 #endif /* ! __GNUG__*/
96 // Completely common part :-)
98 // Platform/compiler has the sigwait(2) prototype
99 #define ACE_HAS_SIGWAIT
101 #define ACE_HAS_SIGSUSPEND
103 #define ACE_HAS_UALARM
105 #define ACE_HAS_STRSIGNAL
107 #define ACE_HAS_XPG4_MULTIBYTE_CHAR
108 #define ACE_HAS_VFWPRINTF
110 #define ACE_LACKS_ITOW
111 #define ACE_LACKS_WCSICMP
112 #define ACE_LACKS_WCSNICMP
113 #define ACE_LACKS_ISWASCII
115 #define ACE_HAS_3_PARAM_WCSTOK
117 #if !defined (ACE_DEFAULT_BASE_ADDR)
118 # define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000)
119 #endif /* ! ACE_DEFAULT_BASE_ADDR */
121 #define ACE_HAS_ALLOCA
123 // Compiler/platform has <alloca.h>
124 #define ACE_HAS_ALLOCA_H
125 #define ACE_HAS_SYS_SYSINFO_H
127 // Compiler/platform has the getrusage() system call.
128 #define ACE_HAS_GETRUSAGE
129 #define ACE_HAS_GETRUSAGE_PROTOTYPE
131 #define ACE_HAS_BYTESWAP_H
132 #define ACE_HAS_BSWAP_16
133 #define ACE_HAS_BSWAP_32
135 #if defined (__GNUC__)
136 # define ACE_HAS_BSWAP_64
139 #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
141 // Optimize ACE_Handle_Set for select().
142 #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
144 // ONLY define this if you have config'd multicast into a 2.0.34 or
145 // prior kernel. It is enabled by default in 2.0.35 kernels.
146 #if !defined (ACE_HAS_IP_MULTICAST)
147 # define ACE_HAS_IP_MULTICAST
148 #endif /* ! ACE_HAS_IP_MULTICAST */
150 // At least for IPv4, Linux lacks perfect filtering.
151 #if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING
152 # define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1
153 #endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */
155 #define ACE_HAS_BIG_FD_SET
157 // Linux defines struct msghdr in /usr/include/socket.h
160 // Linux "improved" the interface to select() so that it modifies
161 // the struct timeval to reflect the amount of time not slept
162 // (see NOTES in Linux's select(2) man page).
163 #define ACE_HAS_NONCONST_SELECT_TIMEVAL
165 #define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535
167 #define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1
169 #define ACE_HAS_GETPAGESIZE 1
171 // Platform defines struct timespec but not timespec_t
172 #define ACE_LACKS_TIMESPEC_T
174 // A conflict appears when including both <ucontext.h> and
175 // <sys/procfs.h> with recent glibc headers.
176 //#define ACE_HAS_PROC_FS
178 // Platform supports System V IPC (most versions of UNIX, but not Win32)
179 #define ACE_HAS_SYSV_IPC
181 // Compiler/platform contains the <sys/syscall.h> file.
182 #define ACE_HAS_SYS_SYSCALL_H
184 // Platform/compiler supports global timezone variable.
185 #define ACE_HAS_TIMEZONE
187 #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
189 // Compiler supports the ssize_t typedef.
190 #define ACE_HAS_SSIZE_T
192 // Compiler/platform defines the sig_atomic_t typedef.
193 #define ACE_HAS_SIG_ATOMIC_T
195 // Compiler/platform defines a union semun for SysV shared memory.
196 #define ACE_HAS_SEMUN
198 #define ACE_HAS_POSIX_TIME
200 #define ACE_HAS_GPERF
202 #define ACE_HAS_DIRENT
204 #define ACE_SIZEOF_WCHAR 4
206 #define ACE_LACKS_GETIPNODEBYADDR
207 #define ACE_LACKS_GETIPNODEBYNAME
208 #define ACE_LACKS_STROPTS_H
209 #define ACE_LACKS_STRRECVFD
211 // Platform has POSIX terminal interface.
212 #define ACE_HAS_TERMIOS
214 // Linux implements sendfile().
215 #define ACE_HAS_SENDFILE 1
217 #define ACE_HAS_VOIDPTR_MMAP
219 #define ACE_HAS_ICMP_SUPPORT 1
221 #define ACE_HAS_VASPRINTF
223 // According to man pages Linux uses different (compared to UNIX systems) types
224 // for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP
225 // in setsockopt/getsockopt.
226 #define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1
227 #define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1
228 #define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1
230 #define ACE_HAS_GETIFADDRS
232 #define ACE_HAS_SVR4_DYNAMIC_LINKING
233 #define ACE_HAS_AUTOMATIC_INIT_FINI
234 #define ACE_HAS_RECURSIVE_MUTEXES
235 #define ACE_HAS_THREAD_SPECIFIC_STORAGE
236 #define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS
237 #define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
238 #define ACE_HAS_REENTRANT_FUNCTIONS
240 #include /**/ "ace/post.h"
242 #endif /* ACE_CONFIG_HURD_H */