| diff -Naur z3-z3-4.8.3.orig/examples/tptp/tptp5.cpp z3-z3-4.8.3/examples/tptp/tptp5.cpp |
| --- z3-z3-4.8.3.orig/examples/tptp/tptp5.cpp 2018-11-22 17:05:10.861686100 -0500 |
| +++ z3-z3-4.8.3/examples/tptp/tptp5.cpp 2018-11-22 17:05:14.862721000 -0500 |
| @@ -1057,7 +1057,7 @@ |
| } |
| |
| bool mk_env_filename(const char* rel_name, std::string& inc_name) { |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| char buffer[1024]; |
| size_t sz; |
| errno_t err = getenv_s( |
| diff -Naur z3-z3-4.8.3.orig/scripts/mk_util.py z3-z3-4.8.3/scripts/mk_util.py |
| --- z3-z3-4.8.3.orig/scripts/mk_util.py 2018-11-22 17:05:10.903686600 -0500 |
| +++ z3-z3-4.8.3/scripts/mk_util.py 2018-11-22 17:46:04.413565100 -0500 |
| @@ -76,6 +76,7 @@ |
| IS_CYGWIN=False |
| IS_CYGWIN_MINGW=False |
| IS_MSYS2=False |
| +IS_MSYS2_MINGW=False |
| VERBOSE=True |
| DEBUG_MODE=False |
| SHOW_CPPS = True |
| @@ -165,6 +166,9 @@ |
| def is_msys2(): |
| return IS_MSYS2 |
| |
| +def is_msys2_mingw(): |
| + return IS_MSYS2_MINGW |
| + |
| def norm_path(p): |
| return os.path.expanduser(os.path.normpath(p)) |
| |
| @@ -240,7 +244,7 @@ |
| |
| def exec_compiler_cmd(cmd): |
| r = exec_cmd(cmd) |
| - if is_windows() or is_cygwin_mingw() or is_cygwin() or is_msys2(): |
| + if is_windows() or is_cygwin_mingw() or is_cygwin() or is_msys2_mingw() or is_msys2(): |
| rmf('a.exe') |
| else: |
| rmf('a.out') |
| @@ -635,10 +639,13 @@ |
| IS_CYGWIN_MINGW=True |
| elif os.uname()[0].startswith('MSYS_NT') or os.uname()[0].startswith('MINGW'): |
| IS_MSYS2=True |
| - if os.uname()[4] == 'x86_64': |
| - LINUX_X64=True |
| + if (CC != None and "mingw" in CC): |
| + IS_MSYS2_MINGW=True |
| else: |
| - LINUX_X64=False |
| + if os.uname()[4] == 'x86_64': |
| + LINUX_X64=True |
| + else: |
| + LINUX_X64=False |
| |
| |
| def display_help(exit_code): |
| @@ -2188,6 +2195,9 @@ |
| # Some ocamlmklib's don't like -g; observed on cygwin, but may be others as well. |
| OCAMLMKLIB += ' -g' |
| |
| + if is_msys2() and not(is_msys2_mingw()): |
| + LIBZ3 = 'libz3.dll' |
| + |
| z3mls = os.path.join(self.sub_dir, 'z3ml') |
| out.write('%s.cma: %s %s %s\n' % (z3mls, cmos, stubso, z3dllso)) |
| out.write('\t%s -o %s -I %s %s %s %s\n' % (OCAMLMKLIB, z3mls, self.sub_dir, stubso, cmos, LIBZ3)) |
| @@ -2250,7 +2260,7 @@ |
| out.write(' %s' % ((os.path.join(self.sub_dir, 'z3ml.cmxa')))) |
| out.write(' %s' % ((os.path.join(self.sub_dir, 'z3ml.cmxs')))) |
| out.write(' %s' % ((os.path.join(self.sub_dir, 'dllz3ml')))) |
| - if is_windows() or is_cygwin_mingw(): |
| + if is_windows() or is_cygwin_mingw() or is_msys2_mingw(): |
| out.write('.dll') |
| else: |
| out.write('.so') # .so also on OSX! |
| @@ -2776,7 +2786,7 @@ |
| SO_EXT = '.dll' |
| SLIBFLAGS = '-shared' |
| EXE_EXT = '.exe' |
| - LIB_EXT = '.lib' |
| + LIB_EXT = '.a' |
| else: |
| raise MKException('Unsupported platform: %s' % sysname) |
| if is64(): |
| @@ -2791,7 +2801,7 @@ |
| SLIBFLAGS = '%s -m32' % SLIBFLAGS |
| if TRACE or DEBUG_MODE: |
| CPPFLAGS = '%s -D_TRACE' % CPPFLAGS |
| - if is_cygwin_mingw(): |
| + if is_cygwin_mingw() or is_msys2_mingw(): |
| # when cross-compiling with MinGW, we need to statically link its standard libraries |
| # and to make it create an import library. |
| SLIBEXTRAFLAGS = '%s -static-libgcc -static-libstdc++ -Wl,--out-implib,libz3.dll.a' % SLIBEXTRAFLAGS |
| @@ -2829,6 +2839,8 @@ |
| print('C Compiler : %s' % CC) |
| if is_cygwin_mingw(): |
| print('MinGW32 cross: %s' % (is_cygwin_mingw())) |
| + if is_msys2_mingw(): |
| + print('MinGW32 cross: %s' % (is_msys2_mingw())) |
| print('Archive Tool: %s' % AR) |
| print('Arithmetic: %s' % ARITH) |
| print('OpenMP: %s' % HAS_OMP) |
| diff -Naur z3-z3-4.8.3.orig/scripts/update_api.py z3-z3-4.8.3/scripts/update_api.py |
| --- z3-z3-4.8.3.orig/scripts/update_api.py 2018-11-22 17:05:10.905743500 -0500 |
| +++ z3-z3-4.8.3/scripts/update_api.py 2018-11-22 17:18:23.986311000 -0500 |
| @@ -1707,7 +1707,7 @@ |
| from .z3types import * |
| from .z3consts import * |
| |
| -_ext = 'dll' if sys.platform in ('win32', 'cygwin') else 'dylib' if sys.platform == 'darwin' else 'so' |
| +_ext = 'dll' if sys.platform in ('win32', 'cygwin', 'msys') else 'dylib' if sys.platform == 'darwin' else 'so' |
| _lib = None |
| _default_dirs = ['.', |
| os.path.dirname(os.path.abspath(__file__)), |
| diff -Naur z3-z3-4.8.3.orig/src/api/python/setup.py z3-z3-4.8.3/src/api/python/setup.py |
| --- z3-z3-4.8.3.orig/src/api/python/setup.py 2018-11-22 17:05:11.014741900 -0500 |
| +++ z3-z3-4.8.3/src/api/python/setup.py 2018-11-22 17:17:38.124501500 -0500 |
| @@ -30,7 +30,7 @@ |
| if BUILD_PLATFORM in ('darwin', 'osx'): |
| LIBRARY_FILE = "libz3.dylib" |
| EXECUTABLE_FILE = "z3" |
| -elif BUILD_PLATFORM in ('win32', 'cygwin', 'win'): |
| +elif BUILD_PLATFORM in ('win32', 'cygwin', 'win', 'msys'): |
| LIBRARY_FILE = "libz3.dll" |
| EXECUTABLE_FILE = "z3.exe" |
| else: |
| diff -Naur z3-z3-4.8.3.orig/src/muz/fp/datalog_parser.cpp z3-z3-4.8.3/src/muz/fp/datalog_parser.cpp |
| --- z3-z3-4.8.3.orig/src/muz/fp/datalog_parser.cpp 2018-11-22 17:05:11.517735700 -0500 |
| +++ z3-z3-4.8.3/src/muz/fp/datalog_parser.cpp 2018-11-22 17:19:17.336361600 -0500 |
| @@ -99,7 +99,7 @@ |
| m_data_size(0) { |
| m_data.resize(2*s_expansion_step); |
| resize_data(0); |
| -#if _WINDOWS |
| +#if defined(_MSC_VER) |
| errno_t err = fopen_s(&m_file, fname, "rb"); |
| m_ok = (m_file != NULL) && (err == 0); |
| #else |
| diff -Naur z3-z3-4.8.3.orig/src/shell/main.cpp z3-z3-4.8.3/src/shell/main.cpp |
| --- z3-z3-4.8.3.orig/src/shell/main.cpp 2018-11-22 17:05:12.074728100 -0500 |
| +++ z3-z3-4.8.3/src/shell/main.cpp 2018-11-22 17:19:59.215640700 -0500 |
| @@ -377,7 +377,7 @@ |
| UNREACHABLE(); |
| } |
| memory::finalize(); |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| _CrtDumpMemoryLeaks(); |
| #endif |
| return return_value; |
| diff -Naur z3-z3-4.8.3.orig/src/test/for_each_file.cpp z3-z3-4.8.3/src/test/for_each_file.cpp |
| --- z3-z3-4.8.3.orig/src/test/for_each_file.cpp 2018-11-22 17:05:11.894729800 -0500 |
| +++ z3-z3-4.8.3/src/test/for_each_file.cpp 2018-11-22 17:20:22.507283000 -0500 |
| @@ -17,7 +17,7 @@ |
| Revision History: |
| |
| --*/ |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| #include <string> |
| #include <windows.h> |
| #include <strsafe.h> |
| diff -Naur z3-z3-4.8.3.orig/src/test/interval.cpp z3-z3-4.8.3/src/test/interval.cpp |
| --- z3-z3-4.8.3.orig/src/test/interval.cpp 2018-11-22 17:05:11.931673600 -0500 |
| +++ z3-z3-4.8.3/src/test/interval.cpp 2018-11-22 17:20:51.434085200 -0500 |
| @@ -201,7 +201,7 @@ |
| static char g_buffer[BUFFER_SZ]; |
| |
| char const * get_next_file_name() { |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| sprintf_s(g_buffer, BUFFER_SZ, "interval_lemma_%d.smt2", g_problem_id); |
| #else |
| sprintf(g_buffer, "interval_lemma_%d.smt2", g_problem_id); |
| diff -Naur z3-z3-4.8.3.orig/src/test/quant_elim.cpp z3-z3-4.8.3/src/test/quant_elim.cpp |
| --- z3-z3-4.8.3.orig/src/test/quant_elim.cpp 2018-11-22 17:05:11.951729800 -0500 |
| +++ z3-z3-4.8.3/src/test/quant_elim.cpp 2018-11-22 17:21:39.008092300 -0500 |
| @@ -497,7 +497,7 @@ |
| |
| |
| memory::finalize(); |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| _CrtDumpMemoryLeaks(); |
| #endif |
| exit(0); |
| diff -Naur z3-z3-4.8.3.orig/src/test/quant_solve.cpp z3-z3-4.8.3/src/test/quant_solve.cpp |
| --- z3-z3-4.8.3.orig/src/test/quant_solve.cpp 2018-11-22 17:05:11.952729000 -0500 |
| +++ z3-z3-4.8.3/src/test/quant_solve.cpp 2018-11-22 17:21:59.902171600 -0500 |
| @@ -255,7 +255,7 @@ |
| |
| #if 0 |
| memory::finalize(); |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| _CrtDumpMemoryLeaks(); |
| #endif |
| exit(0); |
| diff -Naur z3-z3-4.8.3.orig/src/util/mpn.cpp z3-z3-4.8.3/src/util/mpn.cpp |
| --- z3-z3-4.8.3.orig/src/util/mpn.cpp 2018-11-22 17:05:12.105738700 -0500 |
| +++ z3-z3-4.8.3/src/util/mpn.cpp 2018-11-22 17:25:40.058461900 -0500 |
| @@ -362,7 +362,7 @@ |
| TRACE("mpn_to_string", tout << "[mpn] to_string "; display_raw(tout, a, lng); tout << " == "; ); |
| |
| if (lng == 1) { |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| sprintf_s(buf, lbuf, "%u", *a); |
| #else |
| snprintf(buf, lbuf, "%u", *a); |
| diff -Naur z3-z3-4.8.3.orig/src/util/util.h z3-z3-4.8.3/src/util/util.h |
| --- z3-z3-4.8.3.orig/src/util/util.h 2018-11-22 17:05:12.260727400 -0500 |
| +++ z3-z3-4.8.3/src/util/util.h 2018-11-22 17:28:24.553951500 -0500 |
| @@ -46,7 +46,7 @@ |
| #define UINT64_MAX 0xffffffffffffffffull |
| #endif |
| |
| -#ifdef _WINDOWS |
| +#if defined(_MSC_VER) |
| #define SPRINTF_D(_buffer_, _i_) sprintf_s(_buffer_, Z3_ARRAYSIZE(_buffer_), "%d", _i_) |
| #define SPRINTF_U(_buffer_, _u_) sprintf_s(_buffer_, Z3_ARRAYSIZE(_buffer_), "%u", _u_) |
| #define _Exit exit |