From: "Liming Gao" <liming.gao@intel.com>
To: "Yao, Jiewen" <jiewen.yao@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>,
"Shi, Steven" <steven.shi@intel.com>
Cc: "Feng, Bob C" <bob.c.feng@intel.com>,
"Rodriguez, Christian" <christian.rodriguez@intel.com>,
"Johnson, Michael" <michael.johnson@intel.com>
Subject: Re: [edk2-devel] [PATCH] BaseTools: Skip .mcb file module in Binary Cache
Date: Thu, 9 May 2019 05:47:04 +0000 [thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4457A4@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503F635E39@shsmsx102.ccr.corp.intel.com>
Jiewen:
> -----Original Message-----
> From: Yao, Jiewen
> Sent: Thursday, May 9, 2019 1:13 PM
> To: devel@edk2.groups.io; Shi, Steven <steven.shi@intel.com>
> Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming <liming.gao@intel.com>; Rodriguez, Christian <christian.rodriguez@intel.com>;
> Johnson, Michael <michael.johnson@intel.com>
> Subject: RE: [edk2-devel] [PATCH] BaseTools: Skip .mcb file module in Binary Cache
>
> Hi
> Can we have better way to describe the binary cache?
Yes. Steven provides some wiki pages for it.
>
> I have 2 concern:
> 1) we have other type of binary besides MCB. How can we indicate that without update base tool source code ?
MCB will be combined to single bin file. The problem is that the platform uses the bin file from output IA32 or X64
directory instead of the module output directory. Binary cache is for the module output directory.
I suggest to update the platform to consume the module output file. But, I meet with one tool issue to support
RAW FILE type, because Microcode uses RAW file type. BZ https://bugzilla.tianocore.org/show_bug.cgi?id=1765 is submitted.
I suggest to fix this tool issue first.
> 2) .inc might be text file, instead of binary. How can we support that?
.inc is similar to .c source file. Its output is .mcb, then be combined to .bin file. .bin file will be cached.
.inc is not required to be cached. On next build, build tool will compare the hash value of source file, if
hash value is not changed. Previous cached .bin file will be used.
>
> Thank you
> Yao Jiewen
>
>
> > -----Original Message-----
> > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> > Steven Shi
> > Sent: Wednesday, May 8, 2019 10:00 PM
> > To: devel@edk2.groups.io
> > Cc: Feng, Bob C <bob.c.feng@intel.com>; Gao, Liming
> > <liming.gao@intel.com>; Rodriguez, Christian
> > <christian.rodriguez@intel.com>; Johnson, Michael
> > <michael.johnson@intel.com>
> > Subject: [edk2-devel] [PATCH] BaseTools: Skip .mcb file module in Binary
> > Cache
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1723
> >
> > Current Kabylake open platform will build fail if enabled
> > to consume the binary cache, because the binary cache doesn't
> > support to recovery the .mcb microcode file,
> > e.g. m80406E8_00000026.mcb, in a platform level folder which
> > is outside of the module output folder. In normal build
> > without cache, the .mcb file is copied through OS copy/move
> > commands defined in build rules which are not supported by
> > Binary Cache.
> > Change the Binary Cache to skip the .mcb file type module and
> > always rebuild the module to apply the full build rules if
> > it contains .mcb file.
> > ---
> > BaseTools/Source/Python/AutoGen/AutoGen.py | 8 ++++----
> > 1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py
> > b/BaseTools/Source/Python/AutoGen/AutoGen.py
> > index 31721a6f9f..6b596c8a65 100644
> > --- a/BaseTools/Source/Python/AutoGen/AutoGen.py
> > +++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
> > @@ -3925,9 +3925,9 @@ class ModuleAutoGen(AutoGen):
> > # If library or Module is binary do not skip by hash
> > if self.IsBinaryModule:
> > return False
> > - # .inc is contains binary information so do not skip by hash as well
> > + # .inc and .mcb is contains binary information so do not skip by
> > hash as well
> > for f_ext in self.SourceFileList:
> > - if '.inc' in str(f_ext):
> > + if '.inc' in str(f_ext) or '.mcb' in str(f_ext):
> > return False
> > FileDir = path.join(GlobalData.gBinCacheSource,
> > self.PlatformInfo.Name, self.BuildTarget + "_" + self.ToolChain, self.Arch,
> > self.SourceDir, self.MetaFile.BaseName)
> > HashFile = path.join(FileDir, self.Name + '.hash')
> > @@ -4138,9 +4138,9 @@ class ModuleAutoGen(AutoGen):
> > # If library or Module is binary do not skip by hash
> > if self.IsBinaryModule:
> > return False
> > - # .inc is contains binary information so do not skip by hash as well
> > + # .inc or '.mcb' is contains binary information so do not skip by
> > hash as well
> > for f_ext in self.SourceFileList:
> > - if '.inc' in str(f_ext):
> > + if '.inc' in str(f_ext) or '.mcb' in str(f_ext):
> > return False
> > if GlobalData.gUseHashCache:
> > # If there is a valid hash or function generated a valid hash;
> > function will return False
> > --
> > 2.17.1.windows.2
> >
> >
> >
next prev parent reply other threads:[~2019-05-09 5:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-09 4:59 [PATCH] BaseTools: Skip .mcb file module in Binary Cache Steven Shi
2019-05-09 5:13 ` [edk2-devel] " Yao, Jiewen
2019-05-09 5:47 ` Liming Gao [this message]
2019-05-09 5:53 ` Steven Shi
2019-05-09 12:34 ` Yao, Jiewen
2019-05-09 14:04 ` Liming Gao
2019-05-09 14:22 ` Yao, Jiewen
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=4A89E2EF3DFEDB4C8BFDE51014F606A14E4457A4@SHSMSX104.ccr.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