mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-26 23:24:03 +02:00
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 e8449e1d8e. In commit e8449e1d8e, 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:
parent
df43ea6c08
commit
37eef91017
@ -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:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user