I discovered the problems why the program I'm trying to port crashed
Sun Feb 19 16:56:15 GMT 2023
Quoted from https://cygwin.com/pipermail/cygwin-cvs/2020q3/014516.html:
"The file mapping will be only a single page, 4K, and since 64 bit systems don't support the AT_ROUND_TO_PAGE flag, the remainder of the 64K slot will result in a SEGV when accessed."
"The justification is that there's very likely no application actually utilizing the map beyond EOF, and we know that all bytes beyond EOF are set to 0 anyway."
Unfortunately, the application I'm trying to port do exactly that. If you set JIT_PAGE_SIZE to 64k (same as PAGE_SIZE) to satisfy mprotect then it will expect the whole 64k to be accessible. On other systems, no problems. On Cygwin, crashed with segmentation fault. I was right. Not the application's bug, but Cygwin's quirk (I called it as a quirk but not a bug, because it's a limitation of the platform).
Goodbye. It's better to use WSL directly than messing with Cygwin nowadays.
Sent with Proton Mail secure email.
More information about the Cygwin