#\r
-# Copyright (c) 2006 - 2017, 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
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
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_IASL_BIN = ENV(IASL_PREFIX)iasl.exe\r
\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
# Intel(r) ACPI Compiler (iasl.exe) from\r
# https://acpica.org/downloads\r
# VS2017 -win32- Requires:\r
-# Microsoft Visual Studio 2017 version 15.2 or later\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
# 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\r
-# Clang v3.9 or later, LLVMgold plugin and GNU binutils 2.28 targeting x86_64-linux-gnu\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
*_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\r
-RELEASE_VS2017_IA32_CC_FLAGS = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF\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
*_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\r
-RELEASE_VS2017_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF\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_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /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 /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
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-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_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency\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-pic -fno-pie -ffixed-x18\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 = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds\r
####################################################################################\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
####################################################################################\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
####################################################################################\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
-*_GCC46_*_DTC_PATH = DEF(DTC_BIN)\r
\r
*_GCC46_*_PP_FLAGS = DEF(GCC_PP_FLAGS)\r
*_GCC46_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)\r
####################################################################################\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
-*_GCC47_*_DTC_PATH = DEF(DTC_BIN)\r
\r
*_GCC47_*_PP_FLAGS = DEF(GCC_PP_FLAGS)\r
*_GCC47_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)\r
####################################################################################\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
-*_GCC48_*_DTC_PATH = DEF(DTC_BIN)\r
\r
*_GCC48_*_PP_FLAGS = DEF(GCC_PP_FLAGS)\r
*_GCC48_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)\r
####################################################################################\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
-*_GCC49_*_DTC_PATH = DEF(DTC_BIN)\r
\r
*_GCC49_*_PP_FLAGS = DEF(GCC_PP_FLAGS)\r
*_GCC49_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)\r
####################################################################################\r
*_GCC5_*_*_FAMILY = GCC\r
\r
-*_GCC5_*_MAKE_PATH = DEF(GCC5_IA32_PREFIX)make\r
+*_GCC5_*_MAKE_PATH = DEF(GCC_HOST_PREFIX)make\r
*_GCC5_*_*_DLL = ENV(GCC5_DLL)\r
*_GCC5_*_ASL_PATH = DEF(UNIX_IASL_BIN)\r
-*_GCC5_*_DTC_PATH = DEF(DTC_BIN)\r
\r
*_GCC5_*_PP_FLAGS = DEF(GCC_PP_FLAGS)\r
*_GCC5_*_ASLPP_FLAGS = DEF(GCC_ASLPP_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) -O0\r
- DEBUG_GCC5_ARM_DLINK_FLAGS = DEF(GCC5_ARM_DLINK_FLAGS)\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
*_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) -O0 -mcmodel=small\r
- DEBUG_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -z common-page-size=0x1000\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
*_CLANG35_*_MAKE_PATH = make\r
*_CLANG35_*_*_DLL = ENV(CLANG35_DLL)\r
*_CLANG35_*_ASL_PATH = DEF(UNIX_IASL_BIN)\r
-*_CLANG35_*_DTC_PATH = DEF(DTC_BIN)\r
\r
*_CLANG35_*_PP_FLAGS = DEF(GCC_PP_FLAGS)\r
*_CLANG35_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)\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\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 CLANG38_IA32_TARGET = -target i686-pc-linux-gnu\r
DEFINE CLANG38_X64_TARGET = -target x86_64-pc-linux-gnu\r
\r
-DEFINE CLANG38_ALL_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -Wno-empty-body -fno-stack-protector -mms-bitfields -Wno-address -Wno-shift-negative-value -Wno-parentheses-equality -Wno-unknown-pragmas -Wno-tautological-constant-out-of-range-compare -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 -Wno-tautological-compare -Wno-unknown-warning-option -Wno-varargs\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
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
# Cygwin GCC And Intel ACPI Compiler\r
\r
*_XCODE5_*_*_FAMILY = GCC\r
*_XCODE5_*_*_BUILDRULEFAMILY = XCODE\r
-*_XCODE5_*_*_BUILDRULEORDER = S s nasm\r
\r
#\r
# use xcode-select to change Xcode version of command line tools\r
*_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
+ 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
*_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
- 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 -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 -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 -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang -D NO_MSABI_VA_FUNCS $(PLATFORM_FLAGS)\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