diff options
author | Chen, Christine <Yuwei.Chen@intel.com> | 2022-06-30 17:04:05 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2022-07-17 03:33:41 +0000 |
commit | 039bdb4d3e96f9c9264abf135b8a0eef2e2b4860 (patch) | |
tree | 2ba4a4a04a0c20c2f7d0b1f0ff038623ba0cd609 /BaseTools/Source/Python | |
parent | 176016387f0a6ad16efcfdcef19fd90bdc3a77e4 (diff) | |
download | edk2-039bdb4d3e96f9c9264abf135b8a0eef2e2b4860.tar.gz edk2-039bdb4d3e96f9c9264abf135b8a0eef2e2b4860.tar.bz2 edk2-039bdb4d3e96f9c9264abf135b8a0eef2e2b4860.zip |
BaseTools: Fix DSC LibraryClass precedence rule
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3965
Currently DSC LibraryClass precedence rule is not align with DSC Spec.
The expectation rule should be:
[LibraryClasses.$(ARCH)] < [LibraryClasses.Common.$(MODULE_TYPE)]
The actual behavior is:
[LibraryClasses.$(ARCH)] > [LibraryClasses.Common.$(MODULE_TYPE)]
This patch fixes the issue.
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Long1 Huang <long1.huang@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Signed-off-by: Yuwei Chen <yuwei.chen@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
Diffstat (limited to 'BaseTools/Source/Python')
-rw-r--r-- | BaseTools/Source/Python/Workspace/DscBuildData.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py index e9f68384b4..41f93c93f2 100644 --- a/BaseTools/Source/Python/Workspace/DscBuildData.py +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py @@ -872,7 +872,7 @@ class DscBuildData(PlatformBuildClassObject): if ModuleType != TAB_COMMON and ModuleType not in SUP_MODULE_LIST:
EdkLogger.error('build', OPTION_UNKNOWN, "Unknown module type [%s]" % ModuleType,
File=self.MetaFile, ExtraData=LibraryInstance, Line=LineNo)
- LibraryClassDict[Arch, ModuleType, LibraryClass] = LibraryInstance
+ LibraryClassDict[ModuleType, Arch, LibraryClass] = LibraryInstance
if LibraryInstance not in self._LibraryInstances:
self._LibraryInstances.append(LibraryInstance)
@@ -881,7 +881,7 @@ class DscBuildData(PlatformBuildClassObject): for LibraryClass in LibraryClassSet:
# try all possible module types
for ModuleType in SUP_MODULE_LIST:
- LibraryInstance = LibraryClassDict[self._Arch, ModuleType, LibraryClass]
+ LibraryInstance = LibraryClassDict[ModuleType, self._Arch, LibraryClass]
if LibraryInstance is None:
continue
self._LibraryClasses[LibraryClass, ModuleType] = LibraryInstance
|