Changeset: 60bc48b446e9 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=60bc48b446e9
Modified Files:
        NT/monetdb_config.h.in
        clients/odbc/driver/ODBC.syms
        clients/odbc/driver/SQLGetConnectAttr.c
        clients/odbc/driver/SQLGetConnectOption.c
        clients/odbc/driver/SQLSetConnectOption.c
        common/stream/stream.c
        common/utils/mutils.c
        configure.ag
        gdk/gdk_atoms.c
        gdk/gdk_select.c
        monetdb5/modules/kernel/mmath.c
        monetdb5/modules/kernel/mmath.h
        sql/backends/monet5/generator/generator.c
Branch: Oct2014
Log Message:

Ported to Microsoft Visual Studio 12.0.


diffs (truncated from 416 to 300 lines):

diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -26,6 +26,7 @@
  * _MSC_VER = 1400: Visual Studio 8
  * _MSC_VER = 1500: Visual Studio 9.0
  * _MSC_VER = 1600: Visual Studio 10.0
+ * _MSC_VER = 1800: Visual Studio 12.0
  */
 
 /* Prevent pollution through excessive inclusion of include files by
@@ -145,13 +146,17 @@
 /* #undef HAVE_FDATASYNC */
 
 /* Define to 1 if you have the <fenv.h> header file. */
-/* #undef HAVE_FENV_H */
+#if _MSC_VER > 1600
+#define HAVE_FENV_H 1
+#endif
 
 /* Define to 1 if you have the `fpclass' function. */
-#define HAVE_FPCLASS 1
+#define HAVE_FPCLASS 1         /* uses _fpclass, see mmath.c */
 
 /* Define to 1 if you have the `fpclassify' function. */
-/* #undef HAVE_FPCLASSIFY */
+#if _MSC_VER > 1600
+#define HAVE_FPCLASSIFY 1
+#endif
 
 /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
 /* #undef HAVE_FSEEKO */
@@ -226,7 +231,9 @@
 #define HAVE_IO_H 1
 
 /* Define to 1 if you have the `isinf' function. */
-/* #undef HAVE_ISINF */
+#if _MSC_VER > 1600
+#define HAVE_ISINF 1
+#endif
 
 /* Define that you want to build the jsonstore library */
 /* #undef HAVE_JSONSTORE */
@@ -296,7 +303,9 @@
 
 /* Define to 1 if you have the `llabs' function. */
 #define HAVE_LLABS 1
+#if _MSC_VER <= 1500
 #define llabs _abs64
+#endif
 
 /* Define to 1 if you have the <locale.h> header file. */
 #define HAVE_LOCALE_H 1
@@ -310,7 +319,7 @@
 /* #undef HAVE_LOCKF */
 
 /* Define to 1 if the system has the type `long long'. */
-#if defined(__ICL) && __ICL >= 1010
+#if _MSC_VER > 1600 || (defined(__ICL) && __ICL >= 1010)
 #define HAVE_LONG_LONG 1
 #else
 #if _MSC_VER >= 1300
@@ -318,8 +327,6 @@
  * format is interpreted the same as %ld, i.e. useless
  */
 /* #define HAVE_LONG_LONG 1 */
-#else
-/* #undef HAVE_LONG_LONG */
 #endif
 #endif
 
@@ -368,6 +375,11 @@
 /* Define to 1 if you have the `nl_langinfo' function. */
 /* #undef HAVE_NL_LANGINFO */
 
+/* Define to 1 if you have the `nextafterf' function. */
+#if _MSC_VER > 1600
+#define HAVE_NEXTAFTERF 1
+#endif
+
 /* Define to 1 if you have the `_NSGetExecutablePath' function. */
 /* #undef HAVE__NSGETEXECUTABLEPATH */
 
@@ -442,7 +454,9 @@
 /* #undef HAVE_RLIMIT_H */
 
 /* Define to 1 if you have the `round' function. */
-/* #undef HAVE_ROUND */
+#if _MSC_VER > 1600
+#define HAVE_ROUND 1
+#endif
 
 /* Define if you have the samtools (providing the bam library) */
 /* #undef HAVE_SAMTOOLS */
@@ -511,7 +525,9 @@
 #define HAVE_STDDEF_H 1
 
 /* Define to 1 if you have the <stdint.h> header file. */
