spl: Split sprintf, strto* from SPL serial in Kconfig
authorAlex Kiernan <alex.kiernan@gmail.com>
Thu, 19 Apr 2018 04:32:54 +0000 (04:32 +0000)
committerTom Rini <trini@konsulko.com>
Sat, 28 Apr 2018 22:32:23 +0000 (18:32 -0400)
When SPL serial is disabled, callers who need sprintf or strtoul fail
because their inclusion is guarded by CONFIG_SPL_SERIAL_SUPPORT/
CONFIG_TPL_SERIAL_SUPPORT.

Split printf, sprintf and strto into their own entries and then select
all of them if SERIAL_SUPPORT is enabled to match the current behaviour.

Include panic.o unconditionally as it can be called from anywhere which
uses BUG_ON().

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
common/spl/Kconfig
lib/Kconfig
lib/Makefile

index c5d4b5e14bd158b7087a4ce610f6aaa4b37501eb..259f96607eab1920cf8dff6aa906ad78e5ec9bdf 100644 (file)
@@ -626,6 +626,8 @@ config SPL_SATA_SUPPORT
 
 config SPL_SERIAL_SUPPORT
        bool "Support serial"
+       select SPL_PRINTF
+       select SPL_STRTO
        help
          Enable support for serial in SPL. This allows use of a serial UART
          for displaying messages while SPL is running. It also brings in
@@ -927,6 +929,8 @@ config TPL_RAM_DEVICE
 
 config TPL_SERIAL_SUPPORT
        bool "Support serial"
+       select TPL_PRINTF
+       select TPL_STRTO
        help
          Enable support for serial in TPL. See SPL_SERIAL_SUPPORT for
          details.
index 436b90fa85cb8c9304b6c9439a5e22856f29c9e2..33fb06712f336d09b4d64f61f5d5c2ed364e0779 100644 (file)
@@ -27,6 +27,40 @@ config HAVE_PRIVATE_LIBGCC
 config LIB_UUID
        bool
 
+config PRINTF
+       bool
+       default y
+
+config SPL_PRINTF
+       bool
+       select SPL_SPRINTF
+       select SPL_STRTO if !USE_TINY_PRINTF
+
+config TPL_PRINTF
+       bool
+       select TPL_SPRINTF
+       select TPL_STRTO if !USE_TINY_PRINTF
+
+config SPRINTF
+       bool
+       default y
+
+config SPL_SPRINTF
+       bool
+
+config TPL_SPRINTF
+       bool
+
+config STRTO
+       bool
+       default y
+
+config SPL_STRTO
+       bool
+
+config TPL_STRTO
+       bool
+
 config USE_PRIVATE_LIBGCC
        bool "Use private libgcc"
        depends on HAVE_PRIVATE_LIBGCC
index 35da5705a4b3be8729973beb7d84b9d8033b2896..13be8f4cfc6ca2d55ad311bec831c76e897546a7 100644 (file)
@@ -88,22 +88,19 @@ obj-y += time.o
 obj-$(CONFIG_TRACE) += trace.o
 obj-$(CONFIG_LIB_UUID) += uuid.o
 obj-$(CONFIG_LIB_RAND) += rand.o
+obj-y += panic.o
 
-ifdef CONFIG_SPL_BUILD
-ifdef CONFIG_TPL_BUILD
-SERIAL_SUPPORT := $(CONFIG_TPL_SERIAL_SUPPORT)
-else
-SERIAL_SUPPORT := $(CONFIG_SPL_SERIAL_SUPPORT)
-endif
+ifeq ($(CONFIG_$(SPL_TPL_)BUILD),y)
 # SPL U-Boot may use full-printf, tiny-printf or none at all
 ifdef CONFIG_USE_TINY_PRINTF
-obj-$(SERIAL_SUPPORT) += tiny-printf.o panic.o strto.o
+obj-$(CONFIG_$(SPL_TPL_)SPRINTF) += tiny-printf.o
 else
-obj-$(SERIAL_SUPPORT) += vsprintf.o panic.o strto.o strmhz.o
+obj-$(CONFIG_$(SPL_TPL_)SPRINTF) += vsprintf.o strmhz.o
 endif
+obj-$(CONFIG_$(SPL_TPL_)STRTO) += strto.o
 else
 # Main U-Boot always uses the full printf support
-obj-y += vsprintf.o panic.o strto.o strmhz.o
+obj-y += vsprintf.o strto.o strmhz.o
 endif
 
 subdir-ccflags-$(CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED) += -O2