mirror of https://github.com/acidanthera/audk.git
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:
parent
74dee93181
commit
25918452ed
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -4506,12 +4506,12 @@ RELEASE_XCODE32_IA32_CC_FLAGS = -arch i386 -Oz -combine -mms-bitfields -fshor
|
|||
# X64 definitions - still a work in progress. This tool chain does not produce
|
||||
# the correct ABI, it is just used to compile the code....
|
||||
##################
|
||||
*_XCODE32_X64_CC_PATH = gcc-4.2
|
||||
*_XCODE32_X64_CC_PATH = gcc
|
||||
*_XCODE32_X64_SLINK_PATH = libtool
|
||||
*_XCODE32_X64_DLINK_PATH = ld
|
||||
*_XCODE32_X64_ASM_PATH = as
|
||||
*_XCODE32_X64_PP_PATH = gcc-4.2
|
||||
*_XCODE32_X64_VFRPP_PATH = gcc-4.2
|
||||
*_XCODE32_X64_PP_PATH = gcc
|
||||
*_XCODE32_X64_VFRPP_PATH = gcc
|
||||
*_XCODE32_X64_ASL_PATH = iasl
|
||||
*_XCODE32_X64_ASLCC_PATH = gcc
|
||||
*_XCODE32_X64_ASLPP_PATH = gcc
|
||||
|
|
|
@ -785,7 +785,7 @@ Returns:
|
|||
Offset = 0;
|
||||
FileBuffer = NULL;
|
||||
|
||||
if (CompareGuid (VendorGuid, &mEfiCrc32SectionGuid) == 0) {
|
||||
if (CompareGuid (VendorGuid, &mZeroGuid) == 0) {
|
||||
Offset = sizeof (CRC32_SECTION_HEADER);
|
||||
} else {
|
||||
Offset = sizeof (EFI_GUID_DEFINED_SECTION);
|
||||
|
@ -837,7 +837,7 @@ Returns:
|
|||
//
|
||||
// Now data is in FileBuffer + Offset
|
||||
//
|
||||
if (CompareGuid (VendorGuid, &mEfiCrc32SectionGuid) == 0) {
|
||||
if (CompareGuid (VendorGuid, &mZeroGuid) == 0) {
|
||||
//
|
||||
// Default Guid section is CRC32.
|
||||
//
|
||||
|
@ -1223,10 +1223,6 @@ Returns:
|
|||
} else if (stricmp (SectionName, mSectionTypeName[EFI_SECTION_GUID_DEFINED]) == 0) {
|
||||
SectType = EFI_SECTION_GUID_DEFINED;
|
||||
|
||||
if (CompareGuid (&VendorGuid, &mZeroGuid) == 0) {
|
||||
memcpy (&VendorGuid, &mEfiCrc32SectionGuid, sizeof (EFI_GUID));
|
||||
}
|
||||
|
||||
if ((SectGuidAttribute & EFI_GUIDED_SECTION_NONE) != 0) {
|
||||
//
|
||||
// NONE attribute, clear attribute value.
|
||||
|
@ -1349,7 +1345,7 @@ Returns:
|
|||
break;
|
||||
|
||||
case EFI_SECTION_GUID_DEFINED:
|
||||
if (InputFileAlign != NULL && (CompareGuid (&VendorGuid, &mEfiCrc32SectionGuid) != 0)) {
|
||||
if (InputFileAlign != NULL && (CompareGuid (&VendorGuid, &mZeroGuid) != 0)) {
|
||||
//
|
||||
// Only process alignment for the default known CRC32 guided section.
|
||||
// For the unknown guided section, the alignment is processed when the dummy all section (EFI_SECTION_ALL) is generated.
|
||||
|
|
|
@ -14,4 +14,4 @@
|
|||
|
||||
**/
|
||||
|
||||
#define __BUILD_VERSION "Build 2518"
|
||||
#define __BUILD_VERSION "Build 2524"
|
||||
|
|
|
@ -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
|
||||
|
||||
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)
|
||||
LineBackSlashIndex = Line.rfind(TAB_BACK_SLASH, 0, MaxLength)
|
||||
if max(LineSpaceIndex, LineSlashIndex, LineBackSlashIndex) > 0:
|
||||
LineBreakIndex = max(LineSpaceIndex, LineSlashIndex, LineBackSlashIndex)
|
||||
else:
|
||||
LineBreakIndex = MaxLength
|
||||
if LineSpaceIndex > LineSlashIndex:
|
||||
LineBreakIndex = LineSpaceIndex
|
||||
elif LineSlashIndex > LineSpaceIndex:
|
||||
LineBreakIndex = LineSlashIndex
|
||||
NewContentList.append(Line[:LineBreakIndex])
|
||||
Line = Line[LineBreakIndex:]
|
||||
if Line:
|
||||
|
|
Loading…
Reference in New Issue