mborjesson / PCem-wx-SDL2

Unofficial version of PCem that uses wxWidgets/SDL2
GNU General Public License v2.0
13 stars 5 forks source link

mprotect error on 64 bit builds (Catalina Compatibility?) #9

Open L-Delorme opened 4 years ago

L-Delorme commented 4 years ago

Hi I've spent a couple hours today trying to troubleshoot this and I finally found a fix. The error was in the codegen_init function, more specifically in the memory allocation part. The block size was too small, resulting in the following check if (mprotect(start, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0) to be true. This issue had already been fixed in the 32bit file (codegen_x86.c) but apparently the changes weren't ported to the 64bit one?

Oddly enough, when I built (and ran) PCem64 on my High Sierra machine, I didn't encounter this issue even though (as the name suggests), this was indeed a 64bit build. Perhaps it somehow used the 32bit codegen file? And of course, this can't possibly be done on Catalina...

Now the Config Manager works... but PCem still crashes when you start the emulated machine... I'm working on that.

Anyway... tl;dr: Download the new codegen_x86-64.c below, replace the old one (located in /src), and build!

@mborjesson Could you please update the codegen_x86-64.c file in your repo?

codegen_x86-64.c.zip

mborjesson commented 4 years ago

Hi!

Thanks for your contribution! Unfortunately this repository is no longer maintained since it has been merged in to the official repository. I'd recommend you check out the official source at https://pcem-emulator.co.uk/ and send in a patch-file through the forums if the same issue exists there :)