Fix Visual Studio build
authorMiodrag Milanovic <mmicko@gmail.com>
Wed, 2 Feb 2022 10:46:06 +0000 (11:46 +0100)
committerMiodrag Milanovic <mmicko@gmail.com>
Wed, 2 Feb 2022 10:46:06 +0000 (11:46 +0100)
Makefile
libs/fst/config.h
libs/fst/fst_win_unistd.h [deleted file]
libs/fst/fstapi.cc
libs/fst/fstapi.h
misc/create_vcxsrc.sh

index d1b05e0cf10d66e13f63a51e8fa0ed8902698705..e87b44657c48418767d64297dd984d4ac9502eed 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -599,7 +599,6 @@ $(eval $(call add_include_file,kernel/mem.h))
 $(eval $(call add_include_file,libs/ezsat/ezsat.h))
 $(eval $(call add_include_file,libs/ezsat/ezminisat.h))
 $(eval $(call add_include_file,libs/fst/fstapi.h))
-$(eval $(call add_include_file,libs/fst/fst_win_unistd.h))
 $(eval $(call add_include_file,libs/sha1/sha1.h))
 $(eval $(call add_include_file,libs/json11/json11.hpp))
 $(eval $(call add_include_file,passes/fsm/fsmdata.h))
index 7e66f24b70f97404bca34ffa627f17dcb0c827dd..0598fb8c5d57d65c5d3718da426d0cbfeaaa1e05 100644 (file)
@@ -19,6 +19,7 @@
 #undef HAVE_ALLOCA_H
 #undef HAVE_REALPATH
 #undef HAVE_LIBPTHREAD
+#undef HAVE_FSEEKO
 #endif
 
 # ifndef __STDC_FORMAT_MACROS
diff --git a/libs/fst/fst_win_unistd.h b/libs/fst/fst_win_unistd.h
deleted file mode 100644 (file)
index 09539e5..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (c) 2009-2018 Tony Bybell.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- * SPDX-License-Identifier: MIT
- */
-
-#ifndef WIN_UNISTD_H
-#define WIN_UNISTD_H
-
-#include <stdlib.h>
-#ifdef _WIN64
-#include <io.h>
-#else
-#include <sys/io.h>
-#endif
-
-#include <process.h>
-
-#define ftruncate _chsize_s
-#define unlink _unlink
-#define fileno _fileno
-#define lseek _lseeki64
-
-#ifdef _WIN64
-#define ssize_t __int64
-#define SSIZE_MAX 9223372036854775807i64
-#else
-#define ssize_t long
-#define SSIZE_MAX 2147483647L
-#endif
-
-#include "stdint.h"
-
-#endif // WIN_UNISTD_H
index 0b8f491465ad1f6023bfc8a9980272d027621d9d..b79470db3f00d39ae5e6294b25ce93f45e590679 100644 (file)
@@ -156,7 +156,7 @@ void **JenkinsIns(void *base_i, const unsigned char *mem, uint32_t length, uint3
 /***                 ***/
 /***********************/
 
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(_MSC_VER)
 #include <io.h>
 #ifndef HAVE_FSEEKO
 #define ftello _ftelli64
@@ -306,7 +306,7 @@ static char *fstRealpath(const char *path, char *resolved_path)
 /*
  * mmap compatibility
  */
-#if defined __CYGWIN__ || defined __MINGW32__
+#if defined __CYGWIN__ || defined __MINGW32__ || defined _MSC_VER
 #include <limits.h>
 #define fstMmap(__addr, __len, __prot, __flags, __fd, __off) fstMmap2((__len), (__fd), (__off))
 #define fstMunmap(__addr, __len) free(__addr)
@@ -912,7 +912,7 @@ static void fstWriterEmitHdrBytes(struct fstWriterContext *xc)
  */
 static void fstWriterMmapSanity(void *pnt, const char *file, int line, const char *usage)
 {
-#if !defined(__CYGWIN__) && !defined(__MINGW32__)
+#if !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(_MSC_VER)
     if (pnt == MAP_FAILED) {
         fprintf(stderr, "fstMmap() assigned to %s failed: errno: %d, file %s, line %d.\n", usage, errno, file, line);
         perror("Why");
index ca8e3008f86edf5c55d5a95fae7c42bc331f131e..a5e0971a16b6845f0fba42471b2970fbc1590051 100644 (file)
@@ -33,11 +33,29 @@ extern "C" {
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
-#include <zlib.h>
 #include <inttypes.h>
 #if defined(_MSC_VER)
-#include "fst_win_unistd.h"
+#include "libs/zlib/zlib.h"
+#include <io.h>
+
+#include <process.h>
+
+#define ftruncate _chsize_s
+#define unlink _unlink
+#define fileno _fileno
+#define lseek _lseeki64
+
+#ifdef _WIN64
+#define ssize_t __int64
+#define SSIZE_MAX 9223372036854775807i64
 #else
+#define ssize_t long
+#define SSIZE_MAX 2147483647L
+#endif
+
+#include "stdint.h"
+#else
+#include <zlib.h>
 #include <unistd.h>
 #endif
 #include <time.h>
index dc4ac13e0b9bbb528d53a56722c0f4656b4dbc35..e3c1ad991c35cd2e3145c221dde6985908865b9a 100644 (file)
@@ -7,11 +7,20 @@ gitsha="$3"
 
 rm -rf YosysVS-Tpl-v2.zip YosysVS
 wget https://yosyshq.net/yosys/nogit/YosysVS-Tpl-v2.zip
+wget https://zlib.net/zlib-1.2.11.tar.gz
 
 unzip YosysVS-Tpl-v2.zip
 rm -f YosysVS-Tpl-v2.zip
-mv YosysVS "$vcxsrc"
+tar xvfz zlib-1.2.11.tar.gz
 
+mv YosysVS "$vcxsrc"
+mkdir -p "$vcxsrc"/yosys
+mkdir -p "$vcxsrc"/yosys/libs/zlib
+mv zlib-1.2.11/* "$vcxsrc"/yosys/libs/zlib/.
+rm -rf zlib-1.2.11
+pushd "$vcxsrc"/yosys
+ls libs/zlib/*.c | sed 's,.*:,,; s,//*,/,g; s,/[^/]*/\.\./,/,g; y, \\,\n\n,;' | grep '^[^/]'  >> ../../srcfiles.txt
+popd
 {
        n=$(grep -B999 '<ItemGroup>' "$vcxsrc"/YosysVS/YosysVS.vcxproj | wc -l)
        head -n$n "$vcxsrc"/YosysVS/YosysVS.vcxproj