* [Patch 0/2 V2] Update .nasm to support $(INC)-like support @ 2018-10-25 15:05 Yonghong Zhu 2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu 2018-10-25 15:05 ` [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu 0 siblings, 2 replies; 4+ messages in thread From: Yonghong Zhu @ 2018-10-25 15:05 UTC (permalink / raw) To: edk2-devel; +Cc: Liming Gao, Zhiju . Fan V2: 1. remove FileMacro variable 2. Make sure the NASM_INC file path have '\' in the end Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085 Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> zhijufan (2): BaseTools: Add $(INC)-like support when compiling .nasm files BaseTools: Update nasm file build rule to support $(INC) BaseTools/Conf/build_rule.template | 2 +- BaseTools/Source/Python/AutoGen/GenMake.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) -- 2.6.1.windows.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files 2018-10-25 15:05 [Patch 0/2 V2] Update .nasm to support $(INC)-like support Yonghong Zhu @ 2018-10-25 15:05 ` Yonghong Zhu 2018-10-25 15:33 ` Carsey, Jaben 2018-10-25 15:05 ` [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu 1 sibling, 1 reply; 4+ messages in thread From: Yonghong Zhu @ 2018-10-25 15:05 UTC (permalink / raw) To: edk2-devel; +Cc: zhijufan, Liming Gao From: zhijufan <zhijux.fan@intel.com> current edk2\BaseTools\Conf\build_rule.template, the compile of nasm source files does not have the $(INC) support. The '-I' option only includes the directory of the nasm source file (${s_path}(+)). Hence, it will be impossible for nasm files to include files outside of the nasm source file directory. As a comparison, the compile of both .s and .asm have $(INC) support in their compile commands. Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085 Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> --- BaseTools/Source/Python/AutoGen/GenMake.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index b4377ee..f754f03 100644 --- a/BaseTools/Source/Python/AutoGen/GenMake.py +++ b/BaseTools/Source/Python/AutoGen/GenMake.py @@ -165,11 +165,11 @@ class BuildFile(object): _INCLUDE_CMD_ = { "nmake" : '!INCLUDE', "gmake" : "include" } - _INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", "RVCT" : "-I"} + _INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", "RVCT" : "-I", "NASM" : "-I"} ## Constructor of BuildFile # # @param AutoGenObject Object of AutoGen class # @@ -594,10 +594,21 @@ cleanlib: "macro_name" : "INC", "source_file" : IncludePathList } ) FileMacroList.append(FileMacro) + for File in self.FileCache.keys(): + if not str(File).endswith('.nasm'): + continue + IncludePathList = [] + for P in MyAgo.IncludePathList: + IncludePath = self._INC_FLAG_['NASM'] + self.PlaceMacro(P, self.Macros) + if not P.endswith('\\'): + IncludePath += '\\' + IncludePathList.append(IncludePath) + FileMacroList.append(self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC", "source_file": IncludePathList})) + break # Generate macros used to represent files containing list of input files for ListFileMacro in self.ListFileMacros: ListFileName = os.path.join(MyAgo.OutputDir, "%s.lst" % ListFileMacro.lower()[:len(ListFileMacro) - 5]) FileMacroList.append("%s = %s" % (ListFileMacro, ListFileName)) -- 2.6.1.windows.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files 2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu @ 2018-10-25 15:33 ` Carsey, Jaben 0 siblings, 0 replies; 4+ messages in thread From: Carsey, Jaben @ 2018-10-25 15:33 UTC (permalink / raw) To: Zhu, Yonghong, edk2-devel@lists.01.org; +Cc: Gao, Liming Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Yonghong Zhu > Sent: Thursday, October 25, 2018 8:05 AM > To: edk2-devel@lists.01.org > Cc: Gao, Liming <liming.gao@intel.com> > Subject: [edk2] [Patch 1/2 V2] BaseTools: Add $(INC)-like support when > compiling .nasm files > > From: zhijufan <zhijux.fan@intel.com> > > current edk2\BaseTools\Conf\build_rule.template, the compile of nasm > source files does not have the $(INC) support. > > The '-I' option only includes the directory of the nasm source file > (${s_path}(+)). Hence, it will be impossible for nasm files to include > files outside of the nasm source file directory. > > As a comparison, the compile of both .s and .asm have $(INC) support > in their compile commands. > > Fixes: https://bugzilla.tianocore.org/show_bug.cgi?id=1085 > Cc: Liming Gao <liming.gao@intel.com> > Cc: Yonghong Zhu <yonghong.zhu@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> > --- > BaseTools/Source/Python/AutoGen/GenMake.py | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py > b/BaseTools/Source/Python/AutoGen/GenMake.py > index b4377ee..f754f03 100644 > --- a/BaseTools/Source/Python/AutoGen/GenMake.py > +++ b/BaseTools/Source/Python/AutoGen/GenMake.py > @@ -165,11 +165,11 @@ class BuildFile(object): > _INCLUDE_CMD_ = { > "nmake" : '!INCLUDE', > "gmake" : "include" > } > > - _INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", > "RVCT" : "-I"} > + _INC_FLAG_ = {TAB_COMPILER_MSFT : "/I", "GCC" : "-I", "INTEL" : "-I", > "RVCT" : "-I", "NASM" : "-I"} > > ## Constructor of BuildFile > # > # @param AutoGenObject Object of AutoGen class > # > @@ -594,10 +594,21 @@ cleanlib: > "macro_name" : "INC", > "source_file" : IncludePathList > } > ) > FileMacroList.append(FileMacro) > + for File in self.FileCache.keys(): > + if not str(File).endswith('.nasm'): > + continue > + IncludePathList = [] > + for P in MyAgo.IncludePathList: > + IncludePath = self._INC_FLAG_['NASM'] + self.PlaceMacro(P, > self.Macros) > + if not P.endswith('\\'): > + IncludePath += '\\' > + IncludePathList.append(IncludePath) > + > FileMacroList.append(self._FILE_MACRO_TEMPLATE.Replace({"macro_nam > e": "NASM_INC", "source_file": IncludePathList})) > + break > > # Generate macros used to represent files containing list of input files > for ListFileMacro in self.ListFileMacros: > ListFileName = os.path.join(MyAgo.OutputDir, "%s.lst" % > ListFileMacro.lower()[:len(ListFileMacro) - 5]) > FileMacroList.append("%s = %s" % (ListFileMacro, ListFileName)) > -- > 2.6.1.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC) 2018-10-25 15:05 [Patch 0/2 V2] Update .nasm to support $(INC)-like support Yonghong Zhu 2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu @ 2018-10-25 15:05 ` Yonghong Zhu 1 sibling, 0 replies; 4+ messages in thread From: Yonghong Zhu @ 2018-10-25 15:05 UTC (permalink / raw) To: edk2-devel; +Cc: zhijufan, Liming Gao From: zhijufan <zhijux.fan@intel.com> Update the build rule to: "$(NASM)" -I${s_path}(+) $(NASM_INC)(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com> --- BaseTools/Conf/build_rule.template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BaseTools/Conf/build_rule.template b/BaseTools/Conf/build_rule.template index ed54a55..8ac46c5 100755 --- a/BaseTools/Conf/build_rule.template +++ b/BaseTools/Conf/build_rule.template @@ -223,11 +223,11 @@ $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj <Command> "$(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 - "$(NASM)" -I${s_path}(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii + "$(NASM)" -I${s_path}(+) $(NASM_INC)(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii [Device-Tree-Source-File] <InputFile> ?.dts -- 2.6.1.windows.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-10-25 15:33 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-10-25 15:05 [Patch 0/2 V2] Update .nasm to support $(INC)-like support Yonghong Zhu 2018-10-25 15:05 ` [Patch 1/2 V2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu 2018-10-25 15:33 ` Carsey, Jaben 2018-10-25 15:05 ` [Patch 2/2 V2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox