[U-Boot] [PATCH v2 6/8] spl: Disable printf if not required
Alex Kiernan
alex.kiernan at gmail.com
Thu Apr 19 04:32:55 UTC 2018
Now we have a guard for printf, disable it in the build if it's not
selected.
Signed-off-by: Alex Kiernan <alex.kiernan at gmail.com>
---
Changes in v2:
- Remove ifdef dance with SPL/TPL now PRINTF exists as its own symbol
lib/panic.c | 2 ++
lib/tiny-printf.c | 12 +++++++-----
lib/vsprintf.c | 3 ++-
3 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/lib/panic.c b/lib/panic.c
index e2b8b74..0efa134 100644
--- a/lib/panic.c
+++ b/lib/panic.c
@@ -37,9 +37,11 @@ void panic_str(const char *str)
void panic(const char *fmt, ...)
{
+#if CONFIG_IS_ENABLED(PRINTF)
va_list args;
va_start(args, fmt);
vprintf(fmt, args);
va_end(args);
+#endif
panic_finish();
}
diff --git a/lib/tiny-printf.c b/lib/tiny-printf.c
index 0b04813..e29377e 100644
--- a/lib/tiny-printf.c
+++ b/lib/tiny-printf.c
@@ -23,11 +23,6 @@ struct printf_info {
void (*putc)(struct printf_info *info, char ch);
};
-static void putc_normal(struct printf_info *info, char ch)
-{
- putc(ch);
-}
-
static void out(struct printf_info *info, char c)
{
*info->bf++ = c;
@@ -321,6 +316,12 @@ abort:
return 0;
}
+#if CONFIG_IS_ENABLED(PRINTF)
+static void putc_normal(struct printf_info *info, char ch)
+{
+ putc(ch);
+}
+
int vprintf(const char *fmt, va_list va)
{
struct printf_info info;
@@ -343,6 +344,7 @@ int printf(const char *fmt, ...)
return ret;
}
+#endif
static void putc_outstr(struct printf_info *info, char ch)
{
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 5f7a5f1..9f0ce8a 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -783,6 +783,7 @@ int sprintf(char *buf, const char *fmt, ...)
return i;
}
+#if CONFIG_IS_ENABLED(PRINTF)
int printf(const char *fmt, ...)
{
va_list args;
@@ -824,7 +825,7 @@ int vprintf(const char *fmt, va_list args)
puts(printbuffer);
return i;
}
-
+#endif
void __assert_fail(const char *assertion, const char *file, unsigned line,
const char *function)
--
2.7.4
More information about the U-Boot
mailing list