[PATCH] alpha: Fix stack alignment in makecontext
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Mon Aug 3 16:00:00 GMT 2026
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 <linmag7@gmail.com>
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
> ---
> 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
More information about the Libc-alpha
mailing list