Re: [PATCH] alpha: Fix stack alignment in makecontext
Adhemerval Zanella Netto <[email protected]> Mon, 3 Aug 2026 13:00:00 -0300
| Newsgroups | gmane.comp.lib.glibc.alpha |
|---|---|
| Organization | Linaro |
| Message-ID | <[email protected]> |
On 03/08/26 12:51, Magnus Lindholm wrote: > The Alpha ABI requires the stack pointer to be 16-byte aligned. > However, __makecontext did not realign it after reserving space for > arguments. Depending on uc_stack.ss_size, this could leave the stack > only 8-byte aligned. > > Round the new stack pointer down to a 16-byte boundary after reserving > the argument area. > > This fixes stdlib/tst-makecontext2. > > Signed-off-by: Magnus Lindholm <[email protected]> LGTM, thanks. Reviewed-by: Adhemerval Zanella <[email protected]> > --- > sysdeps/unix/sysv/linux/alpha/makecontext.S | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/sysdeps/unix/sysv/linux/alpha/makecontext.S b/sysdeps/unix/sysv/linux/alpha/makecontext.S > index b0479315d5..1de0dd2653 100644 > --- a/sysdeps/unix/sysv/linux/alpha/makecontext.S > +++ b/sysdeps/unix/sysv/linux/alpha/makecontext.S > @@ -38,6 +38,9 @@ ENTRY(__makecontext) > s8addq $1, 0, $2 > subq $8, $2, $8 > > + /* The Alpha ABI requires a 16-byte-aligned stack pointer. */ > + bic $8, 15, $8 > + > /* Copy all parameters. Switch statement header here. */ > ldah $3, $jumptable($29) !gprelhigh > cmple $18, 6, $1