Reviewed-by: Liming Gao <[email protected]>
> -----Original Message----- > From: Ard Biesheuvel [mailto:[email protected]] > Sent: Thursday, December 20, 2018 7:52 PM > To: Feng, Bob C <[email protected]> > Cc: [email protected]; Gao, Liming <[email protected]> > Subject: Re: [Patch] BaseTools: Reset FdsGlobalVariable > > On Thu, 20 Dec 2018 at 12:38, BobCF <[email protected]> wrote: > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=1418 > > This patch is going to fix a regression issue that is introduced > > by commit b3497bad1221704a5dbc5da0b10f42625f1ad2ed. > > > > Before commit b3497b, build launched a external GenFds.py to generate > > Fd, so the global variable in GenFds.py was reset in each execution. > > > > After commit b3497b, each GenFds run in the same python interpeter, so > > we need to explicitly reset global variable in each GenFdsApi call. > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Bob Feng <[email protected]> > > Cc: Liming Gao <[email protected]> > > Cc: Ard Biesheuvel <[email protected]> > > Tested-by: Ard Biesheuvel <[email protected]> > > > --- > > BaseTools/Source/Python/GenFds/GenFds.py | 51 ++++++++++++++++++++++++ > > 1 file changed, 51 insertions(+) > > > > diff --git a/BaseTools/Source/Python/GenFds/GenFds.py > > b/BaseTools/Source/Python/GenFds/GenFds.py > > index 51655cc09c..447aa7f5eb 100644 > > --- a/BaseTools/Source/Python/GenFds/GenFds.py > > +++ b/BaseTools/Source/Python/GenFds/GenFds.py > > @@ -39,10 +39,12 @@ from Common.BuildToolError import FatalError, > > GENFDS_ERROR, CODE_ERROR, FORMAT_I > > from Workspace.WorkspaceDatabase import WorkspaceDatabase > > > > from .FdfParser import FdfParser, Warning > > from .GenFdsGlobalVariable import GenFdsGlobalVariable > > from .FfsFileStatement import FileStatement > > +import Common.DataType as DataType > > +from struct import Struct > > > > ## Version and Copyright > > versionNumber = "1.0" + ' ' + gBUILD_VERSION > > __version__ = "%prog Version " + versionNumber > > __copyright__ = "Copyright (c) 2007 - 2018, Intel Corporation All rights > > reserved." > > @@ -60,15 +62,64 @@ def main(): > > global Options > > Options = myOptionParser() > > EdkLogger.Initialize() > > return GenFdsApi(OptionsToCommandDict(Options)) > > > > +def resetFdsGlobalVariable(): > > + GenFdsGlobalVariable.FvDir = '' > > + GenFdsGlobalVariable.OutputDirDict = {} > > + GenFdsGlobalVariable.BinDir = '' > > + # will be FvDir + os.sep + 'Ffs' > > + GenFdsGlobalVariable.FfsDir = '' > > + GenFdsGlobalVariable.FdfParser = None > > + GenFdsGlobalVariable.LibDir = '' > > + GenFdsGlobalVariable.WorkSpace = None > > + GenFdsGlobalVariable.WorkSpaceDir = '' > > + GenFdsGlobalVariable.ConfDir = '' > > + GenFdsGlobalVariable.EdkSourceDir = '' > > + GenFdsGlobalVariable.OutputDirFromDscDict = {} > > + GenFdsGlobalVariable.TargetName = '' > > + GenFdsGlobalVariable.ToolChainTag = '' > > + GenFdsGlobalVariable.RuleDict = {} > > + GenFdsGlobalVariable.ArchList = None > > + GenFdsGlobalVariable.VtfDict = {} > > + GenFdsGlobalVariable.ActivePlatform = None > > + GenFdsGlobalVariable.FvAddressFileName = '' > > + GenFdsGlobalVariable.VerboseMode = False > > + GenFdsGlobalVariable.DebugLevel = -1 > > + GenFdsGlobalVariable.SharpCounter = 0 > > + GenFdsGlobalVariable.SharpNumberPerLine = 40 > > + GenFdsGlobalVariable.FdfFile = '' > > + GenFdsGlobalVariable.FdfFileTimeStamp = 0 > > + GenFdsGlobalVariable.FixedLoadAddress = False > > + GenFdsGlobalVariable.PlatformName = '' > > + > > + GenFdsGlobalVariable.BuildRuleFamily = DataType.TAB_COMPILER_MSFT > > + GenFdsGlobalVariable.ToolChainFamily = DataType.TAB_COMPILER_MSFT > > + GenFdsGlobalVariable.__BuildRuleDatabase = None > > + GenFdsGlobalVariable.GuidToolDefinition = {} > > + GenFdsGlobalVariable.FfsCmdDict = {} > > + GenFdsGlobalVariable.SecCmdList = [] > > + GenFdsGlobalVariable.CopyList = [] > > + GenFdsGlobalVariable.ModuleFile = '' > > + GenFdsGlobalVariable.EnableGenfdsMultiThread = False > > + > > + GenFdsGlobalVariable.LargeFileInFvFlags = [] > > + GenFdsGlobalVariable.EFI_FIRMWARE_FILE_SYSTEM3_GUID = > > '5473C07A-3DCB-4dca-BD6F-1E9689E7349A' > > + GenFdsGlobalVariable.LARGE_FILE_SIZE = 0x1000000 > > + > > + GenFdsGlobalVariable.SectionHeader = Struct("3B 1B") > > + > > + # FvName, FdName, CapName in FDF, Image file name > > + GenFdsGlobalVariable.ImageBinDict = {} > > + > > def GenFdsApi(FdsCommandDict, WorkSpaceDataBase=None): > > global Workspace > > Workspace = "" > > ArchList = None > > ReturnCode = 0 > > + resetFdsGlobalVariable() > > > > try: > > if FdsCommandDict.get("verbose"): > > EdkLogger.SetLevel(EdkLogger.VERBOSE) > > GenFdsGlobalVariable.VerboseMode = True > > -- > > 2.19.1.windows.1 > > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

