Changeset: c2ab414fca18 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c2ab414fca18 Modified Files: NT/Makefile NT/monetdb_config.h.in NT/rules.msc buildtools/autogen/autogen/msc.py buildtools/doc/windowsbuild.rst clients/mapiclient/mclient.c clients/mapiclient/tomograph.c clients/mapilib/mapi.c clients/odbc/winsetup/Makefile.ag gdk/gdk_bbp.c gdk/gdk_utils.c monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.err monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.single monetdb5/modules/mal/tablet.c monetdb5/optimizer/opt_generator.c monetdb5/optimizer/opt_pipes.c monetdb5/tests/mapi/Tests/perl_dbi.MAL.bat sql/benchmarks/ssbm/Tests/01-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/02-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/03-explain.stable.out sql/benchmarks/ssbm/Tests/03-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/04-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/05-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/06-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/07-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/08-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/09-explain.stable.out.int128 sql/benchmarks/ssbm/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/02-explain.stable.out sql/benchmarks/tpch/Tests/03-explain.stable.out.int128 sql/benchmarks/tpch/Tests/05-explain.stable.out.int128 sql/benchmarks/tpch/Tests/08-explain.stable.out.int128 sql/benchmarks/tpch/Tests/10-explain.stable.out.int128 sql/benchmarks/tpch/Tests/12-explain.stable.out.int128 sql/server/sql_symbol.c sql/storage/store.c sql/test/BugTracker-2011/Tests/func_iter_vs_bulk.Bug-2826.stable.out sql/test/BugTracker/Tests/explain.SF-1739353.stable.out sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out sql/test/Tests/setoptimizer.stable.err sql/test/Tests/setoptimizer.stable.out sql/test/Tests/setoptimizer.stable.out.Windows sql/test/copy/Tests/int_parse.stable.err sql/test/copy/Tests/int_parse.stable.out sql/test/copy/Tests/int_parse_best.stable.out sql/test/pg_regress/Tests/strings.stable.err.int128 sql/test/pg_regress/Tests/strings.stable.out Branch: leftmart Log Message:
merge with default diffs (truncated from 4087 to 300 lines): diff --git a/NT/Makefile b/NT/Makefile --- a/NT/Makefile +++ b/NT/Makefile @@ -25,7 +25,6 @@ install: targetdirs all $(INSTALL) ..\NT\installer$(bits)\*.sln "$(prefix)" $(INSTALL) ..\NT\installer$(bits)\*.vdproj "$(prefix)" -if exist "C:\Program Files (x86)" if $(bits)==32 cd "$(prefix)"&&C:\cygwin\bin\sed.exe -i "s/Program Files/Program Files (x86)/" *.vdproj - if not exist "C:\Program Files (x86)\Microsoft Visual Studio 10.0" if not exist "C:\Program Files\Microsoft Visual Studio 10.0" cd "$(prefix)"&&C:\cygwin\bin\sed.exe -i "s/Format Version 11.00/Format Version 10.00/;s/Visual Studio 2010/Visual Studio 2008/;s/-vs10//;s/_VC100_CRT_x64/_VC90_CRT_x86_x64/;s/_VC100_/_VC90_/" *.vdproj *.sln $(srcdir)\Makefile.msc: "$(srcdir)\Makefile.ag" cd "$(srcdir)"&&set PYTHONPATH=buildtools\autogen&&python buildtools\autogen\autogen.py 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 @@ -16,6 +16,7 @@ * _MSC_VER = 1500: Visual Studio 9.0 * _MSC_VER = 1600: Visual Studio 10.0 * _MSC_VER = 1800: Visual Studio 12.0 + * _MSC_VER = 1900: Visual Studio 14.0 */ #ifndef _SEEN_MONETDB_CONFIG_H @@ -993,9 +994,11 @@ /* Define to `unsigned int' if <sys/types.h> does not define. */ /* #undef size_t */ +#if _MSC_VER < 1900 #ifndef snprintf #define snprintf _snprintf #endif +#endif /* type used by connect */ #define socklen_t int diff --git a/NT/rules.msc b/NT/rules.msc --- a/NT/rules.msc +++ b/NT/rules.msc @@ -66,7 +66,7 @@ PTHREAD_INCS = PTHREAD_LIBS = !ENDIF -ODBCINST_LIBS = odbccp32.lib user32.lib +ODBCINST_LIBS = odbccp32.lib user32.lib $(LEGACY_STDIO_DEFINITIONS) ODBC_LIBS = odbc32.lib !IFNDEF PYTHON2BASE diff --git a/buildtools/autogen/autogen/msc.py b/buildtools/autogen/autogen/msc.py --- a/buildtools/autogen/autogen/msc.py +++ b/buildtools/autogen/autogen/msc.py @@ -229,7 +229,7 @@ def msc_additional_libs(fd, name, sep, t if l == "@LIBOBJS@": l = "$(LIBOBJS)" # special case (hack) for system libraries - elif l in ('-lodbc32', '-lodbccp32', '-lversion', '-lshlwapi', '-luser32'): + elif l in ('-lodbc32', '-lodbccp32', '-lversion', '-lshlwapi', '-luser32', '-llegacy_stdio_definitions'): l = l[2:] + '.lib' elif l[:2] == "-l": l = "lib"+l[2:]+".lib" diff --git a/buildtools/doc/windowsbuild.rst b/buildtools/doc/windowsbuild.rst --- a/buildtools/doc/windowsbuild.rst +++ b/buildtools/doc/windowsbuild.rst @@ -18,7 +18,9 @@ architecture, but there are notes throug on a 64-bit architecture which is indicated with Windows64. We have successfully built on Windows XP, Windows Server, and Windows 7. -__ http://dev.monetdb.org/hg/MonetDB/ +.. _MonetDB: http://dev.monetdb.org/hg/MonetDB/ + +__ MonetDB_ Introduction ============ @@ -110,12 +112,29 @@ and libraries can be optionally installe The required programs and libraries are listed in this section, the following section lists the optional programs and libraries. +Chocolatey +---------- + +Although Chocolatey_ is not a prerequisite per se, it makes +installing and maintaining some of the other prerequisites a lot +easier. Therefore we recommend installing chocolatey. Instructions +are on their website__. + +We have installed the following programs using Chocolatey_:: + + choco install ActivePerl ant cmake ruby + choco install python2 python2-x86_32 python3 python3-x86_32 + +.. _Chocolatey: https://chocolatey.org/ + +__ Chocolatey_ + Mercurial (a.k.a. HG) --------------------- All sources of the MonetDB suite of programs are stored using -Mercurial__ at our server__. You will need Mercurial to get the -sources. We use Mercurial under Cygwin__, but any other version will +Mercurial_ at our server__. You will need Mercurial to get the +sources. We use Mercurial under Cygwin_, but any other version will do as well. Once Mercurial is installed and configured, you can get the sources @@ -134,9 +153,11 @@ You can update the sources using (from w hg pull -u -__ http://mercurial.selenic.com/ -__ http://dev.monetdb.org/hg/MonetDB/ -__ http://www.cygwin.com/ +.. _Mercurial: http://mercurial.selenic.com/ +.. _Cygwin: http://www.cygwin.com/ + +__ MonetDB_ + Compiler -------- @@ -169,18 +190,26 @@ 10.0. Older versions haven't been tried Python ------ -Python__ is needed for creating the configuration files that the +Python_ is needed for creating the configuration files that the compiler uses to determine which files to compile. Python can be downloaded from http://www.python.org/. Just download and install the Windows binary distribution. -On Windows64 you can use either the 32-bit or 64-bit version of -Python. However, if you're going to create an installer for the -python component using ``python setup.py bdist_msi`` or ``python -setup.py bdist_wininst``, you should use the version of Python for -which you're creating the installer. +Note that you can use either or both Python2 and Python3, and on 64 +bit architectures, either the 32 bit or 64 bit version of Python. All +these versions are fine for building the MonetDB suite. However, if +you want to create an installer for the Python component using +``python setup.py bdist_wininst``, you need to use the version of +Python for which you're building the installer. It is possible to +install all versions. Using Chocolatey_ you can do:: -__ http://www.python.org/ + choco install python2 python3 + choco install python2-x86_32 python3-x86_32 + +The latter command only on 64 bit architectures to install the 32 bit +verions. + +.. _Python: http://www.python.org/ Bison ----- @@ -260,8 +289,8 @@ contents of the file are:: #include <Windows.h> VS_VERSION_INFO VERSIONINFO - FILEVERSION 8,36,0,0 // change as appropriate - PRODUCTVERSION 8,36,0,0 // change as appropriate + FILEVERSION 8,37,0,0 // change as appropriate + PRODUCTVERSION 8,37,0,0 // change as appropriate FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS_NT_WINDOWS32 @@ -284,18 +313,18 @@ required for the MonetDB5 component, and the clients component when it needs to talk to a MonetDB5 server. Download the source from http://www.openssl.org/. We used the latest -stable version (1.0.1k). Follow the instructions in the file +stable version (1.0.2c). Follow the instructions in the file ``INSTALL.W32`` or ``INSTALL.W64``. We used the option ``enable-static-engine`` as described in the instructions. .. The actual commands used were:: - perl Configure VC-WIN32 no-asm enable-static-engine --prefix=C:\Libraries\openssl-1.0.1k.win32 + perl Configure VC-WIN32 no-asm enable-static-engine --prefix=C:\Libraries\openssl-1.0.2c.win32 ms\do_ms.bat nmake /f ms\ntdll.mak nmake /f ms\ntdll.mak install and:: - perl Configure VC-WIN64A enable-static-engine --prefix=C:\Libraries\openssl-1.0.1k.win64 - ms\do_win64a + perl Configure VC-WIN64A enable-static-engine --prefix=C:\Libraries\openssl-1.0.2c.win64 + ms\do_win64a.bat nmake /f ms\ntdll.mak nmake /f ms\ntdll.mak install For the debug versions, use ``debug-VC-WIN32`` and @@ -395,9 +424,26 @@ on Windows with NMake`__. I did find on you will need to run the ``autogen.bat`` script despite what it says in the instructions. +We needed to make a few changes to the file ``nmake.opt``. We needed +to add a blurb for the version of ``nmake`` that we were using. Look +at the version number of ``nmake /P`` and adapt the closest match. We +also uncommented the section defining ``MSVC_VLD_DIR`` in order to +compile a debug version. + +For newer versions of Visual Studio, we also needed to add a line:: + + #include <algorithm> + +to the files:: + + src\algorithm\LineIntersector.cpp + src\geom\LineSegment.cpp + src\io\WKTWriter.cpp + src\operation\buffer\OffsetCurveSetBuilder.cpp + .. The actual commands were:: autogen.bat - nmake /f makefile.vc MSVC_VER=1600 + nmake /f makefile.vc .. On Windows64, add ``WIN64=YES`` to the nmake command line. diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c --- a/clients/mapiclient/mclient.c +++ b/clients/mapiclient/mclient.c @@ -1507,7 +1507,7 @@ setFormatter(const char *s) free(separator); separator = NULL; csvheader = 0; -#ifdef WIN32 +#ifdef _TWO_DIGIT_EXPONENT if (formatter == TESTformatter) _set_output_format(0); #endif @@ -1543,7 +1543,7 @@ setFormatter(const char *s) } else if (strcmp(s, "xml") == 0) { formatter = XMLformatter; } else if (strcmp(s, "test") == 0) { -#ifdef WIN32 +#ifdef _TWO_DIGIT_EXPONENT _set_output_format(_TWO_DIGIT_EXPONENT); #endif formatter = TESTformatter; diff --git a/clients/mapiclient/tomograph.c b/clients/mapiclient/tomograph.c --- a/clients/mapiclient/tomograph.c +++ b/clients/mapiclient/tomograph.c @@ -1184,20 +1184,24 @@ updatecolormap(int idx) /* gnuplot defaults */ static int height = 160; +#define LOGOFILE DATA_DIR "/doc/MonetDB/monetdblogo.png" + static char * findlogo(void) { #ifdef _MSC_VER - static char buf[512]; + /* on Windows, convert \ to / path separators since this path + * is added to gnuplot input */ + static char buf[sizeof(LOGOFILE)]; int i; - snprintf(buf, sizeof(buf), "%s", DATA_DIR "\\doc\\MonetDB\\monetdblogo.png"); + snprintf(buf, sizeof(buf), "%s", LOGOFILE); for (i = 0; buf[i]; i++) if (buf[i] == '\\') buf[i] = '/'; return buf; #else - return DATA_DIR "/doc/MonetDB/monetdblogo.png"; + return LOGOFILE; #endif } diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c --- a/clients/mapilib/mapi.c +++ b/clients/mapilib/mapi.c @@ -2551,21 +2551,25 @@ mapi_start_talking(Mapi mid) /* consume server challenge */ len = mnstr_read_block(mid->from, buf, 1, BLOCK); - check_stream(mid, mid->from, "Connection terminated", "mapi_start_talking", (mid->blk.eos = 1, mid->error)); + check_stream(mid, mid->from, "Connection terminated while starting", "mapi_start_talking", (mid->blk.eos = 1, mid->error)); assert(len < BLOCK); + if (len == 0){ + mapi_setError(mid, "Challenge string is not valid, it is empty", "mapi_start_talking", MERROR); + return mid->error; + } /* buf at this point looks like "challenge:servertype:protover[:.*]" */ chal = buf; server = strchr(chal, ':'); if (server == NULL) { - mapi_setError(mid, "Challenge string is not valid", "mapi_start_talking", MERROR); + mapi_setError(mid, "Challenge string is not valid, server not found", "mapi_start_talking", MERROR); return mid->error; } *server++ = '\0'; protover = strchr(server, ':'); if (protover == NULL) { - mapi_setError(mid, "Challenge string is not valid", "mapi_start_talking", MERROR); + mapi_setError(mid, "Challenge string is not valid, protocol not found", "mapi_start_talking", MERROR); return mid->error; } *protover++ = '\0'; @@ -3437,7 +3441,7 @@ read_line(Mapi mid) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list