summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-15 16:11:52 +0000
committerlevine <levine@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-15 16:11:52 +0000
commitf184ba5c5d6505b32c214bfe37b0307d82940157 (patch)
treee205b496fe134eb05c406c02a718bb8a73d1a1df
parent983af8073541298f1e64fea56d681a81d74f9491 (diff)
downloadATCD-f184ba5c5d6505b32c214bfe37b0307d82940157.tar.gz
added ACE_HAS_SOCKLEN_T support for Linux/glibc2
-rw-r--r--ace/OS.i4
-rw-r--r--ace/README1
-rw-r--r--ace/config-linux-common.h43
3 files changed, 46 insertions, 2 deletions
diff --git a/ace/OS.i b/ace/OS.i
index 25a96e3fb5a..b32ef891f20 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -27,7 +27,9 @@ extern char *sys_errlist[];
//extern char **_sys_siglist;
#endif /* ACE_HAS_SYS_SIGLIST */
-#if defined (ACE_HAS_SIZET_SOCKET_LEN)
+#if defined (ACE_HAS_SOCKLEN_T)
+typedef socklen_t ACE_SOCKET_LEN;
+#elif defined (ACE_HAS_SIZET_SOCKET_LEN)
typedef size_t ACE_SOCKET_LEN;
#else
typedef int ACE_SOCKET_LEN;
diff --git a/ace/README b/ace/README
index 3f11e98b956..697d26b08a6 100644
--- a/ace/README
+++ b/ace/README
@@ -151,6 +151,7 @@ ACE_HAS_SIN_LEN Platform supports new BSD inet_addr len field.
ACE_HAS_SIZET_SOCKET_LEN OS/compiler uses size_t * rather than int * for socket lengths
ACE_HAS_SOCKADDR_MSG_NAME Platform requires (struct sockaddr *) for msg_name field of struct msghdr.
ACE_HAS_SOCKIO_H Compiler/platform provides the sockio.h file
+ACE_HAS_SOCKLEN_T Platform provides socklen_t type, such as Linux with glibc2.
ACE_HAS_SPARCWORKS_401_SIGNALS Compiler has brain-damaged SPARCwork SunOS 4.x signal prototype...
ACE_HAS_SSIZE_T Compiler supports the ssize_t typedef
ACE_HAS_STHREADS Platform supports Solaris threads
diff --git a/ace/config-linux-common.h b/ace/config-linux-common.h
index e946ab837c8..b4a371cf1b7 100644
--- a/ace/config-linux-common.h
+++ b/ace/config-linux-common.h
@@ -40,7 +40,7 @@
# define ACE_HAS_BROKEN_SETRLIMIT
# define ACE_HAS_RUSAGE_WHO_ENUM enum __rusage_who
# define ACE_HAS_RLIMIT_RESOURCE_ENUM enum __rlimit_resource
-# define ACE_HAS_SIZET_SOCKET_LEN
+# define ACE_HAS_SOCKLEN_T
// 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,
@@ -58,6 +58,47 @@
char **__save_ptr));
// NOTE: end of glibc 2.0 (0.961212-5)-specific configuration.
+#if defined (__alpha)
+// NOTE: On __alpha only, the assembler doesn't have enough string
+// space with -g. You can either SUPPRESS_DASH_G = 1, or patch
+// your binutils 2.8.1.0.1-g gas/ecoff.c as follows:
+//--- ecoff.c.ORIGINAL Mon May 26 12:32:47 1997
+//+++ ecoff.c Thu Jan 15 09:21:08 1998
+//@@ -769,7 +769,11 @@
+// can't be represented (assuming there are strings > 4096 bytes). */
+//
+// #ifndef PAGE_SIZE
+//-#define PAGE_SIZE 4096 /* size of varray pages */
+//+// Thu Jan 15 09:21:03 CST 1998 David L. Levine <levine@cs.wustl.edu>
+//+// Raised PAGE_SIZE to 8192 from 4096 to avoid "String too big"
+//+// errors on Linux/Alpha, with -g. The OS page size is 8192, so this
+//+// should be OK.
+//+#define PAGE_SIZE 8192 /* size of varray pages */
+// #endif
+//
+// #define PAGE_USIZE ((unsigned long) PAGE_SIZE)
+
+// NOTE: you'll need to patch /usr/src/linux/include/linux/posix_types.h
+// as follows:
+//--- posix_types.h.ORIGINAL Wed Nov 12 12:01:56 1997
+//+++ posix_types.h Wed Jan 14 13:07:47 1998
+//@@ -41,9 +41,13 @@
+// #undef __FDMASK
+// #define __FDMASK(d) (1UL << ((d) % __NFDBITS))
+//
+//-typedef struct fd_set {
+//+#include <gnu/types.h>
+//+typedef __fd_set __kernel_fd_set;
+//+#if 0
+//+typedef struct kernel_fd_set {
+// unsigned long fds_bits [__FDSET_LONGS];
+// } __kernel_fd_set;
+//+#endif
+//
+// /* Type of a signal handler. */
+// typedef void (*__kernel_sighandler_t)(int);
+#endif /* ! __alpha */
+
#else
#endif /* __GLIBC__ */