Kevin D. Kissell wrote: [snip] >> Broadly, what I'm trying to say is I don't want to touch gcc >> (and/or binutils) and am unconvinced I have to. But I'm very >> much open to correction here! >> >> The x86 (including amd64) and, AFAIK, SuperH (sh) Linux kernels >> now support NX or equivalent; indeed, a test on my 2.6.22(-ish) >> amd64 workstation (Kubuntu 7.10) has a non-executable stack. >> As such, those could be a model worth studying/following, but >> I understand they have support for specially-marked binaries to >> have executable stacks (i.e., binutils/gcc mods, which I want to >> avoid). > Well, strictly speaking, you wouldn't actually *need* to modify binutils > to make specially tagged binaries. You could borrow an unused bit in > the ELF header somewhere, have the kernel recognize it, and write your > own little tool that only turns that bit on/off in an ELF file. This exists already in ld's -z execstack/noexecstack feature. It is not used by default because too many things depend on executable stacks on MIPS. Thiemo