Brian Foster wrote:
> 2) Kevin D. Kissell wrote:
> 2)[ ... ]
> 2) > Well, strictly speaking, you wouldn't actually *need* to modify
> 2) > binutils to make specially tagged binaries. [ ... ]
> 2) This exists already in ld's -z execstack/noexecstack feature.
> Good point. Thanks for the reminder.
> 2) It is not used by default because too many things depend on executable
> 2) stacks on MIPS.
> Ah! Can you be more specific please? At the present time
> I'm only aware of three situations where executable stacks
> are magically used ("magic" meaning it's being done without
> the programmer explicitly coding it):
> 1. sigreturn.
> 2. something to do with FPU emulation?
> 3. pointer to a nested function (gcc extension).
Those, plus manually coded trampolines in e.g. foreign function
interfacing (which are typically hidden in some library). I don't
know if you can ignore that completely. :-)
> And, significantly, I am do not know of any need for the
> kernel-mode stacks to be executable. Except, perhaps,
> for case 3, the above are (should be?) user-land only.
AFAIK nested functions are frowned upon in kernelspace.