mirror of
https://github.com/YosysHQ/yosys
synced 2025-07-30 16:03:17 +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
34
libs/minisat/00_PATCH_wasm.patch
Normal file
34
libs/minisat/00_PATCH_wasm.patch
Normal file
|
@ -0,0 +1,34 @@
|
|||
--- System.cc
|
||||
+++ System.cc
|
||||
@@ -101,7 +101,7 @@ double Minisat::memUsedPeak(bool) { return 0; }
|
||||
#endif
|
||||
|
||||
|
||||
-#if !defined(_MSC_VER) && !defined(__MINGW32__)
|
||||
+#if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__wasm)
|
||||
void Minisat::limitMemory(uint64_t max_mem_mb)
|
||||
{
|
||||
// FIXME: OpenBSD does not support RLIMIT_AS. Not sure how well RLIMIT_DATA works instead.
|
||||
@@ -133,7 +133,7 @@ void Minisat::limitMemory(uint64_t /*max_mem_mb*/)
|
||||
#endif
|
||||
|
||||
|
||||
-#if !defined(_MSC_VER) && !defined(__MINGW32__)
|
||||
+#if !defined(_MSC_VER) && !defined(__MINGW32__) && !defined(__wasm)
|
||||
void Minisat::limitTime(uint32_t max_cpu_time)
|
||||
{
|
||||
if (max_cpu_time != 0){
|
||||
@@ -156,9 +156,13 @@ void Minisat::limitTime(uint32_t /*max_cpu_time*/)
|
||||
|
||||
void Minisat::sigTerm(void handler(int))
|
||||
{
|
||||
+#if defined(__wasm)
|
||||
+ (void)handler;
|
||||
+#else
|
||||
signal(SIGINT, handler);
|
||||
signal(SIGTERM,handler);
|
||||
#ifdef SIGXCPU
|
||||
signal(SIGXCPU,handler);
|
||||
#endif
|
||||
+#endif
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue