diff --git a/include/chibi/features.h b/include/chibi/features.h index ccd3319a..644c416e 100644 --- a/include/chibi/features.h +++ b/include/chibi/features.h @@ -835,7 +835,7 @@ #endif #ifndef SEXP_USE_IMAGE_LOADING -#define SEXP_USE_IMAGE_LOADING SEXP_USE_DL && !SEXP_USE_GLOBAL_HEAP && !SEXP_USE_BOEHM && !SEXP_USE_NO_FEATURES +#define SEXP_USE_IMAGE_LOADING SEXP_USE_DL && SEXP_64_BIT && !SEXP_USE_GLOBAL_HEAP && !SEXP_USE_BOEHM && !SEXP_USE_NO_FEATURES #endif #ifndef SEXP_USE_UNSAFE_PUSH diff --git a/main.c b/main.c index 154d5fd5..1374d45e 100644 --- a/main.c +++ b/main.c @@ -439,9 +439,9 @@ sexp run_main (int argc, char **argv) { } #endif break; -#if SEXP_USE_IMAGE_LOADING case 'i': arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); +#if SEXP_USE_IMAGE_LOADING if (ctx) { fprintf(stderr, "-i : image files must be loaded before other command-line options are specified: %s\n", arg); if (sexp_truep(sexp_global(ctx, SEXP_G_STRICT_P))) @@ -457,6 +457,7 @@ sexp run_main (int argc, char **argv) { env = sexp_load_standard_params(ctx, sexp_context_env(ctx), nonblocking); init_loaded++; } +#endif break; case 'd': if (! init_loaded++) { @@ -464,14 +465,15 @@ sexp run_main (int argc, char **argv) { env = sexp_load_standard_env(ctx, env, SEXP_SEVEN); } arg = ((argv[i][2] == '\0') ? argv[++i] : argv[i]+2); +#if SEXP_USE_IMAGE_LOADING if (sexp_save_image(ctx, arg) != SEXP_TRUE) { fprintf(stderr, "-d : couldn't save image to file: %s\n", arg); fprintf(stderr, " %s\n", sexp_load_image_err()); exit_failure(); } +#endif quit = 1; break; -#endif case 'V': load_init(1); if (! sexp_oportp(out))