summaryrefslogtreecommitdiff
path: root/ace/config-win32-interix.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/config-win32-interix.h')
-rw-r--r--ace/config-win32-interix.h114
1 files changed, 114 insertions, 0 deletions
diff --git a/ace/config-win32-interix.h b/ace/config-win32-interix.h
new file mode 100644
index 00000000000..58acc44a984
--- /dev/null
+++ b/ace/config-win32-interix.h
@@ -0,0 +1,114 @@
+// -*- C++ -*-
+// $Id$
+
+// The following configuration file is designed to work for Interix
+// platforms using GNU g++ (Interix == Microsoft's Services for Unix)
+
+#ifndef ACE_CONFIG_WIN32_INTERIX_H
+#define ACE_CONFIG_WIN32_INTERIX_H
+#include /**/ "ace/pre.h"
+#include <arpa/inet.h>
+
+# define ACE_LACKS_SENDMSG
+# define ACE_LACKS_RECVMSG
+# define ACE_LACKS_STDINT_H
+# define ACE_LACKS_INTTYPES_H
+# define ACE_LACKS_PRAGMA_ONCE
+# define ACE_LACKS_RWLOCK_T
+# define ACE_LACKS_GETPGID // Don't have getpgid(), have setpgid() though...
+# define ACE_LACKS_UCONTEXT_H
+# define ACE_LACKS_SYS_NERR // If we don't have sys_nerr...
+# define ERRMAX 256 // Then we define ERRMAX .
+# define ACE_HAS_REENTRANT_FUNCTIONS
+# define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS // Don't have gethostbyaddr_r and friends.
+# define ACE_HAS_DIRENT
+# define ACE_HAS_ANSI_CASTS
+# define ACE_HAS_STDCPP_STL_INCLUDES
+# define ACE_HAS_TYPENAME_KEYWORD
+# define ACE_HAS_STANDARD_CPP_LIBRARY 1
+# define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
+# define ACE_HAS_NONCONST_SELECT_TIMEVAL
+# define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
+# define ACE_HAS_SIGWAIT
+# define ACE_HAS_SIGINFO_T
+
+#include "ace/config-g++-common.h"
+
+#define ACE_HAS_NEW_NOTHROW // Need to know 'new's failure semantics.
+
+#if defined (ACE_HAS_THREADS)
+#define ACE_HAS_THREADS
+#define ACE_HAS_PTHREADS
+#define _THREAD_SAFE
+#define ACE_MTSAFE 1
+#define ACE_MT_SAFE 1
+#define ACE_HAS_PTHREADS_STD
+#define ACE_LACKS_PTHREAD_YIELD
+#define ACE_HAS_MUTEX_TIMEOUTS
+#else
+ error "You need to enable threads for this Interix port."
+#endif /* ACE_HAS_THREADS */
+
+// INTERIX has the following, just an issue with porting for the moment
+#define ACE_LACKS_ACCESS
+// END INTERIX has the following....
+
+#define ACE_SIZEOF_LONG_DOUBLE 12
+#define ACE_PAGE_SIZE 4096
+
+#define ACE_HAS_MKSTEMP
+#define ACE_HAS_SNPRINTF
+#define ACE_HAS_SYSV_IPC
+#define ACE_HAS_SYSCALL_H
+#define ACE_HAS_SVR4_SIGNAL_T
+#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_POSIX_TIME // Supports POSIX timers via struct timespec.
+#define ACE_LACKS_TIMESPEC_T // Defines struct timespec but not timespec_t.
+#define ACE_LACKS_SYSTIME_H
+#define ACE_LACKS_STRRECVFD
+#define ACE_LACKS_SETSCHED
+#define ACE_HAS_SIN_LEN
+#define ACE_HAS_RTLD_LAZY_V
+#define ACE_HAS_POSIX_NONBLOCK
+#define ACE_HAS_GETRUSAGE
+#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SEMUN
+#define ACE_HAS_SSIZE_T
+#define ACE_HAS_STRERROR
+#define ACE_HAS_SVR4_GETTIMEOFDAY
+#define ACE_HAS_UALARM
+#define ACE_HAS_TERM_IOCTLS
+#define ACE_USES_NEW_TERMIOS_STRUCT
+#define TCGETS TIOCGETA
+#define TCSETS TIOCSETA
+#define ACE_HAS_SIGWAIT
+#define ACE_LACKS_RTTI // DLL_Test checks RTTI, and it fails so...
+
+// Turns off the tracing feature.
+#if !defined (ACE_NTRACE)
+#define ACE_NTRACE 1
+#endif /* ACE_NTRACE */
+
+// NOTE: In debugging some of the test apps they would all memory fault in using
+// ACE_Errno_Guard. Upon inspection of that code it uses TSS to save ERRNO in
+// a TSS pointer. Access to that pointer caused the fault. The work around here
+// is to tell ACE we have TSS and use emulation. More investigation is needed to
+// determine whether Interix TSS is broken or the correct semantics for usage under
+// Interix simply need to be ported.
+// To get around the issue ACE_HAS_TSS_EMULATION is defined to use TSS emulation
+// however while many test programs that use TSS pass the TSS_Test program fails.
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE // We need thread specific storage even though...
+#define ACE_HAS_TSS_EMULATION // It would appear to be broken in Interix!
+
+#include /**/ "ace/post.h"
+#endif /* ACE_CONFIG_WIN32_INTERIX_H */
+
+/*
+The following tests do not run.
+Dynamic_Priority_Test.log ACE_HAS_TIMED_MESSAGE_BLOCKS
+Enum_Interfaces_Test.log
+IOStream_Test.log ACE_IOSTREAM not supported on this platform
+*/
+
+