diff options
Diffstat (limited to 'ACE/ace/config-android.h')
-rw-r--r-- | ACE/ace/config-android.h | 249 |
1 files changed, 24 insertions, 225 deletions
diff --git a/ACE/ace/config-android.h b/ACE/ace/config-android.h index 4cb908207ff..c30389f1f64 100644 --- a/ACE/ace/config-android.h +++ b/ACE/ace/config-android.h @@ -21,6 +21,8 @@ #define ACE_ANDROID #define ACE_PLATFORM_CONFIG config-android.h +#include "ace/config-linux-common.h" + /* * Android NDK Revision Macros * @@ -86,12 +88,26 @@ # define ACE_HAS_SEMUN #endif +#if ACE_ANDROID_NDK_LESS_THAN(15, 0) && __ANDROID_API__ < 21 +// NOTE: The && is correct, SYS_GETTID is present in API 16 in r15 onwards +# ifdef ACE_HAS_GETTID +# undef ACE_HAS_GETTID +# endif +#endif + // NDK has telldir() and seekdir() by 15c #if ACE_ANDROID_NDK_LESS_THAN(15, 2) || __ANDROID_API__ < 23 # define ACE_LACKS_TELLDIR # define ACE_LACKS_SEEKDIR #endif +// strbuf was added by r16 +#if ACE_ANDROID_NDK_LESS_THAN(16, 0) +# ifdef ACE_HAS_STRBUF_T +# undef ACE_HAS_STRBUF_T +# endif +#endif + // fd_mask was added in r17c #if ACE_ANDROID_NDK_LESS_THAN(17, 2) # define ACE_LACKS_FD_MASK @@ -102,6 +118,9 @@ # define ACE_LACKS_WCSTOLL # define ACE_LACKS_WCSTOULL # define ACE_LACKS_CONDATTR_SETCLOCK +# ifdef ACE_HAS_EVENT_POLL +# undef ACE_HAS_EVENT_POLL +# endif #endif // These were available before r18, but in r18 they are restricted to API >= 28 ¯\_(ツ)_/¯ @@ -110,11 +129,12 @@ # define ACE_LACKS_ENDHOSTENT #endif -#define ACE_HAS_SSIZE_T +#if !defined(ACE_HAS_GLIBC_2_2_3) && (ACE_ANDROID_NDK_AT_LEAST(15, 0) || __ANDROID_API__ >= 21) +# define ACE_HAS_CPU_SET_T +#endif // system errorno is a volatile int #define ACE_HAS_VOLATILE_ERRNO - #define ACE_ERRNO_TYPE volatile int // Android doesn't check is sig is out of range. @@ -153,15 +173,6 @@ // Used in tests/Sequence_Unit_Tests/string_sequence_tester.hpp # define TAO_LACKS_WCHAR_CXX_STDLIB -#if !defined (ACE_MT_SAFE) -# define ACE_MT_SAFE 1 -#endif - -// Needed to differentiate between libc 5 and libc 6 (aka glibc). -#include <features.h> - -#include "ace/config-posix.h" - // @todo JW, test if this works // #define ACE_HAS_POSIX_SEM // #define ACE_HAS_POSIX_SEM_TIMEOUT @@ -174,231 +185,17 @@ # undef ACE_HAS_AIO_CALLS #endif -// First the machine specific part -#if defined (__powerpc__) || defined (__x86_64__) -# if !defined (ACE_DEFAULT_BASE_ADDR) -# define ACE_DEFAULT_BASE_ADDR ((char *) 0x40000000) -# endif /* ! ACE_DEFAULT_BASE_ADDR */ -#endif /* ! __powerpc__ && ! __ia64 */ - #define ACE_HAS_SIGINFO_T #define ACE_HAS_SOCKLEN_T #define ACE_HAS_4_4BSD_SENDMSG_RECVMSG -#define ACE_HAS_LSEEK64 -//#define ACE_LACKS_LSEEK64_PROTOTYPE - -#define ACE_HAS_P_READ_WRITE -// Use ACE's alternate cuserid() implementation since the use of the -// system cuserid() is discouraged. #define ACE_LACKS_CUSERID -#define ACE_HAS_ALT_CUSERID - -#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 -#elif ACE_ANDROID_NDK_AT_LEAST(15, 0) || __ANDROID_API__ >= 21 -# define ACE_HAS_CPU_SET_T -#endif /* __GLIBC__ > 2 || __GLIBC__ === 2 && __GLIBC_MINOR__ >= 3) */ - -// Then the compiler specific parts - -#if defined (__GNUG__) - // config-g++-common.h undef's ACE_HAS_STRING_CLASS with -frepo, so - // this must appear before its #include. -# define ACE_HAS_STRING_CLASS -# include "ace/config-g++-common.h" -#elif defined (__GNUC__) -/** - * GNU C compiler. - * - * We need to recognize the GNU C compiler since TAO has at least one - * C source header and file - * (TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.{h,c}) that may indirectly - * include this - */ -#else /* ! __GNUG__ && !__DECCXX && !__INTEL_COMPILER && && !__PGI */ -# ifdef __cplusplus /* Let it slide for C compilers. */ -# error unsupported compiler in ace/config-android.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_STRSIGNAL - -#ifndef ACE_HAS_POSIX_REALTIME_SIGNALS -# define ACE_HAS_POSIX_REALTIME_SIGNALS -#endif /* ACE_HAS_POSIX_REALTIME_SIGNALS */ - -#define ACE_HAS_XPG4_MULTIBYTE_CHAR -#define ACE_HAS_VFWPRINTF - -#define ACE_LACKS_ITOW -#define ACE_LACKS_WCSICMP -#define ACE_LACKS_WCSNICMP -#define ACE_LACKS_ISWASCII - -#define ACE_HAS_3_PARAM_WCSTOK - -#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 */ - -#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 -#define ACE_HAS_BSWAP_64 - -#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 - -// Platform defines struct timespec but not timespec_t -#define ACE_LACKS_TIMESPEC_T - -// Platform supplies scandir() -#define ACE_HAS_SCANDIR #define ACE_MMAP_NO_ZERO -// Compiler/platform contains the <sys/syscall.h> file. -#define ACE_HAS_SYS_SYSCALL_H - -#define ACE_HAS_TIMEZONE_GETTIMEOFDAY - -// 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 - -#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__) || defined(__powerpc64__) -// On 64 bit platforms, the "long" type is 64-bits. Override the -// default 32-bit platform-specific format specifiers appropriately. -# define ACE_UINT64_FORMAT_SPECIFIER_ASCII "%lu" -# define ACE_SSIZE_T_FORMAT_SPECIFIER_ASCII "%ld" -# define ACE_SIZE_T_FORMAT_SPECIFIER_ASCII "%lu" -#endif /* __ia64 */ - -#define ACE_SIZEOF_WCHAR 4 - -// Platform has POSIX terminal interface. -#define ACE_HAS_TERMIOS - -// Linux implements sendfile(). -#define ACE_HAS_SENDFILE 1 - -#define ACE_HAS_VOIDPTR_MMAP - -#define ACE_HAS_VASPRINTF - -#define ACE_LACKS_PTHREAD_SCOPE_PROCESS - -// According to man pages Linux uses different (compared to UNIX systems) types -// for setting IP_MULTICAST_TTL and IPV6_MULTICAST_LOOP / IP_MULTICAST_LOOP -// in setsockopt/getsockopt. -#define ACE_HAS_IP_MULTICAST_TTL_AS_INT 1 -#define ACE_HAS_IPV6_MULTICAST_LOOP_AS_BOOL 1 -#define ACE_HAS_IP_MULTICAST_LOOP_AS_INT 1 - #define ACE_HAS_NETLINK #define ACE_HAS_SIOCGIFCONF -#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 -// version. Since version 2.5.47 this problem is fixed. -# if !defined (ACE_LACKS_LINUX_VERSION_H) -# include <linux/version.h> -# endif /* !ACE_LACKS_LINUX_VERSION_H */ -# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,47)) -# define ACE_GETNAME_RETURNS_RANDOM_SIN_ZERO 0 -# else -# 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) && !defined (ACE_HAS_DEV_POLL) -# if !defined (ACE_LACKS_LINUX_VERSION_H) -# include <linux/version.h> -# endif /* !ACE_LACKS_LINUX_VERSION_H */ -#endif - -#define ACE_HAS_SVR4_DYNAMIC_LINKING -#define ACE_HAS_AUTOMATIC_INIT_FINI -#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE -#define ACE_HAS_RECURSIVE_MUTEXES -#define ACE_HAS_THREAD_SPECIFIC_STORAGE -#define ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS -#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R -#define ACE_HAS_REENTRANT_FUNCTIONS -#define ACE_HAS_TIMEZONE - #if !defined ACE_DEFAULT_TEMP_DIR # define ACE_DEFAULT_TEMP_DIR "/data/tmp" #endif @@ -407,6 +204,8 @@ # define TEST_DIR "/data" #endif +#define ACE_HAS_DLSYM_SEGFAULT_ON_INVALID_HANDLE + #if !defined (ACE_AS_STATIC_LIBS) # if (__GNUC__ == 4 && __GNUC_MINOR__ == 4) # error Shared library support is not possible with GCC 4.4.x |