public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch] BaseTools: Fix the regression issue caused by commit dc4c77
@ 2017-02-22 16:03 Yonghong Zhu
  2017-02-22 16:08 ` Ard Biesheuvel
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Yonghong Zhu @ 2017-02-22 16:03 UTC (permalink / raw)
  To: edk2-devel; +Cc: Liming Gao

In the last commit dc4c77, the _GetHeaderInfo will be called more than
once, which cause the self._ConstructorList.append(Value) append some
duplicate value.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
index 0686721..c1af5c7 100644
--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
@@ -1828,12 +1828,10 @@ class InfBuildData(ModuleBuildClassObject):
             self.__Macros = {}
             # EDK_GLOBAL defined macros can be applied to EDK module
             if self.AutoGenVersion < 0x00010005:
                 self.__Macros.update(GlobalData.gEdkGlobal)
                 self.__Macros.update(GlobalData.gGlobalDefines)
-            else:
-                self.__Macros.update(self.Defines)
         return self.__Macros
 
     ## Get architecture
     def _GetArch(self):
         return self._Arch
@@ -1894,10 +1892,11 @@ class InfBuildData(ModuleBuildClassObject):
             if Name in self:
                 self[Name] = Value
                 if self._Defs == None:
                     self._Defs = sdict()
                 self._Defs[Name] = Value
+                self._Macros[Name] = Value
             # some special items in [Defines] section need special treatment
             elif Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION', 'EDK_RELEASE_VERSION', 'PI_SPECIFICATION_VERSION'):
                 if Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION'):
                     Name = 'UEFI_SPECIFICATION_VERSION'
                 if self._Specification == None:
@@ -1954,10 +1953,11 @@ class InfBuildData(ModuleBuildClassObject):
                     self._CustomMakefile[TokenList[0]] = TokenList[1]
             else:
                 if self._Defs == None:
                     self._Defs = sdict()
                 self._Defs[Name] = Value
+                self._Macros[Name] = Value
 
         #
         # Retrieve information in sections specific to Edk.x modules
         #
         if self.AutoGenVersion >= 0x00010005:
-- 
2.6.1.windows.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Patch] BaseTools: Fix the regression issue caused by commit dc4c77
  2017-02-22 16:03 [Patch] BaseTools: Fix the regression issue caused by commit dc4c77 Yonghong Zhu
@ 2017-02-22 16:08 ` Ard Biesheuvel
  2017-02-23  3:22 ` Gao, Liming
  2017-02-23 10:56 ` Laszlo Ersek
  2 siblings, 0 replies; 4+ messages in thread
From: Ard Biesheuvel @ 2017-02-22 16:08 UTC (permalink / raw)
  To: Yonghong Zhu; +Cc: edk2-devel@lists.01.org, Liming Gao

On 22 February 2017 at 16:03, Yonghong Zhu <yonghong.zhu@intel.com> wrote:
> In the last commit dc4c77, the _GetHeaderInfo will be called more than
> once, which cause the self._ConstructorList.append(Value) append some
> duplicate value.
>
> Cc: Liming Gao <liming.gao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>

Works for me, thanks

Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---
>  BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> index 0686721..c1af5c7 100644
> --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> @@ -1828,12 +1828,10 @@ class InfBuildData(ModuleBuildClassObject):
>              self.__Macros = {}
>              # EDK_GLOBAL defined macros can be applied to EDK module
>              if self.AutoGenVersion < 0x00010005:
>                  self.__Macros.update(GlobalData.gEdkGlobal)
>                  self.__Macros.update(GlobalData.gGlobalDefines)
> -            else:
> -                self.__Macros.update(self.Defines)
>          return self.__Macros
>
>      ## Get architecture
>      def _GetArch(self):
>          return self._Arch
> @@ -1894,10 +1892,11 @@ class InfBuildData(ModuleBuildClassObject):
>              if Name in self:
>                  self[Name] = Value
>                  if self._Defs == None:
>                      self._Defs = sdict()
>                  self._Defs[Name] = Value
> +                self._Macros[Name] = Value
>              # some special items in [Defines] section need special treatment
>              elif Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION', 'EDK_RELEASE_VERSION', 'PI_SPECIFICATION_VERSION'):
>                  if Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION'):
>                      Name = 'UEFI_SPECIFICATION_VERSION'
>                  if self._Specification == None:
> @@ -1954,10 +1953,11 @@ class InfBuildData(ModuleBuildClassObject):
>                      self._CustomMakefile[TokenList[0]] = TokenList[1]
>              else:
>                  if self._Defs == None:
>                      self._Defs = sdict()
>                  self._Defs[Name] = Value
> +                self._Macros[Name] = Value
>
>          #
>          # Retrieve information in sections specific to Edk.x modules
>          #
>          if self.AutoGenVersion >= 0x00010005:
> --
> 2.6.1.windows.1
>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Patch] BaseTools: Fix the regression issue caused by commit dc4c77
  2017-02-22 16:03 [Patch] BaseTools: Fix the regression issue caused by commit dc4c77 Yonghong Zhu
  2017-02-22 16:08 ` Ard Biesheuvel
@ 2017-02-23  3:22 ` Gao, Liming
  2017-02-23 10:56 ` Laszlo Ersek
  2 siblings, 0 replies; 4+ messages in thread
From: Gao, Liming @ 2017-02-23  3:22 UTC (permalink / raw)
  To: Zhu, Yonghong, edk2-devel@lists.01.org

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: Thursday, February 23, 2017 12:03 AM
>To: edk2-devel@lists.01.org
>Cc: Gao, Liming <liming.gao@intel.com>
>Subject: [edk2] [Patch] BaseTools: Fix the regression issue caused by commit
>dc4c77
>
>In the last commit dc4c77, the _GetHeaderInfo will be called more than
>once, which cause the self._ConstructorList.append(Value) append some
>duplicate value.
>
>Cc: Liming Gao <liming.gao@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.0
>Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
>---
> BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
>diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
>b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
>index 0686721..c1af5c7 100644
>--- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
>+++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
>@@ -1828,12 +1828,10 @@ class InfBuildData(ModuleBuildClassObject):
>             self.__Macros = {}
>             # EDK_GLOBAL defined macros can be applied to EDK module
>             if self.AutoGenVersion < 0x00010005:
>                 self.__Macros.update(GlobalData.gEdkGlobal)
>                 self.__Macros.update(GlobalData.gGlobalDefines)
>-            else:
>-                self.__Macros.update(self.Defines)
>         return self.__Macros
>
>     ## Get architecture
>     def _GetArch(self):
>         return self._Arch
>@@ -1894,10 +1892,11 @@ class InfBuildData(ModuleBuildClassObject):
>             if Name in self:
>                 self[Name] = Value
>                 if self._Defs == None:
>                     self._Defs = sdict()
>                 self._Defs[Name] = Value
>+                self._Macros[Name] = Value
>             # some special items in [Defines] section need special treatment
>             elif Name in ('EFI_SPECIFICATION_VERSION',
>'UEFI_SPECIFICATION_VERSION', 'EDK_RELEASE_VERSION',
>'PI_SPECIFICATION_VERSION'):
>                 if Name in ('EFI_SPECIFICATION_VERSION',
>'UEFI_SPECIFICATION_VERSION'):
>                     Name = 'UEFI_SPECIFICATION_VERSION'
>                 if self._Specification == None:
>@@ -1954,10 +1953,11 @@ class InfBuildData(ModuleBuildClassObject):
>                     self._CustomMakefile[TokenList[0]] = TokenList[1]
>             else:
>                 if self._Defs == None:
>                     self._Defs = sdict()
>                 self._Defs[Name] = Value
>+                self._Macros[Name] = Value
>
>         #
>         # Retrieve information in sections specific to Edk.x modules
>         #
>         if self.AutoGenVersion >= 0x00010005:
>--
>2.6.1.windows.1
>
>_______________________________________________
>edk2-devel mailing list
>edk2-devel@lists.01.org
>https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Patch] BaseTools: Fix the regression issue caused by commit dc4c77
  2017-02-22 16:03 [Patch] BaseTools: Fix the regression issue caused by commit dc4c77 Yonghong Zhu
  2017-02-22 16:08 ` Ard Biesheuvel
  2017-02-23  3:22 ` Gao, Liming
@ 2017-02-23 10:56 ` Laszlo Ersek
  2 siblings, 0 replies; 4+ messages in thread
From: Laszlo Ersek @ 2017-02-23 10:56 UTC (permalink / raw)
  To: Yonghong Zhu, edk2-devel; +Cc: Liming Gao

On 02/22/17 17:03, Yonghong Zhu wrote:
> In the last commit dc4c77, the _GetHeaderInfo will be called more than
> once, which cause the self._ConstructorList.append(Value) append some
> duplicate value.
> 
> Cc: Liming Gao <liming.gao@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

I see that this patch has been committed. It fixes the issue for me as well.

Tested-by: Laszlo Ersek <lersek@redhat.com>

Thanks!
Laszlo

> diff --git a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> index 0686721..c1af5c7 100644
> --- a/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> +++ b/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
> @@ -1828,12 +1828,10 @@ class InfBuildData(ModuleBuildClassObject):
>              self.__Macros = {}
>              # EDK_GLOBAL defined macros can be applied to EDK module
>              if self.AutoGenVersion < 0x00010005:
>                  self.__Macros.update(GlobalData.gEdkGlobal)
>                  self.__Macros.update(GlobalData.gGlobalDefines)
> -            else:
> -                self.__Macros.update(self.Defines)
>          return self.__Macros
>  
>      ## Get architecture
>      def _GetArch(self):
>          return self._Arch
> @@ -1894,10 +1892,11 @@ class InfBuildData(ModuleBuildClassObject):
>              if Name in self:
>                  self[Name] = Value
>                  if self._Defs == None:
>                      self._Defs = sdict()
>                  self._Defs[Name] = Value
> +                self._Macros[Name] = Value
>              # some special items in [Defines] section need special treatment
>              elif Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION', 'EDK_RELEASE_VERSION', 'PI_SPECIFICATION_VERSION'):
>                  if Name in ('EFI_SPECIFICATION_VERSION', 'UEFI_SPECIFICATION_VERSION'):
>                      Name = 'UEFI_SPECIFICATION_VERSION'
>                  if self._Specification == None:
> @@ -1954,10 +1953,11 @@ class InfBuildData(ModuleBuildClassObject):
>                      self._CustomMakefile[TokenList[0]] = TokenList[1]
>              else:
>                  if self._Defs == None:
>                      self._Defs = sdict()
>                  self._Defs[Name] = Value
> +                self._Macros[Name] = Value
>  
>          #
>          # Retrieve information in sections specific to Edk.x modules
>          #
>          if self.AutoGenVersion >= 0x00010005:
> 



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-02-23 10:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-22 16:03 [Patch] BaseTools: Fix the regression issue caused by commit dc4c77 Yonghong Zhu
2017-02-22 16:08 ` Ard Biesheuvel
2017-02-23  3:22 ` Gao, Liming
2017-02-23 10:56 ` Laszlo Ersek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox