2 ms·
The default build (make MODE=) has logging enabled (so do the release binaries). If any system calls are missing, then Blink will return ENOSYS to the program a
by jart 3y ago
The default build (make MODE=) has logging enabled (so do the release binaries). If any system calls are missing, then Blink will return ENOSYS to the program and then create a "blink.log" file in the current directory reporting that, e.g.
master jart@nightmare:~/cosmo$ blink ruby --yjit -e 'printf("%d\n",2+2)'
<main>: warning: timer_create failed: Function not implemented, signals racy
4
master jart@nightmare:~/cosmo$ cat blink.log
I2023-06-05T04:22:15.525179:blink/syscall.c:1020:29575 unsupported prctl op 0x29
I2023-06-05T04:22:15.556803:blink/syscall.c:5720:29575 missing syscall 0x122
I2023-06-05T04:22:15.556866:blink/syscall.c:5720:29575 missing syscall 0x122
I2023-06-05T04:22:15.556886:blink/syscall.c:5720:29575 missing syscall 0x0de
You can also use `blink -es program...` to log system calls to stderr, similar to strace, when you need to troubleshoot further. Once you do that, please file a feature request.
- sspiff 3y agoIs there a list of unsupported syscalls and instructions, and how to add support for them for people interested in contributing?
- jart 3y agoHere are the missing system calls that people filed issues requesting: https://github.com/jart/blink/issues?q=is%3Aissue+is%3Aopen+label%3Asyscalls https://github.com/jart/blink/issues?q=is%3Aissue+is%3Aopen+... The place where they go is https://github.com/jart/blink/blob/master/blink/syscall.c https://github.com/jart/blink/blob/master/blink/syscall.c Looking forward to any changes you send us!