summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1999-12-06 14:17:52 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1999-12-06 14:17:52 +0000
commita40e4b5e4cd3ffdd4778ea3cbc73d05adf7b8a65 (patch)
treebe5a2755b43a7595cfe96296a27b2d013a47df5e
parent11ef1566df20b216ddc6240be0371bddf8a640f1 (diff)
downloadATCD-a40e4b5e4cd3ffdd4778ea3cbc73d05adf7b8a65.tar.gz
ChangeLogTag:Mon Dec 6 07:55:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
-rw-r--r--ChangeLog-99b10
-rw-r--r--ace/ACE.cpp6
-rw-r--r--ace/config-sunos5.7.h7
3 files changed, 21 insertions, 2 deletions
diff --git a/ChangeLog-99b b/ChangeLog-99b
index abd9704b508..f8ddf9c0423 100644
--- a/ChangeLog-99b
+++ b/ChangeLog-99b
@@ -1,5 +1,15 @@
Mon Dec 6 07:55:05 1999 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
+ * ace/config-sunos5.7.h: Added several new #defines needed to
+ port ACE to 64 bit Solaris. Thanks to Dani Flexer
+ <dani.flexer@israel.sun.com> for these.
+
+ * ace/ACE.cpp: Changed the implementation of count_interfaces()
+ to handle the fact that size_t is a 64 bit type but the
+ parameter to ioctl needs to be an int, which according to LP64
+ is 32 bits. Thanks to Dani Flexer <dani.flexer@israel.sun.com>
+ for reporting this.
+
* netsvcs/lib/Client_Logging_Handler.cpp (handle_signal):
If SIGPIPE occurs, ACE_Client_Logging_Handler::handle_signal()
returns -1, thus removing svc handler from reactor. Since svc
diff --git a/ace/ACE.cpp b/ace/ACE.cpp
index 589fd475864..9c2b9a46dbb 100644
--- a/ace/ACE.cpp
+++ b/ace/ACE.cpp
@@ -2998,14 +2998,16 @@ ACE::count_interfaces (ACE_HANDLE handle,
size_t &how_many)
{
#if defined (sparc) && defined (SIOCGIFNUM)
+ int tmp_how_many; // For 64 bit Solaris
if (ACE_OS::ioctl (handle,
SIOCGIFNUM,
- (caddr_t) &how_many) == -1)
+ (caddr_t) &tmp_how_many) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ASYS_TEXT ("ACE::get_ip_interfaces:")
ASYS_TEXT ("ioctl - SIOCGIFNUM failed")),
-1);
- return 0;
+ how_many = (size_t) tmp_how_many;
+ return 0;
#elif defined (__unix) || defined (__Lynx__) || defined (_AIX)
// Note: DEC CXX doesn't define "unix". BSD compatible OS: HP UX,
// AIX, SunOS 4.x perform some ioctls to retrieve ifconf list of
diff --git a/ace/config-sunos5.7.h b/ace/config-sunos5.7.h
index a2aad889217..798dbc964ee 100644
--- a/ace/config-sunos5.7.h
+++ b/ace/config-sunos5.7.h
@@ -62,4 +62,11 @@ typedef unsigned long long uint64_t;
#undef ACE_HAS_LIMITED_SELECT
#endif /* ACE_HAS_LIMITED_SELECT */
+#if defined (__sparcv9)
+#define ERRMAX 256 /* Needed for following define */
+#define ACE_LACKS_SYS_NERR
+#define _LP64
+#define ACE_SIZEOF_LONG 8 /* Needed to circumvent compiler bug #4294969 */
+#endif /* __sparcv9 */
+
#endif /* ACE_CONFIG_H */