n64dev / cen64

Cycle-Accurate Nintendo 64 Emulator
BSD 3-Clause "New" or "Revised" License
803 stars 70 forks source link

Cen64 & MUSL LIBC #106

Open johnny-mac opened 6 years ago

johnny-mac commented 6 years ago

Hello, I would like to package this app for Void Linux x86_64-MUSL, I've got the program installing, but it segmentation faults whenever I try to start the game... I have tried numerous PIF files, but have had no success as of yet. I am currently working on installing cen64 on a non-MUSL distro to see whether its the PIF files, or if its something else causing it to fail.

iamgreaser commented 5 years ago

I have glibc Void x86_64 and I need a patch to get this working. Try this and see if it works.

diff --git a/os/posix/alloc.c b/os/posix/alloc.c
index e8c6b3d..02a08c8 100644
--- a/os/posix/alloc.c
+++ b/os/posix/alloc.c
@@ -24,14 +24,15 @@ static int zero_page_fd = -1;
 void *cen64_alloc(struct cen64_mem *m, size_t size, bool exec) {
   int flags = MAP_PRIVATE;

-  if (exec)
-    flags |= PROT_EXEC;
+  //if (exec)
+  //  flags |= PROT_EXEC;

   // Use MAP_ANON on OSX because it really does not
   // enjoy trying to mmap from device files...
 #ifdef __APPLE__
   flags |= MAP_ANON;
 #endif
+  flags |= MAP_ANON;