public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gao, Liming" <liming.gao@intel.com>
To: "Zhu, Yonghong" <yonghong.zhu@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [Patch] BaseTools: Fix a bug for different FV use same FILE statement Guid
Date: Fri, 29 Dec 2017 02:30:57 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E19AF65@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <1514482854-3892-1-git-send-email-yonghong.zhu@intel.com>

Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
>Yonghong Zhu
>Sent: Friday, December 29, 2017 1:41 AM
>To: edk2-devel@lists.01.org
>Subject: [edk2] [Patch] BaseTools: Fix a bug for different FV use same FILE
>statement Guid
>
>We meet a case that different FV use same FILE statement Guid, but the
>FILE content is different. current we use the Guid value as Ffs file
>dir which cause the ffs file will be override. This patch use Guid
>value and Fv name as ffs dir for FILE statement.
>
>Contributed-under: TianoCore Contribution Agreement 1.1
>Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
>---
> BaseTools/Source/Python/GenFds/FfsFileStatement.py | 7 +++++--
> BaseTools/Source/Python/GenFds/FfsInfStatement.py  | 2 +-
> BaseTools/Source/Python/GenFds/Fv.py               | 2 +-
> 3 files changed, 7 insertions(+), 4 deletions(-)
>
>diff --git a/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>b/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>index edb1312..12ec95b 100644
>--- a/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>+++ b/BaseTools/Source/Python/GenFds/FfsFileStatement.py
>@@ -55,11 +55,11 @@ class FileStatement (FileStatementClassObject) :
>     #   @param  Dict         dictionary contains macro and value pair
>     #   @param  FvChildAddr  Array of the inside FvImage base address
>     #   @param  FvParentAddr Parent Fv base address
>     #   @retval string       Generated FFS file name
>     #
>-    def GenFfs(self, Dict = {}, FvChildAddr=[], FvParentAddr=None,
>IsMakefile=False):
>+    def GenFfs(self, Dict = {}, FvChildAddr=[], FvParentAddr=None,
>IsMakefile=False, FvName=None):
>
>         if self.NameGuid != None and self.NameGuid.startswith('PCD('):
>             PcdValue = GenFdsGlobalVariable.GetPcdValue(self.NameGuid)
>             if len(PcdValue) == 0:
>                 EdkLogger.error("GenFds", GENFDS_ERROR, '%s NOT defined.' \
>@@ -70,11 +70,14 @@ class FileStatement (FileStatementClassObject) :
>             if len(RegistryGuidStr) == 0:
>                 EdkLogger.error("GenFds", GENFDS_ERROR, 'GUID value for %s in
>wrong format.' \
>                             % (self.NameGuid))
>             self.NameGuid = RegistryGuidStr
>
>-        OutputDir = os.path.join(GenFdsGlobalVariable.FfsDir, self.NameGuid)
>+        Str = self.NameGuid
>+        if FvName:
>+            Str += FvName
>+        OutputDir = os.path.join(GenFdsGlobalVariable.FfsDir, Str)
>         if not os.path.exists(OutputDir):
>             os.makedirs(OutputDir)
>
>         Dict.update(self.DefineVarDict)
>         SectionAlignments = None
>diff --git a/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>index 4b47817..baee543 100644
>--- a/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>+++ b/BaseTools/Source/Python/GenFds/FfsInfStatement.py
>@@ -420,11 +420,11 @@ class FfsInfStatement(FfsInfStatementClassObject):
>     #   @param  Dict         dictionary contains macro and value pair
>     #   @param  FvChildAddr  Array of the inside FvImage base address
>     #   @param  FvParentAddr Parent Fv base address
>     #   @retval string       Generated FFS file name
>     #
>-    def GenFfs(self, Dict = {}, FvChildAddr = [], FvParentAddr=None,
>IsMakefile=False):
>+    def GenFfs(self, Dict = {}, FvChildAddr = [], FvParentAddr=None,
>IsMakefile=False, FvName=None):
>         #
>         # Parse Inf file get Module related information
>         #
>
>         self.__InfParse__(Dict)
>diff --git a/BaseTools/Source/Python/GenFds/Fv.py
>b/BaseTools/Source/Python/GenFds/Fv.py
>index d5922c0..a69abb3 100644
>--- a/BaseTools/Source/Python/GenFds/Fv.py
>+++ b/BaseTools/Source/Python/GenFds/Fv.py
>@@ -119,11 +119,11 @@ class FV (FvClassObject):
>             if Flag:
>                 if isinstance(FfsFile, FfsFileStatement.FileStatement):
>                     continue
>             if GenFdsGlobalVariable.EnableGenfdsMultiThread and
>GenFdsGlobalVariable.ModuleFile and
>GenFdsGlobalVariable.ModuleFile.Path.find(os.path.normpath(FfsFile.InfFile
>Name)) == -1:
>                 continue
>-            FileName = FfsFile.GenFfs(MacroDict, FvParentAddr=BaseAddress,
>IsMakefile=Flag)
>+            FileName = FfsFile.GenFfs(MacroDict, FvParentAddr=BaseAddress,
>IsMakefile=Flag, FvName=self.UiFvName)
>             FfsFileList.append(FileName)
>             if not Flag:
>                 self.FvInfFile.writelines("EFI_FILE_NAME = " + \
>                                             FileName          + \
>                                             T_CHAR_LF)
>--
>2.6.1.windows.1
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel


      reply	other threads:[~2017-12-29  2:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-28 17:40 [Patch] BaseTools: Fix a bug for different FV use same FILE statement Guid Yonghong Zhu
2017-12-29  2:30 ` Gao, Liming [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A89E2EF3DFEDB4C8BFDE51014F606A14E19AF65@SHSMSX104.ccr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox