diff --git a/Makefile b/Makefile index 0533d81c4..f8d8badc4 100644 --- a/Makefile +++ b/Makefile @@ -176,7 +176,7 @@ ifeq ($(OS), Haiku) CXXFLAGS += -D_DEFAULT_SOURCE endif -YOSYS_VER := 0.53+26 +YOSYS_VER := 0.53+39 YOSYS_MAJOR := $(shell echo $(YOSYS_VER) | cut -d'.' -f1) YOSYS_MINOR := $(shell echo $(YOSYS_VER) | cut -d'.' -f2) YOSYS_COMMIT := $(shell echo $(YOSYS_VER) | cut -d'.' -f3) diff --git a/kernel/io.cc b/kernel/io.cc index d5d2994b2..d7d126c4c 100644 --- a/kernel/io.cc +++ b/kernel/io.cc @@ -251,7 +251,15 @@ bool check_is_directory(const std::string& dirname) { #if defined(_WIN32) struct _stat info; - if (_stat(dirname.c_str(), &info) != 0) + auto dirname_ = dirname; + + /* On old versions of Visual Studio and current versions on MinGW, + _stat will fail if the path ends with a trailing slash. */ + if (dirname.back() == '/' || dirname.back() == '\\') { + dirname_ = dirname.substr(0, dirname.length() - 1); + } + + if (_stat(dirname_.c_str(), &info) != 0) { return false; }