Skip to content

Commit

Permalink
Fix emscripten compilation errors
Browse files Browse the repository at this point in the history
  • Loading branch information
adrians committed Feb 28, 2021
1 parent 46bf471 commit 8aa24a5
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 5 deletions.
14 changes: 14 additions & 0 deletions racket/src/bc/sconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -806,6 +806,20 @@

#endif

/************** Emscripten ****************/

#if defined(__EMSCRIPTEN__)

# define SCHEME_OS "emscripten"
# define SCHEME_ARCH "emscripten"

# include "uconfig.h"

# define FLAGS_ALREADY_SET

#endif


/************** (END KNOWN ARCHITECTURE/SYSTEMS) ****************/

#ifndef SCHEME_PLATFORM_LIBRARY_SUBPATH
Expand Down
2 changes: 2 additions & 0 deletions racket/src/bc/src/env.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,9 @@ static void init_startup_env(void)
builtin_unsafe_start = builtin_ref_counter;
scheme_init_unsafe_linklet(env);
init_unsafe(env);
#ifndef DONT_USE_FOREIGN
init_foreign(env);
#endif

#if USE_COMPILED_STARTUP
if (builtin_ref_counter != EXPECTED_PRIM_COUNT) {
Expand Down
2 changes: 2 additions & 0 deletions racket/src/bc/src/port.c
Original file line number Diff line number Diff line change
Expand Up @@ -6780,7 +6780,9 @@ static void block_timer_signals(int block)
if (sigismember(&sigs, SIGPROF)) {
sigprocmask(SIG_SETMASK, NULL, &sigs);
sigdelset(&sigs, SIGPROF);
#ifndef __EMSCRIPTEN__
sigsuspend(&sigs);
#endif
sigemptyset(&sigs);
} else
break;
Expand Down
4 changes: 4 additions & 0 deletions racket/src/bc/src/struct.c
Original file line number Diff line number Diff line change
Expand Up @@ -1750,10 +1750,14 @@ static Scheme_Object *check_output_port_property_value_ok(int argc, Scheme_Objec

static Scheme_Object *check_cpointer_property_value_ok(int argc, Scheme_Object *argv[])
{
#ifndef __EMSCRIPTEN__
return check_indirect_property_value_ok("guard-for-prop:cpointer",
scheme_is_cpointer, 1,
"(or/c cpointer? (any/c . -> . any) exact-nonnegative-integer?)",
argc, argv);
#else
return scheme_true;
#endif
}

/*========================================================================*/
Expand Down
12 changes: 7 additions & 5 deletions racket/src/bc/src/thread.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ extern int scheme_jit_malloced;
# define scheme_jit_malloced 0
#endif

#ifdef DONT_USE_FOREIGN
# define scheme_extract_pointer(x) NULL
#endif

SHARED_OK int scheme_init_load_on_demand = 1;

/*========================================================================*/
Expand Down Expand Up @@ -2858,9 +2862,11 @@ static Scheme_Object *unsafe_register_process_global(int argc, Scheme_Object *ar

if (!SCHEME_BYTE_STRINGP(argv[0]))
scheme_wrong_contract("unsafe-register-process-global", "bytes?", 0, argc, argv);
#ifndef __EMSCRIPTEN__
if (!scheme_is_cpointer(argv[1]))
scheme_wrong_contract("unsafe-register-process-global", "cpointer?", 1, argc, argv);

#endif

val = scheme_register_process_global(SCHEME_BYTE_STR_VAL(argv[0]),
scheme_extract_pointer(argv[1]));

Expand Down Expand Up @@ -8936,10 +8942,6 @@ typedef void (mzOSAPI *gccb_OSapi_Ptr_Ptr_to_Void)(void*, void*);
typedef void (mzOSAPI *gccb_OSapi_Ptr_Four_Ints_Ptr_Int_Int_Long_to_Void)(void*, int, int, int, int,
void*, int, int, long);

#ifdef DONT_USE_FOREIGN
# define scheme_extract_pointer(x) NULL
#endif

static void run_gc_callbacks(int pre)
XFORM_SKIP_PROC
{
Expand Down
2 changes: 2 additions & 0 deletions racket/src/rktio/rktio_process.c
Original file line number Diff line number Diff line change
Expand Up @@ -1665,7 +1665,9 @@ int rktio_close_fds_len()
# elif defined(__ANDROID__)
i = sysconf(_SC_OPEN_MAX);
# else
# ifndef __EMSCRIPTEN__
i = getdtablesize();
# endif
# endif

return i;
Expand Down

0 comments on commit 8aa24a5

Please sign in to comment.