<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle20
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Andrew,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal">What about the force include of AutoGen.h? <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">AutoGen.h (and .c) have contents which are determined by various metadata like PCD values or items listed in the INF.  The sources and dependencies can’t be involved,
 since those aren’t known until after the autogen files are already complete.  The build calls genc before genmake.  The hash<a name="_MailEndCompose"> accounts for those by incorporating the metadata itself, rather than the autogenerated files.<o:p></o:p></a></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal">If there is a rule the tools should enforce the rule with good error messages. <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">For the case of the build hash feature, we have an EdkLogger.warn in these patches.  Invalidating the hash allows the build to continue with up-to-date modules
 by sending the module back to the regular build process, and the message informs the user of what we found.<o:p></o:p></span></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Since the point of the feature is to speed up builds, I think this is right.  If we instead stopped the build, when without --hash it would’ve completed successfully,
 then we’ve made a more restricted build that’s less useful, rather than giving the existing functionality a speed boost via caching.  I’m not against broadening the use of this check to regular builds, but that has unanswered questions and its outside the
 scope of the BZs targeted by these patches.  Do we want to check for this condition on every build and log when we see it?  Do we want an optional build flag for it?  Should another flag cause a halt and give an error, maybe something like “--strict” which
 could check for other spec violating conditions as well?  It turns into a whole feature of its own, with considerably higher impact since *<b>many</b>* codebases in the wild have non-compliant modules sprinkled throughout.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal">I think Leif and I are both concerned about having two ways to do something as complex as make dependencies, as they risk getting out of phase, or breaking different ways (like following the .h rules in the INF File).<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">I understand the concern.  One positive thing about the overly broad nature of hashing all possible legal includes and all compiler flags and all etc etc is that
 we don’t need to carry much understanding or complexity.  We just hash ‘all the inputs’ and don’t bother looking any deeper.  Further, when the hash of a module changes, it drops back to the regular path and the ordinary build/skip decision is made exactly
 as it would be in a regular build.  I think this is simple enough to not be (too) troubling.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"></span>At some point refactoring the build system from the top might be the right approach. <o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Agreed.  The build tools are critical and could use more attention.  Maybe someday…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">-Michael<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> devel@edk2.groups.io [mailto:devel@edk2.groups.io]
<b>On Behalf Of </b>Andrew Fish via Groups.Io<br>
<b>Sent:</b> Thursday, May 30, 2019 3:53 PM<br>
<b>To:</b> devel@edk2.groups.io; Johnson, Michael <michael.johnson@intel.com><br>
<b>Cc:</b> Leif Lindholm <leif.lindholm@linaro.org>; Feng, Bob C <bob.c.feng@intel.com>; Rodriguez, Christian <christian.rodriguez@intel.com>; Laszlo Ersek <lersek@redhat.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>;
 Shi, Steven <steven.shi@intel.com>; Fan, ZhijuX <zhijux.fan@intel.com><br>
<b>Subject:</b> Re: [edk2-devel] Edk2 BaseTools Patches.<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On May 30, 2019, at 2:31 PM, Johnson, Michael <<a href="mailto:michael.johnson@intel.com">michael.johnson@intel.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">All,</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">These patches are not required for the stable tag.  They’re improvements needed to enable relatively new build options that are not yet widely used.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">That said, let me try to clear the air here about what is happening regarding the sources/includes and what changes with these patches.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">The INF spec (<a href="https://edk2-docs.gitbooks.io/edk-ii-inf-specification/content/v/release/1.27/3_edk_ii_inf_file_format/39_%5bsources%5d_sections.html"><span style="color:purple">section
 3.9</span></a>) says that all local source files, including .h files, must be included in the sources section.  This means a module is not compliant if it includes a header file from a directory other than a package include directory and fails to list it in
 its sources section.  We’re already generating a hash which is guaranteed to change whenever the module’s source changes - without invoking mkdep - by hashing each file from the sources section as well as *<b>all</b>* the contents of every include folder belonging
 to each package that the module is dependent on.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
