From 4a30c9cb9418869b34da3f304c7e3cc72a0ffe62 Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Wed, 2 Feb 2022 11:46:06 +0100 Subject: [PATCH] Fix Visual Studio build --- Makefile | 1 - libs/fst/config.h | 1 + libs/fst/fst_win_unistd.h | 52 --------------------------------------- libs/fst/fstapi.cc | 6 ++--- libs/fst/fstapi.h | 22 +++++++++++++++-- misc/create_vcxsrc.sh | 11 ++++++++- 6 files changed, 34 insertions(+), 59 deletions(-) delete mode 100644 libs/fst/fst_win_unistd.h diff --git a/Makefile b/Makefile index d1b05e0cf..e87b44657 100644 --- 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)) diff --git a/libs/fst/config.h b/libs/fst/config.h index 7e66f24b7..0598fb8c5 100644 --- a/libs/fst/config.h +++ b/libs/fst/config.h @@ -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 index 09539e53c..000000000 --- a/libs/fst/fst_win_unistd.h +++ /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 -#ifdef _WIN64 -#include -#else -#include -#endif - -#include - -#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 diff --git a/libs/fst/fstapi.cc b/libs/fst/fstapi.cc index 0b8f49146..b79470db3 100644 --- a/libs/fst/fstapi.cc +++ b/libs/fst/fstapi.cc @@ -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 #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 #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"); diff --git a/libs/fst/fstapi.h b/libs/fst/fstapi.h index ca8e3008f..a5e0971a1 100644 --- a/libs/fst/fstapi.h +++ b/libs/fst/fstapi.h @@ -33,11 +33,29 @@ extern "C" { #include #include #include -#include #include #if defined(_MSC_VER) -#include "fst_win_unistd.h" +#include "libs/zlib/zlib.h" +#include + +#include + +#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 #include #endif #include diff --git a/misc/create_vcxsrc.sh b/misc/create_vcxsrc.sh index dc4ac13e0..e3c1ad991 100644 --- a/misc/create_vcxsrc.sh +++ b/misc/create_vcxsrc.sh @@ -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 '' "$vcxsrc"/YosysVS/YosysVS.vcxproj | wc -l) head -n$n "$vcxsrc"/YosysVS/YosysVS.vcxproj