MdePkg: Fix build fail when DDK3790 tool chain is used

Modify the preprocessor check for variadic macro support. The existing
check assumes all Microsoft compilers with major version of 14 and greater
support variadic macros. This is almost correct. An exception is the X64
compiler from DDK3790. This compiler has version 14.00.40310.41, yet does
not support variadic macros. Both VS2005 compilers have version number
14.00.50727.762 and do support variadic macros. For simplicity, this change
suppresses the use of variadic macros for all Microsoft compilers with
version 14 or smaller. If the variadic macro support needs to be restored
for VS2005, that could be done using new logic invloving _MSC_FULL_VER.


Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Scott Duplichan <scott@notabs.org>
Reviewed-by: Liming Gao <liming.gao@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17155 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Scott Duplichan 2015-04-10 03:00:40 +00:00 committed by lgao4
parent 6d577625ed
commit d9a55c78e5
1 changed files with 1 additions and 1 deletions

View File

@ -260,7 +260,7 @@ DebugPrintLevelEnabled (
**/ **/
#if !defined(MDE_CPU_EBC) && (!defined (_MSC_VER) || _MSC_VER >= 1400) #if !defined(MDE_CPU_EBC) && (!defined (_MSC_VER) || _MSC_VER > 1400)
#define _DEBUG_PRINT(PrintLevel, ...) \ #define _DEBUG_PRINT(PrintLevel, ...) \
do { \ do { \
if (DebugPrintLevelEnabled (PrintLevel)) { \ if (DebugPrintLevelEnabled (PrintLevel)) { \