</div>
</blockquote>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Every possible ‘legally’ included header will change the hash,
</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Michael,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">What about the force include of AutoGen.h? <o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">but the hashes of non-compliant modules will not change when their ‘illegally’ included headers change and we will incorrectly re-use stale cached binaries. 
 To prevent this, the below patches check for compliance and invalidate the hash of any non-compliant module.  In this way, non-compliance is neither supported nor allowed to poison the cache.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">If there is a rule the tools should enforce the rule with good error messages. <o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">Again, since this only has an effect on builds which have enabled this relatively new feature, I don’t expect any production impact if the stable tag doesn’t
 take these patches.  Nobody is using it yet.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal">I think Leif and I are both concerned about having two ways to do something as complex as make dependencies, as they risk getting out of phase, or breaking different ways (like following the .h rules in the INF File).<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Also I understand some times we hit circular dependencies and that forces duplication. It would be good in general to try and make a list of these kind of circular dependencies, given they may been caused by a faulty high level design decision
 made long ago. At some point refactoring the build system from the top might be the right approach. <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Andrew Fish<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D">-Michael</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"> </span><o:p></o:p></p>
</div>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<div>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span class="apple-converted-space"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> </span></span><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><a href="mailto:devel@edk2.groups.io"><span style="color:purple">devel@edk2.groups.io</span></a><span class="apple-converted-space"> </span>[<a href="mailto:devel@edk2.groups.io"><span style="color:purple">mailto:devel@edk2.groups.io</span></a>]<span class="apple-converted-space"> </span><b>On
 Behalf Of<span class="apple-converted-space"> </span></b>Andrew Fish via Groups.Io<br>
<b>Sent:</b><span class="apple-converted-space"> </span>Thursday, May 30, 2019 11:10 AM<br>
<b>To:</b><span class="apple-converted-space"> </span><a href="mailto:devel@edk2.groups.io"><span style="color:purple">devel@edk2.groups.io</span></a>; Leif Lindholm <<a href="mailto:leif.lindholm@linaro.org"><span style="color:purple">leif.lindholm@linaro.org</span></a>><br>
<b>Cc:</b><span class="apple-converted-space"> </span>Feng, Bob C <<a href="mailto:bob.c.feng@intel.com"><span style="color:purple">bob.c.feng@intel.com</span></a>>; Rodriguez, Christian <<a href="mailto:christian.rodriguez@intel.com"><span style="color:purple">christian.rodriguez@intel.com</span></a>>;
 Laszlo Ersek <<a href="mailto:lersek@redhat.com"><span style="color:purple">lersek@redhat.com</span></a>>; Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com"><span style="color:purple">michael.d.kinney@intel.com</span></a>>; Gao, Liming <<a href="mailto:liming.gao@intel.com"><span style="color:purple">liming.gao@intel.com</span></a>>;
 Shi, Steven <<a href="mailto:steven.shi@intel.com"><span style="color:purple">steven.shi@intel.com</span></a>>; Fan, ZhijuX <<a href="mailto:zhijux.fan@intel.com"><span style="color:purple">zhijux.fan@intel.com</span></a>><br>
<b>Subject:</b><span class="apple-converted-space"> </span>Re: [edk2-devel] Edk2 BaseTools Patches.</span><o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal">On May 30, 2019, at 9:37 AM, Leif Lindholm <<a href="mailto:leif.lindholm@linaro.org"><span style="color:purple">leif.lindholm@linaro.org</span></a>> wrote:<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">Thanks Bob, Christian,<br>
<br>
On Thu, May 30, 2019 at 03:06:48PM +0000, Feng, Bob C wrote:<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">Thanks Christian. I add some short description for the patches.<br>
<br>
These 5 patches are all for binary cache feature.<br>
<br>
[Patch V4 2/2] BaseTools: Refactor hash tracking after checking for Sources section<br>
[Patch V4 1/2] BaseTools: Add a checking for Sources section in INF file<br>
<br>
The above 2 patches is to fix the issue that<br>
The  build tool uses the files list under [sources] section of INF<br>
file as a input to calculate a module's hash value. But in some INF<br>
files, [sources] does not list all the "source" files, missing some<br>
.h files. Path 2/2 use another method to get all source files for a<br>
module and patch 1/2 do a check whether [sources] list all the<br>
"source" files.</span><o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
I'll be honest - because of the wild variance in whether .h files are<br>
listed in the [sources] section of .inf files, I have always been<br>
unsure as to whether they were just being ignored (and extracted on<br>
the side via mkdep or similar).<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Leif,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">I'm confused too as you can only really know the set of include files by doing the mkdep?<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">I don't see the value of hashing the local include files as any include file change in the mkdep path requires the module to be recompiled. It seems to me having one scheme for hashing and anther four building is going to cause a lot of
 very subtle errors that are really hard to debug. When you have these kind of errors in your build system you teach people they always need to make clean, so they bypass the hashing and dependency checks. <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Seems like we may be fighting the makefiles again, but from a 10,000 point of view it seems like the dependency algorithm and the hash need to be tied together. Seems like the makefile already knows if it needs to build it, but I'm not
 sure if the makefile can run an action if it does not need to build something? <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">Andrew Fish<o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><br>
<br>
<br>
<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">If the intent is to speed up build time, would it not be better to<br>
warn the user - so they notice the problem and fix their modules,<br>
rather than adding extra processing time on having the tools work with<br>
broken .inf files?<br>
<br>
This does not look like material for edk2-stable201905 to me.<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">[PATCH v3 1/1] BaseTools:Extend the binary cache to support library cache<br>
This patch is to resolve the problem that<br>
Build tool dose not cache the library binaries now. Whiteout this<br>
patch, there is 25% extra time cost to rebuild the all module<br>
dependency libraries if cache miss happen.</span><o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
25% is a big number, so I won't argue against this. But I also won't<br>
argue for it - the BZ was raised very late in the cycle.<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">[PATCH] BaseTools:Update binary cache restore time to current time<br>
This patch is to make the restored binary file have the current time<br>
stamp not the binary file original time stamp.</span><o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
I can see how the current behaviour could cause problems with some<br>
CI/build systems. If it is properly reviewed and tested, I am OK with<br>
this one going in for edk2-stable201903.<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">[PATCH V5] BaseTools:Make BaseTools support new rules to generate RAW FFS FILE<br>
This patch is to support the raw ffs file rule. Now build tool does<br>
not correctly handle this case:<br>
<br>
[Rule.Common.USER_DEFINED.MicroCode]<br>
 FILE RAW = $(NAMED_GUID) {<br>
                $(INF_OUTPUT)/$(MODULE_NAME).bin<br>
 }</span><o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
This looks like a new feature - not something that should bypass the<br>
freeze period for edk2-stable201905.<br>
Can you explain why this is needed in the stable tag as opposed to<br>
being available from master the day after the tag is made?<br>
<br>
Best Regards,<br>
<br>
Leif<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
<br>
Thanks,<br>
Bob<br>
<br>
-----Original Message-----<br>
From: Rodriguez, Christian<span class="apple-converted-space"> </span><br>
Sent: Thursday, May 30, 2019 10:26 PM<br>
To: Leif Lindholm <<a href="mailto:leif.lindholm@linaro.org"><span style="color:purple">leif.lindholm@linaro.org</span></a>>; Feng, Bob C <<a href="mailto:bob.c.feng@intel.com"><span style="color:purple">bob.c.feng@intel.com</span></a>><br>
Cc: Andrew Fish <<a href="mailto:afish@apple.com"><span style="color:purple">afish@apple.com</span></a>>; Laszlo Ersek <<a href="mailto:lersek@redhat.com"><span style="color:purple">lersek@redhat.com</span></a>>; Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com"><span style="color:purple">michael.d.kinney@intel.com</span></a>>;<a href="mailto:devel@edk2.groups.io"><span style="color:purple">devel@edk2.groups.io</span></a>;
 Gao, Liming <<a href="mailto:liming.gao@intel.com"><span style="color:purple">liming.gao@intel.com</span></a>>; Shi, Steven <<a href="mailto:steven.shi@intel.com"><span style="color:purple">steven.shi@intel.com</span></a>>; Fan, ZhijuX <<a href="mailto:zhijux.fan@intel.com"><span style="color:purple">zhijux.fan@intel.com</span></a>><br>
