Re: [PATCH 15/15] riscv: add binfmt_flat support

From: Vladimir Murzin
Date: Tue Jun 11 2019 - 04:21:16 EST


On 6/10/19 10:20 PM, Christoph Hellwig wrote:
> Use the generic support with arguments are on the stack. Same as arm
> and m68k.

Out of curiosity, what is reason for keeping arguments on the stack?

ARM port of uClibc has following comment around manipulating of argv/argc:

/*
* uClinux/arm stacks look a little different from normal
* MMU-full Linux/arm stacks (for no good reason)
*/

So I though it is kind of legacy.

Thanks
Vladimir

>
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> ---
> arch/riscv/Kconfig | 2 ++
> arch/riscv/include/asm/Kbuild | 1 +
> 2 files changed, 3 insertions(+)
>
> diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig
> index 0c4b12205632..2e3b60cdeef4 100644
> --- a/arch/riscv/Kconfig
> +++ b/arch/riscv/Kconfig
> @@ -17,7 +17,9 @@ config RISCV
> select OF
> select OF_EARLY_FLATTREE
> select OF_IRQ
> + select ARCH_HAS_BINFMT_FLAT
> select ARCH_WANT_FRAME_POINTERS
> + select BINFMT_FLAT_ARGVP_ENVP_ON_STACK
> select CLONE_BACKWARDS
> select COMMON_CLK
> select GENERIC_CLOCKEVENTS
> diff --git a/arch/riscv/include/asm/Kbuild b/arch/riscv/include/asm/Kbuild
> index 5ee646619cc3..1efaeddf1e4b 100644
> --- a/arch/riscv/include/asm/Kbuild
> +++ b/arch/riscv/include/asm/Kbuild
> @@ -5,6 +5,7 @@ generic-y += compat.h
> generic-y += device.h
> generic-y += div64.h
> generic-y += extable.h
> +generic-y += flat.h
> generic-y += dma.h
> generic-y += dma-contiguous.h
> generic-y += dma-mapping.h
>