Sync BaseTools Trunk (version r2524) to EDKII main trunk.
Signed-off-by: Liming Gao <liming.gao@intel.com> Reviewed-by: Liu Yingke <yingke.d.liu@intel.com> Reviewed-by: Yurui Zeng <yurui.zeng@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13353 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -292,12 +292,12 @@ class WorkspaceAutoGen(AutoGen):
|
||||
for Arch in self.ArchList:
|
||||
Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
|
||||
|
||||
DecPcds = set()
|
||||
DecPcds = {}
|
||||
PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
|
||||
Pkgs = PGen.PackageList
|
||||
for Pkg in Pkgs:
|
||||
for Pcd in Pkg.Pcds.keys():
|
||||
DecPcds.add((Pcd[0], Pcd[1]))
|
||||
for Pcd in Pkg.Pcds:
|
||||
DecPcds[Pcd[0], Pcd[1]] = Pkg.Pcds[Pcd]
|
||||
Platform.IsPlatformPcdDeclared(DecPcds)
|
||||
|
||||
Platform.SkuName = self.SkuId
|
||||
|
@ -226,7 +226,7 @@ class PcdEntry:
|
||||
|
||||
for Index in xrange(len(ValueList)):
|
||||
Value = None
|
||||
if ValueList[Index].startswith('0x'):
|
||||
if ValueList[Index].lower().startswith('0x'):
|
||||
# translate hex value
|
||||
try:
|
||||
Value = int(ValueList[Index], 16)
|
||||
|
@ -13,4 +13,4 @@
|
||||
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
#
|
||||
|
||||
gBUILD_VERSION = "Build 2518"
|
||||
gBUILD_VERSION = "Build 2524"
|
||||
|
@ -256,9 +256,12 @@ class ValueExpression(object):
|
||||
if self.__IsNumberToken():
|
||||
return self._Expr
|
||||
|
||||
Token = self._GetToken()
|
||||
if type(Token) == type('') and Token.startswith('{') and Token.endswith('}') and self._Idx >= self._Len:
|
||||
return self._Expr
|
||||
try:
|
||||
Token = self._GetToken()
|
||||
if type(Token) == type('') and Token.startswith('{') and Token.endswith('}') and self._Idx >= self._Len:
|
||||
return self._Expr
|
||||
except BadExpression:
|
||||
pass
|
||||
|
||||
self._Idx = 0
|
||||
self._Token = ''
|
||||
|
@ -249,6 +249,7 @@ class GuidSectionClassObject (SectionClassObject) :
|
||||
self.SectionType = None
|
||||
self.ProcessRequired = False
|
||||
self.AuthStatusValid = False
|
||||
self.ExtraHeaderSize = -1
|
||||
self.FvAddr = []
|
||||
self.FvParentAddr = None
|
||||
self.IncludeFvSection = False
|
||||
|
@ -2867,6 +2867,7 @@ class FdfParser:
|
||||
GuidSectionObj.SectionType = "GUIDED"
|
||||
GuidSectionObj.ProcessRequired = AttribDict["PROCESSING_REQUIRED"]
|
||||
GuidSectionObj.AuthStatusValid = AttribDict["AUTH_STATUS_VALID"]
|
||||
GuidSectionObj.ExtraHeaderSize = AttribDict["EXTRA_HEADER_SIZE"]
|
||||
# Recursive sections...
|
||||
while True:
|
||||
IsLeafSection = self.__GetLeafSection(GuidSectionObj)
|
||||
@ -2894,23 +2895,26 @@ class FdfParser:
|
||||
AttribDict = {}
|
||||
AttribDict["PROCESSING_REQUIRED"] = "NONE"
|
||||
AttribDict["AUTH_STATUS_VALID"] = "NONE"
|
||||
if self.__IsKeyword("PROCESSING_REQUIRED") or self.__IsKeyword("AUTH_STATUS_VALID"):
|
||||
AttribDict["EXTRA_HEADER_SIZE"] = -1
|
||||
while self.__IsKeyword("PROCESSING_REQUIRED") or self.__IsKeyword("AUTH_STATUS_VALID") \
|
||||
or self.__IsKeyword("EXTRA_HEADER_SIZE"):
|
||||
AttribKey = self.__Token
|
||||
|
||||
if not self.__IsToken("="):
|
||||
raise Warning("expected '='", self.FileName, self.CurrentLineNumber)
|
||||
|
||||
if not self.__GetNextToken() or self.__Token.upper() not in ("TRUE", "FALSE", "1", "0"):
|
||||
raise Warning("expected TRUE/FALSE (1/0)", self.FileName, self.CurrentLineNumber)
|
||||
AttribDict[AttribKey] = self.__Token
|
||||
|
||||
if self.__IsKeyword("PROCESSING_REQUIRED") or self.__IsKeyword("AUTH_STATUS_VALID"):
|
||||
AttribKey = self.__Token
|
||||
|
||||
if not self.__IsToken("="):
|
||||
raise Warning("expected '='")
|
||||
|
||||
if not self.__GetNextToken() or self.__Token.upper() not in ("TRUE", "FALSE", "1", "0"):
|
||||
if not self.__GetNextToken():
|
||||
raise Warning("expected TRUE(1)/FALSE(0)/Number", self.FileName, self.CurrentLineNumber)
|
||||
elif AttribKey == "EXTRA_HEADER_SIZE":
|
||||
Base = 10
|
||||
if self.__Token[0:2].upper() == "0X":
|
||||
Base = 16
|
||||
try:
|
||||
AttribDict[AttribKey] = int(self.__Token, Base)
|
||||
continue
|
||||
except ValueError:
|
||||
raise Warning("expected Number", self.FileName, self.CurrentLineNumber)
|
||||
elif self.__Token.upper() not in ("TRUE", "FALSE", "1", "0"):
|
||||
raise Warning("expected TRUE/FALSE (1/0)", self.FileName, self.CurrentLineNumber)
|
||||
AttribDict[AttribKey] = self.__Token
|
||||
|
||||
@ -3712,6 +3716,7 @@ class FdfParser:
|
||||
GuidSectionObj.SectionType = "GUIDED"
|
||||
GuidSectionObj.ProcessRequired = AttribDict["PROCESSING_REQUIRED"]
|
||||
GuidSectionObj.AuthStatusValid = AttribDict["AUTH_STATUS_VALID"]
|
||||
GuidSectionObj.ExtraHeaderSize = AttribDict["EXTRA_HEADER_SIZE"]
|
||||
|
||||
# Efi sections...
|
||||
while True:
|
||||
|
@ -193,7 +193,10 @@ class GuidSection(GuidSectionClassObject) :
|
||||
|
||||
Attribute = []
|
||||
HeaderLength = None
|
||||
if self.ProcessRequired == "NONE":
|
||||
if self.ExtraHeaderSize != -1:
|
||||
HeaderLength = str(self.ExtraHeaderSize)
|
||||
|
||||
if self.ProcessRequired == "NONE" and HeaderLength == None:
|
||||
if TempFileSize > InputFileSize and TempFileSize % 4 == 0:
|
||||
FileHandleIn.seek(0)
|
||||
BufferIn = FileHandleIn.read()
|
||||
@ -218,7 +221,7 @@ class GuidSection(GuidSectionClassObject) :
|
||||
if self.ProcessRequired in ("TRUE", "1"):
|
||||
if 'PROCESSING_REQUIRED' not in Attribute:
|
||||
Attribute.append('PROCESSING_REQUIRED')
|
||||
HeaderLength = None
|
||||
|
||||
if self.AuthStatusValid in ("TRUE", "1"):
|
||||
Attribute.append('AUTH_STATUS_VALID')
|
||||
GenFdsGlobalVariable.GenerateSection(OutputFile, [TempFile], Section.Section.SectionType['GUIDED'],
|
||||
|
@ -17,4 +17,4 @@
|
||||
Build version information
|
||||
'''
|
||||
|
||||
gBUILD_VERSION = "Build 2518"
|
||||
gBUILD_VERSION = "Build 2524"
|
||||
|
@ -852,6 +852,21 @@ class DscBuildData(PlatformBuildClassObject):
|
||||
EdkLogger.error('build', PARSER_ERROR,
|
||||
"Pcd (%s.%s) defined in DSC is not declared in DEC files." % (TokenSpaceGuid, PcdCName),
|
||||
File=self.MetaFile, Line=Dummy4)
|
||||
PcdValue = ''
|
||||
if PcdType in (MODEL_PCD_DYNAMIC_VPD, MODEL_PCD_DYNAMIC_EX_VPD):
|
||||
if DecPcds[PcdCName, TokenSpaceGuid].DatumType == "VOID*":
|
||||
PcdValue = AnalyzeVpdPcdData(Setting)[2]
|
||||
else:
|
||||
PcdValue = AnalyzeVpdPcdData(Setting)[1]
|
||||
elif PcdType in (MODEL_PCD_DYNAMIC_HII, MODEL_PCD_DYNAMIC_EX_HII):
|
||||
PcdValue = AnalyzeHiiPcdData(Setting)[3]
|
||||
else:
|
||||
PcdValue = AnalyzePcdData(Setting)[0]
|
||||
if PcdValue:
|
||||
Valid, ErrStr = CheckPcdDatum(DecPcds[PcdCName, TokenSpaceGuid].DatumType, PcdValue)
|
||||
if not Valid:
|
||||
EdkLogger.error('build', FORMAT_INVALID, ErrStr, File=self.MetaFile, Line=Dummy4,
|
||||
ExtraData="%s.%s" % (TokenSpaceGuid, PcdCName))
|
||||
|
||||
_Macros = property(_GetMacros)
|
||||
Arch = property(_GetArch, _SetArch)
|
||||
|
@ -39,6 +39,7 @@ from Common.DataType import TAB_SLASH
|
||||
from Common.DataType import TAB_SPACE_SPLIT
|
||||
from Common.DataType import TAB_BRG_PCD
|
||||
from Common.DataType import TAB_BRG_LIBRARY
|
||||
from Common.DataType import TAB_BACK_SLASH
|
||||
|
||||
## Pattern to extract contents in EDK DXS files
|
||||
gDxsDependencyPattern = re.compile(r"DEPENDENCY_START(.+)DEPENDENCY_END", re.DOTALL)
|
||||
@ -191,11 +192,11 @@ def FileLinesSplit(Content=None, MaxLength=None):
|
||||
while len(Line.rstrip()) > MaxLength:
|
||||
LineSpaceIndex = Line.rfind(TAB_SPACE_SPLIT, 0, MaxLength)
|
||||
LineSlashIndex = Line.rfind(TAB_SLASH, 0, MaxLength)
|
||||
LineBreakIndex = MaxLength
|
||||
if LineSpaceIndex > LineSlashIndex:
|
||||
LineBreakIndex = LineSpaceIndex
|
||||
elif LineSlashIndex > LineSpaceIndex:
|
||||
LineBreakIndex = LineSlashIndex
|
||||
LineBackSlashIndex = Line.rfind(TAB_BACK_SLASH, 0, MaxLength)
|
||||
if max(LineSpaceIndex, LineSlashIndex, LineBackSlashIndex) > 0:
|
||||
LineBreakIndex = max(LineSpaceIndex, LineSlashIndex, LineBackSlashIndex)
|
||||
else:
|
||||
LineBreakIndex = MaxLength
|
||||
NewContentList.append(Line[:LineBreakIndex])
|
||||
Line = Line[LineBreakIndex:]
|
||||
if Line:
|
||||
|
Reference in New Issue
Block a user