mbox series

[0/7] Fix compiler warnings for 32-bit ARM

Message ID 20210207212707.3958570-1-sjg@chromium.org
Headers show
Series Fix compiler warnings for 32-bit ARM | expand

Message

Simon Glass Feb. 7, 2021, 9:27 p.m. UTC
These were noticed when building sandbox on a Raspberry Pi 400, which uses
32-bit linux.

To make this work, I enabled CONFIG_HOST_32BIT in 'make menuconfig'. It
would be nice if that were automatic, since we have the logic already in
arch/sandbox/config.mk

There are still many errors of the form:

/usr/bin/ld: warning: arch/sandbox/cpu/start.o uses 2-byte wchar_t yet the
   output is to use 4-byte wchar_t; use of wchar_t values across objects
   may fail

I am not sure how to fix those, but they are not fatal (sandbox still
runs).


Simon Glass (7):
  mkeficapsule: Correct printf() strings
  efi: Fix compiler warnings
  pci: swap_case: Allow compilation on 32-bit machines
  tpm: Correct warning on 32-bit build
  test: acpi: Fix warnings on 32-bit build
  doc: sandbox: Fix up dependencies
  doc: sandbox: Update instructions on quitting

 cmd/efidebug.c                 |  2 +-
 doc/arch/sandbox.rst           | 11 ++++++-----
 drivers/misc/swap_case.c       | 13 +++++++++++--
 drivers/tpm/tpm2_tis_sandbox.c |  2 +-
 lib/efi_loader/efi_capsule.c   |  4 ++--
 lib/efi_loader/efi_firmware.c  |  4 ++--
 test/dm/acpi.c                 | 12 ++++++------
 tools/mkeficapsule.c           | 14 +++++++-------
 8 files changed, 36 insertions(+), 26 deletions(-)

Comments

Heinrich Schuchardt March 15, 2021, 5:06 p.m. UTC | #1
On 07.02.21 22:27, Simon Glass wrote:
> These were noticed when building sandbox on a Raspberry Pi 400, which uses
> 32-bit linux.
>
> To make this work, I enabled CONFIG_HOST_32BIT in 'make menuconfig'. It
> would be nice if that were automatic, since we have the logic already in
> arch/sandbox/config.mk
>
> There are still many errors of the form:
>
> /usr/bin/ld: warning: arch/sandbox/cpu/start.o uses 2-byte wchar_t yet the
>    output is to use 4-byte wchar_t; use of wchar_t values across objects
>    may fail

For the compiler we use -fshort-wchar.

https://stackoverflow.com/questions/19489354/how-to-set-2-byte-wchar-t-output/23896853

discusses the warning. It can be suppressed with a linker flag.

The best thing to do would be to replace all L"" constants by u""
constants and eliminate -fshort-wchar from our compiler flags.

This requires C11 which we already use since 2018.

Best regards

Heinrich

>
> I am not sure how to fix those, but they are not fatal (sandbox still
> runs).
>
>
> Simon Glass (7):
>   mkeficapsule: Correct printf() strings
>   efi: Fix compiler warnings
>   pci: swap_case: Allow compilation on 32-bit machines
>   tpm: Correct warning on 32-bit build
>   test: acpi: Fix warnings on 32-bit build
>   doc: sandbox: Fix up dependencies
>   doc: sandbox: Update instructions on quitting
>
>  cmd/efidebug.c                 |  2 +-
>  doc/arch/sandbox.rst           | 11 ++++++-----
>  drivers/misc/swap_case.c       | 13 +++++++++++--
>  drivers/tpm/tpm2_tis_sandbox.c |  2 +-
>  lib/efi_loader/efi_capsule.c   |  4 ++--
>  lib/efi_loader/efi_firmware.c  |  4 ++--
>  test/dm/acpi.c                 | 12 ++++++------
>  tools/mkeficapsule.c           | 14 +++++++-------
>  8 files changed, 36 insertions(+), 26 deletions(-)
>