You can still use mmap/equivalent to allocate executable memory and package unsafe to use it; the difference is that the memory allocated normally by the runtime won't be executable.
What sarcasm? Well, if I could mmap it, that would be fine, although it would mean that I'd have to manage the memory for the machine code fragments by hand, as opposed to having them as part of GCd values.
Or I missed the sarcasm.