Reviewed-by: Chasel Chiu <chasel.c...@intel.com>
> -----Original Message----- > From: Tan, Ming <ming....@intel.com> > Sent: Sunday, June 28, 2020 2:54 PM > To: devel@edk2.groups.io > Cc: Chiu, Chasel <chasel.c...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com>; Zeng, Star <star.z...@intel.com> > Subject: [PATCH 1/1] IntelFsp2Pkg/Tools/GenCfgOpt.py: Fix a bug about parse > macro > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2827 > > Fix a bug about parse the macro value which use another macro. > > Use the following example to verify: > [Define] > DEFINE M1 = V1 > DEFINE M2 = $(M1)/V2 > > !include $(M2)/pcd.dsc > > The old code will failed parse M2 and cause following error: > Traceback (most recent call last): > File "Edk2\IntelFsp2Pkg\Tools\GenCfgOpt.py", line 1550, in <module> > sys.exit(Main()) > File "Edk2\IntelFsp2Pkg\Tools\GenCfgOpt.py", line 1513, in Main > if GenCfgOpt.ParseDscFile(DscFile, FvDir) != 0: > File "Edk2\IntelFsp2Pkg\Tools\GenCfgOpt.py", line 533, in ParseDscFile > NewDscLines = IncludeDsc.readlines() > ValueError: I/O operation on closed file. > > The tool should support the value use another macro, and expand it. > > Cc: Chasel Chiu <chasel.c...@intel.com> > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Star Zeng <star.z...@intel.com> > Signed-off-by: Ming Tan <ming....@intel.com> > --- > IntelFsp2Pkg/Tools/GenCfgOpt.py | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/IntelFsp2Pkg/Tools/GenCfgOpt.py > b/IntelFsp2Pkg/Tools/GenCfgOpt.py index e6c15108f5c5..e9de128e5055 > 100644 > --- a/IntelFsp2Pkg/Tools/GenCfgOpt.py > +++ b/IntelFsp2Pkg/Tools/GenCfgOpt.py > @@ -546,11 +546,11 @@ EndList > #DEFINE FSP_T_UPD_TOOL_GUID = > 34686CA3-34F9-4901-B82A-BA630F0714C6 > #DEFINE FSP_M_UPD_TOOL_GUID = > 39A250DB-E465-4DD1-A2AC-E2BD3C0E2385 > #DEFINE FSP_S_UPD_TOOL_GUID = > CAE3605B-5B34-4C85-B3D7-27D54273C40F > - Match = > re.match("^\s*(?:DEFINE\s+)*(\w+)\s*=\s*([-.\w]+)", DscLine) > + Match = > + re.match("^\s*(?:DEFINE\s+)*(\w+)\s*=\s*([/$()-.\w]+)", DscLine) > if Match: > - self._MacroDict[Match.group(1)] = Match.group(2) > + self._MacroDict[Match.group(1)] = > + self.ExpandMacros(Match.group(2)) > if self.Debug: > - print ("INFO : DEFINE %s = [ %s ]" % > (Match.group(1), Match.group(2))) > + print ("INFO : DEFINE %s = [ %s ]" % > + (Match.group(1), self.ExpandMacros(Match.group(2)))) > elif IsPcdSect: > #gSiPkgTokenSpaceGuid.PcdTxtEnable|FALSE > #gSiPkgTokenSpaceGuid.PcdOverclockEnable|TRUE > -- > 2.24.0.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#61772): https://edk2.groups.io/g/devel/message/61772 Mute This Topic: https://groups.io/mt/75166595/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-