https://bugzilla.tianocore.org/show_bug.cgi?id=2088 If there are more than one override instance for a same module, the Module Unique Name is generated incorrectly.
Cc: Liming Gao <liming....@intel.com> Cc: Steven Shi <steven....@intel.com> Signed-off-by: Bob Feng <bob.c.f...@intel.com> --- BaseTools/Source/Python/AutoGen/ModuleAutoGen.py | 2 +- BaseTools/Source/Python/AutoGen/PlatformAutoGen.py | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py index 9ecf5c2dbe0c..076ce0e39c37 100644 --- a/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py +++ b/BaseTools/Source/Python/AutoGen/ModuleAutoGen.py @@ -293,11 +293,11 @@ class ModuleAutoGen(AutoGen): @property def UniqueBaseName(self): ModuleNames = self.DataPipe.Get("M_Name") if not ModuleNames: return self.Name - return ModuleNames.get(self.Name,self.Name) + return ModuleNames.get((self.Name,self.MetaFile),self.Name) # Macros could be used in build_rule.txt (also Makefile) @cached_property def Macros(self): return OrderedDict(( diff --git a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py index 4abfc6c29d1b..dd629ba2fac2 100644 --- a/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py +++ b/BaseTools/Source/Python/AutoGen/PlatformAutoGen.py @@ -1364,18 +1364,19 @@ class PlatformAutoGen(AutoGen): ModuleNameDict[unique_base_name].append(Module.MetaFile) if Module.BaseName not in UniqueName: UniqueName[Module.BaseName] = set() UniqueName[Module.BaseName].add((self.ModuleGuid(Module),Module.MetaFile)) for module_paths in ModuleNameDict.values(): - if len(module_paths) > 1 and len(set(module_paths))>1: + if len(set(module_paths))>1: samemodules = list(set(module_paths)) EdkLogger.error("build", FILE_DUPLICATED, 'Modules have same BaseName and FILE_GUID:\n' ' %s\n %s' % (samemodules[0], samemodules[1])) for name in UniqueName: Guid_Path = UniqueName[name] if len(Guid_Path) > 1: - retVal[name] = '%s_%s' % (name,Guid_Path.pop()[0]) + for guid,mpath in Guid_Path: + retVal[(name,mpath)] = '%s_%s' % (name,guid) return retVal ## Expand * in build option key # # @param Options Options to be expanded # @param ToolDef Use specified ToolDef instead of full version. -- 2.20.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45793): https://edk2.groups.io/g/devel/message/45793 Mute This Topic: https://groups.io/mt/32895879/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-