[U-Boot] [U-Boot,v2,1/3] efi: Fix truncation of constant value
Alexander Graf
agraf at suse.de
Mon Aug 20 22:05:59 UTC 2018
> Starting with commit 867a6ac86dd8 ("efi: Add start-up library code"),
> sparse constantly complains about truncated constant value in efi.h:
>
> include/efi.h:176:35: warning: cast truncates bits from constant value (8000000000000000 becomes 0)
>
> This can get quite noisy, preventing real issues to be noticed:
>
> $ make defconfig
> *** Default configuration is based on 'sandbox_defconfig'
> $ make C=2 -j12 2>&1 | grep truncates | wc -l
> 441
>
> After the patch is applied:
> $ make C=2 -j12 2>&1 | grep truncates | wc -l
> 0
> $ sparse --version
> v0.5.2
>
> Following the suggestion of Heinrich Schuchardt, instead of only
> fixing the root-cause, I replaced the whole enum of _SHIFT values
> by ULL defines. This matches both the UEFI 2.7 spec and the Linux
> kernel implementation.
>
> Some ELF size comparison before and after the patch (gcc 7.3.0):
>
> efi-x86_payload64_defconfig:
> text data bss dec hex filename
> 407174 29432 278676 715282 aea12 u-boot.old
> 407152 29464 278676 715292 aea1c u-boot.new
> -22 +32 0 +10
>
> efi-x86_payload32_defconfig:
> text data bss dec hex filename
> 447075 30308 280076 757459 b8ed3 u-boot.old
> 447053 30340 280076 757469 b8edd u-boot.new
> -22 +32 0 +10
>
> Fixes: 867a6ac86dd8 ("efi: Add start-up library code")
> Suggested-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Signed-off-by: Eugeniu Rosca <erosca at de.adit-jv.com>
> Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> Reviewed-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
Thanks, applied to efi-2018.09
Alex
More information about the U-Boot
mailing list