]> git.proxmox.com Git - mirror_edk2.git/commit - BaseTools/Source/Python/Common/Misc.py
BaseTools:Introduce CopyFileOnChange() function to copy cache files
authorShi, Steven <steven.shi@intel.com>
Mon, 17 Jun 2019 08:43:58 +0000 (16:43 +0800)
committerFeng, Bob C <bob.c.feng@intel.com>
Mon, 17 Jun 2019 09:00:46 +0000 (17:00 +0800)
commit2378ea55151eef8284b4cf35e95b058b0e591ea0
treec22899bb4fb205d019342ec8876b516991c4dc0d
parent17b082ce67ded226916438fa2979b66472e87638
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.gao@intel.com>
Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Christian Rodriguez <christian.rodriguez@intel.com>
Signed-off-by: Steven Shi <steven.shi@intel.com>
Reviewed-by: Bob Feng <bob.c.feng@intel.com>
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/Common/LongFilePathOs.py
BaseTools/Source/Python/Common/Misc.py