3 ms·
>What does that even mean? I know nothing about Ada but there is a feature called called 'executable bit' in pretty much all desktop processors since 1-2 decad
by Kenji 10y ago
>What does that even mean?
I know nothing about Ada but there is a feature called called 'executable bit' in pretty much all desktop processors since 1-2 decades. What this bit does is it marks certain regions of memory as not executable, i.e. you're not allowed to put the instruction pointer onto that region and let the CPU run the instructions. This is a hardware-level feature and can be disabled in BIOS/UEFI. Usually the stack is marked as not executable as a security feature, so buffer overruns can't just write code on the stack and then it is executed.
Why Ada needed this disabled is beyond me. Does it execute things on the stack?
- dom0 10y agoAs usual, no-execute bits in the page table is something that trickles down. I think in x86 land AMD introduced it with AMD64. The RISCies (Sparc, Power, Alpha, hppa) had this earlier.
- xyz6633 10y ago>Why Ada needed this disabled is beyond me. Does it execute things on the stack? I believe this is due to nested function support. There is some explanation here: https://stackoverflow.com/questions/34982151/executable-ada-code-on-the-stack https://stackoverflow.com/questions/34982151/executable-ada-...