- Added configuration checks for Solaris
authorVictor Kirhenshtein <victor@netxms.org>
Wed, 19 May 2004 15:50:07 +0000 (15:50 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Wed, 19 May 2004 15:50:07 +0000 (15:50 +0000)
- pthread_kill changed to pthread_exit in ThreadExit()
- Appropriate #ifdef's added to code
- All occurences of __int64 changed to INT64 and typedef for __int64 removed

configure.ac
include/nms_common.h
include/nms_cscp.h
include/nms_threads.h
include/nms_util.h
src/libnetxms/main.cpp
src/server/core/dcithreshold.cpp
src/server/core/nms_dcoll.h

index a2cf5ec..1b0eb4f 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: configure.ac,v 1.6 2004-05-15 21:04:13 victor Exp $
+# $Id: configure.ac,v 1.7 2004-05-19 15:50:01 victor Exp $
 #
 # Process this file with autoconf to produce a configure script.
 #
@@ -24,6 +24,12 @@ if test -d /usr/kerberos/include; then
        CFLAGS="$CFLAGS -I/usr/kerberos/include"
        CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
 fi
+
+if test -d /usr/local/ssl/include; then
+       CFLAGS="$CFLAGS -I/usr/local/ssl/include"
+       CPPFLAGS="$CPPFLAGS -I/usr/local/ssl/include"
+fi
+
 if test -d /usr/local/lib; then
        LDFLAGS="$LDFLAGS -L/usr/local/lib"
 fi
@@ -125,6 +131,7 @@ AC_CHECK_LIB(crypto, DH_new)
 AC_CHECK_LIB(ssl, SSL_accept)
 AC_CHECK_LIB(termcap, tgetstr)
 AC_CHECK_LIB(readline, readline)
+AC_CHECK_LIB(socket, if_nameindex)
 
 # --------------------------------------------------------------------------
 # checks for headers.
@@ -132,6 +139,7 @@ AC_CHECK_LIB(readline, readline)
 AC_HEADER_STDC
 AC_HEADER_STAT
 AC_HEADER_TIME
+AC_CHECK_HEADERS([sys/int_types.h])
 AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h sys/socket.h])
 AC_CHECK_HEADERS([net/if.h net/if_arp.h])
 AC_CHECK_HEADERS([openssl/ssl.h])
@@ -153,6 +161,11 @@ AC_TYPE_SIGNAL
 AC_TYPE_SIZE_T
 AC_STRUCT_TIMEZONE
 
+#AC_CHECK_TYPE(int64_t, AC_DEFINE(HAVE_INT64_T, 1))
+#AC_CHECK_TYPE(uint64_t, AC_DEFINE(HAVE_UINT64_T, 1))
+#AC_CHECK_TYPE(u_int64_t, AC_DEFINE(HAVE_U_INT64_T, 1))
+AC_CHECK_TYPES([int64_t, uint64_t, u_int64_t])
+
 # --------------------------------------------------------------------------
 # C/CPP caps
 
@@ -172,7 +185,7 @@ AC_FUNC_STRFTIME
 AC_FUNC_STRTOD
 AC_FUNC_VPRINTF
 
-AC_CHECK_FUNCS([gettimeofday memmove memset strchr strcspn strdup strerror strrchr strtol strtoul if_nametoindex])
+AC_CHECK_FUNCS([gettimeofday memmove memset strchr strcspn strdup strerror strrchr strtol strtoul if_nametoindex __bswap_64])
 
 
 # sockets/resolver (probably for solaris)
index f6a9812..2fcc78d 100644 (file)
@@ -71,6 +71,10 @@ typedef int socklen_t;
 #include <sys/types.h>
 #endif
 
+#if HAVE_SYS_INT_TYPES_H
+#include <sys/int_types.h>
+#endif
+
 #if HAVE_SYS_SOCKET_H
 #include <sys/socket.h>
 #endif
@@ -98,9 +102,20 @@ typedef unsigned short WORD;
 typedef unsigned char BYTE;
 typedef void * HANDLE;
 typedef void * HMODULE;
-typedef int64_t __int64;
+
+#if HAVE_INT64_T
 typedef int64_t INT64;
+#else
+#error Target system does not have signed 64bit integer type
+#endif
+
+#if HAVE_UINT64_T
+typedef uint64_t QWORD;
+#elif HAVE_U_INT64_T
 typedef u_int64_t QWORD;
+#else
+#error Target system does not have unsigned 64bit integer type
+#endif
 
 
 #define TRUE   1
index b72d392..7b4bbad 100644 (file)
@@ -57,7 +57,7 @@ typedef struct
       struct
       {
          WORD wReserverd2;
-         __int64 qwInt64;
+         QWORD qwInt64;
       } int64;
       WORD wInt16;
    } data;
index 9834e7e..0da72a5 100644 (file)
@@ -165,7 +165,7 @@ inline THREAD ThreadCreate(void (*start_address )(void *), int stack_size, void
 
 inline void ThreadExit(void)
 {
-   pthread_kill(pthread_self(), 15); // 9?
+   pthread_exit(NULL);
 }
 
 inline MUTEX MutexCreate(void)
index 964a47c..893b12f 100644 (file)
@@ -174,7 +174,7 @@ public:
 
 extern "C"
 {
-#ifdef _WIN32
+#if defined(_WIN32) || !defined(HAVE___BSWAP_64)
    QWORD LIBNETXMS_EXPORTABLE __bswap_64(QWORD qwVal);
 #endif
 
index 6e0a4c6..00f6ae3 100644 (file)
@@ -28,7 +28,7 @@
 // Swap byte order in 64-bit integer
 //
 
-#ifdef _WIN32
+#if defined(_WIN32) || !defined(HAVE___BSWAP_64)
 
 QWORD LIBNETXMS_EXPORTABLE __bswap_64(QWORD qwVal)
 {
index ff1fbbd..80d99f4 100644 (file)
@@ -140,7 +140,7 @@ int Threshold::Check(const char *pszValue)
    {
       const char *pszStr;
       int iInteger;
-      __int64 qwInt64;
+      INT64 qwInt64;
       double dFloat;
    } fvalue;
 
index 4ab3ebd..7cfdb89 100644 (file)
@@ -112,7 +112,7 @@ private:
    union
    {
       long iInteger;
-      __int64 qwInt64;
+      INT64 qwInt64;
       double dFloat;
    } m_value;
    BYTE m_iFunction;          // Function code