diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2022-02-02 11:46:06 +0100 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2022-02-02 11:46:06 +0100 |
commit | 4a30c9cb9418869b34da3f304c7e3cc72a0ffe62 (patch) | |
tree | 1256c1664d379ba8045eb297553089dd81e2cc62 | |
parent | 990aee5531f41fdf01887870047eb924f12618b9 (diff) | |
download | yosys-4a30c9cb9418869b34da3f304c7e3cc72a0ffe62.tar.gz yosys-4a30c9cb9418869b34da3f304c7e3cc72a0ffe62.tar.bz2 yosys-4a30c9cb9418869b34da3f304c7e3cc72a0ffe62.zip |
Fix Visual Studio build
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | libs/fst/config.h | 1 | ||||
-rw-r--r-- | libs/fst/fst_win_unistd.h | 52 | ||||
-rw-r--r-- | libs/fst/fstapi.cc | 6 | ||||
-rw-r--r-- | libs/fst/fstapi.h | 22 | ||||
-rw-r--r-- | misc/create_vcxsrc.sh | 11 |
6 files changed, 34 insertions, 59 deletions
@@ -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 <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 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 <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"); 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 <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> 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 '<ItemGroup>' "$vcxsrc"/YosysVS/YosysVS.vcxproj | wc -l) head -n$n "$vcxsrc"/YosysVS/YosysVS.vcxproj |