Pete: 1. You add new build for ARM. I remember the reason is that --convert-hex can't be used by trim for ARM ASM file. Right? 2. On tools_def.txt. Why introduce /D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE option?
Thanks Liming > -----Original Message----- > From: Pete Batard [mailto:[email protected]] > Sent: Monday, December 4, 2017 9:12 PM > To: [email protected] > Cc: Gao, Liming <[email protected]> > Subject: [PATCH 6/6] BaseTools/Conf: Add VS2017/ARM support > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Pete Batard <[email protected]> > --- > BaseTools/Conf/build_rule.template | 30 ++++++++++++++++++++ > BaseTools/Conf/tools_def.template | 28 ++++++++++++++++++ > 2 files changed, 58 insertions(+) > > diff --git a/BaseTools/Conf/build_rule.template > b/BaseTools/Conf/build_rule.template > index 3e6aa8ff0f34..08c1df14af90 100755 > --- a/BaseTools/Conf/build_rule.template > +++ b/BaseTools/Conf/build_rule.template > @@ -207,6 +207,36 @@ > # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing > issues > "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii > > +[Assembly-Code-File.COMMON.ARM] > + # Remove --convert-hex for ARM as it breaks MSFT assemblers > + <InputFile.MSFT, InputFile.INTEL, InputFile.RVCT> > + ?.asm, ?.Asm, ?.ASM > + > + <InputFile.GCC, InputFile.GCCLD> > + ?.S, ?.s > + > + <ExtraDependency> > + $(MAKE_FILE) > + > + <OutputFile> > + $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj > + > + <Command.INTEL> > + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i > + Trim --source-code --convert-hex --trim-long -o > ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i > + "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) > ${d_path}(+)${s_base}.iii > + > + <Command.MSFT> > + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i > + Trim --source-code --trim-long -o ${d_path}(+)${s_base}.iii > ${d_path}(+)${s_base}.i > + "$(ASM)" /Fo${dst} $(ASM_FLAGS) /I${s_path} $(INC) > ${d_path}(+)${s_base}.iii > + > + <Command.GCC, Command.GCCLD, Command.RVCT> > + "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i > + Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii > ${d_path}(+)${s_base}.i > + # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing > issues > + "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii > + > [Nasm-Assembly-Code-File.COMMON.COMMON] > <InputFile> > ?.nasm > diff --git a/BaseTools/Conf/tools_def.template > b/BaseTools/Conf/tools_def.template > index 91b135c2e569..bea31f1660f2 100755 > --- a/BaseTools/Conf/tools_def.template > +++ b/BaseTools/Conf/tools_def.template > @@ -79,6 +79,7 @@ DEFINE VS2017_HOST = x86 > DEFINE VS2017_BIN_HOST = > DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\DEF(VS2017_HOST) > DEFINE VS2017_BIN_IA32 = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x86 > DEFINE VS2017_BIN_X64 = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\x64 > +DEFINE VS2017_BIN_ARM = DEF(VS2017_BIN)\HostDEF(VS2017_HOST)\arm > > DEFINE WINSDK_BIN = ENV(WINSDK_PREFIX) > DEFINE WINSDKx86_BIN = ENV(WINSDKx86_PREFIX) > @@ -4169,6 +4170,33 @@ NOOPT_VS2017_X64_NASM_FLAGS = -O0 -f win64 -g > 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 > 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 > > +################# > +# ARM definitions > +################# > +*_VS2017_ARM_CC_PATH = DEF(VS2017_BIN_ARM)\cl.exe > +*_VS2017_ARM_VFRPP_PATH = DEF(VS2017_BIN_ARM)\cl.exe > +*_VS2017_ARM_SLINK_PATH = DEF(VS2017_BIN_ARM)\lib.exe > +*_VS2017_ARM_DLINK_PATH = DEF(VS2017_BIN_ARM)\link.exe > +*_VS2017_ARM_APP_PATH = DEF(VS2017_BIN_ARM)\cl.exe > +*_VS2017_ARM_PP_PATH = DEF(VS2017_BIN_ARM)\cl.exe > +*_VS2017_ARM_ASM_PATH = DEF(VS2017_BIN_ARM)\armasm.exe > +*_VS2017_ARM_ASLCC_PATH = DEF(VS2017_BIN_ARM)\cl.exe > +*_VS2017_ARM_ASLPP_PATH = DEF(VS2017_BIN_ARM)\cl.exe > +*_VS2017_ARM_ASLDLINK_PATH = DEF(VS2017_BIN_ARM)\link.exe > + > + *_VS2017_ARM_MAKE_FLAGS = /nologo > + 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- /D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE > +RELEASE_VS2017_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D > UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- > /GF /Gw /Oi- /D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE > +NOOPT_VS2017_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D > UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi > /Gm /Od /Oi- /D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE > + > + DEBUG_VS2017_ARM_ASM_FLAGS = /nologo /g > +RELEASE_VS2017_ARM_ASM_FLAGS = /nologo > +NOOPT_VS2017_ARM_ASM_FLAGS = /nologo > + > + 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 > +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 > +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 > + > ################## > # EBC definitions > ################## > -- > 2.9.3.windows.2 _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

