On 06/28/16 15:25, Laszlo Ersek wrote:
> Gerd's Jenkins CI worker has recently tried to build a few edk2 packages
> with gcc-6. Gcc-6 introduces a new warning (among many others, likely)
> called "bool-compare":
> 
>   
> https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/Warning-Options.html#index-Wbool-compare-453
> 
> The build broke subsequently, exposing an actual bug in the code:
> 
>> "gcc" -g -fshort-wchar -fno-strict-aliasing -Wall -Werror
>> -Wno-array-bounds -ffunction-sections -fdata-sections -c -include
>> AutoGen.h -fno-common -DSTRING_ARRAY_NAME=PiSmmCpuDxeSmmStrings -m64
>> -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))"
>> -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large
>> -fno-asynchronous-unwind-tables -Wno-address -mno-mmx -mno-sse -o
>> Build/OvmfX64/DEBUG_GCC49/X64/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm/OUTPUT/X64/SmmProfileArch.obj
>> -IUefiCpuPkg/PiSmmCpuDxeSmm/X64 -IUefiCpuPkg/PiSmmCpuDxeSmm
>> -IBuild/OvmfX64/DEBUG_GCC49/X64/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm/DEBUG
>> -IMdePkg -IMdePkg/Include -IMdePkg/Include/X64 -IMdeModulePkg
>> -IMdeModulePkg/Include -IUefiCpuPkg -IUefiCpuPkg/Include
>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c
>>
>> In file included from 
>> Build/OvmfX64/DEBUG_GCC49/X64/UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm/DEBUG/AutoGen.h:16:0,
>>                  from <command-line>:0:
>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c: In function 
>> 'InitPagesForPFHandler':
>> MdePkg/Include/Base.h:882:75: error: comparison of constant '0' with boolean 
>> expression is always false [-Werror=bool-compare]
>>  #define RETURN_ERROR(StatusCode)     (((INTN)(RETURN_STATUS)(StatusCode)) < 
>> 0)
>>                                                                            ^
>> MdePkg/Include/Uefi/UefiBaseType.h:169:35: note: in expansion of macro 
>> 'RETURN_ERROR'
>>  #define EFI_ERROR(A)              RETURN_ERROR(A)
>>                                    ^~~~~~~~~~~~
>> MdePkg/Include/Library/DebugLib.h:341:13: note: in expansion of macro 
>> 'EFI_ERROR'
>>          if (EFI_ERROR (StatusParameter)) {                                  
>>              \
>>              ^~~~~~~~~
>> UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c:81:3: note: in expansion of 
>> macro 'ASSERT_EFI_ERROR'
>>    ASSERT_EFI_ERROR (Address != NULL);
>>    ^~~~~~~~~~~~~~~~
>> cc1: all warnings being treated as errors
> 
> This is fixed by one of the patches in the series (and I added Gerd's
> Reported-by there). Then I searched the tree for further misuses of
> ASSERT_EFI_ERROR, and fixed what I found.
> 
> Cc: David Wei <[email protected]>
> Cc: Gerd Hoffmann <[email protected]>
> Cc: Jaben Carsey <[email protected]>
> Cc: Jeff Fan <[email protected]>
> Cc: Jiaxin Wu <[email protected]>
> Cc: Kelly Steele <[email protected]>
> Cc: Liming Gao <[email protected]>
> Cc: Michael D Kinney <[email protected]>
> Cc: Shumin Qiu <[email protected]>
> Cc: Siyuan Fu <[email protected]>
> Cc: Tim He <[email protected]>
> 
> Thanks
> Laszlo
> 
> Laszlo Ersek (6):
>   EdkCompatibilityPkg: fix ASSERT_EFI_ERROR() typos
>   NetworkPkg: fix ASSERT_EFI_ERROR() typos
>   QuarkPlatformPkg: fix ASSERT_EFI_ERROR() typos
>   ShellPkg: don't call functions with side effects in ASSERT_EFI_ERROR()
>   UefiCpuPkg: fix ASSERT_EFI_ERROR() typos
>   Vlv2TbltDevicePkg: fix ASSERT_EFI_ERROR() typos
> 
>  EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/HiiDatabase.c | 
>  2 +-
>  EdkCompatibilityPkg/Compatibility/FrameworkHiiOnUefiHiiThunk/Utility.c     | 
>  2 +-
>  NetworkPkg/IpSecDxe/Ikev2/Sa.c                                             | 
>  2 +-
>  QuarkPlatformPkg/Acpi/Dxe/AcpiPlatform/AcpiPlatform.c                      | 
>  2 +-
>  QuarkPlatformPkg/Acpi/Dxe/AcpiPlatform/MadtPlatform.c                      | 
>  2 +-
>  QuarkPlatformPkg/Library/PlatformHelperLib/PlatformHelperDxe.c             | 
>  2 +-
>  QuarkPlatformPkg/Platform/Pei/PlatformInit/MrcWrapper.c                    | 
>  2 +-
>  ShellPkg/Library/UefiShellLevel1CommandsLib/If.c                           | 
> 10 ++++++++--
>  ShellPkg/Library/UefiShellLib/UefiShellLib.c                               | 
>  5 ++++-
>  UefiCpuPkg/PiSmmCpuDxeSmm/X64/SmmProfileArch.c                             | 
>  2 +-
>  Vlv2TbltDevicePkg/FvbRuntimeDxe/FvbService.c                               | 
>  6 +++---
>  Vlv2TbltDevicePkg/Library/MultiPlatformLib/BoardClkGens/BoardClkGens.c     | 
>  8 ++++----
>  Vlv2TbltDevicePkg/Library/MultiPlatformLib/PlatformInfoHob.c               | 
>  2 +-
>  13 files changed, 28 insertions(+), 19 deletions(-)
> 

Thanks everyone for the reviews; series committed as
05b39efb669e..2bfd84ed45b2.

Gerd, can you pleae kick Jenkins?

Thanks!
Laszlo
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to