8 ms·
No, you can of course allocate W+X pages from the OS and put multiple closures in them using a standard userspace memory allocator. Or if the OS doesn't suppor
by devit 7y ago
No, you can of course allocate W+X pages from the OS and put multiple closures in them using a standard userspace memory allocator.
Or if the OS doesn't support W+X allocation at all, then you can have a bunch of tightly packed pregenerated trampolines in the binary.
- saagarjha 7y agoRight, this is how Objective-C's implementation works, except it keeps around one page of trampolines and remaps that around when necessary to be able to "create" more trampolines on the fly, I believe.