]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Conf/tools_def.template
Sync BaseTool trunk (version r2649) into EDKII BaseTools.
[mirror_edk2.git] / BaseTools / Conf / tools_def.template
index 06e7d6596a95651a9be6e7a046944730b8159e80..a68218deac441720af392d1c8756e59569513108 100644 (file)
@@ -159,6 +159,9 @@ DEFINE GCC46_X64_PREFIX        = /usr/bin/
 DEFINE GCC47_IA32_PREFIX       = /usr/bin/\r
 DEFINE GCC47_X64_PREFIX        = /usr/bin/\r
 \r
+DEFINE GCC48_IA32_PREFIX       = /usr/bin/\r
+DEFINE GCC48_X64_PREFIX        = /usr/bin/\r
+\r
 DEFINE UNIX_IASL_BIN           = /usr/bin/iasl\r
 #DEFINE UNIX_IASL_BIN           = $(HOME)/programs/iasl\r
 DEFINE WIN_ASL_BIN_DIR         = C:\ASL\r
@@ -189,11 +192,6 @@ DEFINE IPHONE_TOOLS            = /Developer/Platforms/iPhoneOS.platform/Develope
 \r
 DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin\r
 \r
-#\r
-# Change to the location clang was built\r
-#\r
-DEFINE CLANG_BIN = /usr/bin/\r
-\r
 ####################################################################################\r
 #\r
 # format: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE = <string>\r
@@ -304,6 +302,12 @@ DEFINE CLANG_BIN = /usr/bin/
 #                             Required to build platforms or ACPI tables:\r
 #                               Intel(r) ACPI Compiler v20101013 from\r
 #                               http://www.acpica.org/downloads/previous_releases.php\r
+#   GCC48       -Linux-  Requires:\r
+#                             GCC 4.8\r
+#                        Optional:\r
+#                             Required to build platforms or ACPI tables:\r
+#                               Intel(r) ACPI Compiler v20101013 from\r
+#                               http://www.acpica.org/downloads/previous_releases.php\r
 #   ELFGCC      -Linux-  Requires:\r
 #                             GCC(this tool chain uses whatever version of gcc and binutils that is installed in /usr/bin)\r
 #                        Optional:\r
@@ -3127,12 +3131,13 @@ DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-strict-aliasing -
 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\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) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char  -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address\r
 DEFINE GCC_DLINK_FLAGS_COMMON      = -nostdlib --pie\r
 DEFINE GCC_IA32_X64_DLINK_COMMON   = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections\r
-DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Ttext=0x0 --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Ttext=0x0 --emit-relocs -nostdlib --gc-sections -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
 DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\r
+DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)\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
@@ -3174,8 +3179,9 @@ DEFINE GCC46_IA32_X64_DLINK_FLAGS    = DEF(GCC45_IA32_X64_DLINK_FLAGS)
 DEFINE GCC46_X64_DLINK_FLAGS         = DEF(GCC45_X64_DLINK_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) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -mno-unaligned-access -Wno-address -fomit-frame-pointer\r
+DEFINE GCC46_ARM_CC_FLAGS            = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_ARM_CC_FLAGS) -mno-unaligned-access\r
 DEFINE GCC46_ARM_DLINK_FLAGS         = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm\r
+DEFINE GCC46_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) --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
@@ -3187,9 +3193,27 @@ DEFINE GCC47_ASM_FLAGS               = DEF(GCC46_ASM_FLAGS)
 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)\r
-DEFINE GCC47_AARCH64_CC_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address\r
+DEFINE GCC47_AARCH64_CC_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_AARCH64_CC_FLAGS)\r
 DEFINE GCC47_ARM_DLINK_FLAGS         = DEF(GCC46_ARM_DLINK_FLAGS)\r
 DEFINE GCC47_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON)\r
+DEFINE GCC47_ARM_ASLDLINK_FLAGS      = DEF(GCC46_ARM_ASLDLINK_FLAGS)\r
+DEFINE GCC47_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)\r
+\r
+DEFINE GCC48_IA32_CC_FLAGS           = DEF(GCC47_IA32_CC_FLAGS)\r
+DEFINE GCC48_X64_CC_FLAGS            = DEF(GCC47_X64_CC_FLAGS)\r
+DEFINE GCC48_IA32_X64_DLINK_COMMON   = DEF(GCC47_IA32_X64_DLINK_COMMON)\r
+DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS)\r
+DEFINE GCC48_IA32_X64_DLINK_FLAGS    = DEF(GCC47_IA32_X64_DLINK_FLAGS)\r
+DEFINE GCC48_X64_DLINK_FLAGS         = DEF(GCC47_X64_DLINK_FLAGS)\r
+DEFINE GCC48_ASM_FLAGS               = DEF(GCC47_ASM_FLAGS)\r
+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_AARCH64_CC_FLAGS        = DEF(GCC47_AARCH64_CC_FLAGS)\r
+DEFINE GCC48_ARM_DLINK_FLAGS         = DEF(GCC47_ARM_DLINK_FLAGS)\r
+DEFINE GCC48_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON)\r
+DEFINE GCC48_ARM_ASLDLINK_FLAGS      = DEF(GCC47_ARM_ASLDLINK_FLAGS)\r
+DEFINE GCC48_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)\r
 \r
 ####################################################################################\r
 #\r
@@ -3292,7 +3316,7 @@ DEFINE GCC47_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
 *_GCC44_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)\r
 *_GCC44_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)\r
 *_GCC44_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)\r
-*_GCC44_*_APP_FLAGS                    =\r
+*_GCC44_*_APP_FLAGS                    = DEF(GCC_PP_FLAGS)\r
 *_GCC44_*_ASL_FLAGS                    = DEF(IASL_FLAGS)\r
 *_GCC44_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)\r
 \r
@@ -3487,9 +3511,11 @@ DEFINE GCC47_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
 *_GCC46_ARM_ASLPP_PATH           = ENV(GCC46_ARM_PREFIX)gcc\r
 *_GCC46_ARM_RC_PATH              = ENV(GCC46_ARM_PREFIX)objcopy\r
 \r
-*_GCC46_ARM_ARCHCC_FLAGS         = -mthumb\r
+*_GCC46_ARM_ARCHCC_FLAGS         =\r
 *_GCC46_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
 \r
+*_GCC46_ARM_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC46_ARM_ASLDLINK_FLAGS       = DEF(GCC46_ARM_ASLDLINK_FLAGS)\r
 *_GCC46_ARM_ASM_FLAGS            = DEF(GCC46_ARM_ASM_FLAGS)\r
 *_GCC46_ARM_DLINK_FLAGS          = DEF(GCC46_ARM_DLINK_FLAGS)\r
 *_GCC46_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
@@ -3579,9 +3605,11 @@ RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -Wno-unused-but-set-v
 *_GCC47_ARM_ASLPP_PATH           = ENV(GCC47_ARM_PREFIX)gcc\r
 *_GCC47_ARM_RC_PATH              = ENV(GCC47_ARM_PREFIX)objcopy\r
 \r
-*_GCC46_ARM_ARCHCC_FLAGS         = -mthumb\r
-*_GCC46_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
+*_GCC47_ARM_ARCHCC_FLAGS         =\r
+*_GCC47_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
 \r
+*_GCC47_ARM_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC47_ARM_ASLDLINK_FLAGS       = DEF(GCC47_ARM_ASLDLINK_FLAGS)\r
 *_GCC47_ARM_ASM_FLAGS            = DEF(GCC47_ARM_ASM_FLAGS)\r
 *_GCC47_ARM_DLINK_FLAGS          = DEF(GCC47_ARM_DLINK_FLAGS)\r
 *_GCC47_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
@@ -3606,6 +3634,8 @@ RELEASE_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-v
 *_GCC47_AARCH64_ASLPP_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc\r
 *_GCC47_AARCH64_RC_PATH          = ENV(GCC47_AARCH64_PREFIX)objcopy\r
 \r
+*_GCC47_AARCH64_ASLCC_FLAGS      = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC47_AARCH64_ASLDLINK_FLAGS   = DEF(GCC47_AARCH64_ASLDLINK_FLAGS)\r
 *_GCC47_AARCH64_ASM_FLAGS        = DEF(GCC47_AARCH64_ASM_FLAGS)\r
 *_GCC47_AARCH64_DLINK_FLAGS      = DEF(GCC47_AARCH64_DLINK_FLAGS)\r
 *_GCC47_AARCH64_PLATFORM_FLAGS   =\r
@@ -3616,6 +3646,126 @@ RELEASE_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-v
   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
 \r
+####################################################################################\r
+#\r
+# GCC 4.8 - This configuration is used to compile under Linux to produce\r
+#           PE/COFF binaries using GCC 4.8.\r
+#\r
+####################################################################################\r
+*_GCC48_*_*_FAMILY               = GCC\r
+\r
+*_GCC48_*_MAKE_PATH                    = make\r
+*_GCC48_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)\r
+\r
+*_GCC48_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)\r
+*_GCC48_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)\r
+*_GCC48_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC48_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)\r
+*_GCC48_*_APP_FLAGS                    =\r
+*_GCC48_*_ASL_FLAGS                    = DEF(IASL_FLAGS)\r
+*_GCC48_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)\r
+\r
+##################\r
+# GCC48 IA32 definitions\r
+##################\r
+*_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_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
+*_GCC48_IA32_ASLCC_PATH           = DEF(GCC48_IA32_PREFIX)gcc\r
+*_GCC48_IA32_ASLPP_PATH           = DEF(GCC48_IA32_PREFIX)gcc\r
+*_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) -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_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)\r
+*_GCC48_IA32_OBJCOPY_FLAGS        = \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_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
+*_GCC48_X64_ASLCC_PATH           = DEF(GCC48_X64_PREFIX)gcc\r
+*_GCC48_X64_ASLPP_PATH           = DEF(GCC48_X64_PREFIX)gcc\r
+*_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) -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_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)\r
+*_GCC48_X64_OBJCOPY_FLAGS        = \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_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
+*_GCC48_ARM_ASLCC_PATH           = ENV(GCC48_ARM_PREFIX)gcc\r
+*_GCC48_ARM_ASLPP_PATH           = ENV(GCC48_ARM_PREFIX)gcc\r
+*_GCC48_ARM_RC_PATH              = ENV(GCC48_ARM_PREFIX)objcopy\r
+\r
+*_GCC48_ARM_ARCHCC_FLAGS         = -mthumb\r
+*_GCC48_ARM_PLATFORM_FLAGS       = -march=armv7-a\r
+\r
+*_GCC48_ARM_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC48_ARM_ASLDLINK_FLAGS       = DEF(GCC48_ARM_ASLDLINK_FLAGS)\r
+*_GCC48_ARM_ASM_FLAGS            = DEF(GCC48_ARM_ASM_FLAGS)\r
+*_GCC48_ARM_DLINK_FLAGS          = DEF(GCC48_ARM_DLINK_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
+\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
+\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_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
+*_GCC48_AARCH64_ASLCC_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc\r
+*_GCC48_AARCH64_ASLPP_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc\r
+*_GCC48_AARCH64_RC_PATH          = ENV(GCC48_AARCH64_PREFIX)objcopy\r
+\r
+*_GCC48_AARCH64_ASLCC_FLAGS      = DEF(GCC_ASLCC_FLAGS)\r
+*_GCC48_AARCH64_ASLDLINK_FLAGS   = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)\r
+*_GCC48_AARCH64_ASM_FLAGS        = DEF(GCC48_AARCH64_ASM_FLAGS)\r
+*_GCC48_AARCH64_DLINK_FLAGS      = DEF(GCC48_AARCH64_DLINK_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
+\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
+\r
 ####################################################################################\r
 #\r
 # Cygwin GCC And Intel ACPI Compiler\r
@@ -5329,15 +5479,15 @@ RELEASE_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-inter
 RELEASE_XCLANG_*_MTOC_FLAGS = -align 0x20\r
 \r
 \r
-*_XCLANG_*_CC_PATH      = DEF(CLANG_BIN)clang\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      = DEF(CLANG_BIN)clang\r
-*_XCLANG_*_VFRPP_PATH   = DEF(CLANG_BIN)clang\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   = DEF(CLANG_BIN)clang\r
-*_XCLANG_*_ASLPP_PATH   = DEF(CLANG_BIN)clang\r
+*_XCLANG_*_ASLCC_PATH   = ENV(CLANG_BIN)clang\r
+*_XCLANG_*_ASLPP_PATH   = ENV(CLANG_BIN)clang\r
 *_XCLANG_*_ASLDLINK_PATH  = ld\r
 \r
 ####################\r
@@ -5395,7 +5545,7 @@ DEFINE RVCT_ALL_DLINK_FLAGS   = --ro-base 0 --no_scanlib --reloc --no_exceptions
 #\r
 # Use default values, or override in DSC file\r
 #\r
-*_RVCT_ARM_ARCHCC_FLAGS    = --thumb\r
+*_RVCT_ARM_ARCHCC_FLAGS    = --thumb --fpu=softvfp\r
 *_RVCT_ARM_ARCHASM_FLAGS   = \r
 *_RVCT_ARM_ARCHDLINK_FLAGS = \r
 *_RVCT_ARM_PLATFORM_FLAGS  = --cpu 7-A\r
@@ -5437,7 +5587,7 @@ RELEASE_RVCT_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppress=5
 #\r
 # Use default values, or override in DSC file\r
 #\r
-*_RVCTLINUX_ARM_ARCHCC_FLAGS    = --thumb\r
+*_RVCTLINUX_ARM_ARCHCC_FLAGS    = --thumb --fpu=softvfp\r
 *_RVCTLINUX_ARM_ARCHASM_FLAGS   = \r
 *_RVCTLINUX_ARM_ARCHDLINK_FLAGS = \r
 *_RVCTLINUX_ARM_PLATFORM_FLAGS  = --cpu 7-A\r
@@ -5484,7 +5634,7 @@ RELEASE_RVCTLINUX_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppr
 #\r
 # Use default values, or override in DSC file\r
 #\r
-*_RVCTCYGWIN_ARM_ARCHCC_FLAGS    = --thumb\r
+*_RVCTCYGWIN_ARM_ARCHCC_FLAGS    = --thumb --fpu=softvfp\r
 *_RVCTCYGWIN_ARM_ARCHASM_FLAGS   =\r
 *_RVCTCYGWIN_ARM_ARCHDLINK_FLAGS = \r
 *_RVCTCYGWIN_ARM_PLATFORM_FLAGS  = --cpu 7-A\r
@@ -5532,7 +5682,7 @@ RELEASE_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_F
 *_ARMGCC_*_ASL_OUTFLAGS      = DEF(IASL_OUTFLAGS)\r
 *_ARMGCC_*_ASLPP_FLAGS       = -x c -E -P\r
 *_ARMGCC_*_ASLCC_FLAGS       = -x c\r
-*_ARMGCC_*_ASLDLINK_FLAGS    = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable\r
+*_ARMGCC_*_ASLDLINK_FLAGS    = DEF(GCC_DLINK_FLAGS_COMMON) --entry ReferenceAcpiTable\r
 \r
 ##################\r
 # ARM definitions\r
@@ -5552,7 +5702,7 @@ RELEASE_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_F
 #\r
 # Use default values, or override in DSC file\r
 #\r
-*_ARMGCC_ARM_ARCHCC_FLAGS    = -mthumb\r
+*_ARMGCC_ARM_ARCHCC_FLAGS    =\r
 *_ARMGCC_ARM_ARCHASM_FLAGS   =\r
 *_ARMGCC_ARM_ARCHDLINK_FLAGS =\r
 *_ARMGCC_ARM_PLATFORM_FLAGS  = -march=armv7-a\r
@@ -5564,7 +5714,7 @@ RELEASE_ARMGCC_ARM_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittle-end
 *_ARMGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
 \r
 *_ARMGCC_ARM_SLINK_FLAGS =  -rc\r
-*_ARMGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+*_ARMGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm\r
 \r
   DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -O0\r
 RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -Wno-unused\r
@@ -5600,7 +5750,7 @@ RELEASE_ARMGCC_AARCH64_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS)
 *_ARMGCC_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
 \r
 *_ARMGCC_AARCH64_SLINK_FLAGS =  -rc\r
