From 25918452ed5e9d12ea56b3bb2193df9ab96666b1 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Wed, 23 May 2012 08:27:14 +0000 Subject: Sync BaseTools Trunk (version r2524) to EDKII main trunk. Signed-off-by: Liming Gao Reviewed-by: Liu Yingke Reviewed-by: Yurui Zeng git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13353 6f19259b-4bc3-4df7-8a09-765794883524 --- BaseTools/Bin/Win32/BPDG.exe | Bin 579301 -> 579317 bytes BaseTools/Bin/Win32/BootSectImage.exe | Bin 434176 -> 420864 bytes BaseTools/Bin/Win32/EfiLdrImage.exe | Bin 421888 -> 408064 bytes BaseTools/Bin/Win32/EfiRom.exe | Bin 446464 -> 431616 bytes BaseTools/Bin/Win32/GenBootSector.exe | Bin 425984 -> 409088 bytes BaseTools/Bin/Win32/GenCrc32.exe | Bin 425984 -> 410624 bytes BaseTools/Bin/Win32/GenDepex.exe | Bin 637892 -> 637892 bytes BaseTools/Bin/Win32/GenFds.exe | Bin 1650976 -> 1651736 bytes BaseTools/Bin/Win32/GenFfs.exe | Bin 430080 -> 418816 bytes BaseTools/Bin/Win32/GenFv.exe | Bin 479232 -> 463872 bytes BaseTools/Bin/Win32/GenFw.exe | Bin 495616 -> 479232 bytes BaseTools/Bin/Win32/GenPage.exe | Bin 421888 -> 409600 bytes BaseTools/Bin/Win32/GenPatchPcdTable.exe | Bin 631896 -> 631896 bytes BaseTools/Bin/Win32/GenSec.exe | Bin 446464 -> 434688 bytes BaseTools/Bin/Win32/GenVtf.exe | Bin 446464 -> 432640 bytes BaseTools/Bin/Win32/LzmaCompress.exe | Bin 397312 -> 389632 bytes BaseTools/Bin/Win32/PatchPcdValue.exe | Bin 563443 -> 563443 bytes BaseTools/Bin/Win32/Split.exe | Bin 425984 -> 412672 bytes BaseTools/Bin/Win32/TargetTool.exe | Bin 585454 -> 585454 bytes BaseTools/Bin/Win32/TianoCompress.exe | Bin 434176 -> 422912 bytes BaseTools/Bin/Win32/Trim.exe | Bin 843332 -> 843332 bytes BaseTools/Bin/Win32/UPT.exe | Bin 2331295 -> 2331295 bytes BaseTools/Bin/Win32/VfrCompile.exe | Bin 1277952 -> 1263104 bytes BaseTools/Bin/Win32/VolInfo.exe | Bin 471040 -> 459264 bytes BaseTools/Bin/Win32/build.exe | Bin 3073401 -> 3074254 bytes BaseTools/Conf/tools_def.template | 6 ++--- BaseTools/Source/C/GenSec/GenSec.c | 10 +++---- BaseTools/Source/C/Include/Common/BuildVersion.h | 2 +- BaseTools/Source/Python/AutoGen/AutoGen.py | 6 ++--- BaseTools/Source/Python/BPDG/GenVpd.py | 2 +- BaseTools/Source/Python/Common/BuildVersion.py | 2 +- BaseTools/Source/Python/Common/Expression.py | 9 ++++--- .../Source/Python/CommonDataClass/FdfClass.py | 1 + BaseTools/Source/Python/GenFds/FdfParser.py | 29 ++++++++++++--------- BaseTools/Source/Python/GenFds/GuidSection.py | 7 +++-- BaseTools/Source/Python/UPT/BuildVersion.py | 2 +- .../Source/Python/Workspace/WorkspaceDatabase.py | 15 +++++++++++ BaseTools/Source/Python/build/BuildReport.py | 11 ++++---- 38 files changed, 63 insertions(+), 39 deletions(-) diff --git a/BaseTools/Bin/Win32/BPDG.exe b/BaseTools/Bin/Win32/BPDG.exe index 0950a85a06..9f38762084 100644 Binary files a/BaseTools/Bin/Win32/BPDG.exe and b/BaseTools/Bin/Win32/BPDG.exe differ diff --git a/BaseTools/Bin/Win32/BootSectImage.exe b/BaseTools/Bin/Win32/BootSectImage.exe index 77c2ca6f0c..72bb94f3cc 100755 Binary files a/BaseTools/Bin/Win32/BootSectImage.exe and b/BaseTools/Bin/Win32/BootSectImage.exe differ diff --git a/BaseTools/Bin/Win32/EfiLdrImage.exe b/BaseTools/Bin/Win32/EfiLdrImage.exe index 0014483a35..f4a0ef8f9f 100755 Binary files a/BaseTools/Bin/Win32/EfiLdrImage.exe and b/BaseTools/Bin/Win32/EfiLdrImage.exe differ diff --git a/BaseTools/Bin/Win32/EfiRom.exe b/BaseTools/Bin/Win32/EfiRom.exe index 34c01a7292..86ec6bb4cf 100755 Binary files a/BaseTools/Bin/Win32/EfiRom.exe and b/BaseTools/Bin/Win32/EfiRom.exe differ diff --git a/BaseTools/Bin/Win32/GenBootSector.exe b/BaseTools/Bin/Win32/GenBootSector.exe index e8315a3fe7..2b8ebe60e2 100755 Binary files a/BaseTools/Bin/Win32/GenBootSector.exe and b/BaseTools/Bin/Win32/GenBootSector.exe differ diff --git a/BaseTools/Bin/Win32/GenCrc32.exe b/BaseTools/Bin/Win32/GenCrc32.exe index 7874a65e47..14b0677c9e 100755 Binary files a/BaseTools/Bin/Win32/GenCrc32.exe and b/BaseTools/Bin/Win32/GenCrc32.exe differ diff --git a/BaseTools/Bin/Win32/GenDepex.exe b/BaseTools/Bin/Win32/GenDepex.exe index 3e477a2788..d4d56965e8 100755 Binary files a/BaseTools/Bin/Win32/GenDepex.exe and b/BaseTools/Bin/Win32/GenDepex.exe differ diff --git a/BaseTools/Bin/Win32/GenFds.exe b/BaseTools/Bin/Win32/GenFds.exe index be4fccacfb..88b88d63be 100755 Binary files a/BaseTools/Bin/Win32/GenFds.exe and b/BaseTools/Bin/Win32/GenFds.exe differ diff --git a/BaseTools/Bin/Win32/GenFfs.exe b/BaseTools/Bin/Win32/GenFfs.exe index f237967923..7d33a46a1b 100755 Binary files a/BaseTools/Bin/Win32/GenFfs.exe and b/BaseTools/Bin/Win32/GenFfs.exe differ diff --git a/BaseTools/Bin/Win32/GenFv.exe b/BaseTools/Bin/Win32/GenFv.exe index 46231ff9f3..633cac7028 100755 Binary files a/BaseTools/Bin/Win32/GenFv.exe and b/BaseTools/Bin/Win32/GenFv.exe differ diff --git a/BaseTools/Bin/Win32/GenFw.exe b/BaseTools/Bin/Win32/GenFw.exe index 353a2f4447..2b1fd01f9c 100755 Binary files a/BaseTools/Bin/Win32/GenFw.exe and b/BaseTools/Bin/Win32/GenFw.exe differ diff --git a/BaseTools/Bin/Win32/GenPage.exe b/BaseTools/Bin/Win32/GenPage.exe index 40c491062c..3449ba5457 100755 Binary files a/BaseTools/Bin/Win32/GenPage.exe and b/BaseTools/Bin/Win32/GenPage.exe differ diff --git a/BaseTools/Bin/Win32/GenPatchPcdTable.exe b/BaseTools/Bin/Win32/GenPatchPcdTable.exe index 1b84df80de..512134c08d 100755 Binary files a/BaseTools/Bin/Win32/GenPatchPcdTable.exe and b/BaseTools/Bin/Win32/GenPatchPcdTable.exe differ diff --git a/BaseTools/Bin/Win32/GenSec.exe b/BaseTools/Bin/Win32/GenSec.exe index c4b92a47c7..40fbe7ab02 100755 Binary files a/BaseTools/Bin/Win32/GenSec.exe and b/BaseTools/Bin/Win32/GenSec.exe differ diff --git a/BaseTools/Bin/Win32/GenVtf.exe b/BaseTools/Bin/Win32/GenVtf.exe index 1bef934cfa..1448486c89 100755 Binary files a/BaseTools/Bin/Win32/GenVtf.exe and b/BaseTools/Bin/Win32/GenVtf.exe differ diff --git a/BaseTools/Bin/Win32/LzmaCompress.exe b/BaseTools/Bin/Win32/LzmaCompress.exe index 82780efc77..c5b07a40ca 100755 Binary files a/BaseTools/Bin/Win32/LzmaCompress.exe and b/BaseTools/Bin/Win32/LzmaCompress.exe differ diff --git a/BaseTools/Bin/Win32/PatchPcdValue.exe b/BaseTools/Bin/Win32/PatchPcdValue.exe index 328651d7db..d77b67a779 100755 Binary files a/BaseTools/Bin/Win32/PatchPcdValue.exe and b/BaseTools/Bin/Win32/PatchPcdValue.exe differ diff --git a/BaseTools/Bin/Win32/Split.exe b/BaseTools/Bin/Win32/Split.exe index f5907b04cf..e50d48dfdf 100755 Binary files a/BaseTools/Bin/Win32/Split.exe and b/BaseTools/Bin/Win32/Split.exe differ diff --git a/BaseTools/Bin/Win32/TargetTool.exe b/BaseTools/Bin/Win32/TargetTool.exe index 0170468cfb..f5eeef9281 100755 Binary files a/BaseTools/Bin/Win32/TargetTool.exe and b/BaseTools/Bin/Win32/TargetTool.exe differ diff --git a/BaseTools/Bin/Win32/TianoCompress.exe b/BaseTools/Bin/Win32/TianoCompress.exe index 2570682261..da6b82cfa2 100755 Binary files a/BaseTools/Bin/Win32/TianoCompress.exe and b/BaseTools/Bin/Win32/TianoCompress.exe differ diff --git a/BaseTools/Bin/Win32/Trim.exe b/BaseTools/Bin/Win32/Trim.exe index 8a3cfb7f96..418818b1b6 100755 Binary files a/BaseTools/Bin/Win32/Trim.exe and b/BaseTools/Bin/Win32/Trim.exe differ diff --git a/BaseTools/Bin/Win32/UPT.exe b/BaseTools/Bin/Win32/UPT.exe index 7939ee97d2..03d6679fe3 100644 Binary files a/BaseTools/Bin/Win32/UPT.exe and b/BaseTools/Bin/Win32/UPT.exe differ diff --git a/BaseTools/Bin/Win32/VfrCompile.exe b/BaseTools/Bin/Win32/VfrCompile.exe index dd7431b741..91681d800e 100755 Binary files a/BaseTools/Bin/Win32/VfrCompile.exe and b/BaseTools/Bin/Win32/VfrCompile.exe differ diff --git a/BaseTools/Bin/Win32/VolInfo.exe b/BaseTools/Bin/Win32/VolInfo.exe index fa7168f8ed..9655614239 100755 Binary files a/BaseTools/Bin/Win32/VolInfo.exe and b/BaseTools/Bin/Win32/VolInfo.exe differ diff --git a/BaseTools/Bin/Win32/build.exe b/BaseTools/Bin/Win32/build.exe index 01ee7a810d..fc43d62866 100755 Binary files a/BaseTools/Bin/Win32/build.exe and b/BaseTools/Bin/Win32/build.exe differ diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index 738cd65052..a82404a144 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -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 diff --git a/BaseTools/Source/C/GenSec/GenSec.c b/BaseTools/Source/C/GenSec/GenSec.c index 79e8e1bebb..d6b22aee86 100644 --- a/BaseTools/Source/C/GenSec/GenSec.c +++ b/BaseTools/Source/C/GenSec/GenSec.c @@ -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. // @@ -1222,10 +1222,6 @@ Returns: VerboseMsg ("Compress method is %s", mCompressionTypeName [SectCompSubType]); } 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) { // @@ -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. diff --git a/BaseTools/Source/C/Include/Common/BuildVersion.h b/BaseTools/Source/C/Include/Common/BuildVersion.h index f9144e5f01..5b50a5c28e 100644 --- a/BaseTools/Source/C/Include/Common/BuildVersion.h +++ b/BaseTools/Source/C/Include/Common/BuildVersion.h @@ -14,4 +14,4 @@ **/ -#define __BUILD_VERSION "Build 2518" +#define __BUILD_VERSION "Build 2524" diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py index 2f38c6afd5..3261892bc5 100644 --- a/BaseTools/Source/Python/AutoGen/AutoGen.py +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py @@ -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 diff --git a/BaseTools/Source/Python/BPDG/GenVpd.py b/BaseTools/Source/Python/BPDG/GenVpd.py index bbe44eefa4..cc4985062e 100644 --- a/BaseTools/Source/Python/BPDG/GenVpd.py +++ b/BaseTools/Source/Python/BPDG/GenVpd.py @@ -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) diff --git a/BaseTools/Source/Python/Common/BuildVersion.py b/BaseTools/Source/Python/Common/BuildVersion.py index c5dae6daa4..0323fafa3c 100644 --- a/BaseTools/Source/Python/Common/BuildVersion.py +++ b/BaseTools/Source/Python/Common/BuildVersion.py @@ -13,4 +13,4 @@ # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # -gBUILD_VERSION = "Build 2518" +gBUILD_VERSION = "Build 2524" diff --git a/BaseTools/Source/Python/Common/Expression.py b/BaseTools/Source/Python/Common/Expression.py index a4853b78a4..80fad7563d 100644 --- a/BaseTools/Source/Python/Common/Expression.py +++ b/BaseTools/Source/Python/Common/Expression.py @@ -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 = '' diff --git a/BaseTools/Source/Python/CommonDataClass/FdfClass.py b/BaseTools/Source/Python/CommonDataClass/FdfClass.py index a459cad8ba..996468d6aa 100644 --- a/BaseTools/Source/Python/CommonDataClass/FdfClass.py +++ b/BaseTools/Source/Python/CommonDataClass/FdfClass.py @@ -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 diff --git a/BaseTools/Source/Python/GenFds/FdfParser.py b/BaseTools/Source/Python/GenFds/FdfParser.py index dc5c4fa034..c9c620d853 100644 --- a/BaseTools/Source/Python/GenFds/FdfParser.py +++ b/BaseTools/Source/Python/GenFds/FdfParser.py @@ -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: diff --git a/BaseTools/Source/Python/GenFds/GuidSection.py b/BaseTools/Source/Python/GenFds/GuidSection.py index bd95f56720..36ad4f58ef 100644 --- a/BaseTools/Source/Python/GenFds/GuidSection.py +++ b/BaseTools/Source/Python/GenFds/GuidSection.py @@ -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'], diff --git a/BaseTools/Source/Python/UPT/BuildVersion.py b/BaseTools/Source/Python/UPT/BuildVersion.py index 1510430fe5..e2dca6130f 100644 --- a/BaseTools/Source/Python/UPT/BuildVersion.py +++ b/BaseTools/Source/Python/UPT/BuildVersion.py @@ -17,4 +17,4 @@ Build version information ''' -gBUILD_VERSION = "Build 2518" +gBUILD_VERSION = "Build 2524" diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py index 16766d32dc..e5fb41a8e0 100644 --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py @@ -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) diff --git a/BaseTools/Source/Python/build/BuildReport.py b/BaseTools/Source/Python/build/BuildReport.py index e20131a312..d5ea3bd3e5 100644 --- a/BaseTools/Source/Python/build/BuildReport.py +++ b/BaseTools/Source/Python/build/BuildReport.py @@ -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: -- cgit v1.2.3