[U-Boot] [PATCH 0/5] vsprintf and short-wchar for EFI_LOADER
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 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 -- 2.13.0 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 0/5] vsprintf and short-wchar for EFI_LOADER
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: > > 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 > > 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? Best regards Heinrich ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 0/5] vsprintf and short-wchar for EFI_LOADER
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: > > > > 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 > > > > 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! -- Tom signature.asc Description: Digital signature ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 0/5] vsprintf and short-wchar for EFI_LOADER
On Wed, Sep 6, 2017 at 12:45 PM, Tom Rini wrote: > 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: >> > >> > 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 >> > >> > 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! > Oh, I guess I should resend that. Probably c11 should be a different patch (although I am in favour of switching).. When does the merge window open for 2017.11? It would be good to land this and the fs/fat patches early so we could start merging the pile of efi_loader patches that depend on these. BR, -R ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH 0/5] vsprintf and short-wchar for EFI_LOADER
On Wed, Sep 06, 2017 at 02:14:21PM -0400, Rob Clark wrote: > On Wed, Sep 6, 2017 at 12:45 PM, Tom Rini wrote: > > 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: > >> > > >> > 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 > >> > > >> > 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! > > > > Oh, I guess I should resend that. Probably c11 should be a different > patch (although I am in favour of switching).. > > When does the merge window open for 2017.11? It would be good to land > this and the fs/fat patches early so we could start merging the pile > of efi_loader patches that depend on these. v2017.09 will be released on the 11th, if things are going well, sometime more morning than not, eastern time. Then I'll start grabbing stuff and testing. If you would like to suggest orders of things to pull in, pointers to bundles in patchwork would be great. Otherwise I'll be assembling them myself as always. Thanks! -- Tom signature.asc Description: Digital signature ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot