[PATCH] sandbox: Eliminate CONFIG_HOST_32/64BIT

Michal Suchánek msuchanek at suse.de
Fri Oct 14 10:33:13 CEST 2022


Hello,

On Fri, Oct 14, 2022 at 08:40:52AM +0200, Heinrich Schuchardt wrote:
> From: Heinrich Schuchardt <xypron.glpk at gmx.de>
> 
> Building sandbox_defconfig on 32bit systems requires manual configuration.
> we should void this.
> 
> The compiler provides symbol __LP64__. This is enough to know if the host
> is a 64bit or a 32bit system.
> 
> Reported-by: Michal Suchanek <msuchanek at suse.de>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>  arch/sandbox/Kconfig                   | 24 ------------------------
>  arch/sandbox/include/asm/posix_types.h |  8 +++++++-
>  drivers/misc/swap_case.c               |  2 +-
>  include/linux/bitops.h                 |  2 +-
>  4 files changed, 9 insertions(+), 27 deletions(-)
> 
> diff --git a/arch/sandbox/Kconfig b/arch/sandbox/Kconfig
> index 852a7c8bf2..c7668233b9 100644
> --- a/arch/sandbox/Kconfig
> +++ b/arch/sandbox/Kconfig
> @@ -13,7 +13,6 @@ config SYS_CPU
>  config SANDBOX64
>  	bool "Use 64-bit addresses"
>  	select PHYS_64BIT
> -	select HOST_64BIT

eliminating the Kconfig option makes it no longer possible SANDBOX64
depend on building 64bit.

Thanks

Michal
>  
>  config SANDBOX_RAM_SIZE_MB
>  	int "RAM size in MiB"
> @@ -41,24 +40,6 @@ config SYS_CONFIG_NAME
>  	default "sandbox_spl" if SANDBOX_SPL
>  	default "sandbox" if !SANDBOX_SPL
>  
> -choice
> -	prompt "Run sandbox on 32/64-bit host"
> -	default HOST_64BIT
> -	help
> -	  Sandbox can be built on 32-bit and 64-bit hosts.
> -	  The default is to build on a 64-bit host and run
> -	  on a 64-bit host. If you want to run sandbox on
> -	  a 32-bit host, change it here.
> -
> -config HOST_32BIT
> -	bool "32-bit host"
> -	depends on !PHYS_64BIT
> -
> -config HOST_64BIT
> -	bool "64-bit host"
> -
> -endchoice
> -
>  config SANDBOX_CRASH_RESET
>  	bool "Reset on crash"
>  	help
> @@ -68,11 +49,6 @@ config SANDBOX_CRASH_RESET
>  	  test suites like the UEFI self certification test which continue
>  	  with the next test after a crash.
>  
> -config SANDBOX_BITS_PER_LONG
> -	int
> -	default 32 if HOST_32BIT
> -	default 64 if HOST_64BIT
> -
>  config SYS_FDT_LOAD_ADDR
>  	hex "Address at which to load devicetree"
>  	default 0x100
> diff --git a/arch/sandbox/include/asm/posix_types.h b/arch/sandbox/include/asm/posix_types.h
> index ec18ed7e3c..0129e91122 100644
> --- a/arch/sandbox/include/asm/posix_types.h
> +++ b/arch/sandbox/include/asm/posix_types.h
> @@ -19,6 +19,12 @@
>   * assume GCC is being used.
>   */
>  
> +#ifdef __LP64__
> +#define SANDBOX_BITS_PER_LONG 64
> +#else
> +#define SANDBOX_BITS_PER_LONG 32
> +#endif
> +
>  typedef unsigned short		__kernel_dev_t;
>  typedef unsigned long		__kernel_ino_t;
>  typedef unsigned short		__kernel_mode_t;
> @@ -28,7 +34,7 @@ typedef int			__kernel_pid_t;
>  typedef unsigned short		__kernel_ipc_pid_t;
>  typedef unsigned short		__kernel_uid_t;
>  typedef unsigned short		__kernel_gid_t;
> -#if CONFIG_SANDBOX_BITS_PER_LONG == 32
> +#if SANDBOX_BITS_PER_LONG == 32
>  typedef unsigned int		__kernel_size_t;
>  typedef int			__kernel_ssize_t;
>  typedef int			__kernel_ptrdiff_t;
> diff --git a/drivers/misc/swap_case.c b/drivers/misc/swap_case.c
> index 7093ad1cd4..205ed81750 100644
> --- a/drivers/misc/swap_case.c
> +++ b/drivers/misc/swap_case.c
> @@ -331,7 +331,7 @@ static int sandbox_swap_case_map_physmem(struct udevice *dev,
>  			*ptrp = &pci_ea_bar2_magic;
>  			*lenp = PCI_CAP_EA_SIZE_LO;
>  			break;
> -#ifdef CONFIG_HOST_64BIT
> +#ifdef __LP64__
>  		/*
>  		 * This cannot be work on a 32-bit machine since *lenp is ulong
>  		 * which is 32-bits, but it needs to have a 64-bit value
> diff --git a/include/linux/bitops.h b/include/linux/bitops.h
> index d2e5ca026e..6456f5ad45 100644
> --- a/include/linux/bitops.h
> +++ b/include/linux/bitops.h
> @@ -28,7 +28,7 @@
>   */
>  #ifdef CONFIG_SANDBOX
>  #define GENMASK(h, l) \
> -	(((~0UL) << (l)) & (~0UL >> (CONFIG_SANDBOX_BITS_PER_LONG - 1 - (h))))
> +	(((~0UL) << (l)) & (~0UL >> (SANDBOX_BITS_PER_LONG - 1 - (h))))
>  #else
>  #define GENMASK(h, l) \
>  	(((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
> -- 
> 2.37.2
> 


More information about the U-Boot mailing list