nptl: Fix cleanups for stack grows up [BZ# 28899]

_STACK_GROWS_DOWN is defined to 0 when the stack grows up.  The
code in unwind.c used `#ifdef _STACK_GROWS_DOWN' to selct the
stack grows down define for FRAME_LEFT.  As a result, the
_STACK_GROWS_DOWN define was always selected and cleanups were
incorrectly sequenced when the stack grows up.

(cherry picked from commit 2bbc694df2)
This commit is contained in:
John David Anglin 2022-02-28 15:47:38 +00:00
parent f610d2935f
commit 40fc6a74ee

View File

@ -27,7 +27,7 @@
#include <jmpbuf-unwind.h> #include <jmpbuf-unwind.h>
#include <shlib-compat.h> #include <shlib-compat.h>
#ifdef _STACK_GROWS_DOWN #if _STACK_GROWS_DOWN
# define FRAME_LEFT(frame, other, adj) \ # define FRAME_LEFT(frame, other, adj) \
((uintptr_t) frame - adj >= (uintptr_t) other - adj) ((uintptr_t) frame - adj >= (uintptr_t) other - adj)
#elif _STACK_GROWS_UP #elif _STACK_GROWS_UP