|
From: <qh...@us...> - 2010-05-12 01:33:18
|
Revision: 1970
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=1970&view=rev
Author: qhuang8
Date: 2010-05-12 01:33:12 +0000 (Wed, 12 May 2010)
Log Message:
-----------
Ignore the [depex] for user-defined modules as the contents of them should be analyzed by 3rd party tool.
This fix avoids the build.exe crash when [depex] section appears in module INF with USER_DEFINED module type.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-05-10 21:21:44 UTC (rev 1969)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-05-12 01:33:12 UTC (rev 1970)
@@ -1953,8 +1953,10 @@
return
for ModuleType in self.DepexList:
- if len(self.DepexList[ModuleType]) == 0:
+ # Ignore empty [depex] section or [depex] section for "USER_DEFINED" module
+ if len(self.DepexList[ModuleType]) == 0 or ModuleType == "USER_DEFINED":
continue
+
Dpx = GenDepex.DependencyExpression(self.DepexList[ModuleType], ModuleType, True)
DpxFile = gAutoGenDepexFileName % {"module_name" : self.Name}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2010-08-23 03:47:51
|
Revision: 2024
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2024&view=rev
Author: gikidy
Date: 2010-08-23 03:47:45 +0000 (Mon, 23 Aug 2010)
Log Message:
-----------
Not process VPD type pcd if no VPD_TOOL_GUID defined in DSC file.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-08-20 00:00:38 UTC (rev 2023)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-08-23 03:47:45 UTC (rev 2024)
@@ -496,10 +496,11 @@
OtherPcdArray.append(Pcd)
if Pcd.Type in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:
- VpdFile.Add(Pcd, Sku.VpdOffset)
- # if the offset of a VPD is *, then it need to be fixed up by third party tool.
- if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":
- NeedProcessVpdMapFile = True
+ if not (self.Platform.VpdToolGuid == None or self.Platform.VpdToolGuid == ''):
+ VpdFile.Add(Pcd, Sku.VpdOffset)
+ # if the offset of a VPD is *, then it need to be fixed up by third party tool.
+ if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":
+ NeedProcessVpdMapFile = True
if (self.Platform.FlashDefinition == None or self.Platform.FlashDefinition == '') and \
VpdFile.GetCount() != 0:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2010-09-03 02:04:33
|
Revision: 2038
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2038&view=rev
Author: gikidy
Date: 2010-09-03 02:04:27 +0000 (Fri, 03 Sep 2010)
Log Message:
-----------
For support sub-type of DynamicEx. Such as define [PcdEx] in INF and [PcdDynamicExVpd] in DSC.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-02 08:16:46 UTC (rev 2037)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-03 02:04:27 UTC (rev 2038)
@@ -1074,6 +1074,10 @@
if FromPcd != None:
if ToPcd.Pending and FromPcd.Type not in [None, '']:
ToPcd.Type = FromPcd.Type
+ elif (ToPcd.Type not in [None, '']) and (FromPcd.Type not in [None, ''])\
+ and (ToPcd.Type != FromPcd.Type) and (ToPcd.Type in FromPcd.Type):
+ if ToPcd.Type.strip() == "DynamicEx":
+ ToPcd.Type = FromPcd.Type
elif ToPcd.Type not in [None, ''] and FromPcd.Type not in [None, ''] \
and ToPcd.Type != FromPcd.Type:
EdkLogger.error("build", OPTION_CONFLICT, "Mismatched PCD type",
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2010-09-03 05:19:31
|
Revision: 2039
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2039&view=rev
Author: gikidy
Date: 2010-09-03 05:19:25 +0000 (Fri, 03 Sep 2010)
Log Message:
-----------
Print error messages while non-VOID* type PCD format has issue.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-03 02:04:27 UTC (rev 2038)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-03 05:19:25 UTC (rev 2039)
@@ -502,10 +502,15 @@
#
# Fix the optional data of VPD PCD.
#
- if (Pcd.DatumType.strip() != "VOID*" and Pcd.DatumType.strip() != "VOID *"):
+ if (Pcd.DatumType.strip() != "VOID*"):
if Sku.DefaultValue == '':
Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]].DefaultValue = Pcd.MaxDatumSize
- Pcd.MaxDatumSize = None
+ Pcd.MaxDatumSize = None
+ else:
+ EdkLogger.error("build", AUTOGEN_ERROR, "PCD setting error",
+ File=self.MetaFile,
+ ExtraData="\n\tPCD: %s.%s format incorrect in DSC: %s\n\t\t\n"
+ % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, self.Platform.MetaFile.Path))
VpdFile.Add(Pcd, Sku.VpdOffset)
# if the offset of a VPD is *, then it need to be fixed up by third party tool.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2010-09-10 01:42:07
|
Revision: 2045
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2045&view=rev
Author: gikidy
Date: 2010-09-10 01:42:01 +0000 (Fri, 10 Sep 2010)
Log Message:
-----------
Fixed signature PCD value override in DSC file and give a warning message while signature pcd been used.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-08 03:30:30 UTC (rev 2044)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-10 01:42:01 UTC (rev 2045)
@@ -544,9 +544,18 @@
DecPcdEntry = eachDec.Pcds[DecPcd]
if (DecPcdEntry.TokenSpaceGuidCName == DscPcdEntry.TokenSpaceGuidCName) and \
(DecPcdEntry.TokenCName == DscPcdEntry.TokenCName):
+ # Print warning message to let the developer make a determine.
+ EdkLogger.warn("build", "Unreferenced vpd pcd used!",
+ File=self.MetaFile, \
+ ExtraData = "PCD: %s.%s used in the DSC file %s is unreferenced." \
+ %(DscPcdEntry.TokenSpaceGuidCName, DscPcdEntry.TokenCName, self.Platform.MetaFile.Path))
+
DscPcdEntry.DatumType = DecPcdEntry.DatumType
DscPcdEntry.DefaultValue = DecPcdEntry.DefaultValue
- Sku.DefaultValue = DecPcdEntry.DefaultValue
+ # Only fix the value while no value provided in DSC file.
+ if (Sku.DefaultValue == "" or Sku.DefaultValue==None):
+ DscPcdEntry.SkuInfoList[DscPcdEntry.SkuInfoList.keys()[0]].DefaultValue = DecPcdEntry.DefaultValue
+
VpdFile.Add(DscPcdEntry, Sku.VpdOffset)
# if the offset of a VPD is *, then it need to be fixed up by third party tool.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2010-09-14 05:35:13
|
Revision: 2051
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2051&view=rev
Author: gikidy
Date: 2010-09-14 05:35:06 +0000 (Tue, 14 Sep 2010)
Log Message:
-----------
Remove duplicate definition.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-10 22:44:19 UTC (rev 2050)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-09-14 05:35:06 UTC (rev 2051)
@@ -2132,14 +2132,6 @@
self._ApplyBuildRule(Lib.Target, TAB_UNKNOWN_FILE)
return self._LibraryAutoGenList
- ## Return build command string
- #
- # @retval string Build command string
- #
- def _GetBuildCommand(self):
- return self.PlatformInfo.BuildCommand
-
-
Module = property(_GetModule)
Name = property(_GetBaseName)
Guid = property(_GetGuid)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <qh...@us...> - 2010-10-08 00:48:59
|
Revision: 2065
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2065&view=rev
Author: qhuang8
Date: 2010-10-08 00:48:53 +0000 (Fri, 08 Oct 2010)
Log Message:
-----------
Fix flash related PCD Autogen Issue: Autogen code needs to pass the global macros to FdfParser.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-10-08 00:46:18 UTC (rev 2064)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-10-08 00:48:53 UTC (rev 2065)
@@ -162,6 +162,10 @@
# parse FDF file to get PCDs in it, if any
if self.FdfFile != None and self.FdfFile != '':
+ #
+ # Make global macros available when parsing FDF file
+ #
+ InputMacroDict.update(self.BuildDatabase.WorkspaceDb._GlobalMacros)
Fdf = FdfParser(self.FdfFile.Path)
Fdf.ParseFile()
PcdSet = Fdf.Profile.PcdDict
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2010-10-28 07:58:08
|
Revision: 2078
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2078&view=rev
Author: gikidy
Date: 2010-10-28 07:58:01 +0000 (Thu, 28 Oct 2010)
Log Message:
-----------
Support multiply build option override in INF file. The override operation based on the priority list.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-10-25 08:09:32 UTC (rev 2077)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-10-28 07:58:01 UTC (rev 2078)
@@ -306,7 +306,27 @@
#
_DynaPcdList_ = []
_NonDynaPcdList_ = []
-
+
+ #
+ # The priority list while override build option
+ #
+ PrioList = {"0x11111" : 16, # TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE (Highest)
+ "0x01111" : 15, # ******_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE
+ "0x10111" : 14, # TARGET_*********_ARCH_COMMANDTYPE_ATTRIBUTE
+ "0x00111" : 13, # ******_*********_ARCH_COMMANDTYPE_ATTRIBUTE
+ "0x11011" : 12, # TARGET_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE
+ "0x01011" : 11, # ******_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE
+ "0x10011" : 10, # TARGET_*********_****_COMMANDTYPE_ATTRIBUTE
+ "0x00011" : 9, # ******_*********_****_COMMANDTYPE_ATTRIBUTE
+ "0x11101" : 8, # TARGET_TOOLCHAIN_ARCH_***********_ATTRIBUTE
+ "0x01101" : 7, # ******_TOOLCHAIN_ARCH_***********_ATTRIBUTE
+ "0x10101" : 6, # TARGET_*********_ARCH_***********_ATTRIBUTE
+ "0x00101" : 5, # ******_*********_ARCH_***********_ATTRIBUTE
+ "0x11001" : 4, # TARGET_TOOLCHAIN_****_***********_ATTRIBUTE
+ "0x01001" : 3, # ******_TOOLCHAIN_****_***********_ATTRIBUTE
+ "0x10001" : 2, # TARGET_*********_****_***********_ATTRIBUTE
+ "0x00001" : 1} # ******_*********_****_***********_ATTRIBUTE (Lowest)
+
## The real constructor of PlatformAutoGen
#
# This method is not supposed to be called by users of PlatformAutoGen. It's
@@ -614,7 +634,7 @@
# just pick the a value to determine whether is unicode string type
Sku = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]]
if Sku.VpdOffset == "*":
- Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0]
+ Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0]
else:
EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath)
@@ -693,7 +713,7 @@
if "FLAGS" in self.ToolDefinition["MAKE"]:
NewOption = self.ToolDefinition["MAKE"]["FLAGS"].strip()
if NewOption != '':
- self._BuildCommand += SplitOption(NewOption)
+ self._BuildCommand += SplitOption(NewOption)
return self._BuildCommand
## Get tool chain definition
@@ -1220,17 +1240,87 @@
EdkLogger.verbose("\t" + LibraryName + " : " + str(Library) + ' ' + str(type(Library)))
return LibraryList
+ ## Calculate the priority value of the build option
+ #
+ # @param Key Build option definition contain: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE
+ #
+ # @retval Value Priority value based on the priority list.
+ #
+ def CalculatePriorityValue(self, Key):
+ Target, ToolChain, Arch, CommandType, Attr = Key.split('_')
+ PriorityValue = 0x11111
+ if Target == "*":
+ PriorityValue &= 0x01111
+ if ToolChain == "*":
+ PriorityValue &= 0x10111
+ if Arch == "*":
+ PriorityValue &= 0x11011
+ if CommandType == "*":
+ PriorityValue &= 0x11101
+ if Attr == "*":
+ PriorityValue &= 0x11110
+
+ return self.PrioList["0x%0.5x"%PriorityValue]
+
+
## Expand * in build option key
#
# @param Options Options to be expanded
#
# @retval options Options expanded
- #
+ #
def _ExpandBuildOption(self, Options, ModuleStyle=None):
BuildOptions = {}
FamilyMatch = False
FamilyIsNull = True
+
+ OverrideList = {}
+ #
+ # Construct a list contain the build options which need override.
+ #
for Key in Options:
+ #
+ # Key[0] -- tool family
+ # Key[1] -- TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE
+ #
+ if Key[0] == self.BuildRuleFamily :
+ Target, ToolChain, Arch, CommandType, Attr = Key[1].split('_')
+ if Target == self.BuildTarget or Target == "*":
+ if ToolChain == self.ToolChain or ToolChain == "*":
+ if Arch == self.Arch or Arch == "*":
+ if Options[Key].startswith("="):
+ if OverrideList.get(Key[1]) != None:
+ OverrideList.pop(Key[1])
+ OverrideList[Key[1]] = Options[Key]
+
+ #
+ # Use the highest priority value.
+ #
+ if (len(OverrideList) >= 2):
+ KeyList = OverrideList.keys()
+ for Index in range(len(KeyList)):
+ NowKey = KeyList[Index]
+ Target1, ToolChain1, Arch1, CommandType1, Attr1 = NowKey.split("_")
+ for Index1 in range(len(KeyList) - Index - 1):
+ NextKey = KeyList[Index1 + Index + 1]
+ #
+ # Compare two Key, if one is included by another, choose the higher priority one
+ #
+ Target2, ToolChain2, Arch2, CommandType2, Attr2 = NextKey.split("_")
+ if Target1 == Target2 or Target1 == "*" or Target2 == "*":
+ if ToolChain1 == ToolChain2 or ToolChain1 == "*" or ToolChain2 == "*":
+ if Arch1 == Arch2 or Arch1 == "*" or Arch2 == "*":
+ if CommandType1 == CommandType2 or CommandType1 == "*" or CommandType2 == "*":
+ if Attr1 == Attr2 or Attr1 == "*" or Attr2 == "*":
+ if self.CalculatePriorityValue(NowKey) > self.CalculatePriorityValue(NextKey):
+ if Options.get((self.BuildRuleFamily, NextKey)) != None:
+ Options.pop((self.BuildRuleFamily, NextKey))
+ else:
+ if Options.get((self.BuildRuleFamily, NowKey)) != None:
+ Options.pop((self.BuildRuleFamily, NowKey))
+
+
+ for Key in Options:
if ModuleStyle != None and len (Key) > 2:
# Check Module style is EDK or EDKII.
# Only append build option for the matched style module.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <yi...@us...> - 2010-12-24 01:24:02
|
Revision: 2111
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2111&view=rev
Author: yingke
Date: 2010-12-24 01:23:55 +0000 (Fri, 24 Dec 2010)
Log Message:
-----------
Do not link NULL library instances listed in global sections with modules that are USER_DEFINED; NULL libs for standard module types now are linked against library instances defined for that module type, not all module types.
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-12-23 08:39:03 UTC (rev 2110)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2010-12-24 01:23:55 UTC (rev 2111)
@@ -1077,9 +1077,14 @@
PlatformModule = self.Platform.Modules[str(Module)]
# add forced library instances (specified under LibraryClasses sections)
- for LibraryClass in self.Platform.LibraryClasses.GetKeys():
- if LibraryClass.startswith("NULL"):
- Module.LibraryClasses[LibraryClass] = self.Platform.LibraryClasses[LibraryClass]
+ #
+ # If a module has a MODULE_TYPE of USER_DEFINED,
+ # do not link in NULL library class instances from the global [LibraryClasses.*] sections.
+ #
+ if Module.ModuleType != SUP_MODULE_USER_DEFINED:
+ for LibraryClass in self.Platform.LibraryClasses.GetKeys():
+ if LibraryClass.startswith("NULL") and self.Platform.LibraryClasses[LibraryClass, Module.ModuleType]:
+ Module.LibraryClasses[LibraryClass] = self.Platform.LibraryClasses[LibraryClass, Module.ModuleType]
# add forced library instances (specified in module overrides)
for LibraryClass in PlatformModule.LibraryClasses:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2011-05-26 03:22:34
|
Revision: 2160
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2160&view=rev
Author: gikidy
Date: 2011-05-26 03:22:26 +0000 (Thu, 26 May 2011)
Log Message:
-----------
Fix an issue of build crash while genmake modules libraries. Makes the Workspace object symmetric with the Module object.
Signed-off-by: mdkinney
Reviewed-by: lgao4, gikidy
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-05-26 02:16:46 UTC (rev 2159)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-05-26 03:22:26 UTC (rev 2160)
@@ -430,6 +430,11 @@
for Pa in self.AutoGenObjectList:
Pa.CreateCodeFile(CreateDepsCodeFile)
+ ## Create AsBuilt INF file the platform
+ #
+ def CreateAsBuiltInf(self):
+ return
+
Name = property(_GetName)
Guid = property(_GetGuid)
Version = property(_GetVersion)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <yi...@us...> - 2011-08-08 05:45:50
|
Revision: 2237
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2237&view=rev
Author: yingke
Date: 2011-08-08 05:45:44 +0000 (Mon, 08 Aug 2011)
Log Message:
-----------
The type of a PCD defined in a DSC file should match the possible types for this PCD in the DEC file.
Signed-off-by: yingke
Reviewed-by: jsu1, gikidy
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-08-08 05:44:13 UTC (rev 2236)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-08-08 05:45:44 UTC (rev 2237)
@@ -269,6 +269,11 @@
#
self._CheckAllPcdsTokenValueConflict()
+ #
+ # Check PCD type and definition between DSC and DEC
+ #
+ self._CheckPcdDefineAndType()
+
self._BuildDir = None
self._FvDir = None
self._MakeFileDir = None
@@ -276,6 +281,52 @@
return True
+ def _CheckPcdDefineAndType(self):
+ PcdTypeList = [
+ "FixedAtBuild", "PatchableInModule", "FeatureFlag",
+ "Dynamic", #"DynamicHii", "DynamicVpd",
+ "DynamicEx", # "DynamicExHii", "DynamicExVpd"
+ ]
+
+ for Pa in self.AutoGenObjectList:
+ # Key of DSC's Pcds dictionary is PcdCName, TokenSpaceGuid
+ for Pcd in Pa.Platform.Pcds:
+ PcdType = Pa.Platform.Pcds[Pcd].Type
+
+ # If no PCD type, this PCD comes from FDF
+ if not PcdType:
+ continue
+
+ # Try to remove Hii and Vpd suffix
+ if PcdType.startswith("DynamicEx"):
+ PcdType = "DynamicEx"
+ elif PcdType.startswith("Dynamic"):
+ PcdType = "Dynamic"
+
+ for Package in Pa.PackageList:
+ # Key of DEC's Pcds dictionary is PcdCName, TokenSpaceGuid, PcdType
+ if (Pcd[0], Pcd[1], PcdType) in Package.Pcds:
+ break
+ for Type in PcdTypeList:
+ if (Pcd[0], Pcd[1], Type) in Package.Pcds:
+ EdkLogger.error(
+ 'build',
+ FORMAT_INVALID,
+ "Type [%s] of PCD [%s.%s] in DSC file doesn't match the type [%s] defined in DEC file." \
+ % (Pa.Platform.Pcds[Pcd].Type, Pcd[1], Pcd[0], Type),
+ ExtraData=None
+ )
+ return
+ else:
+ EdkLogger.error(
+ 'build',
+ FORMAT_INVALID,
+ "This Pcd is not defined in DEC files: [%s.%s]." \
+ % (Pcd[1], Pcd[0]),
+ ExtraData=None
+ )
+ return
+
def __repr__(self):
return "%s [%s]" % (self.MetaFile, ", ".join(self.ArchList))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <yi...@us...> - 2011-08-24 01:00:44
|
Revision: 2268
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2268&view=rev
Author: yingke
Date: 2011-08-24 01:00:38 +0000 (Wed, 24 Aug 2011)
Log Message:
-----------
Report warning if PCD was not specified by any INF module in the platform for the given architecture.
Signed-off-by: yingke
Reviewed-by: lgao4
Reviewed-by: djboyer
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-08-23 07:59:44 UTC (rev 2267)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-08-24 01:00:38 UTC (rev 2268)
@@ -299,6 +299,8 @@
"DynamicEx", # "DynamicExHii", "DynamicExVpd"
]
+ # This dict store PCDs which are not used by any modules with specified arches
+ UnusedPcd = sdict()
for Pa in self.AutoGenObjectList:
# Key of DSC's Pcds dictionary is PcdCName, TokenSpaceGuid
for Pcd in Pa.Platform.Pcds:
@@ -329,15 +331,17 @@
)
return
else:
- EdkLogger.error(
- 'build',
- FORMAT_INVALID,
- "This Pcd is not defined in DEC files: [%s.%s]." \
- % (Pcd[1], Pcd[0]),
- ExtraData=None
- )
- return
+ UnusedPcd.setdefault(Pcd, []).append(Pa.Arch)
+ for Pcd in UnusedPcd:
+ EdkLogger.warn(
+ 'build',
+ "The PCD was not specified by any INF module in the platform for the given architecture.\n"
+ "\tPCD: [%s.%s]\n\tPlatform: [%s]\n\tArch: %s"
+ % (Pcd[1], Pcd[0], os.path.basename(str(self.MetaFile)), str(UnusedPcd[Pcd])),
+ ExtraData=None
+ )
+
def __repr__(self):
return "%s [%s]" % (self.MetaFile, ", ".join(self.ArchList))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <gi...@us...> - 2011-10-08 06:00:28
|
Revision: 2350
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2350&view=rev
Author: gikidy
Date: 2011-10-08 06:00:17 +0000 (Sat, 08 Oct 2011)
Log Message:
-----------
Fix build break if build DEBUG and RELEASE target and two arch at the same time.
Signed-off-by: gikidy
Reviewed-by: jsu1
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-10-08 05:25:45 UTC (rev 2349)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-10-08 06:00:17 UTC (rev 2350)
@@ -364,40 +364,44 @@
# Replace the PCD value.
#
_PcdName = FfsFile.NameGuid.lstrip("PCD(").rstrip(")")
+ PcdFoundFlag = False
for Pa in self.AutoGenObjectList:
- for PcdItem in Pa.AllPcdList:
- if (PcdItem.TokenSpaceGuidCName + "." + PcdItem.TokenCName) == _PcdName:
- #
- # First convert from CFormatGuid to GUID string
- #
- _PcdGuidString = GuidStructureStringToGuidString(PcdItem.DefaultValue)
-
- if not _PcdGuidString:
+ if not PcdFoundFlag:
+ for PcdItem in Pa.AllPcdList:
+ if (PcdItem.TokenSpaceGuidCName + "." + PcdItem.TokenCName) == _PcdName:
#
- # Then try Byte array.
+ # First convert from CFormatGuid to GUID string
#
- _PcdGuidString = GuidStructureByteArrayToGuidString(PcdItem.DefaultValue)
+ _PcdGuidString = GuidStructureStringToGuidString(PcdItem.DefaultValue)
- if not _PcdGuidString:
- #
- # Not Byte array or CFormat GUID, raise error.
- #
- EdkLogger.error("build",
- FORMAT_INVALID,
- "The format of PCD value is incorrect. PCD: %s , Value: %s\n"%(_PcdName, PcdItem.DefaultValue),
- ExtraData=self.FdfFile)
-
- if not _PcdGuidString.upper() in _GuidDict.keys():
- _GuidDict[_PcdGuidString.upper()] = FfsFile
- else:
- EdkLogger.error("build",
- FORMAT_INVALID,
- "Duplicate GUID found for these lines: Line %d: %s and Line %d: %s. GUID: %s"%(FfsFile.CurrentLineNum,
- FfsFile.CurrentLineContent,
- _GuidDict[_PcdGuidString.upper()].CurrentLineNum,
- _GuidDict[_PcdGuidString.upper()].CurrentLineContent,
- FfsFile.NameGuid.upper()),
- ExtraData=self.FdfFile)
+ if not _PcdGuidString:
+ #
+ # Then try Byte array.
+ #
+ _PcdGuidString = GuidStructureByteArrayToGuidString(PcdItem.DefaultValue)
+
+ if not _PcdGuidString:
+ #
+ # Not Byte array or CFormat GUID, raise error.
+ #
+ EdkLogger.error("build",
+ FORMAT_INVALID,
+ "The format of PCD value is incorrect. PCD: %s , Value: %s\n"%(_PcdName, PcdItem.DefaultValue),
+ ExtraData=self.FdfFile)
+
+ if not _PcdGuidString.upper() in _GuidDict.keys():
+ _GuidDict[_PcdGuidString.upper()] = FfsFile
+ PcdFoundFlag = True
+ break
+ else:
+ EdkLogger.error("build",
+ FORMAT_INVALID,
+ "Duplicate GUID found for these lines: Line %d: %s and Line %d: %s. GUID: %s"%(FfsFile.CurrentLineNum,
+ FfsFile.CurrentLineContent,
+ _GuidDict[_PcdGuidString.upper()].CurrentLineNum,
+ _GuidDict[_PcdGuidString.upper()].CurrentLineContent,
+ FfsFile.NameGuid.upper()),
+ ExtraData=self.FdfFile)
if not FfsFile.NameGuid.upper() in _GuidDict.keys():
_GuidDict[FfsFile.NameGuid.upper()] = FfsFile
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2011-10-28 07:34:28
|
Revision: 2388
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2388&view=rev
Author: jsu1
Date: 2011-10-28 07:34:22 +0000 (Fri, 28 Oct 2011)
Log Message:
-----------
Add RVCT include directory option flag support
Reviewed-by: gikidy
Signed-off-by: jsu1
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-10-28 06:28:05 UTC (rev 2387)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-10-28 07:34:22 UTC (rev 2388)
@@ -2184,13 +2184,19 @@
def _GetBuildOptionIncPathList(self):
if self._BuildOptionIncPathList == None:
#
- # Regular expression for finding Include Directories, the difference between MSFT and INTEL/GCC
+ # Regular expression for finding Include Directories, the difference between MSFT and INTEL/GCC/RVCT
# is the former use /I , the Latter used -I to specify include directories
#
if self.PlatformInfo.ToolChainFamily in ('MSFT'):
gBuildOptIncludePattern = re.compile(r"(?:.*?)/I[ \t]*([^ ]*)", re.MULTILINE|re.DOTALL)
- elif self.PlatformInfo.ToolChainFamily in ('INTEL', 'GCC'):
+ elif self.PlatformInfo.ToolChainFamily in ('INTEL', 'GCC', 'RVCT'):
gBuildOptIncludePattern = re.compile(r"(?:.*?)-I[ \t]*([^ ]*)", re.MULTILINE|re.DOTALL)
+ else:
+ #
+ # New ToolChainFamily, don't known whether there is option to specify include directories
+ #
+ self._BuildOptionIncPathList = []
+ return self._BuildOptionIncPathList
BuildOptionIncPathList = []
for Tool in ('CC', 'PP', 'VFRPP', 'ASLPP', 'ASLCC', 'APP', 'ASM'):
@@ -2200,7 +2206,17 @@
except KeyError:
FlagOption = ''
- IncPathList = [NormPath(Path, self.Macros) for Path in gBuildOptIncludePattern.findall(FlagOption)]
+ if self.PlatformInfo.ToolChainFamily != 'RVCT':
+ IncPathList = [NormPath(Path, self.Macros) for Path in gBuildOptIncludePattern.findall(FlagOption)]
+ else:
+ #
+ # RVCT may specify a list of directory seperated by commas
+ #
+ IncPathList = []
+ for Path in gBuildOptIncludePattern.findall(FlagOption):
+ PathList = GetSplitList(Path, TAB_COMMA_SPLIT)
+ IncPathList += [NormPath(PathEntry, self.Macros) for PathEntry in PathList]
+
#
# EDK II modules must not reference header files outside of the packages they depend on or
# within the module's directory tree. Report error if violation.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2011-11-29 06:20:53
|
Revision: 2443
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2443&view=rev
Author: jsu1
Date: 2011-11-29 06:20:47 +0000 (Tue, 29 Nov 2011)
Log Message:
-----------
Remove extra space generated for VPD sku's VpdOffset
Reviewed-by: gikidy
Signed-off-by: jsu1
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-11-29 03:32:14 UTC (rev 2442)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2011-11-29 06:20:47 UTC (rev 2443)
@@ -1001,7 +1001,7 @@
# just pick the a value to determine whether is unicode string type
Sku = Pcd.SkuInfoList[Pcd.SkuInfoList.keys()[0]]
if Sku.VpdOffset == "*":
- Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0]
+ Sku.VpdOffset = VpdFile.GetOffset(Pcd)[0].strip()
else:
EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <yi...@us...> - 2012-02-23 03:39:13
|
Revision: 2486
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2486&view=rev
Author: yingke
Date: 2012-02-23 03:39:06 +0000 (Thu, 23 Feb 2012)
Log Message:
-----------
ix bug for checking duplicated GUID in a FV section.
Reviewed-by: jsu1
Reviewed-by: lgao4
Signed-off-by: yingke
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-02-21 23:09:52 UTC (rev 2485)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-02-23 03:39:06 UTC (rev 2486)
@@ -334,11 +334,14 @@
#
InfFoundFlag = False
for Pa in self.AutoGenObjectList:
+ if InfFoundFlag:
+ break
for Module in Pa.ModuleAutoGenList:
if path.normpath(Module.MetaFile.File) == path.normpath(FfsFile.InfFileName):
InfFoundFlag = True
if not Module.Guid.upper() in _GuidDict.keys():
_GuidDict[Module.Guid.upper()] = FfsFile
+ break
else:
EdkLogger.error("build",
FORMAT_INVALID,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <yi...@us...> - 2012-03-23 07:01:03
|
Revision: 2506
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2506&view=rev
Author: yingke
Date: 2012-03-23 07:00:57 +0000 (Fri, 23 Mar 2012)
Log Message:
-----------
Check if PCD name used in FDF file is declared in DEC files.
Signed-off-by: yingke
Reviewed-by: lgao4
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-03-23 06:59:21 UTC (rev 2505)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-03-23 07:00:57 UTC (rev 2506)
@@ -291,8 +291,23 @@
# apply SKU and inject PCDs from Flash Definition file
for Arch in self.ArchList:
Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
+ DecPcds = set()
+ if PcdSet:
+ PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
+ Pkgs = PGen.PackageList
+ for Pkg in Pkgs:
+ for Pcd in Pkg.Pcds.keys():
+ DecPcds.add((Pcd[0], Pcd[1]))
Platform.SkuName = self.SkuId
for Name, Guid in PcdSet:
+ if (Name, Guid) not in DecPcds:
+ EdkLogger.error(
+ 'build',
+ FORMAT_INVALID,
+ "PCD (%s.%s) used in FDF is not declared in DEC files. FDF file: %s, line #: %d." % \
+ (Guid, Name, self.FdfProfile.PcdFileLineDict[Name, Guid][0], self.FdfProfile.PcdFileLineDict[Name, Guid][1]),
+ ExtraData=None
+ )
Platform.AddPcd(Name, Guid, PcdSet[Name, Guid])
Pa = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <yi...@us...> - 2012-03-31 08:09:05
|
Revision: 2509
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2509&view=rev
Author: yingke
Date: 2012-03-31 08:08:58 +0000 (Sat, 31 Mar 2012)
Log Message:
-----------
Check all PCD listed in DSC file, the PCD must be declared by DEC files which are referenced by modules listed in component sections.
Signed-off-by: yingke
Reviewed-by: lgao4
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-03-29 05:07:34 UTC (rev 2508)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-03-31 08:08:58 UTC (rev 2509)
@@ -287,22 +287,23 @@
if self.CapTargetList:
EdkLogger.info("No flash definition file found. Capsule [%s] will be ignored." % " ".join(self.CapTargetList))
self.CapTargetList = []
-
- # apply SKU and inject PCDs from Flash Definition file
- for Arch in self.ArchList:
- Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
- DecPcds = set()
+ # Collect all declared PCD to check if PCDs used in FDF and DSC are declared.
+ AllDeclaredPcd = set()
+ for Arch in self.Platform.SupArchList:
PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
Pkgs = PGen.PackageList
for Pkg in Pkgs:
for Pcd in Pkg.Pcds.keys():
- DecPcds.add((Pcd[0], Pcd[1]))
- Platform.IsPlatformPcdDeclared(DecPcds)
+ AllDeclaredPcd.add((Pcd[0], Pcd[1]))
+ # apply SKU and inject PCDs from Flash Definition file
+ for Arch in self.ArchList:
+ Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
+ Platform.IsPlatformPcdDeclared(AllDeclaredPcd)
Platform.SkuName = self.SkuId
for Name, Guid in PcdSet:
- if (Name, Guid) not in DecPcds:
+ if (Name, Guid) not in AllDeclaredPcd:
EdkLogger.error(
'build',
PARSER_ERROR,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <yi...@us...> - 2012-04-01 08:34:42
|
Revision: 2510
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2510&view=rev
Author: yingke
Date: 2012-04-01 08:34:35 +0000 (Sun, 01 Apr 2012)
Log Message:
-----------
Roll back 2509 to 2508. Changes of 2509 does more check for modules even if they are not used by current build arch.
Signed-off-by: Yingke Liu <yin...@in...>
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-03-31 08:08:58 UTC (rev 2509)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-04-01 08:34:35 UTC (rev 2510)
@@ -287,23 +287,22 @@
if self.CapTargetList:
EdkLogger.info("No flash definition file found. Capsule [%s] will be ignored." % " ".join(self.CapTargetList))
self.CapTargetList = []
+
+ # apply SKU and inject PCDs from Flash Definition file
+ for Arch in self.ArchList:
+ Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
- # Collect all declared PCD to check if PCDs used in FDF and DSC are declared.
- AllDeclaredPcd = set()
- for Arch in self.Platform.SupArchList:
+ DecPcds = set()
PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
Pkgs = PGen.PackageList
for Pkg in Pkgs:
for Pcd in Pkg.Pcds.keys():
- AllDeclaredPcd.add((Pcd[0], Pcd[1]))
+ DecPcds.add((Pcd[0], Pcd[1]))
+ Platform.IsPlatformPcdDeclared(DecPcds)
- # apply SKU and inject PCDs from Flash Definition file
- for Arch in self.ArchList:
- Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
- Platform.IsPlatformPcdDeclared(AllDeclaredPcd)
Platform.SkuName = self.SkuId
for Name, Guid in PcdSet:
- if (Name, Guid) not in AllDeclaredPcd:
+ if (Name, Guid) not in DecPcds:
EdkLogger.error(
'build',
PARSER_ERROR,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <xf...@us...> - 2012-05-29 08:21:40
|
Revision: 2528
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2528&view=rev
Author: xfzyr
Date: 2012-05-29 08:21:34 +0000 (Tue, 29 May 2012)
Log Message:
-----------
Add the check of not allow Dynamic or DynamicEx PCD used in FDF file.
Signed-off-by: Yurui Zeng <yur...@in...>
Reviewed-by: Liu, Yingke D <yin...@in...>
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-05-28 02:56:13 UTC (rev 2527)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-05-29 08:21:34 UTC (rev 2528)
@@ -293,11 +293,13 @@
Platform = self.BuildDatabase[self.MetaFile, Arch, Target, Toolchain]
DecPcds = {}
+ DecPcdsKey = set()
PGen = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
Pkgs = PGen.PackageList
for Pkg in Pkgs:
for Pcd in Pkg.Pcds:
DecPcds[Pcd[0], Pcd[1]] = Pkg.Pcds[Pcd]
+ DecPcdsKey.add((Pcd[0], Pcd[1], Pcd[2]))
Platform.IsPlatformPcdDeclared(DecPcds)
Platform.SkuName = self.SkuId
@@ -310,6 +312,20 @@
File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
)
+ else:
+ # Check whether Dynamic or DynamicEx PCD used in FDF file. If used, build break and give a error message.
+ if (Name, Guid, TAB_PCDS_FIXED_AT_BUILD) in DecPcdsKey \
+ or (Name, Guid, TAB_PCDS_PATCHABLE_IN_MODULE) in DecPcdsKey \
+ or (Name, Guid, TAB_PCDS_FEATURE_FLAG) in DecPcdsKey:
+ continue
+ elif (Name, Guid, TAB_PCDS_DYNAMIC) in DecPcdsKey or (Name, Guid, TAB_PCDS_DYNAMIC_EX) in DecPcdsKey:
+ EdkLogger.error(
+ 'build',
+ PARSER_ERROR,
+ "Using Dynamic or DynamicEx type of PCD [%s.%s] in FDF file is not allowed." % (Guid, Name),
+ File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
+ Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
+ )
Platform.AddPcd(Name, Guid, PcdSet[Name, Guid])
Pa = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <js...@us...> - 2012-06-28 08:46:00
|
Revision: 2542
http://edk2-buildtools.svn.sourceforge.net/edk2-buildtools/?rev=2542&view=rev
Author: jsu1
Date: 2012-06-28 08:45:49 +0000 (Thu, 28 Jun 2012)
Log Message:
-----------
Fix the pcd value in FDF lost issue.
Reviewed-by: Zeng, Yurui <yur...@in...>
Signed-off-by: Su jikui <jik...@in...>
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-06-28 08:44:41 UTC (rev 2541)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2012-06-28 08:45:49 UTC (rev 2542)
@@ -317,6 +317,7 @@
if (Name, Guid, TAB_PCDS_FIXED_AT_BUILD) in DecPcdsKey \
or (Name, Guid, TAB_PCDS_PATCHABLE_IN_MODULE) in DecPcdsKey \
or (Name, Guid, TAB_PCDS_FEATURE_FLAG) in DecPcdsKey:
+ Platform.AddPcd(Name, Guid, PcdSet[Name, Guid])
continue
elif (Name, Guid, TAB_PCDS_DYNAMIC) in DecPcdsKey or (Name, Guid, TAB_PCDS_DYNAMIC_EX) in DecPcdsKey:
EdkLogger.error(
@@ -326,7 +327,6 @@
File = self.FdfProfile.PcdFileLineDict[Name, Guid][0],
Line = self.FdfProfile.PcdFileLineDict[Name, Guid][1]
)
- Platform.AddPcd(Name, Guid, PcdSet[Name, Guid])
Pa = PlatformAutoGen(self, self.MetaFile, Target, Toolchain, Arch)
#
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bo...@us...> - 2014-01-09 09:11:20
|
Revision: 2639
http://sourceforge.net/p/edk2-buildtools/code/2639
Author: bobfeng
Date: 2014-01-09 09:11:16 +0000 (Thu, 09 Jan 2014)
Log Message:
-----------
Modify AutoGen.h for libraries when using FixedAtBuild PCD.
update the patch:
The Pcd must under the [FixedPcd] section for a Library rather than [Pcd] or [FixedPcd] sections.
Signed-off-by: Feng, Bob C <bob...@in...>
Reviewed-by: Gao, Liming <lim...@in...>
Reviewed-by: Yingke Liu <yin...@in...>
Modified Paths:
--------------
trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
Modified: trunk/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2014-01-09 06:33:45 UTC (rev 2638)
+++ trunk/BaseTools/Source/Python/AutoGen/AutoGen.py 2014-01-09 09:11:16 UTC (rev 2639)
@@ -1,7 +1,7 @@
## @file
# Generate AutoGen.h, AutoGen.c and *.depex files
#
-# Copyright (c) 2007 - 2013, 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
@@ -2084,9 +2084,14 @@
if self._FixedAtBuildPcds:
return self._FixedAtBuildPcds
for Pcd in self.ModulePcdList:
- if Pcd.Type == "FixedAtBuild":
- if Pcd not in self._FixedAtBuildPcds:
- self._FixedAtBuildPcds.append(Pcd)
+ if self.IsLibrary:
+ if not (Pcd.Pending == False and Pcd.Type == "FixedAtBuild"):
+ continue
+ elif Pcd.Type != "FixedAtBuild":
+ continue
+ if Pcd not in self._FixedAtBuildPcds:
+ self._FixedAtBuildPcds.append(Pcd)
+
return self._FixedAtBuildPcds
# Macros could be used in build_rule.txt (also Makefile)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|