mirror of
https://github.com/YosysHQ/yosys
synced 2025-08-06 19:21:23 +00:00
Add WASI platform support.
This includes the following significant changes: * Patching ezsat and minisat to disable resource limiting code on WASM/WASI, since the POSIX functions they use are unavailable. * Adding a new definition, YOSYS_DISABLE_SPAWN, present if platform does not support spawning subprocesses (i.e. Emscripten or WASI). This definition hides the definition of `run_command()`. * Adding a new Makefile flag, DISABLE_SPAWN, present in the same condition. This flag disables all passes that require spawning subprocesses for their function.
This commit is contained in:
parent
bc380b0b56
commit
b43c282e4e
17 changed files with 167 additions and 30 deletions
|
@ -29,11 +29,12 @@
|
|||
|
||||
#include <limits.h>
|
||||
#include <stdint.h>
|
||||
#include <csignal>
|
||||
#include <cinttypes>
|
||||
|
||||
#ifndef _WIN32
|
||||
#if !defined(_WIN32) && !defined(__wasm)
|
||||
# include <csignal>
|
||||
# include <unistd.h>
|
||||
# define HAS_ALARM
|
||||
#endif
|
||||
|
||||
#include "../minisat/Solver.h"
|
||||
|
@ -84,7 +85,7 @@ bool ezMiniSAT::eliminated(int idx)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32
|
||||
#if defined(HAS_ALARM)
|
||||
ezMiniSAT *ezMiniSAT::alarmHandlerThis = NULL;
|
||||
clock_t ezMiniSAT::alarmHandlerTimeout = 0;
|
||||
|
||||
|
@ -183,7 +184,7 @@ contradiction:
|
|||
#endif
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
#if defined(HAS_ALARM)
|
||||
struct sigaction sig_action;
|
||||
struct sigaction old_sig_action;
|
||||
int old_alarm_timeout = 0;
|
||||
|
@ -202,7 +203,7 @@ contradiction:
|
|||
|
||||
bool foundSolution = minisatSolver->solve(assumps);
|
||||
|
||||
#ifndef _WIN32
|
||||
#if defined(HAS_ALARM)
|
||||
if (solverTimeout > 0) {
|
||||
if (alarmHandlerTimeout == 0)
|
||||
solverTimoutStatus = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue