[PATCH] ARC: align child stack in clone

Adhemerval Zanella Netto adhemerval.zanella at linaro.org
Mon Jan 16 06:08:43 PST 2023



On 21/12/22 13:19, Pavel.Kozlov--- via Libc-alpha wrote:
> From: Pavel Kozlov <pavel.kozlov at synopsys.com>
> 
> The ARCv2 ABI requires 4 byte stack pointer alignment. Don't allow to
> use unaligned child stack in clone. As the stack grows down,
> align it down.
> 
> This was pointed by misc/tst-misalign-clone-internal and
> misc/tst-misalign-clone tests. Stack alignmet fixes these tests
> fails.

LGTM, although I can't really test it since the Synopsys qemu tree does not
have qemu-user support [1].

Reviewed-by: Adhemerval Zanella  <adhemerval.zanella at linaro.org>

[1] https://github.com/foss-for-synopsys-dwc-arc-processors/qemu

> ---
>  sysdeps/unix/sysv/linux/arc/clone.S | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/sysdeps/unix/sysv/linux/arc/clone.S b/sysdeps/unix/sysv/linux/arc/clone.S
> index bd924890844a..f32c83f17a65 100644
> --- a/sysdeps/unix/sysv/linux/arc/clone.S
> +++ b/sysdeps/unix/sysv/linux/arc/clone.S
> @@ -41,6 +41,7 @@
>  
>  ENTRY (__clone)
>  	cmp	r0, 0		/* @fn can't be NULL.  */
> +	and	r1,r1,-4	/* @child_stack be 4 bytes aligned per ABI.  */
>  	cmp.ne	r1, 0		/* @child_stack can't be NULL.  */
>  	bz	L (__sys_err)
>  



More information about the linux-snps-arc mailing list