]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Conf/tools_def.template
BaseTools tools_def.template: Ignore link warning 4281 for VS2017
[mirror_edk2.git] / BaseTools / Conf / tools_def.template
old mode 100644 (file)
new mode 100755 (executable)
index 1a44fbd..adf4595
@@ -1,8 +1,9 @@
 #\r
-#  Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>\r
-#  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
 #  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
 #  Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>\r
+#  Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>\r
+#  (C) Copyright 2016 Hewlett Packard Enterprise Development LP<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
 IDENTIFIER = Default TOOL_CHAIN_CONF\r
 \r
 # common path macros\r
-DEFINE VS2003_BIN       = C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\r
-DEFINE VS2003_DLL       = C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\r
+DEFINE VS2003_BIN       = ENV(VS2003_PREFIX)Vc7\bin\r
+DEFINE VS2003_DLL       = ENV(VS2003_PREFIX)Common7\IDE\r
 \r
-DEFINE VS2005_BIN       = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\r
-DEFINE VS2005_DLL       = C:\Program Files\Microsoft Visual Studio 8\Common7\IDE;DEF(VS2005_BIN)\r
-DEFINE VS2005_BINX64    = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\x86_amd64\r
-DEFINE VS2005_BIN64     = C:\Program Files\Microsoft Visual Studio 8\Vc\bin\x86_ia64\r
+DEFINE VS2005_BIN       = ENV(VS2005_PREFIX)Vc\bin\r
+DEFINE VS2005_DLL       = ENV(VS2005_PREFIX)Common7\IDE;DEF(VS2005_BIN)\r
+DEFINE VS2005_BINX64    = DEF(VS2005_BIN)\x86_amd64\r
+DEFINE VS2005_BIN64     = DEF(VS2005_BIN)\x86_ia64\r
 \r
-DEFINE VS2005x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 8\Vc\bin\r
-DEFINE VS2005x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE;DEF(VS2005x86_BIN)\r
+DEFINE VS2005x86_BIN    = ENV(VS2005_PREFIX)Vc\bin\r
+DEFINE VS2005x86_DLL    = ENV(VS2005_PREFIX)Common7\IDE;DEF(VS2005x86_BIN)\r
 DEFINE VS2005x86_BINX64 = DEF(VS2005x86_BIN)\x86_amd64\r
 DEFINE VS2005x86_BIN64  = DEF(VS2005x86_BIN)\x86_ia64\r
 \r
-DEFINE VS2008_BIN      = C:\Program Files\Microsoft Visual Studio 9.0\Vc\bin\r
-DEFINE VS2008_DLL      = C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE;DEF(VS2008_BIN)\r
+DEFINE VS2008_BIN      = ENV(VS2008_PREFIX)Vc\bin\r
+DEFINE VS2008_DLL      = ENV(VS2008_PREFIX)Common7\IDE;DEF(VS2008_BIN)\r
 DEFINE VS2008_BINX64   = DEF(VS2008_BIN)\x86_amd64\r
 DEFINE VS2008_BIN64    = DEF(VS2008_BIN)\x86_ia64\r
 \r
-DEFINE VS2008x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 9.0\Vc\bin\r
-DEFINE VS2008x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;DEF(VS2008x86_BIN)\r
+DEFINE VS2008x86_BIN    = ENV(VS2008_PREFIX)Vc\bin\r
+DEFINE VS2008x86_DLL    = ENV(VS2008_PREFIX)Common7\IDE;DEF(VS2008x86_BIN)\r
 DEFINE VS2008x86_BINX64 = DEF(VS2008x86_BIN)\x86_amd64\r
 DEFINE VS2008x86_BIN64  = DEF(VS2008x86_BIN)\x86_ia64\r
 \r
-DEFINE VS2010_BIN      = C:\Program Files\Microsoft Visual Studio 10.0\Vc\bin\r
-DEFINE VS2010_DLL      = C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE;DEF(VS2010_BIN)\r
+DEFINE VS2010_BIN      = ENV(VS2010_PREFIX)Vc\bin\r
+DEFINE VS2010_DLL      = ENV(VS2010_PREFIX)Common7\IDE;DEF(VS2010_BIN)\r
 DEFINE VS2010_BINX64   = DEF(VS2010_BIN)\x86_amd64\r
 DEFINE VS2010_BIN64    = DEF(VS2010_BIN)\x86_ia64\r
 \r
-DEFINE VS2010x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Vc\bin\r
-DEFINE VS2010x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;DEF(VS2010x86_BIN)\r
+DEFINE VS2010x86_BIN    = ENV(VS2010_PREFIX)Vc\bin\r
+DEFINE VS2010x86_DLL    = ENV(VS2010_PREFIX)Common7\IDE;DEF(VS2010x86_BIN)\r
 DEFINE VS2010x86_BINX64 = DEF(VS2010x86_BIN)\x86_amd64\r
 DEFINE VS2010x86_BIN64  = DEF(VS2010x86_BIN)\x86_ia64\r
 \r
-DEFINE VS2012_BIN      = C:\Program Files\Microsoft Visual Studio 11.0\Vc\bin\r
-DEFINE VS2012_DLL      = C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE;DEF(VS2012_BIN)\r
+DEFINE VS2012_BIN      = ENV(VS2012_PREFIX)Vc\bin\r
+DEFINE VS2012_DLL      = ENV(VS2012_PREFIX)Common7\IDE;DEF(VS2012_BIN)\r
 DEFINE VS2012_BINX64   = DEF(VS2012_BIN)\x86_amd64\r
 \r
-DEFINE VS2012x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 11.0\Vc\bin\r
-DEFINE VS2012x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE;DEF(VS2012x86_BIN)\r
+DEFINE VS2012x86_BIN    = ENV(VS2012_PREFIX)Vc\bin\r
+DEFINE VS2012x86_DLL    = ENV(VS2012_PREFIX)Common7\IDE;DEF(VS2012x86_BIN)\r
 DEFINE VS2012x86_BINX64 = DEF(VS2012x86_BIN)\x86_amd64\r
 \r
-DEFINE VS2013_BIN      = C:\Program Files\Microsoft Visual Studio 12.0\Vc\bin\r
-DEFINE VS2013_DLL      = C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE;DEF(VS2012_BIN)\r
+DEFINE VS2013_BIN      = ENV(VS2013_PREFIX)Vc\bin\r
+DEFINE VS2013_DLL      = ENV(VS2013_PREFIX)Common7\IDE;DEF(VS2013_BIN)\r
 DEFINE VS2013_BINX64   = DEF(VS2013_BIN)\x86_amd64\r
 \r
-DEFINE VS2013x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 12.0\Vc\bin\r
-DEFINE VS2013x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;DEF(VS2013x86_BIN)\r
+DEFINE VS2013x86_BIN    = ENV(VS2013_PREFIX)Vc\bin\r
+DEFINE VS2013x86_DLL    = ENV(VS2013_PREFIX)Common7\IDE;DEF(VS2013x86_BIN)\r
 DEFINE VS2013x86_BINX64 = DEF(VS2013x86_BIN)\x86_amd64\r
 \r
-DEFINE VS2015_BIN      = C:\Program Files\Microsoft Visual Studio 14.0\Vc\bin\r
-DEFINE VS2015_DLL      = C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE;DEF(VS2015_BIN)\r
+DEFINE VS2015_BIN      = ENV(VS2015_PREFIX)Vc\bin\r
+DEFINE VS2015_DLL      = ENV(VS2015_PREFIX)Common7\IDE;DEF(VS2015_BIN)\r
 DEFINE VS2015_BINX64   = DEF(VS2015_BIN)\x86_amd64\r
 \r
-DEFINE VS2015x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Vc\bin\r
-DEFINE VS2015x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE;DEF(VS2015x86_BIN)\r
+DEFINE VS2015x86_BIN    = ENV(VS2015_PREFIX)Vc\bin\r
+DEFINE VS2015x86_DLL    = ENV(VS2015_PREFIX)Common7\IDE;DEF(VS2015x86_BIN)\r
 DEFINE VS2015x86_BINX64 = DEF(VS2015x86_BIN)\x86_amd64\r
 \r
-DEFINE WINSDK_VERSION   = v6.0A\r
-DEFINE WINSDK_BIN       = c:\Program Files\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin\r
-DEFINE WINSDKx86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin\r
+DEFINE VS2017_BIN         = ENV(VS2017_PREFIX)bin\r
+DEFINE VS2017_HOST        = x86\r
+DEFINE VS2017_BIN_HOST    = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\DEF(VS2017_HOST)\r
+DEFINE VS2017_BIN_IA32    = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x86\r
+DEFINE VS2017_BIN_X64     = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x64\r
+DEFINE VS2017_BIN_ARM     = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm\r
+DEFINE VS2017_BIN_AARCH64 = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm64\r
+\r
+DEFINE WINSDK_BIN       = ENV(WINSDK_PREFIX)\r
+DEFINE WINSDKx86_BIN    = ENV(WINSDKx86_PREFIX)\r
 \r
 # Microsoft Visual Studio 2010\r
-DEFINE WINSDK7_BIN       = c:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin\r
-DEFINE WINSDK7x86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\r
+DEFINE WINSDK7_BIN       = ENV(WINSDK7_PREFIX)\r
+DEFINE WINSDK7x86_BIN    = ENV(WINSDK7x86_PREFIX)\r
 \r
 # Microsoft Visual Studio 2012 Update 1 (required for rc.exe that was not included in the initial release)\r
-DEFINE WINSDK71_BIN       = c:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin\r
-DEFINE WINSDK71x86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\r
+DEFINE WINSDK71_BIN       = ENV(WINSDK71_PREFIX)\r
+DEFINE WINSDK71x86_BIN    = ENV(WINSDK71x86_PREFIX)\r
 \r
 # Microsoft Visual Studio 2013 Professional Edition\r
-DEFINE WINSDK8_BIN       = c:\Program Files\Windows Kits\8.0\bin\x86\\r
-DEFINE WINSDK8x86_BIN    = c:\Program Files (x86)\Windows Kits\8.0\bin\x64\r
+DEFINE WINSDK8_BIN       = ENV(WINSDK8_PREFIX)x86\\r
+DEFINE WINSDK8x86_BIN    = ENV(WINSDK8x86_PREFIX)x64\r
 \r
 # Microsoft Visual Studio 2015 Professional Edition\r
-DEFINE WINSDK81_BIN       = c:\Program Files\Windows Kits\8.1\bin\x86\\r
-DEFINE WINSDK81x86_BIN    = c:\Program Files (x86)\Windows Kits\8.1\bin\x64\r
+DEFINE WINSDK81_BIN       = ENV(WINSDK81_PREFIX)x86\\r
+DEFINE WINSDK81x86_BIN    = ENV(WINSDK81x86_PREFIX)x64\r
+\r
+# Microsoft Visual Studio 2017 Professional Edition\r
+DEFINE WINSDK10_BIN       = ENV(WINSDK10_PREFIX)DEF(VS2017_HOST)\r
 \r
 # These defines are needed for certain Microsoft Visual Studio tools that\r
 # are used by other toolchains.  An example is that ICC on Windows normally\r
@@ -102,10 +113,10 @@ DEFINE MS_VS_BIN   = DEF(VS2005_BIN)
 # Some MS_VS_DLL options: DEF(VS2003_DLL), DEF(VS2005_DLL), DEF(VS2005x86_DLL), DEF(VS2008_DLL), DEF(VS2008x86_DLL)\r
 DEFINE MS_VS_DLL   = DEF(VS2005_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
+DEFINE WINDDK_BIN16     = ENV(WINDDK3790_PREFIX)bin16\r
+DEFINE WINDDK_BIN32     = ENV(WINDDK3790_PREFIX)x86\r
+DEFINE WINDDK_BINX64    = ENV(WINDDK3790_PREFIX)win64\x86\amd64\r
+DEFINE WINDDK_BIN64     = ENV(WINDDK3790_PREFIX)win64\x86\r
 \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
@@ -196,10 +207,13 @@ DEFINE GCC48_X64_PREFIX        = ENV(GCC48_BIN)
 DEFINE GCC49_IA32_PREFIX       = ENV(GCC49_BIN)\r
 DEFINE GCC49_X64_PREFIX        = ENV(GCC49_BIN)\r
 \r
+DEFINE GCC5_IA32_PREFIX        = ENV(GCC5_BIN)\r
+DEFINE GCC5_X64_PREFIX         = ENV(GCC5_BIN)\r
+DEFINE GCC_HOST_PREFIX         = ENV(GCC_HOST_BIN)\r
+\r
 DEFINE UNIX_IASL_BIN           = ENV(IASL_PREFIX)iasl\r
-DEFINE WIN_ASL_BIN_DIR         = C:\ASL\r
-DEFINE WIN_IASL_BIN            = DEF(WIN_ASL_BIN_DIR)\iasl.exe\r
-DEFINE WIN_ASL_BIN             = DEF(WIN_ASL_BIN_DIR)\asl.exe\r
+DEFINE WIN_IASL_BIN            = ENV(IASL_PREFIX)iasl.exe\r
+DEFINE WIN_ASL_BIN             = ENV(IASL_PREFIX)asl.exe\r
 \r
 DEFINE IASL_FLAGS              =\r
 DEFINE IASL_OUTFLAGS           = -p\r
@@ -225,6 +239,9 @@ DEFINE IPHONE_TOOLS            = /Developer/Platforms/iPhoneOS.platform/Develope
 \r
 DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin\r
 \r
+DEFINE DTCPP_BIN               = ENV(DTCPP_PREFIX)cpp\r
+DEFINE DTC_BIN                 = ENV(DTC_PREFIX)dtc\r
+\r
 ####################################################################################\r
 #\r
 # format: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE = <string>\r
@@ -314,6 +331,17 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #                             Required to build platforms or ACPI tables:\r
 #                               Intel(r) ACPI Compiler (iasl.exe) from\r
 #                               https://acpica.org/downloads\r
+#   VS2017      -win32-  Requires:\r
+#                             Microsoft Visual Studio 2017 version 15.2 (15.4 for ARM64) or later\r
+#                        Optional:\r
+#                             Required to build EBC drivers:\r
+#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Intel(r) ACPI Compiler (iasl.exe) from\r
+#                               https://acpica.org/downloads\r
+#                        Note:\r
+#                             Building of XIP firmware images for ARM/ARM64 is not currently supported (only applications).\r
+#                             /FILEALIGN:4096 and other changes are needed for ARM firmware builds.\r
 #   DDK3790     -win32-  Requires:\r
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
 #                        Optional:\r
@@ -365,8 +393,21 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #                             Required to build platforms or ACPI tables:\r
 #                               Intel(r) ACPI Compiler from\r
 #                               https://acpica.org/downloads\r
+#   GCC5        -Linux,Windows-  Requires:\r
+#                             GCC 5 with LTO support, targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi\r
+#                        Optional:\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Intel(r) ACPI Compiler from\r
+#                               https://acpica.org/downloads\r
 #   CLANG35     -Linux,Windows-  Requires:\r
-#                             Clang v3.5 or later, and GNU binutils targeting aarch64-linux-gnu\r
+#                             Clang v3.5 or later, and GNU binutils targeting aarch64-linux-gnu or arm-linux-gnueabi\r
+#                        Optional:\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Intel(r) ACPI Compiler from\r
+#                               https://acpica.org/downloads\r
+#   CLANG38  -Linux-  Requires:\r
+#                             Clang v3.8, LLVMgold plugin and GNU binutils 2.26 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-linux-gnueabi\r
+#                             Clang v3.9 or later, LLVMgold plugin and GNU binutils 2.28 targeting x86_64-linux-gnu, aarch64-linux-gnu or arm-linux-gnueabi\r
 #                        Optional:\r
 #                             Required to build platforms or ACPI tables:\r
 #                               Intel(r) ACPI Compiler from\r
@@ -561,7 +602,7 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #                               Intel(r) ACPI Compiler (iasl.exe) from\r
 #                               https://acpica.org/downloads\r
 #   VS2015x86   -win64-  Requires:\r
-#                             Microsoft Visual Studio 2015 (x86) Professional Edition\r
+#                             Microsoft Visual Studio 2015 (x86) Update 2 or above\r
 #                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830\r
 #                        Optional:\r
 #                             Required to build platforms or ACPI tables:\r
@@ -707,7 +748,9 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
 #\r
 # Other Supported Tools\r
 # =====================\r
-#   NASM 2.07 or later                 http://www.nasm.us/\r
+#   NASM -- http://www.nasm.us/\r
+#   - NASM 2.10 or later for use with the GCC toolchain family\r
+#   - NASM 2.12.01 or later for use with all other toolchain families\r
 #\r
 ####################################################################################\r
 ####################################################################################\r
@@ -789,8 +832,8 @@ DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G
       *_VS2003_IA32_APP_FLAGS       = /nologo /E /TC\r
       *_VS2003_IA32_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
       *_VS2003_IA32_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
-  DEBUG_VS2003_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm\r
-RELEASE_VS2003_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX-\r
+  DEBUG_VS2003_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm\r
+RELEASE_VS2003_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX-\r
 NOOPT_VS2003_IA32_CC_FLAGS          = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm /Od\r
 \r
   DEBUG_VS2003_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
@@ -867,8 +910,8 @@ NOOPT_VS2003_IA32_DLINK_FLAGS       = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
       *_VS2003xASL_IA32_APP_FLAGS       = /nologo /E /TC\r
       *_VS2003xASL_IA32_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
       *_VS2003xASL_IA32_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
-  DEBUG_VS2003xASL_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm\r
-RELEASE_VS2003xASL_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX-\r
+  DEBUG_VS2003xASL_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm\r
+RELEASE_VS2003xASL_IA32_CC_FLAGS        = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /GX-\r
 NOOPT_VS2003xASL_IA32_CC_FLAGS          = /nologo /c /WX /W4 /Gs32768 /Gy /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /GX- /Zi /Gm /Od\r
 \r
   DEBUG_VS2003xASL_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
@@ -952,8 +995,8 @@ NOOPT_VS2003xASL_IA32_DLINK_FLAGS       = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OP
 *_VS2005_IA32_ASLDLINK_PATH       = DEF(VS2005_BIN)\link.exe\r
 \r
       *_VS2005_IA32_MAKE_FLAGS    = /nologo\r
-  DEBUG_VS2005_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-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_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2005_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2005_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -984,8 +1027,8 @@ NOOPT_VS2005_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2005_X64_ASLPP_PATH    = DEF(VS2005_BINX64)\cl.exe\r
 *_VS2005_X64_ASLDLINK_PATH = DEF(VS2005_BINX64)\link.exe\r
 \r
-  DEBUG_VS2005_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2005_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2005_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2005_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2005_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -1096,8 +1139,8 @@ NOOPT_VS2005_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 *_VS2005xASL_IA32_ASLDLINK_PATH = DEF(VS2005_BIN)\link.exe\r
 \r
       *_VS2005xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2005xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-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_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2005xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2005xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -1128,8 +1171,8 @@ NOOPT_VS2005xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2005xASL_X64_ASLPP_PATH    = DEF(VS2005_BINX64)\cl.exe\r
 *_VS2005xASL_X64_ASLDLINK_PATH = DEF(VS2005_BINX64)\link.exe\r
 \r
-  DEBUG_VS2005xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2005xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2005xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2005xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2005xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -1240,8 +1283,8 @@ NOOPT_VS2005xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,
 *_VS2005x86_IA32_ASLDLINK_PATH = DEF(VS2005x86_BIN)\link.exe\r
 \r
       *_VS2005x86_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2005x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-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_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2005x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2005x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -1272,8 +1315,8 @@ NOOPT_VS2005x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2005x86_X64_ASLPP_PATH    = DEF(VS2005x86_BINX64)\cl.exe\r
 *_VS2005x86_X64_ASLDLINK_PATH = DEF(VS2005x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2005x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2005x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2005x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2005x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2005x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -1384,8 +1427,8 @@ NOOPT_VS2005x86_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I
 *_VS2005x86xASL_IA32_ASLDLINK_PATH = DEF(VS2005x86_BIN)\link.exe\r
 \r
       *_VS2005x86xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2005x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-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_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2005x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005x86xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2005x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -1416,8 +1459,8 @@ NOOPT_VS2005x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2005x86xASL_X64_ASLPP_PATH    = DEF(VS2005x86_BINX64)\cl.exe\r
 *_VS2005x86xASL_X64_ASLDLINK_PATH = DEF(VS2005x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2005x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2005x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2005x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2005x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2005x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2005x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -1529,8 +1572,8 @@ NOOPT_VS2005x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 *_VS2008_IA32_ASLDLINK_PATH       = DEF(VS2008_BIN)\link.exe\r
 \r
       *_VS2008_IA32_MAKE_FLAGS    = /nologo\r
-  DEBUG_VS2008_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\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_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2008_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2008_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -1561,8 +1604,8 @@ NOOPT_VS2008_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2008_X64_ASLPP_PATH    = DEF(VS2008_BINX64)\cl.exe\r
 *_VS2008_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe\r
 \r
-  DEBUG_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -1675,8 +1718,8 @@ NOOPT_VS2008_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 *_VS2008xASL_IA32_ASLDLINK_PATH = DEF(VS2008_BIN)\link.exe\r
 \r
       *_VS2008xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2008xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-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_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2008xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2008xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -1707,8 +1750,8 @@ NOOPT_VS2008xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2008xASL_X64_ASLPP_PATH    = DEF(VS2008_BINX64)\cl.exe\r
 *_VS2008xASL_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe\r
 \r
-  DEBUG_VS2008xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2008xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2008xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2008xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2008xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -1819,8 +1862,8 @@ NOOPT_VS2008xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,
 *_VS2008x86_IA32_ASM_PATH     = DEF(VS2008x86_BIN)\ml.exe\r
 \r
       *_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_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2008x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2008x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -1851,8 +1894,8 @@ NOOPT_VS2008x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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- /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- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2008x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2008x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2008x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -1962,8 +2005,8 @@ NOOPT_VS2008x86_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I
 *_VS2008x86xASL_IA32_ASM_PATH     = DEF(VS2008x86_BIN)\ml.exe\r
 \r
       *_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_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2008x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008x86xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2008x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -1994,8 +2037,8 @@ NOOPT_VS2008x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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- /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- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2008x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2008x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2008x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2008x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -2108,8 +2151,8 @@ NOOPT_VS2008x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 *_VS2010_IA32_ASLDLINK_PATH       = DEF(VS2010_BIN)\link.exe\r
 \r
       *_VS2010_IA32_MAKE_FLAGS    = /nologo\r
-  DEBUG_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2010_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -2140,8 +2183,8 @@ NOOPT_VS2010_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2010_X64_ASLPP_PATH    = DEF(VS2010_BINX64)\cl.exe\r
 *_VS2010_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe\r
 \r
-  DEBUG_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -2254,8 +2297,8 @@ NOOPT_VS2010_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 *_VS2010xASL_IA32_ASLDLINK_PATH = DEF(VS2010_BIN)\link.exe\r
 \r
       *_VS2010xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2010xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2010xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2010xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -2286,8 +2329,8 @@ NOOPT_VS2010xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2010xASL_X64_ASLPP_PATH    = DEF(VS2010_BINX64)\cl.exe\r
 *_VS2010xASL_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe\r
 \r
-  DEBUG_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2010xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -2398,8 +2441,8 @@ NOOPT_VS2010xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,
 *_VS2010x86_IA32_ASM_PATH     = DEF(VS2010x86_BIN)\ml.exe\r
 \r
       *_VS2010x86_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2010x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -2430,8 +2473,8 @@ NOOPT_VS2010x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2010x86_X64_DLINK_PATH    = DEF(VS2010x86_BINX64)\link.exe\r
 *_VS2010x86_X64_ASLDLINK_PATH = DEF(VS2010x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2010x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -2541,8 +2584,8 @@ NOOPT_VS2010x86_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,I
 *_VS2010x86xASL_IA32_ASM_PATH     = DEF(VS2010x86_BIN)\ml.exe\r
 \r
       *_VS2010x86xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2010x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2010x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2010x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010x86xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2010x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -2573,8 +2616,8 @@ NOOPT_VS2010x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2010x86xASL_X64_DLINK_PATH    = DEF(VS2010x86_BINX64)\link.exe\r
 *_VS2010x86xASL_X64_ASLDLINK_PATH = DEF(VS2010x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2010x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2010x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2010x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2010x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2010x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2010x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -2687,8 +2730,8 @@ NOOPT_VS2010x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:R
 *_VS2012_IA32_ASLDLINK_PATH       = DEF(VS2012_BIN)\link.exe\r
 \r
       *_VS2012_IA32_MAKE_FLAGS    = /nologo\r
-  DEBUG_VS2012_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2012_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2012_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012_IA32_CC_FLAGS        = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2012_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -2719,8 +2762,8 @@ NOOPT_VS2012_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2012_X64_ASLPP_PATH    = DEF(VS2012_BINX64)\cl.exe\r
 *_VS2012_X64_ASLDLINK_PATH = DEF(VS2012_BINX64)\link.exe\r
 \r
-  DEBUG_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2012_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -2805,8 +2848,8 @@ NOOPT_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT
 *_VS2012xASL_IA32_ASLDLINK_PATH = DEF(VS2012_BIN)\link.exe\r
 \r
       *_VS2012xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2012xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2012xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2012xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2012xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -2837,8 +2880,8 @@ NOOPT_VS2012xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2012xASL_X64_ASLPP_PATH    = DEF(VS2012_BINX64)\cl.exe\r
 *_VS2012xASL_X64_ASLDLINK_PATH = DEF(VS2012_BINX64)\link.exe\r
 \r
-  DEBUG_VS2012xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2012xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2012xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2012xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -2921,8 +2964,8 @@ NOOPT_VS2012xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2012x86_IA32_ASM_PATH     = DEF(VS2012x86_BIN)\ml.exe\r
 \r
       *_VS2012x86_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2012x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2012x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2012x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012x86_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2012x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -2953,8 +2996,8 @@ NOOPT_VS2012x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2012x86_X64_DLINK_PATH    = DEF(VS2012x86_BINX64)\link.exe\r
 *_VS2012x86_X64_ASLDLINK_PATH = DEF(VS2012x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2012x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3036,8 +3079,8 @@ NOOPT_VS2012x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2012x86xASL_IA32_ASM_PATH     = DEF(VS2012x86_BIN)\ml.exe\r
 \r
       *_VS2012x86xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2012x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2012x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
+RELEASE_VS2012x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012x86xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2012x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3068,8 +3111,8 @@ NOOPT_VS2012x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2012x86xASL_X64_DLINK_PATH    = DEF(VS2012x86_BINX64)\link.exe\r
 *_VS2012x86xASL_X64_ASLDLINK_PATH = DEF(VS2012x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2012x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2012x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2012x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_VS2012x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_VS2012x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2012x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3153,8 +3196,8 @@ NOOPT_VS2012x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2013_IA32_ASLDLINK_PATH       = DEF(VS2013_BIN)\link.exe\r
 \r
       *_VS2013_IA32_MAKE_FLAGS    = /nologo\r
-  DEBUG_VS2013_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2013_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2013_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013_IA32_CC_FLAGS        = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2013_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3185,8 +3228,8 @@ NOOPT_VS2013_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2013_X64_ASLPP_PATH    = DEF(VS2013_BINX64)\cl.exe\r
 *_VS2013_X64_ASLDLINK_PATH = DEF(VS2013_BINX64)\link.exe\r
 \r
-  DEBUG_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2013_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3271,8 +3314,8 @@ NOOPT_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT
 *_VS2013xASL_IA32_ASLDLINK_PATH = DEF(VS2013_BIN)\link.exe\r
 \r
       *_VS2013xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2013xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2013xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2013xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2013xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3303,8 +3346,8 @@ NOOPT_VS2013xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2013xASL_X64_ASLPP_PATH    = DEF(VS2013_BINX64)\cl.exe\r
 *_VS2013xASL_X64_ASLDLINK_PATH = DEF(VS2013_BINX64)\link.exe\r
 \r
-  DEBUG_VS2013xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2013xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2013xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2013xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3387,8 +3430,8 @@ NOOPT_VS2013xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2013x86_IA32_ASM_PATH     = DEF(VS2013x86_BIN)\ml.exe\r
 \r
       *_VS2013x86_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2013x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2013x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2013x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013x86_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2013x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3419,8 +3462,8 @@ NOOPT_VS2013x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2013x86_X64_DLINK_PATH    = DEF(VS2013x86_BINX64)\link.exe\r
 *_VS2013x86_X64_ASLDLINK_PATH = DEF(VS2013x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2013x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3502,8 +3545,8 @@ NOOPT_VS2013x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2013x86xASL_IA32_ASM_PATH     = DEF(VS2013x86_BIN)\ml.exe\r
 \r
       *_VS2013x86xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2013x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2013x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2013x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013x86xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2013x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3534,8 +3577,8 @@ NOOPT_VS2013x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2013x86xASL_X64_DLINK_PATH    = DEF(VS2013x86_BINX64)\link.exe\r
 *_VS2013x86xASL_X64_ASLDLINK_PATH = DEF(VS2013x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2013x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2013x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2013x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2013x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2013x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2013x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3589,6 +3632,7 @@ NOOPT_VS2013x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2015_*_APP_FLAGS              = /nologo /E /TC\r
 *_VS2015_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h\r
 *_VS2015_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2015_*_DLINK2_FLAGS           =\r
 \r
 *_VS2015_*_ASM16_PATH             = DEF(VS2015_BIN)\ml.exe\r
 \r
@@ -3620,8 +3664,8 @@ NOOPT_VS2013x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2015_IA32_ASLDLINK_PATH       = DEF(VS2015_BIN)\link.exe\r
 \r
       *_VS2015_IA32_MAKE_FLAGS    = /nologo\r
-  DEBUG_VS2015_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2015_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2015_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015_IA32_CC_FLAGS        = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2015_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3652,8 +3696,8 @@ NOOPT_VS2015_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2015_X64_ASLPP_PATH    = DEF(VS2015_BINX64)\cl.exe\r
 *_VS2015_X64_ASLDLINK_PATH = DEF(VS2015_BINX64)\link.exe\r
 \r
-  DEBUG_VS2015_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2015_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2015_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2015_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3707,6 +3751,7 @@ NOOPT_VS2015_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT
 *_VS2015xASL_*_APP_FLAGS       = /nologo /E /TC\r
 *_VS2015xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
 *_VS2015xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2015xASL_*_DLINK2_FLAGS    =\r
 \r
 *_VS2015xASL_*_ASM16_PATH      = DEF(VS2015_BIN)\ml.exe\r
 \r
@@ -3738,8 +3783,8 @@ NOOPT_VS2015_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT
 *_VS2015xASL_IA32_ASLDLINK_PATH = DEF(VS2015_BIN)\link.exe\r
 \r
       *_VS2015xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2015xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2015xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2015xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2015xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3770,8 +3815,8 @@ NOOPT_VS2015xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2015xASL_X64_ASLPP_PATH    = DEF(VS2015_BINX64)\cl.exe\r
 *_VS2015xASL_X64_ASLDLINK_PATH = DEF(VS2015_BINX64)\link.exe\r
 \r
-  DEBUG_VS2015xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2015xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2015xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2015xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3823,6 +3868,7 @@ NOOPT_VS2015xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2015x86_*_APP_FLAGS       = /nologo /E /TC\r
 *_VS2015x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
 *_VS2015x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2015x86_*_DLINK2_FLAGS    =\r
 \r
 *_VS2015x86_*_ASM16_PATH      = DEF(VS2015x86_BIN)\ml.exe\r
 \r
@@ -3854,8 +3900,8 @@ NOOPT_VS2015xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
 *_VS2015x86_IA32_ASM_PATH     = DEF(VS2015x86_BIN)\ml.exe\r
 \r
       *_VS2015x86_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2015x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2015x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2015x86_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015x86_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2015x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -3886,8 +3932,8 @@ NOOPT_VS2015x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2015x86_X64_DLINK_PATH    = DEF(VS2015x86_BINX64)\link.exe\r
 *_VS2015x86_X64_ASLDLINK_PATH = DEF(VS2015x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2015x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2015x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2015x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2015x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -3938,6 +3984,7 @@ NOOPT_VS2015x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2015x86xASL_*_APP_FLAGS       = /nologo /E /TC\r
 *_VS2015x86xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
 *_VS2015x86xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2015x86xASL_*_DLINK2_FLAGS    =\r
 \r
 *_VS2015x86xASL_*_ASM16_PATH      = DEF(VS2015x86_BIN)\ml.exe\r
 \r
@@ -3969,8 +4016,8 @@ NOOPT_VS2015x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF
 *_VS2015x86xASL_IA32_ASM_PATH     = DEF(VS2015x86_BIN)\ml.exe\r
 \r
       *_VS2015x86xASL_IA32_MAKE_FLAGS  = /nologo\r
-  DEBUG_VS2015x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm\r
-RELEASE_VS2015x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2015x86xASL_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015x86xASL_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
 \r
   DEBUG_VS2015x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
@@ -4001,8 +4048,8 @@ NOOPT_VS2015x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2015x86xASL_X64_DLINK_PATH    = DEF(VS2015x86_BINX64)\link.exe\r
 *_VS2015x86xASL_X64_ASLDLINK_PATH = DEF(VS2015x86_BINX64)\link.exe\r
 \r
-  DEBUG_VS2015x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_VS2015x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_VS2015x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2015x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
 NOOPT_VS2015x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_VS2015x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -4038,6 +4085,169 @@ NOOPT_VS2015x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_VS2015x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
 \r
 \r
+####################################################################################\r
+#   VS2017       - Microsoft Visual Studio 2017 with Intel ASL\r
+#   ASL          - Intel ACPI Source Language Compiler (iasl.exe)\r
+####################################################################################\r
+#   VS2017           - Microsoft Visual Studio 2017 professional Edition with Intel ASL\r
+*_VS2017_*_*_FAMILY        = MSFT\r
+*_VS2017_*_*_DLL           = DEF(VS2017_BIN_HOST)\r
+\r
+*_VS2017_*_MAKE_PATH       = DEF(VS2017_BIN_HOST)\nmake.exe\r
+*_VS2017_*_MAKE_FLAG       = /nologo\r
+*_VS2017_*_RC_PATH         = DEF(WINSDK10_BIN)\rc.exe\r
+\r
+*_VS2017_*_MAKE_FLAGS      = /nologo\r
+*_VS2017_*_SLINK_FLAGS     = /NOLOGO /LTCG\r
+*_VS2017_*_APP_FLAGS       = /nologo /E /TC\r
+*_VS2017_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h\r
+*_VS2017_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2017_*_DLINK2_FLAGS    = /WHOLEARCHIVE\r
+*_VS2017_*_ASM16_PATH      = DEF(VS2017_BIN_IA32)\ml.exe\r
+\r
+##################\r
+# ASL definitions\r
+##################\r
+*_VS2017_*_ASL_PATH        = DEF(WIN_IASL_BIN)\r
+*_VS2017_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)\r
+*_VS2017_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)\r
+*_VS2017_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)\r
+*_VS2017_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)\r
+*_VS2017_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)\r
+\r
+##################\r
+# IA32 definitions\r
+##################\r
+*_VS2017_IA32_CC_PATH      = DEF(VS2017_BIN_IA32)\cl.exe\r
+*_VS2017_IA32_VFRPP_PATH   = DEF(VS2017_BIN_IA32)\cl.exe\r
+*_VS2017_IA32_ASLCC_PATH   = DEF(VS2017_BIN_IA32)\cl.exe\r
+*_VS2017_IA32_ASLPP_PATH   = DEF(VS2017_BIN_IA32)\cl.exe\r
+*_VS2017_IA32_SLINK_PATH   = DEF(VS2017_BIN_IA32)\lib.exe\r
+*_VS2017_IA32_DLINK_PATH   = DEF(VS2017_BIN_IA32)\link.exe\r
+*_VS2017_IA32_ASLDLINK_PATH= DEF(VS2017_BIN_IA32)\link.exe\r
+*_VS2017_IA32_APP_PATH     = DEF(VS2017_BIN_IA32)\cl.exe\r
+*_VS2017_IA32_PP_PATH      = DEF(VS2017_BIN_IA32)\cl.exe\r
+*_VS2017_IA32_ASM_PATH     = DEF(VS2017_BIN_IA32)\ml.exe\r
+\r
+      *_VS2017_IA32_MAKE_FLAGS  = /nologo\r
+  DEBUG_VS2017_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw\r
+RELEASE_VS2017_IA32_CC_FLAGS    = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
+NOOPT_VS2017_IA32_CC_FLAGS      = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od\r
+\r
+  DEBUG_VS2017_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+RELEASE_VS2017_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd\r
+NOOPT_VS2017_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi\r
+\r
+  DEBUG_VS2017_IA32_NASM_FLAGS  = -Ox -f win32 -g\r
+RELEASE_VS2017_IA32_NASM_FLAGS  = -Ox -f win32\r
+NOOPT_VS2017_IA32_NASM_FLAGS    = -O0 -f win32 -g\r
+\r
+  DEBUG_VS2017_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2017_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data\r
+NOOPT_VS2017_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+##################\r
+# X64 definitions\r
+##################\r
+*_VS2017_X64_CC_PATH       = DEF(VS2017_BIN_X64)\cl.exe\r
+*_VS2017_X64_PP_PATH       = DEF(VS2017_BIN_X64)\cl.exe\r
+*_VS2017_X64_APP_PATH      = DEF(VS2017_BIN_X64)\cl.exe\r
+*_VS2017_X64_VFRPP_PATH    = DEF(VS2017_BIN_X64)\cl.exe\r
+*_VS2017_X64_ASLCC_PATH    = DEF(VS2017_BIN_X64)\cl.exe\r
+*_VS2017_X64_ASLPP_PATH    = DEF(VS2017_BIN_X64)\cl.exe\r
+*_VS2017_X64_ASM_PATH      = DEF(VS2017_BIN_X64)\ml64.exe\r
+*_VS2017_X64_SLINK_PATH    = DEF(VS2017_BIN_X64)\lib.exe\r
+*_VS2017_X64_DLINK_PATH    = DEF(VS2017_BIN_X64)\link.exe\r
+*_VS2017_X64_ASLDLINK_PATH = DEF(VS2017_BIN_X64)\link.exe\r
+\r
+  DEBUG_VS2017_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Gw\r
+RELEASE_VS2017_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw\r
+NOOPT_VS2017_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
+\r
+  DEBUG_VS2017_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+RELEASE_VS2017_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd\r
+NOOPT_VS2017_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi\r
+\r
+  DEBUG_VS2017_X64_NASM_FLAGS   = -Ox -f win64 -g\r
+RELEASE_VS2017_X64_NASM_FLAGS   = -Ox -f win64\r
+NOOPT_VS2017_X64_NASM_FLAGS     = -O0 -f win64 -g\r
+\r
+  DEBUG_VS2017_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2017_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data\r
+NOOPT_VS2017_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+#################\r
+# ARM definitions\r
+#################\r
+*_VS2017_ARM_CC_PATH              = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_VFRPP_PATH           = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_SLINK_PATH           = DEF(VS2017_BIN_ARM)\lib.exe\r
+*_VS2017_ARM_DLINK_PATH           = DEF(VS2017_BIN_ARM)\link.exe\r
+*_VS2017_ARM_APP_PATH             = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_PP_PATH              = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_ASM_PATH             = DEF(VS2017_BIN_ARM)\armasm.exe\r
+*_VS2017_ARM_ASLCC_PATH           = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_ASLPP_PATH           = DEF(VS2017_BIN_ARM)\cl.exe\r
+*_VS2017_ARM_ASLDLINK_PATH        = DEF(VS2017_BIN_ARM)\link.exe\r
+\r
+      *_VS2017_ARM_MAKE_FLAGS     = /nologo\r
+  DEBUG_VS2017_ARM_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi-\r
+RELEASE_VS2017_ARM_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi-\r
+NOOPT_VS2017_ARM_CC_FLAGS         = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi-\r
+\r
+  DEBUG_VS2017_ARM_ASM_FLAGS      = /nologo /g\r
+RELEASE_VS2017_ARM_ASM_FLAGS      = /nologo\r
+NOOPT_VS2017_ARM_ASM_FLAGS        = /nologo\r
+\r
+  DEBUG_VS2017_ARM_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+RELEASE_VS2017_ARM_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data\r
+NOOPT_VS2017_ARM_DLINK_FLAGS      = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG\r
+\r
+#####################\r
+# AARCH64 definitions\r
+#####################\r
+*_VS2017_AARCH64_CC_PATH           = DEF(VS2017_BIN_AARCH64)\cl.exe\r
+*_VS2017_AARCH64_VFRPP_PATH        = DEF(VS2017_BIN_AARCH64)\cl.exe\r
+*_VS2017_AARCH64_SLINK_PATH        = DEF(VS2017_BIN_AARCH64)\lib.exe\r
+*_VS2017_AARCH64_DLINK_PATH        = DEF(VS2017_BIN_AARCH64)\link.exe\r
+*_VS2017_AARCH64_APP_PATH          = DEF(VS2017_BIN_AARCH64)\cl.exe\r
+*_VS2017_AARCH64_PP_PATH           = DEF(VS2017_BIN_AARCH64)\cl.exe\r
+*_VS2017_AARCH64_ASM_PATH          = DEF(VS2017_BIN_AARCH64)\armasm64.exe\r
+*_VS2017_AARCH64_ASLCC_PATH        = DEF(VS2017_BIN_AARCH64)\cl.exe\r
+*_VS2017_AARCH64_ASLPP_PATH        = DEF(VS2017_BIN_AARCH64)\cl.exe\r
+*_VS2017_AARCH64_ASLDLINK_PATH     = DEF(VS2017_BIN_AARCH64)\link.exe\r
+\r
+      *_VS2017_AARCH64_MAKE_FLAGS  = /nologo\r
+  DEBUG_VS2017_AARCH64_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi-\r
+RELEASE_VS2017_AARCH64_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi-\r
+NOOPT_VS2017_AARCH64_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi-\r
+\r
+  DEBUG_VS2017_AARCH64_ASM_FLAGS   = /nologo /g\r
+RELEASE_VS2017_AARCH64_ASM_FLAGS   = /nologo\r
+NOOPT_VS2017_AARCH64_ASM_FLAGS     = /nologo\r
+\r
+  DEBUG_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG\r
+RELEASE_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /MERGE:.rdata=.data\r
+NOOPT_VS2017_AARCH64_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG\r
+\r
+##################\r
+# EBC definitions\r
+##################\r
+*_VS2017_EBC_*_FAMILY            = INTEL\r
+\r
+*_VS2017_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe\r
+*_VS2017_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe\r
+*_VS2017_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe\r
+*_VS2017_EBC_SLINK_PATH          = DEF(VS2017_BIN_IA32)\link.exe\r
+*_VS2017_EBC_DLINK_PATH          = DEF(VS2017_BIN_IA32)\link.exe\r
+\r
+*_VS2017_EBC_MAKE_FLAGS          = /nologo\r
+*_VS2017_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h\r
+*_VS2017_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)\r
+*_VS2017_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h\r
+*_VS2017_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC\r
+*_VS2017_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER\r
+\r
 ####################################################################################\r
 #\r
 # Microsoft Device Driver Kit 3790.1830 (IA-32, X64, Itanium, with Link Time Code Generation)\r
@@ -4084,8 +4294,8 @@ NOOPT_VS2015x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT
 *_DDK3790_IA32_ASLPP_PATH     = DEF(WINDDK_BIN32)\cl.exe\r
 *_DDK3790_IA32_ASLDLINK_PATH  = DEF(WINDDK_BIN32)\link.exe\r
 \r
-  DEBUG_DDK3790_IA32_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\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_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_DDK3790_IA32_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_DDK3790_IA32_CC_FLAGS      = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_DDK3790_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
@@ -4114,8 +4324,8 @@ NOOPT_DDK3790_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /
 *_DDK3790_X64_ASLPP_PATH     = DEF(WINDDK_BINX64)\cl.exe\r
 *_DDK3790_X64_ASLDLINK_PATH  = DEF(WINDDK_BINX64)\link.exe\r
 \r
-  DEBUG_DDK3790_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_DDK3790_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_DDK3790_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_DDK3790_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_DDK3790_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_DDK3790_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -4218,8 +4428,8 @@ NOOPT_DDK3790_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF
 *_DDK3790xASL_IA32_ASLPP_PATH     = DEF(WINDDK_BIN32)\cl.exe\r
 *_DDK3790xASL_IA32_ASLDLINK_PATH  = DEF(WINDDK_BIN32)\link.exe\r
 \r
-  DEBUG_DDK3790xASL_IA32_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-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_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_DDK3790xASL_IA32_CC_FLAGS    = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_DDK3790xASL_IA32_CC_FLAGS      = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_DDK3790xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /coff /Cx /Zd /Zi\r
@@ -4248,8 +4458,8 @@ NOOPT_DDK3790xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:R
 *_DDK3790xASL_X64_ASLPP_PATH     = DEF(WINDDK_BINX64)\cl.exe\r
 *_DDK3790xASL_X64_ASLDLINK_PATH  = DEF(WINDDK_BINX64)\link.exe\r
 \r
-  DEBUG_DDK3790xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-RELEASE_DDK3790xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
+  DEBUG_DDK3790xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_DDK3790xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_DDK3790xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\r
 \r
   DEBUG_DDK3790xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -4317,22 +4527,29 @@ NOOPT_DDK3790xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF
 *_*_*_SYMRENAME_FLAGS           = Symbol renaming not needed for\r
 DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug\r
 RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG   =\r
+NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug\r
+*_*_*_DTC_FLAGS                    = -H epapr\r
+*_*_*_DTCPP_PATH                   = DEF(DTCPP_BIN)\r
+*_*_*_DTC_PATH                     = DEF(DTC_BIN)\r
 \r
-DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -c -include AutoGen.h -fno-common\r
+DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common\r
 DEFINE GCC_IA32_CC_FLAGS           = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe\r
 DEFINE GCC_X64_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe\r
 DEFINE GCC_IPF_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency\r
-DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft\r
-DEFINE GCC_AARCH64_CC_FLAGS        = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char  -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address -fno-asynchronous-unwind-tables\r
+DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft -fno-pic -fno-pie\r
+DEFINE GCC_ARM_CC_XIPFLAGS         = -mno-unaligned-access\r
+DEFINE GCC_AARCH64_CC_FLAGS        = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char  -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18\r
+DEFINE GCC_AARCH64_CC_XIPFLAGS     = -mstrict-align -mgeneral-regs-only\r
 DEFINE GCC_DLINK_FLAGS_COMMON      = -nostdlib --pie\r
-DEFINE GCC_DLINK2_FLAGS_COMMON     = --script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds\r
+DEFINE GCC_DLINK2_FLAGS_COMMON     = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds\r
 DEFINE GCC_IA32_X64_DLINK_COMMON   = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections\r
-DEFINE GCC_ARM_AARCH64_DLINK_COMMON= --emit-relocs -nostdlib --gc-sections -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC_ARM_DLINK_FLAGS         = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20\r
 DEFINE GCC_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20\r
+DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(GCC_DLINK2_FLAGS_COMMON) -z common-page-size=0x20\r
 DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
-DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
-DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
+DEFINE GCC_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)\r
+DEFINE GCC_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)\r
 DEFINE GCC_IA32_X64_DLINK_FLAGS    = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC_IPF_DLINK_FLAGS         = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC_IPF_OBJCOPY_FLAGS       = -I elf64-ia64-little -O efi-bsdrv-ia64\r
@@ -4340,24 +4557,25 @@ DEFINE GCC_IPF_SYMRENAME_FLAGS     = --redefine-sym memcpy=CopyMem
 DEFINE GCC_ASM_FLAGS               = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
 DEFINE GCC_PP_FLAGS                = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h\r
 DEFINE GCC_VFRPP_FLAGS             = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
-DEFINE GCC_ASLPP_FLAGS             = -x c -E -P\r
+DEFINE GCC_ASLPP_FLAGS             = -x c -E -include AutoGen.h\r
 DEFINE GCC_ASLCC_FLAGS             = -x c\r
 DEFINE GCC_WINDRES_FLAGS           = -J rc -O coff\r
+DEFINE GCC_DTCPP_FLAGS             = -E -x assembler-with-cpp -imacros $(DEST_DIR_DEBUG)/AutoGen.h -nostdinc -undef\r
 DEFINE GCC_IA32_RC_FLAGS           = -I binary -O elf32-i386          -B i386    --rename-section .data=.hii\r
 DEFINE GCC_X64_RC_FLAGS            = -I binary -O elf64-x86-64        -B i386    --rename-section .data=.hii\r
 DEFINE GCC_IPF_RC_FLAGS            = -I binary -O elf64-ia64-little   -B ia64    --rename-section .data=.hii\r
 DEFINE GCC_ARM_RC_FLAGS            = -I binary -O elf32-littlearm     -B arm     --rename-section .data=.hii\r
 DEFINE GCC_AARCH64_RC_FLAGS        = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii\r
 \r
-DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
-DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables\r
-DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large -fno-asynchronous-unwind-tables\r
-DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections -z common-page-size=0x20\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_IA32_DLINK2_FLAGS       = --defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON)\r
-DEFINE GCC44_X64_DLINK_FLAGS         = DEF(GCC44_IA32_X64_DLINK_FLAGS)  -melf_x86_64 --oformat=elf64-x86-64\r
-DEFINE GCC44_X64_DLINK2_FLAGS        = --defsym=PECOFF_HEADER_SIZE=0x228 DEF(GCC_DLINK2_FLAGS_COMMON)\r
+DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
+DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables\r
+DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables\r
+DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20\r
+DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable\r
+DEFINE GCC44_IA32_X64_DLINK_FLAGS    = DEF(GCC44_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive\r
+DEFINE GCC44_IA32_DLINK2_FLAGS       = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON)\r
+DEFINE GCC44_X64_DLINK_FLAGS         = DEF(GCC44_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie\r
+DEFINE GCC44_X64_DLINK2_FLAGS        = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(GCC_DLINK2_FLAGS_COMMON)\r
 DEFINE GCC44_ASM_FLAGS               = DEF(GCC_ASM_FLAGS)\r
 \r
 DEFINE GCC45_IA32_CC_FLAGS           = DEF(GCC44_IA32_CC_FLAGS)\r
@@ -4370,8 +4588,8 @@ DEFINE GCC45_X64_DLINK_FLAGS         = DEF(GCC44_X64_DLINK_FLAGS)
 DEFINE GCC45_X64_DLINK2_FLAGS        = DEF(GCC44_X64_DLINK2_FLAGS)\r
 DEFINE GCC45_ASM_FLAGS               = DEF(GCC44_ASM_FLAGS)\r
 \r
-DEFINE GCC46_IA32_CC_FLAGS           = DEF(GCC45_IA32_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable\r
-DEFINE GCC46_X64_CC_FLAGS            = DEF(GCC45_X64_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable\r
+DEFINE GCC46_IA32_CC_FLAGS           = DEF(GCC45_IA32_CC_FLAGS) -Wno-address\r
+DEFINE GCC46_X64_CC_FLAGS            = DEF(GCC45_X64_CC_FLAGS) -Wno-address\r
 DEFINE GCC46_IA32_X64_DLINK_COMMON   = DEF(GCC45_IA32_X64_DLINK_COMMON)\r
 DEFINE GCC46_IA32_X64_ASLDLINK_FLAGS = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS)\r
 DEFINE GCC46_IA32_X64_DLINK_FLAGS    = DEF(GCC45_IA32_X64_DLINK_FLAGS)\r
@@ -4380,10 +4598,11 @@ DEFINE GCC46_X64_DLINK_FLAGS         = DEF(GCC45_X64_DLINK_FLAGS)
 DEFINE GCC46_X64_DLINK2_FLAGS        = DEF(GCC45_X64_DLINK2_FLAGS)\r
 DEFINE GCC46_ASM_FLAGS               = DEF(GCC45_ASM_FLAGS)\r
 DEFINE GCC46_ARM_ASM_FLAGS           = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian\r
-DEFINE GCC46_ARM_CC_FLAGS            = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector\r
-DEFINE GCC46_ARM_DLINK_FLAGS         = DEF(GCC_ARM_DLINK_FLAGS) --oformat=elf32-littlearm\r
-DEFINE GCC46_ARM_DLINK2_FLAGS        = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x220\r
-DEFINE GCC46_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_ASLDLINK_FLAGS) --oformat=elf32-littlearm\r
+DEFINE GCC46_ARM_CC_FLAGS            = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations\r
+DEFINE GCC46_ARM_CC_XIPFLAGS         = -D__ARM_FEATURE_UNALIGNED=0\r
+DEFINE GCC46_ARM_DLINK_FLAGS         = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--oformat=elf32-littlearm\r
+DEFINE GCC46_ARM_DLINK2_FLAGS        = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220\r
+DEFINE GCC46_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_ASLDLINK_FLAGS) -Wl,--oformat=elf32-littlearm\r
 \r
 DEFINE GCC47_IA32_CC_FLAGS           = DEF(GCC46_IA32_CC_FLAGS)\r
 DEFINE GCC47_X64_CC_FLAGS            = DEF(GCC46_X64_CC_FLAGS)\r
@@ -4396,12 +4615,14 @@ DEFINE GCC47_X64_DLINK2_FLAGS        = DEF(GCC46_X64_DLINK2_FLAGS)
 DEFINE GCC47_ASM_FLAGS               = DEF(GCC46_ASM_FLAGS)\r
 DEFINE GCC47_ARM_ASM_FLAGS           = DEF(GCC46_ARM_ASM_FLAGS)\r
 DEFINE GCC47_AARCH64_ASM_FLAGS       = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian\r
-DEFINE GCC47_ARM_CC_FLAGS            = DEF(GCC46_ARM_CC_FLAGS) -mno-unaligned-access\r
-DEFINE GCC47_AARCH64_CC_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS)\r
+DEFINE GCC47_ARM_CC_FLAGS            = DEF(GCC46_ARM_CC_FLAGS)\r
+DEFINE GCC47_ARM_CC_XIPFLAGS         = DEF(GCC_ARM_CC_XIPFLAGS)\r
+DEFINE GCC47_AARCH64_CC_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS)\r
+DEFINE GCC47_AARCH64_CC_XIPFLAGS     = DEF(GCC_AARCH64_CC_XIPFLAGS)\r
 DEFINE GCC47_ARM_DLINK_FLAGS         = DEF(GCC46_ARM_DLINK_FLAGS)\r
 DEFINE GCC47_ARM_DLINK2_FLAGS        = DEF(GCC46_ARM_DLINK2_FLAGS)\r
 DEFINE GCC47_AARCH64_DLINK_FLAGS     = DEF(GCC_AARCH64_DLINK_FLAGS)\r
-DEFINE GCC47_AARCH64_DLINK2_FLAGS    = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x228\r
+DEFINE GCC47_AARCH64_DLINK2_FLAGS    = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228\r
 DEFINE GCC47_ARM_ASLDLINK_FLAGS      = DEF(GCC46_ARM_ASLDLINK_FLAGS)\r
 DEFINE GCC47_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
 \r
@@ -4417,7 +4638,9 @@ DEFINE GCC48_ASM_FLAGS               = DEF(GCC47_ASM_FLAGS)
 DEFINE GCC48_ARM_ASM_FLAGS           = DEF(GCC47_ARM_ASM_FLAGS)\r
 DEFINE GCC48_AARCH64_ASM_FLAGS       = DEF(GCC47_AARCH64_ASM_FLAGS)\r
 DEFINE GCC48_ARM_CC_FLAGS            = DEF(GCC47_ARM_CC_FLAGS)\r
+DEFINE GCC48_ARM_CC_XIPFLAGS         = DEF(GCC47_ARM_CC_XIPFLAGS)\r
 DEFINE GCC48_AARCH64_CC_FLAGS        = DEF(GCC47_AARCH64_CC_FLAGS)\r
+DEFINE GCC48_AARCH64_CC_XIPFLAGS     = DEF(GCC47_AARCH64_CC_XIPFLAGS)\r
 DEFINE GCC48_ARM_DLINK_FLAGS         = DEF(GCC47_ARM_DLINK_FLAGS)\r
 DEFINE GCC48_ARM_DLINK2_FLAGS        = DEF(GCC47_ARM_DLINK2_FLAGS)\r
 DEFINE GCC48_AARCH64_DLINK_FLAGS     = DEF(GCC47_AARCH64_DLINK_FLAGS)\r
@@ -4427,17 +4650,19 @@ DEFINE GCC48_AARCH64_ASLDLINK_FLAGS  = DEF(GCC47_AARCH64_ASLDLINK_FLAGS)
 \r
 DEFINE GCC49_IA32_CC_FLAGS           = DEF(GCC48_IA32_CC_FLAGS)\r
 DEFINE GCC49_X64_CC_FLAGS            = DEF(GCC48_X64_CC_FLAGS)\r
-DEFINE GCC49_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections -z common-page-size=0x40\r
-DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable\r
-DEFINE GCC49_IA32_X64_DLINK_FLAGS    = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+DEFINE GCC49_IA32_X64_DLINK_COMMON   = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40\r
+DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable\r
+DEFINE GCC49_IA32_X64_DLINK_FLAGS    = DEF(GCC49_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive\r
 DEFINE GCC49_IA32_DLINK2_FLAGS       = DEF(GCC48_IA32_DLINK2_FLAGS)\r
-DEFINE GCC49_X64_DLINK_FLAGS         = DEF(GCC49_IA32_X64_DLINK_FLAGS)  -melf_x86_64 --oformat=elf64-x86-64\r
+DEFINE GCC49_X64_DLINK_FLAGS         = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie\r
 DEFINE GCC49_X64_DLINK2_FLAGS        = DEF(GCC48_X64_DLINK2_FLAGS)\r
 DEFINE GCC49_ASM_FLAGS               = DEF(GCC48_ASM_FLAGS)\r
 DEFINE GCC49_ARM_ASM_FLAGS           = DEF(GCC48_ARM_ASM_FLAGS)\r
 DEFINE GCC49_AARCH64_ASM_FLAGS       = DEF(GCC48_AARCH64_ASM_FLAGS)\r
 DEFINE GCC49_ARM_CC_FLAGS            = DEF(GCC48_ARM_CC_FLAGS)\r
-DEFINE GCC49_AARCH64_CC_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) -mcmodel=tiny DEF(GCC_AARCH64_CC_FLAGS)\r
+DEFINE GCC49_ARM_CC_XIPFLAGS         = DEF(GCC48_ARM_CC_XIPFLAGS)\r
+DEFINE GCC49_AARCH64_CC_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_AARCH64_CC_FLAGS)\r
+DEFINE GCC49_AARCH64_CC_XIPFLAGS     = DEF(GCC48_AARCH64_CC_XIPFLAGS)\r
 DEFINE GCC49_ARM_DLINK_FLAGS         = DEF(GCC48_ARM_DLINK_FLAGS)\r
 DEFINE GCC49_ARM_DLINK2_FLAGS        = DEF(GCC48_ARM_DLINK2_FLAGS)\r
 DEFINE GCC49_AARCH64_DLINK_FLAGS     = DEF(GCC48_AARCH64_DLINK_FLAGS)\r
@@ -4445,6 +4670,28 @@ DEFINE GCC49_AARCH64_DLINK2_FLAGS    = DEF(GCC48_AARCH64_DLINK2_FLAGS)
 DEFINE GCC49_ARM_ASLDLINK_FLAGS      = DEF(GCC48_ARM_ASLDLINK_FLAGS)\r
 DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)\r
 \r
+DEFINE GCC5_IA32_CC_FLAGS            = DEF(GCC49_IA32_CC_FLAGS) -fno-pic -fno-pie\r
+DEFINE GCC5_X64_CC_FLAGS             = DEF(GCC49_X64_CC_FLAGS)\r
+DEFINE GCC5_IA32_X64_DLINK_COMMON    = DEF(GCC49_IA32_X64_DLINK_COMMON)\r
+DEFINE GCC5_IA32_X64_ASLDLINK_FLAGS  = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS)\r
+DEFINE GCC5_IA32_X64_DLINK_FLAGS     = DEF(GCC49_IA32_X64_DLINK_FLAGS)\r
+DEFINE GCC5_IA32_DLINK2_FLAGS        = DEF(GCC49_IA32_DLINK2_FLAGS) -Wno-error\r
+DEFINE GCC5_X64_DLINK_FLAGS          = DEF(GCC49_X64_DLINK_FLAGS)\r
+DEFINE GCC5_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS) -Wno-error\r
+DEFINE GCC5_ASM_FLAGS                = DEF(GCC49_ASM_FLAGS)\r
+DEFINE GCC5_ARM_ASM_FLAGS            = DEF(GCC49_ARM_ASM_FLAGS)\r
+DEFINE GCC5_AARCH64_ASM_FLAGS        = DEF(GCC49_AARCH64_ASM_FLAGS)\r
+DEFINE GCC5_ARM_CC_FLAGS             = DEF(GCC49_ARM_CC_FLAGS)\r
+DEFINE GCC5_ARM_CC_XIPFLAGS          = DEF(GCC49_ARM_CC_XIPFLAGS)\r
+DEFINE GCC5_AARCH64_CC_FLAGS         = DEF(GCC49_AARCH64_CC_FLAGS)\r
+DEFINE GCC5_AARCH64_CC_XIPFLAGS      = DEF(GCC49_AARCH64_CC_XIPFLAGS)\r
+DEFINE GCC5_ARM_DLINK_FLAGS          = DEF(GCC49_ARM_DLINK_FLAGS)\r
+DEFINE GCC5_ARM_DLINK2_FLAGS         = DEF(GCC49_ARM_DLINK2_FLAGS) -Wno-error\r
+DEFINE GCC5_AARCH64_DLINK_FLAGS      = DEF(GCC49_AARCH64_DLINK_FLAGS)\r
+DEFINE GCC5_AARCH64_DLINK2_FLAGS     = DEF(GCC49_AARCH64_DLINK2_FLAGS) -Wno-error\r
+DEFINE GCC5_ARM_ASLDLINK_FLAGS       = DEF(GCC49_ARM_ASLDLINK_FLAGS)\r
+DEFINE GCC5_AARCH64_ASLDLINK_FLAGS   = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)\r
+\r
 ####################################################################################\r
 #\r
 # Unix GCC And Intel Linux ACPI Compiler\r
@@ -4453,6 +4700,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 #   UNIXGCC         - UNIX GCC\r
 #   ASL             - Intel Linux ACPI Source Language Compiler (iasl)\r
 *_UNIXGCC_*_*_FAMILY               = GCC\r
+*_UNIXGCC_*_*_BUILDRULEFAMILY      = GCCLD\r
 \r
 *_UNIXGCC_*_MAKE_PATH                    = make\r
 *_UNIXGCC_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
@@ -4541,7 +4789,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 ####################################################################################\r
 *_GCC44_*_*_FAMILY               = GCC\r
 \r
-*_GCC44_*_MAKE_PATH                    = DEF(GCC44_IA32_PREFIX)make\r
+*_GCC44_*_MAKE_PATH                    = DEF(GCC_HOST_PREFIX)make\r
 *_GCC44_*_*_DLL                        = ENV(GCC44_DLL)\r
 *_GCC44_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
 \r
@@ -4559,8 +4807,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC44_IA32_OBJCOPY_PATH         = DEF(GCC44_IA32_PREFIX)objcopy\r
 *_GCC44_IA32_CC_PATH              = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_SLINK_PATH           = DEF(GCC44_IA32_PREFIX)ar\r
-*_GCC44_IA32_DLINK_PATH           = DEF(GCC44_IA32_PREFIX)ld\r
-*_GCC44_IA32_ASLDLINK_PATH        = DEF(GCC44_IA32_PREFIX)ld\r
+*_GCC44_IA32_DLINK_PATH           = DEF(GCC44_IA32_PREFIX)gcc\r
+*_GCC44_IA32_ASLDLINK_PATH        = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_ASM_PATH             = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_PP_PATH              = DEF(GCC44_IA32_PREFIX)gcc\r
 *_GCC44_IA32_VFRPP_PATH           = DEF(GCC44_IA32_PREFIX)gcc\r
@@ -4569,23 +4817,26 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC44_IA32_RC_PATH              = DEF(GCC44_IA32_PREFIX)objcopy\r
 \r
 *_GCC44_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC44_IA32_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC44_IA32_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC44_IA32_ASM_FLAGS            = DEF(GCC44_ASM_FLAGS) -m32 --32 -march=i386\r
-*_GCC44_IA32_CC_FLAGS             = DEF(GCC44_IA32_CC_FLAGS) -Os\r
-*_GCC44_IA32_DLINK_FLAGS          = DEF(GCC44_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC44_IA32_DLINK_FLAGS          = DEF(GCC44_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC44_IA32_DLINK2_FLAGS         = DEF(GCC44_IA32_DLINK2_FLAGS)\r
 *_GCC44_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC44_IA32_OBJCOPY_FLAGS        = \r
 *_GCC44_IA32_NASM_FLAGS           = -f elf32\r
 \r
+  DEBUG_GCC44_IA32_CC_FLAGS       = DEF(GCC44_IA32_CC_FLAGS) -Os\r
+RELEASE_GCC44_IA32_CC_FLAGS       = DEF(GCC44_IA32_CC_FLAGS) -Os\r
+  NOOPT_GCC44_IA32_CC_FLAGS       = DEF(GCC44_IA32_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC44 X64 definitions\r
 ##################\r
 *_GCC44_X64_OBJCOPY_PATH         = DEF(GCC44_X64_PREFIX)objcopy\r
 *_GCC44_X64_CC_PATH              = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_SLINK_PATH           = DEF(GCC44_X64_PREFIX)ar\r
-*_GCC44_X64_DLINK_PATH           = DEF(GCC44_X64_PREFIX)ld\r
-*_GCC44_X64_ASLDLINK_PATH        = DEF(GCC44_X64_PREFIX)ld\r
+*_GCC44_X64_DLINK_PATH           = DEF(GCC44_X64_PREFIX)gcc\r
+*_GCC44_X64_ASLDLINK_PATH        = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_ASM_PATH             = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_PP_PATH              = DEF(GCC44_X64_PREFIX)gcc\r
 *_GCC44_X64_VFRPP_PATH           = DEF(GCC44_X64_PREFIX)gcc\r
@@ -4594,15 +4845,18 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC44_X64_RC_PATH              = DEF(GCC44_X64_PREFIX)objcopy\r
 \r
 *_GCC44_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC44_X64_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC44_X64_ASLDLINK_FLAGS       = DEF(GCC44_IA32_X64_ASLDLINK_FLAGS) -Wl,-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)\r
 *_GCC44_X64_DLINK_FLAGS          = DEF(GCC44_X64_DLINK_FLAGS)\r
 *_GCC44_X64_DLINK2_FLAGS         = DEF(GCC44_X64_DLINK2_FLAGS)\r
 *_GCC44_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
 *_GCC44_X64_OBJCOPY_FLAGS        = \r
 *_GCC44_X64_NASM_FLAGS           = -f elf64\r
 \r
+  DEBUG_GCC44_X64_CC_FLAGS       = DEF(GCC44_X64_CC_FLAGS) -Os\r
+RELEASE_GCC44_X64_CC_FLAGS       = DEF(GCC44_X64_CC_FLAGS) -Os\r
+  NOOPT_GCC44_X64_CC_FLAGS       = DEF(GCC44_X64_CC_FLAGS) -O0\r
+\r
 ####################################################################################\r
 #\r
 # GCC 4.5 - This configuration is used to compile under Linux to produce\r
@@ -4611,7 +4865,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 ####################################################################################\r
 *_GCC45_*_*_FAMILY               = GCC\r
 \r
-*_GCC45_*_MAKE_PATH                    = DEF(GCC45_IA32_PREFIX)make\r
+*_GCC45_*_MAKE_PATH                    = DEF(GCC_HOST_PREFIX)make\r
 *_GCC45_*_*_DLL                        = ENV(GCC45_DLL)\r
 *_GCC45_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
 \r
@@ -4629,8 +4883,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC45_IA32_OBJCOPY_PATH         = DEF(GCC45_IA32_PREFIX)objcopy\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_DLINK_PATH           = DEF(GCC45_IA32_PREFIX)gcc\r
+*_GCC45_IA32_ASLDLINK_PATH        = DEF(GCC45_IA32_PREFIX)gcc\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
@@ -4639,23 +4893,26 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_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) -elf_i386\r
+*_GCC45_IA32_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -Wl,-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_DLINK_FLAGS          = DEF(GCC45_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC45_IA32_DLINK2_FLAGS         = DEF(GCC45_IA32_DLINK2_FLAGS)\r
 *_GCC45_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC45_IA32_OBJCOPY_FLAGS        = \r
 *_GCC45_IA32_NASM_FLAGS           = -f elf32\r
 \r
+  DEBUG_GCC45_IA32_CC_FLAGS       = DEF(GCC45_IA32_CC_FLAGS) -Os\r
+RELEASE_GCC45_IA32_CC_FLAGS       = DEF(GCC45_IA32_CC_FLAGS) -Os\r
+  NOOPT_GCC45_IA32_CC_FLAGS       = DEF(GCC45_IA32_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC45 X64 definitions\r
 ##################\r
 *_GCC45_X64_OBJCOPY_PATH         = DEF(GCC45_X64_PREFIX)objcopy\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_DLINK_PATH           = DEF(GCC45_X64_PREFIX)gcc\r
+*_GCC45_X64_ASLDLINK_PATH        = DEF(GCC45_X64_PREFIX)gcc\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
@@ -4664,15 +4921,18 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_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) -elf_x86_64\r
+*_GCC45_X64_ASLDLINK_FLAGS       = DEF(GCC45_IA32_X64_ASLDLINK_FLAGS) -Wl,-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_DLINK2_FLAGS         = DEF(GCC45_X64_DLINK2_FLAGS)\r
 *_GCC45_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
 *_GCC45_X64_OBJCOPY_FLAGS        = \r
 *_GCC45_X64_NASM_FLAGS           = -f elf64\r
 \r
+  DEBUG_GCC45_X64_CC_FLAGS       = DEF(GCC45_X64_CC_FLAGS) -Os\r
+RELEASE_GCC45_X64_CC_FLAGS       = DEF(GCC45_X64_CC_FLAGS) -Os\r
+  NOOPT_GCC45_X64_CC_FLAGS       = DEF(GCC45_X64_CC_FLAGS) -O0\r
+\r
 ####################################################################################\r
 #\r
 # GCC 4.6 - This configuration is used to compile under Linux to produce\r
@@ -4681,7 +4941,7 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 ####################################################################################\r
 *_GCC46_*_*_FAMILY               = GCC\r
 \r
-*_GCC46_*_MAKE_PATH                    = DEF(GCC46_IA32_PREFIX)make\r
+*_GCC46_*_MAKE_PATH                    = DEF(GCC_HOST_PREFIX)make\r
 *_GCC46_*_*_DLL                        = ENV(GCC46_DLL)\r
 *_GCC46_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
 \r
@@ -4699,8 +4959,8 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC46_IA32_OBJCOPY_PATH         = DEF(GCC46_IA32_PREFIX)objcopy\r
 *_GCC46_IA32_CC_PATH              = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_SLINK_PATH           = DEF(GCC46_IA32_PREFIX)ar\r
-*_GCC46_IA32_DLINK_PATH           = DEF(GCC46_IA32_PREFIX)ld\r
-*_GCC46_IA32_ASLDLINK_PATH        = DEF(GCC46_IA32_PREFIX)ld\r
+*_GCC46_IA32_DLINK_PATH           = DEF(GCC46_IA32_PREFIX)gcc\r
+*_GCC46_IA32_ASLDLINK_PATH        = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_ASM_PATH             = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_PP_PATH              = DEF(GCC46_IA32_PREFIX)gcc\r
 *_GCC46_IA32_VFRPP_PATH           = DEF(GCC46_IA32_PREFIX)gcc\r
@@ -4709,23 +4969,26 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC46_IA32_RC_PATH              = DEF(GCC46_IA32_PREFIX)objcopy\r
 \r
 *_GCC46_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC46_IA32_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC46_IA32_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC46_IA32_ASM_FLAGS            = DEF(GCC46_ASM_FLAGS) -m32 -march=i386\r
-*_GCC46_IA32_CC_FLAGS             = DEF(GCC46_IA32_CC_FLAGS) -Os\r
-*_GCC46_IA32_DLINK_FLAGS          = DEF(GCC46_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC46_IA32_DLINK_FLAGS          = DEF(GCC46_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC46_IA32_DLINK2_FLAGS         = DEF(GCC46_IA32_DLINK2_FLAGS)\r
 *_GCC46_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC46_IA32_OBJCOPY_FLAGS        = \r
 *_GCC46_IA32_NASM_FLAGS           = -f elf32\r
 \r
+  DEBUG_GCC46_IA32_CC_FLAGS       = DEF(GCC46_IA32_CC_FLAGS) -Os\r
+RELEASE_GCC46_IA32_CC_FLAGS       = DEF(GCC46_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable\r
+  NOOPT_GCC46_IA32_CC_FLAGS       = DEF(GCC46_IA32_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC46 X64 definitions\r
 ##################\r
 *_GCC46_X64_OBJCOPY_PATH         = DEF(GCC46_X64_PREFIX)objcopy\r
 *_GCC46_X64_CC_PATH              = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_SLINK_PATH           = DEF(GCC46_X64_PREFIX)ar\r
-*_GCC46_X64_DLINK_PATH           = DEF(GCC46_X64_PREFIX)ld\r
-*_GCC46_X64_ASLDLINK_PATH        = DEF(GCC46_X64_PREFIX)ld\r
+*_GCC46_X64_DLINK_PATH           = DEF(GCC46_X64_PREFIX)gcc\r
+*_GCC46_X64_ASLDLINK_PATH        = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_ASM_PATH             = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_PP_PATH              = DEF(GCC46_X64_PREFIX)gcc\r
 *_GCC46_X64_VFRPP_PATH           = DEF(GCC46_X64_PREFIX)gcc\r
@@ -4734,23 +4997,26 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC46_X64_RC_PATH              = DEF(GCC46_X64_PREFIX)objcopy\r
 \r
 *_GCC46_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC46_X64_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC46_X64_ASLDLINK_FLAGS       = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC46_X64_ASM_FLAGS            = DEF(GCC46_ASM_FLAGS) -m64 -melf_x86_64\r
-*_GCC46_X64_CC_FLAGS             = DEF(GCC46_X64_CC_FLAGS)\r
 *_GCC46_X64_DLINK_FLAGS          = DEF(GCC46_X64_DLINK_FLAGS)\r
 *_GCC46_X64_DLINK2_FLAGS         = DEF(GCC46_X64_DLINK2_FLAGS)\r
 *_GCC46_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
 *_GCC46_X64_OBJCOPY_FLAGS        = \r
 *_GCC46_X64_NASM_FLAGS           = -f elf64\r
 \r
+  DEBUG_GCC46_X64_CC_FLAGS       = DEF(GCC46_X64_CC_FLAGS) -Os\r
+RELEASE_GCC46_X64_CC_FLAGS       = DEF(GCC46_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable\r
+  NOOPT_GCC46_X64_CC_FLAGS       = DEF(GCC46_X64_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC46 ARM definitions\r
 ##################\r
 *_GCC46_ARM_OBJCOPY_PATH         = echo\r
 *_GCC46_ARM_CC_PATH              = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_SLINK_PATH           = ENV(GCC46_ARM_PREFIX)ar\r
-*_GCC46_ARM_DLINK_PATH           = ENV(GCC46_ARM_PREFIX)ld\r
-*_GCC46_ARM_ASLDLINK_PATH        = ENV(GCC46_ARM_PREFIX)ld\r
+*_GCC46_ARM_DLINK_PATH           = ENV(GCC46_ARM_PREFIX)gcc\r
+*_GCC46_ARM_ASLDLINK_PATH        = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_ASM_PATH             = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_PP_PATH              = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_VFRPP_PATH           = ENV(GCC46_ARM_PREFIX)gcc\r
@@ -4766,13 +5032,16 @@ DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
 *_GCC46_ARM_ASM_FLAGS            = DEF(GCC46_ARM_ASM_FLAGS)\r
 *_GCC46_ARM_DLINK_FLAGS          = DEF(GCC46_ARM_DLINK_FLAGS)\r
 *_GCC46_ARM_DLINK2_FLAGS         = DEF(GCC46_ARM_DLINK2_FLAGS)\r
+*_GCC46_ARM_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)\r
 *_GCC46_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
 *_GCC46_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
 *_GCC46_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)\r
 *_GCC46_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC46_ARM_CC_XIPFLAGS          = DEF(GCC46_ARM_CC_XIPFLAGS)\r
 \r
-  DEBUG_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALIGNED=0 -O0\r
-RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALIGNED=0 -Wno-unused-but-set-variable\r
+  DEBUG_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -O0\r
+RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -Wno-unused-but-set-variable\r
+  NOOPT_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -O0\r
 \r
 ####################################################################################\r
 #\r
@@ -4782,7 +5051,7 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALI
 ####################################################################################\r
 *_GCC47_*_*_FAMILY               = GCC\r
 \r
-*_GCC47_*_MAKE_PATH                    = DEF(GCC47_IA32_PREFIX)make\r
+*_GCC47_*_MAKE_PATH                    = DEF(GCC_HOST_PREFIX)make\r
 *_GCC47_*_*_DLL                        = ENV(GCC47_DLL)\r
 *_GCC47_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
 \r
@@ -4800,8 +5069,8 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALI
 *_GCC47_IA32_OBJCOPY_PATH         = DEF(GCC47_IA32_PREFIX)objcopy\r
 *_GCC47_IA32_CC_PATH              = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_SLINK_PATH           = DEF(GCC47_IA32_PREFIX)ar\r
-*_GCC47_IA32_DLINK_PATH           = DEF(GCC47_IA32_PREFIX)ld\r
-*_GCC47_IA32_ASLDLINK_PATH        = DEF(GCC47_IA32_PREFIX)ld\r
+*_GCC47_IA32_DLINK_PATH           = DEF(GCC47_IA32_PREFIX)gcc\r
+*_GCC47_IA32_ASLDLINK_PATH        = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_ASM_PATH             = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_PP_PATH              = DEF(GCC47_IA32_PREFIX)gcc\r
 *_GCC47_IA32_VFRPP_PATH           = DEF(GCC47_IA32_PREFIX)gcc\r
@@ -4810,23 +5079,26 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALI
 *_GCC47_IA32_RC_PATH              = DEF(GCC47_IA32_PREFIX)objcopy\r
 \r
 *_GCC47_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC47_IA32_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC47_IA32_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC47_IA32_ASM_FLAGS            = DEF(GCC47_ASM_FLAGS) -m32 -march=i386\r
-*_GCC47_IA32_CC_FLAGS             = DEF(GCC47_IA32_CC_FLAGS) -Os\r
-*_GCC47_IA32_DLINK_FLAGS          = DEF(GCC47_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC47_IA32_DLINK_FLAGS          = DEF(GCC47_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC47_IA32_DLINK2_FLAGS         = DEF(GCC47_IA32_DLINK2_FLAGS)\r
 *_GCC47_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC47_IA32_OBJCOPY_FLAGS        = \r
 *_GCC47_IA32_NASM_FLAGS           = -f elf32\r
 \r
+  DEBUG_GCC47_IA32_CC_FLAGS       = DEF(GCC47_IA32_CC_FLAGS) -Os\r
+RELEASE_GCC47_IA32_CC_FLAGS       = DEF(GCC47_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable\r
+  NOOPT_GCC47_IA32_CC_FLAGS       = DEF(GCC47_IA32_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC47 X64 definitions\r
 ##################\r
 *_GCC47_X64_OBJCOPY_PATH         = DEF(GCC47_X64_PREFIX)objcopy\r
 *_GCC47_X64_CC_PATH              = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_SLINK_PATH           = DEF(GCC47_X64_PREFIX)ar\r
-*_GCC47_X64_DLINK_PATH           = DEF(GCC47_X64_PREFIX)ld\r
-*_GCC47_X64_ASLDLINK_PATH        = DEF(GCC47_X64_PREFIX)ld\r
+*_GCC47_X64_DLINK_PATH           = DEF(GCC47_X64_PREFIX)gcc\r
+*_GCC47_X64_ASLDLINK_PATH        = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_ASM_PATH             = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_PP_PATH              = DEF(GCC47_X64_PREFIX)gcc\r
 *_GCC47_X64_VFRPP_PATH           = DEF(GCC47_X64_PREFIX)gcc\r
@@ -4835,22 +5107,25 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALI
 *_GCC47_X64_RC_PATH              = DEF(GCC47_X64_PREFIX)objcopy\r
 \r
 *_GCC47_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC47_X64_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC47_X64_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC47_X64_ASM_FLAGS            = DEF(GCC47_ASM_FLAGS) -m64\r
-*_GCC47_X64_CC_FLAGS             = DEF(GCC47_X64_CC_FLAGS)\r
 *_GCC47_X64_DLINK_FLAGS          = DEF(GCC47_X64_DLINK_FLAGS)\r
 *_GCC47_X64_DLINK2_FLAGS         = DEF(GCC47_X64_DLINK2_FLAGS)\r
 *_GCC47_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
 *_GCC47_X64_OBJCOPY_FLAGS        = \r
 *_GCC47_X64_NASM_FLAGS           = -f elf64\r
 \r
+  DEBUG_GCC47_X64_CC_FLAGS       = DEF(GCC47_X64_CC_FLAGS) -Os\r
+RELEASE_GCC47_X64_CC_FLAGS       = DEF(GCC47_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable\r
+  NOOPT_GCC47_X64_CC_FLAGS       = DEF(GCC47_X64_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC47 ARM definitions\r
 ##################\r
 *_GCC47_ARM_CC_PATH              = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_SLINK_PATH           = ENV(GCC47_ARM_PREFIX)ar\r
-*_GCC47_ARM_DLINK_PATH           = ENV(GCC47_ARM_PREFIX)ld\r
-*_GCC47_ARM_ASLDLINK_PATH        = ENV(GCC47_ARM_PREFIX)ld\r
+*_GCC47_ARM_DLINK_PATH           = ENV(GCC47_ARM_PREFIX)gcc\r
+*_GCC47_ARM_ASLDLINK_PATH        = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_ASM_PATH             = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_PP_PATH              = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_VFRPP_PATH           = ENV(GCC47_ARM_PREFIX)gcc\r
@@ -4866,21 +5141,24 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -D__ARM_FEATURE_UNALI
 *_GCC47_ARM_ASM_FLAGS            = DEF(GCC47_ARM_ASM_FLAGS)\r
 *_GCC47_ARM_DLINK_FLAGS          = DEF(GCC47_ARM_DLINK_FLAGS)\r
 *_GCC47_ARM_DLINK2_FLAGS         = DEF(GCC47_ARM_DLINK2_FLAGS)\r
+*_GCC47_ARM_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)\r
 *_GCC47_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
 *_GCC47_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
 *_GCC47_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)\r
 *_GCC47_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC47_ARM_CC_XIPFLAGS          = DEF(GCC47_ARM_CC_XIPFLAGS)\r
 \r
   DEBUG_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -O0\r
 RELEASE_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-variable\r
+  NOOPT_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -O0\r
 \r
 ##################\r
 # GCC47 AARCH64 definitions\r
 ##################\r
 *_GCC47_AARCH64_CC_PATH          = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_SLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)ar\r
-*_GCC47_AARCH64_DLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)ld\r
-*_GCC47_AARCH64_ASLDLINK_PATH    = ENV(GCC47_AARCH64_PREFIX)ld\r
+*_GCC47_AARCH64_DLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc\r
+*_GCC47_AARCH64_ASLDLINK_PATH    = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_ASM_PATH         = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_PP_PATH          = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_VFRPP_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc\r
@@ -4893,13 +5171,16 @@ RELEASE_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-v
 *_GCC47_AARCH64_ASM_FLAGS        = DEF(GCC47_AARCH64_ASM_FLAGS)\r
 *_GCC47_AARCH64_DLINK_FLAGS      = DEF(GCC47_AARCH64_DLINK_FLAGS)\r
 *_GCC47_AARCH64_DLINK2_FLAGS     = DEF(GCC47_AARCH64_DLINK2_FLAGS)\r
+*_GCC47_AARCH64_DTCPP_FLAGS      = DEF(GCC_DTCPP_FLAGS)\r
 *_GCC47_AARCH64_PLATFORM_FLAGS   =\r
 *_GCC47_AARCH64_PP_FLAGS         = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
 *_GCC47_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)\r
 *_GCC47_AARCH64_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC47_AARCH64_CC_XIPFLAGS      = DEF(GCC47_AARCH64_CC_XIPFLAGS)\r
 \r
   DEBUG_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -O0\r
 RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable\r
+  NOOPT_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -O0\r
 \r
 ####################################################################################\r
 #\r
@@ -4909,7 +5190,7 @@ RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
 ####################################################################################\r
 *_GCC48_*_*_FAMILY               = GCC\r
 \r
-*_GCC48_*_MAKE_PATH                    = DEF(GCC48_IA32_PREFIX)make\r
+*_GCC48_*_MAKE_PATH                    = DEF(GCC_HOST_PREFIX)make\r
 *_GCC48_*_*_DLL                        = ENV(GCC48_DLL)\r
 *_GCC48_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
 \r
@@ -4927,8 +5208,8 @@ RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC48_IA32_OBJCOPY_PATH         = DEF(GCC48_IA32_PREFIX)objcopy\r
 *_GCC48_IA32_CC_PATH              = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_SLINK_PATH           = DEF(GCC48_IA32_PREFIX)ar\r
-*_GCC48_IA32_DLINK_PATH           = DEF(GCC48_IA32_PREFIX)ld\r
-*_GCC48_IA32_ASLDLINK_PATH        = DEF(GCC48_IA32_PREFIX)ld\r
+*_GCC48_IA32_DLINK_PATH           = DEF(GCC48_IA32_PREFIX)gcc\r
+*_GCC48_IA32_ASLDLINK_PATH        = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_ASM_PATH             = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_PP_PATH              = DEF(GCC48_IA32_PREFIX)gcc\r
 *_GCC48_IA32_VFRPP_PATH           = DEF(GCC48_IA32_PREFIX)gcc\r
@@ -4937,23 +5218,26 @@ RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC48_IA32_RC_PATH              = DEF(GCC48_IA32_PREFIX)objcopy\r
 \r
 *_GCC48_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC48_IA32_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC48_IA32_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC48_IA32_ASM_FLAGS            = DEF(GCC48_ASM_FLAGS) -m32 -march=i386\r
-*_GCC48_IA32_CC_FLAGS             = DEF(GCC48_IA32_CC_FLAGS) -Os\r
-*_GCC48_IA32_DLINK_FLAGS          = DEF(GCC48_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC48_IA32_DLINK_FLAGS          = DEF(GCC48_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC48_IA32_DLINK2_FLAGS         = DEF(GCC48_IA32_DLINK2_FLAGS)\r
 *_GCC48_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC48_IA32_OBJCOPY_FLAGS        = \r
 *_GCC48_IA32_NASM_FLAGS           = -f elf32\r
 \r
+  DEBUG_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Os\r
+RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable\r
+  NOOPT_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC48 X64 definitions\r
 ##################\r
 *_GCC48_X64_OBJCOPY_PATH         = DEF(GCC48_X64_PREFIX)objcopy\r
 *_GCC48_X64_CC_PATH              = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_SLINK_PATH           = DEF(GCC48_X64_PREFIX)ar\r
-*_GCC48_X64_DLINK_PATH           = DEF(GCC48_X64_PREFIX)ld\r
-*_GCC48_X64_ASLDLINK_PATH        = DEF(GCC48_X64_PREFIX)ld\r
+*_GCC48_X64_DLINK_PATH           = DEF(GCC48_X64_PREFIX)gcc\r
+*_GCC48_X64_ASLDLINK_PATH        = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_ASM_PATH             = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_PP_PATH              = DEF(GCC48_X64_PREFIX)gcc\r
 *_GCC48_X64_VFRPP_PATH           = DEF(GCC48_X64_PREFIX)gcc\r
@@ -4962,22 +5246,25 @@ RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC48_X64_RC_PATH              = DEF(GCC48_X64_PREFIX)objcopy\r
 \r
 *_GCC48_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC48_X64_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC48_X64_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC48_X64_ASM_FLAGS            = DEF(GCC48_ASM_FLAGS) -m64\r
-*_GCC48_X64_CC_FLAGS             = DEF(GCC48_X64_CC_FLAGS)\r
 *_GCC48_X64_DLINK_FLAGS          = DEF(GCC48_X64_DLINK_FLAGS)\r
 *_GCC48_X64_DLINK2_FLAGS         = DEF(GCC48_X64_DLINK2_FLAGS)\r
 *_GCC48_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
 *_GCC48_X64_OBJCOPY_FLAGS        = \r
 *_GCC48_X64_NASM_FLAGS           = -f elf64\r
 \r
+  DEBUG_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -Os\r
+RELEASE_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable\r
+  NOOPT_GCC48_X64_CC_FLAGS       = DEF(GCC48_X64_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC48 ARM definitions\r
 ##################\r
 *_GCC48_ARM_CC_PATH              = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_SLINK_PATH           = ENV(GCC48_ARM_PREFIX)ar\r
-*_GCC48_ARM_DLINK_PATH           = ENV(GCC48_ARM_PREFIX)ld\r
-*_GCC48_ARM_ASLDLINK_PATH        = ENV(GCC48_ARM_PREFIX)ld\r
+*_GCC48_ARM_DLINK_PATH           = ENV(GCC48_ARM_PREFIX)gcc\r
+*_GCC48_ARM_ASLDLINK_PATH        = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_ASM_PATH             = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_PP_PATH              = ENV(GCC48_ARM_PREFIX)gcc\r
 *_GCC48_ARM_VFRPP_PATH           = ENV(GCC48_ARM_PREFIX)gcc\r
@@ -4993,21 +5280,24 @@ RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC48_ARM_ASM_FLAGS            = DEF(GCC48_ARM_ASM_FLAGS)\r
 *_GCC48_ARM_DLINK_FLAGS          = DEF(GCC48_ARM_DLINK_FLAGS)\r
 *_GCC48_ARM_DLINK2_FLAGS         = DEF(GCC48_ARM_DLINK2_FLAGS)\r
+*_GCC48_ARM_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)\r
 *_GCC48_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
 *_GCC48_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
 *_GCC48_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)\r
 *_GCC48_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC48_ARM_CC_XIPFLAGS          = DEF(GCC48_ARM_CC_XIPFLAGS)\r
 \r
   DEBUG_GCC48_ARM_CC_FLAGS       = DEF(GCC48_ARM_CC_FLAGS) -O0\r
 RELEASE_GCC48_ARM_CC_FLAGS       = DEF(GCC48_ARM_CC_FLAGS) -Wno-unused-but-set-variable\r
+  NOOPT_GCC48_ARM_CC_FLAGS       = DEF(GCC48_ARM_CC_FLAGS) -O0\r
 \r
 ##################\r
 # GCC48 AARCH64 definitions\r
 ##################\r
 *_GCC48_AARCH64_CC_PATH          = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_SLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)ar\r
-*_GCC48_AARCH64_DLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)ld\r
-*_GCC48_AARCH64_ASLDLINK_PATH    = ENV(GCC48_AARCH64_PREFIX)ld\r
+*_GCC48_AARCH64_DLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc\r
+*_GCC48_AARCH64_ASLDLINK_PATH    = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_ASM_PATH         = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_PP_PATH          = ENV(GCC48_AARCH64_PREFIX)gcc\r
 *_GCC48_AARCH64_VFRPP_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc\r
@@ -5020,13 +5310,16 @@ RELEASE_GCC48_ARM_CC_FLAGS       = DEF(GCC48_ARM_CC_FLAGS) -Wno-unused-but-set-v
 *_GCC48_AARCH64_ASM_FLAGS        = DEF(GCC48_AARCH64_ASM_FLAGS)\r
 *_GCC48_AARCH64_DLINK_FLAGS      = DEF(GCC48_AARCH64_DLINK_FLAGS)\r
 *_GCC48_AARCH64_DLINK2_FLAGS     = DEF(GCC48_AARCH64_DLINK2_FLAGS)\r
+*_GCC48_AARCH64_DTCPP_FLAGS      = DEF(GCC_DTCPP_FLAGS)\r
 *_GCC48_AARCH64_PLATFORM_FLAGS   =\r
 *_GCC48_AARCH64_PP_FLAGS         = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
 *_GCC48_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)\r
 *_GCC48_AARCH64_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC48_AARCH64_CC_XIPFLAGS      = DEF(GCC48_AARCH64_CC_XIPFLAGS)\r
 \r
   DEBUG_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -O0\r
 RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable\r
+  NOOPT_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -O0\r
 \r
 ####################################################################################\r
 #\r
@@ -5036,7 +5329,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 ####################################################################################\r
 *_GCC49_*_*_FAMILY               = GCC\r
 \r
-*_GCC49_*_MAKE_PATH                    = DEF(GCC49_IA32_PREFIX)make\r
+*_GCC49_*_MAKE_PATH                    = DEF(GCC_HOST_PREFIX)make\r
 *_GCC49_*_*_DLL                        = ENV(GCC49_DLL)\r
 *_GCC49_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
 \r
@@ -5054,8 +5347,8 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC49_IA32_OBJCOPY_PATH         = DEF(GCC49_IA32_PREFIX)objcopy\r
 *_GCC49_IA32_CC_PATH              = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_SLINK_PATH           = DEF(GCC49_IA32_PREFIX)ar\r
-*_GCC49_IA32_DLINK_PATH           = DEF(GCC49_IA32_PREFIX)ld\r
-*_GCC49_IA32_ASLDLINK_PATH        = DEF(GCC49_IA32_PREFIX)ld\r
+*_GCC49_IA32_DLINK_PATH           = DEF(GCC49_IA32_PREFIX)gcc\r
+*_GCC49_IA32_ASLDLINK_PATH        = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_ASM_PATH             = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_PP_PATH              = DEF(GCC49_IA32_PREFIX)gcc\r
 *_GCC49_IA32_VFRPP_PATH           = DEF(GCC49_IA32_PREFIX)gcc\r
@@ -5064,23 +5357,26 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC49_IA32_RC_PATH              = DEF(GCC49_IA32_PREFIX)objcopy\r
 \r
 *_GCC49_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32\r
-*_GCC49_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -elf_i386\r
+*_GCC49_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
 *_GCC49_IA32_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m32 -march=i386\r
-*_GCC49_IA32_CC_FLAGS             = DEF(GCC49_IA32_CC_FLAGS) -Os\r
-*_GCC49_IA32_DLINK_FLAGS          = DEF(GCC49_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386\r
+*_GCC49_IA32_DLINK_FLAGS          = DEF(GCC49_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386\r
 *_GCC49_IA32_DLINK2_FLAGS         = DEF(GCC49_IA32_DLINK2_FLAGS)\r
 *_GCC49_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
 *_GCC49_IA32_OBJCOPY_FLAGS        = \r
 *_GCC49_IA32_NASM_FLAGS           = -f elf32\r
 \r
+  DEBUG_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Os\r
+RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable\r
+  NOOPT_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC49 X64 definitions\r
 ##################\r
 *_GCC49_X64_OBJCOPY_PATH         = DEF(GCC49_X64_PREFIX)objcopy\r
 *_GCC49_X64_CC_PATH              = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_SLINK_PATH           = DEF(GCC49_X64_PREFIX)ar\r
-*_GCC49_X64_DLINK_PATH           = DEF(GCC49_X64_PREFIX)ld\r
-*_GCC49_X64_ASLDLINK_PATH        = DEF(GCC49_X64_PREFIX)ld\r
+*_GCC49_X64_DLINK_PATH           = DEF(GCC49_X64_PREFIX)gcc\r
+*_GCC49_X64_ASLDLINK_PATH        = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_ASM_PATH             = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_PP_PATH              = DEF(GCC49_X64_PREFIX)gcc\r
 *_GCC49_X64_VFRPP_PATH           = DEF(GCC49_X64_PREFIX)gcc\r
@@ -5089,22 +5385,25 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC49_X64_RC_PATH              = DEF(GCC49_X64_PREFIX)objcopy\r
 \r
 *_GCC49_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64\r
-*_GCC49_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -elf_x86_64\r
+*_GCC49_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
 *_GCC49_X64_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m64\r
-*_GCC49_X64_CC_FLAGS             = DEF(GCC49_X64_CC_FLAGS)\r
 *_GCC49_X64_DLINK_FLAGS          = DEF(GCC49_X64_DLINK_FLAGS)\r
 *_GCC49_X64_DLINK2_FLAGS         = DEF(GCC49_X64_DLINK2_FLAGS)\r
 *_GCC49_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
 *_GCC49_X64_OBJCOPY_FLAGS        = \r
 *_GCC49_X64_NASM_FLAGS           = -f elf64\r
 \r
+  DEBUG_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Os\r
+RELEASE_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unused-const-variable\r
+  NOOPT_GCC49_X64_CC_FLAGS       = DEF(GCC49_X64_CC_FLAGS) -O0\r
+\r
 ##################\r
 # GCC49 ARM definitions\r
 ##################\r
 *_GCC49_ARM_CC_PATH              = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_SLINK_PATH           = ENV(GCC49_ARM_PREFIX)ar\r
-*_GCC49_ARM_DLINK_PATH           = ENV(GCC49_ARM_PREFIX)ld\r
-*_GCC49_ARM_ASLDLINK_PATH        = ENV(GCC49_ARM_PREFIX)ld\r
+*_GCC49_ARM_DLINK_PATH           = ENV(GCC49_ARM_PREFIX)gcc\r
+*_GCC49_ARM_ASLDLINK_PATH        = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_ASM_PATH             = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_PP_PATH              = ENV(GCC49_ARM_PREFIX)gcc\r
 *_GCC49_ARM_VFRPP_PATH           = ENV(GCC49_ARM_PREFIX)gcc\r
@@ -5120,21 +5419,24 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_GCC49_ARM_ASM_FLAGS            = DEF(GCC49_ARM_ASM_FLAGS)\r
 *_GCC49_ARM_DLINK_FLAGS          = DEF(GCC49_ARM_DLINK_FLAGS)\r
 *_GCC49_ARM_DLINK2_FLAGS         = DEF(GCC49_ARM_DLINK2_FLAGS)\r
+*_GCC49_ARM_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)\r
 *_GCC49_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
 *_GCC49_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
 *_GCC49_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)\r
 *_GCC49_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC49_ARM_CC_XIPFLAGS          = DEF(GCC49_ARM_CC_XIPFLAGS)\r
 \r
   DEBUG_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -O0\r
-RELEASE_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable\r
+RELEASE_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable\r
+  NOOPT_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -O0\r
 \r
 ##################\r
 # GCC49 AARCH64 definitions\r
 ##################\r
 *_GCC49_AARCH64_CC_PATH          = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_SLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)ar\r
-*_GCC49_AARCH64_DLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)ld\r
-*_GCC49_AARCH64_ASLDLINK_PATH    = ENV(GCC49_AARCH64_PREFIX)ld\r
+*_GCC49_AARCH64_DLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)gcc\r
+*_GCC49_AARCH64_ASLDLINK_PATH    = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_ASM_PATH         = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_PP_PATH          = ENV(GCC49_AARCH64_PREFIX)gcc\r
 *_GCC49_AARCH64_VFRPP_PATH       = ENV(GCC49_AARCH64_PREFIX)gcc\r
@@ -5145,15 +5447,179 @@ RELEASE_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-v
 *_GCC49_AARCH64_ASLCC_FLAGS      = DEF(GCC_ASLCC_FLAGS)\r
 *_GCC49_AARCH64_ASLDLINK_FLAGS   = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)\r
 *_GCC49_AARCH64_ASM_FLAGS        = DEF(GCC49_AARCH64_ASM_FLAGS)\r
-*_GCC49_AARCH64_DLINK_FLAGS      = DEF(GCC49_AARCH64_DLINK_FLAGS)\r
 *_GCC49_AARCH64_DLINK2_FLAGS     = DEF(GCC49_AARCH64_DLINK2_FLAGS)\r
+*_GCC49_AARCH64_DTCPP_FLAGS      = DEF(GCC_DTCPP_FLAGS)\r
 *_GCC49_AARCH64_PLATFORM_FLAGS   =\r
 *_GCC49_AARCH64_PP_FLAGS         = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
 *_GCC49_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)\r
 *_GCC49_AARCH64_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC49_AARCH64_CC_XIPFLAGS      = DEF(GCC49_AARCH64_CC_XIPFLAGS)\r
 \r
