diff options
author | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
commit | e585187b248f48b3c6e9247b49fa07c6565d65e5 (patch) | |
tree | 637c5b7ddacf41040bef4ea4f75a97da64c6a9bc /dep/ACE_wrappers/ace/config-linux-common.h | |
parent | 26b5e033ffde3d161382fc9addbfa99738379641 (diff) |
*Backed out changeset 3be01fb200a5
--HG--
branch : trunk
Diffstat (limited to 'dep/ACE_wrappers/ace/config-linux-common.h')
-rw-r--r-- | dep/ACE_wrappers/ace/config-linux-common.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/config-linux-common.h b/dep/ACE_wrappers/ace/config-linux-common.h index a0dda28c282..6743c53adfc 100644 --- a/dep/ACE_wrappers/ace/config-linux-common.h +++ b/dep/ACE_wrappers/ace/config-linux-common.h @@ -1,35 +1,46 @@ /* -*- C++ -*- */ // $Id: config-linux-common.h 82516 2008-08-05 19:22:59Z shuston $ + // Do not use this configuration file directly since it's designed to // be included by another, specific configuration file, such as // config-linux.h. It provides config information common to all Linux // platforms. It automatically determines the CPU architecture, // compiler (g++ or egcs), and libc (libc5 or glibc), and configures // based on those. + #ifndef ACE_LINUX_COMMON_H #define ACE_LINUX_COMMON_H #include /**/ "ace/pre.h" + #define ACE_HAS_BYTESEX_H + #if ! defined (__ACE_INLINE__) #define __ACE_INLINE__ #endif /* ! __ACE_INLINE__ */ + // Needed to differentiate between libc 5 and libc 6 (aka glibc). #include <features.h> + #if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500) # define ACE_HAS_PTHREADS_UNIX98_EXT #endif /* _XOPEN_SOURCE - 0 >= 500 */ + #if !defined (ACE_LACKS_LINUX_NPTL) + # include "ace/config-posix.h" + // Temporary fix because NPTL kernels do have shm_open but there is a problem // with shm_open/shm_unlink pairing in ACE which needs to be fixed when I have time. # if defined (ACE_HAS_SHM_OPEN) # undef ACE_HAS_SHM_OPEN # endif /* ACE_HAS_SHM_OPEN */ + # if defined (ACE_USES_FIFO_SEM) // Don't use this for Linux NPTL since this has complete // POSIX semaphores which are more efficient # undef ACE_USES_FIFO_SEM # endif /* ACE_USES_FIFO_SEM */ + # if defined (ACE_HAS_POSIX_SEM) // Linux NPTL may not define the right POSIX macro // but they have the actual runtime support for this stuff @@ -38,7 +49,9 @@ # endif /* !ACE_HAS_POSIX_SEM_TIMEOUT && (((_POSIX_C_SOURCE - 0) >= 200112L) || (_XOPEN_SOURCE >= 600)) */ # endif /* ACE_HAS_POSIX_SEM */ #endif /* !ACE_LACKS_LINUX_NPTL */ + // First the machine specific part + #if defined (__powerpc__) || defined (__x86_64__) # if !defined (ACE_DEFAULT_BASE_ADDR) # define ACE_DEFAULT_BASE_ADDR ((char *) 0x40000000) @@ -50,7 +63,9 @@ # define ACE_DEFAULT_BASE_ADDR ((char *) 0x0000000000000000) # endif /* ! ACE_DEFAULT_BASE_ADDR */ #endif /* ! __powerpc__ && ! __ia64 */ + // Then glibc/libc5 specific parts + #if defined(__GLIBC__) # if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 1) # define ACE_HAS_NONCONST_SETRLIMIT @@ -61,10 +76,12 @@ # endif # define ACE_HAS_SOCKLEN_T # define ACE_HAS_4_4BSD_SENDMSG_RECVMSG + // glibc defines both of these, used in OS_String. # if defined (_GNU_SOURCE) # define ACE_HAS_STRNLEN # define ACE_HAS_WCSNLEN + // This is probably not a 100%-sure-fire check... Red Hat Linux 9 // and Enterprise Linux 3 and up have a new kernel that can send signals // across threads. This was not possible prior because there was no real @@ -75,23 +92,28 @@ // for most Linux platforms at this time. But we'll start to crawl... # define ACE_POSIX_SIG_PROACTOR # endif + // To avoid the strangeness with Linux's ::select (), which modifies // its timeout argument, use ::poll () instead. # define ACE_HAS_POLL + // Don't define _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED in ACE to make // getpgid() prototype visible. ACE shouldn't depend on feature test // macros to make prototypes visible. # define ACE_LACKS_GETPGID_PROTOTYPE + // @note the following defines are necessary with glibc 2.0 (0.961212-5) // on Alpha. I assume that they're necessary on Intel as well, // but that may depend on the version of glibc that is used. //# define ACE_HAS_DLFCN_H_BROKEN_EXTERN_C # define ACE_HAS_VOIDPTR_SOCKOPT + // Don't define _POSIX_SOURCE in ACE to make strtok() prototype // visible. ACE shouldn't depend on feature test macros to make // prototypes visible. # define ACE_LACKS_STRTOK_R_PROTOTYPE // @note end of glibc 2.0 (0.961212-5)-specific configuration. + # if __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1 // These were suggested by Robert Hanzlik <robi@codalan.cz> to get // ACE to compile on Linux using glibc 2.1 and libg++/gcc 2.8. @@ -99,6 +121,7 @@ # define ACE_HAS_SIGINFO_T # define ACE_LACKS_SIGINFO_H # define ACE_HAS_UCONTEXT_T + // Pre-glibc (RedHat 5.2) doesn't have sigtimedwait. # define ACE_HAS_SIGTIMEDWAIT # endif /* __GLIBC__ 2.1+ */ @@ -107,6 +130,7 @@ # define ACE_LACKS_MADVISE # define ACE_LACKS_MSG_ACCRIGHTS #endif /* ! __GLIBC__ */ + // Don't define _LARGEFILE64_SOURCE in ACE to make llseek() or // lseek64() prototype visible. ACE shouldn't depend on feature test // macros to make prototypes visible. @@ -119,6 +143,7 @@ # define ACE_LACKS_LSEEK64_PROTOTYPE # endif #endif /* __GLIBC__ > 1 */ + #if __GLIBC__ > 1 && __GLIBC_MINOR__ >= 1 # define ACE_HAS_P_READ_WRITE # define ACE_LACKS_PREAD_PROTOTYPE @@ -126,12 +151,15 @@ // system cuserid() is discouraged. # define ACE_HAS_ALT_CUSERID #endif /* __GLIBC__ > 1 && __GLIBC_MINOR__ >= 0 */ + #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) # define ACE_HAS_ISASTREAM_PROTOTYPE # define ACE_HAS_PTHREAD_SIGMASK_PROTOTYPE # define ACE_HAS_CPU_SET_T #endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */ + // Then the compiler specific parts + #if defined (__INTEL_COMPILER) # include "ace/config-icc-common.h" #elif defined (__GNUG__) @@ -176,130 +204,177 @@ # error unsupported compiler in ace/config-linux-common.h # endif /* __cplusplus */ #endif /* ! __GNUG__*/ + // Completely common part :-) + // Platform/compiler has the sigwait(2) prototype # define ACE_HAS_SIGWAIT + # define ACE_HAS_SIGSUSPEND + # define ACE_HAS_UALARM + #if __GLIBC__ >= 2 #ifndef ACE_HAS_POSIX_REALTIME_SIGNALS #define ACE_HAS_POSIX_REALTIME_SIGNALS #endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */ + #ifndef ACE_HAS_AIO_CALLS #define ACE_HAS_AIO_CALLS #endif /* ACE_HAS_AIO_CALLS */ #endif + #if __GLIBC__ >= 2 // glibc 2 and higher has wchar support # define ACE_HAS_XPG4_MULTIBYTE_CHAR # define ACE_HAS_VFWPRINTF #endif + #if __GLIBC__ < 2 // These are present in glibc 2 and higher # define ACE_LACKS_WCSTOK # define ACE_LACKS_WCSDUP_PROTOTYPE #endif /* __GLIBC__ < 2 */ + #define ACE_LACKS_ITOW #define ACE_LACKS_WCSICMP #define ACE_LACKS_WCSNICMP + #if __GLIBC__ >= 2 # define ACE_HAS_3_PARAM_WCSTOK #endif + #define ACE_HAS_3_PARAM_READDIR_R + #if !defined (ACE_DEFAULT_BASE_ADDR) # define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000) #endif /* ! ACE_DEFAULT_BASE_ADDR */ + // Compiler/platform supports alloca(). // Although ACE does have alloca() on this compiler/platform combination, it is // disabled by default since it can be dangerous. Uncomment the following line // if you ACE to use it. //#define ACE_HAS_ALLOCA + // Compiler/platform has <alloca.h> #define ACE_HAS_ALLOCA_H #define ACE_HAS_SYS_SYSINFO_H #define ACE_HAS_LINUX_SYSINFO + // Compiler/platform has the getrusage() system call. #define ACE_HAS_GETRUSAGE #define ACE_HAS_GETRUSAGE_PROTOTYPE + #define ACE_HAS_BYTESWAP_H #define ACE_HAS_BSWAP_16 #define ACE_HAS_BSWAP_32 + #if defined __GNUC__ && __GNUC__ >= 2 # define ACE_HAS_BSWAP_64 #endif + #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES + // Optimize ACE_Handle_Set for select(). #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT + // ONLY define this if you have config'd multicast into a 2.0.34 or // prior kernel. It is enabled by default in 2.0.35 kernels. #if !defined (ACE_HAS_IP_MULTICAST) # define ACE_HAS_IP_MULTICAST #endif /* ! ACE_HAS_IP_MULTICAST */ + // At least for IPv4, Linux lacks perfect filtering. #if !defined ACE_LACKS_PERFECT_MULTICAST_FILTERING # define ACE_LACKS_PERFECT_MULTICAST_FILTERING 1 #endif /* ACE_LACKS_PERFECT_MULTICAST_FILTERING */ + #define ACE_HAS_BIG_FD_SET + // Linux defines struct msghdr in /usr/include/socket.h #define ACE_HAS_MSG + // Linux "improved" the interface to select() so that it modifies // the struct timeval to reflect the amount of time not slept // (see NOTES in Linux's select(2) man page). #define ACE_HAS_NONCONST_SELECT_TIMEVAL + #define ACE_DEFAULT_MAX_SOCKET_BUFSIZ 65535 + #define ACE_CDR_IMPLEMENT_WITH_NATIVE_DOUBLE 1 + #define ACE_HAS_GETPAGESIZE 1 + #if (__GLIBC__ < 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ < 2) // glibc supports wchar, but lacks fgetwc and ungetwc # define ACE_LACKS_FGETWC # define ACE_HAS_NONCONST_MSGSND # define ACE_LACKS_STRNLEN_PROTOTYPE #endif + // glibc requires _XOPEN_SOURCE_EXTENDED to make this prototype // visible, so force ACE to declare one. Yuk! #ifndef _XOPEN_SOURCE_EXTENDED # define ACE_LACKS_MKSTEMP_PROTOTYPE #endif /* !_XOPEN_SOURCE_EXTENDED */ + // Platform defines struct timespec but not timespec_t #define ACE_LACKS_TIMESPEC_T + // Platform supplies scandir() #define ACE_HAS_SCANDIR // Although the scandir man page says otherwise, this setting is correct. #define ACE_SCANDIR_CMP_USES_CONST_VOIDPTR + // A conflict appears when including both <ucontext.h> and // <sys/procfs.h> with recent glibc headers. //#define ACE_HAS_PROC_FS + // Platform supports System V IPC (most versions of UNIX, but not Win32) #define ACE_HAS_SYSV_IPC + // Compiler/platform contains the <sys/syscall.h> file. #define ACE_HAS_SYS_SYSCALL_H + // Platform/compiler supports global timezone variable. #define ACE_HAS_TIMEZONE + #define ACE_HAS_TIMEZONE_GETTIMEOFDAY + // Compiler/platform supports strerror (). #define ACE_HAS_STRERROR + // Don't define _XOPEN_SOURCE in ACE to make strptime() prototype // visible. ACE shouldn't depend on feature test macros to make // prototypes visible. #define ACE_LACKS_STRPTIME_PROTOTYPE + // Compiler supports the ssize_t typedef. #define ACE_HAS_SSIZE_T + // Compiler/platform defines the sig_atomic_t typedef. #define ACE_HAS_SIG_ATOMIC_T + // Compiler/platform defines a union semun for SysV shared memory. #define ACE_HAS_SEMUN + #define ACE_HAS_POSIX_TIME + #define ACE_HAS_GPERF + #define ACE_HAS_DIRENT + // Starting with FC9 rawhide this file is not available anymore but // this define is set #if defined _XOPEN_STREAMS && _XOPEN_STREAMS == -1 # define ACE_LACKS_STROPTS_H # define ACE_LACKS_STRRECVFD #endif + #if !defined (ACE_LACKS_STROPTS_H) # define ACE_HAS_STRBUF_T #endif + #if defined (__ia64) || defined(__alpha) || defined (__x86_64__) // On 64 bit platforms, the "long" type is 64-bits. Override the // default 32-bit platform-specific format specifiers appropriately. @@ -307,20 +382,27 @@ # define ACE_SSIZE_T_FORMAT_SPECIFIER ACE_TEXT ("%ld") # define ACE_SIZE_T_FORMAT_SPECIFIER ACE_TEXT ("%lu") #endif /* __ia64 */ + #define ACE_SIZEOF_WCHAR 4 + #define ACE_LACKS_GETIPNODEBYADDR #define ACE_LACKS_GETIPNODEBYNAME + // Platform has POSIX terminal interface. #define ACE_HAS_TERMIOS + // Linux implements sendfile(). #define ACE_HAS_SENDFILE + #define ACE_HAS_VOIDPTR_MMAP + #if defined (ACE_LACKS_NETWORKING) # include "ace/config-posix-nonetworking.h" #else # define ACE_HAS_NETLINK # define ACE_HAS_GETIFADDRS #endif + #if !defined (ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO) // Detect if getsockname() and getpeername() returns random values in // the sockaddr_in::sin_zero field by evaluation of the kernel @@ -334,6 +416,7 @@ # define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 1 # endif /* (LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,47)) */ #endif /* ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO */ + #if defined (ACE_HAS_EVENT_POLL) // The sys_epoll interface was introduced in Linux kernel 2.5.45. // Don't support backported versions since they appear to be buggy. @@ -350,6 +433,7 @@ # endif /* LINUX_VERSION_CODE < KERNEL_VERSION (2,5,45) */ #endif /* ACE_HAS_EVENT_POLL */ #endif + #if !defined (ACE_HAS_EVENT_POLL) && !defined (ACE_HAS_DEV_POLL) # if !defined (ACE_LACKS_LINUX_VERSION_H) # include <linux/version.h> @@ -358,6 +442,8 @@ # define ACE_HAS_EVENT_POLL # endif #endif + #include /**/ "ace/post.h" + #endif /* ACE_LINUX_COMMON_H */ |