From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: redhat.com, ip: 209.132.183.28, mailfrom: lersek@redhat.com) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by groups.io with SMTP; Thu, 29 Aug 2019 07:32:52 -0700 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CFDBC315C009; Thu, 29 Aug 2019 14:32:51 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-117-174.ams2.redhat.com [10.36.117.174]) by smtp.corp.redhat.com (Postfix) with ESMTP id 42E2A19C4F; Thu, 29 Aug 2019 14:32:50 +0000 (UTC) Subject: Re: [edk2-devel] [Patch][edk2-stable201908] BaseTools: Fixed regression issue for building !x86 builds To: devel@edk2.groups.io, bob.c.feng@intel.com, "Kinney, Michael D" , "Gao, Liming" , Leif Lindholm Cc: "afish@apple.com" References: <20190828091710.22372-1-bob.c.feng@intel.com> <20190828140129.GJ29255@bivouac.eciton.net> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4DDB42@SHSMSX104.ccr.corp.intel.com> <08650203BA1BD64D8AD9B6D5D74A85D16152A852@SHSMSX104.ccr.corp.intel.com> From: "Laszlo Ersek" Message-ID: Date: Thu, 29 Aug 2019 16:32:49 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <08650203BA1BD64D8AD9B6D5D74A85D16152A852@SHSMSX104.ccr.corp.intel.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Thu, 29 Aug 2019 14:32:51 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Bob, On 08/29/19 05:15, Bob Feng wrote: > Pushed at 37eef91017ad042035090cae46557f9d6e2d5917 If I understand correctly, it remains the case that the BaseTools behavior -- which has now been restored, with this commit -- does not match the priority order for lib class resolutions in the DSC specification. Can you please file a documentation BZ for that? Since the BaseTools maintainers know the DSC internals best, it would be great if you could also submit the DSC documentation patch too, for the new BZ. If you don't have time for that, then please be *very* specific in the documentation BZ, regarding the actual resolution order -- please don't just say "replace this with that", but please provide the full order, for describing the desired (= now-fixed) BaseTools behavior. Thanks Laszlo > -----Original Message----- > From: Kinney, Michael D > Sent: Thursday, August 29, 2019 2:43 AM > To: Gao, Liming ; Leif Lindholm ; devel@edk2.groups.io; Feng, Bob C ; Kinney, Michael D > Cc: afish@apple.com; Laszlo Ersek (lersek@redhat.com) > Subject: RE: [edk2-devel] [Patch][edk2-stable201908] BaseTools: Fixed regression issue for building !x86 builds > > Hi Bob, > > I agree this is a critical regression issue that must be fixed for the edk2-stable201908 release. > > Tested-by: Michael D Kinney > Acked-by: Michael D Kinney > > Thanks, > > Mike > >> -----Original Message----- >> From: Gao, Liming >> Sent: Wednesday, August 28, 2019 8:22 AM >> To: Leif Lindholm ; devel@edk2.groups.io; >> Feng, Bob C >> Cc: Kinney, Michael D ; afish@apple.com; >> Laszlo Ersek (lersek@redhat.com) >> Subject: RE: [edk2-devel] [Patch][edk2-stable201908] >> BaseTools: Fixed regression issue for building !x86 builds >> >> Bob: >> This fix is clear. Reviewed-by: Liming Gao >> >> Thanks >> Liming >>> -----Original Message----- >>> From: Leif Lindholm [mailto:leif.lindholm@linaro.org] >>> Sent: Wednesday, August 28, 2019 10:01 PM >>> To: devel@edk2.groups.io; Feng, Bob C >> >>> Cc: Gao, Liming >>> Subject: Re: [edk2-devel] [Patch][edk2-stable201908] >> BaseTools: Fixed >>> regression issue for building !x86 builds >>> >>> On Wed, Aug 28, 2019 at 05:17:10PM +0800, Bob Feng >> wrote: >>>> BZ: >> https://bugzilla.tianocore.org/show_bug.cgi?id=2134 >>>> >>>> This patch is to fix a build tool regression issue >> which was >>>> introduced by commit e8449e1d8e. >>>> >>>> In commit e8449e1d8e, build tool check the pcd >> before filter out the >>>> irrelevant library instance. >>>> >>>> The logic of evaluating the priority of the library >> class >>>> resolutions was not changed. >>> >>> Ah, OK, that greatly simplifies things. >>> >>> This resolves the issue(s) for me - thanks! >>> >>>> Cc: Liming Gao >>>> Signed-off-by: Bob Feng >>> >>> Acked-by: Leif Lindholm >>> Tested-by: Leif Lindholm >>> >>> >>>> --- >>>> .../Source/Python/Workspace/InfBuildData.py | 29 >> ++++++++++--------- >>>> 1 file changed, 16 insertions(+), 13 deletions(-) >>>> >>>> diff --git >> a/BaseTools/Source/Python/Workspace/InfBuildData.py >>>> b/BaseTools/Source/Python/Workspace/InfBuildData.py >>>> index e63246b03b..7675b0ea00 100644 >>>> --- >> a/BaseTools/Source/Python/Workspace/InfBuildData.py >>>> +++ >> b/BaseTools/Source/Python/Workspace/InfBuildData.py >>>> @@ -154,12 +154,11 @@ class >> InfBuildData(ModuleBuildClassObject): >>>> self._PcdComments = None >>>> self._BuildOptions = None >>>> self._DependencyFileList = None >>>> self.LibInstances = [] >>>> self.ReferenceModules = set() >>>> - self.Guids >>>> - self.Pcds >>>> + >>>> def SetReferenceModule(self,Module): >>>> self.ReferenceModules.add(Module) >>>> return self >>>> >>>> ## XXX[key] = value >>>> @@ -654,10 +653,24 @@ class >> InfBuildData(ModuleBuildClassObject): >>>> "Value of Guid >> [%s] is not found under [Guids] section in" % CName, >>>> >> ExtraData=PackageList, File=self.MetaFile, >> Line=Record[-1]) >>>> RetVal[CName] = Value >>>> CommentRecords = >> self._RawData[MODEL_META_DATA_COMMENT, self._Arch, self._Platform, >> Record[5]] >>>> self._GuidComments[CName] = [a[0] for >> a in >>>> CommentRecords] >>>> + >>>> + for Type in >>> >> [MODEL_PCD_FIXED_AT_BUILD,MODEL_PCD_PATCHABLE_IN_MODULE >> ,MODEL_PCD_FEAT >>> URE_FLAG,MODEL_PCD_DYNAMIC,MODEL_PCD >>> _DYNAMIC_EX]: >>>> + RecordList = self._RawData[Type, >> self._Arch, self._Platform] >>>> + for TokenSpaceGuid, _, _, _, _, _, >> LineNo in RecordList: >>>> + # get the guid value >>>> + if TokenSpaceGuid not in RetVal: >>>> + Value = >> GuidValue(TokenSpaceGuid, self.Packages, >> self.MetaFile.Path) >>>> + if Value is None: >>>> + PackageList = >> "\n\t".join(str(P) for P in self.Packages) >>>> + EdkLogger.error('build', >> RESOURCE_NOT_AVAILABLE, >>>> + "Value of >> Guid [%s] is not found under [Guids] section in" % TokenSpaceGuid, >>>> + >> ExtraData=PackageList, File=self.MetaFile, Line=LineNo) >>>> + RetVal[TokenSpaceGuid] = Value >>>> + >> self._GuidsUsedByPcd[TokenSpaceGuid] = Value >>>> return RetVal >>>> >>>> ## Retrieve include paths necessary for this >> module (for Edk.x style of modules) >>>> @cached_property >>>> def Includes(self): >>>> @@ -856,11 +869,11 @@ class >> InfBuildData(ModuleBuildClassObject): >>>> if file_name.upper().endswith("DEC"): >>>> pkg = >> os.path.join(TopDir,file_name) >>>> return pkg >>>> @cached_class_function >>>> def GetGuidsUsedByPcd(self): >>>> - self.Pcds >>>> + self.Guid >>>> return self._GuidsUsedByPcd >>>> >>>> ## Retrieve PCD for given type >>>> def _GetPcd(self, Type): >>>> Pcds = OrderedDict() >>>> @@ -868,20 +881,10 @@ class >> InfBuildData(ModuleBuildClassObject): >>>> PcdList = [] >>>> RecordList = self._RawData[Type, >> self._Arch, self._Platform] >>>> for TokenSpaceGuid, PcdCName, Setting, >> Arch, Platform, Id, LineNo in RecordList: >>>> PcdDict[Arch, Platform, PcdCName, >> TokenSpaceGuid] = (Setting, LineNo) >>>> PcdList.append((PcdCName, >> TokenSpaceGuid)) >>>> - # get the guid value >>>> - if TokenSpaceGuid not in self.Guids: >>>> - Value = GuidValue(TokenSpaceGuid, >> self.Packages, self.MetaFile.Path) >>>> - if Value is None: >>>> - PackageList = >> "\n\t".join(str(P) for P in self.Packages) >>>> - EdkLogger.error('build', >> RESOURCE_NOT_AVAILABLE, >>>> - "Value of Guid >> [%s] is not found under [Guids] section in" % TokenSpaceGuid, >>>> - >> ExtraData=PackageList, File=self.MetaFile, Line=LineNo) >>>> - self.Guids[TokenSpaceGuid] = Value >>>> - >> self._GuidsUsedByPcd[TokenSpaceGuid] = Value >>>> CommentRecords = >> self._RawData[MODEL_META_DATA_COMMENT, self._Arch, self._Platform, Id] >>>> Comments = [] >>>> for CmtRec in CommentRecords: >>>> Comments.append(CmtRec[0]) >>>> self._PcdComments[TokenSpaceGuid, >> PcdCName] = Comments >>>> -- >>>> 2.20.1.windows.1 >>>> >>>> >>>> >>>> > > >