summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--BaseTools/Source/Python/Workspace/DscBuildData.py4
-rw-r--r--BaseTools/Source/Python/build/BuildReport.py7
2 files changed, 9 insertions, 2 deletions
diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index a59966c0ab..f472fa177f 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -1519,9 +1519,9 @@ class DscBuildData(PlatformBuildClassObject):
else:
str_pcd_obj_str.DefaultFromDSC = {skuname:{defaultstore: str_pcd_obj.SkuInfoList[skuname].DefaultStoreDict.get(defaultstore, str_pcd_obj.SkuInfoList[skuname].DefaultValue) for defaultstore in DefaultStores} for skuname in str_pcd_obj.SkuInfoList}
S_pcd_set[Pcd] = str_pcd_obj_str
- self.FilterStrcturePcd(S_pcd_set)
if S_pcd_set:
- GlobalData.gStructurePcd[self.Arch] = S_pcd_set
+ GlobalData.gStructurePcd[self.Arch] = S_pcd_set.copy()
+ self.FilterStrcturePcd(S_pcd_set)
for stru_pcd in S_pcd_set.values():
for skuid in SkuIds:
if skuid in stru_pcd.SkuOverrideValues:
diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py
index 44f7706bb3..e457660fce 100644
--- a/BaseTools/Source/Python/build/BuildReport.py
+++ b/BaseTools/Source/Python/build/BuildReport.py
@@ -780,6 +780,13 @@ class PcdReport(object):
# Collect the PCD defined in DSC/FDF file, but not used in module
#
UnusedPcdFullList = []
+ StructPcdDict = GlobalData.gStructurePcd[self.Arch]
+ for Name, Guid in StructPcdDict:
+ if (Name, Guid) not in Pa.Platform.Pcds:
+ Pcd = StructPcdDict[(Name, Guid)]
+ PcdList = self.AllPcds.setdefault(Guid, {}).setdefault(Pcd.Type, [])
+ if Pcd not in PcdList and Pcd not in UnusedPcdFullList:
+ UnusedPcdFullList.append(Pcd)
for item in Pa.Platform.Pcds:
Pcd = Pa.Platform.Pcds[item]
if not Pcd.Type: