Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: ede54e3588173178ec054b5c4dc181d3c63872b2
      
https://github.com/tianocore/edk2/commit/ede54e3588173178ec054b5c4dc181d3c63872b2
  Author: Shi, Steven <steven....@intel.com>
  Date:   2019-06-17 (Mon, 17 Jun 2019)

  Changed paths:
    M BaseTools/Source/Python/AutoGen/AutoGen.py

  Log Message:
  -----------
  BaseTools:Build cache cannot store the cache files for library package

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1867

Current build cache cannot store the cache for library package.
build -p MdePkg\MdePkg.dsc -a IA32 -b DEBUG -t VS2015x86 --hash
--binary-destination=BinCache
After build, the expected result is the BinCache folder is generated
and the MdePkg build cache files (e.g. .hash and .lib) are stored in
the BinCache folder. But the BinCache folder is not generated at all.

This patch is going to fix that issue.

Cc: Liming Gao <liming....@intel.com>
Cc: Bob Feng <bob.c.f...@intel.com>
Cc: Zhiju.Fan <zhijux....@intel.com>
Signed-off-by: Steven Shi <steven....@intel.com>
Reviewed-by: Bob Feng <bob.c.f...@intel.com>


  Commit: 04df18535caae11d19686d8f14b5e24a8e67ce31
      
https://github.com/tianocore/edk2/commit/04df18535caae11d19686d8f14b5e24a8e67ce31
  Author: Shi, Steven <steven....@intel.com>
  Date:   2019-06-17 (Mon, 17 Jun 2019)

  Changed paths:
    M BaseTools/Source/Python/build/build.py

  Log Message:
  -----------
  BaseTools:Build Cache output notification message

BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=1868

Build need output the cache miss or hit notification
message when consume the build cache. Current build does not
output any message which is not clear for user to know
whether the module built result is from cache or not.

This patch adds message about the cache miss or hit when
build consumes the cache.

Cc: Liming Gao <liming....@intel.com>
Cc: Bob Feng <bob.c.f...@intel.com>
Cc: Zhiju.Fan <zhijux....@intel.com>
Signed-off-by: Steven Shi <steven....@intel.com>
Reviewed-by: Bob Feng <bob.c.f...@intel.com>


  Commit: 17b082ce67ded226916438fa2979b66472e87638
      
https://github.com/tianocore/edk2/commit/17b082ce67ded226916438fa2979b66472e87638
  Author: Shi, Steven <steven....@intel.com>
  Date:   2019-06-17 (Mon, 17 Jun 2019)

  Changed paths:
    M BaseTools/Source/Python/AutoGen/AutoGen.py

  Log Message:
  -----------
  BaseTools: Cannot store library cache of different arch together

https://bugzilla.tianocore.org/show_bug.cgi?id=1895

Build cache cannot store cache for the same library modules
in different arch together. E.g. Both the below IA32 and X64
arch BaseLib caches should exist after build Ovmf3264, but now
only the one in X64 arch exist.
The reason is the current Basetool use a set() to same all
library AutoGen objects, but the different arch lib AutoGen
objects have same __hash_ value which comes from the lib
MetaFile(The path of module file):
    def __hash__(self):
        return hash(self.MetaFile)

So the different arch lib AutoGen objects are duplicated one
to the set() and only one can exist. This is why the Basetool
can only store one arch cache for library.

This patch adds the arch string into the PlatformAutoGen and
ModuleAutoGen __hash_ definitions and ensure the different
platform and module AutoGen objects have different __hash_ values.

Cc: Liming Gao <liming....@intel.com>
Cc: Bob Feng <bob.c.f...@intel.com>
Cc: Christian Rodriguez <christian.rodrig...@intel.com>
Signed-off-by: Steven Shi <steven....@intel.com>
Reviewed-by: Bob Feng <bob.c.f...@intel.com>


  Commit: 2378ea55151eef8284b4cf35e95b058b0e591ea0
      
https://github.com/tianocore/edk2/commit/2378ea55151eef8284b4cf35e95b058b0e591ea0
  Author: Shi, Steven <steven....@intel.com>
  Date:   2019-06-17 (Mon, 17 Jun 2019)

  Changed paths:
    M BaseTools/Source/Python/AutoGen/AutoGen.py
    M BaseTools/Source/Python/Common/LongFilePathOs.py
    M BaseTools/Source/Python/Common/Misc.py

  Log Message:
  -----------
  BaseTools:Introduce CopyFileOnChange() function to copy cache files

BZ:https://bugzilla.tianocore.org/show_bug.cgi?id=1894

Basetool need a CopyFileOnChange() function to avoid cache
file writing race in multi-thread build. Some platforms
build fail with file IO writing race issue when the
build cache is enabled to store cache files in multi-threads.
This is because common same library cache files (e.g. some
libs in MdePkg) can be stored by many different driver modules'
build threads at same time. Current build cache need a function
to check whether the same cache file already exist, and only
copy source file if it is different from the destination file.

This patch introduces an atomic copy function to avoid duplicated
cache files copy.

Cc: Liming Gao <liming....@intel.com>
Cc: Bob Feng <bob.c.f...@intel.com>
Cc: Christian Rodriguez <christian.rodrig...@intel.com>
Signed-off-by: Steven Shi <steven....@intel.com>
Reviewed-by: Bob Feng <bob.c.f...@intel.com>


Compare: https://github.com/tianocore/edk2/compare/84f736a73e7a...2378ea55151e


_______________________________________________
edk2-commits mailing list
edk2-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to