Re: [PATCH] libgloss: riscv: Fix envp parameter for main

Corinna Vinschen <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
On Apr 11 14:57, Bernd Edlinger wrote:
> The envp paramter is currently NULL when crt0.S calls main.
> With this patch the envp parameter should now be set correctly.
> Tested with riscv32 and riscv64: both gdb/sim and qemu do work.
> ---
>  libgloss/riscv/crt0.S | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libgloss/riscv/crt0.S b/libgloss/riscv/crt0.S
> index f1c5419a5..54443e412 100644
> --- a/libgloss/riscv/crt0.S
> +++ b/libgloss/riscv/crt0.S
> @@ -61,7 +61,9 @@ _start:
>  
>    lw      a0, 0(sp)                  # a0 = argc
>    addi    a1, sp, __SIZEOF_POINTER__ # a1 = argv
> -  li      a2, 0                      # a2 = envp = NULL
> +  slli    a2, a0, 1 + __SIZEOF_POINTER__ >> 2
> +  addi    a2, a2, __SIZEOF_POINTER__
> +  add     a2, a2, a1                 # a2 = envp
>    call    main
>    tail    exit
>    .size  _start, .-_start
> -- 
> 2.25.1

Pushed.

Thanks,
Corinna
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.