From: Ard Biesheuvel Date: Tue, 27 Feb 2018 17:47:06 +0000 (+0000) Subject: BaseTools/tools_def: use separate PP definition for DTC X-Git-Tag: edk2-stable201903~2318 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=a68749f39a2e04ef68e5656b7b72fca25a2e23dc BaseTools/tools_def: use separate PP definition for DTC Clang's preprocessor behaves differently from GCC's, and produces intermediate device tree source that still contains #pragma pack() and other directives that the device tree compiler chokes on. For assembling device tree sources, it matters very little which preprocessor is being used, so let's just use GNU CPP explicitly. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ard Biesheuvel Reviewed-by: Leif Lindholm Reviewed-by: Liming Gao --- diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index 77ed282e03..92482341ab 100755 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -278,7 +278,7 @@ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.dtb - "$(PP)" $(DTCPP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i + "$(DTCPP)" $(DTCPP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i "$(DTC)" $(DTC_FLAGS) -I dts -O dtb -o ${dst} ${d_path}(+)${s_base}.i [Visual-Form-Representation-File] diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 427ad60b0e..a5463797c3 100755 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -237,6 +237,7 @@ DEFINE IPHONE_TOOLS = /Developer/Platforms/iPhoneOS.platform/Develope DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin +DEFINE DTCPP_BIN = ENV(DTCPP_PREFIX)cpp DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc #################################################################################### @@ -4499,6 +4500,8 @@ DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_N RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG = NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug *_*_*_DTC_FLAGS = -H epapr +*_*_*_DTCPP_PATH = DEF(DTCPP_BIN) +*_*_*_DTC_PATH = DEF(DTC_BIN) DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -include AutoGen.h -fno-common DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe @@ -4912,7 +4915,6 @@ RELEASE_GCC45_X64_CC_FLAGS = DEF(GCC45_X64_CC_FLAGS) -Os *_GCC46_*_MAKE_PATH = DEF(GCC46_IA32_PREFIX)make *_GCC46_*_*_DLL = ENV(GCC46_DLL) *_GCC46_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_GCC46_*_DTC_PATH = DEF(DTC_BIN) *_GCC46_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_GCC46_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) @@ -5023,7 +5025,6 @@ RELEASE_GCC46_ARM_CC_FLAGS = DEF(GCC46_ARM_CC_FLAGS) -Wno-unused-but-set-v *_GCC47_*_MAKE_PATH = DEF(GCC47_IA32_PREFIX)make *_GCC47_*_*_DLL = ENV(GCC47_DLL) *_GCC47_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_GCC47_*_DTC_PATH = DEF(DTC_BIN) *_GCC47_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_GCC47_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) @@ -5163,7 +5164,6 @@ RELEASE_GCC47_AARCH64_CC_FLAGS = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-s *_GCC48_*_MAKE_PATH = DEF(GCC48_IA32_PREFIX)make *_GCC48_*_*_DLL = ENV(GCC48_DLL) *_GCC48_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_GCC48_*_DTC_PATH = DEF(DTC_BIN) *_GCC48_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_GCC48_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) @@ -5303,7 +5303,6 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s *_GCC49_*_MAKE_PATH = DEF(GCC49_IA32_PREFIX)make *_GCC49_*_*_DLL = ENV(GCC49_DLL) *_GCC49_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_GCC49_*_DTC_PATH = DEF(DTC_BIN) *_GCC49_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_GCC49_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) @@ -5449,7 +5448,6 @@ RELEASE_GCC49_AARCH64_DLINK_FLAGS = DEF(GCC49_AARCH64_DLINK_FLAGS) *_GCC5_*_MAKE_PATH = DEF(GCC5_IA32_PREFIX)make *_GCC5_*_*_DLL = ENV(GCC5_DLL) *_GCC5_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_GCC5_*_DTC_PATH = DEF(DTC_BIN) *_GCC5_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_GCC5_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) @@ -5606,7 +5604,6 @@ RELEASE_GCC5_AARCH64_DLINK_FLAGS = DEF(GCC5_AARCH64_DLINK_FLAGS) -flto -Os -L$(W *_CLANG35_*_MAKE_PATH = make *_CLANG35_*_*_DLL = ENV(CLANG35_DLL) *_CLANG35_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_CLANG35_*_DTC_PATH = DEF(DTC_BIN) *_CLANG35_*_PP_FLAGS = DEF(GCC_PP_FLAGS) *_CLANG35_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) @@ -5684,7 +5681,6 @@ RELEASE_CLANG35_AARCH64_CC_FLAGS = DEF(CLANG35_AARCH64_CC_FLAGS) $(ARCHCC_FLAGS) *_CLANG38_*_MAKE_PATH = make *_CLANG38_*_*_DLL = ENV(CLANG38_DLL) *_CLANG38_*_ASL_PATH = DEF(UNIX_IASL_BIN) -*_CLANG38_*_DTC_PATH = DEF(DTC_BIN) *_CLANG38_*_APP_FLAGS = *_CLANG38_*_ASL_FLAGS = DEF(IASL_FLAGS)