-  DEBUG_GCC49_AARCH64_CC_FLAGS   = DEF(GCC49_AARCH64_CC_FLAGS) -O0\r
-RELEASE_GCC49_AARCH64_CC_FLAGS   = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable\r
+  DEBUG_GCC49_AARCH64_CC_FLAGS     = DEF(GCC49_AARCH64_CC_FLAGS) -O0 -mcmodel=small\r
+  DEBUG_GCC49_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\r
+  DEBUG_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20\r
+\r
+RELEASE_GCC49_AARCH64_CC_FLAGS     = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable -Wno-unused-const-variable -mcmodel=tiny\r
+RELEASE_GCC49_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS)\r
+\r
+  NOOPT_GCC49_AARCH64_CC_FLAGS     = DEF(GCC49_AARCH64_CC_FLAGS) -O0 -mcmodel=small\r
+  NOOPT_GCC49_AARCH64_DLINK_FLAGS  = DEF(GCC49_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 -O0\r
+  NOOPT_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0\r
+\r
+####################################################################################\r
+#\r
+# GCC 5 - This configuration is used to compile under Linux to produce\r
+#         PE/COFF binaries using GCC 5\r
+#\r
+####################################################################################\r
+*_GCC5_*_*_FAMILY                = GCC\r
+\r
+*_GCC5_*_MAKE_PATH               = DEF(GCC_HOST_PREFIX)make\r
+*_GCC5_*_*_DLL                   = ENV(GCC5_DLL)\r
+*_GCC5_*_ASL_PATH                = DEF(UNIX_IASL_BIN)\r
+\r
+*_GCC5_*_PP_FLAGS                = DEF(GCC_PP_FLAGS)\r
+*_GCC5_*_ASLPP_FLAGS             = DEF(GCC_ASLPP_FLAGS)\r
+*_GCC5_*_ASLCC_FLAGS             = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC5_*_VFRPP_FLAGS             = DEF(GCC_VFRPP_FLAGS)\r
+*_GCC5_*_APP_FLAGS               =\r
+*_GCC5_*_ASL_FLAGS               = DEF(IASL_FLAGS)\r
+*_GCC5_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)\r
+\r
+##################\r
+# GCC5 IA32 definitions\r
+##################\r
+*_GCC5_IA32_OBJCOPY_PATH         = DEF(GCC5_IA32_PREFIX)objcopy\r
+*_GCC5_IA32_CC_PATH              = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_SLINK_PATH           = DEF(GCC5_IA32_PREFIX)gcc-ar\r
+*_GCC5_IA32_DLINK_PATH           = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_ASLDLINK_PATH        = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_ASM_PATH             = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_PP_PATH              = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_VFRPP_PATH           = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_ASLCC_PATH           = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_ASLPP_PATH           = DEF(GCC5_IA32_PREFIX)gcc\r
+*_GCC5_IA32_RC_PATH              = DEF(GCC5_IA32_PREFIX)objcopy\r
+\r
+*_GCC5_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto\r
+*_GCC5_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie\r
+*_GCC5_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32 -march=i386\r
+*_GCC5_IA32_DLINK2_FLAGS         = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie\r
+*_GCC5_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
+*_GCC5_IA32_OBJCOPY_FLAGS        =\r
+*_GCC5_IA32_NASM_FLAGS           = -f elf32\r
+\r
+  DEBUG_GCC5_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto -Os\r
+  DEBUG_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386\r
+\r
+RELEASE_GCC5_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -flto -Os -Wno-unused-but-set-variable -Wno-unused-const-variable\r
+RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-m,elf_i386,--oformat=elf32-i386\r
+\r
+  NOOPT_GCC5_IA32_CC_FLAGS       = DEF(GCC5_IA32_CC_FLAGS) -O0\r
+  NOOPT_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386 -O0\r
+\r
+##################\r
+# GCC5 X64 definitions\r
+##################\r
+*_GCC5_X64_OBJCOPY_PATH          = DEF(GCC5_X64_PREFIX)objcopy\r
+*_GCC5_X64_CC_PATH               = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_SLINK_PATH            = DEF(GCC5_X64_PREFIX)gcc-ar\r
+*_GCC5_X64_DLINK_PATH            = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_ASLDLINK_PATH         = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_ASM_PATH              = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_PP_PATH               = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_VFRPP_PATH            = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_ASLCC_PATH            = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_ASLPP_PATH            = DEF(GCC5_X64_PREFIX)gcc\r
+*_GCC5_X64_RC_PATH               = DEF(GCC5_X64_PREFIX)objcopy\r
+\r
+*_GCC5_X64_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto\r
+*_GCC5_X64_ASLDLINK_FLAGS        = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
+*_GCC5_X64_ASM_FLAGS             = DEF(GCC5_ASM_FLAGS) -m64\r
+*_GCC5_X64_DLINK2_FLAGS          = DEF(GCC5_X64_DLINK2_FLAGS)\r
+*_GCC5_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)\r
+*_GCC5_X64_OBJCOPY_FLAGS         =\r
+*_GCC5_X64_NASM_FLAGS            = -f elf64\r
+\r
+  DEBUG_GCC5_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os\r
+  DEBUG_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os\r
+\r
+RELEASE_GCC5_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -flto -DUSING_LTO -Os -Wno-unused-but-set-variable -Wno-unused-const-variable\r
+RELEASE_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os\r
+\r
+  NOOPT_GCC5_X64_CC_FLAGS        = DEF(GCC5_X64_CC_FLAGS) -O0\r
+  NOOPT_GCC5_X64_DLINK_FLAGS     = DEF(GCC5_X64_DLINK_FLAGS) -O0\r
+\r
+##################\r
+# GCC5 ARM definitions\r
+##################\r
+*_GCC5_ARM_CC_PATH               = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_SLINK_PATH            = ENV(GCC5_ARM_PREFIX)gcc-ar\r
+*_GCC5_ARM_DLINK_PATH            = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_ASLDLINK_PATH         = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_ASM_PATH              = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_PP_PATH               = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_VFRPP_PATH            = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_ASLCC_PATH            = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_ASLPP_PATH            = ENV(GCC5_ARM_PREFIX)gcc\r
+*_GCC5_ARM_RC_PATH               = ENV(GCC5_ARM_PREFIX)objcopy\r
+\r
+*_GCC5_ARM_ARCHCC_FLAGS          = -mthumb\r
+*_GCC5_ARM_ASLCC_FLAGS           = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC5_ARM_ASLDLINK_FLAGS        = DEF(GCC5_ARM_ASLDLINK_FLAGS)\r
+*_GCC5_ARM_ASM_FLAGS             = DEF(GCC5_ARM_ASM_FLAGS)\r
+*_GCC5_ARM_DLINK2_FLAGS          = DEF(GCC5_ARM_DLINK2_FLAGS)\r
+*_GCC5_ARM_DTCPP_FLAGS           = DEF(GCC_DTCPP_FLAGS)\r
+*_GCC5_ARM_PLATFORM_FLAGS        = -march=armv7-a\r
+*_GCC5_ARM_PP_FLAGS              = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
+*_GCC5_ARM_RC_FLAGS              = DEF(GCC_ARM_RC_FLAGS)\r
+*_GCC5_ARM_VFRPP_FLAGS           = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC5_ARM_CC_XIPFLAGS           = DEF(GCC5_ARM_CC_XIPFLAGS)\r
+\r
+  DEBUG_GCC5_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable\r
+  DEBUG_GCC5_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm\r
+\r
+RELEASE_GCC5_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable\r
+RELEASE_GCC5_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm\r
+\r
+  NOOPT_GCC5_ARM_CC_FLAGS        = DEF(GCC5_ARM_CC_FLAGS) -O0\r
+  NOOPT_GCC5_ARM_DLINK_FLAGS     = DEF(GCC5_ARM_DLINK_FLAGS) -O0\r
+\r
+##################\r
+# GCC5 AARCH64 definitions\r
+##################\r
+*_GCC5_AARCH64_CC_PATH           = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_SLINK_PATH        = ENV(GCC5_AARCH64_PREFIX)gcc-ar\r
+*_GCC5_AARCH64_DLINK_PATH        = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_ASLDLINK_PATH     = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_ASM_PATH          = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_PP_PATH           = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_VFRPP_PATH        = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_ASLCC_PATH        = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_ASLPP_PATH        = ENV(GCC5_AARCH64_PREFIX)gcc\r
+*_GCC5_AARCH64_RC_PATH           = ENV(GCC5_AARCH64_PREFIX)objcopy\r
+\r
+*_GCC5_AARCH64_ASLCC_FLAGS       = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC5_AARCH64_ASLDLINK_FLAGS    = DEF(GCC5_AARCH64_ASLDLINK_FLAGS)\r
+*_GCC5_AARCH64_ASM_FLAGS         = DEF(GCC5_AARCH64_ASM_FLAGS)\r
+*_GCC5_AARCH64_DLINK2_FLAGS      = DEF(GCC5_AARCH64_DLINK2_FLAGS)\r
+*_GCC5_AARCH64_DTCPP_FLAGS       = DEF(GCC_DTCPP_FLAGS)\r
+*_GCC5_AARCH64_PLATFORM_FLAGS    =\r
+*_GCC5_AARCH64_PP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)\r
+*_GCC5_AARCH64_RC_FLAGS          = DEF(GCC_AARCH64_RC_FLAGS)\r
+*_GCC5_AARCH64_VFRPP_FLAGS       = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)\r
+*_GCC5_AARCH64_CC_XIPFLAGS       = DEF(GCC5_AARCH64_CC_XIPFLAGS)\r
+\r
+  DEBUG_GCC5_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable -mcmodel=small\r
+  DEBUG_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch -mcmodel=small\r
+  DEBUG_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20\r
+\r
+RELEASE_GCC5_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS) -flto -Wno-unused-but-set-variable -Wno-unused-const-variable -mcmodel=tiny\r
+RELEASE_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64 -Wno-lto-type-mismatch\r
+\r
+  NOOPT_GCC5_AARCH64_CC_FLAGS    = DEF(GCC5_AARCH64_CC_FLAGS) -O0 -mcmodel=small\r
+  NOOPT_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000 -O0\r
+  NOOPT_GCC5_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20 -O0\r
 \r
 ####################################################################################\r
 #\r
@@ -5169,12 +5635,11 @@ RELEASE_GCC49_AARCH64_CC_FLAGS   = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_CLANG35_*_ASL_PATH             = DEF(UNIX_IASL_BIN)\r
 \r
 *_CLANG35_*_PP_FLAGS             = DEF(GCC_PP_FLAGS)\r
-*_CLANG35_*_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS)\r
 *_CLANG35_*_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)\r
-*_CLANG35_*_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS)\r
 *_CLANG35_*_APP_FLAGS            =\r
 *_CLANG35_*_ASL_FLAGS            = DEF(IASL_FLAGS)\r
 *_CLANG35_*_ASL_OUTFLAGS         = DEF(IASL_OUTFLAGS)\r
+*_CLANG35_*_DTCPP_FLAGS          = DEF(GCC_DTCPP_FLAGS)\r
 \r
 *_CLANG35_*_CC_PATH              = ENV(CLANG35_BIN)clang\r
 *_CLANG35_*_ASM_PATH             = ENV(CLANG35_BIN)clang\r
@@ -5182,30 +5647,248 @@ RELEASE_GCC49_AARCH64_CC_FLAGS   = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-s
 *_CLANG35_*_VFRPP_PATH           = ENV(CLANG35_BIN)clang\r
 *_CLANG35_*_ASLCC_PATH           = ENV(CLANG35_BIN)clang\r
 *_CLANG35_*_ASLPP_PATH           = ENV(CLANG35_BIN)clang\r
+*_CLANG35_*_DLINK_PATH           = ENV(CLANG35_BIN)clang\r
+*_CLANG35_*_ASLDLINK_PATH        = ENV(CLANG35_BIN)clang\r
+\r
+DEFINE CLANG35_ARM_TARGET        = -target arm-linux-gnueabihf\r
+DEFINE CLANG35_AARCH64_TARGET    = -target aarch64-linux-gnu\r
+\r
+DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unknown-warning-option\r
+DEFINE CLANG35_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG35_ARM_TARGET) DEF(CLANG35_WARNING_OVERRIDES)\r
+DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG35_AARCH64_TARGET) -mcmodel=small DEF(CLANG35_WARNING_OVERRIDES)\r
 \r
