public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Steven Shi" <steven.shi@intel.com>
To: devel@edk2.groups.io
Cc: bob.c.feng@intel.com, liming.gao@intel.com,
	christian.rodriguez@intel.com, michael.johnson@intel.com
Subject: [PATCH] BaseTools: Skip .mcb file module in Binary Cache
Date: Thu,  9 May 2019 12:59:57 +0800	[thread overview]
Message-ID: <20190509045957.592-1-steven.shi@intel.com> (raw)

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


             reply	other threads:[~2019-05-09  5:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-09  4:59 Steven Shi [this message]
2019-05-09  5:13 ` [edk2-devel] [PATCH] BaseTools: Skip .mcb file module in Binary Cache Yao, Jiewen
2019-05-09  5:47   ` Liming Gao
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=20190509045957.592-1-steven.shi@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