Use fallback to avoid using PROT_WRITE | PROT_EXEC mappings.

Index: src/codegen/codegen_x86.c
--- src/codegen/codegen_x86.c.orig
+++ src/codegen/codegen_x86.c
@@ -1196,7 +1196,7 @@ codegen_init(void)
 {
 #    ifdef _WIN32
     codeblock = VirtualAlloc(NULL, (BLOCK_SIZE + 1) * sizeof(codeblock_t), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
-#    elif defined __unix__
+#    elif defined __unix__ && !defined __OpenBSD__
     codeblock = mmap(NULL, (BLOCK_SIZE + 1) * sizeof(codeblock_t), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_ANON | MAP_PRIVATE, 0, 0);
 #    else
     codeblock = malloc((BLOCK_SIZE + 1) * sizeof(codeblock_t));
