mirror of
https://github.com/DoneJS-Runtime/quickjs-done-nextgen.git
synced 2025-01-09 17:43:15 +00:00
Work around broken atomics in tinycc (#669)
This commit is contained in:
parent
c41ee4f15f
commit
487129055f
3 changed files with 15 additions and 3 deletions
|
@ -62,7 +62,10 @@
|
||||||
#define NO_TM_GMTOFF
|
#define NO_TM_GMTOFF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(EMSCRIPTEN) && !defined(__wasi__) && !__STDC_NO_ATOMICS__
|
// atomic_store etc. are completely busted in recent versions of tcc;
|
||||||
|
// somehow the compiler forgets to load |ptr| into %rdi when calling
|
||||||
|
// the __atomic_*() helpers in its lib/stdatomic.c and lib/atomic.S
|
||||||
|
#if !defined(__TINYC__) && !defined(EMSCRIPTEN) && !defined(__wasi__) && !__STDC_NO_ATOMICS__
|
||||||
#include "quickjs-c-atomics.h"
|
#include "quickjs-c-atomics.h"
|
||||||
#define CONFIG_ATOMICS
|
#define CONFIG_ATOMICS
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -50,6 +50,14 @@ typedef pthread_t js_thread_t;
|
||||||
|
|
||||||
#define CMD_NAME "run-test262"
|
#define CMD_NAME "run-test262"
|
||||||
|
|
||||||
|
// not quite correct because in theory someone could compile quickjs.c
|
||||||
|
// with a different compiler but in practice no one does that, right?
|
||||||
|
#ifdef __TINYC__
|
||||||
|
#define CC_IS_TCC 1
|
||||||
|
#else
|
||||||
|
#define CC_IS_TCC 0
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
js_mutex_t agent_mutex;
|
js_mutex_t agent_mutex;
|
||||||
js_cond_t agent_cond;
|
js_cond_t agent_cond;
|
||||||
|
@ -1219,7 +1227,7 @@ void load_config(const char *filename, const char *ignore)
|
||||||
namelist_add(&exclude_list, base_name, p);
|
namelist_add(&exclude_list, base_name, p);
|
||||||
break;
|
break;
|
||||||
case SECTION_FEATURES:
|
case SECTION_FEATURES:
|
||||||
if (!q || str_equal(q, "yes"))
|
if (!q || str_equal(q, "yes") || (!CC_IS_TCC && str_equal(q, "!tcc")))
|
||||||
str_append(&harness_features, " ", p);
|
str_append(&harness_features, " ", p);
|
||||||
else
|
else
|
||||||
str_append(&harness_skip_features, " ", p);
|
str_append(&harness_skip_features, " ", p);
|
||||||
|
|
|
@ -62,7 +62,8 @@ arraybuffer-transfer
|
||||||
arrow-function
|
arrow-function
|
||||||
async-functions
|
async-functions
|
||||||
async-iteration
|
async-iteration
|
||||||
Atomics
|
# atomics are broken in recent versions of tcc
|
||||||
|
Atomics=!tcc
|
||||||
Atomics.pause=skip
|
Atomics.pause=skip
|
||||||
Atomics.waitAsync=skip
|
Atomics.waitAsync=skip
|
||||||
BigInt
|
BigInt
|
||||||
|
|
Loading…
Reference in a new issue