You can subscribe to this list here.
2010 |
Jan
(18) |
Feb
(75) |
Mar
(40) |
Apr
(18) |
May
(12) |
Jun
(13) |
Jul
(17) |
Aug
(25) |
Sep
(31) |
Oct
(16) |
Nov
(20) |
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2011 |
Jan
(5) |
Feb
(7) |
Mar
(6) |
Apr
(21) |
May
(12) |
Jun
(35) |
Jul
(29) |
Aug
(56) |
Sep
(64) |
Oct
(43) |
Nov
(60) |
Dec
(26) |
2012 |
Jan
(6) |
Feb
(12) |
Mar
(17) |
Apr
(10) |
May
(11) |
Jun
(13) |
Jul
(6) |
Aug
(2) |
Sep
(3) |
Oct
(9) |
Nov
(1) |
Dec
(2) |
2013 |
Jan
(5) |
Feb
(5) |
Mar
(1) |
Apr
(3) |
May
(3) |
Jun
(3) |
Jul
(8) |
Aug
(7) |
Sep
(2) |
Oct
(4) |
Nov
(14) |
Dec
(10) |
2014 |
Jan
(22) |
Feb
(7) |
Mar
(3) |
Apr
(4) |
May
(1) |
Jun
(6) |
Jul
(4) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: <lh...@us...> - 2014-10-01 23:32:02
|
Revision: 2675 http://sourceforge.net/p/edk2-buildtools/code/2675 Author: lhauch Date: 2014-10-01 23:31:54 +0000 (Wed, 01 Oct 2014) Log Message: ----------- Re-adding the correct version of Antlr3 required to build the execution order (EOT) libraries for the build report generation. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: lhauch <lar...@in...> Added Paths: ----------- DevelopmentTools/PythonPkgs/Win32/antlr_python_runtime-3.0.1.zip Added: DevelopmentTools/PythonPkgs/Win32/antlr_python_runtime-3.0.1.zip =================================================================== (Binary files differ) Index: DevelopmentTools/PythonPkgs/Win32/antlr_python_runtime-3.0.1.zip =================================================================== --- DevelopmentTools/PythonPkgs/Win32/antlr_python_runtime-3.0.1.zip 2014-07-22 01:47:25 UTC (rev 2674) +++ DevelopmentTools/PythonPkgs/Win32/antlr_python_runtime-3.0.1.zip 2014-10-01 23:31:54 UTC (rev 2675) Property changes on: DevelopmentTools/PythonPkgs/Win32/antlr_python_runtime-3.0.1.zip ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lg...@us...> - 2014-07-22 01:47:33
|
Revision: 2674 http://sourceforge.net/p/edk2-buildtools/code/2674 Author: lgao4 Date: 2014-07-22 01:47:25 +0000 (Tue, 22 Jul 2014) Log Message: ----------- Update GenFv tool to handle the file path with space. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming lim...@in... Review-by: Kinney, Michael D mic...@in... Modified Paths: -------------- trunk/BaseTools/Source/C/Common/ParseInf.c Modified: trunk/BaseTools/Source/C/Common/ParseInf.c =================================================================== --- trunk/BaseTools/Source/C/Common/ParseInf.c 2014-07-16 01:36:10 UTC (rev 2673) +++ trunk/BaseTools/Source/C/Common/ParseInf.c 2014-07-22 01:47:25 UTC (rev 2674) @@ -236,6 +236,7 @@ { CHAR8 InputBuffer[_MAX_PATH]; CHAR8 *CurrentToken; + CHAR8 *Delimiter; BOOLEAN ParseError; BOOLEAN ReadError; UINTN Occurrance; @@ -283,8 +284,13 @@ // // Get the first non-whitespace string // + Delimiter = strchr (InputBuffer, '='); + if (Delimiter != NULL) { + *Delimiter = 0; + } + CurrentToken = strtok (InputBuffer, " \t\n"); - if (CurrentToken == NULL) { + if (CurrentToken == NULL || Delimiter == NULL) { // // Whitespace line found (or comment) so continue // @@ -311,17 +317,29 @@ // // Copy the contents following the = // - CurrentToken = strtok (NULL, "= \t\n"); - if (CurrentToken == NULL) { + CurrentToken = Delimiter + 1; + if (*CurrentToken == 0) { // // Nothing found, parsing error // ParseError = TRUE; } else { // + // Strip leading white space + // + while (*CurrentToken == ' ' || *CurrentToken == '\t') { + CurrentToken++; + } + // // Copy the current token to the output value // strcpy (Value, CurrentToken); + // + // Strip trailing white space + // + while (strlen(Value) > 0 && (*(Value + strlen(Value) - 1) == ' ' || *(Value + strlen(Value) - 1) == '\t')) { + *(Value + strlen(Value) - 1) = 0; + } return EFI_SUCCESS; } } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yd...@us...> - 2014-07-16 01:36:13
|
Revision: 2673 http://sourceforge.net/p/edk2-buildtools/code/2673 Author: ydong10 Date: 2014-07-16 01:36:10 +0000 (Wed, 16 Jul 2014) Log Message: ----------- Report warning info if vfr file use the flags used for framework code only. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...> Reviewed-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp trunk/BaseTools/Source/C/VfrCompile/VfrError.h trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-07-14 03:02:20 UTC (rev 2672) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-07-16 01:36:10 UTC (rev 2673) @@ -53,6 +53,7 @@ { VFR_WARNING_DEFAULT_VALUE_REDEFINED, ": default value re-defined with different value"}, { VFR_WARNING_STRING_TO_UINT_OVERFLOW, ": String to UINT* Overflow"}, { VFR_WARNING_ACTION_WITH_TEXT_TWO, ": Action opcode should not have TextTwo part"}, + { VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, ": Not recommend to use obsoleted framework opcode"}, { VFR_WARNING_CODEUNDEFINED, ": undefined Warning Code" } }; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.h =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-07-14 03:02:20 UTC (rev 2672) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-07-16 01:36:10 UTC (rev 2673) @@ -51,6 +51,7 @@ VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0, VFR_WARNING_STRING_TO_UINT_OVERFLOW, VFR_WARNING_ACTION_WITH_TEXT_TWO, + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, VFR_WARNING_CODEUNDEFINED } EFI_VFR_WARNING_CODE; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-07-14 03:02:20 UTC (rev 2672) +++ trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-07-16 01:36:10 UTC (rev 2673) @@ -1184,9 +1184,35 @@ ReadOnlyFlag << $Flags |= 0x01; >> | InteractiveFlag << $Flags |= 0x04; >> | ResetRequiredFlag << $Flags |= 0x10; >> - | OptionOnlyFlag << $Flags |= 0x80; >> - | NVAccessFlag - | LateCheckFlag + | O:OptionOnlyFlag << + if (mCompatibleMode) { + $Flags |= 0x80; + } else { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + O->getLine(), + O->getText() + ); + } + >> + | N:NVAccessFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + N->getLine(), + N->getText() + ); + } + >> + | L:LateCheckFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + L->getLine(), + L->getText() + ); + } + >> ; vfrStorageVarId[EFI_VARSTORE_INFO & Info, CHAR8 *&QuestVarIdStr, BOOLEAN CheckFlag = TRUE] : @@ -1617,8 +1643,29 @@ ; flagsField : - Number | InteractiveFlag | ManufacturingFlag | DefaultFlag | - NVAccessFlag | ResetRequiredFlag | LateCheckFlag + Number + | InteractiveFlag + | ManufacturingFlag + | DefaultFlag + | ResetRequiredFlag + | N:NVAccessFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + N->getLine(), + N->getText() + ); + } + >> + | L:LateCheckFlag << + if (!mCompatibleMode) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + L->getLine(), + L->getText() + ); + } + >> ; vfrStatementValue : @@ -3042,11 +3089,31 @@ | "OPTION_DEFAULT" << $LFlags |= 0x10; >> | "OPTION_DEFAULT_MFG" << $LFlags |= 0x20; >> | InteractiveFlag << $HFlags |= 0x04; >> - | NVAccessFlag << $HFlags |= 0x08; >> | ResetRequiredFlag << $HFlags |= 0x10; >> - | LateCheckFlag << $HFlags |= 0x20; >> | ManufacturingFlag << $LFlags |= 0x20; >> | DefaultFlag << $LFlags |= 0x10; >> + | A:NVAccessFlag << + if (mCompatibleMode) { + $HFlags |= 0x08; + } else { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + A->getLine(), + A->getText() + ); + } + >> + | L:LateCheckFlag << + if (mCompatibleMode) { + $HFlags |= 0x20; + } else { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_OBSOLETED_FRAMEWORK_OPCODE, + L->getLine(), + L->getText() + ); + } + >> ; vfrStatementLabel : This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yd...@us...> - 2014-07-14 03:02:24
|
Revision: 2672 http://sourceforge.net/p/edk2-buildtools/code/2672 Author: ydong10 Date: 2014-07-14 03:02:20 +0000 (Mon, 14 Jul 2014) Log Message: ----------- Clean 1 build error and 1 warning for VfrCompiler. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...> Reviewed-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g Modified: trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-07-09 02:47:47 UTC (rev 2671) +++ trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-07-14 03:02:20 UTC (rev 2672) @@ -505,11 +505,11 @@ { ClassGuid "=" guidDefinition[ClassGuid1] << ++ClassGuidNum; >> { - "\|" guidDefinition[ClassGuid2] << ++ClassGuidNum; >> + "\|" guidDefinition[ClassGuid2] << ++ClassGuidNum; >> + { + "\|" guidDefinition[ClassGuid3] << ++ClassGuidNum; >> + } } - { - "\|" guidDefinition[ClassGuid3] << ++ClassGuidNum; >> - } "," } << @@ -1652,7 +1652,7 @@ | { "," vfrStatementStatTagList} { "," (vfrStatementStat | vfrStatementQuestions)*} - E: EndSubtitle ";" << CRT_END_OP (E); >> + D: EndSubtitle ";" << CRT_END_OP (D); >> ) ; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yd...@us...> - 2014-07-09 02:47:51
|
Revision: 2671 http://sourceforge.net/p/edk2-buildtools/code/2671 Author: ydong10 Date: 2014-07-09 02:47:47 +0000 (Wed, 09 Jul 2014) Log Message: ----------- Report warning info if an action opcode has text two statement. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...> Reviewed-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp trunk/BaseTools/Source/C/VfrCompile/VfrError.h trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-06-25 04:59:46 UTC (rev 2670) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-07-09 02:47:47 UTC (rev 2671) @@ -52,6 +52,7 @@ static SVFR_WARNING_HANDLE VFR_WARNING_HANDLE_TABLE [] = { { VFR_WARNING_DEFAULT_VALUE_REDEFINED, ": default value re-defined with different value"}, { VFR_WARNING_STRING_TO_UINT_OVERFLOW, ": String to UINT* Overflow"}, + { VFR_WARNING_ACTION_WITH_TEXT_TWO, ": Action opcode should not have TextTwo part"}, { VFR_WARNING_CODEUNDEFINED, ": undefined Warning Code" } }; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.h =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-06-25 04:59:46 UTC (rev 2670) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-07-09 02:47:47 UTC (rev 2671) @@ -50,6 +50,7 @@ typedef enum { VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0, VFR_WARNING_STRING_TO_UINT_OVERFLOW, + VFR_WARNING_ACTION_WITH_TEXT_TWO, VFR_WARNING_CODEUNDEFINED } EFI_VFR_WARNING_CODE; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-06-25 04:59:46 UTC (rev 2670) +++ trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-07-09 02:47:47 UTC (rev 2671) @@ -1685,6 +1685,13 @@ } << if (Flags & EFI_IFR_FLAG_CALLBACK) { + if (TxtTwo != EFI_STRING_ID_INVALID) { + gCVfrErrorHandle.HandleWarning ( + VFR_WARNING_ACTION_WITH_TEXT_TWO, + S3->getLine(), + S3->getText() + ); + } CIfrAction AObj; mCVfrQuestionDB.RegisterQuestion (NULL, NULL, QId); AObj.SetLineNo (F->getLine()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lg...@us...> - 2014-06-25 04:59:54
|
Revision: 2670 http://sourceforge.net/p/edk2-buildtools/code/2670 Author: lgao4 Date: 2014-06-25 04:59:46 +0000 (Wed, 25 Jun 2014) Log Message: ----------- -Wno-missing-braces option is used to disable warning when the initialized value without braces is set into structure. To remove this option can detect such wrong case in source code. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <lim...@in...> Reviewed-By: Olivier Martin <Oli...@ar...> Tested-By: Olivier Martin <Oli...@ar...> Modified Paths: -------------- trunk/BaseTools/Conf/tools_def.template Modified: trunk/BaseTools/Conf/tools_def.template =================================================================== --- trunk/BaseTools/Conf/tools_def.template 2014-06-18 02:15:55 UTC (rev 2669) +++ trunk/BaseTools/Conf/tools_def.template 2014-06-25 04:59:46 UTC (rev 2670) @@ -1,5 +1,5 @@ # -# Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR> # Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> # Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR> # @@ -3128,7 +3128,7 @@ DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)\$(MODULE_NAME).debug RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG = -DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h +DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -c -include AutoGen.h DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe DEFINE GCC_IPF_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency @@ -3155,7 +3155,7 @@ DEFINE GCC_ARM_RC_FLAGS = -I binary -O elf32-littlearm -B arm --rename-section .data=.hii DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii -DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings +DEFINE GCC44_ALL_CC_FLAGS = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings DEFINE GCC44_IA32_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -D EFI32 DEFINE GCC44_X64_CC_FLAGS = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large DEFINE GCC44_IA32_X64_DLINK_COMMON = -nostdlib -n -q --gc-sections --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script @@ -4037,7 +4037,7 @@ *_ELFGCC_X64_VFRPP_PATH = DEF(ELFGCC_BIN)/gcc *_ELFGCC_X64_RC_PATH = DEF(ELFGCC_BIN)/objcopy -*_ELFGCC_X64_CC_FLAGS = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address -Wno-array-bounds -c -include AutoGen.h -D_EFI_P64 +*_ELFGCC_X64_CC_FLAGS = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-address -Wno-array-bounds -c -include AutoGen.h -D_EFI_P64 *_ELFGCC_X64_DLINK_FLAGS = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map *_ELFGCC_X64_SLINK_FLAGS = *_ELFGCC_X64_ASM_FLAGS = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yd...@us...> - 2014-06-18 02:15:59
|
Revision: 2669 http://sourceforge.net/p/edk2-buildtools/code/2669 Author: ydong10 Date: 2014-06-18 02:15:55 +0000 (Wed, 18 Jun 2014) Log Message: ----------- Refine the string to UINT* convert logic, not report error for this, just report warning. Also refine the logic, add the line info in the warning info. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eric Dong <eri...@in...> Reviewed-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp trunk/BaseTools/Source/C/VfrCompile/VfrError.h trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-06-13 07:12:55 UTC (rev 2668) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.cpp 2014-06-18 02:15:55 UTC (rev 2669) @@ -51,6 +51,7 @@ static SVFR_WARNING_HANDLE VFR_WARNING_HANDLE_TABLE [] = { { VFR_WARNING_DEFAULT_VALUE_REDEFINED, ": default value re-defined with different value"}, + { VFR_WARNING_STRING_TO_UINT_OVERFLOW, ": String to UINT* Overflow"}, { VFR_WARNING_CODEUNDEFINED, ": undefined Warning Code" } }; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrError.h =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-06-13 07:12:55 UTC (rev 2668) +++ trunk/BaseTools/Source/C/VfrCompile/VfrError.h 2014-06-18 02:15:55 UTC (rev 2669) @@ -49,6 +49,7 @@ typedef enum { VFR_WARNING_DEFAULT_VALUE_REDEFINED = 0, + VFR_WARNING_STRING_TO_UINT_OVERFLOW, VFR_WARNING_CODEUNDEFINED } EFI_VFR_WARNING_CODE; Modified: trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-06-13 07:12:55 UTC (rev 2668) +++ trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-06-18 02:15:55 UTC (rev 2669) @@ -295,7 +295,7 @@ "," ID:StringIdentifier << Identifier = ID->getText(); >> } { - "," N:Number << PackAction |= VFR_PACK_ASSIGN; PackNumber = _STOU32(N->getText()); >> + "," N:Number << PackAction |= VFR_PACK_ASSIGN; PackNumber = _STOU32(N->getText(), N->getLine()); >> } << gCVfrVarDataTypeDB.Pack (LineNum, PackAction, Identifier, PackNumber); >> ; @@ -305,7 +305,7 @@ UINT32 LineNum; UINT32 PackNumber = DEFAULT_PACK_ALIGN; >> - N:Number << LineNum = N->getLine(); PackNumber = _STOU32(N->getText()); >> + N:Number << LineNum = N->getLine(); PackNumber = _STOU32(N->getText(), N->getLine()); >> << gCVfrVarDataTypeDB.Pack (LineNum, VFR_PACK_ASSIGN, NULL, PackNumber); >> ; @@ -354,7 +354,7 @@ D:"UINT64" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -364,7 +364,7 @@ D:"UINT32" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -376,7 +376,7 @@ ("UINT16" | "CHAR16") N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), (CHAR8 *) "UINT16", ArrayNum), N); >> ; @@ -386,7 +386,7 @@ D:"UINT8" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -396,7 +396,7 @@ D:"BOOLEAN" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -406,7 +406,7 @@ D:"EFI_STRING_ID" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -416,7 +416,7 @@ D:"EFI_HII_DATE" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -426,7 +426,7 @@ D:"EFI_HII_TIME" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -436,7 +436,7 @@ D:"EFI_HII_REF" N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), D->getText(), ArrayNum), N); >> ; @@ -446,7 +446,7 @@ T:StringIdentifier N:StringIdentifier { - OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText()); >> + OpenBracket I:Number CloseBracket << ArrayNum = _STOU32(I->getText(), I->getLine()); >> } ";" << _PCATCH(gCVfrVarDataTypeDB.DataTypeAddField (N->getText(), T->getText(), ArrayNum), T); >> ; @@ -458,14 +458,14 @@ guidSubDefinition [EFI_GUID &Guid] : G4:Number "," G5:Number "," G6:Number "," G7:Number "," G8:Number "," G9:Number "," G10:Number "," G11:Number << - Guid.Data4[0] = _STOU8(G4->getText()); - Guid.Data4[1] = _STOU8(G5->getText()); - Guid.Data4[2] = _STOU8(G6->getText()); - Guid.Data4[3] = _STOU8(G7->getText()); - Guid.Data4[4] = _STOU8(G8->getText()); - Guid.Data4[5] = _STOU8(G9->getText()); - Guid.Data4[6] = _STOU8(G10->getText()); - Guid.Data4[7] = _STOU8(G11->getText()); + Guid.Data4[0] = _STOU8(G4->getText(), G4->getLine()); + Guid.Data4[1] = _STOU8(G5->getText(), G5->getLine()); + Guid.Data4[2] = _STOU8(G6->getText(), G6->getLine()); + Guid.Data4[3] = _STOU8(G7->getText(), G7->getLine()); + Guid.Data4[4] = _STOU8(G8->getText(), G8->getLine()); + Guid.Data4[5] = _STOU8(G9->getText(), G9->getLine()); + Guid.Data4[6] = _STOU8(G10->getText(), G10->getLine()); + Guid.Data4[7] = _STOU8(G11->getText(), G11->getLine()); >> ; @@ -473,9 +473,9 @@ OpenBrace G1:Number "," G2:Number "," G3:Number "," << - Guid.Data1 = _STOU32 (G1->getText()); - Guid.Data2 = _STOU16 (G2->getText()); - Guid.Data3 = _STOU16 (G3->getText()); + Guid.Data1 = _STOU32 (G1->getText(), G1->getLine()); + Guid.Data2 = _STOU16 (G2->getText(), G2->getLine()); + Guid.Data3 = _STOU16 (G3->getText(), G3->getLine()); >> ( OpenBrace guidSubDefinition[Guid] CloseBrace @@ -568,8 +568,8 @@ if (mCompatibleMode) { memcpy (&mFormsetGuid, &Guid, sizeof (EFI_GUID)); } - FSObj->SetFormSetTitle (_STOSID(S1->getText())); - FSObj->SetHelp (_STOSID(S2->getText())); + FSObj->SetFormSetTitle (_STOSID(S1->getText(), S1->getLine())); + FSObj->SetHelp (_STOSID(S2->getText(), S2->getLine())); >> { FC:Class "=" classDefinition[C] "," << {CIfrClass CObj;SET_LINE_INFO (CObj, FC); CObj.SetClass(C);} >> @@ -656,25 +656,25 @@ Uuid "=" guidDefinition[Guid] {"," DataType "=" ( - U64:"UINT64" {OpenBracket AN1:Number CloseBracket <<ArrayNum = _STOU32(AN1->getText());>>} + U64:"UINT64" {OpenBracket AN1:Number CloseBracket <<ArrayNum = _STOU32(AN1->getText(), AN1->getLine());>>} << TypeName = U64->getText(); LineNum = U64->getLine(); >> - | U32:"UINT32" {OpenBracket AN2:Number CloseBracket <<ArrayNum = _STOU32(AN2->getText());>>} + | U32:"UINT32" {OpenBracket AN2:Number CloseBracket <<ArrayNum = _STOU32(AN2->getText(), AN2->getLine());>>} << TypeName = U32->getText(); LineNum = U32->getLine(); >> - | U16:"UINT16" {OpenBracket AN3:Number CloseBracket <<ArrayNum = _STOU32(AN3->getText());>>} + | U16:"UINT16" {OpenBracket AN3:Number CloseBracket <<ArrayNum = _STOU32(AN3->getText(), AN3->getLine());>>} << TypeName = U16->getText(); LineNum = U16->getLine(); >> - | U8:"UINT8" {OpenBracket AN4:Number CloseBracket <<ArrayNum = _STOU32(AN4->getText());>>} + | U8:"UINT8" {OpenBracket AN4:Number CloseBracket <<ArrayNum = _STOU32(AN4->getText(), AN4->getLine());>>} << TypeName = U8->getText(); LineNum = U8->getLine(); >> - | BL:"BOOLEAN" {OpenBracket AN5:Number CloseBracket <<ArrayNum = _STOU32(AN5->getText());>>} + | BL:"BOOLEAN" {OpenBracket AN5:Number CloseBracket <<ArrayNum = _STOU32(AN5->getText(), AN5->getLine());>>} << TypeName = BL->getText(); LineNum = BL->getLine(); >> - | SI:"EFI_STRING_ID" {OpenBracket AN6:Number CloseBracket <<ArrayNum = _STOU32(AN6->getText());>>} + | SI:"EFI_STRING_ID" {OpenBracket AN6:Number CloseBracket <<ArrayNum = _STOU32(AN6->getText(), AN6->getLine());>>} << TypeName = SI->getText(); LineNum = SI->getLine(); >> - | D:"EFI_HII_DATE" {OpenBracket AN7:Number CloseBracket <<ArrayNum = _STOU32(AN7->getText());>>} + | D:"EFI_HII_DATE" {OpenBracket AN7:Number CloseBracket <<ArrayNum = _STOU32(AN7->getText(), AN7->getLine());>>} << TypeName = D->getText(); LineNum = D->getLine(); IsStruct = TRUE;>> - | T:"EFI_HII_TIME" {OpenBracket AN8:Number CloseBracket <<ArrayNum = _STOU32(AN8->getText());>>} + | T:"EFI_HII_TIME" {OpenBracket AN8:Number CloseBracket <<ArrayNum = _STOU32(AN8->getText(), AN8->getLine());>>} << TypeName = T->getText(); LineNum = T->getLine(); IsStruct = TRUE;>> - | R:"EFI_HII_REF" {OpenBracket AN9:Number CloseBracket <<ArrayNum = _STOU32(AN9->getText());>>} + | R:"EFI_HII_REF" {OpenBracket AN9:Number CloseBracket <<ArrayNum = _STOU32(AN9->getText(), AN9->getLine());>>} << TypeName = R->getText(); LineNum = R->getLine(); IsStruct = TRUE;>> - | TN:StringIdentifier {OpenBracket AN10:Number CloseBracket <<ArrayNum = _STOU32(AN10->getText());>>} + | TN:StringIdentifier {OpenBracket AN10:Number CloseBracket <<ArrayNum = _STOU32(AN10->getText(), AN10->getLine());>>} << TypeName = TN->getText(); LineNum = TN->getLine(); IsStruct = TRUE;>> ) << @@ -738,7 +738,7 @@ << ArrayIdx = 0; if (IsArray == TRUE) { - ArrayIdx = _STOU8(IDX1->getText()); + ArrayIdx = _STOU8(IDX1->getText(), IDX1->getLine()); if (ArrayIdx >= ArrayNum) return; IsArray = FALSE; } @@ -769,49 +769,49 @@ << if (IsStruct == FALSE) { if (strcmp ("UINT64", TypeName) == 0) { - Data_U64 = _STOU64(RD->getText()); + Data_U64 = _STOU64(RD->getText(), RD->getLine()); memcpy (ByteOffset, &Data_U64, TypeSize); }else if (strcmp ("UINT32", TypeName) == 0) { - Data_U32 = _STOU32(RD->getText()); + Data_U32 = _STOU32(RD->getText(), RD->getLine()); memcpy (ByteOffset, &Data_U32, TypeSize); }else if (strcmp ("UINT16", TypeName) == 0) { - Data_U16 = _STOU16(RD->getText()); + Data_U16 = _STOU16(RD->getText(), RD->getLine()); memcpy (ByteOffset, &Data_U16, TypeSize); }else if (strcmp ("UINT8", TypeName) == 0) { - Data_U8 = _STOU8(RD->getText()); + Data_U8 = _STOU8(RD->getText(), RD->getLine()); memcpy (ByteOffset, &Data_U8, TypeSize); }else if (strcmp ("BOOLEAN", TypeName)== 0) { - Data_BL = _STOU8(RD->getText()); + Data_BL = _STOU8(RD->getText(), RD->getLine()); memcpy (ByteOffset, &Data_BL, TypeSize); }else if (strcmp ("EFI_STRING_ID", TypeName) == 0) { - Data_SID = _STOSID(RD->getText()); + Data_SID = _STOSID(RD->getText(), RD->getLine()); memcpy (ByteOffset, &Data_SID, TypeSize); } } else { gCVfrVarDataTypeDB.GetDataFieldInfo(TFName, FieldOffset, FieldType, FieldSize); switch (FieldType) { case EFI_IFR_TYPE_NUM_SIZE_8: - Data_U8 = _STOU8(RD->getText()); + Data_U8 = _STOU8(RD->getText(), RD->getLine()); memcpy (ByteOffset + FieldOffset, &Data_U8, FieldSize); break; case EFI_IFR_TYPE_NUM_SIZE_16: - Data_U16 = _STOU16(RD->getText()); + Data_U16 = _STOU16(RD->getText(), RD->getLine()); memcpy (ByteOffset + FieldOffset, &Data_U16, FieldSize); break; case EFI_IFR_TYPE_NUM_SIZE_32: - Data_U32 = _STOU32(RD->getText()); + Data_U32 = _STOU32(RD->getText(), RD->getLine()); memcpy (ByteOffset + FieldOffset, &Data_U32, FieldSize); break; case EFI_IFR_TYPE_NUM_SIZE_64: - Data_U64 = _STOU64(RD->getText()); + Data_U64 = _STOU64(RD->getText(), RD->getLine()); memcpy (ByteOffset + FieldOffset, &Data_U64, FieldSize); break; case EFI_IFR_TYPE_BOOLEAN: - Data_BL = _STOU8(RD->getText()); + Data_BL = _STOU8(RD->getText(), RD->getLine()); memcpy (ByteOffset + FieldOffset, &Data_BL, FieldSize); break; case EFI_IFR_TYPE_STRING: - Data_SID = _STOSID(RD->getText()); + Data_SID = _STOSID(RD->getText(), RD->getLine()); memcpy (ByteOffset + FieldOffset, &Data_SID, FieldSize); break; default: @@ -830,17 +830,17 @@ D:DefaultStore N:StringIdentifier "," Prompt "=" "STRING_TOKEN" "\(" S:Number "\)" { - "," Attribute "=" A:Number << DefaultId = _STOU16(A->getText()); >> + "," Attribute "=" A:Number << DefaultId = _STOU16(A->getText(), A->getLine()); >> } << if (mCVfrDefaultStore.DefaultIdRegistered (DefaultId) == FALSE) { CIfrDefaultStore DSObj; - _PCATCH(mCVfrDefaultStore.RegisterDefaultStore (DSObj.GetObjBinAddr(), N->getText(), _STOSID(S->getText()), DefaultId)), D->getLine(); + _PCATCH(mCVfrDefaultStore.RegisterDefaultStore (DSObj.GetObjBinAddr(), N->getText(), _STOSID(S->getText(), S->getLine()), DefaultId)), D->getLine(); DSObj.SetLineNo(D->getLine()); - DSObj.SetDefaultName (_STOSID(S->getText())); + DSObj.SetDefaultName (_STOSID(S->getText(), S->getLine())); DSObj.SetDefaultId (DefaultId); } else { - _PCATCH(mCVfrDefaultStore.ReRegisterDefaultStoreById (DefaultId, N->getText(), _STOSID(S->getText()))), D->getLine(); + _PCATCH(mCVfrDefaultStore.ReRegisterDefaultStoreById (DefaultId, N->getText(), _STOSID(S->getText(), S->getLine()))), D->getLine(); } >> ";" @@ -870,14 +870,14 @@ ) { Key "=" FID:Number "," << // Key is used to assign Varid in Framework VFR but no use in UEFI2.1 VFR if (mCompatibleMode) { - VarStoreId = _STOU16(FID->getText()); + VarStoreId = _STOU16(FID->getText(), FID->getLine()); } >> } { VarId "=" ID:Number "," << _PCATCH( - (INTN)(VarStoreId = _STOU16(ID->getText())) != 0, + (INTN)(VarStoreId = _STOU16(ID->getText(), ID->getLine())) != 0, (INTN)TRUE, ID, "varid 0 is not allowed." @@ -936,7 +936,7 @@ { VarId "=" ID:Number "," << _PCATCH( - (INTN)(VarStoreId = _STOU16(ID->getText())) != 0, + (INTN)(VarStoreId = _STOU16(ID->getText(), ID->getLine())) != 0, (INTN)TRUE, ID, "varid 0 is not allowed." @@ -952,11 +952,11 @@ Name "=" "STRING_TOKEN" "\(" VN:Number "\)" "," VarSize "=" N:Number "," << IsUEFI23EfiVarstore = FALSE; - StoreName = gCVfrStringDB.GetVarStoreNameFormStringId(_STOSID(VN->getText())); + StoreName = gCVfrStringDB.GetVarStoreNameFormStringId(_STOSID(VN->getText(), VN->getLine())); if (StoreName == NULL) { _PCATCH (VFR_RETURN_UNSUPPORTED, VN->getLine(), "Can't get varstore name for this StringId!"); } - Size = _STOU32(N->getText()); + Size = _STOU32(N->getText(), N->getLine()); switch (Size) { case 1: TypeName = (CHAR8 *) "UINT8"; @@ -1012,7 +1012,7 @@ ; vfrVarStoreEfiAttr [UINT32 & Attr] : - N:Number << $Attr |= _STOU32(N->getText()); >> + N:Number << $Attr |= _STOU32(N->getText(), N->getLine()); >> ; vfrStatementVarStoreNameValue : @@ -1027,7 +1027,7 @@ { VarId "=" ID:Number "," << _PCATCH( - (INTN)(VarStoreId = _STOU16(ID->getText())) != 0, + (INTN)(VarStoreId = _STOU16(ID->getText(), ID->getLine())) != 0, (INTN)TRUE, ID, "varid 0 is not allowed." @@ -1040,7 +1040,7 @@ _PCATCH(mCVfrDataStorage.DeclareNameVarStoreBegin (SN->getText(), VarStoreId), SN); Created = TRUE; } - _PCATCH(mCVfrDataStorage.NameTableAddItem (_STOSID(N->getText())), SN); + _PCATCH(mCVfrDataStorage.NameTableAddItem (_STOSID(N->getText(), N->getLine())), SN); >> )+ Uuid "=" guidDefinition[Guid] << _PCATCH(mCVfrDataStorage.DeclareNameVarStoreEnd (&Guid), SN); >> @@ -1069,7 +1069,7 @@ | ClassInputDevice << $Class |= EFI_INPUT_DEVICE_CLASS; >> | ClassOnBoardDevice << $Class |= EFI_ON_BOARD_DEVICE_CLASS; >> | ClassOtherDevice << $Class |= EFI_OTHER_DEVICE_CLASS; >> - | N:Number << $Class |= _STOU16(N->getText()); >> + | N:Number << $Class |= _STOU16(N->getText(), N->getLine()); >> ; subclassDefinition[UINT16 & SubClass] : @@ -1078,7 +1078,7 @@ | SubclassGeneralApplication << $SubClass |= EFI_GENERAL_APPLICATION_SUBCLASS; >> | SubclassFrontPage << $SubClass |= EFI_FRONT_PAGE_SUBCLASS; >> | SubclassSingleUse << $SubClass |= EFI_SINGLE_USE_SUBCLASS; >> - | N:Number << $SubClass |= _STOU16(N->getText()); >> + | N:Number << $SubClass |= _STOU16(N->getText(), N->getLine()); >> ; vfrStatementDisableIfFormSet : @@ -1113,8 +1113,8 @@ // the syntax of question header and statement header // vfrStatementHeader[CIfrStatementHeader *SHObj] : - Prompt "=" "STRING_TOKEN" "\(" S1:Number "\)" "," << $SHObj->SetPrompt (_STOSID(S1->getText())); >> - Help "=" "STRING_TOKEN" "\(" S2:Number "\)" << $SHObj->SetHelp (_STOSID(S2->getText())); >> + Prompt "=" "STRING_TOKEN" "\(" S1:Number "\)" "," << $SHObj->SetPrompt (_STOSID(S1->getText(), S1->getLine())); >> + Help "=" "STRING_TOKEN" "\(" S2:Number "\)" << $SHObj->SetHelp (_STOSID(S2->getText(), S2->getLine())); >> ; vfrQuestionHeader[CIfrQuestionHeader & QHObj, EFI_QUESION_TYPE QType = QUESTION_NORMAL]: @@ -1138,7 +1138,7 @@ { V:VarId "=" vfrStorageVarId[Info, VarIdStr] "," } { QuestionId "=" ID:Number "," << - QId = _STOQID(ID->getText()); + QId = _STOQID(ID->getText(), ID->getLine()); _PCATCH(mCVfrQuestionDB.FindQuestion (QId), VFR_RETURN_UNDEFINED, ID, "has already been used please assign another number"); >> } @@ -1205,7 +1205,7 @@ ( SN1:StringIdentifier << SName = SN1->getText(); _STRCAT(&VarIdStr, SN1->getText()); >> OpenBracket I1:Number CloseBracket << - Idx = _STOU32(I1->getText()); + Idx = _STOU32(I1->getText(), I1->getLine()); _STRCAT(&VarIdStr, "["); _STRCAT(&VarIdStr, I1->getText()); _STRCAT(&VarIdStr, "]"); @@ -1267,7 +1267,7 @@ SF:StringIdentifier << _STRCAT(&VarIdStr, SF->getText()); _STRCAT(&VarStr, SF->getText()); >> { OpenBracket I2:Number CloseBracket << - Idx = _STOU32(I2->getText()); + Idx = _STOU32(I2->getText(), I2->getLine()); if (mCompatibleMode) Idx --; if (Idx > 0) { // @@ -1347,7 +1347,7 @@ SF:StringIdentifier << _STRCAT (&VarIdStr, SF->getText()); >> { OpenBracket I2:Number CloseBracket << - Idx = _STOU32(I2->getText()); + Idx = _STOU32(I2->getText(), I2->getLine()); if (mCompatibleMode) Idx --; if (Idx > 0) { // @@ -1372,22 +1372,22 @@ N1:Number << switch ($Type) { case EFI_IFR_TYPE_NUM_SIZE_8 : - $Value.u8 = _STOU8(N1->getText()); + $Value.u8 = _STOU8(N1->getText(), N1->getLine()); break; case EFI_IFR_TYPE_NUM_SIZE_16 : - $Value.u16 = _STOU16(N1->getText()); + $Value.u16 = _STOU16(N1->getText(), N1->getLine()); break; case EFI_IFR_TYPE_NUM_SIZE_32 : - $Value.u32 = _STOU32(N1->getText()); + $Value.u32 = _STOU32(N1->getText(), N1->getLine()); break; case EFI_IFR_TYPE_NUM_SIZE_64 : - $Value.u64 = _STOU64(N1->getText()); + $Value.u64 = _STOU64(N1->getText(), N1->getLine()); break; case EFI_IFR_TYPE_BOOLEAN : - $Value.b = _STOU8(N1->getText()); + $Value.b = _STOU8(N1->getText(), N1->getLine()); break; case EFI_IFR_TYPE_STRING : - $Value.string = _STOU16(N1->getText()); + $Value.string = _STOU16(N1->getText(), N1->getLine()); break; case EFI_IFR_TYPE_TIME : case EFI_IFR_TYPE_DATE : @@ -1398,14 +1398,14 @@ >> | B1:True << $Value.b = TRUE; >> | B2:False << $Value.b = FALSE; >> - | O1:One << $Value.u8 = _STOU8(O1->getText()); >> - | O2:Ones << $Value.u64 = _STOU64(O2->getText()); >> - | Z:Zero << $Value.u8 = _STOU8(Z->getText()); >> - | HOUR:Number ":" MINUTE:Number ":" SECOND:Number << $Value.time = _STOT(HOUR->getText(), MINUTE->getText(), SECOND->getText()); >> - | YEAR:Number "/" MONTH:Number "/" DAY:Number << $Value.date = _STOD(YEAR->getText(), MONTH->getText(), DAY->getText()); >> + | O1:One << $Value.u8 = _STOU8(O1->getText(), O1->getLine()); >> + | O2:Ones << $Value.u64 = _STOU64(O2->getText(), O2->getLine()); >> + | Z:Zero << $Value.u8 = _STOU8(Z->getText(), Z->getLine()); >> + | HOUR:Number ":" MINUTE:Number ":" SECOND:Number << $Value.time = _STOT(HOUR->getText(), MINUTE->getText(),SECOND->getText(), HOUR->getLine()); >> + | YEAR:Number "/" MONTH:Number "/" DAY:Number << $Value.date = _STOD(YEAR->getText(), MONTH->getText(), DAY->getText(), YEAR->getLine()); >> | QI:Number";" FI:Number";" guidDefinition[Guid] ";" "STRING_TOKEN" "\(" DP:Number "\)" - << $Value.ref = _STOR(QI->getText(), FI->getText(), &Guid, DP->getText()); >> - | "STRING_TOKEN" "\(" S1:Number "\)" << $Value.string = _STOSID(S1->getText()); >> + << $Value.ref = _STOR(QI->getText(), FI->getText(), &Guid, DP->getText(), QI->getLine()); >> + | "STRING_TOKEN" "\(" S1:Number "\)" << $Value.string = _STOSID(S1->getText(), S1->getLine()); >> ; //***************************************************************************** @@ -1415,8 +1415,8 @@ vfrFormDefinition : << CIfrForm FObj; >> F:Form << FObj.SetLineNo(F->getLine()); >> - FormId "=" S1:Number "," << _PCATCH(FObj.SetFormId (_STOFID(S1->getText())), S1); >> - Title "=" "STRING_TOKEN" "\(" S2:Number "\)" ";" << FObj.SetFormTitle (_STOSID(S2->getText())); >> + FormId "=" S1:Number "," << _PCATCH(FObj.SetFormId (_STOFID(S1->getText(), S1->getLine())), S1); >> + Title "=" "STRING_TOKEN" "\(" S2:Number "\)" ";" << FObj.SetFormTitle (_STOSID(S2->getText(), S2->getLine())); >> ( vfrStatementImage | vfrStatementLocked | @@ -1460,10 +1460,10 @@ EFI_GUID Guid; >> F:FormMap << FMapObj = new CIfrFormMap(); FMapObj->SetLineNo(F->getLine()); >> - FormId "=" S1:Number "," << _PCATCH(FMapObj->SetFormId (_STOFID(S1->getText())), S1); >> + FormId "=" S1:Number "," << _PCATCH(FMapObj->SetFormId (_STOFID(S1->getText(), S1->getLine())), S1); >> ( MapTitle "=" "STRING_TOKEN" "\(" S2:Number "\)" ";" - MapGuid "=" guidDefinition[Guid] ";" << FMapObj->SetFormMapMethod (_STOFID(S2->getText()), &Guid); FormMapMethodNumber ++; >> + MapGuid "=" guidDefinition[Guid] ";" << FMapObj->SetFormMapMethod (_STOFID(S2->getText(), S2->getLine()), &Guid); FormMapMethodNumber ++; >> )* << if (FormMapMethodNumber == 0) {_PCATCH (VFR_RETURN_INVALID_PARAMETER, F->getLine(), "No MapMethod is set for FormMap!");} delete FMapObj;>> ( vfrStatementImage | @@ -1642,7 +1642,7 @@ vfrStatementSubTitle : << CIfrSubtitle SObj; >> L:Subtitle << SObj.SetLineNo(L->getLine()); >> - Text "=" "STRING_TOKEN" "\(" S:Number "\)" << SObj.SetPrompt (_STOSID(S->getText())); >> + Text "=" "STRING_TOKEN" "\(" S:Number "\)" << SObj.SetPrompt (_STOSID(S->getText(), S->getLine())); >> { "," FLAGS "=" vfrSubtitleFlags[SObj] } @@ -1663,7 +1663,7 @@ ; subtitleFlagsField [UINT8 & Flags] : - N:Number << $Flags |= _STOU8(N->getText()); >> + N:Number << $Flags |= _STOU8(N->getText(), N->getLine()); >> | "HORIZONTAL" << $Flags |= 0x01; >> ; @@ -1677,7 +1677,7 @@ Help "=" "STRING_TOKEN" "\(" S1:Number "\)" "," Text "=" "STRING_TOKEN" "\(" S2:Number "\)" { - "," Text "=" "STRING_TOKEN" "\(" S3:Number "\)" << TxtTwo = _STOSID(S3->getText()); >> + "," Text "=" "STRING_TOKEN" "\(" S3:Number "\)" << TxtTwo = _STOSID(S3->getText(), S3->getLine()); >> } { "," F:FLAGS "=" staticTextFlagsField[Flags] ( "\|" staticTextFlagsField[Flags] )* @@ -1689,16 +1689,16 @@ mCVfrQuestionDB.RegisterQuestion (NULL, NULL, QId); AObj.SetLineNo (F->getLine()); AObj.SetQuestionId (QId); - AObj.SetPrompt (_STOSID(S2->getText())); - AObj.SetHelp (_STOSID(S1->getText())); + AObj.SetPrompt (_STOSID(S2->getText(), S2->getLine())); + AObj.SetHelp (_STOSID(S1->getText(), S1->getLine())); _PCATCH(AObj.SetFlags (Flags), F->getLine()); AssignQuestionKey (AObj, KN); CRT_END_OP (KN); } else { CIfrText TObj; TObj.SetLineNo (T->getLine()); - TObj.SetHelp (_STOSID(S1->getText())); - TObj.SetPrompt (_STOSID(S2->getText())); + TObj.SetHelp (_STOSID(S1->getText(), S1->getLine())); + TObj.SetPrompt (_STOSID(S2->getText(), S2->getLine())); TObj.SetTextTwo (TxtTwo); } >> @@ -1707,7 +1707,7 @@ ; staticTextFlagsField[UINT8 & HFlags] : - N:Number << _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> + N:Number << _PCATCH(_STOU8(N->getText(), N->getLine()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> | questionheaderFlagsField[HFlags] ; @@ -1741,9 +1741,9 @@ Question "=" QN1:Number "," << RefType = 4; - DevPath = _STOSID(P->getText()); - FId = _STOFID(F1->getText()); - QId = _STOQID(QN1->getText()); + DevPath = _STOSID(P->getText(), P->getLine()); + FId = _STOFID(F1->getText(), F1->getLine()); + QId = _STOQID(QN1->getText(), QN1->getLine()); >> ) | @@ -1753,13 +1753,13 @@ Question "=" QN2:Number "," << RefType = 3; - FId = _STOFID(F2->getText()); - QId = _STOQID(QN2->getText()); + FId = _STOFID(F2->getText(), F2->getLine()); + QId = _STOQID(QN2->getText(), QN2->getLine()); >> ) | ( - FormId "=" F3:Number "," << RefType = 2; FId = _STOFID(F3->getText()); >> + FormId "=" F3:Number "," << RefType = 2; FId = _STOFID(F3->getText(), F3->getLine()); >> Question "=" ( QN3:StringIdentifier "," << @@ -1768,14 +1768,14 @@ _PCATCH(VFR_RETURN_UNDEFINED, QN3); } >> - | QN4:Number "," << QId = _STOQID(QN4->getText()); >> + | QN4:Number "," << QId = _STOQID(QN4->getText(), QN4->getLine()); >> ) ) | ( F4:Number "," << RefType = 1; - FId = _STOFID(F4->getText()); + FId = _STOFID(F4->getText(), F4->getLine()); >> ) } @@ -1857,7 +1857,7 @@ ; gotoFlagsField[UINT8 & HFlags] : - N:Number << _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> + N:Number << _PCATCH(_STOU8(N->getText(), N->getLine()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> | questionheaderFlagsField[HFlags] ; @@ -1989,9 +1989,9 @@ // // set question flag // - $LFlags |= _STOU8(N->getText()); + $LFlags |= _STOU8(N->getText(), N->getLine()); } else { - _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); + _PCATCH(_STOU8(N->getText(), N->getLine()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); } >> | D:"DEFAULT" << @@ -2035,7 +2035,7 @@ L:Action << AObj.SetLineNo(L->getLine()); >> vfrQuestionHeader[AObj] "," { F:FLAGS "=" vfrActionFlags[AObj, F->getLine()] "," } - Config "=" "STRING_TOKEN" "\(" S:Number "\)" "," << AObj.SetQuestionConfig (_STOSID(S->getText())); >> + Config "=" "STRING_TOKEN" "\(" S:Number "\)" "," << AObj.SetQuestionConfig (_STOSID(S->getText(), S->getLine())); >> vfrStatementQuestionTagList E:EndAction << CRT_END_OP (E); >> ";" @@ -2048,7 +2048,7 @@ ; actionFlagsField[UINT8 & HFlags] : - N:Number << _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> + N:Number << _PCATCH(_STOU8(N->getText(), N->getLine()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> | questionheaderFlagsField[HFlags] ; @@ -2095,8 +2095,8 @@ mCVfrQuestionDB.RegisterOldDateQuestion (VarIdStr[0], VarIdStr[1], VarIdStr[2], QId); DObj.SetQuestionId (QId); DObj.SetFlags (EFI_IFR_QUESTION_FLAG_DEFAULT, QF_DATE_STORAGE_TIME); - DObj.SetPrompt (_STOSID(YP->getText())); - DObj.SetHelp (_STOSID(YH->getText())); + DObj.SetPrompt (_STOSID(YP->getText(), YP->getLine())); + DObj.SetHelp (_STOSID(YH->getText(), YH->getLine())); if (VarIdStr[0] != NULL) { delete VarIdStr[0]; } if (VarIdStr[1] != NULL) { delete VarIdStr[1]; } if (VarIdStr[2] != NULL) { delete VarIdStr[2]; } >> << {CIfrDefault DefaultObj(Size, EFI_HII_DEFAULT_CLASS_STANDARD, EFI_IFR_TYPE_DATE, Val); DefaultObj.SetLineNo(L->getLine());} >> @@ -2115,19 +2115,19 @@ "default" "=" N:Number "," << switch (KeyValue) { case 0: - D.Year = _STOU16(N->getText()); - if (D.Year < _STOU16 (MinN->getText()) || D.Year > _STOU16 (MaxN->getText())) { + D.Year = _STOU16(N->getText(), N->getLine()); + if (D.Year < _STOU16 (MinN->getText(), MinN->getLine()) || D.Year > _STOU16 (MaxN->getText(), MaxN->getLine())) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->getLine(), "Year default value must be between Min year and Max year."); } break; case 1: - D.Month = _STOU8(N->getText()); + D.Month = _STOU8(N->getText(), N->getLine()); if (D.Month < 1 || D.Month > 12) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->getLine(), "Month default value must be between 1 and 12."); } break; case 2: - D.Day = _STOU8(N->getText()); + D.Day = _STOU8(N->getText(), N->getLine()); if (D.Day < 1 || D.Day > 31) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, N->getLine(), "Day default value must be between 1 and 31."); } @@ -2144,7 +2144,7 @@ ; dateFlagsField [UINT8 & Flags] : - N:Number << $Flags |= _STOU8(N->getText()); >> + N:Number << $Flags |= _STOU8(N->getText(), N->getLine()); >> | "YEAR_SUPPRESS" << $Flags |= 0x01; >> | "MONTH_SUPPRESS" << $Flags |= 0x02; >> | "DAY_SUPPRESS" << $Flags |= 0x04; >> @@ -2168,35 +2168,35 @@ Minimum "=" I:Number "," << switch (_GET_CURRQEST_DATATYPE()) { - case EFI_IFR_TYPE_NUM_SIZE_64 : MinU8 = _STOU64(I->getText()); break; - case EFI_IFR_TYPE_NUM_SIZE_32 : MinU4 = _STOU32(I->getText()); break; - case EFI_IFR_TYPE_NUM_SIZE_16 : MinU2 = _STOU16(I->getText()); break; - case EFI_IFR_TYPE_NUM_SIZE_8 : MinU1 = _STOU8(I->getText()); break; + case EFI_IFR_TYPE_NUM_SIZE_64 : MinU8 = _STOU64(I->getText(), I->getLine()); break; + case EFI_IFR_TYPE_NUM_SIZE_32 : MinU4 = _STOU32(I->getText(), I->getLine()); break; + case EFI_IFR_TYPE_NUM_SIZE_16 : MinU2 = _STOU16(I->getText(), I->getLine()); break; + case EFI_IFR_TYPE_NUM_SIZE_8 : MinU1 = _STOU8(I->getText(), I->getLine()); break; } >> Maximum "=" A:Number "," << switch (_GET_CURRQEST_DATATYPE()) { case EFI_IFR_TYPE_NUM_SIZE_64 : - MaxU8 = _STOU64(A->getText()); + MaxU8 = _STOU64(A->getText(), A->getLine()); if (MaxU8 < MinU8) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, A->getLine(), "Maximum can't be less than Minimum"); } break; case EFI_IFR_TYPE_NUM_SIZE_32 : - MaxU4 = _STOU32(A->getText()); + MaxU4 = _STOU32(A->getText(), A->getLine()); if (MaxU4 < MinU4) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, A->getLine(), "Maximum can't be less than Minimum"); } break; case EFI_IFR_TYPE_NUM_SIZE_16 : - MaxU2 = _STOU16(A->getText()); + MaxU2 = _STOU16(A->getText(), A->getLine()); if (MaxU2 < MinU2) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, A->getLine(), "Maximum can't be less than Minimum"); } break; case EFI_IFR_TYPE_NUM_SIZE_8 : - MaxU1 = _STOU8(A->getText()); + MaxU1 = _STOU8(A->getText(), A->getLine()); if (MaxU1 < MinU1) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, A->getLine(), "Maximum can't be less than Minimum"); } @@ -2207,10 +2207,10 @@ STEP "=" S:Number "," << switch (_GET_CURRQEST_DATATYPE()) { - case EFI_IFR_TYPE_NUM_SIZE_64 : StepU8 = _STOU64(S->getText()); break; - case EFI_IFR_TYPE_NUM_SIZE_32 : StepU4 = _STOU32(S->getText()); break; - case EFI_IFR_TYPE_NUM_SIZE_16 : StepU2 = _STOU16(S->getText()); break; - case EFI_IFR_TYPE_NUM_SIZE_8 : StepU1 = _STOU8(S->getText()); break; + case EFI_IFR_TYPE_NUM_SIZE_64 : StepU8 = _STOU64(S->getText(), S->getLine()); break; + case EFI_IFR_TYPE_NUM_SIZE_32 : StepU4 = _STOU32(S->getText(), S->getLine()); break; + case EFI_IFR_TYPE_NUM_SIZE_16 : StepU2 = _STOU16(S->getText(), S->getLine()); break; + case EFI_IFR_TYPE_NUM_SIZE_8 : StepU1 = _STOU8(S->getText(), S->getLine()); break; } >> } @@ -2303,7 +2303,7 @@ ; numericFlagsField [UINT8 & HFlags, UINT8 & LFlags, BOOLEAN & IsSetType, BOOLEAN & IsDisplaySpecified] : - N:Number << _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> + N:Number << _PCATCH(_STOU8(N->getText(), N->getLine()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> | "NUMERIC_SIZE_1" << $LFlags = ($LFlags & ~EFI_IFR_NUMERIC_SIZE) | EFI_IFR_NUMERIC_SIZE_1; IsSetType = TRUE;>> | "NUMERIC_SIZE_2" << $LFlags = ($LFlags & ~EFI_IFR_NUMERIC_SIZE) | EFI_IFR_NUMERIC_SIZE_2; IsSetType = TRUE;>> | "NUMERIC_SIZE_4" << $LFlags = ($LFlags & ~EFI_IFR_NUMERIC_SIZE) | EFI_IFR_NUMERIC_SIZE_4; IsSetType = TRUE;>> @@ -2412,8 +2412,8 @@ } MinSize "=" MIN:Number "," << VarArraySize = _GET_CURRQEST_ARRAY_SIZE(); - StringMinSize = _STOU8(MIN->getText()); - if (_STOU64(MIN->getText()) > StringMinSize) { + StringMinSize = _STOU8(MIN->getText(), MIN->getLine()); + if (_STOU64(MIN->getText(), MIN->getLine()) > StringMinSize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "String MinSize takes only one byte, which can't be larger than 0xFF."); } else if (VarArraySize != 0 && StringMinSize > VarArraySize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "String MinSize can't be larger than the max number of elements in string array."); @@ -2421,8 +2421,8 @@ SObj.SetMinSize (StringMinSize); >> MaxSize "=" MAX:Number "," << - StringMaxSize = _STOU8(MAX->getText()); - if (_STOU64(MAX->getText()) > StringMaxSize) { + StringMaxSize = _STOU8(MAX->getText(), MAX->getLine()); + if (_STOU64(MAX->getText(), MAX->getLine()) > StringMaxSize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "String MaxSize takes only one byte, which can't be larger than 0xFF."); } else if (VarArraySize != 0 && StringMaxSize > VarArraySize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "String MaxSize can't be larger than the max number of elements in string array."); @@ -2446,7 +2446,7 @@ ; stringFlagsField [UINT8 & HFlags, UINT8 & LFlags] : - N:Number << _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> + N:Number << _PCATCH(_STOU8(N->getText(), N->getLine()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> | "MULTI_LINE" << $LFlags = 0x01; >> | questionheaderFlagsField[HFlags] ; @@ -2466,8 +2466,8 @@ } MinSize "=" MIN:Number "," << VarArraySize = _GET_CURRQEST_ARRAY_SIZE(); - PasswordMinSize = _STOU16(MIN->getText()); - if (_STOU64(MIN->getText()) > PasswordMinSize) { + PasswordMinSize = _STOU16(MIN->getText(), MIN->getLine()); + if (_STOU64(MIN->getText(), MIN->getLine()) > PasswordMinSize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "Password MinSize takes only two byte, which can't be larger than 0xFFFF."); } else if (VarArraySize != 0 && PasswordMinSize > VarArraySize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MIN->getLine(), "Password MinSize can't be larger than the max number of elements in password array."); @@ -2475,8 +2475,8 @@ PObj.SetMinSize (PasswordMinSize); >> MaxSize "=" MAX:Number "," << - PasswordMaxSize = _STOU16(MAX->getText()); - if (_STOU64(MAX->getText()) > PasswordMaxSize) { + PasswordMaxSize = _STOU16(MAX->getText(), MAX->getLine()); + if (_STOU64(MAX->getText(), MAX->getLine()) > PasswordMaxSize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "Password MaxSize takes only two byte, which can't be larger than 0xFFFF."); } else if (VarArraySize != 0 && PasswordMaxSize > VarArraySize) { _PCATCH (VFR_RETURN_INVALID_PARAMETER, MAX->getLine(), "Password MaxSize can't be larger than the max number of elements in password array."); @@ -2498,7 +2498,7 @@ ; passwordFlagsField [UINT8 & HFlags] : - N:Number << _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> + N:Number << _PCATCH(_STOU8(N->getText(), N->getLine()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> | questionheaderFlagsField[HFlags] ; @@ -2515,12 +2515,12 @@ >> { MaxContainers "=" M:Number "," << - if (_STOU64(M->getText()) > _STOU8(M->getText())) { + ... [truncated message content] |
From: <hc...@us...> - 2014-06-13 07:13:04
|
Revision: 2668 http://sourceforge.net/p/edk2-buildtools/code/2668 Author: hchen30 Date: 2014-06-13 07:12:55 +0000 (Fri, 13 Jun 2014) Log Message: ----------- 1. Fix GCC build rules for ASL sources that contain PCDs. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hess Chen <hes...@in...> Reviewed-by: Kinney, Michael D <mic...@in...> Reviewed-by: Zhang, Chao B <cha...@in...> Modified Paths: -------------- trunk/BaseTools/Conf/build_rule.template Modified: trunk/BaseTools/Conf/build_rule.template =================================================================== --- trunk/BaseTools/Conf/build_rule.template 2014-06-09 10:38:25 UTC (rev 2667) +++ trunk/BaseTools/Conf/build_rule.template 2014-06-13 07:12:55 UTC (rev 2668) @@ -1,5 +1,5 @@ # -# Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> # Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -359,7 +359,8 @@ <Command.GCC> Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src} "$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii - "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii + Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii + "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii [C-Code-File.AcpiTable] <InputFile> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yd...@us...> - 2014-06-09 10:38:28
|
Revision: 2667 http://sourceforge.net/p/edk2-buildtools/code/2667 Author: ydong10 Date: 2014-06-09 10:38:25 +0000 (Mon, 09 Jun 2014) Log Message: ----------- Fix undefined behavior in VfrCompiler. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Reza Jelveh <rez...@tu...> Reviewed-by: Eric Dong <eri...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.h Modified: trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp 2014-06-09 10:33:24 UTC (rev 2666) +++ trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp 2014-06-09 10:38:25 UTC (rev 2667) @@ -372,6 +372,8 @@ mPreProcessCmd = (CHAR8 *) PREPROCESSOR_COMMAND; mPreProcessOpt = (CHAR8 *) PREPROCESSOR_OPTIONS; + SET_RUN_STATUS (STATUS_STARTED); + OptionInitialization(Argc, Argv); if ((IS_RUN_STATUS(STATUS_FAILED)) || (IS_RUN_STATUS(STATUS_DEAD))) { Modified: trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.h =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.h 2014-06-09 10:33:24 UTC (rev 2666) +++ trunk/BaseTools/Source/C/VfrCompile/VfrCompiler.h 2014-06-09 10:38:25 UTC (rev 2667) @@ -60,7 +60,8 @@ } OPTIONS; typedef enum { - STATUS_INITIALIZED = 1, + STATUS_STARTED = 0, + STATUS_INITIALIZED, STATUS_PREPROCESSED, STATUS_COMPILEED, STATUS_GENBINARY, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yd...@us...> - 2014-06-09 10:33:29
|
Revision: 2666 http://sourceforge.net/p/edk2-buildtools/code/2666 Author: ydong10 Date: 2014-06-09 10:33:24 +0000 (Mon, 09 Jun 2014) Log Message: ----------- Add report error message logic for string to integer functions in VfrCompiler (STOU8, STOU16, STOU32, STOU64). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Aaron Pop <aa...@am...> Reviewed-by: Eric Dong <eri...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g Modified: trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-06-09 10:27:59 UTC (rev 2665) +++ trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-06-09 10:33:24 UTC (rev 2666) @@ -4344,11 +4344,13 @@ UINT8 Value; CHAR8 c; + UINT8 PreviousValue; + CHAR8 *OrigString = Str; + CHAR8 ErrorMsg[100]; + Str = TrimHex (Str, &IsHex); for (Value = 0; (c = *Str) != '\0'; Str++) { - // - // BUG: does not handle overflow here - // + PreviousValue = Value; (IsHex == TRUE) ? (Value <<= 4) : (Value *= 10); if ((IsHex == TRUE) && (c >= 'a') && (c <= 'f')) { @@ -4360,6 +4362,10 @@ if (c >= '0' && c <= '9') { Value += (c - '0'); } + if((IsHex && ((Value/16) != PreviousValue)) || (!IsHex && ((Value/10) != PreviousValue))) { + sprintf(ErrorMsg, "Overflow: Value %s is too large to store in a UINT8", OrigString); + _PCATCH (VFR_RETURN_INVALID_PARAMETER, 0, ErrorMsg); + } } return Value; @@ -4374,11 +4380,13 @@ UINT16 Value; CHAR8 c; + UINT16 PreviousValue; + CHAR8 *OrigString = Str; + CHAR8 ErrorMsg[100]; + Str = TrimHex (Str, &IsHex); for (Value = 0; (c = *Str) != '\0'; Str++) { - // - // BUG: does not handle overflow here - // + PreviousValue = Value; (IsHex == TRUE) ? (Value <<= 4) : (Value *= 10); if ((IsHex == TRUE) && (c >= 'a') && (c <= 'f')) { @@ -4390,6 +4398,10 @@ if (c >= '0' && c <= '9') { Value += (c - '0'); } + if((IsHex && ((Value/16) != PreviousValue)) || (!IsHex && ((Value/10) != PreviousValue))) { + sprintf(ErrorMsg, "Overflow: Value %s is too large to store in a UINT16", OrigString); + _PCATCH (VFR_RETURN_INVALID_PARAMETER, 0, ErrorMsg); + } } return Value; @@ -4404,11 +4416,13 @@ UINT32 Value; CHAR8 c; + UINT32 PreviousValue; + CHAR8 *OrigString = Str; + CHAR8 ErrorMsg[100]; + Str = TrimHex (Str, &IsHex); for (Value = 0; (c = *Str) != '\0'; Str++) { - // - // BUG: does not handle overflow here - // + PreviousValue = Value; (IsHex == TRUE) ? (Value <<= 4) : (Value *= 10); if ((IsHex == TRUE) && (c >= 'a') && (c <= 'f')) { @@ -4420,6 +4434,10 @@ if (c >= '0' && c <= '9') { Value += (c - '0'); } + if((IsHex && ((Value/16) != PreviousValue)) || (!IsHex && ((Value/10) != PreviousValue ))) { + sprintf(ErrorMsg, "Overflow: Value %s is too large to store in a UINT32", OrigString); + _PCATCH (VFR_RETURN_INVALID_PARAMETER, 0, ErrorMsg); + } } return Value; @@ -4433,12 +4451,13 @@ BOOLEAN IsHex; UINT64 Value; CHAR8 c; + UINT64 PreviousValue; + CHAR8 *OrigString = Str; + CHAR8 ErrorMsg[100]; Str = TrimHex (Str, &IsHex); for (Value = 0; (c = *Str) != '\0'; Str++) { - // - // BUG: does not handle overflow here - // + PreviousValue = Value; (IsHex == TRUE) ? (Value <<= 4) : (Value *= 10); if ((IsHex == TRUE) && (c >= 'a') && (c <= 'f')) { @@ -4450,6 +4469,10 @@ if (c >= '0' && c <= '9') { Value += (c - '0'); } + if((IsHex && ((Value/16) != PreviousValue)) || ((!IsHex && (Value/10) != PreviousValue))) { + sprintf(ErrorMsg, "Overflow: Value %s is too large to store in a UINT64", OrigString); + _PCATCH (VFR_RETURN_INVALID_PARAMETER, 0, ErrorMsg); + } } return Value; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yd...@us...> - 2014-06-09 10:28:03
|
Revision: 2665 http://sourceforge.net/p/edk2-buildtools/code/2665 Author: ydong10 Date: 2014-06-09 10:27:59 +0000 (Mon, 09 Jun 2014) Log Message: ----------- Add report error message logic for string to integer functions in VfrCompiler (STOU8, STOU16, STOU32, STOU64). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Aaron Pop <aa...@am...> Reviewed-by: Eric Dong <eri...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/VfrFormPkg.h trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g Modified: trunk/BaseTools/Source/C/VfrCompile/VfrFormPkg.h =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrFormPkg.h 2014-05-19 09:53:07 UTC (rev 2664) +++ trunk/BaseTools/Source/C/VfrCompile/VfrFormPkg.h 2014-06-09 10:27:59 UTC (rev 2665) @@ -2,7 +2,7 @@ The definition of CFormPkg's member function -Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR> +Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -1343,7 +1343,7 @@ UpdateCIfrMinMaxStepData(&mNumeric->data); } - EFI_VFR_RETURN_CODE SetFlags (IN UINT8 HFlags, IN UINT8 LFlags) { + EFI_VFR_RETURN_CODE SetFlags (IN UINT8 HFlags, IN UINT8 LFlags, BOOLEAN DisplaySettingsSpecified = FALSE) { EFI_VFR_RETURN_CODE Ret; Ret = CIfrQuestionHeader::SetFlags (HFlags); @@ -1351,10 +1351,10 @@ return Ret; } - if (LFlags & EFI_IFR_DISPLAY) { + if (DisplaySettingsSpecified == FALSE) { + mNumeric->Flags = LFlags | EFI_IFR_DISPLAY_UINT_DEC; + } else { mNumeric->Flags = LFlags; - } else { - mNumeric->Flags = LFlags | EFI_IFR_DISPLAY_UINT_DEC; } return VFR_RETURN_SUCCESS; } Modified: trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-05-19 09:53:07 UTC (rev 2664) +++ trunk/BaseTools/Source/C/VfrCompile/VfrSyntax.g 2014-06-09 10:27:59 UTC (rev 2665) @@ -1,5 +1,5 @@ /*++ -Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR> +Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -2277,8 +2277,9 @@ UINT8 HFlags = 0; EFI_VFR_VARSTORE_TYPE VarStoreType = EFI_VFR_VARSTORE_INVALID; BOOLEAN IsSetType = FALSE; + BOOLEAN IsDisplaySpecified = FALSE; >> - numericFlagsField[HFlags, LFlags, IsSetType] ( "\|" numericFlagsField[HFlags, LFlags, IsSetType] )* + numericFlagsField[HFlags, LFlags, IsSetType, IsDisplaySpecified] ( "\|" numericFlagsField[HFlags, LFlags, IsSetType, IsDisplaySpecified ] )* << //check data type flag if (_GET_CURRQEST_VARTINFO().mVarStoreId != EFI_VARSTORE_ID_INVALID) { @@ -2297,19 +2298,19 @@ } else if (IsSetType){ _GET_CURRQEST_VARTINFO().mVarType = LFlags & EFI_IFR_NUMERIC_SIZE; } - _PCATCH(NObj.SetFlags (HFlags, LFlags), LineNum); + _PCATCH(NObj.SetFlags (HFlags, LFlags, IsDisplaySpecified), LineNum); >> ; -numericFlagsField [UINT8 & HFlags, UINT8 & LFlags, BOOLEAN & IsSetType] : +numericFlagsField [UINT8 & HFlags, UINT8 & LFlags, BOOLEAN & IsSetType, BOOLEAN & IsDisplaySpecified] : N:Number << _PCATCH(_STOU8(N->getText()) == 0 ? VFR_RETURN_SUCCESS : VFR_RETURN_UNSUPPORTED, N->getLine()); >> | "NUMERIC_SIZE_1" << $LFlags = ($LFlags & ~EFI_IFR_NUMERIC_SIZE) | EFI_IFR_NUMERIC_SIZE_1; IsSetType = TRUE;>> | "NUMERIC_SIZE_2" << $LFlags = ($LFlags & ~EFI_IFR_NUMERIC_SIZE) | EFI_IFR_NUMERIC_SIZE_2; IsSetType = TRUE;>> | "NUMERIC_SIZE_4" << $LFlags = ($LFlags & ~EFI_IFR_NUMERIC_SIZE) | EFI_IFR_NUMERIC_SIZE_4; IsSetType = TRUE;>> | "NUMERIC_SIZE_8" << $LFlags = ($LFlags & ~EFI_IFR_NUMERIC_SIZE) | EFI_IFR_NUMERIC_SIZE_8; IsSetType = TRUE;>> - | "DISPLAY_INT_DEC" << $LFlags = ($LFlags & ~EFI_IFR_DISPLAY) | EFI_IFR_DISPLAY_INT_DEC; >> - | "DISPLAY_UINT_DEC" << $LFlags = ($LFlags & ~EFI_IFR_DISPLAY) | EFI_IFR_DISPLAY_UINT_DEC; >> - | "DISPLAY_UINT_HEX" << $LFlags = ($LFlags & ~EFI_IFR_DISPLAY) | EFI_IFR_DISPLAY_UINT_HEX; >> + | "DISPLAY_INT_DEC" << $LFlags = ($LFlags & ~EFI_IFR_DISPLAY) | EFI_IFR_DISPLAY_INT_DEC; IsDisplaySpecified = TRUE;>> + | "DISPLAY_UINT_DEC" << $LFlags = ($LFlags & ~EFI_IFR_DISPLAY) | EFI_IFR_DISPLAY_UINT_DEC; IsDisplaySpecified = TRUE;>> + | "DISPLAY_UINT_HEX" << $LFlags = ($LFlags & ~EFI_IFR_DISPLAY) | EFI_IFR_DISPLAY_UINT_HEX; IsDisplaySpecified = TRUE;>> | questionheaderFlagsField[HFlags] ; @@ -2366,8 +2367,9 @@ UINT8 HFlags = 0; EFI_VFR_VARSTORE_TYPE VarStoreType = EFI_VFR_VARSTORE_INVALID; BOOLEAN IsSetType = FALSE; + BOOLEAN IsDisplaySpecified = FALSE; >> - numericFlagsField[HFlags, LFlags, IsSetType] ( "\|" numericFlagsField[HFlags, LFlags, IsSetType] )* + numericFlagsField[HFlags, LFlags, IsSetType, IsDisplaySpecified] ( "\|" numericFlagsField[HFlags, LFlags, IsSetType, IsDisplaySpecified] )* << //check data type flag if (_GET_CURRQEST_VARTINFO().mVarStoreId != EFI_VARSTORE_ID_INVALID) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oli...@us...> - 2014-05-19 09:53:10
|
Revision: 2664 http://sourceforge.net/p/edk2-buildtools/code/2664 Author: oliviermartin Date: 2014-05-19 09:53:07 +0000 (Mon, 19 May 2014) Log Message: ----------- BaseTools/tools_def.template: Remove the hardcoded path for 'iasl' on Unix system Most Linux distributions do not provide an up to date IASL compiler. This older IASL compilers fail to build recent ACPI tables. We could expect more regular update of the ACPI spec after its governance moved to a larger organisation (the UEFI Forum). Engineers would need to update their IASL compiler more often. The OS environment variable IASL_PREFIX allows to define a specific IASL compiler. Otherwise, the binary in the PATH would be used. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <oli...@ar...> Reviewed-by: Jordan Justen <jor...@in...> Reviewed-by: Gao, Liming <lim...@in...> Reviewed-by: Liu, Yingke D <yin...@in...> Modified Paths: -------------- trunk/BaseTools/Conf/tools_def.template Modified: trunk/BaseTools/Conf/tools_def.template =================================================================== --- trunk/BaseTools/Conf/tools_def.template 2014-04-30 01:08:26 UTC (rev 2663) +++ trunk/BaseTools/Conf/tools_def.template 2014-05-19 09:53:07 UTC (rev 2664) @@ -162,8 +162,7 @@ DEFINE GCC48_IA32_PREFIX = /usr/bin/ DEFINE GCC48_X64_PREFIX = /usr/bin/ -DEFINE UNIX_IASL_BIN = /usr/bin/iasl -#DEFINE UNIX_IASL_BIN = $(HOME)/programs/iasl +DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl DEFINE WIN_ASL_BIN_DIR = C:\ASL DEFINE WIN_IASL_BIN = DEF(WIN_ASL_BIN_DIR)\iasl.exe DEFINE WIN_ASL_BIN = DEF(WIN_ASL_BIN_DIR)\asl.exe This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hc...@us...> - 2014-04-30 01:08:29
|
Revision: 2663 http://sourceforge.net/p/edk2-buildtools/code/2663 Author: hchen30 Date: 2014-04-30 01:08:26 +0000 (Wed, 30 Apr 2014) Log Message: ----------- 1. Add a support for <Word>.<Word> format of PCD offset. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hess Chen <hes...@in...> Reviewed-by: Liu, Yingke D <yin...@in...> Reviewed-by: Feng, Bob C <bob...@in...> Modified Paths: -------------- trunk/BaseTools/Source/Python/Common/Parsing.py trunk/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py Modified: trunk/BaseTools/Source/Python/Common/Parsing.py =================================================================== --- trunk/BaseTools/Source/Python/Common/Parsing.py 2014-04-25 06:32:07 UTC (rev 2662) +++ trunk/BaseTools/Source/Python/Common/Parsing.py 2014-04-30 01:08:26 UTC (rev 2663) @@ -1,7 +1,7 @@ ## @file # This file is used to define common parsing related functions used in parsing INF/DEC/DSC process # -# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -877,3 +877,38 @@ List[Key] = [Value] else: List[Key].append(Value) + +## IsValidWord +# +# Check whether the word is valid. +# <Word> ::= (a-zA-Z0-9_)(a-zA-Z0-9_-){0,} Alphanumeric characters with +# optional +# dash "-" and/or underscore "_" characters. No whitespace +# characters are permitted. +# +# @param Word: The word string need to be checked. +# +def IsValidWord(Word): + if not Word: + return False + # + # The first char should be alpha, _ or Digit. + # + if not Word[0].isalnum() and \ + not Word[0] == '_' and \ + not Word[0].isdigit(): + return False + + LastChar = '' + for Char in Word[1:]: + if (not Char.isalpha()) and \ + (not Char.isdigit()) and \ + Char != '-' and \ + Char != '_' and \ + Char != '.': + return False + if Char == '.' and LastChar == '.': + return False + LastChar = Char + + return True Modified: trunk/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py =================================================================== --- trunk/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py 2014-04-25 06:32:07 UTC (rev 2662) +++ trunk/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py 2014-04-30 01:08:26 UTC (rev 2663) @@ -37,6 +37,7 @@ from WorkspaceCommon import GetDeclaredPcd from Common.Misc import AnalyzeDscPcd import re +from Common.Parsing import IsValidWord ## Platform build information from DSC file # @@ -893,13 +894,23 @@ VariableName, VariableGuid, VariableOffset, DefaultValue = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4) ExceedMax = False + FormatCorrect = True if VariableOffset.isdigit(): if int(VariableOffset,10) > 0xFFFF: ExceedMax = True elif re.match(r'[\t\s]*0[xX][a-fA-F0-9]+$',VariableOffset): if int(VariableOffset,16) > 0xFFFF: ExceedMax = True + # For Offset written in "A.B" + elif VariableOffset.find('.') > -1: + VariableOffsetList = VariableOffset.split(".") + if not (len(VariableOffsetList) == 2 + and IsValidWord(VariableOffsetList[0]) + and IsValidWord(VariableOffsetList[1])): + FormatCorrect = False else: + FormatCorrect = False + if not FormatCorrect: EdkLogger.error('Build', FORMAT_INVALID, "Invalid syntax or format of the variable offset value is incorrect for %s." % ".".join((TokenSpaceGuid,PcdCName))) if ExceedMax: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jlj...@us...> - 2014-04-25 06:32:12
|
Revision: 2662 http://sourceforge.net/p/edk2-buildtools/code/2662 Author: jljusten Date: 2014-04-25 06:32:07 +0000 (Fri, 25 Apr 2014) Log Message: ----------- BaseTools: Use $(MAKE) variable to invoke a sub-make On FreeBSD GNU make is typically installed as gmake. Support this by using $(MAKE), the standard way to invoke a sub-make. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ed Maste <em...@fr...> Reviewed-by: Jordan Justen <jor...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/VfrCompile/GNUmakefile Modified: trunk/BaseTools/Source/C/VfrCompile/GNUmakefile =================================================================== --- trunk/BaseTools/Source/C/VfrCompile/GNUmakefile 2014-04-25 06:31:56 UTC (rev 2661) +++ trunk/BaseTools/Source/C/VfrCompile/GNUmakefile 2014-04-25 06:32:07 UTC (rev 2662) @@ -53,10 +53,10 @@ Pccts/dlg/dlg -C2 -i -CC -cl VfrLexer -o . VfrParser.dlg Pccts/antlr/antlr: - BIN_DIR='.' make -C Pccts/antlr + BIN_DIR='.' $(MAKE) -C Pccts/antlr Pccts/dlg/dlg: - BIN_DIR='.' make -C Pccts/dlg + BIN_DIR='.' $(MAKE) -C Pccts/dlg ATokenBuffer.o: Pccts/h/ATokenBuffer.cpp $(CXX) -c $(VFR_CPPFLAGS) $(INC) $? -o $@ @@ -73,7 +73,7 @@ clean: localClean localClean: - BIN_DIR='.' make -C Pccts/antlr clean - BIN_DIR='.' make -C Pccts/dlg clean + BIN_DIR='.' $(MAKE) -C Pccts/antlr clean + BIN_DIR='.' $(MAKE) -C Pccts/dlg clean rm -f $(EXTRA_CLEAN_OBJECTS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jlj...@us...> - 2014-04-25 06:32:00
|
Revision: 2661 http://sourceforge.net/p/edk2-buildtools/code/2661 Author: jljusten Date: 2014-04-25 06:31:56 +0000 (Fri, 25 Apr 2014) Log Message: ----------- BaseTools: accept 'amd64' as an alias for 'x86_64' On FreeBSD uname -a reports 'amd64' for the 64-bit x86 architecture. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ed Maste <em...@fr...> Reviewed-by: Laszlo Ersek <le...@re...> Reviewed-by: Jordan Justen <jor...@in...> Reviewed-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/C/GNUmakefile Modified: trunk/BaseTools/Source/C/GNUmakefile =================================================================== --- trunk/BaseTools/Source/C/GNUmakefile 2014-04-17 17:36:27 UTC (rev 2660) +++ trunk/BaseTools/Source/C/GNUmakefile 2014-04-25 06:31:56 UTC (rev 2661) @@ -19,7 +19,7 @@ # uname_m = $(shell uname -m) $(info Attempting to detect ARCH from 'uname -m': $(uname_m)) - ifeq ($(uname_m),x86_64) + ifneq (,$(strip $(filter $(uname_m), x86_64 amd64))) ARCH=X64 endif ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2014-04-17 17:36:30
|
Revision: 2660 http://sourceforge.net/p/edk2-buildtools/code/2660 Author: andrewfish Date: 2014-04-17 17:36:27 +0000 (Thu, 17 Apr 2014) Log Message: ----------- GenFds: Add Protocol, PPI, and GUID definitions to the Guid.xref file. Currently the Guid.xref file only contains the FFS filename GUID and module base name. This changes adds all the Protocols, PPIs, and GUIDs used by the modules (from AutoGen) to the list. Contributed-under: TianoCore Contribution Agreement 1.0 signed-off-by: Andrew Fish <af...@ap...> Reviewed-by: Gao, Liming <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/Python/GenFds/GenFds.py Modified: trunk/BaseTools/Source/Python/GenFds/GenFds.py =================================================================== --- trunk/BaseTools/Source/Python/GenFds/GenFds.py 2014-03-14 18:24:36 UTC (rev 2659) +++ trunk/BaseTools/Source/Python/GenFds/GenFds.py 2014-04-17 17:36:27 UTC (rev 2660) @@ -36,6 +36,7 @@ from Common.String import * from Common.Misc import DirCache,PathClass from Common.Misc import SaveFileOnChange +from Common.Misc import GuidStructureStringToGuidString from Common.BuildVersion import gBUILD_VERSION ## Version and Copyright @@ -511,11 +512,23 @@ def GenerateGuidXRefFile(BuildDb, ArchList): GuidXRefFileName = os.path.join(GenFdsGlobalVariable.FvDir, "Guid.xref") GuidXRefFile = StringIO.StringIO('') + GuidDict = {} for Arch in ArchList: PlatformDataBase = BuildDb.BuildObject[GenFdsGlobalVariable.ActivePlatform, Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] for ModuleFile in PlatformDataBase.Modules: Module = BuildDb.BuildObject[ModuleFile, Arch, GenFdsGlobalVariable.TargetName, GenFdsGlobalVariable.ToolChainTag] GuidXRefFile.write("%s %s\n" % (Module.Guid, Module.BaseName)) + for key, item in Module.Protocols.items(): + GuidDict[key] = item + for key, item in Module.Guids.items(): + GuidDict[key] = item + for key, item in Module.Ppis.items(): + GuidDict[key] = item + # Append GUIDs, Protocols, and PPIs to the Xref file + GuidXRefFile.write("\n") + for key, item in GuidDict.items(): + GuidXRefFile.write("%s %s\n" % (GuidStructureStringToGuidString(item).upper(), key)) + if GuidXRefFile.getvalue(): SaveFileOnChange(GuidXRefFileName, GuidXRefFile.getvalue(), False) GenFdsGlobalVariable.InfLogger("\nGUID cross reference file can be found at %s" % GuidXRefFileName) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jlj...@us...> - 2014-03-14 18:24:41
|
Revision: 2659 http://sourceforge.net/p/edk2-buildtools/code/2659 Author: jljusten Date: 2014-03-14 18:24:36 +0000 (Fri, 14 Mar 2014) Log Message: ----------- BaseTools LMFA: Fix issue detecting map file with newer binutils Previously the linker would produce this line as the first line in the map file: "Archive member included because of file (symbol)" With a newer linker, this is seen: "Archive member included to satisfy reference by file (symbol)" This change appears to have happened in binutils commit 16e4ecc0dbe114cfc97fe2cd32a035ae4c37f22b https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=16e4ecc0 To account for both situation, look for a line that starts with "Archive member included " and ends with " file (symbol)" Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jor...@in...> Reviewed-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py Modified: trunk/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py =================================================================== --- trunk/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py 2014-03-14 05:21:43 UTC (rev 2658) +++ trunk/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py 2014-03-14 18:24:36 UTC (rev 2659) @@ -53,7 +53,9 @@ return None if len(lines) == 0: return None - if lines[0].strip().find("Archive member included because of file (symbol)") != -1: + firstline = lines[0].strip() + if (firstline.startswith("Archive member included ") and + firstline.endswith(" file (symbol)")): return _parseForGCC(lines, efifilepath) return _parseGeneral(lines, efifilepath) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2014-03-14 05:21:45
|
Revision: 2658 http://sourceforge.net/p/edk2-buildtools/code/2658 Author: huzq Date: 2014-03-14 05:21:43 +0000 (Fri, 14 Mar 2014) Log Message: ----------- Add a support for ECC: Add a parameter to keep the directories which will scan by ECC. Signed-off-by: Hu, Zhenqing <zhe...@in...> Reviewed-by: Chen, Hesheng <hes...@in...> Modified Paths: -------------- trunk/BaseTools/Source/Python/Ecc/Configuration.py trunk/BaseTools/Source/Python/Ecc/Ecc.py trunk/BaseTools/Source/Python/Ecc/config.ini Modified: trunk/BaseTools/Source/Python/Ecc/Configuration.py =================================================================== --- trunk/BaseTools/Source/Python/Ecc/Configuration.py 2014-03-14 05:09:36 UTC (rev 2657) +++ trunk/BaseTools/Source/Python/Ecc/Configuration.py 2014-03-14 05:21:43 UTC (rev 2658) @@ -1,7 +1,7 @@ ## @file # This file is used to define class Configuration # -# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -247,6 +247,9 @@ # A list for binary file ext name self.BinaryExtList = [] + + # A list for only scanned folders + self.ScanOnlyDirList = [] self.ParseConfig() Modified: trunk/BaseTools/Source/Python/Ecc/Ecc.py =================================================================== --- trunk/BaseTools/Source/Python/Ecc/Ecc.py 2014-03-14 05:09:36 UTC (rev 2657) +++ trunk/BaseTools/Source/Python/Ecc/Ecc.py 2014-03-14 05:21:43 UTC (rev 2658) @@ -1,7 +1,7 @@ ## @file # This file is used to be the main entrance of ECC tool # -# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -59,6 +59,7 @@ self.ScanSourceCode = True self.ScanMetaData = True self.MetaFile = '' + self.OnlyScan = None # Parse the options and args self.ParseOption() @@ -113,8 +114,9 @@ GlobalData.gAllFiles = DirCache(GlobalData.gWorkspace) # Build ECC database - self.BuildDatabase() - +# self.BuildDatabase() + self.DetectOnlyScanDirs() + # Start to check self.Check() @@ -133,11 +135,30 @@ return self.ConfigFile = 'config.ini' + + ## DetectOnlyScan + # + # Detect whether only scanned folders have been enabled + # + def DetectOnlyScanDirs(self): + if self.OnlyScan == True: + OnlyScanDirs = [] + # Use regex here if multiple spaces or TAB exists in ScanOnlyDirList in config.ini file + for folder in re.finditer(r'\S+', EccGlobalData.gConfig.ScanOnlyDirList): + OnlyScanDirs.append(folder.group()) + if len(OnlyScanDirs) != 0: + self.BuildDatabase(OnlyScanDirs) + else: + EdkLogger.error("ECC", BuildToolError.OPTION_VALUE_INVALID, ExtraData="Use -f option need to fill specific folders in config.ini file") + else: + self.BuildDatabase() + + ## BuildDatabase # # Build the database for target # - def BuildDatabase(self): + def BuildDatabase(self, SpeciDirs = None): # Clean report table EccGlobalData.gDb.TblReport.Drop() EccGlobalData.gDb.TblReport.Create() @@ -146,10 +167,14 @@ if self.IsInit: if self.ScanMetaData: EdkLogger.quiet("Building database for Meta Data File ...") - self.BuildMetaDataFileDatabase() + self.BuildMetaDataFileDatabase(SpeciDirs) if self.ScanSourceCode: EdkLogger.quiet("Building database for Meta Data File Done!") - c.CollectSourceCodeDataIntoDB(EccGlobalData.gTarget) + if SpeciDirs == None: + c.CollectSourceCodeDataIntoDB(EccGlobalData.gTarget) + else: + for specificDir in SpeciDirs: + c.CollectSourceCodeDataIntoDB(os.path.join(EccGlobalData.gTarget, specificDir)) EccGlobalData.gIdentifierTableList = GetTableList((MODEL_FILE_C, MODEL_FILE_H), 'Identifier', EccGlobalData.gDb) EccGlobalData.gCFileList = GetFileList(MODEL_FILE_C, EccGlobalData.gDb) @@ -159,59 +184,67 @@ # # Build the database for meta data files # - def BuildMetaDataFileDatabase(self): + def BuildMetaDataFileDatabase(self, SpecificDirs = None): + ScanFolders = [] + if SpecificDirs == None: + ScanFolders.append(EccGlobalData.gTarget) + else: + for specificDir in SpecificDirs: + ScanFolders.append(os.path.join(EccGlobalData.gTarget, specificDir)) EdkLogger.quiet("Building database for meta data files ...") Op = open(EccGlobalData.gConfig.MetaDataFileCheckPathOfGenerateFileList, 'w+') #SkipDirs = Read from config file SkipDirs = EccGlobalData.gConfig.SkipDirList SkipDirString = string.join(SkipDirs, '|') - p = re.compile(r'.*[\\/](?:%s)[\\/]?.*' % SkipDirString) - for Root, Dirs, Files in os.walk(EccGlobalData.gTarget): - if p.match(Root.upper()): - continue - for Dir in Dirs: - Dirname = os.path.join(Root, Dir) - if os.path.islink(Dirname): - Dirname = os.path.realpath(Dirname) - if os.path.isdir(Dirname): - # symlinks to directories are treated as directories - Dirs.remove(Dir) - Dirs.append(Dirname) - - for File in Files: - if len(File) > 4 and File[-4:].upper() == ".DEC": - Filename = os.path.normpath(os.path.join(Root, File)) - EdkLogger.quiet("Parsing %s" % Filename) - Op.write("%s\r" % Filename) - #Dec(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) - self.MetaFile = DecParser(Filename, MODEL_FILE_DEC, EccGlobalData.gDb.TblDec) - self.MetaFile.Start() +# p = re.compile(r'.*[\\/](?:%s)[\\/]?.*' % SkipDirString) + p = re.compile(r'.*[\\/](?:%s^\S)[\\/]?.*' % SkipDirString) + for scanFolder in ScanFolders: + for Root, Dirs, Files in os.walk(scanFolder): + if p.match(Root.upper()): continue - if len(File) > 4 and File[-4:].upper() == ".DSC": - Filename = os.path.normpath(os.path.join(Root, File)) - EdkLogger.quiet("Parsing %s" % Filename) - Op.write("%s\r" % Filename) - #Dsc(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) - self.MetaFile = DscParser(PathClass(Filename, Root), MODEL_FILE_DSC, MetaFileStorage(EccGlobalData.gDb.TblDsc.Cur, Filename, MODEL_FILE_DSC, True)) - # alwasy do post-process, in case of macros change - self.MetaFile.DoPostProcess() - self.MetaFile.Start() - self.MetaFile._PostProcess() - continue - if len(File) > 4 and File[-4:].upper() == ".INF": - Filename = os.path.normpath(os.path.join(Root, File)) - EdkLogger.quiet("Parsing %s" % Filename) - Op.write("%s\r" % Filename) - #Inf(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) - self.MetaFile = InfParser(Filename, MODEL_FILE_INF, EccGlobalData.gDb.TblInf) - self.MetaFile.Start() - continue - if len(File) > 4 and File[-4:].upper() == ".FDF": - Filename = os.path.normpath(os.path.join(Root, File)) - EdkLogger.quiet("Parsing %s" % Filename) - Op.write("%s\r" % Filename) - Fdf(Filename, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) - continue + for Dir in Dirs: + Dirname = os.path.join(Root, Dir) + if os.path.islink(Dirname): + Dirname = os.path.realpath(Dirname) + if os.path.isdir(Dirname): + # symlinks to directories are treated as directories + Dirs.remove(Dir) + Dirs.append(Dirname) + + for File in Files: + if len(File) > 4 and File[-4:].upper() == ".DEC": + Filename = os.path.normpath(os.path.join(Root, File)) + EdkLogger.quiet("Parsing %s" % Filename) + Op.write("%s\r" % Filename) + #Dec(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) + self.MetaFile = DecParser(Filename, MODEL_FILE_DEC, EccGlobalData.gDb.TblDec) + self.MetaFile.Start() + continue + if len(File) > 4 and File[-4:].upper() == ".DSC": + Filename = os.path.normpath(os.path.join(Root, File)) + EdkLogger.quiet("Parsing %s" % Filename) + Op.write("%s\r" % Filename) + #Dsc(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) + self.MetaFile = DscParser(PathClass(Filename, Root), MODEL_FILE_DSC, MetaFileStorage(EccGlobalData.gDb.TblDsc.Cur, Filename, MODEL_FILE_DSC, True)) + # alwasy do post-process, in case of macros change + self.MetaFile.DoPostProcess() + self.MetaFile.Start() + self.MetaFile._PostProcess() + continue + if len(File) > 4 and File[-4:].upper() == ".INF": + Filename = os.path.normpath(os.path.join(Root, File)) + EdkLogger.quiet("Parsing %s" % Filename) + Op.write("%s\r" % Filename) + #Inf(Filename, True, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) + self.MetaFile = InfParser(Filename, MODEL_FILE_INF, EccGlobalData.gDb.TblInf) + self.MetaFile.Start() + continue + if len(File) > 4 and File[-4:].upper() == ".FDF": + Filename = os.path.normpath(os.path.join(Root, File)) + EdkLogger.quiet("Parsing %s" % Filename) + Op.write("%s\r" % Filename) + Fdf(Filename, True, EccGlobalData.gWorkspace, EccGlobalData.gDb) + continue Op.close() # Commit to database @@ -321,6 +354,8 @@ self.ScanSourceCode = False if Options.sourcecode != None: self.ScanMetaData = False + if Options.folders != None: + self.OnlyScan = True ## SetLogLevel # @@ -371,6 +406,7 @@ "and warning messages, etc.") Parser.add_option("-d", "--debug", action="store", type="int", help="Enable debug messages at specified level.") Parser.add_option("-w", "--workspace", action="store", type="string", dest='Workspace', help="Specify workspace.") + Parser.add_option("-f", "--folders", action="store_true", type=None, help="Only scanning specified folders which are recorded in config.ini file.") (Opt, Args)=Parser.parse_args() Modified: trunk/BaseTools/Source/Python/Ecc/config.ini =================================================================== --- trunk/BaseTools/Source/Python/Ecc/config.ini 2014-03-14 05:09:36 UTC (rev 2657) +++ trunk/BaseTools/Source/Python/Ecc/config.ini 2014-03-14 05:21:43 UTC (rev 2658) @@ -2,7 +2,7 @@ # This file is used to set configuration of ECC tool # For the items listed below, 1 means valid, 0 means invalid # -# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -255,3 +255,5 @@ # A list for binary file ext name BinaryExtList = EXE, EFI, FV, ROM, DLL, COM, BMP, GIF, PYD, CMP, BIN, JPG, UNI, RAW, COM2, LIB, DEPEX, SYS, DB +# A list for only scanning dirs, the dirs should be the top folder(s) under workspace +ScanOnlyDirList = ScanFolder1 ScanFolder2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hu...@us...> - 2014-03-14 05:09:39
|
Revision: 2657 http://sourceforge.net/p/edk2-buildtools/code/2657 Author: huzq Date: 2014-03-14 05:09:36 +0000 (Fri, 14 Mar 2014) Log Message: ----------- Fix tracker 210283: ECC not support keyword "IN" used in conditional directives. Signed-off-by: Hu, Zhenqing <zhe...@in...> Reviewed-by: Chen, Hesheng <hes...@in...> Modified Paths: -------------- trunk/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py Modified: trunk/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py =================================================================== --- trunk/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py 2014-02-27 05:20:21 UTC (rev 2656) +++ trunk/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py 2014-03-14 05:09:36 UTC (rev 2657) @@ -1,7 +1,7 @@ ## @file # This file is used to parse meta files # -# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR> # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -1054,7 +1054,7 @@ ## Override parent's method since we'll do all macro replacements in parser def _GetMacros(self): - Macros = {} + Macros = dict( [('ARCH','IA32'), ('FAMILY','MSFT'),('TOOL_CHAIN_TAG','VS2008x86'),('TARGET','DEBUG')]) Macros.update(self._FileLocalMacros) Macros.update(self._GetApplicableSectionMacro()) Macros.update(GlobalData.gEdkGlobal) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <yi...@us...> - 2014-02-27 05:20:25
|
Revision: 2656 http://sourceforge.net/p/edk2-buildtools/code/2656 Author: yingke Date: 2014-02-27 05:20:21 +0000 (Thu, 27 Feb 2014) Log Message: ----------- Add DLL path for DDK3790 tool chain. Reviewed-by: Liming Gao <lim...@in...> Signed-off-by: Yu Wang <yu...@in...> Modified Paths: -------------- trunk/BaseTools/Conf/tools_def.template Modified: trunk/BaseTools/Conf/tools_def.template =================================================================== --- trunk/BaseTools/Conf/tools_def.template 2014-02-26 00:34:46 UTC (rev 2655) +++ trunk/BaseTools/Conf/tools_def.template 2014-02-27 05:20:21 UTC (rev 2656) @@ -2875,6 +2875,7 @@ # ASL - Intel ACPI Source Language Compiler (iasl.exe) *_DDK3790_*_*_FAMILY = MSFT +*_DDK3790_*_*_DLL = DEF(WINDDK_BIN32) *_DDK3790_*_MAKE_PATH = DEF(WINDDK_BIN32)\nmake.exe *_DDK3790_*_MAKE_FLAGS = /nologo *_DDK3790_*_RC_PATH = DEF(WINDDK_BIN32)\rc.exe @@ -3000,6 +3001,7 @@ # ASL - Microsoft ACPI Source Language Compiler (asl.exe) *_DDK3790xASL_*_*_FAMILY = MSFT +*_DDK3790xASL_*_*_DLL = DEF(WINDDK_BIN32) *_DDK3790xASL_*_MAKE_PATH = DEF(WINDDK_BIN32)\nmake.exe *_DDK3790xASL_*_MAKE_FLAGS = /nologo *_DDK3790xASL_*_RC_PATH = DEF(WINDDK_BIN32)\rc.exe This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hc...@us...> - 2014-02-26 00:34:58
|
Revision: 2655 http://sourceforge.net/p/edk2-buildtools/code/2655 Author: hchen30 Date: 2014-02-26 00:34:46 +0000 (Wed, 26 Feb 2014) Log Message: ----------- [SVN commit log] 1. Support UPT to handle multiple arch in one section for binary files to find their PCDs 2. Support UPT to handle specific arch binary file to find PCDs defined in COMMON Modified Paths: -------------- trunk/BaseTools/Source/Python/UPT/Library/String.py trunk/BaseTools/Source/Python/UPT/Xml/ModuleSurfaceAreaXml.py Modified: trunk/BaseTools/Source/Python/UPT/Library/String.py =================================================================== --- trunk/BaseTools/Source/Python/UPT/Library/String.py 2014-02-24 14:18:37 UTC (rev 2654) +++ trunk/BaseTools/Source/Python/UPT/Library/String.py 2014-02-26 00:34:46 UTC (rev 2655) @@ -2,7 +2,7 @@ # This file is used to define common string related functions used in parsing # process # -# Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR> # # This program and the accompanying materials are licensed and made available # under the terms and conditions of the BSD License which accompanies this @@ -937,3 +937,29 @@ return ['', '', ''], False return ['', '', ''], False + +## Check if two arches matched? +# +# @param Arch1 +# @param Arch2 +# +def IsMatchArch(Arch1, Arch2): + if 'COMMON' in Arch1 or 'COMMON' in Arch2: + return True + if isinstance(Arch1, basestring) and isinstance(Arch2, basestring): + if Arch1 == Arch2: + return True + + if isinstance(Arch1, basestring) and isinstance(Arch2, list): + return Arch1 in Arch2 + + if isinstance(Arch2, basestring) and isinstance(Arch1, list): + return Arch2 in Arch1 + + if isinstance(Arch1, list) and isinstance(Arch2, list): + for Item1 in Arch1: + for Item2 in Arch2: + if Item1 == Item2: + return True + + return False Modified: trunk/BaseTools/Source/Python/UPT/Xml/ModuleSurfaceAreaXml.py =================================================================== --- trunk/BaseTools/Source/Python/UPT/Xml/ModuleSurfaceAreaXml.py 2014-02-24 14:18:37 UTC (rev 2654) +++ trunk/BaseTools/Source/Python/UPT/Xml/ModuleSurfaceAreaXml.py 2014-02-26 00:34:46 UTC (rev 2655) @@ -1,7 +1,7 @@ ## @file # This file is used to parse a Module file of .PKG file # -# Copyright (c) 2011, Intel Corporation. All rights reserved.<BR> +# Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR> # # This program and the accompanying materials are licensed and made available # under the terms and conditions of the BSD License which accompanies this @@ -20,6 +20,7 @@ from Library.String import ConvertNEToNOTEQ from Library.String import ConvertNOTEQToNE from Library.String import GetStringOfList +from Library.String import IsMatchArch from Library.Xml.XmlRoutines import XmlElement from Library.Xml.XmlRoutines import XmlAttribute from Library.Xml.XmlRoutines import XmlNode @@ -128,9 +129,11 @@ pass NodeList = [] FilenameList = BinaryFile.GetFileNameList() + SupportArch = None for Filename in FilenameList: Tmp = FilenameXml() NodeList.append(Tmp.ToXml(Filename, 'Filename')) + SupportArch = Filename.SupArchList if GlobalData.gIS_BINARY_INF: AsBuildList = BinaryFile.GetAsBuiltList() @@ -142,12 +145,14 @@ AsBuiltNodeList = [] for Pcd in PatchPcdValueList: - Tmp = PcdEntryXml() - AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PatchPcdValue')) + if IsMatchArch(Pcd.SupArchList, SupportArch): + Tmp = PcdEntryXml() + AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PatchPcdValue')) for Pcd in PcdExList: - Tmp = PcdEntryXml() - AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PcdExValue')) + if IsMatchArch(Pcd.SupArchList, SupportArch): + Tmp = PcdEntryXml() + AsBuiltNodeList.append(Tmp.ToXml4(Pcd, 'PcdExValue')) GuiVerElemList = [] for LibGuidVer in LibGuidVerList: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oli...@us...> - 2014-02-24 14:18:41
|
Revision: 2654 http://sourceforge.net/p/edk2-buildtools/code/2654 Author: oliviermartin Date: 2014-02-24 14:18:37 +0000 (Mon, 24 Feb 2014) Log Message: ----------- BaseTools: Add the latests versions of Visual Studio to build Both edksetup.bat and BaseTools/toolsetup.bat had chunks of code to identify the version of Visual Studio from the environment. They both needed updating to allow for more recent versions. To simplify future maintenance a common .bat file is added and used by both. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <oli...@ar...> Reviewed-by Yingke Liu <yin...@in...> Modified Paths: -------------- trunk/BaseTools/toolsetup.bat Added Paths: ----------- trunk/BaseTools/get_vsvars.bat Added: trunk/BaseTools/get_vsvars.bat =================================================================== --- trunk/BaseTools/get_vsvars.bat (rev 0) +++ trunk/BaseTools/get_vsvars.bat 2014-02-24 14:18:37 UTC (rev 2654) @@ -0,0 +1,46 @@ +@REM @file +@REM Windows batch file to find the Visual Studio set up script +@REM +@REM Copyright (c) 2013-2014, ARM Limited. All rights reserved. + +@REM This program and the accompanying materials +@REM are licensed and made available under the terms and conditions of the BSD License +@REM which accompanies this distribution. The full text of the license may be found at +@REM http://opensource.org/licenses/bsd-license.php +@REM +@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +@REM + + +@echo off +goto :main + +:read_vsvars +@rem Do nothing if already found, otherwise call vsvars32.bat if there +if defined VCINSTALLDIR goto :EOF + set GET_VSVARS_BAT_CHECK_DIR=%* + set GET_VSVARS_BAT_CHECK_DIR=%GET_VSVARS_BAT_CHECK_DIR:"=% + if exist "%GET_VSVARS_BAT_CHECK_DIR%\vsvars32.bat" call "%GET_VSVARS_BAT_CHECK_DIR%\vsvars32.bat" +:vsvars_done +goto :EOF + + +REM NOTE: This file will find the most recent Visual Studio installation +REM apparent from the environment. +REM To use an older version, modify your environment set up. +REM (Or invoke the relevant vsvars32 file beforehand). + +:main +if defined VCINSTALLDIR goto :done + if defined VS140COMNTOOLS call :read_vsvars "%VS140COMNTOOLS%" + if defined VS130COMNTOOLS call :read_vsvars "%VS130COMNTOOLS%" + if defined VS120COMNTOOLS call :read_vsvars "%VS120COMNTOOLS%" + if defined VS110COMNTOOLS call :read_vsvars "%VS110COMNTOOLS%" + if defined VS100COMNTOOLS call :read_vsvars "%VS100COMNTOOLS%" + if defined VS90COMNTOOLS call :read_vsvars "%VS90COMNTOOLS%" + if defined VS80COMNTOOLS call :read_vsvars "%VS80COMNTOOLS%" + if defined VS71COMNTOOLS call :read_vsvars "%VS71COMNTOOLS%" + +:done +set GET_VSVARS_BAT_CHECK_DIR= Modified: trunk/BaseTools/toolsetup.bat =================================================================== --- trunk/BaseTools/toolsetup.bat 2014-02-24 14:16:30 UTC (rev 2653) +++ trunk/BaseTools/toolsetup.bat 2014-02-24 14:18:37 UTC (rev 2654) @@ -292,31 +292,16 @@ echo PYTHON_FREEZER_PATH = %PYTHON_FREEZER_PATH% echo. - if defined VCINSTALLDIR goto VisualStudioAvailable - if defined VS100COMNTOOLS ( - call "%VS100COMNTOOLS%\vsvars32.bat" - ) else ( - if defined VS90COMNTOOLS ( - call "%VS90COMNTOOLS%\vsvars32.bat" - ) else ( - if defined VS80COMNTOOLS ( - call "%VS80COMNTOOLS%\vsvars32.bat" - ) else ( - if defined VS71COMNTOOLS ( - call "%VS71COMNTOOLS%\vsvars32.bat" - ) else ( - echo. - echo !!! ERROR !!!! Cannot find Visual Studio, required to build C tools !!! - echo. - goto end - ) - ) - ) + call "%EDK_TOOLS_PATH%\get_vsvars.bat" + if not defined VCINSTALLDIR ( + @echo. + @echo !!! ERROR !!!! Cannot find Visual Studio, required to build C tools !!! + @echo. + goto end ) :VisualStudioAvailable - if defined FORCE_REBUILD goto CleanAndBuild - goto IncrementalBuild + if not defined FORCE_REBUILD goto IncrementalBuild :CleanAndBuild pushd . This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oli...@us...> - 2014-02-24 14:16:33
|
Revision: 2653 http://sourceforge.net/p/edk2-buildtools/code/2653 Author: oliviermartin Date: 2014-02-24 14:16:30 +0000 (Mon, 24 Feb 2014) Log Message: ----------- BaseTools/toolsetup.bat: Basetools corrupts PYTHONPATH The PYTHONPATH variable is used globally by Python, but is corrupted by toolsetup.bat that means that downstream invocation of python scripts may fail as they will not be able to find library modules. The basic fix is to use set PYTHONPATH=%BASETOOLS_PYTHON_SOURCE%;%PYTHONPATH% Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <oli...@ar...> Reviewed-by Yingke Liu <yin...@in...> Modified Paths: -------------- trunk/BaseTools/toolsetup.bat Modified: trunk/BaseTools/toolsetup.bat =================================================================== --- trunk/BaseTools/toolsetup.bat 2014-02-24 14:07:06 UTC (rev 2652) +++ trunk/BaseTools/toolsetup.bat 2014-02-24 14:16:30 UTC (rev 2653) @@ -246,7 +246,8 @@ ) set PATH=%BASE_TOOLS_PATH%\Bin\Win32;%PATH% - set PYTHONPATH=%BASE_TOOLS_PATH%\Source\Python + set BASETOOLS_PYTHON_SOURCE=%BASE_TOOLS_PATH%\Source\Python + set PYTHONPATH=%BASETOOLS_PYTHON_SOURCE%;%PYTHONPATH% if not defined PYTHON_HOME ( if defined PYTHONHOME ( @@ -279,8 +280,9 @@ echo !!! WARNING !!! Will not be able to compile Python programs to .exe echo Will setup environment to run Python scripts directly. echo. - set PYTHONPATH=%BASE_TOOLS_PATH%\Source\Python - set PATH=%PYTHONPATH%\build;%PYTHONPATH%\GenFds;%PYTHONPATH%\Trim;%PATH% + set PATH=%BASETOOLS_PYTHON_SOURCE%\Trim;%PATH% + set PATH=%BASETOOLS_PYTHON_SOURCE%\GenFds;%PATH% + set PATH=%BASETOOLS_PYTHON_SOURCE%\build;%PATH% set PATHEXT=%PATHEXT%;.py ) ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oli...@us...> - 2014-02-24 14:07:11
|
Revision: 2652 http://sourceforge.net/p/edk2-buildtools/code/2652 Author: oliviermartin Date: 2014-02-24 14:07:06 +0000 (Mon, 24 Feb 2014) Log Message: ----------- BaseTools: Rectify use of @ in .BAT files. Tracing of the .BAT files is obscured by use of the @ prefix and is confused by the "echo on" at the end of toolsetup.bat. Silent all the 'echo' with '@'. And remove '@' from the non 'echo' line to make easier to trace the batch files when 'echo on'. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Olivier Martin <oli...@ar...> Reviewed-by Yingke Liu <yin...@in...> Modified Paths: -------------- trunk/BaseTools/toolsetup.bat Modified: trunk/BaseTools/toolsetup.bat =================================================================== --- trunk/BaseTools/toolsetup.bat 2014-02-24 12:41:11 UTC (rev 2651) +++ trunk/BaseTools/toolsetup.bat 2014-02-24 14:07:06 UTC (rev 2652) @@ -22,32 +22,32 @@ @REM # You should not have to modify anything below this line @REM # -@if /I "%1"=="-h" goto Usage -@if /I "%1"=="-help" goto Usage -@if /I "%1"=="--help" goto Usage -@if /I "%1"=="/h" goto Usage -@if /I "%1"=="/help" goto Usage -@if /I "%1"=="/?" goto Usage +if /I "%1"=="-h" goto Usage +if /I "%1"=="-help" goto Usage +if /I "%1"=="--help" goto Usage +if /I "%1"=="/h" goto Usage +if /I "%1"=="/help" goto Usage +if /I "%1"=="/?" goto Usage :loop - @if "%1"=="" goto setup_workspace - @if /I "%1"=="--nt32" ( + if "%1"=="" goto setup_workspace + if /I "%1"=="--nt32" ( @REM Ignore --nt32 flag shift goto loop ) - @if /I "%1"=="Reconfig" ( + if /I "%1"=="Reconfig" ( shift set RECONFIG=TRUE goto loop ) - @if /I "%1"=="Rebuild" ( + if /I "%1"=="Rebuild" ( shift set REBUILD=TRUE goto loop ) - @if /I "%1"=="ForceRebuild" ( + if /I "%1"=="ForceRebuild" ( shift set FORCE_REBUILD=TRUE goto loop @@ -352,17 +352,17 @@ goto end :Usage - echo. + @echo. echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [ Rebuild | ForceRebuild ] [Reconfig] [base_tools_path [edk_tools_path]]" - echo. - echo base_tools_path BaseTools project path, BASE_TOOLS_PATH will be set to this path. - echo edk_tools_path EDK_TOOLS_PATH will be set to this path. - echo Rebuild If sources are available perform an Incremental build, only - echo build those updated tools. - echo ForceRebuild If sources are available, rebuild all tools regardless of - echo whether they have been updated or not. - echo Reconfig Reinstall target.txt, tools_def.txt and build_rule.txt. -echo. + @echo. + @echo base_tools_path BaseTools project path, BASE_TOOLS_PATH will be set to this path. + @echo edk_tools_path EDK_TOOLS_PATH will be set to this path. + @echo Rebuild If sources are available perform an Incremental build, only + @echo build those updated tools. + @echo ForceRebuild If sources are available, rebuild all tools regardless of + @echo whether they have been updated or not. + @echo Reconfig Reinstall target.txt, tools_def.txt and build_rule.txt. + @echo. :end set REBUILD= @@ -370,5 +370,3 @@ set RECONFIG= popd -@echo on - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <oli...@us...> - 2014-02-24 12:41:14
|
Revision: 2651 http://sourceforge.net/p/edk2-buildtools/code/2651 Author: oliviermartin Date: 2014-02-24 12:41:11 +0000 (Mon, 24 Feb 2014) Log Message: ----------- BaseTools/Conf/build_rule.template: convert GCC ld archive parameters to --start-group and --end-group Convert GCC ld archive parameters to more OS agnostic long versions. Running GCC ld under Windows doesn't require the escaping of the "(" and ")" characters. Changing the -\( to --start-group and -\) to --end-group should cover GCC no matter where it runs. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Garrett Kirkendall <gar...@am...> Tested-by: Olivier Martin <Oli...@ar...> Tested-by: Jordan Justen <jor...@in...> Tested-by: Liming Gao <lim...@in...> Modified Paths: -------------- trunk/BaseTools/Conf/build_rule.template Modified: trunk/BaseTools/Conf/build_rule.template =================================================================== --- trunk/BaseTools/Conf/build_rule.template 2014-02-20 08:55:36 UTC (rev 2650) +++ trunk/BaseTools/Conf/build_rule.template 2014-02-24 12:41:11 UTC (rev 2651) @@ -240,11 +240,11 @@ "$(DLINK)" /OUT:${dst} $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) <Command.GCC> - "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS) + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst} <Command.ARMGCC, Command.ARMLINUXGCC> - "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS) + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) --end-group $(DLINK2_FLAGS) <Command.RVCT> "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) @@ -271,10 +271,10 @@ "$(DLINK)" $(DLINK_FLAGS) $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) <Command.GCC> - "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS) + "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS) <Command.ARMGCC, Command.ARMLINUXGCC> - "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS) + "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) --end-group $(DLINK2_FLAGS) <Command.RVCT> "$(DLINK)" $(DLINK_FLAGS) -o ${dst} $(DLINK_SPATH) --via $(STATIC_LIBRARY_FILES_LIST) $(DLINK2_FLAGS) @@ -429,7 +429,7 @@ "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii - "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(LIBS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj -\) + "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(LIBS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj --end-group <Command.XCODE> "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |