Note that 2001/bellard only works for i386 linux

The author stated this directly. It is noted in the bugs.md file and the
README.

I also included a suggested change by Yusuke Endoh. This is not
necessary for compilers that support -Wl,-z,execstack but not all
compilers do (though the only one I've found that has this problem is
macOS which it won't work under anyway just like -m32 won't which we
also now use).

Added the 'more portable' version by the author. This does not compile
at least under 64-bit linux (not macOS either though of course it
wouldn't work in macOS as if you look at the code you see hardcoded
paths for linux ld-linux.so).

I note that there's a de-obfuscated version on the author's page for the
entry which might give some clues. I might look at it in the future but
it appears that unless someone can provide a 64-bit linux version this
will be one of the entries (now far fewer with many fixes made) that
simply no longer work.

This thus completes for now 2001/bellard even with disappointing
circumstances.
This commit is contained in:
Cody Boone Ferguson committed 2023-04-22 09:11:15 -07:00
1 parent 82ac1237fa
commit 0d0c2c4250
6 files changed
+680 -19

No files matched your search

+3 -1
View File
@@ -1,6 +1,8 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <sys/mman.h>
#define k *(int*)
#define a if(
#define c ad()
@@ -8,7 +10,7 @@
#define p while(
#define x *(char*)
#define b ==
#define V =calloc(1,99999)
#define V =mmap(NULL, 99999, PROT_EXEC | PROT_WRITE | PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0)
#define f ()
#define J return
#define l ae(