summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog-99b48
-rw-r--r--ace/ACE.cpp1
-rw-r--r--ace/Basic_Types.h8
-rw-r--r--ace/CDR_Stream.cpp10
-rw-r--r--ace/CDR_Stream.h12
-rw-r--r--ace/OS.h13
-rw-r--r--ace/OS.i20
-rw-r--r--ace/SOCK_Dgram_Bcast.cpp163
-rw-r--r--ace/config-cray.h9
-rw-r--r--include/makeinclude/platform_cray.GNU27
-rw-r--r--include/makeinclude/platform_tru64_g++.GNU30
-rw-r--r--tests/Basic_Types_Test.cpp8
-rw-r--r--tests/Handle_Set_Test.cpp10
13 files changed, 187 insertions, 172 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b
index 0e3f95167d7..08385fc1e79 100644
--- a/ChangeLog-99b
+++ b/ChangeLog-99b
@@ -1,21 +1,39 @@
+Mon Jul 19 21:13:16 1999 Doug Anderson <doug@clark.net>
+
+ * ace/ACE.cpp,ace/Basic_Types.h,ace/CDR_Stream.{h,cpp},
+ ace/SOCK_Dgram_Bcast.cpp,ace/config-cray.h,
+ tests/Basic_Types_Test.cpp,tests/Handle_Set_Test.cpp,
+ include/makeinclude/platform_cray.GNU
+
+ I finally managed to get the latest and greatest to work on
+ the Cray. Still no CDR support, but that will be post 5.0.
+
+ * ace/OS.{h,i}: added support for egcs on Digital Unix (4.0d & e).
+ Fixe problem with legacy workarounds in OS.* for sigwait() and
+ cxx/GNU that don't appear to be necessary on 4.0d/e/f with
+ neither cxx nor GNU.
+
+ * include/makeinclude/platform_tru64_g++.GNU: added. Works
+ with ace/config-tru64.h.
+
Mon Jul 19 19:46:50 1999 Irfan Pyarali <irfan@cs.wustl.edu>
- * ace/OS.h: Added ACE_*_cast_*_ptr and ACE_*_cast_*_ref for const,
- static, and reinterpret casts.
+ * ace/OS.h: Added ACE_*_cast_*_ptr and ACE_*_cast_*_ref for const,
+ static, and reinterpret casts.
- * ace/Strategies_T.cpp (find):
- * ace/Cached_Connect_Strategy_T.cpp (find):
+ * ace/Strategies_T.cpp (find):
+ * ace/Cached_Connect_Strategy_T.cpp (find):
The comparison should be between ACE_PEER_CONNECTOR_ADDR and not
- REFCOUNTED_HASH_RECYCLABLE_ADDRESS.
+ REFCOUNTED_HASH_RECYCLABLE_ADDRESS.
- * ace/Svc_Handler: Changed <state> to <recycle_state>. <state>
- was too generic and in some cases a <state> method was already
- present in classes deriving from Svc_Handler.
+ * ace/Svc_Handler: Changed <state> to <recycle_state>. <state>
+ was too generic and in some cases a <state> method was already
+ present in classes deriving from Svc_Handler.
- Also, added a <recycle_state> accessor.
+ Also, added a <recycle_state> accessor.
- The following files were effected:
+ The following files were effected:
- ace/Cached_Connect_Strategy_T.cpp
- ace/Cached_Connect_Strategy_T.h
@@ -25,14 +43,14 @@ Mon Jul 19 19:46:50 1999 Irfan Pyarali <irfan@cs.wustl.edu>
- ace/Strategies_T.cpp
- ace/Strategies_T.h
- ace/Strategies_T.i
- - tests/Cached_Accept_Conn_Test.cpp
- - tests/Cached_Conn_Test.cpp
+ - tests/Cached_Accept_Conn_Test.cpp
+ - tests/Cached_Conn_Test.cpp
Mon Jul 19 20:08:15 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
- * ace/Strategies_T.cpp:
- Fixed lookup of connections in the Cached_Connect_Strategy,
- thanks to Irfan for providing this fix.
+ * ace/Strategies_T.cpp:
+ Fixed lookup of connections in the Cached_Connect_Strategy,
+ thanks to Irfan for providing this fix.
Mon Jul 19 12:26:20 1999 David L. Levine <levine@cs.wustl.edu>
diff --git a/ace/ACE.cpp b/ace/ACE.cpp
index 3874cec0d45..6a71340f649 100644
--- a/ace/ACE.cpp
+++ b/ace/ACE.cpp
@@ -2851,7 +2851,6 @@ ACE::get_bcast_addr (ACE_UINT32 &bcast_addr,
{
ACE_UINT64 haddr; // a place to put the address
char * haddrp = (char *) &haddr; // convert to char pointer
- haddr += 4; // adjust within the word
ACE_OS::memcpy(haddrp,(char *) hp->h_addr,hp->h_length);
ip_addr.sin_addr.s_addr = haddr;
}
diff --git a/ace/Basic_Types.h b/ace/Basic_Types.h
index 723fd19c259..cc4530c8b13 100644
--- a/ace/Basic_Types.h
+++ b/ace/Basic_Types.h
@@ -165,10 +165,10 @@
# elif (ACE_SIZEOF_SHORT) == 4 && defined(_CRAYMPP)
// mpp cray - uses Alpha processors
// Use the real 32-bit quantity for ACE_INT32's, and use a "long"
- // for shorts. This gets around conflicts with size_t in some ACE
+ // for ACE_INT16's. This gets around conflicts with size_t in some ACE
// method signatures, among other things.
- typedef short ACE_INT16;
- typedef unsigned short ACE_UINT16;
+ typedef long ACE_INT16;
+ typedef unsigned long ACE_UINT16;
typedef short ACE_INT32;
typedef unsigned short ACE_UINT32;
# elif (ACE_SIZEOF_SHORT) == 8 && defined(_UNICOS)
@@ -196,7 +196,7 @@ typedef ACE_UINT16 ACE_USHORT16;
typedef int ACE_INT32;
typedef unsigned int ACE_UINT32;
# endif
- typedef unsigned long ACE_UINT64;
+ typedef unsigned long long ACE_UINT64;
# else
# error Have to add to the ACE_UINT32 type setting
# endif
diff --git a/ace/CDR_Stream.cpp b/ace/CDR_Stream.cpp
index 6af2532f383..e64d13b2791 100644
--- a/ace/CDR_Stream.cpp
+++ b/ace/CDR_Stream.cpp
@@ -85,20 +85,20 @@ ACE_CDR::LongDouble::operator!= (const ACE_CDR::LongDouble &rhs) const
}
#endif /* NONNATIVE_LONGDOUBLE */
-#if defined(_UNICOS)
+#if defined(_UNICOS) && !defined(_CRAYMPP)
// placeholders to get things compiling
ACE_CDR::Float::Float()
{
}
-ACE_CDR::Float::Float(const float & init))
+ACE_CDR::Float::Float(const float & init)
{
}
-float
-ACE_CDR::Float::operator= (const ACE_CDR::Float &rhs) const
+ACE_CDR::Float &
+ACE_CDR::Float::operator= (const float &rhs)
{
- return 0.0f;
+ return *this;
}
int
diff --git a/ace/CDR_Stream.h b/ace/CDR_Stream.h
index fecf55d2fc6..13dad9d7ab5 100644
--- a/ace/CDR_Stream.h
+++ b/ace/CDR_Stream.h
@@ -143,7 +143,7 @@ public:
# if (defined (_MSC_VER) && (_MSC_VER >= 900)) \
|| (defined (__BORLANDC__) && (__BORLANDC__ >= 0x530))
typedef __int64 LongLong;
- # elif ACE_SIZEOF_LONG == 8
+ # elif ACE_SIZEOF_LONG == 8 && !defined(_CRAYMPP)
typedef long LongLong;
# elif ACE_SIZEOF_LONG_LONG == 8 && !defined (ACE_LACKS_LONGLONG_T)
# if defined (sun) && !defined (ACE_LACKS_U_LONGLONG_T) && !defined (__KCC)
@@ -179,11 +179,11 @@ public:
# else /* ACE_SIZEOF_INT != 4 */
// Applications will probably have trouble with this.
char f[4];
- # if defined(_UNICOS)
- Float (void);
- Float (const float &init);
- float operator= (const Float &rhs) const;
- int operator!= (const Float &rhs) const;
+ # if defined(_UNICOS) && !defined(_CRAYMPP)
+ Float (void);
+ Float (const float &init);
+ Float & operator= (const float &rhs);
+ int operator!= (const Float &rhs) const;
# endif /* _UNICOS */
# endif /* ACE_SIZEOF_INT != 4 */
};
diff --git a/ace/OS.h b/ace/OS.h
index 08c373d6361..5856f7a24cb 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -3697,18 +3697,7 @@ typedef void (*__sighandler_t)(int); // keep Signal compilation happy
extern int t_errno;
# endif /* ACE_LACKS_T_ERRNO */
-# if defined (DIGITAL_UNIX)
- // sigwait is yet another macro on Digital UNIX 4.0, just causing
- // trouble when introducing member functions with the same name.
- // Thanks to Thilo Kielmann" <kielmann@informatik.uni-siegen.de> for
- // this fix.
-# undef sigwait
-# if defined (__DECCXX_VER)
- // cxx on Digital Unix 4.0 needs this declaration. With it,
- // ::_Psigwait () works with cxx -pthread. g++ does _not_ need it.
- extern "C" int _Psigwait __((const sigset_t *set, int *sig));
-# endif /* __DECCXX_VER */
-# elif !defined (ACE_HAS_SIGWAIT)
+# if !defined(DIGITAL_UNIX) && !defined (ACE_HAS_SIGWAIT)
extern "C" int sigwait (sigset_t *set);
# endif /* ! DIGITAL_UNIX && ! ACE_HAS_SIGWAIT */
diff --git a/ace/OS.i b/ace/OS.i
index a5ee10facbc..c4bb9c2221f 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -6753,20 +6753,8 @@ ACE_OS::sigwait (sigset_t *set, int *sig)
// signal number is returned).
*sig = ::sigwait (set, 0);
return *sig;
-# elif defined (DIGITAL_UNIX)
-# if defined (__DECCXX_VER)
- // DEC cxx (but not g++) needs this direct call to its internal
- // sigwait (). This allows us to #undef sigwait, so that we can
- // have ACE_OS::sigwait. cxx gets confused by ACE_OS::sigwait if
- // sigwait is _not_ #undef'ed.
- errno = ::_Psigwait (set, sig);
- return errno == 0 ? *sig : -1;
-# else /* g++, for example, on DIGITAL_UNIX */
- *sig = ::__sigwaitd10 (set, sig);
- return errno == 0 ? *sig : -1;
-# endif /* g++, for example, on DIGITAL_UNIX */
-# else /* ! __Lynx __ && ! DIGITAL_UNIX */
-# if (defined (ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)) && !defined(ACE_HAS_FSU_PTHREADS)
+# else /* ! __Lynx __ */
+# if (defined (ACE_HAS_PTHREADS_DRAFT4) || (defined (ACE_HAS_PTHREADS_DRAFT6)) && !defined(ACE_HAS_FSU_PTHREADS)) || (_UNICOS == 9)
*sig = ::sigwait (set);
return *sig;
# elif defined(ACE_HAS_FSU_PTHREADS)
@@ -6775,7 +6763,7 @@ ACE_OS::sigwait (sigset_t *set, int *sig)
errno = ::sigwait (set, sig);
return errno == 0 ? *sig : -1;
# endif /* ACE_HAS_PTHREADS_DRAFT4, 6 */
-# endif /* ! __Lynx__ && ! (DIGITAL_UNIX && __DECCXX_VER) */
+# endif /* ! __Lynx__ */
# elif defined (ACE_HAS_WTHREADS)
ACE_UNUSED_ARG (set);
ACE_NOTSUP_RETURN (-1);
@@ -6841,7 +6829,7 @@ ACE_OS::thr_sigsetmask (int how,
// Draft 4 and 6 implementations will sometimes have a sigprocmask () that
// modifies the calling thread's mask only. If this is not so for your
// platform, define ACE_LACKS_PTHREAD_THR_SIGSETMASK.
-# elif defined(ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6)
+# elif defined(ACE_HAS_PTHREADS_DRAFT4) || defined (ACE_HAS_PTHREADS_DRAFT6) || (_UNICOS == 9)
ACE_OSCALL_RETURN (::sigprocmask (how, nsm, osm), int, -1);
# else
ACE_OSCALL_RETURN (ACE_ADAPT_RETVAL (::pthread_sigmask (how, nsm, osm),
diff --git a/ace/SOCK_Dgram_Bcast.cpp b/ace/SOCK_Dgram_Bcast.cpp
index 061ab9f669d..833e89ff404 100644
--- a/ace/SOCK_Dgram_Bcast.cpp
+++ b/ace/SOCK_Dgram_Bcast.cpp
@@ -1,7 +1,5 @@
-// SOCK_Dgram_Bcast.cpp
// $Id$
-
#define ACE_BUILD_DLL
#include "ace/SOCK_Dgram_Bcast.h"
@@ -14,8 +12,8 @@ ACE_RCSID(ace, SOCK_Dgram_Bcast, "$Id$")
ACE_ALLOC_HOOK_DEFINE(ACE_SOCK_Dgram_Bcast)
ACE_Bcast_Node::ACE_Bcast_Node (ACE_INET_Addr &addr,
- ACE_Bcast_Node *next)
- : bcast_addr_ (addr),
+ ACE_Bcast_Node *next)
+ : bcast_addr_ (addr),
next_ (next)
{
ACE_TRACE ("ACE_Bcast_Node::ACE_Bcast_Node");
@@ -60,12 +58,12 @@ ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast (void)
// Here's the general-purpose constructor used by a connectionless
// datagram ``server''...
-ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- int reuse_addr,
+ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast (const ACE_Addr &local,
+ int protocol_family,
+ int protocol,
+ int reuse_addr,
const ASYS_TCHAR *host_name)
- : ACE_SOCK_Dgram (local, protocol_family, protocol, reuse_addr),
+ : ACE_SOCK_Dgram (local, protocol_family, protocol, reuse_addr),
if_list_ (0)
{
ACE_TRACE ("ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast");
@@ -79,16 +77,16 @@ ACE_SOCK_Dgram_Bcast::ACE_SOCK_Dgram_Bcast (const ACE_Addr &local,
// Here's the general-purpose open routine.
int
-ACE_SOCK_Dgram_Bcast::open (const ACE_Addr &local,
- int protocol_family,
- int protocol,
- int reuse_addr,
+ACE_SOCK_Dgram_Bcast::open (const ACE_Addr &local,
+ int protocol_family,
+ int protocol,
+ int reuse_addr,
const ASYS_TCHAR *host_name)
{
ACE_TRACE ("ACE_SOCK_Dgram_Bcast::open");
- if (this->ACE_SOCK_Dgram::open (local, protocol_family,
- protocol, reuse_addr) == -1)
+ if (this->ACE_SOCK_Dgram::open (local, protocol_family,
+ protocol, reuse_addr) == -1)
return -1;
return this->mk_broadcast (host_name);
@@ -105,8 +103,8 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ASYS_TCHAR *host_name)
if (ACE_OS::setsockopt (this->get_handle (),
SOL_SOCKET,
- SO_BROADCAST,
- (char *) &one,
+ SO_BROADCAST,
+ (char *) &one,
sizeof one) == -1)
return -1;
@@ -124,9 +122,9 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ASYS_TCHAR *host_name)
if (ACE_OS::ioctl (s,
SIOCGIFCONF,
(char *) &ifc) == -1)
- ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get interface configuration)"),
- ACE_INVALID_HANDLE);
+ ACE_ERROR_RETURN ((LM_ERROR, "%p\n",
+ "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get interface configuration)"),
+ ACE_INVALID_HANDLE);
struct ifreq *ifr = ifc.ifc_req;
@@ -138,44 +136,43 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ASYS_TCHAR *host_name)
hostent *hp = ACE_OS::gethostbyname (ASYS_MULTIBYTE_STRING (host_name));
if (hp == 0)
- return -1;
+ return -1;
else
-#if !defined(_UNICOS)
- ACE_OS::memcpy ((char *) &host_addr.sin_addr.s_addr,
- (char *) hp->h_addr,
- hp->h_length);
-#else /* _UNICOS */
+#if defined(_UNICOS)
{
ACE_UINT64 haddr; // a place to put the address
char * haddrp = (char *) &haddr; // convert to char pointer
- haddr += 4; // adjust within the word
ACE_OS::memcpy(haddrp,(char *) hp->h_addr,hp->h_length);
host_addr.sin_addr.s_addr = haddr;
}
+#else /* ! _UNICOS */
+ ACE_OS::memcpy ((char *) &host_addr.sin_addr.s_addr,
+ (char *) hp->h_addr,
+ hp->h_length);
#endif /* ! _UNICOS */
}
- for (int n = ifc.ifc_len / sizeof (struct ifreq) ; n > 0; n--, ifr++)
+ for (int n = ifc.ifc_len / sizeof (struct ifreq) ; n > 0; n--, ifr++)
{
// Compare host ip address with interface ip address.
if (host_name)
{
- struct sockaddr_in if_addr;
+ struct sockaddr_in if_addr;
ACE_OS::memcpy (&if_addr,
&ifr->ifr_addr,
sizeof if_addr);
if (host_addr.sin_addr.s_addr != if_addr.sin_addr.s_addr)
- continue;
+ continue;
}
- if (ifr->ifr_addr.sa_family != AF_INET)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: Not AF_INET"));
- continue;
- }
+ if (ifr->ifr_addr.sa_family != AF_INET)
+ {
+ ACE_ERROR ((LM_ERROR, "%p\n",
+ "ACE_SOCK_Dgram_Bcast::mk_broadcast: Not AF_INET"));
+ continue;
+ }
struct ifreq flags = *ifr;
struct ifreq if_req = *ifr;
@@ -183,46 +180,46 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ASYS_TCHAR *host_name)
if (ACE_OS::ioctl (s,
SIOCGIFFLAGS,
(char *) &flags) == -1)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get interface flags)"));
- continue;
- }
+ {
+ ACE_ERROR ((LM_ERROR, "%p\n",
+ "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get interface flags)"));
+ continue;
+ }
if (ACE_BIT_ENABLED (flags.ifr_flags,
IFF_UP) == 0)
- {
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: Network interface is not up"));
- continue;
- }
+ {
+ ACE_ERROR ((LM_ERROR, "%p\n",
+ "ACE_SOCK_Dgram_Bcast::mk_broadcast: Network interface is not up"));
+ continue;
+ }
if (ACE_BIT_ENABLED (flags.ifr_flags,
IFF_LOOPBACK))
- continue;
+ continue;
if (ACE_BIT_ENABLED (flags.ifr_flags,
IFF_BROADCAST))
- {
- if (ACE_OS::ioctl (s,
+ {
+ if (ACE_OS::ioctl (s,
SIOCGIFBRDADDR,
(char *) &if_req) == -1)
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get broadaddr)"));
- else
- {
- ACE_INET_Addr addr (ACE_reinterpret_cast (sockaddr_in *,
+ ACE_ERROR ((LM_ERROR, "%p\n",
+ "ACE_SOCK_Dgram_Bcast::mk_broadcast: ioctl (get broadaddr)"));
+ else
+ {
+ ACE_INET_Addr addr (ACE_reinterpret_cast (sockaddr_in *,
&if_req.ifr_broadaddr),
sizeof if_req.ifr_broadaddr);
- ACE_NEW_RETURN (this->if_list_,
+ ACE_NEW_RETURN (this->if_list_,
ACE_Bcast_Node (addr,
this->if_list_),
-1);
- }
- }
- else
- ACE_ERROR ((LM_ERROR, "%p\n",
- "ACE_SOCK_Dgram_Bcast::mk_broadcast: Broadcast is not enable for this interface."));
+ }
+ }
+ else
+ ACE_ERROR ((LM_ERROR, "%p\n",
+ "ACE_SOCK_Dgram_Bcast::mk_broadcast: Broadcast is not enable for this interface."));
}
#else
ACE_UNUSED_ARG (host_name);
@@ -241,16 +238,16 @@ ACE_SOCK_Dgram_Bcast::mk_broadcast (const ASYS_TCHAR *host_name)
// number of bytes sent.
ssize_t
-ACE_SOCK_Dgram_Bcast::send (const void *buf,
- size_t n,
- u_short port_number,
- int flags) const
+ACE_SOCK_Dgram_Bcast::send (const void *buf,
+ size_t n,
+ u_short port_number,
+ int flags) const
{
ACE_TRACE ("ACE_SOCK_Dgram_Bcast::send");
size_t iterations = 0;
ssize_t total_bytes = 0;
- if (this->if_list_ == 0)
+ if (this->if_list_ == 0)
return -1;
for (ACE_Bcast_Node *temp = this->if_list_;
@@ -259,16 +256,16 @@ ACE_SOCK_Dgram_Bcast::send (const void *buf,
{
temp->bcast_addr_.set_port_number (port_number);
- ssize_t bytes_sent = ACE_SOCK_Dgram::send (buf,
- n,
- temp->bcast_addr_,
- flags);
+ ssize_t bytes_sent = ACE_SOCK_Dgram::send (buf,
+ n,
+ temp->bcast_addr_,
+ flags);
if (bytes_sent == -1)
- return -1;
- else
- total_bytes += bytes_sent;
-
+ return -1;
+ else
+ total_bytes += bytes_sent;
+
iterations++;
}
@@ -279,21 +276,21 @@ ACE_SOCK_Dgram_Bcast::send (const void *buf,
// Broadcast datagram to every interfaces.
ssize_t
-ACE_SOCK_Dgram_Bcast::send (const iovec iov[],
- size_t n,
- u_short /* port_number */,
- int flags) const
+ACE_SOCK_Dgram_Bcast::send (const iovec iov[],
+ size_t n,
+ u_short /* port_number */,
+ int flags) const
{
ACE_TRACE ("ACE_SOCK_Dgram_Bcast::send");
if (this->if_list_ == 0)
return -1;
-
+
// Send the message to every interface.
for (ACE_Bcast_Node *temp = this->if_list_;
temp != 0;
- temp++)
+ temp++)
if (ACE_SOCK_Dgram::send (iov,
n,
temp->bcast_addr_,
@@ -307,10 +304,10 @@ ACE_SOCK_Dgram_Bcast::send (const iovec iov[],
// must be preassigned to the broadcast address of the subnet...).
ssize_t
-ACE_SOCK_Dgram_Bcast::send (const iovec iov[],
- size_t n,
- const ACE_Addr &addr,
- int flags) const
+ACE_SOCK_Dgram_Bcast::send (const iovec iov[],
+ size_t n,
+ const ACE_Addr &addr,
+ int flags) const
{
ACE_TRACE ("ACE_SOCK_Dgram_Bcast::send");
diff --git a/ace/config-cray.h b/ace/config-cray.h
index 50ae3e2336f..e9ab5630593 100644
--- a/ace/config-cray.h
+++ b/ace/config-cray.h
@@ -23,10 +23,10 @@
_CRAYT3E (defined specifically if compiling on a Cray T3E)
_UNICOS (defined if running UNICOS or UNICOS/mk)
- Tested on UNICOS 10.0.0.2, UNICOS/mk 2.0.3.10
+ Tested on UNICOS 10.0.0.5, UNICOS/mk 2.0.4.57
Compiles on UNICOS 9.0.2.8, but some tests deadlock
- Contributed by Doug Anderson <doug@clark.net>
+ Contributed by Doug Anderson <dla@home.com>
*/
#if defined (_UNICOS) && !defined (MAXPATHLEN)
@@ -78,7 +78,6 @@
# define SCHED_OTHER 0
# define SCHED_FIFO 1
# define SCHED_RR 2
-# define pthread_sigmask sigprocmask
#endif
#define ACE_HAS_THREAD_SPECIFIC_STORAGE
@@ -118,7 +117,9 @@
#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-#define ACE_HAS_SIGWAIT
+#if _UNICOS > 9
+# define ACE_HAS_SIGWAIT
+#endif
#define ACE_HAS_SIG_ATOMIC_T
diff --git a/include/makeinclude/platform_cray.GNU b/include/makeinclude/platform_cray.GNU
index 026ded4ba07..a36b6fd3c27 100644
--- a/include/makeinclude/platform_cray.GNU
+++ b/include/makeinclude/platform_cray.GNU
@@ -1,12 +1,13 @@
# $Id$
-# Initial platform macros for SGI/Cray UNICOS (vector) & UNICOS/mk (mpp) -
-# UNICOS 10.0.0.2
-# UNICOS/mk 2.0.3.10
-# Cray C++ Version 3.1.0.0
-# Cray Standard C Version 6.1.0.0
+# Platform macros for SGI/Cray UNICOS (vector) & UNICOS/mk (mpp) -
+# UNICOS 9.0.2.8
+# UNICOS 10.0.0.5
+# UNICOS/mk 2.0.4.57
+# Cray C++ Version 3.2.0.1
+# Cray Standard C Version 6.2.0.1
#
-# Contributed by Doug Anderson <doug@clark.net>
+# Contributed by Doug Anderson <dla@home.com>
debug = 1
exceptions = 1
@@ -18,13 +19,13 @@ purify =
# C++ prelinker: error: instantiation loop
# So, we're using ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION
CC = cc
-LDLIB += -L$(ACE_ROOT)/ace
-CXX = CC
-#CFLAGS +=
-CCFLAGS += -h noautoinstantiate
-DCFLAGS += -g
-DCCFLAGS += $(DCFLAGS)
-OCFLAGS += -O2
+LDLIB += -L$(ACE_ROOT)/ace
+CXX = CC
+#CFLAGS +=
+CCFLAGS += -h noautoinstantiate
+DCFLAGS += -g
+DCCFLAGS += $(DCFLAGS)
+OCFLAGS += -O2
OCCFLAGS += $(OCFLAGS)
ifndef exceptions
diff --git a/include/makeinclude/platform_tru64_g++.GNU b/include/makeinclude/platform_tru64_g++.GNU
new file mode 100644
index 00000000000..ef5fea64d5c
--- /dev/null
+++ b/include/makeinclude/platform_tru64_g++.GNU
@@ -0,0 +1,30 @@
+# $Id$
+
+# This platform macros file is intended to work with
+# Digital UNIX using the GNU compiler.
+
+ifndef ACE_DU_VERSION
+ ACE_DU_VERSION := $(shell uname -r)
+endif # ACE_DU_VERSION
+
+ifeq (3.,$(findstring 3.,$(ACE_DU_VERSION)))
+ include $(ACE_ROOT)/include/makeinclude/platform_osf1_3.2.GNU
+
+else # ! 3.x
+ifeq (4.,$(findstring 4.,$(ACE_DU_VERSION)))
+ include $(ACE_ROOT)/include/makeinclude/platform_osf1_4.0_g++.GNU
+
+ ifeq (4.0F,$(findstring 4.0F,$(shell /usr/sbin/sizer -v)))
+ CFLAGS += -DDIGITAL_UNIX=0x40F
+ else # ! 4.0F
+ CFLAGS += -DDIGITAL_UNIX=0x400
+ endif # ! 4.0F
+
+else # ! 4.x
+ifeq (5.,$(findstring 5.,$(ACE_DU_VERSION)))
+ include $(ACE_ROOT)/include/makeinclude/platform_osf1_4.0_g++.GNU
+ CFLAGS += -DDIGITAL_UNIX=0x500
+
+endif # 5.x
+endif # ! 4.x
+endif # ! 3.x
diff --git a/tests/Basic_Types_Test.cpp b/tests/Basic_Types_Test.cpp
index de8bf8d898c..437c9df0bbc 100644
--- a/tests/Basic_Types_Test.cpp
+++ b/tests/Basic_Types_Test.cpp
@@ -118,18 +118,10 @@ main (int, ASYS_TCHAR *[])
errors += check (ASYS_TEXT ("sizeof (ACE_UINT16) is %u%s"),
sizeof (ACE_INT16), 2);
#else /* ! _UNICOS */
- // MPP Crays have 32 bit shorts, so we use those for 16 bit quantities
-# if defined(_CRAYMPP)
- errors += check (ASYS_TEXT ("sizeof (ACE_INT16) is %u%s"),
- sizeof (ACE_INT16), 4);
- errors += check (ASYS_TEXT ("sizeof (ACE_UINT16) is %u%s"),
- sizeof (ACE_INT16), 4);
-# else
errors += check (ASYS_TEXT ("sizeof (ACE_INT16) is %u%s"),
sizeof (ACE_INT16), 8);
errors += check (ASYS_TEXT ("sizeof (ACE_UINT16) is %u%s"),
sizeof (ACE_INT16), 8);
-# endif
#endif /* ! _UNICOS */
// MPP Crays do have 32-bit quantities (short), though vector Crays don't
diff --git a/tests/Handle_Set_Test.cpp b/tests/Handle_Set_Test.cpp
index ee4c6c25f7a..7529ae8a9a1 100644
--- a/tests/Handle_Set_Test.cpp
+++ b/tests/Handle_Set_Test.cpp
@@ -208,13 +208,13 @@ main (int argc, ASYS_TCHAR *argv[])
// The ACE_Node<ACE_INT32> instantation is in ace/Stats.cpp.
template class ACE_Unbounded_Set<ACE_HANDLE>;
template class ACE_Unbounded_Set_Iterator<ACE_HANDLE>;
-#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
-// The ACE_Node<ACE_INT32> instantation is in ace/Stats.cpp.
-#pragma instantiate ACE_Unbounded_Set<ACE_HANDLE>
-#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_HANDLE>
# if defined(_CRAYMPP)
// MPP Cray ACE_HANDLE is 64-bit, defined as int, but ACE_INT32 is short
// so instantiation in ace/Stats.cpp isn't used in this case
-#pragma instantiate ACE_Node<ACE_HANDLE>
+template class ACE_Node<ACE_HANDLE>;
# endif
+#elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+// The ACE_Node<ACE_INT32> instantation is in ace/Stats.cpp.
+#pragma instantiate ACE_Unbounded_Set<ACE_HANDLE>
+#pragma instantiate ACE_Unbounded_Set_Iterator<ACE_HANDLE>
#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */