From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mx.groups.io with SMTP id smtpd.web10.22671.1656579850364335969 for ; Thu, 30 Jun 2022 02:04:10 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=Ex+2giuV; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: yuwei.chen@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656579850; x=1688115850; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=xOgqxzNblccNkjWEUGCB+L6bSRAJX4lhZIsbqFxbMNw=; b=Ex+2giuVzzy5e7tT3p/E6Zqc1MinTgwj8WZhUulvFC6Lj1jTahQyUWoO cTM28POoaHG3Ext/S1NrVNttRa7vEMAV/ceIWQXeCE2d/l32dcDi0lnBB RHrH5Ln0gYgmmez/tp35PPlIvpvrokc28hLI+Ve/Fsi81GKmGsIH6p7GE QDePZXvza0KbWajXRsGnlBA4XDeh1IQpgmEmzlhclHsUhSYFeHEniGaKl lMJNz883J0viIR4B/Hbie3MHTFh0wKKLN4iz5vDePJNZG1kVw4jucg/Ko /kz/9wMMZKuiuBIY4QZqIXVTnRVnejtO1jJ9me+svsmjMefAavve4y6un g==; X-IronPort-AV: E=McAfee;i="6400,9594,10393"; a="281058721" X-IronPort-AV: E=Sophos;i="5.92,233,1650956400"; d="scan'208";a="281058721" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jun 2022 02:04:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,233,1650956400"; d="scan'208";a="647806656" Received: from yuweipc.ccr.corp.intel.com ([10.239.158.38]) by fmsmga008.fm.intel.com with ESMTP; 30 Jun 2022 02:04:08 -0700 From: "Yuwei Chen" To: devel@edk2.groups.io Cc: Bob Feng , Liming Gao , Long1 Huang , Ray Ni Subject: [PATCH 1/1] BaseTools: Fix DSC LibraryClass precedence rule Date: Thu, 30 Jun 2022 17:04:05 +0800 Message-Id: <20220630090405.1458-1-yuwei.chen@intel.com> X-Mailer: git-send-email 2.27.0.windows.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 Cc: Liming Gao Cc: Long1 Huang Cc: Ray Ni Signed-off-by: Yuwei Chen --- BaseTools/Source/Python/Workspace/DscBuildData.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py index a599c5bb7688..7a56b2b2e972 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 -- 2.26.1.windows.1