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.gao@intel.com>
Cc: Steven Shi <steven.shi@intel.com>
Signed-off-by: Bob Feng <bob.c.feng@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
ModuleNames = self.DataPipe.Get("M_Name")\r
if not ModuleNames:\r
return self.Name\r
ModuleNames = self.DataPipe.Get("M_Name")\r
if not ModuleNames:\r
return self.Name\r
- return ModuleNames.get(self.Name,self.Name)\r
+ return ModuleNames.get((self.Name,self.MetaFile),self.Name)\r
\r
# Macros could be used in build_rule.txt (also Makefile)\r
@cached_property\r
\r
# Macros could be used in build_rule.txt (also Makefile)\r
@cached_property\r
UniqueName[Module.BaseName] = set()\r
UniqueName[Module.BaseName].add((self.ModuleGuid(Module),Module.MetaFile))\r
for module_paths in ModuleNameDict.values():\r
UniqueName[Module.BaseName] = set()\r
UniqueName[Module.BaseName].add((self.ModuleGuid(Module),Module.MetaFile))\r
for module_paths in ModuleNameDict.values():\r
- if len(module_paths) > 1 and len(set(module_paths))>1:\r
+ if len(set(module_paths))>1:\r
samemodules = list(set(module_paths))\r
EdkLogger.error("build", FILE_DUPLICATED, 'Modules have same BaseName and FILE_GUID:\n'\r
' %s\n %s' % (samemodules[0], samemodules[1]))\r
for name in UniqueName:\r
Guid_Path = UniqueName[name]\r
if len(Guid_Path) > 1:\r
samemodules = list(set(module_paths))\r
EdkLogger.error("build", FILE_DUPLICATED, 'Modules have same BaseName and FILE_GUID:\n'\r
' %s\n %s' % (samemodules[0], samemodules[1]))\r
for name in UniqueName:\r
Guid_Path = UniqueName[name]\r
if len(Guid_Path) > 1:\r
- retVal[name] = '%s_%s' % (name,Guid_Path.pop()[0])\r
+ for guid,mpath in Guid_Path:\r
+ retVal[(name,mpath)] = '%s_%s' % (name,guid)\r
return retVal\r
## Expand * in build option key\r
#\r
return retVal\r
## Expand * in build option key\r
#\r