With recent changes over the last few years in boot/Kconfig it is
no-longer possible to disable CMDLINE. It results in various link
errors because some options which require CMDLINE are enabled
regardless of whether it is available.

Add the necessary conditions to fix this.

Note that it would be better to have all commands depend on CMDLINE,
but that is extremely difficult at present, since some functions use
CMD_xxx to enable feature xxx. For example networking and environment
have a number of problems to tease apart.

Signed-off-by: Simon Glass <s...@chromium.org>
---

Changes in v3:
- Reword commit message slightly

 boot/Kconfig           | 19 ++++++++++++-------
 lib/efi_loader/Kconfig |  1 +
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/boot/Kconfig b/boot/Kconfig
index a01e6cb8aafe..f74ac7e9cc72 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -342,6 +342,7 @@ endif # FIT
 
 config PXE_UTILS
        bool
+       depends on CMDLINE
        select MENU
        help
          Utilities for parsing PXE file formats.
@@ -357,7 +358,7 @@ config BOOT_DEFAULTS
        select CMD_PART if PARTITIONS
        select CMD_DHCP if CMD_NET
        select CMD_PING if CMD_NET
-       select CMD_PXE if CMD_NET
+       select CMD_PXE if CMDLINE && CMD_NET
        select SUPPORT_RAW_INITRD
        select ENV_VARS_UBOOT_CONFIG
        select CMD_BOOTI if ARM64
@@ -461,6 +462,7 @@ config BOOTMETH_GLOBAL
 
 config BOOTMETH_CROS
        bool "Bootdev support for Chromium OS"
+       depends on CMDLINE
        depends on X86 || ARM || SANDBOX
        default y if !ARM
        select EFI_PARTITION
@@ -475,6 +477,7 @@ config BOOTMETH_CROS
 
 config BOOTMETH_EXTLINUX
        bool "Bootdev support for extlinux boot"
+       depends on CMDLINE
        select PXE_UTILS
        default y
        help
@@ -490,7 +493,7 @@ config BOOTMETH_EXTLINUX
 
 config BOOTMETH_EXTLINUX_PXE
        bool "Bootdev support for extlinux boot over network"
-       depends on CMD_PXE && CMD_NET && DM_ETH
+       depends on CMDLINE && CMD_PXE && CMD_NET && DM_ETH
        default y
        help
          Enables support for extlinux boot using bootdevs. This makes the
@@ -504,7 +507,7 @@ config BOOTMETH_EXTLINUX_PXE
 
 config BOOTMETH_EFILOADER
        bool "Bootdev support for EFI boot"
-       depends on EFI_LOADER
+       depends on EFI_LOADER && CMDLINE
        default y
        help
          Enables support for EFI boot using bootdevs. This makes the
@@ -536,10 +539,10 @@ config BOOTMETH_VBE
 
 config BOOTMETH_DISTRO
        bool  # Options needed to boot any distro
-       select BOOTMETH_SCRIPT  # E.g. Armbian uses scripts
-       select BOOTMETH_EXTLINUX  # E.g. Debian uses these
-       select BOOTMETH_EXTLINUX_PXE if CMD_PXE && CMD_NET && DM_ETH
-       select BOOTMETH_EFILOADER if EFI_LOADER # E.g. Ubuntu uses this
+       select BOOTMETH_SCRIPT if CMDLINE # E.g. Armbian uses scripts
+       select BOOTMETH_EXTLINUX if CMDLINE # E.g. Debian uses these
+       select BOOTMETH_EXTLINUX_PXE if CMDLINE && CMD_PXE && CMD_NET && DM_ETH
+       select BOOTMETH_EFILOADER if CMDLINE && EFI_LOADER # E.g. Ubuntu uses 
this
 
 config SPL_BOOTMETH_VBE
        bool "Bootdev support for Verified Boot for Embedded (SPL)"
@@ -663,6 +666,7 @@ config BOOTMETH_SANDBOX
 
 config BOOTMETH_SCRIPT
        bool "Bootdev support for U-Boot scripts"
+       depends on CMDLINE
        default y if BOOTSTD_FULL
        select HUSH_PARSER
        help
@@ -777,6 +781,7 @@ endmenu             # Boot images
 
 config DISTRO_DEFAULTS
        bool "(deprecated) Script-based booting of Linux distributions"
+       depends on CMDLINE
        select BOOT_DEFAULTS
        select AUTO_COMPLETE
        select CMDLINE_EDITING
diff --git a/lib/efi_loader/Kconfig b/lib/efi_loader/Kconfig
index d20aaab6dba4..621ed5e5b0fb 100644
--- a/lib/efi_loader/Kconfig
+++ b/lib/efi_loader/Kconfig
@@ -34,6 +34,7 @@ if EFI_LOADER
 
 config CMD_BOOTEFI_BOOTMGR
        bool "UEFI Boot Manager"
+       depends on CMDLINE
        default y
        select BOOTMETH_GLOBAL if BOOTSTD
        help
-- 
2.42.0.655.g421f12c284-goog

Reply via email to