-/* #undef HAVE_STDINT_H */
+#if _MSC_VER > 1600
+#define HAVE_STDINT_H 1
+#endif
 
 /* Define to 1 if you have the <stdlib.h> header file. */
 #define HAVE_STDLIB_H 1
@@ -526,7 +542,9 @@
 /* #undef HAVE_STRCASESTR */
 
 /* Define to 1 if you have the `strftime' function. */
-/* #undef HAVE_STRFTIME */
+#if _MSC_VER >= 1500
+#define HAVE_STRFTIME 1
+#endif
 
 /* Define to 1 if you have the <strings.h> header file. */
 /* #undef HAVE_STRINGS_H */
@@ -553,28 +571,26 @@
 #define HAVE_STRTOD 1
 
 /* Define to 1 if you have the `strtof' function. */
-/* #undef HAVE_STRTOF */
+#if _MSC_VER > 1600
+#define HAVE_STRTOF 1
+#endif
 
 #define strtok_r(t,d,c) strtok_s(t,d,c)
 
 /* Define to 1 if you have the `strtoll' function. */
 #if _MSC_VER >= 1300
 #define HAVE_STRTOLL 1
-#ifndef strtoll
+#if _MSC_VER <= 1600 && !defined(strtoll)
 #define strtoll _strtoi64
 #endif
-#else
-/* #undef HAVE_STRTOLL */
 #endif
 
 /* Define to 1 if you have the `strtoull' function. */
 #if _MSC_VER >= 1300
 #define HAVE_STRTOULL 1
-#ifndef strtoull
+#if _MSC_VER <= 1600 && !defined(strtoull)
 #define strtoull _strtoui64
 #endif
-#else
-/* #undef HAVE_STRTOULL */
 #endif
 
 /* Define if you have struct mallinfo */
@@ -649,7 +665,9 @@
 #define HAVE_TIME_H 1
 
 /* Define to 1 if you have the `trunc' function. */
-/* #undef HAVE_TRUNC */
+#if _MSC_VER > 1600
+#define HAVE_TRUNC 1
+#endif
 
 /* Define to 1 if you have the `uname' function. */
 /* #undef HAVE_UNAME */
@@ -682,7 +700,9 @@
 #define HAVE_WINSOCK_H 1
 
 /* Define to 1 if you have the <xmmintrin.h> header file. */
-/* #undef HAVE_XMMINTRIN_H */
+#if _MSC_VER > 1600
+#define HAVE_XMMINTRIN_H 1
+#endif
 
 /* Define to 1 if the system has the type `_Bool'. */
 /* #undef HAVE__BOOL */
@@ -990,8 +1010,10 @@
 #define ssize_t int
 #endif
 
+#if _MSC_VER <= 1600
 /* no va_copy in win32 */
 #define va_copy(x,y) ((x) = (y))
+#endif
 
 typedef unsigned char uint8_t;
 typedef unsigned short uint16_t;
diff --git a/clients/odbc/driver/ODBC.syms b/clients/odbc/driver/ODBC.syms
--- a/clients/odbc/driver/ODBC.syms
+++ b/clients/odbc/driver/ODBC.syms
@@ -62,9 +62,9 @@ SQLFreeStmt
 SQLGetConnectAttr
 SQLGetConnectAttrA
 SQLGetConnectAttrW
-SQLGetConnectOption
-SQLGetConnectOptionA
-SQLGetConnectOptionW
+SQLGetConnectOption=SQLGetConnectOption_deprecated
+SQLGetConnectOptionA=SQLGetConnectOptionA_deprecated
+SQLGetConnectOptionW=SQLGetConnectOptionW_deprecated
 SQLGetCursorName
 SQLGetCursorNameA
 SQLGetCursorNameW
@@ -118,9 +118,9 @@ SQLRowCount
 SQLSetConnectAttr
 SQLSetConnectAttrA
 SQLSetConnectAttrW
-SQLSetConnectOption
-SQLSetConnectOptionA
-SQLSetConnectOptionW
+SQLSetConnectOption=SQLSetConnectOption_deprecated
+SQLSetConnectOptionA=SQLSetConnectOptionA_deprecated
+SQLSetConnectOptionW=SQLSetConnectOptionW_deprecated
 SQLSetCursorName
 SQLSetCursorNameA
 SQLSetCursorNameW
