lib: build charset.o only if needed
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Fri, 31 Aug 2018 19:31:25 +0000 (21:31 +0200)
committerAlexander Graf <agraf@suse.de>
Sun, 23 Sep 2018 19:55:29 +0000 (21:55 +0200)
charset.o is only needed for the EFI subsystem

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
lib/Makefile
lib/vsprintf.c

index 5f583aed37d94c9a7cd54ef89a62795358fa6c99..2fd32798a081bd6245beb82d78369f947d792d01 100644 (file)
@@ -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
index ef8b0b5989573cde3c35e35dc29d81c56e16f880..632796f864df42a076ef532cbe19713e3555203b 100644 (file)
@@ -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);
                        }