BaseTools/Source/Python/Workspace/WorkspaceDatabase.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
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
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 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
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 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
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: > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
© 2016 - 2024 Red Hat, Inc.