diff options
author | Clifford Wolf <clifford@clifford.at> | 2014-03-11 14:24:24 +0100 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2014-03-11 14:24:24 +0100 |
commit | 91704a78531bec2e3eea3ddf90eaedb28e1d696d (patch) | |
tree | a3817eb12cebb9e9adc0f2375eda59ddb2d9004a /frontends | |
parent | 9992026a8d4482abd8fbae8cb246a87cbbbde364 (diff) | |
download | yosys-91704a78531bec2e3eea3ddf90eaedb28e1d696d.tar.gz yosys-91704a78531bec2e3eea3ddf90eaedb28e1d696d.tar.bz2 yosys-91704a78531bec2e3eea3ddf90eaedb28e1d696d.zip |
Merged a few fixes for non-posix systems from github.com/Siesh1oo/yosys
(see https://github.com/cliffordwolf/yosys/pull/28)
Diffstat (limited to 'frontends')
-rw-r--r-- | frontends/vhdl2verilog/vhdl2verilog.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/frontends/vhdl2verilog/vhdl2verilog.cc b/frontends/vhdl2verilog/vhdl2verilog.cc index 0467810e5..83035d329 100644 --- a/frontends/vhdl2verilog/vhdl2verilog.cc +++ b/frontends/vhdl2verilog/vhdl2verilog.cc @@ -26,6 +26,8 @@ #include <stdio.h> #include <string.h> #include <dirent.h> +#include <errno.h> +#include <limits.h> struct Vhdl2verilogPass : public Pass { Vhdl2verilogPass() : Pass("vhdl2verilog", "importing VHDL designs using vhdl2verilog") { } @@ -93,9 +95,12 @@ struct Vhdl2verilogPass : public Pass { log_error("For some reason mkdtemp() failed!\n"); if (!out_file.empty() && out_file[0] != '/') { - char *pwd = get_current_dir_name(); + char pwd [PATH_MAX]; + if (!getcwd(pwd, sizeof(pwd))) { + log_cmd_error("getcwd failed: %s", strerror(errno)); + log_abort(); + } out_file = pwd + ("/" + out_file); - free(pwd); } FILE *f = fopen(stringf("%s/files.list", tempdir_name).c_str(), "wt"); @@ -104,9 +109,12 @@ struct Vhdl2verilogPass : public Pass { if (file.empty()) continue; if (file[0] != '/') { - char *pwd = get_current_dir_name(); + char pwd [PATH_MAX]; + if (!getcwd(pwd, sizeof(pwd))) { + log_cmd_error("getcwd failed: %s", strerror(errno)); + log_abort(); + } file = pwd + ("/" + file); - free(pwd); } fprintf(f, "%s\n", file.c_str()); log("Adding '%s' to the file list.\n", file.c_str()); |