
On Sat, Oct 15, 2022 at 06:54:02AM +0200, Heinrich Schuchardt wrote:
On 10/14/22 22:52, Michal Suchanek wrote:
Currently sandbox configuration defautls to 64bit and there is no automation for building 32bit sandbox on 32bit hosts.
Use _LP64 macro as heuristic for detecting 64bit targets.
Signed-off-by: Michal Suchanek msuchanek@suse.de
Please, explain why you think a Kconfig level patch is preferable to what I proposed in
[PATCH] sandbox: Eliminate CONFIG_HOST_32/64BIT https://lists.denx.de/pipermail/u-boot/2022-October/497236.html
The existing dependency canot be described when the option is eliminated:
config SANDBOX64 bool "Use 64-bit addresses" select PHYS_64BIT
select HOST_64BIT
depends on HOST_64BIT
If we can run SANDBOX64 on 32bit eliminating the option is fine.
Thanks
Michal
Changes in v2: simplify and move detection to kconfig
arch/sandbox/Kconfig | 18 +++--------------- scripts/Kconfig.include | 4 ++++ 2 files changed, 7 insertions(+), 15 deletions(-)
diff --git a/arch/sandbox/Kconfig b/arch/sandbox/Kconfig index 852a7c8bf2..35508c6b29 100644 --- a/arch/sandbox/Kconfig +++ b/arch/sandbox/Kconfig @@ -13,7 +13,7 @@ config SYS_CPU config SANDBOX64 bool "Use 64-bit addresses" select PHYS_64BIT
- select HOST_64BIT
depends on HOST_64BIT
config SANDBOX_RAM_SIZE_MB int "RAM size in MiB"
@@ -41,23 +41,11 @@ 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
def_bool ! $(cc-define,_LP64)
config HOST_64BIT
- bool "64-bit host"
-endchoice
def_bool $(cc-define,_LP64)
config SANDBOX_CRASH_RESET bool "Reset on crash"
diff --git a/scripts/Kconfig.include b/scripts/Kconfig.include index dad5583451..b7598ca5d9 100644 --- a/scripts/Kconfig.include +++ b/scripts/Kconfig.include
This include is copied from Linux. From time to time we synchronize the Kconfig framework from Linux. So we should avoid U-Boot specific changes here.
Best regards
Heinrich
@@ -22,6 +22,10 @@ success = $(if-success,$(1),y,n) # Return y if the compiler supports <flag>, n otherwise cc-option = $(success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null)
+# $(cc-define,<macro>) +# Return y if the compiler defines <macro>, n otherwise +cc-define = $(success,$(CC) -dM -E -x c /dev/null | grep -q '^#define <$(1)>')
- # $(ld-option,<flag>) # Return y if the linker supports <flag>, n otherwise ld-option = $(success,$(LD) -v $(1))