Scott Duplichan
2015-06-17 05:25:55 UTC
Here is a Windows batch file for automating edk2 builds using
different tool chains and other options. It doesn't test every
valid combination and project, but its test of 416 build combinations
is more thorough than what developers are doing today.
https://sourceforge.net/projects/edk2developertoolsforwindows/files/Additional%20Tools/buildall/
A compressed log file for a recent edk2 revision is included.
Here is a summary of build fails found in that log file:
1) build.exe -p D:\edk2build\edk2\OvmfPkg\OvmfPkgX64.dsc -b DEBUG -t DDK3790 -n 16 -a X64 -DSECURE_BOOT_ENABLE -DFD_SIZE_2MB
d:\edk2build\edk2\MdePkg\Include\Library\DebugLib.h(264) : error C2010: '.' : unexpected in macro formal parameter list
cause: OpensslLib.inf undefines _MSC_VER, which is needed by DebugLib.h
2) build.exe -p D:\edk2build\edk2\OvmfPkg\OvmfPkgX64.dsc -b DEBUG -t VS2005x86 -n 16 -a X64 -DSECURE_BOOT_ENABLE -DFD_SIZE_2MB
d:\edk2build\edk2\OvmfPkg\Library\XenHypercallLib\X86XenHypercall.c(38) : warning C4244: 'return' : conversion from 'int' to 'BOOLEAN', possible loss of data
cause: known limitation of VS2005
3) build.exe -p D:\edk2build\edk2\AppPkg\AppPkg.dsc -b DEBUG -t DDK3790 -n 16 -a X64
d:\edk2build\edk2\StdLib\LibC\Uefi\Devices\Console\daConsole.c(305) : warning C4244: '=' : conversion from 'int' to 'wchar_t', possible loss of data
cause: known limitation of DDK3790 compiler
4) build.exe -p D:\edk2build\edk2\AppPkg\AppPkg.dsc -b NOOPT -t VS2010x86 -n 16 -a IA32
d:\edk2build\edk2\stdlib\bsdsocketlib\ns_addr.c(84) : warning C4706: assignment within conditional expression
cause: Microsoft warning not available for gcc
5) build.exe -p D:\edk2build\edk2\AppPkg\AppPkg.dsc -b DEBUG -t VS2013x86 -n 16 -a IA32
LibGdtoa.lib(strtod.obj) : error LNK2001: unresolved external symbol __dtoui3
cause: (see 2014 discussion)
6) build.exe -p D:\edk2build\edk2\IntelFspPkg\IntelFspPkg.dsc -b DEBUG -t DDK3790 -n 16 -a IA32
LINK : fatal error LNK1000: Internal error during LIB::Search
cause: bug in old tool chain?
7) build.exe -p D:\edk2build\edk2\DuetPkg\DuetPkgIA32.dsc -b DEBUG -t VS2005x86 -n 16 -a IA32
d:\edk2build\edk2\MdeModulePkg\Universal\SetupBrowserDxe\Presentation.c(1923) : warning C4244: 'return' : conversion from 'int' to 'BOOLEAN', possible loss of data
cause: limitation of older Microsoft tool chains
8) build.exe -p D:\edk2build\edk2\EmulatorPkg\EmulatorPkg.dsc -b RELEASE -t VS2005x86 -n 16 -a IA32
d:\edk2build\edk2\EmulatorPkg\CpuRuntimeDxe\MpService.c(67) : warning C4244: 'return' : conversion from 'int' to 'BOOLEAN', possible loss of data
cause: limitation of older Microsoft tool chains
9) build.exe -p D:\edk2build\edk2\Nt32Pkg\Nt32Pkg.dsc -b RELEASE -t VS2005x86 -n 16 -a X64 -DSECURE_BOOT_ENABLE
C:\Program Files (x86)\Windows Kits\8.1\include\um\winnt.h(2935) : warning C4163: '__cpuidex' : not available as an intrinsic function
cause: limitation of older Microsoft tool chains
Thanks,
Scott
------------------------------------------------------------------------------
different tool chains and other options. It doesn't test every
valid combination and project, but its test of 416 build combinations
is more thorough than what developers are doing today.
https://sourceforge.net/projects/edk2developertoolsforwindows/files/Additional%20Tools/buildall/
A compressed log file for a recent edk2 revision is included.
Here is a summary of build fails found in that log file:
1) build.exe -p D:\edk2build\edk2\OvmfPkg\OvmfPkgX64.dsc -b DEBUG -t DDK3790 -n 16 -a X64 -DSECURE_BOOT_ENABLE -DFD_SIZE_2MB
d:\edk2build\edk2\MdePkg\Include\Library\DebugLib.h(264) : error C2010: '.' : unexpected in macro formal parameter list
cause: OpensslLib.inf undefines _MSC_VER, which is needed by DebugLib.h
2) build.exe -p D:\edk2build\edk2\OvmfPkg\OvmfPkgX64.dsc -b DEBUG -t VS2005x86 -n 16 -a X64 -DSECURE_BOOT_ENABLE -DFD_SIZE_2MB
d:\edk2build\edk2\OvmfPkg\Library\XenHypercallLib\X86XenHypercall.c(38) : warning C4244: 'return' : conversion from 'int' to 'BOOLEAN', possible loss of data
cause: known limitation of VS2005
3) build.exe -p D:\edk2build\edk2\AppPkg\AppPkg.dsc -b DEBUG -t DDK3790 -n 16 -a X64
d:\edk2build\edk2\StdLib\LibC\Uefi\Devices\Console\daConsole.c(305) : warning C4244: '=' : conversion from 'int' to 'wchar_t', possible loss of data
cause: known limitation of DDK3790 compiler
4) build.exe -p D:\edk2build\edk2\AppPkg\AppPkg.dsc -b NOOPT -t VS2010x86 -n 16 -a IA32
d:\edk2build\edk2\stdlib\bsdsocketlib\ns_addr.c(84) : warning C4706: assignment within conditional expression
cause: Microsoft warning not available for gcc
5) build.exe -p D:\edk2build\edk2\AppPkg\AppPkg.dsc -b DEBUG -t VS2013x86 -n 16 -a IA32
LibGdtoa.lib(strtod.obj) : error LNK2001: unresolved external symbol __dtoui3
cause: (see 2014 discussion)
6) build.exe -p D:\edk2build\edk2\IntelFspPkg\IntelFspPkg.dsc -b DEBUG -t DDK3790 -n 16 -a IA32
LINK : fatal error LNK1000: Internal error during LIB::Search
cause: bug in old tool chain?
7) build.exe -p D:\edk2build\edk2\DuetPkg\DuetPkgIA32.dsc -b DEBUG -t VS2005x86 -n 16 -a IA32
d:\edk2build\edk2\MdeModulePkg\Universal\SetupBrowserDxe\Presentation.c(1923) : warning C4244: 'return' : conversion from 'int' to 'BOOLEAN', possible loss of data
cause: limitation of older Microsoft tool chains
8) build.exe -p D:\edk2build\edk2\EmulatorPkg\EmulatorPkg.dsc -b RELEASE -t VS2005x86 -n 16 -a IA32
d:\edk2build\edk2\EmulatorPkg\CpuRuntimeDxe\MpService.c(67) : warning C4244: 'return' : conversion from 'int' to 'BOOLEAN', possible loss of data
cause: limitation of older Microsoft tool chains
9) build.exe -p D:\edk2build\edk2\Nt32Pkg\Nt32Pkg.dsc -b RELEASE -t VS2005x86 -n 16 -a X64 -DSECURE_BOOT_ENABLE
C:\Program Files (x86)\Windows Kits\8.1\include\um\winnt.h(2935) : warning C4163: '__cpuidex' : not available as an intrinsic function
cause: limitation of older Microsoft tool chains
Thanks,
Scott
------------------------------------------------------------------------------