3
0
Fork 0
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:
whitequark 2019-11-11 09:23:06 +00:00
parent bc380b0b56
commit b43c282e4e
17 changed files with 167 additions and 30 deletions

View file

@ -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;