diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-03-27 15:04:10 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-03-27 15:04:10 +0200 |
commit | 0acea3548b54a2acf6f3b554e6878f884a4414fe (patch) | |
tree | 91cb9d352bccaf8996a28b5dbdf5f2d583bb7ed3 /kernel | |
parent | 5e49ee5c2d52d504334a6cbbf7d9e0250e00a515 (diff) | |
download | yosys-0acea3548b54a2acf6f3b554e6878f884a4414fe.tar.gz yosys-0acea3548b54a2acf6f3b554e6878f884a4414fe.tar.bz2 yosys-0acea3548b54a2acf6f3b554e6878f884a4414fe.zip |
Set stack size to at least 128 MB (large stack needed for parsing huge expressions)
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/driver.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/driver.cc b/kernel/driver.cc index 97a78cd16..3c16e5fd4 100644 --- a/kernel/driver.cc +++ b/kernel/driver.cc @@ -35,6 +35,7 @@ #include <errno.h> #ifdef __linux__ +# include <sys/resource.h> # include <sys/types.h> # include <unistd.h> #endif @@ -416,6 +417,18 @@ int main(int argc, char **argv) if (print_stats) log_hasher = new SHA1; +#if defined(__linux__) + // set stack size to >= 128 MB + { + struct rlimit rl; + const rlim_t stack_size = 128L * 1024L * 1024L; + if (getrlimit(RLIMIT_STACK, &rl) == 0 && rl.rlim_cur < stack_size) { + rl.rlim_cur = stack_size; + setrlimit(RLIMIT_STACK, &rl); + } + } +#endif + yosys_setup(); log_error_atexit = yosys_atexit; |