diff --git a/clients/odbc/driver/SQLGetConnectAttr.c 
b/clients/odbc/driver/SQLGetConnectAttr.c
--- a/clients/odbc/driver/SQLGetConnectAttr.c
+++ b/clients/odbc/driver/SQLGetConnectAttr.c
@@ -83,7 +83,7 @@ SQLGetConnectAttr_(ODBCDbc *dbc,
                *(SQLUINTEGER *) ValuePtr = dbc->sql_attr_metadata_id;
                break;
        case SQL_ATTR_ODBC_CURSORS:
-               *(SQLUINTEGER *) ValuePtr = SQL_CUR_USE_IF_NEEDED;
+               *(SQLUINTEGER *) ValuePtr = SQL_CUR_USE_DRIVER;
                break;
        case SQL_ATTR_TRACE:
                *(SQLUINTEGER *) ValuePtr = SQL_OPT_TRACE_OFF;
diff --git a/clients/odbc/driver/SQLGetConnectOption.c 
b/clients/odbc/driver/SQLGetConnectOption.c
--- a/clients/odbc/driver/SQLGetConnectOption.c
+++ b/clients/odbc/driver/SQLGetConnectOption.c
@@ -37,6 +37,15 @@
 #include "ODBCDbc.h"
 #include "ODBCUtil.h"
 
+#ifdef _MSC_VER
+/* can't call them by their real name with Visual Studio 12.0 since we
+ * would then get a warning which we translate to an error during
+ * compilation (also see ODBS.syms) */
+#define SQLGetConnectOption    SQLGetConnectOption_deprecated
+#define SQLGetConnectOptionA   SQLGetConnectOptionA_deprecated
+#define SQLGetConnectOptionW   SQLGetConnectOptionW_deprecated
+#endif
+
 static SQLRETURN
 SQLGetConnectOption_(ODBCDbc *dbc,
                     SQLUSMALLINT Option,
diff --git a/clients/odbc/driver/SQLSetConnectOption.c 
b/clients/odbc/driver/SQLSetConnectOption.c
--- a/clients/odbc/driver/SQLSetConnectOption.c
+++ b/clients/odbc/driver/SQLSetConnectOption.c
@@ -41,6 +41,15 @@
 #include "ODBCDbc.h"
 #include "ODBCUtil.h"
 
+#ifdef _MSC_VER
+/* can't call them by their real name with Visual Studio 12.0 since we
+ * would then get a warning which we translate to an error during
+ * compilation (also see ODBS.syms) */
+#define SQLSetConnectOption    SQLSetConnectOption_deprecated
+#define SQLSetConnectOptionA   SQLSetConnectOptionA_deprecated
+#define SQLSetConnectOptionW   SQLSetConnectOptionW_deprecated
+#endif
+
 static SQLRETURN
 SQLSetConnectOption_(ODBCDbc *dbc,
                     SQLUSMALLINT Option,
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -2058,6 +2058,38 @@ udp_create(const char *name)
 static int
 udp_socket(udp_stream * udp, const char *hostname, int port, int write)
 {
+#ifdef HAVE_GETADDRINFO
+       struct addrinfo hints, *res, *rp;
+       char sport[32];
+
+       snprintf(sport, sizeof(sport), "%d", port);
+       memset(&hints, 0, sizeof(hints));
+       hints.ai_family = AF_UNSPEC; /* IPv4 or IPv6 */
+       hints.ai_socktype = SOCK_DGRAM;
+       hints.ai_flags = AI_PASSIVE;
+       hints.ai_protocol = IPPROTO_UDP;
+       if (getaddrinfo(hostname, sport, &hints, &res))
+               return -1;
+       memset(&udp->addr, 0, sizeof(udp->addr));
+       for (rp = res; rp; rp = rp->ai_next) {
+               udp->s = socket(rp->ai_family, rp->ai_socktype, 
rp->ai_protocol);
+               if (udp->s == INVALID_SOCKET)
+                       continue;
+               if (!write &&
+                   bind(udp->s, rp->ai_addr, 
+#ifdef _MSC_VER
+                        (int)  /* Windows got the interface wrong... */
+#endif
+                        rp->ai_addrlen) == SOCKET_ERROR) {
+                       closesocket(udp->s);
+                       continue;
+               }
+               memcpy(&udp->addr, rp->ai_addr, rp->ai_addrlen);
+               freeaddrinfo(res);
+               return 0;
+       }
+       return -1;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to