-*_ARMGCC_AARCH64_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+*_ARMGCC_AARCH64_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON)\r
 \r
   DEBUG_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -O0\r
 RELEASE_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable\r
@@ -5626,7 +5776,7 @@ RELEASE_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARC
 *_ARMLINUXGCC_*_ASL_OUTFLAGS       = DEF(IASL_OUTFLAGS)\r
 *_ARMLINUXGCC_*_ASLPP_FLAGS        = -x c -E -P\r
 *_ARMLINUXGCC_*_ASLCC_FLAGS        = -x c\r
-*_ARMLINUXGCC_*_ASLDLINK_FLAGS     = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable\r
+*_ARMLINUXGCC_*_ASLDLINK_FLAGS     = DEF(GCC_DLINK_FLAGS_COMMON) --entry ReferenceAcpiTable\r
 \r
 ##################\r
 # ARM definitions\r
@@ -5646,7 +5796,7 @@ RELEASE_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARC
 #\r
 # Use default values, or override in DSC file\r
 #\r
-*_ARMLINUXGCC_ARM_ARCHCC_FLAGS    = -mthumb\r
+*_ARMLINUXGCC_ARM_ARCHCC_FLAGS    =\r
 *_ARMLINUXGCC_ARM_ARCHASM_FLAGS   = \r
 *_ARMLINUXGCC_ARM_ARCHDLINK_FLAGS =\r
 *_ARMLINUXGCC_ARM_PLATFORM_FLAGS  = -march=armv7-a\r
@@ -5658,7 +5808,7 @@ RELEASE_ARMLINUXGCC_ARM_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -mlittl
 *_ARMLINUXGCC_ARM_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
 \r
 *_ARMLINUXGCC_ARM_SLINK_FLAGS =  -rc\r
-*_ARMLINUXGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+*_ARMLINUXGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm\r
 \r
   DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fno-stack-protector -mno-unaligned-access -O0\r
 RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fno-stack-protector  -mno-unaligned-access -Wno-unused-but-set-variable\r
@@ -5694,7 +5844,7 @@ RELEASE_ARMLINUXGCC_AARCH64_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS)
 *_ARMLINUXGCC_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h\r
 \r
 *_ARMLINUXGCC_AARCH64_SLINK_FLAGS =  -rc\r
-*_ARMLINUXGCC_AARCH64_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map\r
+*_ARMLINUXGCC_AARCH64_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON)\r
 \r
   DEBUG_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -O0\r
 RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable\r