2017-07-15 John David Anglin <danglin@gcc.gnu.org>
+ * nptl/allocatestack.c (allocate_stack): Align old and new guard
+ addresses to page boundaries when the stack grows up.
+
* sysdeps/hppa/math-tests.h: New.
2017-07-14 DJ Delorie <dj@redhat.com>
prot) != 0)
goto mprot_error;
#elif _STACK_GROWS_UP
- if (__mprotect ((char *) pd - pd->guardsize,
- pd->guardsize - guardsize, prot) != 0)
+ char *new_guard = (char *)(((uintptr_t) pd - guardsize)
+ & ~pagesize_m1);
+ char *old_guard = (char *)(((uintptr_t) pd - pd->guardsize)
+ & ~pagesize_m1);
+ /* The guard size difference might be > 0, but once rounded
+ to the nearest page the size difference might be zero. */
+ if (new_guard > old_guard
+ && mprotect (old_guard, new_guard - old_guard, prot) != 0)
goto mprot_error;
#endif