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 commite8449e1d8e
. In commite8449e1d8e
, 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: Bob Feng <bob.c.feng@intel.com> Tested-by: Michael D Kinney <michael.d.kinney@intel.com> Acked-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com> Acked-by: Leif Lindholm <leif.lindholm@linaro.org> Tested-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
@ -156,8 +156,7 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
self._DependencyFileList = None
|
self._DependencyFileList = None
|
||||||
self.LibInstances = []
|
self.LibInstances = []
|
||||||
self.ReferenceModules = set()
|
self.ReferenceModules = set()
|
||||||
self.Guids
|
|
||||||
self.Pcds
|
|
||||||
def SetReferenceModule(self,Module):
|
def SetReferenceModule(self,Module):
|
||||||
self.ReferenceModules.add(Module)
|
self.ReferenceModules.add(Module)
|
||||||
return self
|
return self
|
||||||
@ -656,6 +655,20 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
RetVal[CName] = Value
|
RetVal[CName] = Value
|
||||||
CommentRecords = self._RawData[MODEL_META_DATA_COMMENT, self._Arch, self._Platform, Record[5]]
|
CommentRecords = self._RawData[MODEL_META_DATA_COMMENT, self._Arch, self._Platform, Record[5]]
|
||||||
self._GuidComments[CName] = [a[0] for a in CommentRecords]
|
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
|
return RetVal
|
||||||
|
|
||||||
## Retrieve include paths necessary for this module (for Edk.x style of modules)
|
## Retrieve include paths necessary for this module (for Edk.x style of modules)
|
||||||
@ -858,7 +871,7 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
return pkg
|
return pkg
|
||||||
@cached_class_function
|
@cached_class_function
|
||||||
def GetGuidsUsedByPcd(self):
|
def GetGuidsUsedByPcd(self):
|
||||||
self.Pcds
|
self.Guid
|
||||||
return self._GuidsUsedByPcd
|
return self._GuidsUsedByPcd
|
||||||
|
|
||||||
## Retrieve PCD for given type
|
## Retrieve PCD for given type
|
||||||
@ -870,16 +883,6 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
for TokenSpaceGuid, PcdCName, Setting, Arch, Platform, Id, LineNo in RecordList:
|
for TokenSpaceGuid, PcdCName, Setting, Arch, Platform, Id, LineNo in RecordList:
|
||||||
PcdDict[Arch, Platform, PcdCName, TokenSpaceGuid] = (Setting, LineNo)
|
PcdDict[Arch, Platform, PcdCName, TokenSpaceGuid] = (Setting, LineNo)
|
||||||
PcdList.append((PcdCName, TokenSpaceGuid))
|
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]
|
CommentRecords = self._RawData[MODEL_META_DATA_COMMENT, self._Arch, self._Platform, Id]
|
||||||
Comments = []
|
Comments = []
|
||||||
for CmtRec in CommentRecords:
|
for CmtRec in CommentRecords:
|
||||||
|
Reference in New Issue
Block a user