[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