On 01/05/2018 12:41 PM, Mark Wielaard wrote:
On Thu, Jan 04, 2018 at 09:36:27PM -0800, John Reiser wrote:
- The explicit write by the stack probe can mask a memcheck(valgrind) violation, at least until memcheck groks the probe.
That should not be true. The probe is done after the stack pointer is lowered, so memcheck/valgrind knows that memory is used. If the probe is done below the actual stack pointer that would be a bug in the gcc -fstack-protector implementation. Please do report such issues when you encounter them. There were indeed such bugs in the past on some architectures (especially in combination with no-return functions), but I believe they have all been fixed now.
The generic -fstack-clash-protection in GCC has this problem, which is why we can't use it and have to disable it on architectures where there is no support, which currently includes armhfp. (For aarch64, we still carry our own patch, and may have to continue doing that even after switching to GCC 8.)
Thanks, Florian