
On Wed, Sep 06, 2017 at 05:31:52PM +0200, Heinrich Schuchardt wrote:
On 08/10/2017 01:14 AM, Rob Clark wrote:
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:
- UUID/GUID support
- %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:
- 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
- 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
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/
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!