* [Patch 0/2] Update .nasm to support $(INC)-like support @ 2018-10-25 7:37 Yonghong Zhu 2018-10-25 7:37 ` [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu 2018-10-25 7:37 ` [Patch 2/2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu 0 siblings, 2 replies; 5+ messages in thread From: Yonghong Zhu @ 2018-10-25 7:37 UTC (permalink / raw) To: edk2-devel; +Cc: Liming Gao, Zhiju . Fan 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] 5+ messages in thread
* [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files 2018-10-25 7:37 [Patch 0/2] Update .nasm to support $(INC)-like support Yonghong Zhu @ 2018-10-25 7:37 ` Yonghong Zhu 2018-10-25 14:20 ` Carsey, Jaben 2018-10-25 7:37 ` [Patch 2/2] BaseTools: Update nasm file build rule to support $(INC) Yonghong Zhu 1 sibling, 1 reply; 5+ messages in thread From: Yonghong Zhu @ 2018-10-25 7:37 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 | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py index d94d8f9..8860d50 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,22 @@ cleanlib: "macro_name" : "INC", "source_file" : IncludePathList } ) FileMacroList.append(FileMacro) + for File in self.FileCache.keys(): + if not str(File).endswith('.nasm'): + continue + FileMacro = "" + IncludePathList = [] + for P in MyAgo.IncludePathList: + IncludePathList.append(self._INC_FLAG_['NASM'] + self.PlaceMacro(P, self.Macros)) + if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros: + self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(self._INC_FLAG_['NASM'] + P) + FileMacro += self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC", "source_file": IncludePathList}) + FileMacroList.append(FileMacro) + 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] 5+ messages in thread
* Re: [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files 2018-10-25 7:37 ` [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu @ 2018-10-25 14:20 ` Carsey, Jaben 2018-10-25 14:27 ` Zhu, Yonghong 0 siblings, 1 reply; 5+ messages in thread From: Carsey, Jaben @ 2018-10-25 14:20 UTC (permalink / raw) To: Zhu, Yonghong, edk2-devel@lists.01.org; +Cc: Gao, Liming > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Yonghong Zhu > Sent: Thursday, October 25, 2018 12:38 AM > To: edk2-devel@lists.01.org > Cc: Gao, Liming <liming.gao@intel.com> > Subject: [edk2] [Patch 1/2] 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 | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py > b/BaseTools/Source/Python/AutoGen/GenMake.py > index d94d8f9..8860d50 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,22 @@ cleanlib: > "macro_name" : "INC", > "source_file" : IncludePathList > } > ) > FileMacroList.append(FileMacro) > + for File in self.FileCache.keys(): > + if not str(File).endswith('.nasm'): > + continue > + FileMacro = "" > + IncludePathList = [] > + for P in MyAgo.IncludePathList: > + IncludePathList.append(self._INC_FLAG_['NASM'] + > self.PlaceMacro(P, self.Macros)) > + if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros: > + > self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(self._INC_FLAG > _['NASM'] + P) > + FileMacro += > self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC", > "source_file": IncludePathList}) Why do we use += on FileMacro here? Seems like = will be fine. We can also skip initializing the FileMacro since it's only ever assigned here. > + FileMacroList.append(FileMacro) > + 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] 5+ messages in thread
* Re: [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files 2018-10-25 14:20 ` Carsey, Jaben @ 2018-10-25 14:27 ` Zhu, Yonghong 0 siblings, 0 replies; 5+ messages in thread From: Zhu, Yonghong @ 2018-10-25 14:27 UTC (permalink / raw) To: Carsey, Jaben, edk2-devel@lists.01.org; +Cc: Gao, Liming, Zhu, Yonghong Yes, I agree. I will help to update a V2. Best Regards, Zhu Yonghong -----Original Message----- From: Carsey, Jaben Sent: Thursday, October 25, 2018 10:20 PM To: Zhu, Yonghong <yonghong.zhu@intel.com>; edk2-devel@lists.01.org Cc: Gao, Liming <liming.gao@intel.com> Subject: RE: [edk2] [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Yonghong Zhu > Sent: Thursday, October 25, 2018 12:38 AM > To: edk2-devel@lists.01.org > Cc: Gao, Liming <liming.gao@intel.com> > Subject: [edk2] [Patch 1/2] 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 | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py > b/BaseTools/Source/Python/AutoGen/GenMake.py > index d94d8f9..8860d50 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,22 @@ cleanlib: > "macro_name" : "INC", > "source_file" : IncludePathList > } > ) > FileMacroList.append(FileMacro) > + for File in self.FileCache.keys(): > + if not str(File).endswith('.nasm'): > + continue > + FileMacro = "" > + IncludePathList = [] > + for P in MyAgo.IncludePathList: > + IncludePathList.append(self._INC_FLAG_['NASM'] + > self.PlaceMacro(P, self.Macros)) > + if FileBuildRule.INC_LIST_MACRO in self.ListFileMacros: > + > self.ListFileMacros[FileBuildRule.INC_LIST_MACRO].append(self._INC_FLA > G > _['NASM'] + P) > + FileMacro += > self._FILE_MACRO_TEMPLATE.Replace({"macro_name": "NASM_INC", > "source_file": IncludePathList}) Why do we use += on FileMacro here? Seems like = will be fine. We can also skip initializing the FileMacro since it's only ever assigned here. > + FileMacroList.append(FileMacro) > + 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] 5+ messages in thread
* [Patch 2/2] BaseTools: Update nasm file build rule to support $(INC) 2018-10-25 7:37 [Patch 0/2] Update .nasm to support $(INC)-like support Yonghong Zhu 2018-10-25 7:37 ` [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu @ 2018-10-25 7:37 ` Yonghong Zhu 1 sibling, 0 replies; 5+ messages in thread From: Yonghong Zhu @ 2018-10-25 7:37 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..7c4b9e6 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] 5+ messages in thread
end of thread, other threads:[~2018-10-25 14:27 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-10-25 7:37 [Patch 0/2] Update .nasm to support $(INC)-like support Yonghong Zhu 2018-10-25 7:37 ` [Patch 1/2] BaseTools: Add $(INC)-like support when compiling .nasm files Yonghong Zhu 2018-10-25 14:20 ` Carsey, Jaben 2018-10-25 14:27 ` Zhu, Yonghong 2018-10-25 7:37 ` [Patch 2/2] 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