Sync EDKII BaseTools to BaseTools project r2093.
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 15 Nov 2010 02:51:34 +0000 (02:51 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 15 Nov 2010 02:51:34 +0000 (02:51 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11057 6f19259b-4bc3-4df7-8a09-765794883524

49 files changed:
BaseTools/Bin/Win32/BPDG.exe
BaseTools/Bin/Win32/BootSectImage.exe
BaseTools/Bin/Win32/EfiLdrImage.exe
BaseTools/Bin/Win32/EfiRom.exe
BaseTools/Bin/Win32/Fpd2Dsc.exe
BaseTools/Bin/Win32/GenBootSector.exe
BaseTools/Bin/Win32/GenCrc32.exe
BaseTools/Bin/Win32/GenDepex.exe
BaseTools/Bin/Win32/GenFds.exe
BaseTools/Bin/Win32/GenFfs.exe
BaseTools/Bin/Win32/GenFv.exe
BaseTools/Bin/Win32/GenFw.exe
BaseTools/Bin/Win32/GenPage.exe
BaseTools/Bin/Win32/GenPatchPcdTable.exe
BaseTools/Bin/Win32/GenSec.exe
BaseTools/Bin/Win32/GenVtf.exe
BaseTools/Bin/Win32/LzmaCompress.exe
BaseTools/Bin/Win32/MigrationMsa2Inf.exe
BaseTools/Bin/Win32/Spd2Dec.exe
BaseTools/Bin/Win32/Split.exe
BaseTools/Bin/Win32/TargetTool.exe
BaseTools/Bin/Win32/TianoCompress.exe
BaseTools/Bin/Win32/Trim.exe
BaseTools/Bin/Win32/VfrCompile.exe
BaseTools/Bin/Win32/VolInfo.exe
BaseTools/Bin/Win32/build.exe
BaseTools/Conf/build_rule.template
BaseTools/Conf/tools_def.template
BaseTools/Source/C/BootSectImage/bootsectimage.c
BaseTools/Source/C/GenVtf/GenVtf.c
BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
BaseTools/Source/C/Include/X64/ProcessorBind.h
BaseTools/Source/C/Makefiles/header.makefile
BaseTools/Source/C/Makefiles/lib.makefile
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/AutoGen/GenC.py
BaseTools/Source/Python/AutoGen/StrGather.py
BaseTools/Source/Python/BPDG/GenVpd.py
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Common/Misc.py
BaseTools/Source/Python/Common/Parsing.py
BaseTools/Source/Python/Common/VpdInfoFile.py
BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools/Source/Python/GenFds/FfsInfStatement.py
BaseTools/Source/Python/GenFds/GenFds.py
BaseTools/Source/Python/GenFds/Region.py
BaseTools/Source/Python/Workspace/MetaFileParser.py
BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
BaseTools/Source/Python/build/build.py

index 29888d5..fc5c09a 100644 (file)
Binary files a/BaseTools/Bin/Win32/BPDG.exe and b/BaseTools/Bin/Win32/BPDG.exe differ
index 7c4dc10..f6aefe4 100755 (executable)
Binary files a/BaseTools/Bin/Win32/BootSectImage.exe and b/BaseTools/Bin/Win32/BootSectImage.exe differ
index 8b760e5..535065d 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiLdrImage.exe and b/BaseTools/Bin/Win32/EfiLdrImage.exe differ
index ab969ed..198f148 100755 (executable)
Binary files a/BaseTools/Bin/Win32/EfiRom.exe and b/BaseTools/Bin/Win32/EfiRom.exe differ
index 1eea825..9cfeea5 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Fpd2Dsc.exe and b/BaseTools/Bin/Win32/Fpd2Dsc.exe differ
index 0327a9e..cd19d87 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenBootSector.exe and b/BaseTools/Bin/Win32/GenBootSector.exe differ
index 799d0be..689e926 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenCrc32.exe and b/BaseTools/Bin/Win32/GenCrc32.exe differ
index 4bea183..6c01edb 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenDepex.exe and b/BaseTools/Bin/Win32/GenDepex.exe differ
index dc0cc34..17139fa 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFds.exe and b/BaseTools/Bin/Win32/GenFds.exe differ
index 46f56ab..76cebca 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFfs.exe and b/BaseTools/Bin/Win32/GenFfs.exe differ
index aa505ba..f9a506d 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFv.exe and b/BaseTools/Bin/Win32/GenFv.exe differ
index 1b299bb..e816b88 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenFw.exe and b/BaseTools/Bin/Win32/GenFw.exe differ
index e3eaad8..44cecb6 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPage.exe and b/BaseTools/Bin/Win32/GenPage.exe differ
index d404b47..0163b10 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenPatchPcdTable.exe and b/BaseTools/Bin/Win32/GenPatchPcdTable.exe differ
index 4d78a1a..0f322a7 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenSec.exe and b/BaseTools/Bin/Win32/GenSec.exe differ
index 50fa7e9..4364fe6 100755 (executable)
Binary files a/BaseTools/Bin/Win32/GenVtf.exe and b/BaseTools/Bin/Win32/GenVtf.exe differ
index c65ced3..71af24b 100755 (executable)
Binary files a/BaseTools/Bin/Win32/LzmaCompress.exe and b/BaseTools/Bin/Win32/LzmaCompress.exe differ
index 3db093f..c4ad8c2 100755 (executable)
Binary files a/BaseTools/Bin/Win32/MigrationMsa2Inf.exe and b/BaseTools/Bin/Win32/MigrationMsa2Inf.exe differ
index 436ae89..239f946 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Spd2Dec.exe and b/BaseTools/Bin/Win32/Spd2Dec.exe differ
index cd4b4af..c3fd1a3 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Split.exe and b/BaseTools/Bin/Win32/Split.exe differ
index b283787..cdfb75e 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TargetTool.exe and b/BaseTools/Bin/Win32/TargetTool.exe differ
index 994226a..e20c574 100755 (executable)
Binary files a/BaseTools/Bin/Win32/TianoCompress.exe and b/BaseTools/Bin/Win32/TianoCompress.exe differ
index 527bff8..6ad1ce7 100755 (executable)
Binary files a/BaseTools/Bin/Win32/Trim.exe and b/BaseTools/Bin/Win32/Trim.exe differ
index 21e66b8..5d68baa 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VfrCompile.exe and b/BaseTools/Bin/Win32/VfrCompile.exe differ
index 0f1bbc8..c6b4e3f 100755 (executable)
Binary files a/BaseTools/Bin/Win32/VolInfo.exe and b/BaseTools/Bin/Win32/VolInfo.exe differ
index dd3a45b..8204965 100755 (executable)
Binary files a/BaseTools/Bin/Win32/build.exe and b/BaseTools/Bin/Win32/build.exe differ
index c29ed56..7c765d4 100644 (file)
         $(MAKE_FILE)\r
 \r
     <Command.MSFT, Command.INTEL>\r
-        "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}\r
+        "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src}\r
         "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
         "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)\r
 \r
         $(MAKE_FILE)\r
 \r
     <Command.MSFT, Command.INTEL>\r
-        "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(CC_FLAGS) $(ASLCC_FLAGS) $(INC) ${src}\r
+        "$(ASLCC)" /Fo$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASLCC_FLAGS) $(INC) ${src}\r
         "$(ASLDLINK)" /OUT:$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(ASLDLINK_FLAGS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj\r
         "$(GENFW)" -o ${dst} -c $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dll $(GENFW_FLAGS)\r
 \r
index 639e20a..7185be2 100644 (file)
@@ -45,17 +45,22 @@ DEFINE WINSDKx86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINS
 # are used by other toolchains.  An example is that ICC on Windows normally\r
 # uses Microsoft's nmake.exe.\r
 \r
-# Some MS_VS_BIN options: DEF(VS2003_BIN), DEF(VS2005_BIN), DEF(VS2005x86_BIN)\r
-DEFINE MS_VS_BIN   = DEF(VS2005_BIN)\r
-# Some MS_VS_DLL options: DEF(VS2003_DLL), DEF(VS2005_DLL), DEF(VS2005x86_DLL)\r
-DEFINE MS_VS_DLL   = DEF(VS2005_DLL)\r
+# Some MS_VS_BIN options: DEF(VS2003_BIN), DEF(VS2005_BIN), DEF(VS2008_BIN)\r
+DEFINE MS_VS_BIN   = DEF(VS2008_BIN)\r
+# Some MS_VS_DLL options: DEF(VS2003_DLL), DEF(VS2005_DLL), DEF(VS2008_DLL)\r
+DEFINE MS_VS_DLL   = DEF(VS2008_DLL)\r
+\r
+# Some MS_VSx86_BIN options: DEF(VS2005x86_BIN), DEF(VS2008x86_BIN)\r
+DEFINE MS_VSx86_BIN = DEF(VS2008x86_BIN)\r
+# Some MS_VSx86_DLL options: DEF(VS2005x86_DLL), DEF(VS2008x86_DLL)\r
+DEFINE MS_VSx86_DLL = DEF(VS2008x86_DLL)\r
 \r
 DEFINE WINDDK_BIN16     = C:\WINDDK\3790.1830\bin\bin16\r
 DEFINE WINDDK_BIN32     = C:\WINDDK\3790.1830\bin\x86\r
 DEFINE WINDDK_BINX64    = C:\WINDDK\3790.1830\bin\win64\x86\amd64\r
 DEFINE WINDDK_BIN64     = C:\WINDDK\3790.1830\bin\win64\x86\r
 \r
-# NOTE: The Intel C++ Compiler for Windows requires one of the Microsoft C compiler \r
+# NOTE: The Intel C++ Compiler for Windows requires one of the Microsoft C compiler\r
 #        tool chains for the linker and nmake commands.\r
 #        This configuration assumes a Windows 2003 Server DDK installation.\r
 DEFINE ICC_VERSION      = 9.1\r
@@ -75,10 +80,10 @@ DEFINE ICC_BIN64x86     = C:\Program Files (x86)\Intel\Compiler\C++\DEF(ICC_VERS
 \r
 \r
 # Note: The Intel C++ Compiler 11.1 uses different installation path from previous versions\r
-#       We use "ICC11" tag for ICC 11.1 while "ICC" tag is dedicated for eariler versions \r
+#       We use "ICC11" tag for ICC 11.1 while "ICC" tag is dedicated for eariler versions\r
 #\r
 DEFINE ICC11_VERSION      = 11.1\r
-DEFINE ICC11_BUILD        = 065\r
+DEFINE ICC11_BUILD        = 067\r
 DEFINE ICC11_BIN32        = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32\r
 DEFINE ICC11_ASM32        = C:\Program Files\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32\r
 DEFINE ICC11_BIN32x86     = C:\Program Files (x86)\Intel\Compiler\DEF(ICC11_VERSION)\DEF(ICC11_BUILD)\bin\ia32\r
@@ -131,6 +136,9 @@ DEFINE GCC44_IA32_PREFIX       = /usr/bin/
 DEFINE GCC44_X64_PREFIX        = /usr/bin/\r
 #DEFINE GCC44_X64_PREFIX       = ENV(HOME)/programs/gcc/4.4/x64/\r
 \r
+DEFINE GCC45_IA32_PREFIX       = /usr/bin/\r
+DEFINE GCC45_X64_PREFIX        = /usr/bin/\r
+\r
 DEFINE UNIX_IASL_BIN           = /usr/bin/iasl\r
 #DEFINE UNIX_IASL_BIN           = $(HOME)/programs/iasl\r
 DEFINE WIN_ASL_BIN_DIR         = C:\ASL\r
@@ -150,12 +158,12 @@ DEFINE DEFAULT_WIN_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
 #DEFINE DEFAULT_WIN_ASL_OUTFLAGS = DEF(MS_ASL_OUTFLAGS)\r
 \r
 DEFINE MSFT_ASLPP_FLAGS        = /nologo /E /C /FIAutoGen.h\r
-DEFINE MSFT_ASLCC_FLAGS        = /GL- /Y- /TC /Dmain=ReferenceAcpiTable\r
-DEFINE MSFT_ASLDLINK_FLAGS     = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE\r
+DEFINE MSFT_ASLCC_FLAGS        = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable\r
+DEFINE MSFT_ASLDLINK_FLAGS     = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER\r
 \r
 DEFINE ICC_WIN_ASLPP_FLAGS     = /nologo /E /C /FIAutoGen.h\r
-DEFINE ICC_WIN_ASLCC_FLAGS     = /Y- /TC /WX- /Od /Dmain=ReferenceAcpiTable\r
-DEFINE ICC_WIN_ASLDLINK_FLAGS  = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE /NODEFAULTLIB:libmmt /NODEFAULTLIB:libirc\r
+DEFINE ICC_WIN_ASLCC_FLAGS     = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable\r
+DEFINE ICC_WIN_ASLDLINK_FLAGS  = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /NODEFAULTLIB:libmmt /NODEFAULTLIB:libirc\r
 \r
 DEFINE IPHONE_TOOLS            = /Developer/Platforms/iPhoneOS.platform/Developer\r
 DEFINE RVCT31_TOOLS_PATH       = c:/Program Files/ARM/RVCT/Programs/3.1/569/win_32-pentium\r
@@ -313,8 +321,8 @@ RELEASE_VS2003_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE
   DEBUG_VS2003_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
 RELEASE_VS2003_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /coff /Cx /Zd\r
       *_VS2003_IA32_SLINK_FLAGS     = /nologo /LTCG\r
-  DEBUG_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # EBC definitions\r
@@ -348,7 +356,7 @@ RELEASE_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE
 # ASL definitions\r
 ##################\r
 *_VS2003xASL_*_ASL_PATH                 = DEF(WIN_ASL_BIN)\r
-*_VS2003xASL_*_ASL_FLAGS                = \r
+*_VS2003xASL_*_ASL_FLAGS                =\r
 *_VS2003xASL_*_ASL_OUTFLAGS             = DEF(MS_ASL_OUTFLAGS)\r
 *_VS2003xASL_*_ASLCC_FLAGS              = DEF(MSFT_ASLCC_FLAGS)\r
 *_VS2003xASL_*_ASLPP_FLAGS              = DEF(MSFT_ASLPP_FLAGS)\r
@@ -382,8 +390,8 @@ RELEASE_VS2003xASL_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNI
   DEBUG_VS2003xASL_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
 RELEASE_VS2003xASL_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /coff /Cx /Zd\r
       *_VS2003xASL_IA32_SLINK_FLAGS     = /nologo /LTCG\r
-  DEBUG_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # EBC definitions\r
@@ -458,8 +466,8 @@ RELEASE_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OP
 RELEASE_VS2005_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2005_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -482,8 +490,8 @@ RELEASE_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 RELEASE_VS2005_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2005_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2005_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -505,8 +513,8 @@ RELEASE_VS2005_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O
 RELEASE_VS2005_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2005_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2005_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2005_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2005_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2005_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2005_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -552,7 +560,7 @@ RELEASE_VS2005_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 # ASL definitions\r
 ##################\r
 *_VS2005xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)\r
-*_VS2005xASL_*_ASL_FLAGS       = \r
+*_VS2005xASL_*_ASL_FLAGS       =\r
 *_VS2005xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)\r
 *_VS2005xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
 *_VS2005xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
@@ -580,8 +588,8 @@ RELEASE_VS2005_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 RELEASE_VS2005xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2005xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -604,8 +612,8 @@ RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE
 RELEASE_VS2005xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2005xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2005xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -627,8 +635,8 @@ RELEASE_VS2005xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE
 RELEASE_VS2005xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2005xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2005xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2005xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2005xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2005xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2005xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -702,8 +710,8 @@ RELEASE_VS2005xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,
 RELEASE_VS2005x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2005x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -726,8 +734,8 @@ RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 RELEASE_VS2005x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2005x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2005x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -749,8 +757,8 @@ RELEASE_VS2005x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 RELEASE_VS2005x86_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2005x86_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2005x86_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2005x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2005x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2005x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2005x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -796,7 +804,7 @@ RELEASE_VS2005x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I
 # ASL definitions\r
 ##################\r
 *_VS2005x86xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)\r
-*_VS2005x86xASL_*_ASL_FLAGS       = \r
+*_VS2005x86xASL_*_ASL_FLAGS       =\r
 *_VS2005x86xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)\r
 *_VS2005x86xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
 *_VS2005x86xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
@@ -824,8 +832,8 @@ RELEASE_VS2005x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I
 RELEASE_VS2005x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2005x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -848,8 +856,8 @@ RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT
 RELEASE_VS2005x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2005x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2005x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2005x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2005x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2005x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2005x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -871,8 +879,8 @@ RELEASE_VS2005x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT
 RELEASE_VS2005x86xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2005x86xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2005x86xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2005x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2005x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -948,8 +956,8 @@ RELEASE_VS2005x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 RELEASE_VS2008_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2008_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2008_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2008_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2008_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -972,8 +980,8 @@ RELEASE_VS2008_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 RELEASE_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -995,8 +1003,8 @@ RELEASE_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /O
 RELEASE_VS2008_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2008_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2008_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2008_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2008_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2008_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2008_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -1042,7 +1050,7 @@ RELEASE_VS2008_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 # ASL definitions\r
 ##################\r
 *_VS2008xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)\r
-*_VS2008xASL_*_ASL_FLAGS       = \r
+*_VS2008xASL_*_ASL_FLAGS       =\r
 *_VS2008xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)\r
 *_VS2008xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
 *_VS2008xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
@@ -1070,8 +1078,8 @@ RELEASE_VS2008_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 RELEASE_VS2008xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2008xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2008xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1094,8 +1102,8 @@ RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE
 RELEASE_VS2008xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2008xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2008xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2008xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2008xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1117,8 +1125,8 @@ RELEASE_VS2008xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:RE
 RELEASE_VS2008xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2008xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2008xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2008xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2008xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2008xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2008xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -1189,10 +1197,10 @@ RELEASE_VS2008xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,
       *_VS2008x86_IA32_MAKE_FLAGS  = /nologo\r
   DEBUG_VS2008x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
 RELEASE_VS2008x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
-  DEBUG_VS2008x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi  \r
+  DEBUG_VS2008x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2008x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG   \r
-RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1210,12 +1218,12 @@ RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 *_VS2008x86_X64_DLINK_PATH    = DEF(VS2008x86_BINX64)\link.exe\r
 *_VS2008x86_X64_ASLDLINK_PATH = DEF(VS2008x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2008x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm \r
+  DEBUG_VS2008x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
 RELEASE_VS2008x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2008x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2008x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1237,8 +1245,27 @@ RELEASE_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF
 RELEASE_VS2008x86_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2008x86_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2008x86_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2008x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2008x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2008x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2008x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+\r
+##################\r
+# EBC definitions\r
+##################\r
+*_VS2008x86_EBC_*_FAMILY            = INTEL\r
+\r
+*_VS2008x86_EBC_MAKE_PATH           = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_VS2008x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe\r
+*_VS2008x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe\r
+*_VS2008x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe\r
+*_VS2008x86_EBC_SLINK_PATH          = DEF(EBC_BINx86)\link.exe\r
+*_VS2008x86_EBC_DLINK_PATH          = DEF(EBC_BINx86)\link.exe\r
+\r
+*_VS2008x86_EBC_MAKE_FLAGS          = /nologo\r
+*_VS2008x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h\r
+*_VS2008x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
+*_VS2008x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2008x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
+*_VS2008x86_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
 \r
 \r
 ####################################################################################\r
@@ -1289,10 +1316,10 @@ RELEASE_VS2008x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I
       *_VS2008x86xASL_IA32_MAKE_FLAGS  = /nologo\r
   DEBUG_VS2008x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
 RELEASE_VS2008x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
-  DEBUG_VS2008x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi  \r
+  DEBUG_VS2008x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
 RELEASE_VS2008x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
-  DEBUG_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG   \r
-RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -1310,12 +1337,12 @@ RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT
 *_VS2008x86xASL_X64_DLINK_PATH    = DEF(VS2008x86_BINX64)\link.exe\r
 *_VS2008x86xASL_X64_ASLDLINK_PATH = DEF(VS2008x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2008x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm \r
+  DEBUG_VS2008x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
 RELEASE_VS2008x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_VS2008x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_VS2008x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_VS2008x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_VS2008x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_VS2008x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2008x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1337,9 +1364,27 @@ RELEASE_VS2008x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT
 RELEASE_VS2008x86xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_VS2008x86xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_VS2008x86xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_VS2008x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_VS2008x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
+##################\r
+# EBC definitions\r
+##################\r
+*_VS2008x86xASL_EBC_*_FAMILY            = INTEL\r
+\r
+*_VS2008x86xASL_EBC_MAKE_PATH           = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_VS2008x86xASL_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe\r
+*_VS2008x86xASL_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe\r
+*_VS2008x86xASL_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe\r
+*_VS2008x86xASL_EBC_SLINK_PATH          = DEF(EBC_BINx86)\link.exe\r
+*_VS2008x86xASL_EBC_DLINK_PATH          = DEF(EBC_BINx86)\link.exe\r
+\r
+*_VS2008x86_EBC_MAKE_FLAGS          = /nologo\r
+*_VS2008x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h\r
+*_VS2008x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
+*_VS2008x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2008x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
+*_VS2008x86_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP\r
 \r
 ####################################################################################\r
 #\r
@@ -1390,8 +1435,8 @@ RELEASE_VS2008x86xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 RELEASE_DDK3790_IA32_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_DDK3790_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
 RELEASE_DDK3790_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /coff /Cx /Zd\r
-  DEBUG_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # x64 definitions\r
@@ -1411,8 +1456,8 @@ RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /
 RELEASE_DDK3790_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_DDK3790_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_DDK3790_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_DDK3790_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_DDK3790_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_DDK3790_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_DDK3790_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1433,8 +1478,8 @@ RELEASE_DDK3790_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /
 RELEASE_DDK3790_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_DDK3790_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_DDK3790_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_DDK3790_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_DDK3790_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_DDK3790_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_DDK3790_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -1476,7 +1521,7 @@ RELEASE_DDK3790_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 # ASL definitions\r
 ##################\r
 *_DDK3790xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)\r
-*_DDK3790xASL_*_ASL_FLAGS       = \r
+*_DDK3790xASL_*_ASL_FLAGS       =\r
 *_DDK3790xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)\r
 *_DDK3790xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
 *_DDK3790xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
@@ -1500,8 +1545,8 @@ RELEASE_DDK3790_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 RELEASE_DDK3790xASL_IA32_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_DDK3790xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
 RELEASE_DDK3790xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /coff /Cx /Zd\r
-  DEBUG_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # x64 definitions\r
@@ -1521,8 +1566,8 @@ RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:R
 RELEASE_DDK3790xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_DDK3790xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_DDK3790xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_DDK3790xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_DDK3790xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_DDK3790xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_DDK3790xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -1543,8 +1588,8 @@ RELEASE_DDK3790xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:R
 RELEASE_DDK3790xASL_IPF_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /EHs-c- /GR- /Gy /Os /GL /FIAutoGen.h /QIPF_fr32\r
   DEBUG_DDK3790xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_DDK3790xASL_IPF_ASM_FLAGS    = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_DDK3790xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_DDK3790xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_DDK3790xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_DDK3790xASL_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # EBC definitions\r
@@ -1594,13 +1639,21 @@ DEFINE GCC_IPF_RC_FLAGS            = -I binary -O elf64-ia64-little -B ia64 --re
 \r
 DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
 DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -D EFI32\r
-DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address\r
+DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large\r
 DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections\r
 DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable\r
 DEFINE GCC44_IA32_X64_DLINK_FLAGS    = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC44_X64_DLINK_FLAGS         = DEF(GCC44_IA32_X64_DLINK_FLAGS)  -melf_x86_64 --oformat=elf64-x86-64 --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script\r
 DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)\r
 \r
+DEFINE GCC45_IA32_CC_FLAGS           = DEF(GCC44_IA32_CC_FLAGS)\r
+DEFINE GCC45_X64_CC_FLAGS            = DEF(GCC44_X64_CC_FLAGS)\r
+DEFINE GCC45_IA32_X64_DLINK_COMMON   = DEF(GCC44_IA32_X64_DLINK_COMMON)\r
+DEFINE GCC45_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS)\r
+DEFINE GCC45_IA32_X64_DLINK_FLAGS    = DEF(GCC44_IA32_X64_DLINK_FLAGS)\r
+DEFINE GCC45_X64_DLINK_FLAGS         = DEF(GCC44_X64_DLINK_FLAGS)\r
+DEFINE GCC45_ASM_FLAGS               = DEF(GCC44_ASM_FLAGS)\r
+\r
 ####################################################################################\r
 #\r
 # Unix GCC And Intel Linux ACPI Compiler\r
@@ -1622,7 +1675,7 @@ DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)
 *_UNIXGCC_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)\r
 *_UNIXGCC_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)\r
 *_UNIXGCC_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)\r
-*_UNIXGCC_*_APP_FLAGS                    = \r
+*_UNIXGCC_*_APP_FLAGS                    =\r
 *_UNIXGCC_*_ASL_FLAGS                    = DEF(IASL_FLAGS)\r
 *_UNIXGCC_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)\r
 \r
@@ -1702,7 +1755,7 @@ DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)
 *_GCC44_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)\r
 *_GCC44_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)\r
 *_GCC44_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)\r
-*_GCC44_*_APP_FLAGS                    = \r
+*_GCC44_*_APP_FLAGS                    =\r
 *_GCC44_*_ASL_FLAGS                    = DEF(IASL_FLAGS)\r
 *_GCC44_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)\r
 \r
@@ -1744,11 +1797,73 @@ DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)
 *_GCC44_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
 *_GCC44_X64_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64\r
 *_GCC44_X64_ASM_FLAGS            = DEF(GCC44_ASM_FLAGS) -m64 --64 -melf_x86_64\r
-*_GCC44_X64_CC_FLAGS             = DEF(GCC44_X64_CC_FLAGS) -Os\r
+*_GCC44_X64_CC_FLAGS             = DEF(GCC44_X64_CC_FLAGS)\r
 *_GCC44_X64_DLINK_FLAGS          = DEF(GCC44_X64_DLINK_FLAGS)\r
 *_GCC44_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
 \r
 \r
+####################################################################################\r
+#\r
+# GCC 4.5 - This configuration is used to compile under Linux to produce\r
+#           PE/COFF binaries using GCC 4.5.\r
+#\r
+####################################################################################\r
+*_GCC45_*_*_FAMILY               = GCC\r
+\r
+*_GCC45_*_MAKE_PATH                    = make\r
+*_GCC45_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
+\r
+*_GCC45_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)\r
+*_GCC45_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)\r
+*_GCC45_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC45_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)\r
+*_GCC45_*_APP_FLAGS                    =\r
+*_GCC45_*_ASL_FLAGS                    = DEF(IASL_FLAGS)\r
+*_GCC45_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)\r
+\r
+##################\r
+# GCC45 IA32 definitions\r
+##################\r
+*_GCC45_IA32_CC_PATH              = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_SLINK_PATH           = DEF(GCC45_IA32_PREFIX)ar\r
+*_GCC45_IA32_DLINK_PATH           = DEF(GCC45_IA32_PREFIX)ld\r
+*_GCC45_IA32_ASLDLINK_PATH        = DEF(GCC45_IA32_PREFIX)ld\r
+*_GCC45_IA32_ASM_PATH             = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_PP_PATH              = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_VFRPP_PATH           = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_ASLCC_PATH           = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_ASLPP_PATH           = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_RC_PATH              = DEF(GCC45_IA32_PREFIX)objcopy\r
+\r
+*_GCC45_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
+*_GCC45_IA32_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -m elf_i386\r
+*_GCC45_IA32_ASM_FLAGS            = DEF(GCC45_ASM_FLAGS) -m32 --32 -march=i386\r
+*_GCC45_IA32_CC_FLAGS             = DEF(GCC45_IA32_CC_FLAGS) -Os\r
+*_GCC45_IA32_DLINK_FLAGS          = DEF(GCC45_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC45_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
+\r
+##################\r
+# GCC45 X64 definitions\r
+##################\r
+*_GCC45_X64_CC_PATH              = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_SLINK_PATH           = DEF(GCC45_X64_PREFIX)ar\r
+*_GCC45_X64_DLINK_PATH           = DEF(GCC45_X64_PREFIX)ld\r
+*_GCC45_X64_ASLDLINK_PATH        = DEF(GCC45_X64_PREFIX)ld\r
+*_GCC45_X64_ASM_PATH             = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_PP_PATH              = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_VFRPP_PATH           = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_ASLCC_PATH           = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_ASLPP_PATH           = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_RC_PATH              = DEF(GCC45_X64_PREFIX)objcopy\r
+\r
+*_GCC45_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
+*_GCC45_X64_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64\r
+*_GCC45_X64_ASM_FLAGS            = DEF(GCC45_ASM_FLAGS) -m64 --64 -melf_x86_64\r
+*_GCC45_X64_CC_FLAGS             = DEF(GCC45_X64_CC_FLAGS)\r
+*_GCC45_X64_DLINK_FLAGS          = DEF(GCC45_X64_DLINK_FLAGS)\r
+*_GCC45_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
+\r
+\r
 ####################################################################################\r
 #\r
 # Cygwin GCC And Intel ACPI Compiler\r
@@ -1767,12 +1882,12 @@ DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)
 *_CYGGCC_IA32_ASLDLINK_FLAGS            = DEF(GCC_IA32_X64_ASLDLINK_FLAGS)\r
 *_CYGGCC_X64_ASLDLINK_FLAGS             = DEF(GCC_IA32_X64_ASLDLINK_FLAGS)\r
 *_CYGGCC_*_MAKE_FLAGS                   = /nologo\r
-*_CYGGCC_*_ASM_FLAGS                    = DEF(GCC_ASM_FLAGS)                             \r
+*_CYGGCC_*_ASM_FLAGS                    = DEF(GCC_ASM_FLAGS)\r
 *_CYGGCC_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)\r
 *_CYGGCC_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)\r
 *_CYGGCC_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)\r
 *_CYGGCC_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)\r
-*_CYGGCC_*_APP_FLAGS                    = \r
+*_CYGGCC_*_APP_FLAGS                    =\r
 *_CYGGCC_*_ASL_FLAGS                    = DEF(DEFAULT_WIN_ASL_FLAGS)\r
 *_CYGGCC_*_ASL_OUTFLAGS                 = DEF(DEFAULT_WIN_ASL_OUTFLAGS)\r
 \r
@@ -1877,7 +1992,7 @@ DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)
 # ASL definitions\r
 ##################\r
 *_CYGGCCxASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)\r
-*_CYGGCCxASL_*_ASL_FLAGS       = \r
+*_CYGGCCxASL_*_ASL_FLAGS       =\r
 *_CYGGCCxASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)\r
 *_CYGGCCxASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
 *_CYGGCCxASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
@@ -2086,7 +2201,7 @@ DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)
 *_ICC_IA32_CC_PATH                  = DEF(ICC_BIN32)\icl.exe\r
 *_ICC_IA32_SLINK_PATH               = DEF(ICC_BIN32)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC_IA32_SLINK_DLL                = DEF(MS_VS_BIN)\r
+*_ICC_IA32_SLINK_DLL                = DEF(MS_VS_DLL)\r
 *_ICC_IA32_DLINK_PATH               = DEF(ICC_BIN32)\xilink.exe\r
 *_ICC_IA32_PP_PATH                  = DEF(ICC_BIN32)\icl.exe\r
 *_ICC_IA32_VFRPP_PATH               = DEF(ICC_BIN32)\icl.exe\r
@@ -2102,8 +2217,8 @@ RELEASE_ICC_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UN
   DEBUG_ICC_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICC_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICC_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICC_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -2111,7 +2226,7 @@ RELEASE_ICC_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 *_ICC_X64_CC_PATH                   = DEF(ICC_BINX64)\icl.exe\r
 *_ICC_X64_SLINK_PATH                = DEF(ICC_BINX64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC_X64_SLINK_DLL                 = DEF(MS_VS_BIN)\r
+*_ICC_X64_SLINK_DLL                 = DEF(MS_VS_DLL)\r
 *_ICC_X64_DLINK_PATH                = DEF(ICC_BINX64)\xilink.exe\r
 *_ICC_X64_PP_PATH                   = DEF(ICC_BINX64)\icl.exe\r
 *_ICC_X64_VFRPP_PATH                = DEF(ICC_BINX64)\icl.exe\r
@@ -2126,8 +2241,8 @@ RELEASE_ICC_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 RELEASE_ICC_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICC_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICC_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICC_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICC_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -2136,10 +2251,10 @@ RELEASE_ICC_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 ##################\r
 *_ICC_IPF_CC_PATH                   = DEF(ICC_BIN64)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICC_IPF_CC_DLL                    = DEF(MS_VS_BIN)\r
+*_ICC_IPF_CC_DLL                    = DEF(MS_VS_DLL)\r
 *_ICC_IPF_SLINK_PATH                = DEF(ICC_BIN64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC_IPF_SLINK_DLL                 = DEF(MS_VS_BIN);DEF(MS_VS_DLL)\r
+*_ICC_IPF_SLINK_DLL                 = DEF(MS_VS_DLL)\r
 *_ICC_IPF_DLINK_PATH                = DEF(ICC_BIN64)\xilink.exe\r
 *_ICC_IPF_PP_PATH                   = DEF(ICC_BIN64)\icl.exe\r
 *_ICC_IPF_VFRPP_PATH                = DEF(ICC_BIN64)\icl.exe\r
@@ -2153,8 +2268,8 @@ RELEASE_ICC_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 RELEASE_ICC_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF\r
   DEBUG_ICC_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICC_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICC_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICC_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICC_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICC_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICC_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -2213,7 +2328,7 @@ RELEASE_ICC_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_ICCxASL_IA32_CC_PATH                  = DEF(ICC_BIN32)\icl.exe\r
 *_ICCxASL_IA32_SLINK_PATH               = DEF(ICC_BIN32)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCxASL_IA32_SLINK_DLL                = DEF(MS_VS_BIN)\r
+*_ICCxASL_IA32_SLINK_DLL                = DEF(MS_VS_DLL)\r
 *_ICCxASL_IA32_DLINK_PATH               = DEF(ICC_BIN32)\xilink.exe\r
 *_ICCxASL_IA32_PP_PATH                  = DEF(ICC_BIN32)\icl.exe\r
 *_ICCxASL_IA32_VFRPP_PATH               = DEF(ICC_BIN32)\icl.exe\r
@@ -2229,8 +2344,8 @@ RELEASE_ICCxASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /
   DEBUG_ICCxASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICCxASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICCxASL_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICCxASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICCxASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICCxASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICCxASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -2238,7 +2353,7 @@ RELEASE_ICCxASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:408
 *_ICCxASL_X64_CC_PATH                   = DEF(ICC_BINX64)\icl.exe\r
 *_ICCxASL_X64_SLINK_PATH                = DEF(ICC_BINX64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCxASL_X64_SLINK_DLL                 = DEF(MS_VS_BIN)\r
+*_ICCxASL_X64_SLINK_DLL                 = DEF(MS_VS_DLL)\r
 *_ICCxASL_X64_DLINK_PATH                = DEF(ICC_BINX64)\xilink.exe\r
 *_ICCxASL_X64_PP_PATH                   = DEF(ICC_BINX64)\icl.exe\r
 *_ICCxASL_X64_VFRPP_PATH                = DEF(ICC_BINX64)\icl.exe\r
@@ -2253,8 +2368,8 @@ RELEASE_ICCxASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:408
 RELEASE_ICCxASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICCxASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICCxASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICCxASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICCxASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICCxASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICCxASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICCxASL_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -2263,10 +2378,10 @@ RELEASE_ICCxASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:408
 ##################\r
 *_ICCxASL_IPF_CC_PATH                   = DEF(ICC_BIN64)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICCxASL_IPF_CC_DLL                    = DEF(MS_VS_BIN)\r
+*_ICCxASL_IPF_CC_DLL                    = DEF(MS_VS_DLL)\r
 *_ICCxASL_IPF_SLINK_PATH                = DEF(ICC_BIN64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCxASL_IPF_SLINK_DLL                 = DEF(MS_VS_BIN);DEF(MS_VS_DLL)\r
+*_ICCxASL_IPF_SLINK_DLL                 = DEF(MS_VS_DLL)\r
 *_ICCxASL_IPF_DLINK_PATH                = DEF(ICC_BIN64)\xilink.exe\r
 *_ICCxASL_IPF_PP_PATH                   = DEF(ICC_BIN64)\icl.exe\r
 *_ICCxASL_IPF_VFRPP_PATH                = DEF(ICC_BIN64)\icl.exe\r
@@ -2280,8 +2395,8 @@ RELEASE_ICCxASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:408
 RELEASE_ICCxASL_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF\r
   DEBUG_ICCxASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICCxASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICCxASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICCxASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICCxASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICCxASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICCxASL_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -2315,15 +2430,15 @@ RELEASE_ICCxASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 #   ICCx86              - Intel C Compiler V9.1\r
 *_ICCx86_*_*_FAMILY                    = INTEL\r
 \r
-*_ICCx86_*_MAKE_PATH                   = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICCx86_*_RC_PATH                     = DEF(VS2005x86_BIN)\rc.exe\r
+*_ICCx86_*_MAKE_PATH                   = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICCx86_*_RC_PATH                     = DEF(MS_VSx86_BIN)\rc.exe\r
 \r
 *_ICCx86_*_MAKE_FLAGS                       = /nologo\r
 *_ICCx86_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICCx86_*_APP_FLAGS                        = /nologo /E /TC\r
 *_ICCx86_*_PP_FLAGS                         = /nologo /E /TC /FIAutoGen.h\r
 \r
-*_ICCxASL_*_ASM16_PATH      = DEF(VS2005x86_BIN)\ml.exe\r
+*_ICCx86_*_ASM16_PATH      = DEF(MS_VSx86_BIN)\ml.exe\r
 \r
 ##################\r
 # ASL definitions\r
@@ -2341,13 +2456,13 @@ RELEASE_ICCxASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 *_ICCx86_IA32_CC_PATH                  = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86_IA32_SLINK_PATH               = DEF(ICC_BIN32x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCx86_IA32_SLINK_DLL                = DEF(VS2005x86_BIN)\r
+*_ICCx86_IA32_SLINK_DLL                = DEF(MS_VSx86_DLL)\r
 *_ICCx86_IA32_DLINK_PATH               = DEF(ICC_BIN32x86)\xilink.exe\r
 *_ICCx86_IA32_PP_PATH                  = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86_IA32_VFRPP_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86_IA32_APP_PATH                 = DEF(ICC_BIN32x86)\icl.exe\r
-*_ICCx86_IA32_ASM_PATH                 = DEF(VS2005x86_BIN)\ml.exe\r
-*_ICCx86_IA32_ASM_DLL                  = DEF(VS2005x86_DLL)\r
+*_ICCx86_IA32_ASM_PATH                 = DEF(MS_VSx86_BIN)\ml.exe\r
+*_ICCx86_IA32_ASM_DLL                  = DEF(MS_VSx86_DLL)\r
 *_ICCx86_IA32_ASLCC_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86_IA32_ASLPP_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86_IA32_ASLDLINK_PATH            = DEF(ICC_BIN32x86)\xilink.exe\r
@@ -2357,8 +2472,8 @@ RELEASE_ICCx86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D
   DEBUG_ICCx86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICCx86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICCx86_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICCx86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICCx86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICCx86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICCx86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -2366,13 +2481,13 @@ RELEASE_ICCx86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 *_ICCx86_X64_CC_PATH                   = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86_X64_SLINK_PATH                = DEF(ICC_BINX64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCx86_X64_SLINK_DLL                 = DEF(VS2005x86_BIN)\r
+*_ICCx86_X64_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICCx86_X64_DLINK_PATH                = DEF(ICC_BINX64x86)\xilink.exe\r
 *_ICCx86_X64_PP_PATH                   = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86_X64_VFRPP_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86_X64_APP_PATH                  = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86_X64_ASM_PATH                  = DEF(WINDDK_BINX64)\ml64.exe\r
-*_ICCx86_X64_ASM_DLL                   = DEF(VS2005x86_DLL)\r
+*_ICCx86_X64_ASM_DLL                   = DEF(MS_VSx86_DLL)\r
 *_ICCx86_X64_ASLCC_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86_X64_ASLPP_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86_X64_ASLDLINK_PATH             = DEF(ICC_BINX64x86)\xilink.exe\r
@@ -2381,8 +2496,8 @@ RELEASE_ICCx86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 RELEASE_ICCx86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICCx86_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICCx86_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICCx86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICCx86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICCx86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICCx86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICCx86_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -2391,10 +2506,10 @@ RELEASE_ICCx86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 ##################\r
 *_ICCx86_IPF_CC_PATH                   = DEF(ICC_BIN64x86)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICCx86_IPF_CC_DLL                    = DEF(VS2005x86_BIN)\r
+*_ICCx86_IPF_CC_DLL                    = DEF(MS_VSx86_DLL)\r
 *_ICCx86_IPF_SLINK_PATH                = DEF(ICC_BIN64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCx86_IPF_SLINK_DLL                 = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)\r
+*_ICCx86_IPF_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICCx86_IPF_DLINK_PATH                = DEF(ICC_BIN64x86)\xilink.exe\r
 *_ICCx86_IPF_PP_PATH                   = DEF(ICC_BIN64x86)\icl.exe\r
 *_ICCx86_IPF_VFRPP_PATH                = DEF(ICC_BIN64x86)\icl.exe\r
@@ -2408,8 +2523,8 @@ RELEASE_ICCx86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 RELEASE_ICCx86_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF\r
   DEBUG_ICCx86_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICCx86_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICCx86_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -2417,12 +2532,12 @@ RELEASE_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /
 ##################\r
 *_ICCx86_EBC_*_FAMILY              = INTEL\r
 \r
-*_ICCx86_EBC_MAKE_PATH             = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICCx86_EBC_PP_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICCx86_EBC_VFRPP_PATH            = DEF(EBC_BIN)\iec.exe\r
-*_ICCx86_EBC_CC_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICCx86_EBC_SLINK_PATH            = DEF(EBC_BIN)\link.exe\r
-*_ICCx86_EBC_DLINK_PATH            = DEF(EBC_BIN)\link.exe\r
+*_ICCx86_EBC_MAKE_PATH             = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICCx86_EBC_PP_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICCx86_EBC_VFRPP_PATH            = DEF(EBC_BINx86)\iec.exe\r
+*_ICCx86_EBC_CC_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICCx86_EBC_SLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
+*_ICCx86_EBC_DLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
 \r
 *_ICCx86_EBC_MAKE_FLAGS                 = /nologo\r
 *_ICCx86_EBC_PP_FLAGS                   = /nologo /E /TC /FIAutoGen.h\r
@@ -2443,15 +2558,15 @@ RELEASE_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /
 #   ICCx86xASL              - Intel C Compiler V9.1\r
 *_ICCx86xASL_*_*_FAMILY                    = INTEL\r
 \r
-*_ICCx86xASL_*_MAKE_PATH                   = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICCx86xASL_*_RC_PATH                     = DEF(VS2005x86_BIN)\rc.exe\r
+*_ICCx86xASL_*_MAKE_PATH                   = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICCx86xASL_*_RC_PATH                     = DEF(MS_VSx86_BIN)\rc.exe\r
 \r
 *_ICCx86xASL_*_MAKE_FLAGS                       = /nologo\r
 *_ICCx86xASL_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICCx86xASL_*_APP_FLAGS                        = /nologo /E /TC\r
 *_ICCx86xASL_*_PP_FLAGS                         = /nologo /E /TC /FIAutoGen.h\r
 \r
-*_ICCx86ASL_*_ASM16_PATH      = DEF(VS2005x86_BIN)\ml.exe\r
+*_ICCx86xASL_*_ASM16_PATH      = DEF(MS_VSx86_BIN)\ml.exe\r
 \r
 ##################\r
 # ASL definitions\r
@@ -2469,13 +2584,13 @@ RELEASE_ICCx86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /
 *_ICCx86xASL_IA32_CC_PATH                  = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86xASL_IA32_SLINK_PATH               = DEF(ICC_BIN32x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCx86xASL_IA32_SLINK_DLL                = DEF(VS2005x86_BIN)\r
+*_ICCx86xASL_IA32_SLINK_DLL                = DEF(MS_VSx86_DLL)\r
 *_ICCx86xASL_IA32_DLINK_PATH               = DEF(ICC_BIN32x86)\xilink.exe\r
 *_ICCx86xASL_IA32_PP_PATH                  = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86xASL_IA32_VFRPP_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86xASL_IA32_APP_PATH                 = DEF(ICC_BIN32x86)\icl.exe\r
-*_ICCx86xASL_IA32_ASM_PATH                 = DEF(VS2005x86_BIN)\ml.exe\r
-*_ICCx86xASL_IA32_ASM_DLL                  = DEF(VS2005x86_DLL)\r
+*_ICCx86xASL_IA32_ASM_PATH                 = DEF(MS_VSx86_BIN)\ml.exe\r
+*_ICCx86xASL_IA32_ASM_DLL                  = DEF(MS_VSx86_DLL)\r
 *_ICCx86xASL_IA32_ASLCC_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86xASL_IA32_ASLPP_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86xASL_IA32_ASLDLINK_PATH            = DEF(ICC_BIN32x86)\xilink.exe\r
@@ -2485,8 +2600,8 @@ RELEASE_ICCx86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs3276
   DEBUG_ICCx86xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICCx86xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICCx86xASL_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICCx86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICCx86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICCx86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICCx86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -2494,13 +2609,13 @@ RELEASE_ICCx86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:
 *_ICCx86xASL_X64_CC_PATH                   = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86xASL_X64_SLINK_PATH                = DEF(ICC_BINX64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCx86xASL_X64_SLINK_DLL                 = DEF(VS2005x86_BIN)\r
+*_ICCx86xASL_X64_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICCx86xASL_X64_DLINK_PATH                = DEF(ICC_BINX64x86)\xilink.exe\r
 *_ICCx86xASL_X64_PP_PATH                   = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86xASL_X64_VFRPP_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86xASL_X64_APP_PATH                  = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86xASL_X64_ASM_PATH                  = DEF(WINDDK_BINX64)\ml64.exe\r
-*_ICCx86xASL_X64_ASM_DLL                   = DEF(VS2005x86_DLL)\r
+*_ICCx86xASL_X64_ASM_DLL                   = DEF(MS_VSx86_DLL)\r
 *_ICCx86xASL_X64_ASLCC_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86xASL_X64_ASLPP_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86xASL_X64_ASLDLINK_PATH             = DEF(ICC_BINX64x86)\xilink.exe\r
@@ -2509,8 +2624,8 @@ RELEASE_ICCx86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:
 RELEASE_ICCx86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICCx86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICCx86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICCx86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICCx86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICCx86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICCx86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICCx86xASL_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -2519,10 +2634,10 @@ RELEASE_ICCx86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:
 ##################\r
 *_ICCx86xASL_IPF_CC_PATH                   = DEF(ICC_BIN64x86)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICCx86xASL_IPF_CC_DLL                    = DEF(VS2005x86_BIN)\r
+*_ICCx86xASL_IPF_CC_DLL                    = DEF(MS_VSx86_DLL)\r
 *_ICCx86xASL_IPF_SLINK_PATH                = DEF(ICC_BIN64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICCx86xASL_IPF_SLINK_DLL                 = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)\r
+*_ICCx86xASL_IPF_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICCx86xASL_IPF_DLINK_PATH                = DEF(ICC_BIN64x86)\xilink.exe\r
 *_ICCx86xASL_IPF_PP_PATH                   = DEF(ICC_BIN64x86)\icl.exe\r
 *_ICCx86xASL_IPF_VFRPP_PATH                = DEF(ICC_BIN64x86)\icl.exe\r
@@ -2536,8 +2651,8 @@ RELEASE_ICCx86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:
 RELEASE_ICCx86xASL_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF\r
   DEBUG_ICCx86xASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICCx86xASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICCx86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICCx86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICCx86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICCx86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICCx86xASL_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -2545,12 +2660,12 @@ RELEASE_ICCx86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /D
 ##################\r
 *_ICCx86xASL_EBC_*_FAMILY              = INTEL\r
 \r
-*_ICCx86xASL_EBC_MAKE_PATH             = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICCx86xASL_EBC_PP_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICCx86xASL_EBC_VFRPP_PATH            = DEF(EBC_BIN)\iec.exe\r
-*_ICCx86xASL_EBC_CC_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICCx86xASL_EBC_SLINK_PATH            = DEF(EBC_BIN)\link.exe\r
-*_ICCx86xASL_EBC_DLINK_PATH            = DEF(EBC_BIN)\link.exe\r
+*_ICCx86xASL_EBC_MAKE_PATH             = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICCx86xASL_EBC_PP_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICCx86xASL_EBC_VFRPP_PATH            = DEF(EBC_BINx86)\iec.exe\r
+*_ICCx86xASL_EBC_CC_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICCx86xASL_EBC_SLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
+*_ICCx86xASL_EBC_DLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
 \r
 *_ICCx86xASL_EBC_MAKE_FLAGS                 = /nologo\r
 *_ICCx86xASL_EBC_PP_FLAGS                   = /nologo /E /TC /FIAutoGen.h\r
@@ -2598,7 +2713,7 @@ RELEASE_ICCx86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /D
 *_ICC11_IA32_CC_PATH                  = DEF(ICC11_BIN32)\icl.exe\r
 *_ICC11_IA32_SLINK_PATH               = DEF(ICC11_BIN32)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11_IA32_SLINK_DLL                = DEF(MS_VS_BIN)\r
+*_ICC11_IA32_SLINK_DLL                = DEF(MS_VS_DLL)\r
 *_ICC11_IA32_DLINK_PATH               = DEF(ICC11_BIN32)\xilink.exe\r
 *_ICC11_IA32_PP_PATH                  = DEF(ICC11_BIN32)\icl.exe\r
 *_ICC11_IA32_VFRPP_PATH               = DEF(ICC11_BIN32)\icl.exe\r
@@ -2614,8 +2729,8 @@ RELEASE_ICC11_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D
   DEBUG_ICC11_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICC11_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICC11_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICC11_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -2623,7 +2738,7 @@ RELEASE_ICC11_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 *_ICC11_X64_CC_PATH                   = DEF(ICC11_BINX64)\icl.exe\r
 *_ICC11_X64_SLINK_PATH                = DEF(ICC11_BINX64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11_X64_SLINK_DLL                 = DEF(MS_VS_BIN)\r
+*_ICC11_X64_SLINK_DLL                 = DEF(MS_VS_DLL)\r
 *_ICC11_X64_DLINK_PATH                = DEF(ICC11_BINX64)\xilink.exe\r
 *_ICC11_X64_PP_PATH                   = DEF(ICC11_BINX64)\icl.exe\r
 *_ICC11_X64_VFRPP_PATH                = DEF(ICC11_BINX64)\icl.exe\r
@@ -2638,8 +2753,8 @@ RELEASE_ICC11_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 RELEASE_ICC11_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICC11_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICC11_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICC11_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -2648,7 +2763,7 @@ RELEASE_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 ##################\r
 *_ICC11_IPF_CC_PATH                   = DEF(ICC11_BIN64)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICC11_IPF_CC_DLL                    = DEF(MS_VS_BIN)\r
+*_ICC11_IPF_CC_DLL                    = DEF(MS_VS_DLL)\r
 *_ICC11_IPF_SLINK_PATH                = DEF(ICC11_BIN64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
 *_ICC11_IPF_SLINK_DLL                 = DEF(MS_VS_BIN);DEF(MS_VS_DLL)\r
@@ -2665,8 +2780,8 @@ RELEASE_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086
 RELEASE_ICC11_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding\r
   DEBUG_ICC11_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICC11_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICC11_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICC11_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICC11_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICC11_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICC11_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -2727,7 +2842,7 @@ RELEASE_ICC11_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /O
 *_ICC11xASL_IA32_CC_PATH                  = DEF(ICC11_BIN32)\icl.exe\r
 *_ICC11xASL_IA32_SLINK_PATH               = DEF(ICC11_BIN32)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11xASL_IA32_SLINK_DLL                = DEF(MS_VS_BIN)\r
+*_ICC11xASL_IA32_SLINK_DLL                = DEF(MS_VS_DLL)\r
 *_ICC11xASL_IA32_DLINK_PATH               = DEF(ICC11_BIN32)\xilink.exe\r
 *_ICC11xASL_IA32_PP_PATH                  = DEF(ICC11_BIN32)\icl.exe\r
 *_ICC11xASL_IA32_VFRPP_PATH               = DEF(ICC11_BIN32)\icl.exe\r
@@ -2743,8 +2858,8 @@ RELEASE_ICC11xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768
   DEBUG_ICC11xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICC11xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICC11xASL_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICC11xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -2752,7 +2867,7 @@ RELEASE_ICC11xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4
 *_ICC11xASL_X64_CC_PATH                   = DEF(ICC11_BINX64)\icl.exe\r
 *_ICC11xASL_X64_SLINK_PATH                = DEF(ICC11_BINX64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11xASL_X64_SLINK_DLL                 = DEF(MS_VS_BIN)\r
+*_ICC11xASL_X64_SLINK_DLL                 = DEF(MS_VS_DLL)\r
 *_ICC11xASL_X64_DLINK_PATH                = DEF(ICC11_BINX64)\xilink.exe\r
 *_ICC11xASL_X64_PP_PATH                   = DEF(ICC11_BINX64)\icl.exe\r
 *_ICC11xASL_X64_VFRPP_PATH                = DEF(ICC11_BINX64)\icl.exe\r
@@ -2767,8 +2882,8 @@ RELEASE_ICC11xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4
 RELEASE_ICC11xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICC11xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICC11xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICC11xASL_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -2777,10 +2892,10 @@ RELEASE_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4
 ##################\r
 *_ICC11xASL_IPF_CC_PATH                   = DEF(ICC11_BIN64)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICC11xASL_IPF_CC_DLL                    = DEF(MS_VS_BIN)\r
+*_ICC11xASL_IPF_CC_DLL                    = DEF(MS_VS_DLL)\r
 *_ICC11xASL_IPF_SLINK_PATH                = DEF(ICC11_BIN64)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11xASL_IPF_SLINK_DLL                 = DEF(MS_VS_BIN);DEF(MS_VS_DLL)\r
+*_ICC11xASL_IPF_SLINK_DLL                 = DEF(MS_VS_DLL)\r
 *_ICC11xASL_IPF_DLINK_PATH                = DEF(ICC11_BIN64)\xilink.exe\r
 *_ICC11xASL_IPF_PP_PATH                   = DEF(ICC11_BIN64)\icl.exe\r
 *_ICC11xASL_IPF_VFRPP_PATH                = DEF(ICC11_BIN64)\icl.exe\r
@@ -2794,8 +2909,8 @@ RELEASE_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4
 RELEASE_ICC11xASL_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding\r
   DEBUG_ICC11xASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICC11xASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICC11xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICC11xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICC11xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICC11xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICC11xASL_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -2831,15 +2946,15 @@ RELEASE_ICC11xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DL
 #   ICC11x86              - Intel C Compiler V11.1\r
 *_ICC11x86_*_*_FAMILY                    = INTEL\r
 \r
-*_ICC11x86_*_MAKE_PATH                   = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICC11x86_*_RC_PATH                     = DEF(VS2005x86_BIN)\rc.exe\r
+*_ICC11x86_*_MAKE_PATH                   = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICC11x86_*_RC_PATH                     = DEF(MS_VSx86_BIN)\rc.exe\r
 \r
 *_ICC11x86_*_MAKE_FLAGS                       = /nologo\r
 *_ICC11x86_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICC11x86_*_APP_FLAGS                        = /nologo /E /TC\r
 *_ICC11x86_*_PP_FLAGS                         = /nologo /E /TC /FIAutoGen.h\r
 \r
-*_ICC11x86_*_ASM16_PATH      = DEF(VS2005x86_BIN)\ml.exe\r
+*_ICC11x86_*_ASM16_PATH      = DEF(MS_VSx86_BIN)\ml.exe\r
 \r
 ##################\r
 # ASL definitions\r
@@ -2857,13 +2972,13 @@ RELEASE_ICC11xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DL
 *_ICC11x86_IA32_CC_PATH                  = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86_IA32_SLINK_PATH               = DEF(ICC11_BIN32x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11x86_IA32_SLINK_DLL                = DEF(VS2005x86_BIN)\r
+*_ICC11x86_IA32_SLINK_DLL                = DEF(MS_VSx86_DLL)\r
 *_ICC11x86_IA32_DLINK_PATH               = DEF(ICC11_BIN32x86)\xilink.exe\r
 *_ICC11x86_IA32_PP_PATH                  = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86_IA32_VFRPP_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86_IA32_APP_PATH                 = DEF(ICC11_BIN32x86)\icl.exe\r
-*_ICC11x86_IA32_ASM_PATH                 = DEF(VS2005x86_BIN)\ml.exe\r
-*_ICC11x86_IA32_ASM_DLL                  = DEF(VS2005x86_DLL)\r
+*_ICC11x86_IA32_ASM_PATH                 = DEF(MS_VSx86_BIN)\ml.exe\r
+*_ICC11x86_IA32_ASM_DLL                  = DEF(MS_VSx86_DLL)\r
 *_ICC11x86_IA32_ASLCC_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86_IA32_ASLPP_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86_IA32_ASLDLINK_PATH            = DEF(ICC11_BIN32x86)\xilink.exe\r
@@ -2873,8 +2988,8 @@ RELEASE_ICC11x86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768
   DEBUG_ICC11x86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICC11x86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICC11x86_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICC11x86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11x86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11x86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11x86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -2882,13 +2997,13 @@ RELEASE_ICC11x86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:40
 *_ICC11x86_X64_CC_PATH                   = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86_X64_SLINK_PATH                = DEF(ICC11_BINX64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11x86_X64_SLINK_DLL                 = DEF(VS2005x86_BIN)\r
+*_ICC11x86_X64_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICC11x86_X64_DLINK_PATH                = DEF(ICC11_BINX64x86)\xilink.exe\r
 *_ICC11x86_X64_PP_PATH                   = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86_X64_VFRPP_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86_X64_APP_PATH                  = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86_X64_ASM_PATH                  = DEF(WINDDK_BINX64)\ml64.exe\r
-*_ICC11x86_X64_ASM_DLL                   = DEF(VS2005x86_DLL)\r
+*_ICC11x86_X64_ASM_DLL                   = DEF(MS_VSx86_DLL)\r
 *_ICC11x86_X64_ASLCC_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86_X64_ASLPP_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86_X64_ASLDLINK_PATH             = DEF(ICC11_BINX64x86)\xilink.exe\r
@@ -2897,8 +3012,8 @@ RELEASE_ICC11x86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:40
 RELEASE_ICC11x86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICC11x86_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICC11x86_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICC11x86_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -2907,10 +3022,10 @@ RELEASE_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:40
 ##################\r
 *_ICC11x86_IPF_CC_PATH                   = DEF(ICC11_BIN64x86)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICC11x86_IPF_CC_DLL                    = DEF(VS2005x86_BIN)\r
+*_ICC11x86_IPF_CC_DLL                    = DEF(MS_VSx86_DLL)\r
 *_ICC11x86_IPF_SLINK_PATH                = DEF(ICC11_BIN64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11x86_IPF_SLINK_DLL                 = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)\r
+*_ICC11x86_IPF_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICC11x86_IPF_DLINK_PATH                = DEF(ICC11_BIN64x86)\xilink.exe\r
 *_ICC11x86_IPF_PP_PATH                   = DEF(ICC11_BIN64x86)\icl.exe\r
 *_ICC11x86_IPF_VFRPP_PATH                = DEF(ICC11_BIN64x86)\icl.exe\r
@@ -2924,8 +3039,8 @@ RELEASE_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:40
 RELEASE_ICC11x86_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding\r
   DEBUG_ICC11x86_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICC11x86_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICC11x86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICC11x86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICC11x86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICC11x86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICC11x86_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -2933,12 +3048,12 @@ RELEASE_ICC11x86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 ##################\r
 *_ICC11x86_EBC_*_FAMILY              = INTEL\r
 \r
-*_ICC11x86_EBC_MAKE_PATH             = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICC11x86_EBC_PP_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICC11x86_EBC_VFRPP_PATH            = DEF(EBC_BIN)\iec.exe\r
-*_ICC11x86_EBC_CC_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICC11x86_EBC_SLINK_PATH            = DEF(EBC_BIN)\link.exe\r
-*_ICC11x86_EBC_DLINK_PATH            = DEF(EBC_BIN)\link.exe\r
+*_ICC11x86_EBC_MAKE_PATH             = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICC11x86_EBC_PP_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICC11x86_EBC_VFRPP_PATH            = DEF(EBC_BINx86)\iec.exe\r
+*_ICC11x86_EBC_CC_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICC11x86_EBC_SLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
+*_ICC11x86_EBC_DLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
 \r
 *_ICC11x86_EBC_MAKE_FLAGS                 = /nologo\r
 *_ICC11x86_EBC_PP_FLAGS                   = /nologo /E /TC /FIAutoGen.h\r
@@ -2961,15 +3076,15 @@ RELEASE_ICC11x86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 #   ICC11x86xASL              - Intel C Compiler V11.1\r
 *_ICC11x86xASL_*_*_FAMILY                    = INTEL\r
 \r
-*_ICC11x86xASL_*_MAKE_PATH                   = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICC11x86xASL_*_RC_PATH                     = DEF(VS2005x86_BIN)\rc.exe\r
+*_ICC11x86xASL_*_MAKE_PATH                   = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICC11x86xASL_*_RC_PATH                     = DEF(MS_VSx86_BIN)\rc.exe\r
 \r
 *_ICC11x86xASL_*_MAKE_FLAGS                       = /nologo\r
 *_ICC11x86xASL_*_VFRPP_FLAGS                      = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
 *_ICC11x86xASL_*_APP_FLAGS                        = /nologo /E /TC\r
 *_ICC11x86xASL_*_PP_FLAGS                         = /nologo /E /TC /FIAutoGen.h\r
 \r
-*_ICC11x86xASL_*_ASM16_PATH      = DEF(VS2005x86_BIN)\ml.exe\r
+*_ICC11x86xASL_*_ASM16_PATH      = DEF(MS_VSx86_BIN)\ml.exe\r
 \r
 ##################\r
 # ASL definitions\r
@@ -2987,13 +3102,13 @@ RELEASE_ICC11x86_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 *_ICC11x86xASL_IA32_CC_PATH                  = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86xASL_IA32_SLINK_PATH               = DEF(ICC11_BIN32x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11x86xASL_IA32_SLINK_DLL                = DEF(VS2005x86_BIN)\r
+*_ICC11x86xASL_IA32_SLINK_DLL                = DEF(MS_VSx86_DLL)\r
 *_ICC11x86xASL_IA32_DLINK_PATH               = DEF(ICC11_BIN32x86)\xilink.exe\r
 *_ICC11x86xASL_IA32_PP_PATH                  = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86xASL_IA32_VFRPP_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86xASL_IA32_APP_PATH                 = DEF(ICC11_BIN32x86)\icl.exe\r
-*_ICC11x86xASL_IA32_ASM_PATH                 = DEF(VS2005x86_BIN)\ml.exe\r
-*_ICC11x86xASL_IA32_ASM_DLL                  = DEF(VS2005x86_DLL)\r
+*_ICC11x86xASL_IA32_ASM_PATH                 = DEF(MS_VSx86_BIN)\ml.exe\r
+*_ICC11x86xASL_IA32_ASM_DLL                  = DEF(MS_VSx86_DLL)\r
 *_ICC11x86xASL_IA32_ASLCC_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86xASL_IA32_ASLPP_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86xASL_IA32_ASLDLINK_PATH            = DEF(ICC11_BIN32x86)\xilink.exe\r
@@ -3003,8 +3118,8 @@ RELEASE_ICC11x86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32
   DEBUG_ICC11x86xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICC11x86xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
       *_ICC11x86xASL_IA32_SLINK_FLAGS             = /nologo\r
-  DEBUG_ICC11x86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11x86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # X64 definitions\r
@@ -3012,13 +3127,13 @@ RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNOR
 *_ICC11x86xASL_X64_CC_PATH                   = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86xASL_X64_SLINK_PATH                = DEF(ICC11_BINX64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11x86xASL_X64_SLINK_DLL                 = DEF(VS2005x86_BIN)\r
+*_ICC11x86xASL_X64_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICC11x86xASL_X64_DLINK_PATH                = DEF(ICC11_BINX64x86)\xilink.exe\r
 *_ICC11x86xASL_X64_PP_PATH                   = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86xASL_X64_VFRPP_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86xASL_X64_APP_PATH                  = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86xASL_X64_ASM_PATH                  = DEF(WINDDK_BINX64)\ml64.exe\r
-*_ICC11x86xASL_X64_ASM_DLL                   = DEF(VS2005x86_DLL)\r
+*_ICC11x86xASL_X64_ASM_DLL                   = DEF(MS_VSx86_DLL)\r
 *_ICC11x86xASL_X64_ASLCC_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86xASL_X64_ASLPP_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86xASL_X64_ASLDLINK_PATH             = DEF(ICC11_BINX64x86)\xilink.exe\r
@@ -3027,8 +3142,8 @@ RELEASE_ICC11x86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNOR
 RELEASE_ICC11x86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
   DEBUG_ICC11x86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_ICC11x86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
       *_ICC11x86xASL_X64_SLINK_FLAGS              = /nologo /LTCG\r
 \r
 \r
@@ -3037,10 +3152,10 @@ RELEASE_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNOR
 ##################\r
 *_ICC11x86xASL_IPF_CC_PATH                   = DEF(ICC11_BIN64x86)\icl.exe\r
 # icl.exe needs cl.exe from Visual Studio\r
-*_ICC11x86xASL_IPF_CC_DLL                    = DEF(VS2005x86_BIN)\r
+*_ICC11x86xASL_IPF_CC_DLL                    = DEF(MS_VSx86_DLL)\r
 *_ICC11x86xASL_IPF_SLINK_PATH                = DEF(ICC11_BIN64x86)\xilib.exe\r
 # xilib.exe needs lib.exe from Visual Studio\r
-*_ICC11x86xASL_IPF_SLINK_DLL                 = DEF(VS2005x86_BIN);DEF(VS2005x86_DLL)\r
+*_ICC11x86xASL_IPF_SLINK_DLL                 = DEF(MS_VSx86_DLL)\r
 *_ICC11x86xASL_IPF_DLINK_PATH                = DEF(ICC11_BIN64x86)\xilink.exe\r
 *_ICC11x86xASL_IPF_PP_PATH                   = DEF(ICC11_BIN64x86)\icl.exe\r
 *_ICC11x86xASL_IPF_VFRPP_PATH                = DEF(ICC11_BIN64x86)\icl.exe\r
@@ -3054,8 +3169,8 @@ RELEASE_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNOR
 RELEASE_ICC11x86xASL_IPF_CC_FLAGS                 = /nologo /c /WX /W4 /GX /Gy /Od /FI$(DEST_DIR_DEBUG)/AutoGen.h /QIA64_fr32 /GF /Qfreestanding\r
   DEBUG_ICC11x86xASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -d debug -F COFF32\r
 RELEASE_ICC11x86xASL_IPF_ASM_FLAGS                = -N us -X explicit -M ilp64 -N so -W3 -F COFF32\r
-  DEBUG_ICC11x86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4086 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
+  DEBUG_ICC11x86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:64 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEST_DIR_DEBUG)/$(BASE_NAME).pdb\r
       *_ICC11x86xASL_IPF_SLINK_FLAGS              = /nologo\r
 \r
 ##################\r
@@ -3063,12 +3178,12 @@ RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG
 ##################\r
 *_ICC11x86xASL_EBC_*_FAMILY              = INTEL\r
 \r
-*_ICC11x86xASL_EBC_MAKE_PATH             = DEF(VS2005x86_BIN)\nmake.exe\r
-*_ICC11x86xASL_EBC_PP_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICC11x86xASL_EBC_VFRPP_PATH            = DEF(EBC_BIN)\iec.exe\r
-*_ICC11x86xASL_EBC_CC_PATH               = DEF(EBC_BIN)\iec.exe\r
-*_ICC11x86xASL_EBC_SLINK_PATH            = DEF(EBC_BIN)\link.exe\r
-*_ICC11x86xASL_EBC_DLINK_PATH            = DEF(EBC_BIN)\link.exe\r
+*_ICC11x86xASL_EBC_MAKE_PATH             = DEF(MS_VSx86_BIN)\nmake.exe\r
+*_ICC11x86xASL_EBC_PP_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICC11x86xASL_EBC_VFRPP_PATH            = DEF(EBC_BINx86)\iec.exe\r
+*_ICC11x86xASL_EBC_CC_PATH               = DEF(EBC_BINx86)\iec.exe\r
+*_ICC11x86xASL_EBC_SLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
+*_ICC11x86xASL_EBC_DLINK_PATH            = DEF(EBC_BINx86)\link.exe\r
 \r
 *_ICC11x86xASL_EBC_MAKE_FLAGS                 = /nologo\r
 *_ICC11x86xASL_EBC_PP_FLAGS                   = /nologo /E /TC /FIAutoGen.h\r
@@ -3131,8 +3246,8 @@ RELEASE_ICC11x86xASL_IPF_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /LTCG
 RELEASE_MYTOOLS_IA32_CC_FLAGS            = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_MYTOOLS_IA32_ASM_FLAGS           = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
 RELEASE_MYTOOLS_IA32_ASM_FLAGS           = /nologo /c /WX /W3 /coff /Cx /Zd\r
-  DEBUG_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
-RELEASE_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+RELEASE_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:I386 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
 \r
 ##################\r
 # x64 definitions\r
@@ -3156,8 +3271,8 @@ RELEASE_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 RELEASE_MYTOOLS_X64_CC_FLAGS             = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
   DEBUG_MYTOOLS_X64_ASM_FLAGS            = /nologo /c /WX /W3 /Cx /Zd /Zi\r
 RELEASE_MYTOOLS_X64_ASM_FLAGS            = /nologo /c /WX /W3 /Cx /Zd\r
-  DEBUG_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
-RELEASE_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
+  DEBUG_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text\r
 \r
 ##################\r
 # IPF definitions\r
@@ -3180,8 +3295,8 @@ RELEASE_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4086 /O
 RELEASE_MYTOOLS_IPF_CC_FLAGS             = /nologo /c /WX /GS- /X /W4 /Gy /Ox /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zx /QIPF_fr32\r
   DEBUG_MYTOOLS_IPF_ASM_FLAGS            = -N us -X explicit -M ilp64 -N so -W4 -d debug\r
 RELEASE_MYTOOLS_IPF_ASM_FLAGS            = -N us -X explicit -M ilp64 -N so -W4\r
-  DEBUG_MYTOOLS_IPF_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
-RELEASE_MYTOOLS_IPF_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4086 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
+  DEBUG_MYTOOLS_IPF_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG\r
+RELEASE_MYTOOLS_IPF_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF /OPT:ICF=10 /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEST_DIR_DEBUG)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb\r
       *_MYTOOLS_IPF_SLINK_FLAGS          = /nologo /LTCG\r
 \r
 ##################\r
@@ -3189,13 +3304,13 @@ RELEASE_MYTOOLS_IPF_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 ##################\r
 *_MYTOOLS_EBC_*_FAMILY              = INTEL\r
 \r
-*_MYTOOLS_EBC_MAKE_PATH             = DEF(VS2005_BIN)\nmake.exe\r
+*_MYTOOLS_EBC_MAKE_PATH             = DEF(VS2008_BIN)\nmake.exe\r
 *_MYTOOLS_EBC_PP_PATH               = DEF(EBC_BIN)\iec.exe\r
 *_MYTOOLS_EBC_VFRPP_PATH            = DEF(EBC_BIN)\iec.exe\r
 *_MYTOOLS_EBC_CC_PATH               = DEF(EBC_BIN)\iec.exe\r
 *_MYTOOLS_EBC_SLINK_PATH            = DEF(EBC_BIN)\link.exe\r
 *_MYTOOLS_EBC_DLINK_PATH            = DEF(EBC_BIN)\link.exe\r
-*_MYTOOLS_EBC_RC_PATH               = DEF(VS2005_BIN)\rc.exe\r
+*_MYTOOLS_EBC_RC_PATH               = DEF(VS2008_BIN)\rc.exe\r
 \r
 *_MYTOOLS_EBC_MAKE_FLAGS                 = /nologo\r
 *_MYTOOLS_EBC_PP_FLAGS                   = /nologo /E /TC /FIAutoGen.h\r
@@ -3225,7 +3340,7 @@ RELEASE_MYTOOLS_IPF_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_XCODE32_*_MTOC_PATH        = /usr/local/bin/mtoc\r
 \r
   DEBUG_XCODE32_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll\r
-RELEASE_XCODE32_*_MTOC_FLAGS = -align 0x20 \r
+RELEASE_XCODE32_*_MTOC_FLAGS = -align 0x20\r
 \r
 ##################\r
 # IA32 definitions\r
@@ -3245,7 +3360,7 @@ RELEASE_XCODE32_*_MTOC_FLAGS = -align 0x20
 RELEASE_XCODE32_IA32_DLINK_FLAGS      = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 *_XCODE32_IA32_SLINK_FLAGS      = -static -o\r
   DEBUG_XCODE32_IA32_ASM_FLAGS  = -arch i386 -g\r
-RELEASE_XCODE32_IA32_ASM_FLAGS  = -arch i386 \r
+RELEASE_XCODE32_IA32_ASM_FLAGS  = -arch i386\r
 *_XCODE32_IA32_PP_FLAGS         = -arch i386 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_XCODE32_IA32_VFRPP_FLAGS      = -arch i386 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
   DEBUG_XCODE32_IA32_CC_FLAGS   = -arch i386 -save-temps -g -O0 -combine -mms-bitfields  -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces  -c -include AutoGen.h -mdynamic-no-pic -fno-stack-protector\r
@@ -3253,11 +3368,11 @@ RELEASE_XCODE32_IA32_CC_FLAGS   = -arch i386 -Oz -combine -mms-bitfields  -fshor
 \r
 *_XCODE32_IA32_ASLCC_FLAGS      = -arch i386 -x c -save-temps -g -O0 -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h -mdynamic-no-pic\r
 *_XCODE32_IA32_ASLDLINK_FLAGS   = -arch i386 -e _main -preload -segalign 0x20  -pie -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-*_XCODE32_IA32_ASLPP_FLAGS      = -arch i386 -x c -E \r
+*_XCODE32_IA32_ASLPP_FLAGS      = -arch i386 -x c -E\r
 *_XCODE32_IA32_ASL_FLAGS        =\r
 \r
 ##################\r
-# X64 definitions - still a work in progress. This tool chain does not produce \r
+# X64 definitions - still a work in progress. This tool chain does not produce\r
 # the correct ABI, it is just used to compile the code....\r
 ##################\r
 *_XCODE32_X64_CC_PATH       = gcc-4.2\r
@@ -3275,7 +3390,7 @@ RELEASE_XCODE32_IA32_CC_FLAGS   = -arch i386 -Oz -combine -mms-bitfields  -fshor
 *_XCODE32_X64_SLINK_FLAGS      = -static -o\r
 \r
   DEBUG_XCODE32_X64_ASM_FLAGS  = -arch x86_64 -g\r
-RELEASE_XCODE32_X64_ASM_FLAGS  = -arch x86_64 \r
+RELEASE_XCODE32_X64_ASM_FLAGS  = -arch x86_64\r
 *_XCODE32_X64_PP_FLAGS         = -arch x86_64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_XCODE32_X64_VFRPP_FLAGS      = -arch x86_64 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
 \r
@@ -3287,8 +3402,8 @@ RELEASE_XCODE32_X64_CC_FLAGS   = -arch x86_64 -Oz -combine -mms-bitfields -fshor
 ##################\r
 \r
 *_XCODE32_ARM_ARCHCC_FLAGS    = -arch armv7 -march=armv7 -mthumb\r
-*_XCODE32_ARM_ARCHASM_FLAGS   = -arch armv7 \r
-*_XCODE32_ARM_ARCHDLINK_FLAGS = -arch armv7 \r
+*_XCODE32_ARM_ARCHASM_FLAGS   = -arch armv7\r
+*_XCODE32_ARM_ARCHDLINK_FLAGS = -arch armv7\r
 *_XCODE32_ARM_PLATFORM_FLAGS  =\r
 \r
 *_XCODE32_ARM_CC_PATH       = DEF(IPHONE_TOOLS)/usr/bin/gcc\r
@@ -3298,13 +3413,13 @@ RELEASE_XCODE32_X64_CC_FLAGS   = -arch x86_64 -Oz -combine -mms-bitfields -fshor
 *_XCODE32_ARM_PP_PATH       = DEF(IPHONE_TOOLS)/usr/bin/gcc\r
 *_XCODE32_ARM_VFRPP_PATH    = DEF(IPHONE_TOOLS)/usr/bin/gcc\r
 \r
-  DEBUG_XCODE32_ARM_DLINK_FLAGS      = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map \r
-RELEASE_XCODE32_ARM_DLINK_FLAGS      = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map \r
+  DEBUG_XCODE32_ARM_DLINK_FLAGS      = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+RELEASE_XCODE32_ARM_DLINK_FLAGS      = $(ARCHDLINK_FLAGS) -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x220 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 \r
 *_XCODE32_ARM_SLINK_FLAGS      = -static -o\r
 \r
   DEBUG_XCODE32_ARM_ASM_FLAGS  = $(ARCHASM_FLAGS) -g\r
-RELEASE_XCODE32_ARM_ASM_FLAGS  = $(ARCHASM_FLAGS) \r
+RELEASE_XCODE32_ARM_ASM_FLAGS  = $(ARCHASM_FLAGS)\r
 *_XCODE32_ARM_PP_FLAGS         = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
 *_XCODE32_ARM_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
 \r
@@ -3326,7 +3441,7 @@ RELEASE_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-inter
 #\r
 *_RVCT31_ARM_ARCHCC_FLAGS    = --thumb --cpu 7-A\r
 *_RVCT31_ARM_ARCHASM_FLAGS   = --cpu 7-A\r
-*_RVCT31_ARM_ARCHDLINK_FLAGS = \r
+*_RVCT31_ARM_ARCHDLINK_FLAGS =\r
 *_RVCT31_ARM_PLATFORM_FLAGS  =\r
 \r
   DEBUG_RVCT31_ARM_DLINK_FLAGS     = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT)  --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map --diag_style=ide\r
@@ -3337,7 +3452,7 @@ RELEASE_RVCT31_ARM_DLINK_FLAGS     = $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_PO
 *_RVCT31_ARM_PP_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide\r
 *_RVCT31_ARM_VFRPP_FLAGS     = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E  -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
 *_RVCT31_ARM_MAKE_PATH       = nmake\r
-*_RVCT31_ARM_SLINK_FLAGS     = --partial --diag_style=ide -o \r
+*_RVCT31_ARM_SLINK_FLAGS     = --partial --diag_style=ide -o\r
   DEBUG_RVCT31_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -g -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r
 RELEASE_RVCT31_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90    -Ospace -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r
 \r
@@ -3376,7 +3491,7 @@ RELEASE_RVCT31_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90    -Ospac
 #\r
 *_RVCT31CYGWIN_ARM_ARCHCC_FLAGS    = --thumb --cpu 7-A\r
 *_RVCT31CYGWIN_ARM_ARCHASM_FLAGS   = --cpu 7-A\r
-*_RVCT31CYGWIN_ARM_ARCHDLINK_FLAGS = \r
+*_RVCT31CYGWIN_ARM_ARCHDLINK_FLAGS =\r
 *_RVCT31CYGWIN_ARM_PLATFORM_FLAGS  =\r
 \r
   DEBUG_RVCT31CYGWIN_ARM_DLINK_FLAGS     = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT)  --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map` --diag_style=ide\r
@@ -3386,7 +3501,7 @@ RELEASE_RVCT31CYGWIN_ARM_DLINK_FLAGS     = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS
 *_RVCT31CYGWIN_ARM_PP_FLAGS        = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E --diag_style=ide\r
 *_RVCT31CYGWIN_ARM_VFRPP_FLAGS     = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E  -DVFRCOMPILE --preinclude `cygpath -m $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h`\r
 *_RVCT31CYGWIN_ARM_MAKE_PATH       = make\r
-*_RVCT31CYGWIN_ARM_SLINK_FLAGS     = "$(SLINKPATH_FLAG)" --partial --diag_style=ide -o \r
+*_RVCT31CYGWIN_ARM_SLINK_FLAGS     = "$(SLINKPATH_FLAG)" --partial --diag_style=ide -o\r
   DEBUG_RVCT31CYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c -g -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r
 RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --c90 -c    -Ospace --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --preinclude AutoGen.h --diag_warning 167 --diag_style=ide\r
 \r
@@ -3418,7 +3533,7 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM
 # ASL definitions\r
 ##################\r
 *_ARMGCC_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
-*_ARMGCC_*_ASL_FLAGS                    = DEF(IASL_FLAGS) \r
+*_ARMGCC_*_ASL_FLAGS                    = DEF(IASL_FLAGS)\r
 *_ARMGCC_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)\r
 *_ARMGCC_*_ASLPP_FLAGS                  = -x c -E -P\r
 *_ARMGCC_*_ASLCC_FLAGS                  = -x c\r
@@ -3442,9 +3557,9 @@ RELEASE_RVCT31CYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM
 #\r
 # Use default values, or override in DSC file\r
 #\r
-*_ARMGCC_ARM_ARCHCC_FLAGS    = -march=armv7-a -mthumb \r
+*_ARMGCC_ARM_ARCHCC_FLAGS    = -march=armv7-a -mthumb\r
 *_ARMGCC_ARM_ARCHASM_FLAGS   = -march=armv7-a\r
-*_ARMGCC_ARM_ARCHDLINK_FLAGS = \r
+*_ARMGCC_ARM_ARCHDLINK_FLAGS =\r
 *_ARMGCC_ARM_PLATFORM_FLAGS  = -march=armv7-a\r
 \r
   DEBUG_ARMGCC_ARM_ASM_FLAGS   = $(ARCHASM_FLAGS) -mlittle-endian -g\r
@@ -3485,13 +3600,13 @@ RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mfpu=fpa -mlitt
 # GenFw tool definitions\r
 ##################\r
 *_*_*_GENFW_PATH                   = GenFw\r
-*_*_*_GENFW_FLAGS                  = \r
+*_*_*_GENFW_FLAGS                  =\r
 \r
 ##################\r
 # Asl Compiler definitions\r
 ##################\r
-*_*_*_ASLCC_FLAGS                  = /GL- /Y- /TC /Dmain=ReferenceAcpiTable\r
-*_*_*_ASLDLINK_FLAGS               = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE\r
+*_*_*_ASLCC_FLAGS                  = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable\r
+*_*_*_ASLDLINK_FLAGS               = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER\r
 *_*_*_ASLPP_FLAGS                  = /nologo /EP /C\r
 *_*_*_ASL_FLAGS                    =\r
 \r
index a907e21..0d0a3cb 100644 (file)
@@ -20,6 +20,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include "fat.h"\r
 #include "mbr.h"\r
 #include "EfiUtilityMsgs.h"\r
+#include "ParseInf.h"\r
 \r
 #define DEBUG_WARN  0x1\r
 #define DEBUG_ERROR 0x2\r
@@ -845,7 +846,9 @@ main (
   BOOLEAN ProcessMbr;    // -m\r
   BOOLEAN DoParse;       // -p SrcImage or -g SrcImage DstImage\r
   BOOLEAN Verbose;       // -v\r
-  \r
+  UINT64  LogLevel;\r
+  EFI_STATUS EfiStatus;\r
+\r
   SrcImage = DstImage = NULL;\r
   ForcePatch = FALSE;\r
   ProcessMbr = FALSE;\r
@@ -886,6 +889,23 @@ main (
       ProcessMbr = TRUE;\r
     } else if (strcmp (*argv, "-v") == 0 || strcmp (*argv, "--verbose") == 0) {\r
       Verbose    = TRUE;\r
+    } else if ((stricmp (*argv, "-d") == 0) || (stricmp (*argv, "--debug") == 0)) {\r
+      argc--; argv++;\r
+      if (argc < 1) {\r
+        Usage ();\r
+        return -1;\r
+      }\r
+      EfiStatus = AsciiStringToUint64 (*argv, FALSE, &LogLevel);\r
+      if (EFI_ERROR (EfiStatus)) {\r
+        Error (NULL, 0, 1003, "Invalid option value", "%s = %s", "--debug", *argv);\r
+        return 1;\r
+      }\r
+      if (LogLevel > 9) {\r
+        Error (NULL, 0, 1003, "Invalid option value", "Debug Level range is 0-9, currnt input level is %d", (int) LogLevel);\r
+        return 1;\r
+      }\r
+      SetPrintLevel (LogLevel);\r
+      DebugMsg (NULL, 0, 9, "Debug Mode Set", "Debug Output Mode Level %s is set!", *argv);\r
     } else {\r
       Usage ();\r
       return -1;\r
index 35120f3..428158e 100644 (file)
@@ -105,23 +105,22 @@ ConvertVersionInfo (
 /*++\r
 Routine Description:\r
 \r
-  This function converts GUID string to GUID\r
+  This function split version to major version and minor version\r
 \r
 Arguments:\r
 \r
   Str      - String representing in form XX.XX\r
-  MajorVer - The major vertion\r
-  MinorVer - The minor vertion\r
+  MajorVer - The major version\r
+  MinorVer - The minor version\r
 \r
 Returns:\r
 \r
-  EFI_SUCCESS  - The fuction completed successfully.\r
+  EFI_SUCCESS  - The function completed successfully.\r
 \r
 --*/\r
 {\r
   CHAR8  StrPtr[40];\r
   CHAR8  *Token;\r
-  UINTN  Length;\r
   unsigned Major;\r
   unsigned Minor;\r
 \r
@@ -135,10 +134,9 @@ Returns:
     Token = strtok (NULL, ".");\r
   }\r
 \r
-  Length = strlen (StrPtr);\r
   sscanf (\r
     StrPtr,\r
-    "%01x%02x",\r
+    "%02d%02d",\r
     &Major,\r
     &Minor\r
     );\r
index 8a0952f..267eaa3 100644 (file)
@@ -235,10 +235,13 @@ ProcessBsOrMbr (
   } \r
   \r
   //Process Floppy Disk\r
-  OutputFile = fopen(OutputInfo->PhysicalPath, "w");\r
+  OutputFile = fopen(OutputInfo->PhysicalPath, "r+");\r
   if (OutputFile == NULL) {\r
-    return ErrorFileReadWrite;\r
-  }  \r
+    OutputFile = fopen(OutputInfo->PhysicalPath, "w");\r
+    if (OutputFile == NULL) {\r
+      return ErrorFileReadWrite;\r
+    }\r
+  }\r
   \r
   if (OutputInfo->Type != PathFile) {\r
     if (ProcessMbr) {\r
index 3c106b5..0bc02f0 100644 (file)
@@ -149,13 +149,13 @@ typedef INT64   INTN;
 //\r
 // Processor specific defines\r
 //\r
-#define MAX_BIT     0x8000000000000000\r
-#define MAX_2_BITS  0xC000000000000000\r
+#define MAX_BIT     0x8000000000000000ULL\r
+#define MAX_2_BITS  0xC000000000000000ULL\r
 \r
 //\r
 // Maximum legal Itanium-based address\r
 //\r
-#define MAX_ADDRESS   0xFFFFFFFFFFFFFFFF\r
+#define MAX_ADDRESS   0xFFFFFFFFFFFFFFFFULL\r
 \r
 //\r
 // Modifier to ensure that all protocol member functions and EFI intrinsics\r
index 841803e..9aa83c0 100644 (file)
@@ -1,10 +1,10 @@
 ## @file\r
 #\r
-# The makefile can be invoked with
-# ARCH = x86_64 or x64 for EM64T build
-# ARCH = ia32 or IA32 for IA32 build
-# ARCH = ia64 or IA64 for IA64 build
-#
+# The makefile can be invoked with\r
+# ARCH = x86_64 or x64 for EM64T build\r
+# ARCH = ia32 or IA32 for IA32 build\r
+# ARCH = ia64 or IA64 for IA64 build\r
+#\r
 # Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # http://opensource.org/licenses/bsd-license.php\r
 #\r
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-ARCH ?= IA32
-
-CYGWIN:=$(findstring CYGWIN, $(shell uname -s))
-LINUX:=$(findstring Linux, $(shell uname -s))
-DARWIN:=$(findstring Darwin, $(shell uname -s))
-
-CC = gcc
-CXX = g++
-AS = gcc
-AR = ar
-LD = ld
-LINKER ?= $(CC)
-ifeq ($(ARCH), IA32)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/
-endif
-
-ifeq ($(ARCH), X64)
-ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/
-endif
-
-INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) 
-CPPFLAGS = $(INCLUDE)
-CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fno-merge-constants -nostdlib -Wall -Werror -c -g
-LFLAGS =
-
-#
-# Snow Leopard  is a 32-bit and 64-bit environment. uname -m returns -i386, but gcc defaults 
-#  to x86_64. So make sure tools match uname -m
-#
-uname_s = $(shell uname -s)
-ifeq ($(uname_s),Darwin)
-  CFLAGS   += -arch i386
-  CPPFLAGS += -arch i386
-  LFLAGS   += -arch i386
-endif
-  
-.PHONY: all
-.PHONY: install
-.PHONY: clean
-
-all:
-
-$(MAKEROOT)/libs:
-       mkdir $(MAKEROOT)/libs 
-
-$(MAKEROOT)/bin:
-       mkdir $(MAKEROOT)/bin
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ARCH ?= IA32\r
+\r
+CYGWIN:=$(findstring CYGWIN, $(shell uname -s))\r
+LINUX:=$(findstring Linux, $(shell uname -s))\r
+DARWIN:=$(findstring Darwin, $(shell uname -s))\r
+\r
+CC = gcc\r
+CXX = g++\r
+AS = gcc\r
+AR = ar\r
+LD = ld\r
+LINKER ?= $(CC)\r
+ifeq ($(ARCH), IA32)\r
+ARCH_INCLUDE = -I $(MAKEROOT)/Include/Ia32/\r
+endif\r
+\r
+ifeq ($(ARCH), X64)\r
+ARCH_INCLUDE = -I $(MAKEROOT)/Include/X64/\r
+endif\r
+\r
+INCLUDE = $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROOT)/Common/ -I .. -I . $(ARCH_INCLUDE) \r
+CPPFLAGS = $(INCLUDE)\r
+CFLAGS = -MD -fshort-wchar -fno-strict-aliasing -fno-merge-constants -nostdlib -Wall -Werror -c -g\r
+LFLAGS =\r
+\r
+ifeq ($(ARCH), IA32)\r
+#\r
+# Snow Leopard  is a 32-bit and 64-bit environment. uname -m returns i386, but gcc defaults \r
+#  to x86_64. So make sure tools match uname -m. You can manual have a 64-bit kernal on Snow Leopard\r
+#  so only do this is uname -m returns i386.\r
+#\r
+uname_s = $(shell uname -s)\r
+ifeq ($(uname_s),Darwin)\r
+  CFLAGS   += -arch i386\r
+  CPPFLAGS += -arch i386\r
+  LFLAGS   += -arch i386\r
+endif\r
+endif\r
+\r
+  \r
+.PHONY: all\r
+.PHONY: install\r
+.PHONY: clean\r
+\r
+all:\r
+\r
+$(MAKEROOT)/libs:\r
+       mkdir $(MAKEROOT)/libs \r
+\r
+$(MAKEROOT)/bin:\r
+       mkdir $(MAKEROOT)/bin\r
index fe7a1ce..dc8d90c 100644 (file)
@@ -7,12 +7,12 @@
 # http://opensource.org/licenses/bsd-license.php\r
 #\r
 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-include $(MAKEROOT)/Makefiles/header.makefile
-
-LIBRARY = $(MAKEROOT)/libs/lib$(LIBNAME).a
-
-all: $(MAKEROOT)/libs $(LIBRARY) 
-
-include $(MAKEROOT)/Makefiles/footer.makefile
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+include $(MAKEROOT)/Makefiles/header.makefile\r
+\r
+LIBRARY = $(MAKEROOT)/libs/lib$(LIBNAME).a\r
+\r
+all: $(MAKEROOT)/libs $(LIBRARY) \r
+\r
+include $(MAKEROOT)/Makefiles/footer.makefile\r
index aaba768..4ecf2ea 100644 (file)
@@ -189,7 +189,12 @@ class WorkspaceAutoGen(AutoGen):
             #\r
             Pa.CollectPlatformDynamicPcds()\r
             self.AutoGenObjectList.append(Pa)\r
-\r
+        \r
+        #\r
+        # Check PCDs token value conflict in each DEC file.\r
+        #\r
+        self._CheckAllPcdsTokenValueConflict()\r
+        \r
         self._BuildDir = None\r
         self._FvDir = None\r
         self._MakeFileDir = None\r
@@ -248,6 +253,75 @@ class WorkspaceAutoGen(AutoGen):
             # BuildCommand should be all the same. So just get one from platform AutoGen\r
             self._BuildCommand = self.AutoGenObjectList[0].BuildCommand\r
         return self._BuildCommand\r
+    \r
+    ## Check the PCDs token value conflict in each DEC file.\r
+    #\r
+    # Will cause build break and raise error message while two PCDs conflict.\r
+    # \r
+    # @return  None\r
+    #\r
+    def _CheckAllPcdsTokenValueConflict(self):\r
+        if len(self.BuildDatabase.WorkspaceDb.PackageList) >= 1:\r
+            for Package in self.BuildDatabase.WorkspaceDb.PackageList:\r
+                PcdList = Package.Pcds.values()\r
+                PcdList.sort(lambda x, y: cmp(x.TokenValue, y.TokenValue)) \r
+                Count = 0\r
+                while (Count < len(PcdList) - 1) :\r
+                    Item = PcdList[Count]\r
+                    ItemNext = PcdList[Count + 1]\r
+                    #\r
+                    # Make sure in the same token space the TokenValue should be unique\r
+                    #\r
+                    if (Item.TokenValue == ItemNext.TokenValue):\r
+                        SameTokenValuePcdList = []\r
+                        SameTokenValuePcdList.append(Item)\r
+                        SameTokenValuePcdList.append(ItemNext)\r
+                        RemainPcdListLength = len(PcdList) - Count - 2\r
+                        for ValueSameCount in range(RemainPcdListLength):\r
+                            if PcdList[len(PcdList) - RemainPcdListLength + ValueSameCount].TokenValue == Item.TokenValue:\r
+                                SameTokenValuePcdList.append(PcdList[len(PcdList) - RemainPcdListLength + ValueSameCount])\r
+                            else:\r
+                                break;\r
+                        #\r
+                        # Sort same token value PCD list with TokenGuid and TokenCName\r
+                        #\r
+                        SameTokenValuePcdList.sort(lambda x, y: cmp("%s.%s"%(x.TokenSpaceGuidCName, x.TokenCName), "%s.%s"%(y.TokenSpaceGuidCName, y.TokenCName))) \r
+                        SameTokenValuePcdListCount = 0     \r
+                        while (SameTokenValuePcdListCount < len(SameTokenValuePcdList) - 1):\r
+                            TemListItem     = SameTokenValuePcdList[SameTokenValuePcdListCount]\r
+                            TemListItemNext = SameTokenValuePcdList[SameTokenValuePcdListCount + 1] \r
+                                                                                                      \r
+                            if (TemListItem.TokenSpaceGuidCName == TemListItemNext.TokenSpaceGuidCName) and (TemListItem.TokenCName != TemListItemNext.TokenCName):\r
+                                EdkLogger.error(\r
+                                            'build',\r
+                                            FORMAT_INVALID,\r
+                                            "The TokenValue [%s] of PCD [%s.%s] is conflict with: [%s.%s] in %s"\\r
+                                            % (TemListItem.TokenValue, TemListItem.TokenSpaceGuidCName, TemListItem.TokenCName, TemListItemNext.TokenSpaceGuidCName, TemListItemNext.TokenCName, Package),\r
+                                            ExtraData=None\r
+                                            )\r
+                            SameTokenValuePcdListCount += 1\r
+                        Count += SameTokenValuePcdListCount\r
+                    Count += 1\r
+                \r
+                PcdList = Package.Pcds.values()\r
+                PcdList.sort(lambda x, y: cmp("%s.%s"%(x.TokenSpaceGuidCName, x.TokenCName), "%s.%s"%(y.TokenSpaceGuidCName, y.TokenCName)))\r
+                Count = 0\r
+                while (Count < len(PcdList) - 1) :\r
+                    Item = PcdList[Count]\r
+                    ItemNext = PcdList[Count + 1]                \r
+                    #\r
+                    # Check PCDs with same TokenSpaceGuidCName.TokenCName have same token value as well.\r
+                    #\r
+                    if (Item.TokenSpaceGuidCName == ItemNext.TokenSpaceGuidCName) and (Item.TokenCName == ItemNext.TokenCName) and (Item.TokenValue != ItemNext.TokenValue):\r
+                        EdkLogger.error(\r
+                                    'build',\r
+                                    FORMAT_INVALID,\r
+                                    "The TokenValue [%s] of PCD [%s.%s] in %s defined in two places should be same as well."\\r
+                                    % (Item.TokenValue, Item.TokenSpaceGuidCName, Item.TokenCName, Package),\r
+                                    ExtraData=None\r
+                                    )\r
+                    Count += 1\r
+                                      \r
 \r
     ## Create makefile for the platform and modules in it\r
     #\r
@@ -306,7 +380,27 @@ class PlatformAutoGen(AutoGen):
     # \r
     _DynaPcdList_ = []\r
     _NonDynaPcdList_ = []\r
-\r
+    \r
+    #\r
+    # The priority list while override build option \r
+    #\r
+    PrioList = {"0x11111"  : 16,     #  TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE (Highest)\r
+                "0x01111"  : 15,     #  ******_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE\r
+                "0x10111"  : 14,     #  TARGET_*********_ARCH_COMMANDTYPE_ATTRIBUTE\r
+                "0x00111"  : 13,     #  ******_*********_ARCH_COMMANDTYPE_ATTRIBUTE \r
+                "0x11011"  : 12,     #  TARGET_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE\r
+                "0x01011"  : 11,     #  ******_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE\r
+                "0x10011"  : 10,     #  TARGET_*********_****_COMMANDTYPE_ATTRIBUTE\r
+                "0x00011"  : 9,      #  ******_*********_****_COMMANDTYPE_ATTRIBUTE\r
+                "0x11101"  : 8,      #  TARGET_TOOLCHAIN_ARCH_***********_ATTRIBUTE\r
+                "0x01101"  : 7,      #  ******_TOOLCHAIN_ARCH_***********_ATTRIBUTE\r
+                "0x10101"  : 6,      #  TARGET_*********_ARCH_***********_ATTRIBUTE\r
+                "0x00101"  : 5,      #  ******_*********_ARCH_***********_ATTRIBUTE\r
+                "0x11001"  : 4,      #  TARGET_TOOLCHAIN_****_***********_ATTRIBUTE\r
+                "0x01001"  : 3,      #  ******_TOOLCHAIN_****_***********_ATTRIBUTE\r
+                "0x10001"  : 2,      #  TARGET_*********_****_***********_ATTRIBUTE\r
+                "0x00001"  : 1}      #  ******_*********_****_***********_ATTRIBUTE (Lowest)\r
+    \r
     ## The real constructor of PlatformAutoGen\r
     #\r
     #  This method is not supposed to be called by users of PlatformAutoGen. It's\r
@@ -481,12 +575,12 @@ class PlatformAutoGen(AutoGen):
         UnicodePcdArray = []\r
         HiiPcdArray     = []\r
         OtherPcdArray   = []\r
+        VpdPcdDict      = {}\r
         VpdFile               = VpdInfoFile.VpdInfoFile()\r
         NeedProcessVpdMapFile = False                    \r
         \r
         if (self.Workspace.ArchList[-1] == self.Arch): \r
             for Pcd in self._DynamicPcdList:\r
-\r
                 # just pick the a value to determine whether is unicode string type\r
                 Sku      = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]]\r
                 Sku.VpdOffset = Sku.VpdOffset.strip()\r
@@ -500,32 +594,47 @@ class PlatformAutoGen(AutoGen):
                     HiiPcdArray.append(Pcd)\r
                 else:\r
                     OtherPcdArray.append(Pcd)\r
-                    \r
                 if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
-                    if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''):\r
-                        #\r
-                        # Fix the optional data of VPD PCD.\r
-                        #\r
-                        if (Pcd.DatumType.strip() != "VOID*"):\r
-                            if Sku.DefaultValue == '':\r
-                                Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]].DefaultValue = Pcd.MaxDatumSize\r
-                                Pcd.MaxDatumSize = None\r
-                            else:\r
-                                EdkLogger.error("build", AUTOGEN_ERROR, "PCD setting error",\r
-                                                File=self.MetaFile,\r
-                                                ExtraData="\n\tPCD: %s.%s format incorrect in DSC: %s\n\t\t\n"\r
-                                                          % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path))                                                                            \r
-                        \r
-                        VpdFile.Add(Pcd, Sku.VpdOffset)\r
-                        # if the offset of a VPD is *, then it need to be fixed up by third party tool.\r
-                        if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":\r
-                            NeedProcessVpdMapFile = True\r
+                    VpdPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)] = Pcd                   \r
+            \r
+            PlatformPcds = self.Platform.Pcds.keys()\r
+            PlatformPcds.sort()            \r
+            #\r
+            # Add VPD type PCD into VpdFile and determine whether the VPD PCD need to be fixed up.\r
+            #\r
+            for PcdKey in PlatformPcds:\r
+                Pcd           = self.Platform.Pcds[PcdKey]                            \r
+                if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
+                    Pcd           = VpdPcdDict[PcdKey]\r
+                    Sku           = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]]\r
+                    Sku.VpdOffset = Sku.VpdOffset.strip()                \r
+                    #\r
+                    # Fix the optional data of VPD PCD.\r
+                    #\r
+                    if (Pcd.DatumType.strip() != "VOID*"):\r
+                        if Sku.DefaultValue == '':\r
+                            Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]].DefaultValue = Pcd.MaxDatumSize\r
+                            Pcd.MaxDatumSize = None\r
+                        else:\r
+                            EdkLogger.error("build", AUTOGEN_ERROR, "PCD setting error",\r
+                                            File=self.MetaFile,\r
+                                            ExtraData="\n\tPCD: %s.%s format incorrect in DSC: %s\n\t\t\n"\r
+                                                      % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path))                                                                            \r
+                    \r
+                    VpdFile.Add(Pcd, Sku.VpdOffset)\r
+                    # if the offset of a VPD is *, then it need to be fixed up by third party tool.\r
+                    if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":\r
+                        NeedProcessVpdMapFile = True\r
+                        if self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == '':\r
+                            EdkLogger.error("Build", FILE_NOT_FOUND, \\r
+                                            "Fail to find third-party BPDG tool to process VPD PCDs. BPDG Guid tool need to be defined in tools_def.txt and VPD_TOOL_GUID need to be provided in DSC file.")\r
+                            \r
                                    \r
             #\r
             # Fix the PCDs define in VPD PCD section that never referenced by module.\r
             # An example is PCD for signature usage.\r
-            #              \r
-            for DscPcd in self.Platform.Pcds:\r
+            #            \r
+            for DscPcd in PlatformPcds:\r
                 DscPcdEntry = self.Platform.Pcds[DscPcd]\r
                 if DscPcdEntry.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
                     if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''):\r
@@ -614,7 +723,7 @@ class PlatformAutoGen(AutoGen):
                             # just pick the a value to determine whether is unicode string type\r
                             Sku = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]]                        \r
                             if Sku.VpdOffset == "*":\r
-                                    Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0]\r
+                                Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0]\r
                     else:\r
                         EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath)\r
             \r
@@ -693,7 +802,7 @@ class PlatformAutoGen(AutoGen):
                 if "FLAGS" in self.ToolDefinition["MAKE"]:\r
                     NewOption = self.ToolDefinition["MAKE"]["FLAGS"].strip()\r
                     if NewOption != '':\r
-                      self._BuildCommand += SplitOption(NewOption)\r
+                        self._BuildCommand += SplitOption(NewOption)\r
         return self._BuildCommand\r
 \r
     ## Get tool chain definition\r
@@ -1220,16 +1329,86 @@ class PlatformAutoGen(AutoGen):
                     EdkLogger.verbose("\t" + LibraryName + " : " + str(Library) + ' ' + str(type(Library)))\r
         return LibraryList\r
 \r
+    ## Calculate the priority value of the build option\r
+    #\r
+    # @param    Key    Build option definition contain: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE\r
+    #\r
+    # @retval   Value  Priority value based on the priority list.\r
+    #\r
+    def CalculatePriorityValue(self, Key):\r
+        Target, ToolChain, Arch, CommandType, Attr = Key.split('_')       \r
+        PriorityValue = 0x11111          \r
+        if Target == "*":\r
+            PriorityValue &= 0x01111\r
+        if ToolChain == "*":\r
+            PriorityValue &= 0x10111\r
+        if Arch == "*":\r
+            PriorityValue &= 0x11011\r
+        if CommandType == "*":\r
+            PriorityValue &= 0x11101\r
+        if Attr == "*":\r
+            PriorityValue &= 0x11110\r
+        \r
+        return self.PrioList["0x%0.5x"%PriorityValue]\r
+                                    \r
+\r
     ## Expand * in build option key\r
     #\r
     #   @param  Options     Options to be expanded\r
     #\r
     #   @retval options     Options expanded\r
-    #\r
+    #      \r
     def _ExpandBuildOption(self, Options, ModuleStyle=None):\r
         BuildOptions = {}\r
         FamilyMatch  = False\r
         FamilyIsNull = True\r
+                \r
+        OverrideList = {}\r
+        #\r
+        # Construct a list contain the build options which need override.\r
+        #\r
+        for Key in Options:\r
+            #\r
+            # Key[0] -- tool family\r
+            # Key[1] -- TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE\r
+            #\r
+            if Key[0] == self.BuildRuleFamily :\r
+                Target, ToolChain, Arch, CommandType, Attr = Key[1].split('_')\r
+                if Target == self.BuildTarget or Target == "*":\r
+                    if ToolChain == self.ToolChain or ToolChain == "*":\r
+                        if Arch == self.Arch or Arch == "*":\r
+                            if Options[Key].startswith("="):\r
+                                if OverrideList.get(Key[1]) != None:                                                \r
+                                    OverrideList.pop(Key[1])\r
+                                OverrideList[Key[1]] = Options[Key]\r
+        \r
+        #\r
+        # Use the highest priority value. \r
+        #\r
+        if (len(OverrideList) >= 2):\r
+            KeyList   = OverrideList.keys()\r
+            for Index in range(len(KeyList)):\r
+                NowKey      = KeyList[Index]\r
+                Target1, ToolChain1, Arch1, CommandType1, Attr1 = NowKey.split("_")\r
+                for Index1 in range(len(KeyList) - Index - 1):\r
+                    NextKey = KeyList[Index1 + Index + 1]\r
+                    #\r
+                    # Compare two Key, if one is included by another, choose the higher priority one\r
+                    #                    \r
+                    Target2, ToolChain2, Arch2, CommandType2, Attr2 = NextKey.split("_")\r
+                    if Target1 == Target2 or Target1 == "*" or Target2 == "*":\r
+                        if ToolChain1 == ToolChain2 or ToolChain1 == "*" or ToolChain2 == "*":\r
+                            if Arch1 == Arch2 or Arch1 == "*" or Arch2 == "*":\r
+                                if CommandType1 == CommandType2 or CommandType1 == "*" or CommandType2 == "*":\r
+                                    if Attr1 == Attr2 or Attr1 == "*" or Attr2 == "*":\r
+                                        if self.CalculatePriorityValue(NowKey) > self.CalculatePriorityValue(NextKey):\r
+                                            if Options.get((self.BuildRuleFamily, NextKey)) != None:  \r
+                                                Options.pop((self.BuildRuleFamily, NextKey))\r
+                                        else:\r
+                                            if Options.get((self.BuildRuleFamily, NowKey)) != None: \r
+                                                Options.pop((self.BuildRuleFamily, NowKey))\r
+                                                           \r
+        \r
         for Key in Options:\r
             if ModuleStyle != None and len (Key) > 2:\r
                 # Check Module style is EDK or EDKII.\r
index 2a133d3..3c256c8 100644 (file)
@@ -1860,8 +1860,10 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff
 
     IncList = [Info.MetaFile.Dir]
     # Get all files under [Sources] section in inf file for EDK-II module
+    EDK2Module = True
     SrcList = [F for F in Info.SourceFileList]
     if Info.AutoGenVersion < 0x00010005:
+        EDK2Module = False
         # Get all files under the module directory for EDK-I module
         Cwd = os.getcwd()
         os.chdir(Info.MetaFile.Dir)
@@ -1883,7 +1885,7 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff
         CompatibleMode = False
 
     #
-    # -s is a temporary option dedicated for building .UNI files with ISO 639-2 lanauge codes of EDK Shell in EDK2
+    # -s is a temporary option dedicated for building .UNI files with ISO 639-2 language codes of EDK Shell in EDK2
     #
     if 'BUILD' in Info.BuildOption and Info.BuildOption['BUILD']['FLAGS'].find('-s') > -1:
         if CompatibleMode:
@@ -1894,7 +1896,12 @@ def CreateUnicodeStringCode(Info, AutoGenC, AutoGenH, UniGenCFlag, UniGenBinBuff
     else:
         ShellMode = False
 
-    Header, Code = GetStringFiles(Info.UnicodeFileList, SrcList, IncList, Info.IncludePathList, ['.uni', '.inf'], Info.Name, CompatibleMode, ShellMode, UniGenCFlag, UniGenBinBuffer)
+    #RFC4646 is only for EDKII modules and ISO639-2 for EDK modules
+    if EDK2Module:
+        FilterInfo = [EDK2Module] + [Info.PlatformInfo.Platform.RFCLanguages]
+    else:
+        FilterInfo = [EDK2Module] + [Info.PlatformInfo.Platform.ISOLanguages]
+    Header, Code = GetStringFiles(Info.UnicodeFileList, SrcList, IncList, Info.IncludePathList, ['.uni', '.inf'], Info.Name, CompatibleMode, ShellMode, UniGenCFlag, UniGenBinBuffer, FilterInfo)
     if CompatibleMode or UniGenCFlag:
         AutoGenC.Append("\n//\n//Unicode String Pack Definition\n//\n")
         AutoGenC.Append(Code)
index 52ab439..3df4938 100644 (file)
@@ -284,6 +284,65 @@ def CreateCFileStringValue(Value):
 \r
     return Str\r
 \r
+## GetFilteredLanguage\r
+#\r
+# apply get best language rules to the UNI language code list\r
+#\r
+# @param UniLanguageList:  language code definition list in *.UNI file\r
+# @param LanguageFilterList:  language code filter list of RFC4646 format in DSC file\r
+#\r
+# @retval UniLanguageListFiltered:   the filtered language code\r
+#\r
+def GetFilteredLanguage(UniLanguageList, LanguageFilterList):\r
+    UniLanguageListFiltered = []\r
+    # if filter list is empty, then consider there is no filter\r
+    if LanguageFilterList == []:\r
+        UniLanguageListFiltered = UniLanguageList\r
+        return UniLanguageListFiltered\r
+    for Language in LanguageFilterList:\r
+        # first check for exact match\r
+        if Language in UniLanguageList:\r
+            if Language not in UniLanguageListFiltered:\r
+                UniLanguageListFiltered += [Language]\r
+        # find the first one with the same/equivalent primary tag\r
+        else:\r
+            if Language.find('-') != -1:\r
+                PrimaryTag = Language[0:Language.find('-')].lower()\r
+            else:\r
+                PrimaryTag = Language\r
+            \r
+            if len(PrimaryTag) == 3:\r
+                PrimaryTag = LangConvTable.get(PrimaryTag)\r
+            \r
+            for UniLanguage in UniLanguageList:\r
+                if UniLanguage.find('-') != -1:\r
+                    UniLanguagePrimaryTag = UniLanguage[0:UniLanguage.find('-')].lower()\r
+                else:\r
+                    UniLanguagePrimaryTag = UniLanguage\r
+                \r
+                if len(UniLanguagePrimaryTag) == 3:\r
+                    UniLanguagePrimaryTag = LangConvTable.get(UniLanguagePrimaryTag)\r
+\r
+                if PrimaryTag == UniLanguagePrimaryTag:\r
+                    if UniLanguage not in UniLanguageListFiltered:\r
+                        UniLanguageListFiltered += [UniLanguage]    \r
+                    break\r
+            else:\r
+                # Here is rule 3 for "get best language"\r
+                # If tag is not listed in the Unicode file, the default ("en") tag should be used for that language\r
+                # for better processing, find the one that best suit for it.\r
+                DefaultTag = 'en'\r
+                if DefaultTag not in UniLanguageListFiltered:\r
+                    # check whether language code with primary code equivalent with DefaultTag already in the list, if so, use that\r
+                    for UniLanguage in UniLanguageList:\r
+                        if UniLanguage.startswith('en-') or UniLanguage.startswith('eng-'):\r
+                            if UniLanguage not in UniLanguageListFiltered:\r
+                                UniLanguageListFiltered += [UniLanguage]\r
+                            break\r
+                    else:\r
+                        UniLanguageListFiltered += [DefaultTag]\r
+    return  UniLanguageListFiltered\r
+\r
 \r
 ## Create content of .c file\r
 #\r
@@ -293,10 +352,11 @@ def CreateCFileStringValue(Value):
 # @param UniObjectClass   A UniObjectClass instance\r
 # @param IsCompatibleMode Compatible mode\r
 # @param UniBinBuffer     UniBinBuffer to contain UniBinary data.\r
+# @param FilterInfo       Platform language filter information \r
 #\r
 # @retval Str:           A string of .c file content\r
 #\r
-def CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniBinBuffer=None):\r
+def CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniBinBuffer, FilterInfo):\r
     #\r
     # Init array length\r
     #\r
@@ -304,13 +364,29 @@ def CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, UniBinBuffer=
     Str = ''\r
     Offset = 0\r
 \r
+    EDK2Module = FilterInfo[0]\r
+    if EDK2Module:\r
+        LanguageFilterList = FilterInfo[1]\r
+    else:\r
+        # EDK module is using ISO639-2 format filter, convert to the RFC4646 format\r
+        LanguageFilterList = [LangConvTable.get(F.lower()) for F in FilterInfo[1]]\r
+    \r
+    UniLanguageList = []\r
+    for IndexI in range(len(UniObjectClass.LanguageDef)):\r
+        UniLanguageList += [UniObjectClass.LanguageDef[IndexI][0]]           \r
+\r
+    UniLanguageListFiltered = GetFilteredLanguage(UniLanguageList, LanguageFilterList)\r
\r
+        \r
     #\r
     # Create lines for each language's strings\r
     #\r
     for IndexI in range(len(UniObjectClass.LanguageDef)):\r
         Language = UniObjectClass.LanguageDef[IndexI][0]\r
         LangPrintName = UniObjectClass.LanguageDef[IndexI][1]\r
-\r
+        if Language not in UniLanguageListFiltered:\r
+            continue\r
+        \r
         StringBuffer = StringIO()\r
         StrStringValue = ''\r
         ArrayLength = 0\r
@@ -428,13 +504,14 @@ def CreateCFileEnd():
 # @param BaseName:        The basename of strings\r
 # @param UniObjectClass   A UniObjectClass instance\r
 # @param IsCompatibleMode Compatible Mode\r
+# @param FilterInfo       Platform language filter information \r
 #\r
-# @retval CFile:         A string of complete .c file\r
+# @retval CFile:          A string of complete .c file\r
 #\r
-def CreateCFile(BaseName, UniObjectClass, IsCompatibleMode):\r
+def CreateCFile(BaseName, UniObjectClass, IsCompatibleMode, FilterInfo):\r
     CFile = ''\r
     #CFile = WriteLine(CFile, CreateCFileHeader())\r
-    CFile = WriteLine(CFile, CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode))\r
+    CFile = WriteLine(CFile, CreateCFileContent(BaseName, UniObjectClass, IsCompatibleMode, None, FilterInfo))\r
     CFile = WriteLine(CFile, CreateCFileEnd())\r
     return CFile\r
 \r
@@ -518,7 +595,7 @@ def SearchString(UniObjectClass, FileList, IsCompatibleMode):
 # This function is used for UEFI2.1 spec\r
 #\r
 #\r
-def GetStringFiles(UniFilList, SourceFileList, IncludeList, IncludePathList, SkipList, BaseName, IsCompatibleMode = False, ShellMode = False, UniGenCFlag = True, UniGenBinBuffer = None):\r
+def GetStringFiles(UniFilList, SourceFileList, IncludeList, IncludePathList, SkipList, BaseName, IsCompatibleMode = False, ShellMode = False, UniGenCFlag = True, UniGenBinBuffer = None, FilterInfo = [True, []]):\r
     Status = True\r
     ErrorMessage = ''\r
 \r
@@ -540,9 +617,9 @@ def GetStringFiles(UniFilList, SourceFileList, IncludeList, IncludePathList, Ski
     HFile = CreateHFile(BaseName, Uni, IsCompatibleMode, UniGenCFlag)\r
     CFile = None\r
     if IsCompatibleMode or UniGenCFlag:\r
-        CFile = CreateCFile(BaseName, Uni, IsCompatibleMode)\r
+        CFile = CreateCFile(BaseName, Uni, IsCompatibleMode, FilterInfo)\r
     if UniGenBinBuffer:\r
-        CreateCFileContent(BaseName, Uni, IsCompatibleMode, UniGenBinBuffer)\r
+        CreateCFileContent(BaseName, Uni, IsCompatibleMode, UniGenBinBuffer, FilterInfo)\r
 \r
     return HFile, CFile\r
 \r
index f0196e0..bbe44ee 100644 (file)
@@ -17,6 +17,7 @@ import os
 import StringIO\r
 import StringTable as st\r
 import array\r
+import re\r
 \r
 from struct import *\r
 import Common.EdkLogger as EdkLogger\r
@@ -338,8 +339,27 @@ class GenVPD :
             line = line.rstrip(os.linesep)\r
                        \r
             # Skip the comment line\r
-            if (not line.startswith("#")) and len(line) > 1 :              \r
-                self.FileLinesList[count] = line.split('|')\r
+            if (not line.startswith("#")) and len(line) > 1 :\r
+                #\r
+                # Enhanced for support "|" character in the string.\r
+                #\r
+                ValueList = ['', '', '', '']    \r
+                \r
+                ValueRe  = re.compile(r'\s*L?\".*\|.*\"\s*$')\r
+                PtrValue = ValueRe.findall(line)\r
+                \r
+                ValueUpdateFlag = False\r
+                \r
+                if len(PtrValue) >= 1:\r
+                    line = re.sub(ValueRe, '', line)\r
+                    ValueUpdateFlag = True   \r
+            \r
+                TokenList = line.split('|')\r
+                ValueList[0:len(TokenList)] = TokenList\r
+                \r
+                if ValueUpdateFlag:\r
+                    ValueList[3] = PtrValue[0]                              \r
+                self.FileLinesList[count] = ValueList\r
                 # Store the line number\r
                 self.FileLinesList[count].append(str(count+1))\r
             elif len(line) <= 1 :\r
@@ -524,10 +544,8 @@ class GenVPD :
                 if lenOfUnfixedList != 0 :\r
                     countOfUnfixedList = 0\r
                     while(countOfUnfixedList < lenOfUnfixedList) :                   \r
-                        #needFixPcdCName, needFixPcdOffset, needFixPcdSize, needFixPcdValue, needFixUnpackValue = self.PcdUnknownOffsetList[countOfUnfixedList][0:6]\r
                         eachUnfixedPcd      = self.PcdUnknownOffsetList[countOfUnfixedList]\r
                         needFixPcdSize      = eachUnfixedPcd.PcdBinSize\r
-                        needFixPcdOffset    = eachUnfixedPcd.PcdOffset\r
                         # Not been fixed\r
                         if eachUnfixedPcd.PcdOffset == '*' :\r
                             # The offset un-fixed pcd can write into this free space\r
@@ -546,18 +564,16 @@ class GenVPD :
                                 FixOffsetSizeListCount  += 1\r
                                 \r
                                 # Decrease the un-fixed pcd offset list's length\r
-                                countOfUnfixedList      += 1\r
                                 lenOfUnfixedList        -= 1\r
                                 \r
                                 # Modify the last offset value \r
-                                LastOffset              += needFixPcdSize\r
-                                continue                            \r
+                                LastOffset              += needFixPcdSize                            \r
                             else :\r
-                                # It can not insert into those two pcds, need to check stiil has other space can store it.\r
+                                # It can not insert into those two pcds, need to check still has other space can store it.\r
+                                LastOffset             = NowOffset + self.PcdFixedOffsetSizeList[FixOffsetSizeListCount].PcdBinSize\r
                                 FixOffsetSizeListCount += 1\r
-                                break                   \r
-                        else :\r
-                            continue\r
+                                break\r
+                                                                                 \r
                 # Set the FixOffsetSizeListCount = lenOfList for quit the loop\r
                 else :\r
                     FixOffsetSizeListCount = lenOfList                    \r
index d9d1774..151f7bb 100644 (file)
@@ -22,6 +22,7 @@ TAB_EQUAL_SPLIT = '='
 TAB_VALUE_SPLIT = '|'\r
 TAB_COMMA_SPLIT = ','\r
 TAB_SPACE_SPLIT = ' '\r
+TAB_SEMI_COLON_SPLIT = ';'\r
 TAB_SECTION_START = '['\r
 TAB_SECTION_END = ']'\r
 TAB_OPTION_START = '<'\r
@@ -353,6 +354,8 @@ TAB_DSC_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'
 TAB_DSC_DEFINES_MAKEFILE_NAME = 'MAKEFILE_NAME'\r
 TAB_DSC_DEFINES_BS_BASE_ADDRESS = 'BsBaseAddress'\r
 TAB_DSC_DEFINES_RT_BASE_ADDRESS = 'RtBaseAddress'\r
+TAB_DSC_DEFINES_RFC_LANGUAGES = 'RFC_LANGUAGES'\r
+TAB_DSC_DEFINES_ISO_LANGUAGES = 'ISO_LANGUAGES'\r
 TAB_DSC_DEFINES_DEFINE = 'DEFINE'\r
 TAB_DSC_DEFINES_VPD_TOOL_GUID = 'VPD_TOOL_GUID'\r
 TAB_FIX_LOAD_TOP_MEMORY_ADDRESS = 'FIX_LOAD_TOP_MEMORY_ADDRESS'\r
index e2dc5a5..7498d9e 100644 (file)
@@ -1,7 +1,7 @@
 ## @file
 # Common routines used by all tools
 #
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
 # This program and the accompanying materials
 # are licensed and made available under the terms and conditions of the BSD License
 # which accompanies this distribution.  The full text of the license may be found at
@@ -28,7 +28,7 @@ from UserList import UserList
 
 from Common import EdkLogger as EdkLogger
 from Common import GlobalData as GlobalData
-
+from DataType import *
 from BuildToolError import *
 
 ## Regular expression used to find out place holders in string template
@@ -1166,6 +1166,93 @@ def ParseConsoleLog(Filename):
     Opr.close()
     Opw.close()
 
+## AnalyzePcdData
+#
+#  Analyze the pcd Value, Datum type and TokenNumber.
+#  Used to avoid split issue while the value string contain "|" character
+#
+#  @param[in] Setting:  A String contain value/datum type/token number information;
+#  
+#  @retval   ValueList: A List contain value, datum type and toke number. 
+#
+def AnalyzePcdData(Setting):   
+    ValueList = ['', '', '']    
+    
+    ValueRe  = re.compile(r'^\s*L?\".*\|.*\"')
+    PtrValue = ValueRe.findall(Setting)
+    
+    ValueUpdateFlag = False
+    
+    if len(PtrValue) >= 1:
+        Setting = re.sub(ValueRe, '', Setting)
+        ValueUpdateFlag = True   
+
+    TokenList = Setting.split(TAB_VALUE_SPLIT)
+    ValueList[0:len(TokenList)] = TokenList
+    
+    if ValueUpdateFlag:
+        ValueList[0] = PtrValue[0]
+        
+    return ValueList   
+## AnalyzeHiiPcdData
+#
+#  Analyze the pcd Value, variable name, variable Guid and variable offset.
+#  Used to avoid split issue while the value string contain "|" character
+#
+#  @param[in] Setting:  A String contain VariableName, VariableGuid, VariableOffset, DefaultValue information;
+#  
+#  @retval   ValueList: A List contaian VariableName, VariableGuid, VariableOffset, DefaultValue. 
+#
+def AnalyzeHiiPcdData(Setting):   
+    ValueList = ['', '', '', '']    
+    
+    ValueRe  = re.compile(r'^\s*L?\".*\|.*\"')
+    PtrValue = ValueRe.findall(Setting)
+    
+    ValueUpdateFlag = False
+    
+    if len(PtrValue) >= 1:
+        Setting = re.sub(ValueRe, '', Setting)
+        ValueUpdateFlag = True   
+
+    TokenList = Setting.split(TAB_VALUE_SPLIT)
+    ValueList[0:len(TokenList)] = TokenList
+    
+    if ValueUpdateFlag:
+        ValueList[0] = PtrValue[0]
+        
+    return ValueList     
+
+## AnalyzeVpdPcdData
+#
+#  Analyze the vpd pcd Value, Datum type and TokenNumber.
+#  Used to avoid split issue while the value string contain "|" character
+#
+#  @param[in] Setting:  A String contain value/datum type/token number information;
+#  
+#  @retval   ValueList: A List contain value, datum type and toke number. 
+#
+def AnalyzeVpdPcdData(Setting):   
+    ValueList = ['', '', '']    
+    
+    ValueRe  = re.compile(r'\s*L?\".*\|.*\"\s*$')
+    PtrValue = ValueRe.findall(Setting)
+    
+    ValueUpdateFlag = False
+    
+    if len(PtrValue) >= 1:
+        Setting = re.sub(ValueRe, '', Setting)
+        ValueUpdateFlag = True   
+
+    TokenList = Setting.split(TAB_VALUE_SPLIT)
+    ValueList[0:len(TokenList)] = TokenList
+    
+    if ValueUpdateFlag:
+        ValueList[2] = PtrValue[0]
+        
+    return ValueList     
+
 ## check format of PCD value against its the datum type
 #
 # For PCD value setting
index ce1e603..5bea694 100644 (file)
@@ -18,70 +18,6 @@ from String import *
 from CommonDataClass.DataClass import *\r
 from DataType import *\r
 \r
-## ParseContent\r
-#\r
-# Parse content of a DSC/INF/DEC file\r
-#\r
-def ParseContent(Lines, ):\r
-    for Line in Lines:\r
-        LineNo = LineNo + 1\r
-        #\r
-        # Remove comments at tail and remove spaces again\r
-        #\r
-        Line = CleanString(Line)\r
-        if Line == '':\r
-            continue\r
-\r
-        #\r
-        # Find a new section tab\r
-        # First insert previous section items\r
-        # And then parse the content of the new section\r
-        #\r
-        if Line.startswith(TAB_SECTION_START) and Line.endswith(TAB_SECTION_END):\r
-            #\r
-            # Insert items data of previous section\r
-            #\r
-            self.InsertSectionItemsIntoDatabase(FileID, Filename, CurrentSection, SectionItemList, ArchList, ThirdList, IfDefList)\r
-            #\r
-            # Parse the new section\r
-            #\r
-            SectionItemList = []\r
-            ArchList = []\r
-            ThirdList = []\r
-\r
-            LineList = GetSplitValueList(Line[len(TAB_SECTION_START):len(Line) - len(TAB_SECTION_END)], TAB_COMMA_SPLIT)\r
-            for Item in LineList:\r
-                ItemList = GetSplitValueList(Item, TAB_SPLIT)\r
-                CurrentSection = ItemList[0]\r
-                if CurrentSection.upper() not in self.KeyList:\r
-                    RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
-                ItemList.append('')\r
-                ItemList.append('')\r
-                if len(ItemList) > 5:\r
-                    RaiseParserError(Line, CurrentSection, Filename, '', LineNo)\r
-                else:\r
-                    if ItemList[1] != '' and ItemList[1].upper() not in ARCH_LIST_FULL:\r
-                        EdkLogger.error("Parser", PARSER_ERROR, "Invalid Arch definition '%s' found" % ItemList[1], File=Filename, Line=LineNo)\r
-                    ArchList.append(ItemList[1].upper())\r
-                    ThirdList.append(ItemList[2])\r
-\r
-            continue\r
-\r
-        #\r
-        # Not in any defined section\r
-        #\r
-        if CurrentSection == TAB_UNKNOWN:\r
-            ErrorMsg = "%s is not in any defined section" % Line\r
-            EdkLogger.error("Parser", PARSER_ERROR, ErrorMsg, File=Filename, Line=LineNo)\r
-\r
-        #\r
-        # Add a section item\r
-        #\r
-        SectionItemList.append([Line, LineNo])\r
-        # End of parse\r
-    #End of For\r
-\r
-\r
 ## ParseDefineMacro\r
 #\r
 # Search whole table to find all defined Macro and replaced them with the real values\r
@@ -940,4 +876,4 @@ def GenMetaDatSectionItem(Key, Value, List):
     if Key not in List:\r
         List[Key] = [Value]\r
     else:\r
-        List[Key].append(Value)
\ No newline at end of file
+        List[Key].append(Value)\r
index 5f92fa5..207cc87 100644 (file)
@@ -135,7 +135,9 @@ class VpdInfoFile:
             fd.write(FILE_COMMENT_TEMPLATE)\r
 \r
             # write each of PCD in VPD type\r
-            for Pcd in self._VpdArray.keys():\r
+            Pcds = self._VpdArray.keys()\r
+            Pcds.sort()\r
+            for Pcd in Pcds:\r
                 for Offset in self._VpdArray[Pcd]:\r
                     PcdValue = str(Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]].DefaultValue).strip()\r
                     if PcdValue == "" :\r
index d11af6c..52d32a9 100644 (file)
@@ -565,9 +565,9 @@ class FdfParser:
         self.Rewind()\r
 \r
     \r
-    ## PreprocessIncludeFile() method\r
+    ## PreprocessConditionalStatement() method\r
     #\r
-    #   Preprocess file contents, replace !include statements with file contents.\r
+    #   Preprocess conditional statement.\r
     #   In the end, rewind the file buffer pointer to the beginning\r
     #\r
     #   @param  self        The object pointer\r
@@ -1264,6 +1264,12 @@ class FdfParser:
             raise Warning("expected ']'", self.FileName, self.CurrentLineNumber)\r
 \r
         while self.__GetNextWord():\r
+            # handle the SET statement\r
+            if self.__Token == 'SET':\r
+                self.__UndoToken()\r
+                self.__GetSetStatement(None)\r
+                continue\r
+            \r
             Macro = self.__Token\r
             \r
             if not self.__IsToken("="):\r
@@ -1489,7 +1495,7 @@ class FdfParser:
         \r
         for Item in Obj.BlockSizeList:\r
             if Item[0] == None or Item[1] == None:\r
-                raise Warning("expected block statement for Fd Section", self.FileName, self.CurrentLineNumber)\r
+                raise Warning("expected block statement", self.FileName, self.CurrentLineNumber)\r
 \r
     ## __GetBlockStatement() method\r
     #\r
@@ -1508,7 +1514,7 @@ class FdfParser:
             raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
 \r
         if not self.__GetNextHexNumber() and not self.__GetNextDecimalNumber():\r
-            raise Warning("expected Hex block size", self.FileName, self.CurrentLineNumber)\r
+            raise Warning("expected Hex or Integer block size", self.FileName, self.CurrentLineNumber)\r
 \r
         BlockSize = self.__Token\r
         BlockSizePcd = None\r
@@ -1609,7 +1615,8 @@ class FdfParser:
                     raise Warning("expected '}'", self.FileName, self.CurrentLineNumber)\r
                 Value += self.__SkippedChars\r
 \r
-            Obj.SetVarDict[PcdPair] = Value\r
+            if Obj:\r
+                Obj.SetVarDict[PcdPair] = Value\r
             self.Profile.PcdDict[PcdPair] = Value\r
             return True\r
 \r
@@ -1904,7 +1911,8 @@ class FdfParser:
 \r
         self.__GetAddressStatements(FvObj)\r
 \r
-        self.__GetBlockStatement(FvObj)\r
+        while self.__GetBlockStatement(FvObj):\r
+            pass\r
 \r
         self.__GetSetStatements(FvObj)\r
 \r
index 47521e0..d2397e0 100644 (file)
@@ -161,6 +161,14 @@ class FfsInfStatement(FfsInfStatementClassObject):
         #\r
 \r
         self.__InfParse__(Dict)\r
+        \r
+        #\r
+        # Allow binary type module not specify override rule in FDF file.\r
+        # \r
+        if len(self.BinFileList) >0 and not self.InDsc:\r
+            if self.Rule == None or self.Rule == "":\r
+                self.Rule = "BINARY"\r
+                \r
         #\r
         # Get the rule of how to generate Ffs file\r
         #\r
index 48fe498..04af6e2 100644 (file)
@@ -351,16 +351,14 @@ class GenFds :
             FvObj = GenFdsGlobalVariable.FdfParser.Profile.FvDict.get(GenFds.OnlyGenerateThisFv.upper())
             if FvObj != None:
                 Buffer = StringIO.StringIO()
-                # Get FV base Address
-                FvObj.AddToBuffer(Buffer, None, GenFds.GetFvBlockSize(FvObj))
+                FvObj.AddToBuffer(Buffer)
                 Buffer.close()
                 return
         elif GenFds.OnlyGenerateThisFv == None:
             for FvName in GenFdsGlobalVariable.FdfParser.Profile.FvDict.keys():
                 Buffer = StringIO.StringIO('')
                 FvObj = GenFdsGlobalVariable.FdfParser.Profile.FvDict[FvName]
-                # Get FV base Address
-                FvObj.AddToBuffer(Buffer, None, GenFds.GetFvBlockSize(FvObj))
+                FvObj.AddToBuffer(Buffer)
                 Buffer.close()
         
         if GenFds.OnlyGenerateThisFv == None and GenFds.OnlyGenerateThisFd == None:
@@ -453,7 +451,12 @@ class GenFds :
             TotalSizeValue = long(FvSpaceInfo[1], 0)
             UsedSizeValue = long(FvSpaceInfo[2], 0)
             FreeSizeValue = long(FvSpaceInfo[3], 0)
-            GenFdsGlobalVariable.InfLogger(Name + ' ' + '[' + str((UsedSizeValue+0.0)/TotalSizeValue)[0:4].lstrip('0.') + '%Full] ' + str(TotalSizeValue) + ' total, ' + str(UsedSizeValue) + ' used, ' + str(FreeSizeValue) + ' free')
+            if UsedSizeValue == TotalSizeValue:
+                Percentage = '100'
+            else:
+                Percentage = str((UsedSizeValue+0.0)/TotalSizeValue)[0:4].lstrip('0.') 
+            
+            GenFdsGlobalVariable.InfLogger(Name + ' ' + '[' + Percentage + '%Full] ' + str(TotalSizeValue) + ' total, ' + str(UsedSizeValue) + ' used, ' + str(FreeSizeValue) + ' free')
 
     ## PreprocessImage()
     #
index 09971b3..bfa65c8 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # process FD Region generation\r
 #\r
-#  Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
@@ -62,9 +62,6 @@ class Region(RegionClassObject):
             #\r
             # Get Fv from FvDict\r
             #\r
-            RegionBlockSize = self.BlockSizeOfRegion(BlockSizeList)\r
-            RegionBlockNum = self.BlockNumOfRegion(RegionBlockSize)\r
-\r
             self.FvAddress = int(BaseAddress, 16) + self.Offset\r
             FvBaseAddress  = '0x%X' %self.FvAddress\r
             FvOffset       = 0\r
@@ -95,13 +92,7 @@ class Region(RegionClassObject):
                         #\r
                         # Call GenFv tool\r
                         #\r
-                        BlockSize = RegionBlockSize\r
-                        BlockNum = RegionBlockNum\r
-                        if FvObj.BlockSizeList != []:\r
-                            if FvObj.BlockSizeList[0][0] != None:\r
-                                BlockSize = FvObj.BlockSizeList[0][0]\r
-                            if FvObj.BlockSizeList[0][1] != None:\r
-                                BlockNum = FvObj.BlockSizeList[0][1]\r
+                        self.BlockInfoOfRegion(BlockSizeList, FvObj)\r
                         self.FvAddress = self.FvAddress + FvOffset\r
                         FvAlignValue = self.GetFvAlignValue(FvObj.FvAlignment)\r
                         if self.FvAddress % FvAlignValue != 0:\r
@@ -109,6 +100,8 @@ class Region(RegionClassObject):
                                             "FV (%s) is NOT %s Aligned!" % (FvObj.UiFvName, FvObj.FvAlignment))\r
                         FvBuffer = StringIO.StringIO('')\r
                         FvBaseAddress = '0x%X' %self.FvAddress\r
+                        BlockSize = None\r
+                        BlockNum = None\r
                         FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize, BlockNum, ErasePolarity, vtfDict)\r
                         if FvBuffer.len > Size:\r
                             FvBuffer.close()\r
@@ -288,38 +281,74 @@ class Region(RegionClassObject):
 \r
         AlignValue = int(Str)*Granu\r
         return AlignValue\r
\r
     ## BlockSizeOfRegion()\r
     #\r
     #   @param  BlockSizeList        List of block information\r
-    #   @retval int                  Block size of region\r
+    #   @param  FvObj                The object for FV\r
     #\r
-    def BlockSizeOfRegion(self, BlockSizeList):\r
-        Offset = 0x00\r
-        BlockSize = 0\r
-        for item in BlockSizeList:\r
-            Offset = Offset + item[0]  * item[1]\r
-            GenFdsGlobalVariable.VerboseLogger ("Offset = 0x%X" %Offset)\r
-            GenFdsGlobalVariable.VerboseLogger ("self.Offset 0x%X" %self.Offset)\r
-\r
-            if self.Offset < Offset :\r
-                if Offset - self.Offset < self.Size:\r
-                    EdkLogger.error("GenFds", GENFDS_ERROR,\r
-                                    "Region at Offset 0x%X can NOT fit into Block array with BlockSize %X" \\r
-                                    % (self.Offset, item[0]))\r
-                BlockSize = item[0]\r
-                GenFdsGlobalVariable.VerboseLogger ("BlockSize = %X" %BlockSize)\r
-                return BlockSize\r
-        return BlockSize\r
+    def BlockInfoOfRegion(self, BlockSizeList, FvObj):\r
+        Start = 0\r
+        End = 0\r
+        RemindingSize = self.Size\r
+        ExpectedList = []\r
+        for (BlockSize, BlockNum, pcd) in BlockSizeList:\r
+            End = Start + BlockSize * BlockNum\r
+            # region not started yet\r
+            if self.Offset >= End:\r
+                Start = End\r
+                continue\r
+            # region located in current blocks \r
+            else:\r
+                # region ended within current blocks\r
+                if self.Offset + self.Size <= End:\r
+                    ExpectedList.append((BlockSize, (RemindingSize + BlockSize - 1)/BlockSize))\r
+                    break\r
+                # region not ended yet\r
+                else:\r
+                    # region not started in middle of current blocks\r
+                    if self.Offset <= Start:\r
+                        UsedBlockNum = BlockNum\r
+                    # region started in middle of current blocks\r
+                    else:\r
+                        UsedBlockNum = (End - self.Offset)/BlockSize\r
+                    Start = End\r
+                    ExpectedList.append((BlockSize, UsedBlockNum))\r
+                    RemindingSize -= BlockSize * UsedBlockNum\r
+                   \r
+        if FvObj.BlockSizeList == []:\r
+            FvObj.BlockSizeList = ExpectedList\r
+        else:\r
+            # first check whether FvObj.BlockSizeList items have only "BlockSize" or "NumBlocks",\r
+            # if so, use ExpectedList\r
+            for Item in FvObj.BlockSizeList:\r
+                if Item[0] == None or Item[1] == None:\r
+                    FvObj.BlockSizeList = ExpectedList\r
+                    break\r
+            # make sure region size is no smaller than the summed block size in FV\r
+            Sum = 0\r
+            for Item in FvObj.BlockSizeList:\r
+                Sum += Item[0] * Item[1]\r
+            if self.Size < Sum:\r
+                EdkLogger.error("GenFds", GENFDS_ERROR, "Total Size of FV %s 0x%x is larger than Region Size 0x%x "\r
+                                %(FvObj.UiFvName, Sum, self.Size))\r
+            # check whether the BlockStatements in FV section is appropriate\r
+            ExpectedListData = ''\r
+            for Item in ExpectedList:\r
+                ExpectedListData += "BlockSize = 0x%x\n\tNumBlocks = 0x%x\n\t"%Item \r
+            Index = 0\r
+            for Item in FvObj.BlockSizeList:\r
+                if Item[0] != ExpectedList[Index][0]:\r
+                    EdkLogger.error("GenFds", GENFDS_ERROR, "BlockStatements of FV %s are not align with FD's, suggested FV BlockStatement"\r
+                                    %FvObj.UiFvName, ExtraData = ExpectedListData)\r
+                elif Item[1] != ExpectedList[Index][1]:\r
+                    if (Item[1] < ExpectedList[Index][1]) and (Index == len(FvObj.BlockSizeList) - 1):\r
+                        break;\r
+                    else:\r
+                        EdkLogger.error("GenFds", GENFDS_ERROR, "BlockStatements of FV %s are not align with FD's, suggested FV BlockStatement"\r
+                                        %FvObj.UiFvName, ExtraData = ExpectedListData)\r
+                else:\r
+                    Index += 1\r
 \r
-    ## BlockNumOfRegion()\r
-    #\r
-    #   @param  BlockSize            block size of region\r
-    #   @retval int                  Block number of region\r
-    #\r
-    def BlockNumOfRegion (self, BlockSize):\r
-        if BlockSize == 0 :\r
-            EdkLogger.error("GenFds", GENFDS_ERROR, "Region: %s is not in the FD address scope!" % self.Offset)\r
-        BlockNum = self.Size / BlockSize\r
-        GenFdsGlobalVariable.VerboseLogger ("BlockNum = 0x%X" %BlockNum)\r
-        return BlockNum\r
+            \r
 \r
index 2b25dc4..7f34f49 100644 (file)
@@ -1209,7 +1209,19 @@ class DecParser(MetaFileParser):
                                       " (<TokenSpaceGuidCName>.<PcdCName>|<DefaultValue>|<DatumType>|<Token>)",
                             File=self.MetaFile, Line=self._LineIndex+1)
 
-        ValueList = GetSplitValueList(TokenList[1])
+        
+        ValueRe  = re.compile(r'^\s*L?\".*\|.*\"')
+        PtrValue = ValueRe.findall(TokenList[1])
+        
+        # Has VOID* type string, may contain "|" character in the string. 
+        if len(PtrValue) != 0:
+            ptrValueList = re.sub(ValueRe, '', TokenList[1])
+            ValueList    = GetSplitValueList(ptrValueList)
+            ValueList[0] = PtrValue[0]
+        else:
+            ValueList = GetSplitValueList(TokenList[1])
+            
+        
         # check if there's enough datum information given
         if len(ValueList) != 3:
             EdkLogger.error('Parser', FORMAT_INVALID, "Invalid PCD Datum information given",
index 9d53fa8..4b00dff 100644 (file)
@@ -74,6 +74,8 @@ class DscBuildData(PlatformBuildClassObject):
         TAB_DSC_DEFINES_MAKEFILE_NAME           :   "_MakefileName",\r
         TAB_DSC_DEFINES_BS_BASE_ADDRESS         :   "_BsBaseAddress",\r
         TAB_DSC_DEFINES_RT_BASE_ADDRESS         :   "_RtBaseAddress",\r
+        #TAB_DSC_DEFINES_RFC_LANGUAGES           :   "_RFCLanguages",\r
+        #TAB_DSC_DEFINES_ISO_LANGUAGES           :   "_ISOLanguages",\r
     }\r
 \r
     # used to compose dummy library class name for those forced library instances\r
@@ -140,6 +142,8 @@ class DscBuildData(PlatformBuildClassObject):
         self._Pcds              = None\r
         self._BuildOptions      = None\r
         self._LoadFixAddress    = None\r
+        self._RFCLanguages      = None\r
+        self._ISOLanguages      = None\r
         self._VpdToolGuid       = None\r
 \r
     ## Get architecture\r
@@ -194,6 +198,35 @@ class DscBuildData(PlatformBuildClassObject):
                     self._SkuName = Record[1]\r
             elif Name == TAB_FIX_LOAD_TOP_MEMORY_ADDRESS:\r
                 self._LoadFixAddress = Record[1]\r
+            elif Name == TAB_DSC_DEFINES_RFC_LANGUAGES:\r
+                if not Record[1] or Record[1][0] != '"' or Record[1][-1] != '"' or len(Record[1]) == 1:\r
+                    EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'language code for RFC_LANGUAGES must have double quotes around it, for example: RFC_LANGUAGES = "en-us;zh-hans"',\r
+                                    File=self.MetaFile, Line=Record[-1])\r
+                LanguageCodes = Record[1][1:-1]\r
+                if not LanguageCodes:\r
+                    EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'one or more RFC4646 format language code must be provided for RFC_LANGUAGES statement',\r
+                                    File=self.MetaFile, Line=Record[-1])                \r
+                LanguageList = GetSplitValueList(LanguageCodes, TAB_SEMI_COLON_SPLIT)\r
+                # check whether there is empty entries in the list\r
+                if None in LanguageList:\r
+                    EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'one or more empty language code is in RFC_LANGUAGES statement',\r
+                                    File=self.MetaFile, Line=Record[-1])                      \r
+                self._RFCLanguages = LanguageList\r
+            elif Name == TAB_DSC_DEFINES_ISO_LANGUAGES:\r
+                if not Record[1] or Record[1][0] != '"' or Record[1][-1] != '"' or len(Record[1]) == 1:\r
+                    EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'language code for ISO_LANGUAGES must have double quotes around it, for example: ISO_LANGUAGES = "engchn"',\r
+                                    File=self.MetaFile, Line=Record[-1])\r
+                LanguageCodes = Record[1][1:-1]\r
+                if not LanguageCodes:\r
+                    EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'one or more ISO639-2 format language code must be provided for ISO_LANGUAGES statement',\r
+                                    File=self.MetaFile, Line=Record[-1])                    \r
+                if len(LanguageCodes)%3:\r
+                    EdkLogger.error('build', FORMAT_NOT_SUPPORTED, 'bad ISO639-2 format for ISO_LANGUAGES',\r
+                                    File=self.MetaFile, Line=Record[-1])\r
+                LanguageList = []\r
+                for i in range(0, len(LanguageCodes), 3):\r
+                    LanguageList.append(LanguageCodes[i:i+3])\r
+                self._ISOLanguages = LanguageList               \r
             elif Name == TAB_DSC_DEFINES_VPD_TOOL_GUID:\r
                 #\r
                 # try to convert GUID to a real UUID value to see whether the GUID is format \r
@@ -339,6 +372,24 @@ class DscBuildData(PlatformBuildClassObject):
                 self._LoadFixAddress = ''\r
         return self._LoadFixAddress\r
 \r
+    ## Retrieve RFCLanguage filter\r
+    def _GetRFCLanguages(self):\r
+        if self._RFCLanguages == None:\r
+            if self._Header == None:\r
+                self._GetHeaderInfo()\r
+            if self._RFCLanguages == None:\r
+                self._RFCLanguages = []\r
+        return self._RFCLanguages\r
+\r
+    ## Retrieve ISOLanguage filter\r
+    def _GetISOLanguages(self):\r
+        if self._ISOLanguages == None:\r
+            if self._Header == None:\r
+                self._GetHeaderInfo()\r
+            if self._ISOLanguages == None:\r
+                self._ISOLanguages = []\r
+        return self._ISOLanguages\r
+\r
     ## Retrieve the GUID string for VPD tool\r
     def _GetVpdToolGuid(self):\r
         if self._VpdToolGuid == None:\r
@@ -588,13 +639,10 @@ class DscBuildData(PlatformBuildClassObject):
             PcdDict[Arch, PcdCName, TokenSpaceGuid] = Setting\r
         # Remove redundant PCD candidates\r
         for PcdCName, TokenSpaceGuid in PcdSet:\r
-            ValueList = ['', '', '']\r
             Setting = PcdDict[self._Arch, PcdCName, TokenSpaceGuid]\r
             if Setting == None:\r
                 continue\r
-            TokenList = Setting.split(TAB_VALUE_SPLIT)\r
-            ValueList[0:len(TokenList)] = TokenList\r
-            PcdValue, DatumType, MaxDatumSize = ValueList\r
+            PcdValue, DatumType, MaxDatumSize = AnalyzePcdData(Setting)\r
             Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(\r
                                                 PcdCName,\r
                                                 TokenSpaceGuid,\r
@@ -622,22 +670,20 @@ class DscBuildData(PlatformBuildClassObject):
         # PCD settings for certain ARCH and SKU\r
         #\r
         PcdDict = tdict(True, 4)\r
-        PcdSet = set()\r
+        PcdList = []\r
         # Find out all possible PCD candidates for self._Arch\r
         RecordList = self._RawData[Type, self._Arch]\r
         for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList:\r
-            PcdSet.add((PcdCName, TokenSpaceGuid))\r
+            PcdList.append((PcdCName, TokenSpaceGuid))\r
             PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid] = Setting\r
         # Remove redundant PCD candidates, per the ARCH and SKU\r
-        for PcdCName, TokenSpaceGuid in PcdSet:\r
-            ValueList = ['', '', '']\r
+        for PcdCName, TokenSpaceGuid in PcdList:\r
             Setting = PcdDict[self._Arch, self.SkuName, PcdCName, TokenSpaceGuid]\r
             if Setting == None:\r
                 continue\r
-            TokenList = Setting.split(TAB_VALUE_SPLIT)\r
-            ValueList[0:len(TokenList)] = TokenList\r
-            PcdValue, DatumType, MaxDatumSize = ValueList\r
-\r
+                      \r
+            PcdValue, DatumType, MaxDatumSize = AnalyzePcdData(Setting)\r
+                \r
             SkuInfo = SkuInfoClass(self.SkuName, self.SkuIds[self.SkuName], '', '', '', '', '', PcdValue)\r
             Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(\r
                                                 PcdCName,\r
@@ -674,13 +720,10 @@ class DscBuildData(PlatformBuildClassObject):
             PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid] = Setting\r
         # Remove redundant PCD candidates, per the ARCH and SKU\r
         for PcdCName, TokenSpaceGuid in PcdSet:\r
-            ValueList = ['', '', '', '']\r
             Setting = PcdDict[self._Arch, self.SkuName, PcdCName, TokenSpaceGuid]\r
             if Setting == None:\r
                 continue\r
-            TokenList = Setting.split(TAB_VALUE_SPLIT)\r
-            ValueList[0:len(TokenList)] = TokenList\r
-            VariableName, VariableGuid, VariableOffset, DefaultValue = ValueList\r
+            VariableName, VariableGuid, VariableOffset, DefaultValue = AnalyzeHiiPcdData(Setting)\r
             SkuInfo = SkuInfoClass(self.SkuName, self.SkuIds[self.SkuName], VariableName, VariableGuid, VariableOffset, DefaultValue)\r
             Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(\r
                                                 PcdCName,\r
@@ -709,27 +752,24 @@ class DscBuildData(PlatformBuildClassObject):
         # PCD settings for certain ARCH and SKU\r
         #\r
         PcdDict = tdict(True, 4)\r
-        PcdSet = set()\r
+        PcdList = []\r
         # Find out all possible PCD candidates for self._Arch\r
         RecordList = self._RawData[Type, self._Arch]\r
         for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4 in RecordList:\r
-            PcdSet.add((PcdCName, TokenSpaceGuid))\r
+            PcdList.append((PcdCName, TokenSpaceGuid))\r
             PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid] = Setting\r
         # Remove redundant PCD candidates, per the ARCH and SKU\r
-        for PcdCName, TokenSpaceGuid in PcdSet:\r
-            ValueList = ['', '', '']\r
+        for PcdCName, TokenSpaceGuid in PcdList:\r
             Setting = PcdDict[self._Arch, self.SkuName, PcdCName, TokenSpaceGuid]\r
             if Setting == None:\r
                 continue\r
-            TokenList = Setting.split(TAB_VALUE_SPLIT)\r
-            ValueList[0:len(TokenList)] = TokenList\r
             #\r
             # For the VOID* type, it can have optional data of MaxDatumSize and InitialValue\r
             # For the Integer & Boolean type, the optional data can only be InitialValue.\r
             # At this point, we put all the data into the PcdClssObject for we don't know the PCD's datumtype\r
             # until the DEC parser has been called.\r
             # \r
-            VpdOffset, MaxDatumSize, InitialValue = ValueList\r
+            VpdOffset, MaxDatumSize, InitialValue = AnalyzeVpdPcdData(Setting)\r
 \r
             SkuInfo = SkuInfoClass(self.SkuName, self.SkuIds[self.SkuName], '', '', '', '', VpdOffset, InitialValue)\r
             Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(\r
@@ -790,6 +830,8 @@ class DscBuildData(PlatformBuildClassObject):
     BsBaseAddress       = property(_GetBsBaseAddress)\r
     RtBaseAddress       = property(_GetRtBaseAddress)\r
     LoadFixAddress      = property(_GetLoadFixAddress)\r
+    RFCLanguages        = property(_GetRFCLanguages)\r
+    ISOLanguages        = property(_GetISOLanguages)\r
     VpdToolGuid         = property(_GetVpdToolGuid)   \r
     SkuIds              = property(_GetSkuIds)\r
     Modules             = property(_GetModules)\r
@@ -1083,7 +1125,6 @@ class DecBuildData(PackageBuildClassObject):
             PcdSet.add((PcdCName, TokenSpaceGuid))\r
 \r
         for PcdCName, TokenSpaceGuid in PcdSet:\r
-            ValueList = ['', '', '']\r
             #\r
             # limit the ARCH to self._Arch, if no self._Arch found, tdict\r
             # will automatically turn to 'common' ARCH and try again\r
@@ -1091,9 +1132,9 @@ class DecBuildData(PackageBuildClassObject):
             Setting = PcdDict[self._Arch, PcdCName, TokenSpaceGuid]\r
             if Setting == None:\r
                 continue\r
-            TokenList = Setting.split(TAB_VALUE_SPLIT)\r
-            ValueList[0:len(TokenList)] = TokenList\r
-            DefaultValue, DatumType, TokenNumber = ValueList\r
+\r
+            DefaultValue, DatumType, TokenNumber = AnalyzePcdData(Setting)\r
+                                       \r
             Pcds[PcdCName, TokenSpaceGuid, self._PCD_TYPE_STRING_[Type]] = PcdClassObject(\r
                                                                             PcdCName,\r
                                                                             TokenSpaceGuid,\r
@@ -1920,11 +1961,11 @@ class InfBuildData(ModuleBuildClassObject):
     def _GetPcd(self, Type):\r
         Pcds = {}\r
         PcdDict = tdict(True, 4)\r
-        PcdSet = set()\r
+        PcdList = []\r
         RecordList = self._RawData[Type, self._Arch, self._Platform]\r
         for TokenSpaceGuid, PcdCName, Setting, Arch, Platform, Dummy1, LineNo in RecordList:\r
             PcdDict[Arch, Platform, PcdCName, TokenSpaceGuid] = (Setting, LineNo)\r
-            PcdSet.add((PcdCName, TokenSpaceGuid))\r
+            PcdList.append((PcdCName, TokenSpaceGuid))\r
             # get the guid value\r
             if TokenSpaceGuid not in self.Guids:\r
                 Value = GuidValue(TokenSpaceGuid, self.Packages)\r
@@ -1936,13 +1977,11 @@ class InfBuildData(ModuleBuildClassObject):
                 self.Guids[TokenSpaceGuid] = Value\r
 \r
         # resolve PCD type, value, datum info, etc. by getting its definition from package\r
-        for PcdCName, TokenSpaceGuid in PcdSet:\r
-            ValueList = ['', '']\r
+        for PcdCName, TokenSpaceGuid in PcdList:\r
             Setting, LineNo = PcdDict[self._Arch, self.Platform, PcdCName, TokenSpaceGuid]\r
             if Setting == None:\r
                 continue\r
-            TokenList = Setting.split(TAB_VALUE_SPLIT)\r
-            ValueList[0:len(TokenList)] = TokenList\r
+            ValueList = AnalyzePcdData(Setting)\r
             DefaultValue = ValueList[0]\r
             Pcd = PcdClassObject(\r
                     PcdCName,\r
@@ -1980,6 +2019,64 @@ class InfBuildData(ModuleBuildClassObject):
                     PcdInPackage = Package.Pcds[PcdCName, TokenSpaceGuid, PcdType]\r
                     Pcd.Type = PcdType\r
                     Pcd.TokenValue = PcdInPackage.TokenValue\r
+                    \r
+                    #\r
+                    # Check whether the token value exist or not.\r
+                    #\r
+                    if Pcd.TokenValue == None or Pcd.TokenValue == "":\r
+                        EdkLogger.error(\r
+                                'build',\r
+                                FORMAT_INVALID,\r
+                                "No TokenValue for PCD [%s.%s] in [%s]!" % (TokenSpaceGuid, PcdCName, str(Package)),\r
+                                File =self.MetaFile, Line=LineNo,\r
+                                ExtraData=None\r
+                                )                        \r
+                    #\r
+                    # Check hexadecimal token value length and format.\r
+                    #\r
+                    if Pcd.TokenValue.startswith("0x") or Pcd.TokenValue.startswith("0X"):\r
+                        if len(Pcd.TokenValue) < 3 or len(Pcd.TokenValue) > 10:\r
+                            EdkLogger.error(\r
+                                    'build',\r
+                                    FORMAT_INVALID,\r
+                                    "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid:" % (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)),\r
+                                    File =self.MetaFile, Line=LineNo,\r
+                                    ExtraData=None\r
+                                    )                          \r
+                        try:\r
+                            int (Pcd.TokenValue, 16)\r
+                        except:\r
+                            EdkLogger.error(\r
+                                    'build',\r
+                                    FORMAT_INVALID,\r
+                                    "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid:" % (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)),\r
+                                    File =self.MetaFile, Line=LineNo,\r
+                                    ExtraData=None\r
+                                    )\r
+                            \r
+                    #\r
+                    # Check decimal token value length and format.\r
+                    #                            \r
+                    else:\r
+                        try:\r
+                            TokenValueInt = int (Pcd.TokenValue, 10)\r
+                            if (TokenValueInt < 0 or TokenValueInt > 4294967295):\r
+                                EdkLogger.error(\r
+                                            'build',\r
+                                            FORMAT_INVALID,\r
+                                            "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid, as a decimal it should between: 0 - 4294967295!"% (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)),\r
+                                            File =self.MetaFile, Line=LineNo,\r
+                                            ExtraData=None\r
+                                            )                                \r
+                        except:\r
+                            EdkLogger.error(\r
+                                        'build',\r
+                                        FORMAT_INVALID,\r
+                                        "The format of TokenValue [%s] of PCD [%s.%s] in [%s] is invalid, it should be hexadecimal or decimal!"% (Pcd.TokenValue, TokenSpaceGuid, PcdCName, str(Package)),\r
+                                        File =self.MetaFile, Line=LineNo,\r
+                                        ExtraData=None\r
+                                        )\r
+                    \r
                     Pcd.DatumType = PcdInPackage.DatumType\r
                     Pcd.MaxDatumSize = PcdInPackage.MaxDatumSize\r
                     Pcd.InfDefaultValue = Pcd.DefaultValue\r
@@ -1989,12 +2086,13 @@ class InfBuildData(ModuleBuildClassObject):
             else:\r
                 EdkLogger.error(\r
                             'build',\r
-                            PARSER_ERROR,\r
+                            FORMAT_INVALID,\r
                             "PCD [%s.%s] in [%s] is not found in dependent packages:" % (TokenSpaceGuid, PcdCName, self.MetaFile),\r
                             File =self.MetaFile, Line=LineNo,\r
                             ExtraData="\t%s" % '\n\t'.join([str(P) for P in self.Packages])\r
                             )\r
             Pcds[PcdCName, TokenSpaceGuid] = Pcd\r
+\r
         return Pcds\r
 \r
     Arch                    = property(_GetArch, _SetArch)\r
index 5426595..84f5636 100644 (file)
@@ -999,7 +999,7 @@ class Build():
                 EdkLogger.error("build", FILE_DELETE_FAILURE, ExtraData=str(X))\r
         return True\r
 \r
-    ## Rebase module image and Get function address for the inpug module list.\r
+    ## Rebase module image and Get function address for the input module list.\r
     #\r
     def _RebaseModule (self, MapBuffer, BaseAddress, ModuleList, AddrIsOffset = True, ModeIsSmm = False):\r
         if ModeIsSmm:\r
@@ -1786,7 +1786,8 @@ def Main():
     else:\r
         GlobalData.gIsWindows = False\r
 \r
-    EdkLogger.quiet(time.strftime("%H:%M:%S, %b.%d %Y ", time.localtime()) + "[%s]\n" % platform.platform())\r
+    EdkLogger.quiet("Build environment: %s" % platform.platform())\r
+    EdkLogger.quiet(time.strftime("Build start time: %H:%M:%S, %b.%d %Y\n", time.localtime()));\r
     ReturnCode = 0\r
     MyBuild = None\r
     try:\r
@@ -1918,8 +1919,9 @@ def Main():
         MyBuild.BuildReport.GenerateReport(BuildDuration)\r
         MyBuild.Db.Close()\r
     EdkLogger.SetLevel(EdkLogger.QUIET)\r
-    EdkLogger.quiet("\n- %s -\n%s [%s]" % (Conclusion, time.strftime("%H:%M:%S, %b.%d %Y", time.localtime()), BuildDuration))\r
-\r
+    EdkLogger.quiet("\n- %s -" % Conclusion)\r
+    EdkLogger.quiet(time.strftime("Build end time: %H:%M:%S, %b.%d %Y", time.localtime()))\r
+    EdkLogger.quiet("Build total time: %s\n" % BuildDuration)\r
     return ReturnCode\r
 \r
 if __name__ == '__main__':\r