Reviewed-by: Liming Gao <liming....@intel.com> >-----Original Message----- >From: Feng, Bob C >Sent: Wednesday, December 11, 2019 11:25 PM >To: devel@edk2.groups.io >Cc: Gao, Liming <liming....@intel.com>; Shi, Steven <steven....@intel.com>; >Ard Biesheuvel <ard.biesheu...@linaro.org> >Subject: [Patch 1/1] BaseTools: Fix build failure when multiple build targets >given > >BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2371 > >This patch is to fix a regression issue that build fails >if multiple build targets given. > >Two changes cause this regression issue. >One is AutoGen object __hash__ function only >hash file path and arch, missing ToolChain and build target. > >The other is changing the multiple-thread-genfds function as default >build behavior. To generate the genffs command to Makefile, there >is a global data set is used, GenFdsGlobalVariable, which cause build >tool use the data of first build-target build in >the second build-target build. > >Cc: Liming Gao <liming....@intel.com> >Cc: Steven Shi <steven....@intel.com> >Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> >Signed-off-by: Bob Feng <bob.c.f...@intel.com> >--- > BaseTools/Source/Python/AutoGen/ModuleAutoGen.py | 2 +- > BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 2 +- > BaseTools/Source/Python/build/build.py | 2 ++ > 3 files changed, 4 insertions(+), 2 deletions(-) > >diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >index 74662d1b52bc..aad591de65f0 100755 >--- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >+++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py >@@ -268,11 +268,11 @@ class ModuleAutoGen(AutoGen): > # > # @retval int Hash value of the module file path and arch > # > @cached_class_function > def __hash__(self): >- return hash((self.MetaFile, self.Arch)) >+ return hash((self.MetaFile, self.Arch, >self.ToolChain,self.BuildTarget)) > def __repr__(self): > return "%s [%s]" % (self.MetaFile, self.Arch) > > # Get FixedAtBuild Pcds of this Module > @cached_property >diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py >b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py >index 4c3cdf82d57f..7bd24dad42f8 100644 >--- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py >+++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py >@@ -146,11 +146,11 @@ class PlatformAutoGen(AutoGen): > # > # @retval int Hash value of the platform file path and arch > # > @cached_class_function > def __hash__(self): >- return hash((self.MetaFile, self.Arch)) >+ return hash((self.MetaFile, >self.Arch,self.ToolChain,self.BuildTarget)) > @cached_class_function > def __repr__(self): > return "%s [%s]" % (self.MetaFile, self.Arch) > > ## Create autogen code for platform and modules >diff --git a/BaseTools/Source/Python/build/build.py >b/BaseTools/Source/Python/build/build.py >index 8a8e32e496f8..77b46341b5ad 100755 >--- a/BaseTools/Source/Python/build/build.py >+++ b/BaseTools/Source/Python/build/build.py >@@ -56,10 +56,11 @@ import multiprocessing as mp > from multiprocessing import Manager > from AutoGen.DataPipe import MemoryDataPipe > from AutoGen.ModuleAutoGenHelper import WorkSpaceInfo, PlatformInfo > from GenFds.FdfParser import FdfParser > from AutoGen.IncludesAutoGen import IncludesAutoGen >+from GenFds.GenFds import resetFdsGlobalVariable > > ## standard targets of build command > gSupportedTarget = ['all', 'genc', 'genmake', 'modules', 'libraries', 'fds', > 'clean', >'cleanall', 'cleanlib', 'run'] > > ## build configuration file >@@ -2205,10 +2206,11 @@ class Build(): > SaveFileOnChange(self.PlatformBuildPath, '# DO NOT EDIT \n# FILE auto- >generated\n', False) > for BuildTarget in self.BuildTargetList: > GlobalData.gGlobalDefines['TARGET'] = BuildTarget > index = 0 > for ToolChain in self.ToolChainList: >+ resetFdsGlobalVariable() > GlobalData.gGlobalDefines['TOOLCHAIN'] = ToolChain > GlobalData.gGlobalDefines['TOOL_CHAIN_TAG'] = ToolChain > GlobalData.gGlobalDefines['FAMILY'] = > self.ToolChainFamily[index] > index += 1 > ExitFlag = threading.Event() >-- >2.20.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#52271): https://edk2.groups.io/g/devel/message/52271 Mute This Topic: https://groups.io/mt/68152533/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-