From: "Carsey, Jaben" <jaben.carsey@intel.com>
To: 'Vladimir Olovyannikov' <vladimir.olovyannikov@broadcom.com>,
Laszlo Ersek <lersek@redhat.com>,
"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: FW: [PATCH] BaseTools/BuildReport: fix report for platforms/arches without struct PCDs
Date: Wed, 6 Feb 2019 23:08:54 +0000 [thread overview]
Message-ID: <CB6E33457884FA40993F35157061515CBCB6C99D@ORSMSX153.amr.corp.intel.com> (raw)
In-Reply-To: 25510a796451b6ffcc9ada39be8d3d6d@mail.gmail.com
I sent this earlier, but failed the mailing list part.
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com>
And pushed.
> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of
> Vladimir Olovyannikov via edk2-devel
> Sent: Tuesday, February 05, 2019 8:58 AM
> To: Laszlo Ersek <lersek@redhat.com>; edk2-devel@lists.01.org
> Cc: Gao, Liming <liming.gao@intel.com>
> Subject: Re: [edk2] [PATCH] BaseTools/BuildReport: fix report for
> platforms/arches without struct PCDs
>
> Laszlo,
> Thanks a lot for the prompt fix. Works now.
>
> Tested-by: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>
>
> -----Original Message-----
> From: Laszlo Ersek [mailto:lersek@redhat.com]
> Sent: Tuesday, February 5, 2019 3:22 AM
> To: edk2-devel@lists.01.org
> Cc: Bob Feng; Liming Gao; Vladimir Olovyannikov; Yonghong Zhu
> Subject: [PATCH] BaseTools/BuildReport: fix report for platforms/arches
> without struct PCDs
>
> The goal of commit 97c8f5b9e7d3 ("BaseTools:StructurePCD value display
> incorrect in "Not used" section.", 2019-02-02) was to display the full
> contents of such structure PCDs in the build report that were set in the
> platform DSC or the FDF, but not used in any module INFs. The listings
> would appear in the
>
> PCDs not used by modules or in conditional directives
>
> section of the build report.
>
> Commit 97c8f5b9e7d3 assumed that any (platform, architecture)
> combination
> would have a (possibly empty) set of structure PCD (and so the set of the
> structure PCDs could be filtered for set-but-unused ones).
>
> This is not the case: in "DscBuildData.py", in method
> UpdateStructuredPcds(), if "S_pcd_set" remains an empty OrderedDict(),
> then it is not added to "GlobalData.gStructurePcd" *at all*, for the
> current (platform, architecture) combination.
>
> As a result, when the PCD report tries to fetch the set of structure PCDs
> for the current (platform, architecture), "GlobalData.gStructurePcd" does
> not return an empty OrderedDict(); instead, it raises a KeyError. Fix it
> by defaulting to an empty OrderedDict(), with the get() method.
>
> Reported-by: Vladimir Olovyannikov
> <vladimir.olovyannikov@broadcom.com>
> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1513
> Fixes: 97c8f5b9e7d3136b6051a05cf056ce5ca9e79893
> Cc: Bob Feng <bob.c.feng@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Vladimir Olovyannikov <vladimir.olovyannikov@broadcom.com>
> Cc: Yonghong Zhu <yonghong.zhu@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
>
> Notes:
> Repo: https://github.com/lersek/edk2.git
> Branch: report_without_struct_pcds
>
> BaseTools/Source/Python/build/BuildReport.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/BaseTools/Source/Python/build/BuildReport.py
> b/BaseTools/Source/Python/build/BuildReport.py
> index e457660fcef3..0b98d62cb6aa 100644
> --- a/BaseTools/Source/Python/build/BuildReport.py
> +++ b/BaseTools/Source/Python/build/BuildReport.py
> @@ -780,7 +780,7 @@ class PcdReport(object):
> # Collect the PCD defined in DSC/FDF file, but not used in
> module
> #
> UnusedPcdFullList = []
> - StructPcdDict = GlobalData.gStructurePcd[self.Arch]
> + StructPcdDict = GlobalData.gStructurePcd.get(self.Arch,
> collections.OrderedDict())
> for Name, Guid in StructPcdDict:
> if (Name, Guid) not in Pa.Platform.Pcds:
> Pcd = StructPcdDict[(Name, Guid)]
> --
> 2.19.1.3.g30247aa5d201
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
next prev parent reply other threads:[~2019-02-06 23:08 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-05 11:22 [PATCH] BaseTools/BuildReport: fix report for platforms/arches without struct PCDs Laszlo Ersek
2019-02-05 16:58 ` Vladimir Olovyannikov
2019-02-06 23:08 ` Carsey, Jaben [this message]
2019-02-07 13:27 ` FW: " Laszlo Ersek
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=CB6E33457884FA40993F35157061515CBCB6C99D@ORSMSX153.amr.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