On Tuesday, 31 July 2012 at 17:23:08 UTC, Maxime Chevalier wrote:
New to the D language here. I'm working on a tracing JIT
compiler and will need to allocate chunks of memory that are
marked as executable.
Is there a standard way of doing this in D, or do I need to
directly call into mprotect? If I'm going to be calling
mprotect, what's the cleanest way to do that, do I need to
declare my own prototype for the function and its flags, or
should I write some C code that does the call?
The x86 chip it's a simple flag that the OS can set. For use
with like UPX, the whole section is marked read, write & execute
I believe (since it has to expand it first before it can execute
the code; That is of course for loaded memory, not
allocating...). I would say check their sources, may prove
interesting.