[PATCH] sandbox: Eliminate CONFIG_HOST_32/64BIT

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Fri Oct 14 08:40:52 CEST 2022


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
 
 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