/* -*- C++ -*- */ // $Id$ // The following configuration file is designed to work for HP // platforms running HP/UX 10.x. It includes all of the ACE information // needed for HP-UX 10.x itself. The compiler-specific information is in // config-hpux-10.x-.h - they include this file. #ifndef ACE_CONFIG_H #error "You need to use a compiler-specific .h file - they include this file" #endif // Compiling for HPUX. #if !defined (HPUX) #define HPUX #endif /* HPUX */ #define HPUX_10 #ifndef _HPUX_SOURCE #define _HPUX_SOURCE #include "ace/pre.h" #endif // Some things are different for 10.10 vs. 10.20 vs. 10.30 // If the version number wasn't set up by the compiler command line, // set up as if it was 10.20. #if !defined (HPUX_VERS) #define HPUX_VERS 1020 #endif #if (HPUX_VERS < 1020) // 10.10 # define ACE_HAS_BROKEN_MMAP_H # define ACE_LACKS_T_ERRNO # define ACE_LACKS_TIMESPEC_T #elif (HPUX_VERS < 1030) // 10.20 // Platform supports reentrant functions (all the POSIX *_r functions). # define ACE_HAS_REENTRANT_FUNCTIONS // But this one is not like other platforms # define ACE_CTIME_R_RETURNS_INT // And _REENTRANT must be set, even if not using threads. # if !defined (_REENTRANT) # define _REENTRANT # endif /* _REENTRANT */ #else // 10.30 // Don't know yet... probably will be 10.20 but with some different thread // settings. #endif /* HPUX_VERS tests */ #include /**/ #include /**/ /* pthread.h doesn't include this */ extern int h_errno; /* This isn't declared in a header file on HP-UX */ //////////////////////////////////////////////////////////////////////////// // // General OS information - see README for more details on what they mean // /////////////////////////////////////////////////////////////////////////// // HP/UX needs to have these addresses in a special range. #define ACE_DEFAULT_BASE_ADDR ((char *) 0x80000000) // Compiler/platform contains the file. #define ACE_HAS_SYSCALL_H // But doesn't have a prototype for syscall() #define ACE_LACKS_SYSCALL // Platform supports POSIX 1.b clock_gettime () #define ACE_HAS_CLOCK_GETTIME // Prototypes for both signal() and struct sigaction are consistent. #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES // Compiler/platform has correctly prototyped header files. #define ACE_HAS_CPLUSPLUS_HEADERS // Compiler/platform has Dirent iterator functions. #define ACE_HAS_DIRENT // Platform supports getpagesize() call #define ACE_HAS_GETPAGESIZE // But we define this just to be safe #define ACE_PAGE_SIZE 4096 // Platform supports IP multicast #define ACE_HAS_IP_MULTICAST // Platform supports recvmsg and sendmsg. #define ACE_HAS_MSG // select's timeval arg is non-const #define ACE_HAS_NONCONST_SELECT_TIMEVAL // Compiler/platform supports poll(). #define ACE_HAS_POLL // Platform supports POSIX O_NONBLOCK semantics. #define ACE_HAS_POSIX_NONBLOCK // Platform supports the POSIX struct timespec type #define ACE_HAS_POSIX_TIME // Compiler/platform defines the sig_atomic_t typedef #define ACE_HAS_SIG_ATOMIC_T // Platform supports SVR4 extended signals #define ACE_HAS_SIGINFO_T // Platform doesn't detect a signal out of range unless it's way out of range. #define ACE_HAS_SIGISMEMBER_BUG // Platform supports ucontext_t (which is used in the extended signal API). #define ACE_HAS_UCONTEXT_T // Compiler/platform supports strerror (). #define ACE_HAS_STRERROR // SunOS 4 style prototype for gettimeofday #define ACE_HAS_SUNOS4_GETTIMEOFDAY // HP/UX has an undefined syscall for GETRUSAGE... #define ACE_HAS_SYSCALL_GETRUSAGE // Note, this only works if the flag is set above! #define ACE_HAS_GETRUSAGE // Platform supports System V IPC (most versions of UNIX, but not Win32) #define ACE_HAS_SYSV_IPC #define ACE_HAS_UALARM // Platform has XPG4 wide character support #define ACE_HAS_XPG4_MULTIBYTE_CHAR // Platform lacks readers/writer locks. #define ACE_LACKS_RWLOCK_T // Shared library path/search components #define ACE_DLL_SUFFIX ".sl" #define ACE_LD_SEARCH_PATH "SHLIB_PATH" ////////////////////////////////////////////////////////////////////////// // // STREAMS information // ////////////////////////////////////////////////////////////////////////// // Platform supports STREAMS #define ACE_HAS_STREAMS // Compiler/platform supports struct strbuf. #define ACE_HAS_STRBUF_T // But the putmsg signature doesn't have it as const... #define ACE_LACKS_CONST_STRBUF_PTR // Platform supports STREAM pipes // This is possible, but not by default - need to rebuild the kernel to // get them enabled - see pipe(2) and "STREAMS/UX for the HP 9000" // #define ACE_HAS_STREAM_PIPES ///////////////////////////////////////////////////////////////////////// // // TLI information // //////////////////////////////////////////////////////////////////////// // Platform supports ACE_TLI, including SVR4 facilities. #define ACE_HAS_TLI // t_error's arg is char *, not const char * #define ACE_HAS_BROKEN_T_ERROR // ACE_HAS_SVR4_TLI should work on HP-UX, but doesn't yet. Riverace // problem ID P27. //#define ACE_HAS_SVR4_TLI // Platform supports ACE_TLI tiuser header. #define ACE_HAS_TIUSER_H // But it has _terrno() outside the extern "C" stuff. #define ACE_HAS_TIUSER_H_BROKEN_EXTERN_C // Platform provides ACE_TLI function prototypes. #define ACE_HAS_TLI_PROTOTYPES // Platform uses a TCP TLI device other than /dev/tcp. Uses XTI only. #define ACE_TLI_TCP_DEVICE "/dev/inet_cots" ///////////////////////////////////////////////////////////////////////// // // Threads information. // Threads definitions are controlled by the threads setting in the // include/makeinclude/platform_hpux_aCC.GNU file - see that for details. // If you build with threads support, the DCE Core subset must be installed // from the core OS CD. // //////////////////////////////////////////////////////////////////////// #ifdef ACE_HAS_THREADS # if !defined (ACE_MT_SAFE) #define ACE_MT_SAFE 1 # endif # define ACE_HAS_PTHREADS # define ACE_HAS_PTHREADS_DRAFT4 // POSIX real-time semaphore definitions are in the header files, and it // will compile and link with this in place, but will not run. HP says // the functions are not implemented. //# define ACE_HAS_POSIX_SEM # define ACE_HAS_THREAD_SPECIFIC_STORAGE // They forgot a const in the prototype of pthread_cond_timedwait # define ACE_LACKS_CONST_TIMESPEC_PTR // Platform lacks pthread_thr_sigsetmask # define ACE_LACKS_PTHREAD_THR_SIGSETMASK // Platform has no implementation of pthread_condattr_setpshared() # define ACE_LACKS_CONDATTR_PSHARED // Platform lacks pthread_attr_setdetachstate() # define ACE_LACKS_SETDETACH // Platform lacks pthread_attr_setscope # define ACE_LACKS_THREAD_PROCESS_SCOPING // Platform lacks pthread_attr_setstackaddr # define ACE_LACKS_THREAD_STACK_ADDR // If this is not turned on, the CMA wrappers will redefine a bunch of // system calls with wrappers - one being select() and it only defines // select with int arguments (not fd_set). So, as long as _CMA_NOWRAPPERS_ // is set, the regular fd_set arg types are used for select(). // Without threads being compiled in, the fd_set/int thing is not an issue. # define _CMA_NOWRAPPERS_ #else // If threading is disabled, then timespec_t does not get defined. # ifndef ACE_LACKS_TIMESPEC_T # define ACE_LACKS_TIMESPEC_T # endif #endif /* ACE_HAS_THREADS */ // Manually tweaking malloc paddings. #define ACE_MALLOC_PADDING 16 #define ACE_MALLOC_ALIGN 8 #define ACE_CONTROL_BLOCK_ALIGN_LONGS 0 #define ACE_PI_CONTROL_BLOCK_ALIGN_LONGS 2 // Turns off the tracing feature. // To build with tracing enabled, make sure ACE_NTRACE is not defined #if !defined (ACE_NTRACE) #define ACE_NTRACE 1 #include "ace/post.h" #endif /* ACE_NTRACE */