Re: [PATCH] Xen: don't warn about 2-byte wchar_t in efi

From: Stefano Stabellini
Date: Mon May 16 2016 - 07:08:32 EST


On Wed, 11 May 2016, Arnd Bergmann wrote:
> The XEN UEFI code has become available on the ARM architecture
> recently, but now causes a link-time warning:
>
> ld: warning: drivers/xen/efi.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
>
> This seems harmless, because the efi code only uses 2-byte
> characters when interacting with EFI, so we don't pass on those
> strings to elsewhere in the system, and we just need to
> silence the warning.
>
> It is not clear to me whether we actually need to build the file
> with the -fshort-wchar flag, but if we do, then we should also
> pass --no-wchar-size-warning to the linker, to avoid the warning.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> Fixes: 37060935dc04 ("ARM64: XEN: Add a function to initialize Xen specific UEFI runtime services")

Given that drivers/xen/efi.c doesn't actually use any wchar_t, it is not
clear to me whether we need to pass -fshort-wchar either. However this
patch is correct any, so I committed it to xentip.


> drivers/xen/Makefile | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
> index 415f2869054b..8feab810aed9 100644
> --- a/drivers/xen/Makefile
> +++ b/drivers/xen/Makefile
> @@ -8,6 +8,7 @@ nostackp := $(call cc-option, -fno-stack-protector)
> CFLAGS_features.o := $(nostackp)
>
> CFLAGS_efi.o += -fshort-wchar
> +LDFLAGS += $(call ld-option, --no-wchar-size-warning)
>
> dom0-$(CONFIG_ARM64) += arm-device.o
> dom0-$(CONFIG_PCI) += pci.o
> --
> 2.7.0
>