mirror of https://github.com/YosysHQ/abc.git
Merge pull request #477 from YosysHQ/wasi_upstream
MINGW and WASI compile fixes (from YosysHQ fork)
This commit is contained in:
commit
5fd7c57407
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@
|
|||
#define mkstemp(p) _mktemp_s(p, strlen(p)+1)
|
||||
#else
|
||||
#include <unistd.h> // mkstemp(), close(), unlink()
|
||||
#include <fcntl.h>
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
|
|
@ -333,8 +335,14 @@ static int ends_with(const char *s, const char *suf) {
|
|||
|
||||
static int make_tmp_file(char *path, size_t cap, const char *prefix) {
|
||||
// Creates an existing temp file (for input)
|
||||
#if defined(__wasm)
|
||||
static int seq = 0; // no risk of collision since we're in a sandbox
|
||||
snprintf(path, cap, "%s%08d", prefix, seq++);
|
||||
int fd = open(path, O_CREAT | O_EXCL | O_RDWR, S_IREAD | S_IWRITE);
|
||||
#else
|
||||
snprintf(path, cap, "/tmp/%sXXXXXX", prefix);
|
||||
int fd = mkstemp(path);
|
||||
#endif
|
||||
if (fd < 0) return 0;
|
||||
close(fd);
|
||||
return 1;
|
||||
|
|
@ -342,8 +350,14 @@ static int make_tmp_file(char *path, size_t cap, const char *prefix) {
|
|||
|
||||
static int make_tmp_path_noexist(char *path, size_t cap, const char *prefix) {
|
||||
// Creates a unique temp path that does not exist (for output)
|
||||
#if defined(__wasm)
|
||||
static int seq = 0; // no risk of collision since we're in a sandbox
|
||||
snprintf(path, cap, "%s%08d", prefix, seq++);
|
||||
int fd = open(path, O_CREAT | O_EXCL | O_RDWR, S_IREAD | S_IWRITE);
|
||||
#else
|
||||
snprintf(path, cap, "/tmp/%sXXXXXX", prefix);
|
||||
int fd = mkstemp(path);
|
||||
#endif
|
||||
if (fd < 0) return 0;
|
||||
close(fd);
|
||||
unlink(path);
|
||||
|
|
@ -612,7 +626,11 @@ static int SimulateCompareAigBin(const AigMan *p1, const char *bin,
|
|||
// Run external binary: "<bin> <inFile> <outFile>"
|
||||
remove(outFile);
|
||||
snprintf(cmd, sizeof(cmd), "%s %s %s", bin, inFile, outFile);
|
||||
#if defined(__wasm)
|
||||
int rc = -1;
|
||||
#else
|
||||
int rc = system(cmd);
|
||||
#endif
|
||||
if (rc != 0) {
|
||||
fprintf(stderr, "Error: system() failed (rc=%d): %s\n", rc, cmd);
|
||||
goto fail;
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include <windows.h>
|
||||
#include <time.h>
|
||||
// nanosleep implementation for Windows
|
||||
|
|
@ -41,7 +41,7 @@ static inline int nanosleep(const struct timespec *req, struct timespec *rem) {
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -16,8 +16,6 @@
|
|||
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
#include <sys/wait.h>
|
||||
#endif
|
||||
|
||||
#include <base/wlc/wlc.h>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
|
||||
#include "misc/util/abc_namespaces.h"
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
@ -188,6 +188,10 @@ class PDRWLA : public Solver {
|
|||
Wlc_Par_t _Pars;
|
||||
};
|
||||
|
||||
#if defined(__wasm)
|
||||
static void pthread_exit(void *retval) __attribute__((noreturn)) { }
|
||||
#endif
|
||||
|
||||
void KillOthers() {
|
||||
pthread_cond_signal( &g_cond );
|
||||
++g_nRunIds;
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@
|
|||
#include <windows.h>
|
||||
#else
|
||||
#include <unistd.h>
|
||||
#include <sys/wait.h>
|
||||
#endif
|
||||
#include <fstream>
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
*/
|
||||
|
||||
#include <iomanip>
|
||||
#if !defined(__wasm)
|
||||
#include <csignal>
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#include <windows.h>
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include <windows.h>
|
||||
#include <time.h>
|
||||
#include "../lib/pthread.h"
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
#ifdef ABC_USE_PTHREADS
|
||||
|
||||
#ifdef _WIN32
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
#include "../lib/pthread.h"
|
||||
#else
|
||||
#include <pthread.h>
|
||||
|
|
|
|||
Loading…
Reference in New Issue