From c05d0a6fa540607cfe77a360c906fd89852b93e3 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 19 Dec 2020 10:48:20 -0700 Subject: [PATCH] Chez Scheme: repair to support vfasl boot in Rosetta When Rosetta 2 runs x86_64 code, it doesn't enforce W^X, but the `read` system call still refuses to write into executable memory. --- racket/src/ChezScheme/c/version.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/racket/src/ChezScheme/c/version.h b/racket/src/ChezScheme/c/version.h index c484a61c62..4783f468a4 100644 --- a/racket/src/ChezScheme/c/version.h +++ b/racket/src/ChezScheme/c/version.h @@ -329,6 +329,9 @@ typedef int tputsputcchar; # define S_ENABLE_CODE_WRITE(on) pthread_jit_write_protect_np(!(on)) # define CANNOT_READ_DIRECTLY_INTO_CODE # include +#elif defined(__x86_64__) +/* needed to run under Rosetta2 on ARM Mac OS: */ +# define CANNOT_READ_DIRECTLY_INTO_CODE #endif #define LDEXP #define ARCHYPERBOLIC