diff options
author | whitequark <whitequark@whitequark.org> | 2020-05-01 21:28:20 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-01 21:28:20 +0000 |
commit | bbde2419420a86635baf2b730ebe58ed6edca5bb (patch) | |
tree | 0dbd707b90ba392f540e63fe41d2179b3b97440d /passes/techmap/abc.cc | |
parent | 667f38fe533c9f6676b5944d801a5fb33938ef8b (diff) | |
parent | b43c282e4e0de53b9323a5d8d85b07bc73324a17 (diff) | |
download | yosys-bbde2419420a86635baf2b730ebe58ed6edca5bb.tar.gz yosys-bbde2419420a86635baf2b730ebe58ed6edca5bb.tar.bz2 yosys-bbde2419420a86635baf2b730ebe58ed6edca5bb.zip |
Merge pull request #2001 from whitequark/wasi
Add WASI platform support
Diffstat (limited to 'passes/techmap/abc.cc')
-rw-r--r-- | passes/techmap/abc.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/passes/techmap/abc.cc b/passes/techmap/abc.cc index aff0baa44..fae8b2426 100644 --- a/passes/techmap/abc.cc +++ b/passes/techmap/abc.cc @@ -771,7 +771,10 @@ void abc_module(RTLIL::Design *design, RTLIL::Module *current_module, std::strin if (abc_script[i] == ';' && abc_script[i+1] == ' ') abc_script[i+1] = '\n'; - FILE *f = fopen(stringf("%s/abc.script", tempdir_name.c_str()).c_str(), "wt"); + std::string buffer = stringf("%s/abc.script", tempdir_name.c_str()); + FILE *f = fopen(buffer.c_str(), "wt"); + if (f == nullptr) + log_error("Opening %s for writing failed: %s\n", buffer.c_str(), strerror(errno)); fprintf(f, "%s\n", abc_script.c_str()); fclose(f); @@ -807,7 +810,7 @@ void abc_module(RTLIL::Design *design, RTLIL::Module *current_module, std::strin handle_loops(); - std::string buffer = stringf("%s/input.blif", tempdir_name.c_str()); + buffer = stringf("%s/input.blif", tempdir_name.c_str()); f = fopen(buffer.c_str(), "wt"); if (f == nullptr) log_error("Opening %s for writing failed: %s\n", buffer.c_str(), strerror(errno)); @@ -1541,11 +1544,15 @@ struct AbcPass : public Pass { size_t argidx, g_argidx; bool g_arg_from_cmd = false; +#if defined(__wasm) + const char *pwd = "."; +#else char pwd [PATH_MAX]; if (!getcwd(pwd, sizeof(pwd))) { log_cmd_error("getcwd failed: %s\n", strerror(errno)); log_abort(); } +#endif for (argidx = 1; argidx < args.size(); argidx++) { std::string arg = args[argidx]; if (arg == "-exe" && argidx+1 < args.size()) { |