-DEFINE CLANG35_WARNING_OVERRIDES = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body\r
-DEFINE CLANG35_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) -target aarch64 -mcmodel=small -mstrict-align DEF(CLANG35_WARNING_OVERRIDES)\r
+##################\r
+# CLANG35 ARM definitions\r
+##################\r
+*_CLANG35_ARM_SLINK_PATH         = ENV(CLANG35_ARM_PREFIX)ar\r
+*_CLANG35_ARM_RC_PATH            = ENV(CLANG35_ARM_PREFIX)objcopy\r
+\r
+*_CLANG35_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS)\r
+*_CLANG35_ARM_ASLDLINK_FLAGS     = DEF(CLANG35_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)\r
+*_CLANG35_ARM_ASM_FLAGS          = DEF(GCC_ASM_FLAGS) DEF(CLANG35_ARM_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments\r
+*_CLANG35_ARM_DLINK_FLAGS        = DEF(CLANG35_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)\r
+*_CLANG35_ARM_DLINK2_FLAGS       = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220\r
+*_CLANG35_ARM_PLATFORM_FLAGS     = -march=armv7-a\r
+*_CLANG35_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS) DEF(CLANG35_ARM_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG35_ARM_RC_FLAGS           = DEF(GCC_ARM_RC_FLAGS)\r
+*_CLANG35_ARM_VFRPP_FLAGS        = DEF(GCC_VFRPP_FLAGS) DEF(CLANG35_ARM_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG35_ARM_ASLPP_FLAGS        = DEF(GCC_ASLPP_FLAGS) DEF(CLANG35_ARM_TARGET)\r
+*_CLANG35_ARM_CC_XIPFLAGS        = DEF(GCC_ARM_CC_XIPFLAGS)\r
+\r
+  DEBUG_CLANG35_ARM_CC_FLAGS     = DEF(CLANG35_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O1\r
+RELEASE_CLANG35_ARM_CC_FLAGS     = DEF(CLANG35_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -Oz\r
+  NOOPT_CLANG35_ARM_CC_FLAGS     = DEF(CLANG35_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0\r
 \r
 ##################\r
 # CLANG35 AARCH64 definitions\r
 ##################\r
 *_CLANG35_AARCH64_SLINK_PATH     = ENV(CLANG35_AARCH64_PREFIX)ar\r
-*_CLANG35_AARCH64_DLINK_PATH     = ENV(CLANG35_AARCH64_PREFIX)ld\r
-*_CLANG35_AARCH64_ASLDLINK_PATH  = ENV(CLANG35_AARCH64_PREFIX)ld\r
 *_CLANG35_AARCH64_RC_PATH        = ENV(CLANG35_AARCH64_PREFIX)objcopy\r
 \r
 *_CLANG35_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS)\r
-*_CLANG35_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
-*_CLANG35_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -target aarch64 -Qunused-arguments\r
-*_CLANG35_AARCH64_DLINK_FLAGS    = DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\r
-*_CLANG35_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) --defsym=PECOFF_HEADER_SIZE=0x228\r
+*_CLANG35_AARCH64_ASLDLINK_FLAGS = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
+*_CLANG35_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments\r
+*_CLANG35_AARCH64_DLINK_FLAGS    = DEF(CLANG35_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\r
+*_CLANG35_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20\r
+*_CLANG35_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228\r
 *_CLANG35_AARCH64_PLATFORM_FLAGS =\r
-*_CLANG35_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG35_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
 *_CLANG35_AARCH64_RC_FLAGS       = DEF(GCC_AARCH64_RC_FLAGS)\r
-*_CLANG35_AARCH64_VFRPP_FLAGS    = DEF(GCC_VFRPP_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG35_AARCH64_VFRPP_FLAGS    = DEF(GCC_VFRPP_FLAGS) DEF(CLANG35_AARCH64_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG35_AARCH64_ASLPP_FLAGS    = DEF(GCC_ASLPP_FLAGS) DEF(CLANG35_AARCH64_TARGET)\r
+*_CLANG35_AARCH64_CC_XIPFLAGS    = DEF(GCC_AARCH64_CC_XIPFLAGS)\r
 \r
-  DEBUG_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0\r
+  DEBUG_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O1\r
 RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -Oz\r
+  NOOPT_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0\r
+\r
+####################################################################################\r
+#\r
+# Clang 3.8 - This configuration is used to compile under Linux to produce\r
+#  PE/COFF binaries using LLVM/Clang 3.8 with Link Time Optimization enabled\r
+#\r
+####################################################################################\r
+*_CLANG38_*_*_FAMILY                = GCC\r
+*_CLANG38_*_MAKE_PATH               = make\r
+*_CLANG38_*_*_DLL                   = ENV(CLANG38_DLL)\r
+*_CLANG38_*_ASL_PATH                = DEF(UNIX_IASL_BIN)\r
+\r
+*_CLANG38_*_APP_FLAGS               =\r
+*_CLANG38_*_ASL_FLAGS               = DEF(IASL_FLAGS)\r
+*_CLANG38_*_ASL_OUTFLAGS            = DEF(IASL_OUTFLAGS)\r
+\r
+DEFINE CLANG38_IA32_PREFIX          = ENV(CLANG38_BIN)\r
+DEFINE CLANG38_X64_PREFIX           = ENV(CLANG38_BIN)\r
+\r
+DEFINE CLANG38_IA32_TARGET          = -target i686-pc-linux-gnu\r
+DEFINE CLANG38_X64_TARGET           = -target x86_64-pc-linux-gnu\r
+\r
+DEFINE CLANG38_WARNING_OVERRIDES    = -Wno-parentheses-equality -Wno-tautological-compare -Wno-tautological-constant-out-of-range-compare -Wno-empty-body -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option\r
+DEFINE CLANG38_ALL_CC_FLAGS         = DEF(GCC44_ALL_CC_FLAGS) DEF(CLANG38_WARNING_OVERRIDES) -fno-stack-protector -mms-bitfields -Wno-address -Wno-shift-negative-value -Wno-unknown-pragmas -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -msoft-float -mno-implicit-float  -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -funsigned-char -fno-ms-extensions -Wno-null-dereference\r
+\r
+###########################\r
+# CLANG38 IA32 definitions\r
+###########################\r
+*_CLANG38_IA32_OBJCOPY_PATH         = objcopy\r
+*_CLANG38_IA32_CC_PATH              = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_SLINK_PATH           = DEF(CLANG38_IA32_PREFIX)llvm-ar\r
+*_CLANG38_IA32_DLINK_PATH           = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_ASLDLINK_PATH        = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_ASM_PATH             = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_PP_PATH              = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_VFRPP_PATH           = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_ASLCC_PATH           = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_ASLPP_PATH           = DEF(CLANG38_IA32_PREFIX)clang\r
+*_CLANG38_IA32_RC_PATH              = objcopy\r
+\r
+*_CLANG38_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET)\r
+*_CLANG38_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386\r
+*_CLANG38_IA32_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET)\r
+*_CLANG38_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
+*_CLANG38_IA32_OBJCOPY_FLAGS        =\r
+*_CLANG38_IA32_NASM_FLAGS           = -f elf32\r
+*_CLANG38_IA32_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANG38_IA32_TARGET)\r
+*_CLANG38_IA32_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET)\r
+*_CLANG38_IA32_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET)\r
+\r
+DEBUG_CLANG38_IA32_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g\r
+DEBUG_CLANG38_IA32_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386\r
+DEBUG_CLANG38_IA32_DLINK2_FLAGS     = DEF(GCC5_IA32_DLINK2_FLAGS) -O3\r
+\r
+RELEASE_CLANG38_IA32_CC_FLAGS       = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET)\r
+RELEASE_CLANG38_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_i386 -Wl,--oformat=elf32-i386\r
+RELEASE_CLANG38_IA32_DLINK2_FLAGS   = DEF(GCC5_IA32_DLINK2_FLAGS) -O3\r
+\r
+NOOPT_CLANG38_IA32_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g\r
+NOOPT_CLANG38_IA32_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat=elf32-i386\r
+NOOPT_CLANG38_IA32_DLINK2_FLAGS     = DEF(GCC5_IA32_DLINK2_FLAGS) -O0\r
+\r
+##########################\r
+# CLANG38 X64 definitions\r
+##########################\r
+*_CLANG38_X64_OBJCOPY_PATH         = objcopy\r
+*_CLANG38_X64_CC_PATH              = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_SLINK_PATH           = DEF(CLANG38_X64_PREFIX)llvm-ar\r
+*_CLANG38_X64_DLINK_PATH           = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_ASLDLINK_PATH        = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_ASM_PATH             = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_PP_PATH              = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_VFRPP_PATH           = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_ASLCC_PATH           = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_ASLPP_PATH           = DEF(CLANG38_X64_PREFIX)clang\r
+*_CLANG38_X64_RC_PATH              = objcopy\r
+\r
+*_CLANG38_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto DEF(CLANG38_X64_TARGET)\r
+*_CLANG38_X64_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64\r
+*_CLANG38_X64_ASM_FLAGS            = DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANG38_X64_TARGET)\r
+*_CLANG38_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
+*_CLANG38_X64_OBJCOPY_FLAGS        =\r
+*_CLANG38_X64_NASM_FLAGS           = -f elf64\r
+*_CLANG38_X64_PP_FLAGS             = DEF(GCC_PP_FLAGS) DEF(CLANG38_X64_TARGET)\r
+*_CLANG38_X64_ASLPP_FLAGS          = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X64_TARGET)\r
+*_CLANG38_X64_VFRPP_FLAGS          = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64_TARGET)\r
+\r
+DEBUG_CLANG38_X64_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET) -g\r
+DEBUG_CLANG38_X64_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small\r
+DEBUG_CLANG38_X64_DLINK2_FLAGS     = DEF(GCC5_X64_DLINK2_FLAGS) -O3\r
+\r
+RELEASE_CLANG38_X64_CC_FLAGS       = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET)\r
+RELEASE_CLANG38_X64_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Wl,-Oz -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small\r
+RELEASE_CLANG38_X64_DLINK2_FLAGS   = DEF(GCC5_X64_DLINK2_FLAGS) -O3\r
+\r
+NOOPT_CLANG38_X64_CC_FLAGS         = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 DEF(CLANG38_X64_TARGET) -g\r
+NOOPT_CLANG38_X64_DLINK_FLAGS      = DEF(GCC5_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie -mcmodel=small\r
+NOOPT_CLANG38_X64_DLINK2_FLAGS     = DEF(GCC5_X64_DLINK2_FLAGS) -O0\r
+\r
+##################\r
+# CLANG38 ARM definitions\r
+##################\r
+DEFINE CLANG38_ARM_TARGET        = -target arm-linux-gnueabihf\r
+DEFINE CLANG38_ARM_CC_FLAGS      = DEF(GCC_ARM_CC_FLAGS) DEF(CLANG38_ARM_TARGET) DEF(CLANG38_WARNING_OVERRIDES) -mno-movt\r
+DEFINE CLANG38_ARM_DLINK_FLAGS   = DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_DLINK_FLAGS)\r
+\r
+*_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS)\r
+*_CLANG38_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS)\r
+*_CLANG38_ARM_APP_FLAGS          =\r
+*_CLANG38_ARM_ASL_FLAGS          = DEF(IASL_FLAGS)\r
+*_CLANG38_ARM_ASL_OUTFLAGS       = DEF(IASL_OUTFLAGS)\r
+*_CLANG38_ARM_DTCPP_FLAGS        = DEF(GCC_DTCPP_FLAGS)\r
+\r
+*_CLANG38_ARM_CC_PATH            = ENV(CLANG38_BIN)clang\r
+*_CLANG38_ARM_ASM_PATH           = ENV(CLANG38_BIN)clang\r
+*_CLANG38_ARM_PP_PATH            = ENV(CLANG38_BIN)clang\r
+*_CLANG38_ARM_VFRPP_PATH         = ENV(CLANG38_BIN)clang\r
+*_CLANG38_ARM_ASLCC_PATH         = ENV(CLANG38_BIN)clang\r
+*_CLANG38_ARM_ASLPP_PATH         = ENV(CLANG38_BIN)clang\r
+*_CLANG38_ARM_DLINK_PATH         = ENV(CLANG38_BIN)clang\r
+*_CLANG38_ARM_ASLDLINK_PATH      = ENV(CLANG38_BIN)clang\r
+\r
+*_CLANG38_ARM_SLINK_PATH         = ENV(CLANG38_BIN)llvm-ar\r
+*_CLANG38_ARM_RC_PATH            = ENV(CLANG38_ARM_PREFIX)objcopy\r
+\r
+*_CLANG38_ARM_ASLCC_FLAGS        = DEF(GCC_ASLCC_FLAGS) -fno-lto\r
+*_CLANG38_ARM_ASLDLINK_FLAGS     = DEF(CLANG38_ARM_TARGET) DEF(GCC_ARM_ASLDLINK_FLAGS)\r
+*_CLANG38_ARM_ASM_FLAGS          = DEF(GCC_ASM_FLAGS) DEF(CLANG38_ARM_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments\r
+*_CLANG38_ARM_DLINK2_FLAGS       = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220\r
+*_CLANG38_ARM_PLATFORM_FLAGS     = -march=armv7-a\r
+*_CLANG38_ARM_PP_FLAGS           = DEF(GCC_PP_FLAGS) DEF(CLANG38_ARM_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG38_ARM_RC_FLAGS           = DEF(GCC_ARM_RC_FLAGS)\r
+*_CLANG38_ARM_VFRPP_FLAGS        = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_ARM_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG38_ARM_ASLPP_FLAGS        = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_ARM_TARGET)\r
+*_CLANG38_ARM_CC_XIPFLAGS        = DEF(GCC_ARM_CC_XIPFLAGS)\r
+\r
+  DEBUG_CLANG38_ARM_CC_FLAGS     = DEF(CLANG38_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -flto -O1\r
+  DEBUG_CLANG38_ARM_DLINK_FLAGS  = DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm\r
+  NOOPT_CLANG38_ARM_CC_FLAGS     = DEF(CLANG38_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0\r
+  NOOPT_CLANG38_ARM_DLINK_FLAGS  = DEF(CLANG38_ARM_DLINK_FLAGS)\r
+RELEASE_CLANG38_ARM_CC_FLAGS     = DEF(CLANG38_ARM_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -flto -O3\r
+RELEASE_CLANG38_ARM_DLINK_FLAGS  = DEF(CLANG38_ARM_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-arm -Wl,-plugin-opt=-pass-through=-llto-arm\r
+\r
+##################\r
+# CLANG38 AARCH64 definitions\r
+##################\r
+DEFINE CLANG38_AARCH64_TARGET    = -target aarch64-linux-gnu\r
+DEFINE CLANG38_AARCH64_CC_FLAGS  = DEF(GCC_AARCH64_CC_FLAGS) DEF(CLANG38_AARCH64_TARGET) -mcmodel=small DEF(CLANG38_WARNING_OVERRIDES)\r
+DEFINE CLANG38_AARCH64_DLINK_FLAGS  = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\r
+\r
+*_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS)\r
+*_CLANG38_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS)\r
+*_CLANG38_AARCH64_APP_FLAGS      =\r
+*_CLANG38_AARCH64_ASL_FLAGS      = DEF(IASL_FLAGS)\r
+*_CLANG38_AARCH64_ASL_OUTFLAGS   = DEF(IASL_OUTFLAGS)\r
+*_CLANG38_AARCH64_DTCPP_FLAGS    = DEF(GCC_DTCPP_FLAGS)\r
+\r
+*_CLANG38_AARCH64_CC_PATH        = ENV(CLANG38_BIN)clang\r
+*_CLANG38_AARCH64_ASM_PATH       = ENV(CLANG38_BIN)clang\r
+*_CLANG38_AARCH64_PP_PATH        = ENV(CLANG38_BIN)clang\r
+*_CLANG38_AARCH64_VFRPP_PATH     = ENV(CLANG38_BIN)clang\r
+*_CLANG38_AARCH64_ASLCC_PATH     = ENV(CLANG38_BIN)clang\r
+*_CLANG38_AARCH64_ASLPP_PATH     = ENV(CLANG38_BIN)clang\r
+*_CLANG38_AARCH64_DLINK_PATH     = ENV(CLANG38_BIN)clang\r
+*_CLANG38_AARCH64_ASLDLINK_PATH  = ENV(CLANG38_BIN)clang\r
+\r
+*_CLANG38_AARCH64_SLINK_PATH     = ENV(CLANG38_BIN)llvm-ar\r
+*_CLANG38_AARCH64_RC_PATH        = ENV(CLANG38_AARCH64_PREFIX)objcopy\r
+\r
+*_CLANG38_AARCH64_ASLCC_FLAGS    = DEF(GCC_ASLCC_FLAGS) -fno-lto\r
+*_CLANG38_AARCH64_ASLDLINK_FLAGS = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_ASLDLINK_FLAGS)\r
+*_CLANG38_AARCH64_ASM_FLAGS      = DEF(GCC_ASM_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -Qunused-arguments\r
+*_CLANG38_AARCH64_DLINK_FLAGS    = DEF(CLANG38_AARCH64_TARGET) DEF(GCC_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\r
+*_CLANG38_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20\r
+*_CLANG38_AARCH64_DLINK2_FLAGS   = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228\r
+*_CLANG38_AARCH64_PLATFORM_FLAGS =\r
+*_CLANG38_AARCH64_PP_FLAGS       = DEF(GCC_PP_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG38_AARCH64_RC_FLAGS       = DEF(GCC_AARCH64_RC_FLAGS)\r
+*_CLANG38_AARCH64_VFRPP_FLAGS    = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_AARCH64_TARGET) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS)\r
+*_CLANG38_AARCH64_ASLPP_FLAGS    = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_AARCH64_TARGET)\r
+*_CLANG38_AARCH64_CC_XIPFLAGS    = DEF(GCC_AARCH64_CC_XIPFLAGS)\r
+\r
+  DEBUG_CLANG38_AARCH64_CC_FLAGS    = DEF(CLANG38_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -flto -O1\r
+  DEBUG_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O1 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64\r
+  NOOPT_CLANG38_AARCH64_CC_FLAGS    = DEF(CLANG38_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -O0\r
+  NOOPT_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS)\r
+RELEASE_CLANG38_AARCH64_CC_FLAGS    = DEF(CLANG38_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -flto -O3\r
+RELEASE_CLANG38_AARCH64_DLINK_FLAGS = DEF(CLANG38_AARCH64_DLINK_FLAGS) -flto -Wl,-O3 -L$(WORKSPACE)/ArmPkg/Library/GccLto -llto-aarch64 -Wl,-plugin-opt=-pass-through=-llto-aarch64\r
 \r
 ####################################################################################\r
 #\r
@@ -5215,6 +5898,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 #   CYGGCC        - CygWin GCC\r
 #   ASL           - Intel ACPI Source Language Compiler (iasl.exe)\r
 *_CYGGCC_*_*_FAMILY              = GCC\r
+*_CYGGCC_*_*_BUILDRULEFAMILY     = GCCLD\r
 \r
 *_CYGGCC_*_*_DLL                 = DEF(CYGWIN_BIN)\r
 *_CYGGCC_*_MAKE_PATH             = DEF(MS_VS_BIN)\nmake.exe\r
@@ -5322,6 +6006,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 #   CYGGCCxASL        - CygWin GCC\r
 #   ASL           - Microsoft ACPI Source Language Compiler (asl.exe)\r
 *_CYGGCCxASL_*_*_FAMILY              = GCC\r
+*_CYGGCCxASL_*_*_BUILDRULEFAMILY     = GCCLD\r
 \r
 *_CYGGCCxASL_*_*_DLL                 = DEF(CYGWIN_BIN)\r
 *_CYGGCCxASL_*_MAKE_PATH             = DEF(MS_VS_BIN)\nmake.exe\r
@@ -5425,6 +6110,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 ####################################################################################\r
 #   ELFGCC           - Linux ELF GCC\r
 *_ELFGCC_*_*_FAMILY                 = GCC\r
+*_ELFGCC_*_*_BUILDRULEFAMILY        = GCCLD\r
 *_ELFGCC_*_MAKE_PATH                = make\r
 \r
 *_ELFGCC_*_PP_FLAGS                     = -E -x assembler-with-cpp -include AutoGen.h\r
@@ -5436,7 +6122,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 *_ELFGCC_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
 *_ELFGCC_*_ASL_FLAGS                    = DEF(IASL_FLAGS)\r
 *_ELFGCC_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)\r
-*_ELFGCC_*_ASLPP_FLAGS                  = -x c -E -P\r
+*_ELFGCC_*_ASLPP_FLAGS                  = -x c -E -include AutoGen.h\r
 *_ELFGCC_*_ASLCC_FLAGS                  = -x c\r
 *_ELFGCC_*_ASLDLINK_FLAGS               = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable\r
 \r
@@ -5455,7 +6141,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 *_ELFGCC_IA32_ASLDLINK_PATH         = DEF(ELFGCC_BIN)/ld\r
 *_ELFGCC_IA32_RC_PATH               = DEF(ELFGCC_BIN)/objcopy\r
 \r
-*_ELFGCC_IA32_CC_FLAGS              = -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
+*_ELFGCC_IA32_CC_FLAGS              = -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings\r
 *_ELFGCC_IA32_SLINK_FLAGS           =\r
 *_ELFGCC_IA32_DLINK_FLAGS           = -melf_i386 -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 #*_ELFGCC_IA32_DLINK_FLAGS          = -melf_i386 -nostdlib -n -q -Ttext 0x220 --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT)\r
@@ -5480,7 +6166,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 *_ELFGCC_X64_VFRPP_PATH            = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC_X64_RC_PATH               = DEF(ELFGCC_BIN)/objcopy\r
 \r
-*_ELFGCC_X64_CC_FLAGS              = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-address -Wno-array-bounds -c -include AutoGen.h -D_EFI_P64\r
+*_ELFGCC_X64_CC_FLAGS              = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-address -Wno-array-bounds -include AutoGen.h -D_EFI_P64\r
 *_ELFGCC_X64_DLINK_FLAGS           = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 *_ELFGCC_X64_SLINK_FLAGS           =\r
 *_ELFGCC_X64_ASM_FLAGS             = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
@@ -5503,7 +6189,7 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 *_ELFGCC_IPF_VFRPP_PATH           = DEF(ELFGCC_BIN)/gcc\r
 *_ELFGCC_IPF_RC_PATH              = DEF(ELFGCC_BIN)/objcopy\r
 \r
-*_ELFGCC_IPF_CC_FLAGS             = -Os -fshort-wchar -Wall -Werror -c -include AutoGen.h -D_EFI_P64\r
+*_ELFGCC_IPF_CC_FLAGS             = -Os -fshort-wchar -Wall -Werror -include AutoGen.h -D_EFI_P64\r
 *_ELFGCC_IPF_DLINK_FLAGS          = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 *_ELFGCC_IPF_SLINK_FLAGS          =\r
 *_ELFGCC_IPF_ASM_FLAGS            = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h\r
@@ -5559,8 +6245,8 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS)
 *_ICC_IA32_ASLPP_PATH               = DEF(ICC_BIN32)\icl.exe\r
 *_ICC_IA32_ASLDLINK_PATH            = DEF(ICC_BIN32)\xilink.exe\r
 \r
-  DEBUG_ICC_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICC_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICC_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICC_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
 \r
   DEBUG_ICC_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
@@ -5592,8 +6278,8 @@ NOOPT_ICC_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /O
 *_ICC_X64_ASLPP_PATH                = DEF(ICC_BINX64)\icl.exe\r
 *_ICC_X64_ASLDLINK_PATH             = DEF(ICC_BINX64)\xilink.exe\r
 \r
-  DEBUG_ICC_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICC_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICC_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICC_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\r
 \r
   DEBUG_ICC_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -5710,8 +6396,8 @@ NOOPT_ICC_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_ICCxASL_IA32_ASLPP_PATH               = DEF(ICC_BIN32)\icl.exe\r
 *_ICCxASL_IA32_ASLDLINK_PATH            = DEF(ICC_BIN32)\xilink.exe\r
 \r
-  DEBUG_ICCxASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICCxASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICCxASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICCxASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICCxASL_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
 \r
   DEBUG_ICCxASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
@@ -5744,8 +6430,8 @@ NOOPT_ICCxASL_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNORE:400
 *_ICCxASL_X64_ASLPP_PATH                = DEF(ICC_BINX64)\icl.exe\r
 *_ICCxASL_X64_ASLDLINK_PATH             = DEF(ICC_BINX64)\xilink.exe\r
 \r
-  DEBUG_ICCxASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICCxASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICCxASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICCxASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICCxASL_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\r
 \r
   DEBUG_ICCxASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -5863,8 +6549,8 @@ NOOPT_ICCxASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 *_ICCx86_IA32_ASLPP_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86_IA32_ASLDLINK_PATH            = DEF(ICC_BIN32x86)\xilink.exe\r
 \r
-  DEBUG_ICCx86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICCx86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICCx86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICCx86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICCx86_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
 \r
   DEBUG_ICCx86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
@@ -5897,8 +6583,8 @@ NOOPT_ICCx86_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNORE:4001
 *_ICCx86_X64_ASLPP_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86_X64_ASLDLINK_PATH             = DEF(ICC_BINX64x86)\xilink.exe\r
 \r
-  DEBUG_ICCx86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICCx86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICCx86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICCx86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICCx86_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\r
 \r
   DEBUG_ICCx86_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -6016,8 +6702,8 @@ NOOPT_ICCx86_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL /
 *_ICCx86xASL_IA32_ASLPP_PATH               = DEF(ICC_BIN32x86)\icl.exe\r
 *_ICCx86xASL_IA32_ASLDLINK_PATH            = DEF(ICC_BIN32x86)\xilink.exe\r
 \r
-  DEBUG_ICCx86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICCx86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICCx86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICCx86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICCx86xASL_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
 \r
   DEBUG_ICCx86xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
@@ -6050,8 +6736,8 @@ NOOPT_ICCx86xASL_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNORE:
 *_ICCx86xASL_X64_ASLPP_PATH                = DEF(ICC_BINX64x86)\icl.exe\r
 *_ICCx86xASL_X64_ASLDLINK_PATH             = DEF(ICC_BINX64x86)\xilink.exe\r
 \r
-  DEBUG_ICCx86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICCx86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICCx86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICCx86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICCx86xASL_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\r
 \r
   DEBUG_ICCx86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -6170,8 +6856,8 @@ NOOPT_ICCx86xASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /D
 *_ICC11_IA32_ASLPP_PATH               = DEF(ICC11_BIN32)\icl.exe\r
 *_ICC11_IA32_ASLDLINK_PATH            = DEF(ICC11_BIN32)\xilink.exe\r
 \r
-  DEBUG_ICC11_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICC11_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICC11_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
 \r
   DEBUG_ICC11_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
@@ -6204,8 +6890,8 @@ NOOPT_ICC11_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNORE:4001
 *_ICC11_X64_ASLPP_PATH                = DEF(ICC11_BINX64)\icl.exe\r
 *_ICC11_X64_ASLDLINK_PATH             = DEF(ICC11_BINX64)\xilink.exe\r
 \r
-  DEBUG_ICC11_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICC11_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICC11_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\r
 \r
   DEBUG_ICC11_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -6323,8 +7009,8 @@ NOOPT_ICC11_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL /O
 *_ICC11xASL_IA32_ASLPP_PATH               = DEF(ICC11_BIN32)\icl.exe\r
 *_ICC11xASL_IA32_ASLDLINK_PATH            = DEF(ICC11_BIN32)\xilink.exe\r
 \r
-  DEBUG_ICC11xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICC11xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICC11xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11xASL_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
 \r
   DEBUG_ICC11xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
@@ -6357,8 +7043,8 @@ NOOPT_ICC11xASL_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNORE:4
 *_ICC11xASL_X64_ASLPP_PATH                = DEF(ICC11_BINX64)\icl.exe\r
 *_ICC11xASL_X64_ASLDLINK_PATH             = DEF(ICC11_BINX64)\xilink.exe\r
 \r
-  DEBUG_ICC11xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICC11xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICC11xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11xASL_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\r
 \r
   DEBUG_ICC11xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -6478,8 +7164,8 @@ NOOPT_ICC11xASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DL
 *_ICC11x86_IA32_ASLPP_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86_IA32_ASLDLINK_PATH            = DEF(ICC11_BIN32x86)\xilink.exe\r
 \r
-  DEBUG_ICC11x86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICC11x86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11x86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICC11x86_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11x86_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
   DEBUG_ICC11x86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
 RELEASE_ICC11x86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd\r
@@ -6509,8 +7195,8 @@ NOOPT_ICC11x86_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNORE:40
 *_ICC11x86_X64_ASLPP_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86_X64_ASLDLINK_PATH             = DEF(ICC11_BINX64x86)\xilink.exe\r
 \r
-  DEBUG_ICC11x86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICC11x86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11x86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICC11x86_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11x86_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\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
@@ -6626,8 +7312,8 @@ NOOPT_ICC11x86_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG /DLL
 *_ICC11x86xASL_IA32_ASLPP_PATH               = DEF(ICC11_BIN32x86)\icl.exe\r
 *_ICC11x86xASL_IA32_ASLDLINK_PATH            = DEF(ICC11_BIN32x86)\xilink.exe\r
 \r
-  DEBUG_ICC11x86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
-RELEASE_ICC11x86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1ib2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11x86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm\r
+RELEASE_ICC11x86xASL_IA32_CC_FLAGS                = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /O1b2 /GL /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11x86xASL_IA32_CC_FLAGS                  = /nologo /c /WX /W4 /Gy /Gs32768 /D UNICODE /DEFI_FIRMWARE_VENDOR=L\"INTEL\" /FIAutoGen.h /EHs-c- /GF /Zi /Gm /Od\r
 \r
   DEBUG_ICC11x86xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd /Zi\r
@@ -6658,8 +7344,8 @@ NOOPT_ICC11x86xASL_IA32_DLINK_FLAGS               = /NOLOGO /NODEFAULTLIB /IGNOR
 *_ICC11x86xASL_X64_ASLPP_PATH                = DEF(ICC11_BINX64x86)\icl.exe\r
 *_ICC11x86xASL_X64_ASLDLINK_PATH             = DEF(ICC11_BINX64x86)\xilink.exe\r
 \r
-  DEBUG_ICC11x86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
-RELEASE_ICC11x86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
+  DEBUG_ICC11x86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF\r
+RELEASE_ICC11x86xASL_X64_CC_FLAGS                 = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /EHs-c- /GF\r
 NOOPT_ICC11x86xASL_X64_CC_FLAGS                   = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FI$(DEST_DIR_DEBUG)/AutoGen.h /Zi /Gm /EHs-c- /GF /Od\r
 \r
   DEBUG_ICC11x86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd /Zi\r
@@ -6774,8 +7460,8 @@ NOOPT_ICC11x86xASL_IPF_DLINK_FLAGS                = /NOLOGO /NODEFAULTLIB /LTCG
 *_MYTOOLS_IA32_ASLDLINK_PATH        = DEF(VS2008_BIN)\link.exe\r
 *_MYTOOLS_IA32_RC_PATH              = DEF(WINSDK_BIN)\rc.exe\r
 \r
-  DEBUG_MYTOOLS_IA32_CC_FLAGS            = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-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_CC_FLAGS            = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_MYTOOLS_IA32_CC_FLAGS            = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_MYTOOLS_IA32_CC_FLAGS              = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od\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
@@ -6805,8 +7491,8 @@ NOOPT_MYTOOLS_IA32_DLINK_FLAGS           = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /O
 *_MYTOOLS_X64_ASLDLINK_PATH         = DEF(VS2008_BINX64)\link.exe\r
 *_MYTOOLS_X64_RC_PATH               = DEF(WINSDK_BIN)\rc.exe\r
 \r
-  DEBUG_MYTOOLS_X64_CC_FLAGS             = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
-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_CC_FLAGS             = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm\r
+RELEASE_MYTOOLS_X64_CC_FLAGS             = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\r
 NOOPT_MYTOOLS_X64_CC_FLAGS               = /nologo /c /WX /GS- /W4 /Gs32768 /Gy /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od  \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
@@ -6867,213 +7553,47 @@ NOOPT_MYTOOLS_IPF_DLINK_FLAGS            = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT
 *_MYTOOLS_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 /ALIGN:32 /DRIVER\r
 \r
 \r
-####################################################################################\r
 #\r
-# Xcode Support for building on Mac OS X (Snow Leopard)\r
+# XCODE5 support\r
 #\r
-####################################################################################\r
-#   XCODE32         - Xcode 3.2 Tools (Snow Leopard)\r
-*_XCODE32_*_*_FAMILY            = GCC\r
-*_XCODE32_*_*_BUILDRULEFAMILY   = XCODE\r
-*_XCODE32_*_*_BUILDRULEORDER    = S s nasm\r
-\r
-\r
-*_XCODE32_*_ASL_PATH          = /usr/bin/iasl\r
-\r
-*_XCODE32_*_MAKE_PATH        = make\r
-\r
-*_XCODE32_*_DSYMUTIL_PATH    = /usr/bin/dsymutil\r
-\r
-# This tool needs to be installed seperatly from Xcode 3.2\r
-*_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
-\r
-##################\r
-# IA32 definitions\r
-##################\r
-*_XCODE32_IA32_CC_PATH      = gcc\r
-*_XCODE32_IA32_SLINK_PATH   = libtool\r
-*_XCODE32_IA32_DLINK_PATH   = ld\r
-*_XCODE32_IA32_ASM_PATH     = as\r
-*_XCODE32_IA32_PP_PATH      = gcc\r
-*_XCODE32_IA32_VFRPP_PATH   = gcc\r
-*_XCODE32_IA32_ASL_PATH     = iasl\r
-*_XCODE32_IA32_ASLCC_PATH   = gcc\r
-*_XCODE32_IA32_ASLPP_PATH   = gcc\r
-*_XCODE32_IA32_ASLDLINK_PATH  = ld\r
-\r
-  DEBUG_XCODE32_IA32_DLINK_FLAGS      = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-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
-*_XCODE32_IA32_NASM_FLAGS       = -f macho32\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
-RELEASE_XCODE32_IA32_CC_FLAGS   = -arch i386 -Oz -combine -mms-bitfields  -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h -mdynamic-no-pic -fno-stack-protector\r
-\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_ASL_FLAGS        =\r
-\r
-##################\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\r
-*_XCODE32_X64_SLINK_PATH    = libtool\r
-*_XCODE32_X64_DLINK_PATH    = ld\r
-*_XCODE32_X64_ASM_PATH      = as\r
-*_XCODE32_X64_PP_PATH       = gcc\r
-*_XCODE32_X64_VFRPP_PATH    = gcc\r
-*_XCODE32_X64_ASL_PATH     = iasl\r
-*_XCODE32_X64_ASLCC_PATH   = gcc\r
-*_XCODE32_X64_ASLPP_PATH   = gcc\r
-*_XCODE32_X64_ASLDLINK_PATH  = ld\r
-\r
-*_XCODE32_X64_DLINK_FLAGS      = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-*_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
-*_XCODE32_X64_NASM_FLAGS       = -f macho64\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
-  DEBUG_XCODE32_X64_CC_FLAGS   = -arch x86_64 -save-temps -g -O0 -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address  -fomit-frame-pointer -static  -c -include AutoGen.h -fno-stack-protector\r
-RELEASE_XCODE32_X64_CC_FLAGS   = -arch x86_64 -Oz -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address  -fomit-frame-pointer -static  -c -include AutoGen.h -fno-stack-protector\r
-\r
-##################\r
-# ARM definitions - (Assumes iPhone SDK installed on Snow Leopard)\r
-##################\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_PLATFORM_FLAGS  =\r
-\r
-*_XCODE32_ARM_CC_PATH       = DEF(IPHONE_TOOLS)/usr/bin/gcc\r
-*_XCODE32_ARM_SLINK_PATH    = DEF(IPHONE_TOOLS)/usr/bin/libtool\r
-*_XCODE32_ARM_DLINK_PATH    = ld\r
-*_XCODE32_ARM_ASM_PATH      = DEF(IPHONE_TOOLS)/usr/bin/as\r
-*_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
-\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
-*_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
-  DEBUG_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -g -Oz -mabi=aapcs -mapcs -fno-short-enums  -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h\r
-RELEASE_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -Oz    -mabi=aapcs -mapcs -fno-short-enums  -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h\r
 \r
+*_XCODE5_*_*_FAMILY            = GCC\r
+*_XCODE5_*_*_BUILDRULEFAMILY   = XCODE\r
 \r
-####################################################################################\r
 #\r
-# Clang Support for building on Mac OS X\r
+# use xcode-select to change Xcode version of command line tools\r
 #\r
-####################################################################################\r
-#   CLANG         - clang that produce Mach-O with EFI x86_64 ABI\r
-*_XCLANG_*_*_FAMILY            = GCC\r
-*_XCLANG_*_*_BUILDRULEFAMILY   = XCODE\r
-*_XCLANG_*_*_BUILDRULEORDER    = S s nasm\r
-\r
-*_XCLANG_*_ASL_PATH          = /usr/bin/iasl\r
-\r
-*_XCLANG_*_MAKE_PATH        = make\r
-*_XCLANG_*_DSYMUTIL_PATH    = /usr/bin/dsymutil\r
-\r
-      *_*_*_MTOC_PATH  = /usr/local/bin/mtoc\r
-\r
-  DEBUG_XCLANG_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll\r
-RELEASE_XCLANG_*_MTOC_FLAGS = -align 0x20\r
-\r
-\r
-*_XCLANG_*_CC_PATH      = ENV(CLANG_BIN)clang\r
-*_XCLANG_*_SLINK_PATH   = libtool\r
-*_XCLANG_*_DLINK_PATH   = ld\r
-*_XCLANG_*_ASM_PATH     = as\r
-*_XCLANG_*_PP_PATH      = ENV(CLANG_BIN)clang\r
-*_XCLANG_*_VFRPP_PATH   = ENV(CLANG_BIN)clang\r
-*_XCLANG_*_ASL_PATH     = iasl\r
-*_XCLANG_*_ASLCC_PATH   = ENV(CLANG_BIN)clang\r
-*_XCLANG_*_ASLPP_PATH   = ENV(CLANG_BIN)clang\r
-*_XCLANG_*_ASLDLINK_PATH  = ld\r
-\r
-####################\r
-# IA-32 definitions\r
-####################\r
-  DEBUG_XCLANG_IA32_DLINK_FLAGS      = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-RELEASE_XCLANG_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
-*_XCLANG_IA32_SLINK_FLAGS      = -static -o\r
-  DEBUG_XCLANG_IA32_ASM_FLAGS  = -arch i386 -g\r
-RELEASE_XCLANG_IA32_ASM_FLAGS  = -arch i386 \r
-*_XCLANG_IA32_NASM_FLAGS       = -f macho32\r
-\r
-  DEBUG_XCLANG_IA32_CC_FLAGS   = -arch i386 -c -g -O0  -Wall -Werror -include AutoGen.h -fno-stack-protector -fno-builtin -fshort-wchar -mdynamic-no-pic -mno-sse -mno-mmx -Wno-empty-body -Wno-pointer-sign -Wno-unused-function -Wno-unused-value -Wno-missing-braces -Wno-tautological-compare -Wreturn-type -Wno-unused-variable  -fasm-blocks  -mms-bitfields -msoft-float -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang\r
-RELEASE_XCLANG_IA32_CC_FLAGS   = -arch i386 -c    -Os  -Wall -Werror -include AutoGen.h -fno-stack-protector -fno-builtin -fshort-wchar -mdynamic-no-pic -mno-sse -mno-mmx -Wno-empty-body -Wno-pointer-sign -Wno-unused-function -Wno-unused-value -Wno-missing-braces -Wno-tautological-compare -Wreturn-type -Wno-unused-variable  -fasm-blocks  -mms-bitfields -msoft-float -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang\r
-\r
+*_XCODE5_*_MAKE_PATH     = make\r
+*_XCODE5_*_CC_PATH       = clang\r
+*_XCODE5_*_SLINK_PATH    = libtool\r
+*_XCODE5_*_DLINK_PATH    = ld\r
+*_XCODE5_*_ASM_PATH      = as\r
+*_XCODE5_*_PP_PATH       = clang\r
+*_XCODE5_*_VFRPP_PATH    = clang\r
+*_XCODE5_*_ASL_PATH      = iasl\r
+*_XCODE5_*_ASLCC_PATH    = clang\r
+*_XCODE5_*_ASLPP_PATH    = clang\r
+*_XCODE5_*_ASLDLINK_PATH = ld\r
+*_XCODE5_*_DSYMUTIL_PATH = /usr/bin/dsymutil\r
+*_XCODE5_*_MTOC_PATH     = /usr/local/bin/mtoc\r
 \r
 ##################\r
-# X64 definitions\r
+# ASL definitions\r
 ##################\r
-  DEBUG_XCLANG_X64_DLINK_FLAGS      = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-RELEASE_XCLANG_X64_DLINK_FLAGS      = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x220 -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-*_XCLANG_X64_SLINK_FLAGS      = -static -o\r
-  DEBUG_XCLANG_X64_ASM_FLAGS  = -arch x86_64 -g\r
-RELEASE_XCLANG_X64_ASM_FLAGS  = -arch x86_64 \r
-*_XCLANG_X64_NASM_FLAGS       = -f macho64\r
-*_XCLANG_*_PP_FLAGS         = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h \r
-*_XCLANG_*_VFRPP_FLAGS      = -x c -E -P -DVFRCOMPILE -include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h \r
-\r
-\r
-  DEBUG_XCLANG_X64_CC_FLAGS   = -ccc-host-triple x86_64-pc-win32-macho -c -g -O0  -Wall -Werror -include AutoGen.h -fno-stack-protector -fno-builtin -fshort-wchar -mdynamic-no-pic -Wno-empty-body -Wno-pointer-sign -Wno-unused-function -Wno-unused-value -Wno-missing-braces -Wno-tautological-compare -Wreturn-type -Wno-unused-variable -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang\r
-RELEASE_XCLANG_X64_CC_FLAGS   = -ccc-host-triple x86_64-pc-win32-macho -c    -Os  -Wall -Werror -include AutoGen.h -fno-stack-protector -fno-builtin -fshort-wchar -mdynamic-no-pic -Wno-empty-body -Wno-pointer-sign -Wno-unused-function -Wno-unused-value -Wno-missing-braces -Wno-tautological-compare -Wreturn-type -Wno-unused-variable -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang\r
-*_XCLANG_*_ASLCC_FLAGS      = -x c -save-temps -g -O0 -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h -mdynamic-no-pic\r
-*_XCLANG_*_ASLDLINK_FLAGS   = -e _main -preload -segalign 0x20  -pie -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-*_XCLANG_*_ASLPP_FLAGS      = -x c -E \r
-*_XCLANG_*_ASL_FLAGS        =\r
-\r
-#\r
-# XCODE5 support\r
-#\r
-\r
-*_XCODE5_*_*_FAMILY            = GCC\r
-*_XCODE5_*_*_BUILDRULEFAMILY   = XCODE\r
-*_XCODE5_*_*_BUILDRULEORDER    = S s nasm\r
-\r
-*_XCODE5_*_ASL_PATH          = /usr/bin/iasl\r
+*_XCODE5_*_ASLCC_FLAGS      = -x c -save-temps -g -O0 -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h\r
+*_XCODE5_*_ASLDLINK_FLAGS   = -e _ReferenceAcpiTable -preload -segalign 0x20  -pie -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+*_XCODE5_*_ASLPP_FLAGS      = -x c -E -include AutoGen.h\r
+*_XCODE5_*_ASL_FLAGS        =\r
+*_XCODE5_*_ASL_OUTFLAGS     = DEF(IASL_OUTFLAGS)\r
 \r
-*_XCODE5_*_MAKE_PATH        = make\r
-*_XCODE5_*_DSYMUTIL_PATH    = /usr/bin/dsymutil\r
+##################\r
+# MTOC definitions\r
+##################\r
 \r
   DEBUG_XCODE5_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll\r
   NOOPT_XCODE5_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll\r
 RELEASE_XCODE5_*_MTOC_FLAGS = -align 0x20 \r
 \r
-#\r
-# use xcode-select to change Xcode version of command line tools\r
-#\r
-*_XCODE5_*_CC_PATH      = clang\r
-*_XCODE5_*_SLINK_PATH   = libtool\r
-*_XCODE5_*_DLINK_PATH   = ld\r
-*_XCODE5_*_ASM_PATH     = as\r
-*_XCODE5_*_PP_PATH      = clang\r
-*_XCODE5_*_VFRPP_PATH   = clang\r
-*_XCODE5_*_ASL_PATH     = iasl\r
-*_XCODE5_*_ASLCC_PATH   = clang\r
-*_XCODE5_*_ASLPP_PATH   = clang\r
-*_XCODE5_*_ASLDLINK_PATH  = ld\r
-\r
 ####################\r
 # IA-32 definitions\r
 ####################\r
@@ -7088,11 +7608,9 @@ RELEASE_XCODE5_IA32_ASM_FLAGS  = -arch i386
       *_XCODE5_IA32_NASM_FLAGS = -f macho32\r
 \r
 \r
-  DEBUG_XCODE5_IA32_CC_FLAGS   = -arch i386 -c -g -Os       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
-RELEASE_XCODE5_IA32_CC_FLAGS   = -arch i386 -c    -Os       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
-  NOOPT_XCODE5_IA32_CC_FLAGS   = -arch i386 -c -g -O0       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
-\r
-\r
+  DEBUG_XCODE5_IA32_CC_FLAGS   = -arch i386 -c -g -Os       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
+RELEASE_XCODE5_IA32_CC_FLAGS   = -arch i386 -c    -Os       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -Wno-unused-const-variable -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
+  NOOPT_XCODE5_IA32_CC_FLAGS   = -arch i386 -c -g -O0       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
 \r
 ##################\r
 # X64 definitions\r
@@ -7109,16 +7627,9 @@ RELEASE_XCODE5_X64_ASM_FLAGS  = -arch x86_64
 *_XCODE5_*_PP_FLAGS         = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h \r
 *_XCODE5_*_VFRPP_FLAGS      = -x c -E -P -DVFRCOMPILE -include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h \r
 \r
-\r
-  DEBUG_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c -g -Os       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
-  NOOPT_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c -g -O0       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
-RELEASE_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c    -Os       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)\r
-\r
-*_XCODE5_*_ASLCC_FLAGS      = -x c -save-temps -g -O0 -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h \r
-*_XCODE5_*_ASLDLINK_FLAGS   = -e _ReferenceAcpiTable -preload -segalign 0x20  -pie -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
-*_XCODE5_*_ASLPP_FLAGS      = -x c -E \r
-*_XCODE5_*_ASL_FLAGS        =\r
-*_XCODE5_*_ASL_OUTFLAGS     = DEF(IASL_OUTFLAGS)\r
+  DEBUG_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c -g -Os       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -D NO_MSABI_VA_FUNCS $(PLATFORM_FLAGS)\r
+  NOOPT_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c -g -O0       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -D NO_MSABI_VA_FUNCS $(PLATFORM_FLAGS)\r
+RELEASE_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c    -Os       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -Wno-unused-const-variable -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -D NO_MSABI_VA_FUNCS $(PLATFORM_FLAGS)\r
 \r
 ####################################################################################\r
 #\r
@@ -7127,8 +7638,8 @@ RELEASE_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c    -Os       -W
 ####################################################################################\r
 \r
 DEFINE RVCT_ALL_ASM_FLAGS   = --diag_suppress=1786 --diag_error=warning --apcs /interwork\r
-DEFINE RVCT_ALL_CC_FLAGS    = --c90 -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_suppress=186 --diag_warning 167 --diag_error=warning --diag_style=ide --protect_stack\r
-DEFINE RVCT_ALL_DLINK_FLAGS = --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --diag_style=ide --no_legacyalign\r
+DEFINE RVCT_ALL_CC_FLAGS    = --c90 --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_suppress=186,188,1,111,68 --diag_warning 167 --diag_error=warning --diag_style=ide --protect_stack\r
+DEFINE RVCT_ALL_DLINK_FLAGS = --no_scanlib --no_exceptions --datacompressor off --strict --symbols --diag_style=ide --no_legacyalign --scatter $(EDK_TOOLS_PATH)/Scripts/Rvct-Align32.sct\r
 \r
 ####################################################################################\r
 #\r
@@ -7322,6 +7833,12 @@ RELEASE_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_F
 *_*_*_RSA2048SHA256SIGN_PATH = Rsa2048Sha256Sign\r
 *_*_*_RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF\r
 \r
+##################\r
+# BrotliCompress tool definitions\r
+##################\r
+*_*_*_BROTLI_PATH        = BrotliCompress\r
+*_*_*_BROTLI_GUID        = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB\r
+\r
 ##################\r
 # LzmaCompress tool definitions\r
 ##################\r
@@ -7348,6 +7865,12 @@ RELEASE_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_F
 *_*_*_VPDTOOL_PATH         = BPDG\r
 *_*_*_VPDTOOL_GUID         = 8C3D856A-9BE6-468E-850A-24F7A8D38E08\r
 \r
+##################\r
+# Pkcs7Sign tool definitions\r
+##################\r
+*_*_*_PKCS7SIGN_PATH       = Pkcs7Sign\r
+*_*_*_PKCS7SIGN_GUID       = 4AAFD29D-68DF-49EE-8AA9-347D375665A7\r
+\r
 ##################\r
 # NASM tool definitions\r
 ##################\r
@@ -7358,4 +7881,4 @@ RELEASE_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_F
 #################\r
 # Build rule order\r
 #################\r
-*_*_*_*_BUILDRULEORDER = nasm asm Asm ASM S s\r
+*_*_*_*_BUILDRULEORDER = nasm asm Asm ASM S s nasmb asm16\r