#189·blink

StartJit fails with EPERM on OpenBSD 7.6

Author: bjia56Created Apr 28, 2025Updated May 10, 2025

Building and running 98f95e8383d1032eb4d2dc6aae937b23539e915e on OpenBSD 7.6 with default configuration produces the following:

openbsd# o/blink/blink third_party/cosmo/tinyhello.elf     
assertion failed
blink/path.c:531:47547 assertion failed: (jb = StartJit(&s->jit, 0)) (EPERM)
         PC 400078 push $1 6a 01 5f 48 8d 35 11 00
         AX 0000000000000000  CX 0000000000000000  DX 000001263067bfe0  BX 0000000000000000
         SP 000001263067b4c0  BP 0000000000000000  SI 0000000000000000  DI 0000000000000000
         R8 0000000000000000  R9 0000000000000000 R10 0000000000000000 R11 0000000000000000
        R12 0000000000000000 R13 0000000000000000 R14 0000000000000000 R15 0000000000000000
         FS 0000000000000000  GS 0000000000000000 OPS 1                FLG ......
        third_party/cosmo/tinyhello.elf
        000000000000 000000400078 UNKNOWN
        <blink backtrace unavailable>
instructions_decoded             = 1
interps                          = 3
tlb_hits                         = 58
tlb_misses                       = 3
tlb_resets                       = 2
icache_resets                    = 1
jit_page_resets                  = 2
jit_callocs                      = 130
jit_frees                        = 1
smc_checks                       = 1
smc_flushes                      = 1
smc_enqueued                     = 1
smc_segfaults                    = 1
Abort trap (core dumped) 

while disabling JIT:

openbsd# o/blink/blink -j third_party/cosmo/tinyhello.elf  
hello world