Subject: RE: Edk2 BaseTools Patches.<br>
<br>
Hey Leif,<br>
<br>
I thought I'd help Bob and gather those BZs for each thread:<br>
<br>
[Patch V4 1/2] BaseTools: Add a checking for Sources section in INF file [Patch V4 2/2] BaseTools: Refactor hash tracking after checking for Sources section<br>
BZ:<span class="apple-converted-space"> </span><a href="https://bugzilla.tianocore.org/show_bug.cgi?id=1804"><span style="color:purple">https://bugzilla.tianocore.org/show_bug.cgi?id=1804</span></a><br>
<br>
[PATCH v3 1/1] BaseTools:Extend the binary cache to support library cache<br>
BZ:<span class="apple-converted-space"> </span><a href="https://bugzilla.tianocore.org/show_bug.cgi?id=1797"><span style="color:purple">https://bugzilla.tianocore.org/show_bug.cgi?id=1797</span></a><br>
<br>
[PATCH V5] BaseTools:Make BaseTools support new rules to generate RAW FFS FILE<br>
BZ:<span class="apple-converted-space"> </span><a href="https://bugzilla.tianocore.org/show_bug.cgi?id=1765"><span style="color:purple">https://bugzilla.tianocore.org/show_bug.cgi?id=1765</span></a><br>
<br>
[PATCH] BaseTools:Update binary cache restore time to current time<br>
BZ:<span class="apple-converted-space"> </span><a href="https://bugzilla.tianocore.org/show_bug.cgi?id=1742"><span style="color:purple">https://bugzilla.tianocore.org/show_bug.cgi?id=1742</span></a><br>
<br>
Thanks,<br>
Christian<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">-----Original Message-----<br>
From: Leif Lindholm [<a href="mailto:leif.lindholm@linaro.org"><span style="color:purple">mailto:leif.lindholm@linaro.org</span></a>]<br>
Sent: Thursday, May 30, 2019 2:28 AM<br>
To: Feng, Bob C <<a href="mailto:bob.c.feng@intel.com"><span style="color:purple">bob.c.feng@intel.com</span></a>><br>
Cc: Andrew Fish <<a href="mailto:afish@apple.com"><span style="color:purple">afish@apple.com</span></a>>; Laszlo Ersek <<a href="mailto:lersek@redhat.com"><span style="color:purple">lersek@redhat.com</span></a>>;<span class="apple-converted-space"> </span><br>
Kinney, Michael D <<a href="mailto:michael.d.kinney@intel.com"><span style="color:purple">michael.d.kinney@intel.com</span></a>>;<span class="apple-converted-space"> </span><a href="mailto:devel@edk2.groups.io"><span style="color:purple">devel@edk2.groups.io</span></a>;<span class="apple-converted-space"> </span><br>
Gao, Liming <<a href="mailto:liming.gao@intel.com"><span style="color:purple">liming.gao@intel.com</span></a>>; Shi, Steven <<a href="mailto:steven.shi@intel.com"><span style="color:purple">steven.shi@intel.com</span></a>>;<span class="apple-converted-space"> </span><br>
Rodriguez, Christian <<a href="mailto:christian.rodriguez@intel.com"><span style="color:purple">christian.rodriguez@intel.com</span></a>>; Fan, ZhijuX<span class="apple-converted-space"> </span><br>
<<a href="mailto:zhijux.fan@intel.com"><span style="color:purple">zhijux.fan@intel.com</span></a>><br>
Subject: Re: Edk2 BaseTools Patches.<br>
<br>
Hi Bob,<br>
<br>
On Thu, May 30, 2019 at 06:39:59AM +0000, Feng, Bob C wrote:<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif">Hi,<br>
<br>
Currently, we have 5 Basetools patches which are ready to push. Since<span class="apple-converted-space"> </span><br>
we are in the soft-freeze phase, I'd like to ask for your opinions if<span class="apple-converted-space"> </span><br>
those patches can be pushed to edk2 master.</span><o:p></o:p></p>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
To save me the time of reading through all the threads and getting to<span class="apple-converted-space"> </span><br>
grips with all the code, could you summarise the problem these solve<span class="apple-converted-space"> </span><br>
and the impact of not including these?<br>
<br>
Is there a BZ?<br>
<br>
Regards,<br>
<br>
Leif<br>
<br>
<br>
<br>
</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
These 5 patches are to fix the issues for the build cache feature.<br>
<br>
[Patch V4 2/2] BaseTools: Refactor hash tracking after checking for<span class="apple-converted-space"> </span><br>
Sources section<br>
<a href="https://edk2.groups.io/g/devel/topic/31835556#41642"><span style="color:purple">https://edk2.groups.io/g/devel/topic/31835556#41642</span></a><br>
<br>
[Patch V4 1/2] BaseTools: Add a checking for Sources section in INF<span class="apple-converted-space"> </span><br>
file<br>
<a href="https://edk2.groups.io/g/devel/topic/31835555#41641"><span style="color:purple">https://edk2.groups.io/g/devel/topic/31835555#41641</span></a><br>
<br>
[PATCH v3 1/1] BaseTools:Extend the binary cache to support library<span class="apple-converted-space"> </span><br>
cache<br>
<a href="https://edk2.groups.io/g/devel/topic/31843505#41655"><span style="color:purple">https://edk2.groups.io/g/devel/topic/31843505#41655</span></a><br>
<br>
[PATCH V5] BaseTools:Make BaseTools support new rules to generate RAW<span class="apple-converted-space"> </span><br>
FFS FILE<br>
<a href="https://edk2.groups.io/g/devel/topic/31830807#41571"><span style="color:purple">https://edk2.groups.io/g/devel/topic/31830807#41571</span></a><br>
<br>
[PATCH] BaseTools:Update binary cache restore time to current time<br>
<a href="https://edk2.groups.io/g/devel/topic/31819590#41468"><span style="color:purple">https://edk2.groups.io/g/devel/topic/31819590#41468</span></a><br>
<br>
<br>
Thanks,<br>
Bob</span><o:p></o:p></p>
</div>
</blockquote>
</blockquote>
</blockquote>
<div>
<p class="MsoNormal"><span style="font-size:9.0pt;font-family:"Helvetica",sans-serif"><br>
<br>
<br>
</span><o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
</blockquote>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"></o:p></span></p>
</div>
</div>
</body>
</html>

<div width="1" style="color:white;clear:both">_._,_._,_</div>
<hr>
Groups.io Links:<p>

You receive all messages sent to this group.


<p>

<a target="_blank" href="https://edk2.groups.io/g/devel/message/41695">View/Reply Online (#41695)</a> |


  


|


  
    <a target="_blank" href="https://groups.io/mt/31866190/1813853">Mute This Topic</a>
  

| <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>



<br>

<a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> |
<a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |

<a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>

 [edk2-devel-archive@redhat.com]<br>
<div width="1" style="color:white;clear:both">_._,_._,_</div>