Skip to content

vsprintf and short-wchar for EFI_LOADER

Tom Rini u-boot 1 version New

Get series with b4
b4 am 20170906164541.GP17058@bill-the-cat

Versions newest first

  1. v1 Latest1 of 5 patches 0 repliesNew

1 of 5 patches is in this archive. The cover letter announces 5.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5Kconfig: add option to build with -fshort-wchar+0 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [U-Boot] [PATCH 0/5] vsprintf and short-wchar for EFI_LOADER
Quoted 74 lines · Heinrich Schuchardt
Quoted 42 lines · Rob Clark

As requested, I've split this out of the larger EFI_LOADER patchset.

This adds two things that the later EFI_LOADER patchset depends on:

1) UUID/GUID support
2) %ls UTF string support, in particular UTF-16. In the UEFI API, all strings are UTF-16

I had started converting this over to using c11 + u"string" literals, instead of using -fshort-wchar + L"string" literals and %ls, but I ran into two problems:

1) we lose out on the printf (and friends) va_arg type checking if we roll our own custom printf fmt modifier for UTF-16 strings
2) and worse than that, we have to disable -Wformat warnings

So given that we have a significant downside for not just using -fshort-wchar, and I don't think any really strong argument against, I am back to thinking that we should just go with -fshort-wchar.

The current patchset has a Kconfig option to opt-in to -fshort-wchar, which EFI_LOADER selects. If the consensus is to enable -fshort-wchar for everything, I'll drop the kconfig part and make it unconditional.

The current version of this patchset and efi-loader patchset are at

https://github.com/robclark/u-boot.git vsprintf

and

https://github.com/robclark/u-boot.git enough-uefi-for-shim-2

I'll resend the enought-uefi-for-shim-2 patchset after I have a chance to figure out fs-test.sh and add tests for fs_readdir().

Rob Clark (5):
Kconfig: add option to build with -fshort-wchar
lib: add some utf16 handling helpers
vsprintf.c: add UTF-16 string (%ls) support
vsprintf.c: add GUID printing
examples: add fallback memcpy

Quoted 15 lines
 Kconfig                      |  8 +++++
 Makefile                     |  4 +++
 examples/api/Makefile        |  2 ++
 examples/api/glue.c          | 12 +++++++
 include/charset.h            | 55 ++++++++++++++++++++++++++++++
 include/config_fallbacks.h   |  1 +
 lib/Makefile                 |  1 +
 lib/charset.c                | 81 ++++++++++++++++++++++++++++++++++++++++++++
 lib/efi_loader/Kconfig       |  1 +
 lib/efi_loader/efi_console.c | 17 ++--------
 lib/vsprintf.c               | 77 ++++++++++++++++++++++++++++++++++++++---
 11 files changed, 241 insertions(+), 18 deletions(-)
 create mode 100644 include/charset.h
 create mode 100644 lib/charset.c

Hello Tom,

what is happening with this patch series?

[U-Boot,5/5] examples: add fallback memcpy
https://patchwork.ozlabs.org/patch/800030/
[U-Boot,4/5] vsprintf.c: add GUID printing
https://patchwork.ozlabs.org/patch/800029/
[U-Boot,3/5] vsprintf.c: add UTF-16 string (%ls) support
https://patchwork.ozlabs.org/patch/800027/
[U-Boot,2/5] lib: add some utf16 handling helpers
https://patchwork.ozlabs.org/patch/800028/
[U-Boot,1/5] Kconfig: add option to build with -fshort-wchar
https://patchwork.ozlabs.org/patch/800026/

Quoted 1 line

Was it too late for 2017.09 and will be merged with 2017.11?

I replied to the first patch saying that we should always -fshort-wchar and enforce stdc-2011 as the default. That would be good to open 2017.11 with as well. Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170906/b7067d6b/attachment.sig>