\\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 |