|
From: Michael A. <ya...@ya...> - 2019-08-29 23:15:02
|
> After upgrading to macOS Mojave (Darwin 18.x?) my statethreads based programs crash. Yeah, as of Mojave setjmp scrambles addresses it stores in the jmp_buf. ST changes values in jmp_bufs in order to run different threads. When longjmp descrambles those addresses, they become garbage. Here's a related thread: <https://reviews.llvm.org/D51064>. ST has its own implementation of setjmp/longjmp for some systems to work around similar issues. See _st_md_cxt_save/_st_md_cxt_restore in md.h and md.S. Maybe those could be used or adapted for Mojave? There might be other issues though, such as, does modern macOS really still allow arbitrary allocated memory to be used as a stack? We would welcome a patch that makes ST work on Mojave. |