diff options
author | ludwig <ludwig@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-01-06 19:11:05 +0000 |
---|---|---|
committer | ludwig <ludwig@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2006-01-06 19:11:05 +0000 |
commit | f9b41461c03b30c9e4fe8d20606a7c22bfed0ec1 (patch) | |
tree | 2681e7825421db8b0dc242d983ca7f5aadad692b | |
parent | a70247b144224d6b9e0a8c8e2cda15dd628c3ef7 (diff) | |
download | ioquake3-aero-f9b41461c03b30c9e4fe8d20606a7c22bfed0ec1.tar.gz ioquake3-aero-f9b41461c03b30c9e4fe8d20606a7c22bfed0ec1.zip |
make memory for generated opcodes executable so the program works with
enabled NX feature.
git-svn-id: svn://svn.icculus.org/quake3/trunk@466 edf5b092-35ff-0310-97b2-ce42778d08ea
-rw-r--r-- | code/qcommon/vm_x86_64.c | 5 | ||||
-rw-r--r-- | code/unix/Makefile | 7 |
2 files changed, 2 insertions, 10 deletions
diff --git a/code/qcommon/vm_x86_64.c b/code/qcommon/vm_x86_64.c index f90b7ff..2111f4e 100644 --- a/code/qcommon/vm_x86_64.c +++ b/code/qcommon/vm_x86_64.c @@ -385,12 +385,11 @@ static int doas(char* in, char* out, unsigned char** compiledcode) if((*compiledcode = (unsigned char*)buf)) { -#ifdef VM_X86_64_STANDALONE // no idea why - if(mprotect(buf, allocsize, PROT_READ|PROT_EXEC) == -1) + // need to be able to exec code + if(mprotect(buf, allocsize, PROT_READ|PROT_WRITE|PROT_EXEC) == -1) { Com_Error(ERR_FATAL, "mprotect failed on %p+%x: %s\n", buf, allocsize, strerror(errno)); } -#endif return size; } diff --git a/code/unix/Makefile b/code/unix/Makefile index d196661..4c4a42d 100644 --- a/code/unix/Makefile +++ b/code/unix/Makefile @@ -870,13 +870,6 @@ ifeq ($(ARCH),x86) endif ifeq ($(ARCH),x86_64) Q3OBJ += $(B)/client/vm_x86_64.o - - #FIXME: why do these need to be here? - Q3OBJ += \ - $(B)/client/snd_mixa.o \ - $(B)/client/matha.o \ - $(B)/client/ftola.o \ - $(B)/client/snapvectora.o endif ifeq ($(ARCH),ppc) |