On Wed, 20 Sep 2017, Nagaraju Mekala wrote: > > I've sent a glibc patch > > <https://sourceware.org/ml/libc-alpha/2017-09/msg00734.html>. I think the > >key questions for architecture experts now are: on each of those three > >architectures, do trampolines ever require executable stacks, and, if they > >do, how does this work at present when the kernel defaults to > >non-executable and my understanding at > ><https://sourceware.org/ml/libc-alpha/2017-09/msg00747.html> would be that > >glibc would only make thread stacks executable on those architectures, not > >the main process stacks, and GCC will never generate an explicit marker on > >those architectures to request an executable stack? > > Microblaze is a soft processor with many configuration options. If we > don't use the MMU, there is nothing preventing execution of code on the > stack in the MicroBlaze architecture. > With the MMU, you have the option to make any page, including the stack > pages, executable or not. > > It is recommended to prevent execution on the stack by defining those > pages as non-executable in the MMU. In particular, trampolines would > have to be possible to code without execution on the stack
No-MMU configurations are not relevant to a glibc change; the question is how things work for configurations using glibc, with the Linux kernel, with an MMU. In such a configuration, for MicroBlaze: (a) is the stack in fact executable, now; (b) if it is, what makes it so given the kernel default to non-executable (where does my reasoning about what the kernel and glibc do go wrong); (c) if it is not executable, do trampolines work anyway? -- Joseph S. Myers jos...@codesourcery.com