\r
DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin\r
\r
+DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc\r
+\r
####################################################################################\r
#\r
# format: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE = <string>\r
# Intel(r) ACPI Compiler from\r
# https://acpica.org/downloads\r
# CLANG38 -Linux- Requires:\r
-# Clang v3.8 or later, LLVMgold plugin and GNU binutils 2.26 targeting x86_64-linux-gnu\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
# Optional:\r
# Required to build platforms or ACPI tables:\r
# Intel(r) ACPI Compiler from\r
# 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
*_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
*_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
*_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
*_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
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\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 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\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 GCC49_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS)\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\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) -Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie\r
DEFINE GCC49_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS)\r
*_GCC46_*_MAKE_PATH = DEF(GCC46_IA32_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
*_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
*_GCC47_*_MAKE_PATH = DEF(GCC47_IA32_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
*_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_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
*_GCC48_*_MAKE_PATH = DEF(GCC48_IA32_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
*_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_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
*_GCC49_*_MAKE_PATH = DEF(GCC49_IA32_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
*_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_AARCH64_ASLDLINK_FLAGS = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)\r
*_GCC49_AARCH64_ASM_FLAGS = DEF(GCC49_AARCH64_ASM_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
*_GCC5_*_MAKE_PATH = DEF(GCC5_IA32_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_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_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
*_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
*_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
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\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
\r
###########################\r
# CLANG38 IA32 definitions\r