|
|
last edited 10 years ago by test1 |
1 2 | ||
Editor: test1
Time: 2014/04/23 19:20:51 GMT+0 |
||
Note: |
added:
From test1 Wed Apr 23 19:20:51 +0000 2014
From: test1
Date: Wed, 23 Apr 2014 19:20:51 +0000
Subject:
Message-ID: <20140423192051+0000@axiom-wiki.newsynthesis.org>
Status: open => closed
\\Greetings! \\ \\FC3 has made brk() added pages non-executable by default. You need \\this at the end of h/386-linux.h: \\ \\#ifdef IN_SFASL \\#include <sys/mman.h> \\#define CLEAR_CACHE {\ \\ void *p,*pe; \ \\ p=(void *)((unsigned long)memory->cfd.cfd_start & ~(PAGESIZE-1)); \ \\ pe=(void *)((unsigned long)(memory->cfd.cfd_start+memory->cfd.cfd_size) & ~(PAGESIZE-1)) + PAGESIZE-1; \ \\ if (mprotect(p,pe-p,PROT_READ|PROT_WRITE|PROT_EXEC)) {\ \\ fprintf(stderr,"%p %p\n",p,pe);\ \\ perror("");\ \\ FEerror("Cannot mprotect", 0);\ \\ }\ \\} \\#endif \\ \\Not sure what the overhead of this is on each load, but we might just \\make it the Linux default across the board for simplicity. \\Alternatively, would either need a runtime or compile time test to \\detect when its needed. I'll place this on the errata page for \\inclusion in any possible 2.6.6, and do something easy in CVS head for \\now. \\ ------------------------------------------------------------ ... --test1, Wed, 23 Apr 2014 19:20:51 +0000 Status: open => closed