From fbb3ea806f62b7e27bbae86c42d8f73f05de4bd7 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Fri, 31 Aug 2018 21:31:25 +0200 Subject: [PATCH] lib: build charset.o only if needed charset.o is only needed for the EFI subsystem Signed-off-by: Heinrich Schuchardt Signed-off-by: Alexander Graf --- lib/Makefile | 5 ++++- lib/vsprintf.c | 12 ++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/Makefile b/lib/Makefile index 5f583aed37..2fd32798a0 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -19,7 +19,10 @@ obj-$(CONFIG_ARCH_AT91) += at91/ obj-$(CONFIG_OPTEE) += optee/ obj-$(CONFIG_AES) += aes.o -obj-y += charset.o + +ifndef API_BUILD +obj-$(CONFIG_EFI_LOADER) += charset.o +endif obj-$(CONFIG_USB_TTY) += circbuf.o obj-y += crc7.o obj-y += crc8.o diff --git a/lib/vsprintf.c b/lib/vsprintf.c index ef8b0b5989..632796f864 100644 --- a/lib/vsprintf.c +++ b/lib/vsprintf.c @@ -274,6 +274,8 @@ static char *string(char *buf, char *end, char *s, int field_width, return buf; } +/* U-Boot uses UTF-16 strings in the EFI context only. */ +#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD) static char *string16(char *buf, char *end, u16 *s, int field_width, int precision, int flags) { @@ -294,8 +296,6 @@ static char *string16(char *buf, char *end, u16 *s, int field_width, return buf; } -/* Device paths only exist in the EFI context. */ -#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD) static char *device_path_string(char *buf, char *end, void *dp, int field_width, int precision, int flags) { @@ -612,10 +612,14 @@ repeat: continue; case 's': - if (qualifier == 'l' && !IS_ENABLED(CONFIG_SPL_BUILD)) { +/* U-Boot uses UTF-16 strings in the EFI context only. */ +#if CONFIG_IS_ENABLED(EFI_LOADER) && !defined(API_BUILD) + if (qualifier == 'l') { str = string16(str, end, va_arg(args, u16 *), field_width, precision, flags); - } else { + } else +#endif + { str = string(str, end, va_arg(args, char *), field_width, precision, flags); }