[edk2] [Patch] BaseTools: Fix incremental build failure that override file be removed

Yonghong Zhu posted 1 patch 7 years, 6 months ago
Failed in applying to current master (apply log)
BaseTools/Source/Python/AutoGen/AutoGen.py | 2 ++
1 file changed, 2 insertions(+)
[edk2] [Patch] BaseTools: Fix incremental build failure that override file be removed
Posted by Yonghong Zhu 7 years, 6 months ago
Fix a Incremental build failure. The case is: Both A and B package will
include a same .h file, and in the driver's packages section, A
package is listed before B package, so we will use the .h file in the A
package and build success, then we directly delete the .h file in package
A, it cause increment build failure since in the AutoGenTimeStamp file
the .h file in A can't be found.

Cc: Liming Gao <liming.gao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/AutoGen/AutoGen.py | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py b/BaseTools/Source/Python/AutoGen/AutoGen.py
index e89b61d..356eb21 100644
--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
@@ -4208,10 +4208,12 @@ class ModuleAutoGen(AutoGen):
             return False
 
         with open(self.GetTimeStampPath(),'r') as f:
             for source in f:
                 source = source.rstrip('\n')
+                if not os.path.exists(source):
+                    return False
                 if source not in ModuleAutoGen.TimeDict :
                     ModuleAutoGen.TimeDict[source] = os.stat(source)[8]
                 if ModuleAutoGen.TimeDict[source] > DstTimeStamp:
                     return False
         return True
-- 
2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [Patch] BaseTools: Fix incremental build failure that override file be removed
Posted by Gao, Liming 7 years, 6 months ago
Reviewed-by: Liming Gao <liming.gao@intel.com>

>-----Original Message-----
>From: Zhu, Yonghong
>Sent: Tuesday, June 06, 2017 9:53 PM
>To: edk2-devel@lists.01.org
>Cc: Gao, Liming <liming.gao@intel.com>
>Subject: [Patch] BaseTools: Fix incremental build failure that override file be
>removed
>
>Fix a Incremental build failure. The case is: Both A and B package will
>include a same .h file, and in the driver's packages section, A
>package is listed before B package, so we will use the .h file in the A
>package and build success, then we directly delete the .h file in package
>A, it cause increment build failure since in the AutoGenTimeStamp file
>the .h file in A can't be found.
>
>Cc: Liming Gao <liming.gao@intel.com>
>Contributed-under: TianoCore Contribution Agreement 1.0
>Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
>---
> BaseTools/Source/Python/AutoGen/AutoGen.py | 2 ++
> 1 file changed, 2 insertions(+)
>
>diff --git a/BaseTools/Source/Python/AutoGen/AutoGen.py
>b/BaseTools/Source/Python/AutoGen/AutoGen.py
>index e89b61d..356eb21 100644
>--- a/BaseTools/Source/Python/AutoGen/AutoGen.py
>+++ b/BaseTools/Source/Python/AutoGen/AutoGen.py
>@@ -4208,10 +4208,12 @@ class ModuleAutoGen(AutoGen):
>             return False
>
>         with open(self.GetTimeStampPath(),'r') as f:
>             for source in f:
>                 source = source.rstrip('\n')
>+                if not os.path.exists(source):
>+                    return False
>                 if source not in ModuleAutoGen.TimeDict :
>                     ModuleAutoGen.TimeDict[source] = os.stat(source)[8]
>                 if ModuleAutoGen.TimeDict[source] > DstTimeStamp:
>                     return False
>         return True
>--
>2.6.1.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel