Commit 37eef910 authored by Feng, Bob C's avatar Feng, Bob C
Browse files

BaseTools: Fixed regression issue for building !x86 builds

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2134

This patch is to fix a build tool regression issue which
was introduced by commit e8449e1d.

In commit e8449e1d

, build tool check the pcd before
filter out the irrelevant library instance.

The logic of evaluating the priority of the library class
resolutions was not changed.

Cc: Liming Gao <liming.gao@intel.com>
Signed-off-by: default avatarBob Feng <bob.c.feng@intel.com>
Tested-by: default avatarMichael D Kinney <michael.d.kinney@intel.com>
Acked-by: default avatarMichael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: default avatarLiming Gao <liming.gao@intel.com>
Acked-by: default avatarLeif Lindholm <leif.lindholm@linaro.org>
Tested-by: default avatarLeif Lindholm <leif.lindholm@linaro.org>
parent df43ea6c
......@@ -156,8 +156,7 @@ class InfBuildData(ModuleBuildClassObject):
self._DependencyFileList = None
self.LibInstances = []
self.ReferenceModules = set()
self.Guids
self.Pcds
def SetReferenceModule(self,Module):
self.ReferenceModules.add(Module)
return self
......@@ -656,6 +655,20 @@ class InfBuildData(ModuleBuildClassObject):
RetVal[CName] = Value
CommentRecords = self._RawData[MODEL_META_DATA_COMMENT, self._Arch, self._Platform, Record[5]]
self._GuidComments[CName] = [a[0] for a in CommentRecords]
for Type in [MODEL_PCD_FIXED_AT_BUILD,MODEL_PCD_PATCHABLE_IN_MODULE,MODEL_PCD_FEATURE_FLAG,MODEL_PCD_DYNAMIC,MODEL_PCD_DYNAMIC_EX]:
RecordList = self._RawData[Type, self._Arch, self._Platform]
for TokenSpaceGuid, _, _, _, _, _, LineNo in RecordList:
# get the guid value
if TokenSpaceGuid not in RetVal:
Value = GuidValue(TokenSpaceGuid, self.Packages, self.MetaFile.Path)
if Value is None:
PackageList = "\n\t".join(str(P) for P in self.Packages)
EdkLogger.error('build', RESOURCE_NOT_AVAILABLE,
"Value of Guid [%s] is not found under [Guids] section in" % TokenSpaceGuid,
ExtraData=PackageList, File=self.MetaFile, Line=LineNo)
RetVal[TokenSpaceGuid] = Value
self._GuidsUsedByPcd[TokenSpaceGuid] = Value
return RetVal
## Retrieve include paths necessary for this module (for Edk.x style of modules)
......@@ -858,7 +871,7 @@ class InfBuildData(ModuleBuildClassObject):
return pkg
@cached_class_function
def GetGuidsUsedByPcd(self):
self.Pcds
self.Guid
return self._GuidsUsedByPcd
## Retrieve PCD for given type
......@@ -870,16 +883,6 @@ class InfBuildData(ModuleBuildClassObject):
for TokenSpaceGuid, PcdCName, Setting, Arch, Platform, Id, LineNo in RecordList:
PcdDict[Arch, Platform, PcdCName, TokenSpaceGuid] = (Setting, LineNo)
PcdList.append((PcdCName, TokenSpaceGuid))
# get the guid value
if TokenSpaceGuid not in self.Guids:
Value = GuidValue(TokenSpaceGuid, self.Packages, self.MetaFile.Path)
if Value is None:
PackageList = "\n\t".join(str(P) for P in self.Packages)
EdkLogger.error('build', RESOURCE_NOT_AVAILABLE,
"Value of Guid [%s] is not found under [Guids] section in" % TokenSpaceGuid,
ExtraData=PackageList, File=self.MetaFile, Line=LineNo)
self.Guids[TokenSpaceGuid] = Value
self._GuidsUsedByPcd[TokenSpaceGuid] = Value
CommentRecords = self._RawData[MODEL_META_DATA_COMMENT, self._Arch, self._Platform, Id]
Comments = []
for CmtRec in CommentRecords:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment