On 02/22/19 20:21, Ard Biesheuvel wrote: > On Fri, 22 Feb 2019 at 08:26, Gao, Liming <liming....@intel.com> wrote: >> >> Reviewed-by: Liming Gao <liming....@intel.com> >> > > Incremental builds are still broken for me, even with this patch. Is > anyone else seeing the same?
I am not; but I've been using Python3.4 for a while now (it is needed by another package on my system, and then the build tools find it too). The regression is attributed to commit d943b0c339fe ("BaseTools: Handle the bytes and str difference", 2019-02-01), which I believe is related to the python2/3 conversion. So I assume python3.4 masks the problem. Thanks Laszlo >>> -----Original Message----- >>> From: Feng, Bob C >>> Sent: Wednesday, February 20, 2019 11:22 PM >>> To: edk2-devel@lists.01.org >>> Cc: Feng, Bob C <bob.c.f...@intel.com>; Gao, Liming <liming....@intel.com> >>> Subject: [Patch V2] BaseTool: Fixed incremental rebuild issue. >>> >>> BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1540 >>> >>> This issue in introduced by commit >>> d943b0c339fe3d35ffdf9f580ccb7a55915c6854 >>> >>> To convert bytes to string, we need to use bytes.decode() >>> instead of using str(bytes). >>> >>> If the source file is not a txt file, ignore that file. >>> >>> Contributed-under: TianoCore Contribution Agreement 1.1 >>> Signed-off-by: Bob Feng <bob.c.f...@intel.com> >>> Cc: Liming Gao <liming....@intel.com> >>> --- >>> BaseTools/Source/Python/AutoGen/GenMake.py | 16 ++++++++-------- >>> .../Source/Python/Workspace/DscBuildData.py | 17 ++++++++--------- >>> 2 files changed, 16 insertions(+), 17 deletions(-) >>> >>> diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py >>> b/BaseTools/Source/Python/AutoGen/GenMake.py >>> index 53c5b8577d..b441817b52 100644 >>> --- a/BaseTools/Source/Python/AutoGen/GenMake.py >>> +++ b/BaseTools/Source/Python/AutoGen/GenMake.py >>> @@ -1043,18 +1043,18 @@ cleanlib: >>> Fd.close() >>> except BaseException as X: >>> EdkLogger.error("build", FILE_OPEN_FAILURE, >>> ExtraData=F.Path + >>> "\n\t" + str(X)) >>> if len(FileContent) == 0: >>> continue >>> - >>> - if FileContent[0] == 0xff or FileContent[0] == 0xfe: >>> - FileContent = FileContent.decode('utf-16') >>> - else: >>> - try: >>> - FileContent = str(FileContent) >>> - except: >>> - pass >>> + try: >>> + if FileContent[0] == 0xff or FileContent[0] == 0xfe: >>> + FileContent = FileContent.decode('utf-16') >>> + else: >>> + FileContent = FileContent.decode() >>> + except: >>> + # The file is not txt file. for example .mcb file >>> + continue >>> IncludedFileList = gIncludePattern.findall(FileContent) >>> >>> for Inc in IncludedFileList: >>> Inc = Inc.strip() >>> # if there's macro used to reference header file, >>> expand it >>> diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py >>> b/BaseTools/Source/Python/Workspace/DscBuildData.py >>> index 1ffefe6e7e..7221946062 100644 >>> --- a/BaseTools/Source/Python/Workspace/DscBuildData.py >>> +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py >>> @@ -153,19 +153,18 @@ def GetDependencyList(FileStack, SearchPathList): >>> Fd.close() >>> >>> if len(FileContent) == 0: >>> continue >>> >>> - if FileContent[0] == 0xff or FileContent[0] == 0xfe: >>> - FileContent = FileContent.decode('utf-16') >>> - IncludedFileList = gIncludePattern.findall(FileContent) >>> - else: >>> - try: >>> - FileContent = str(FileContent) >>> - IncludedFileList = gIncludePattern.findall(FileContent) >>> - except: >>> - pass >>> + try: >>> + if FileContent[0] == 0xff or FileContent[0] == 0xfe: >>> + FileContent = FileContent.decode('utf-16') >>> + else: >>> + FileContent = FileContent.decode() >>> + except: >>> + # The file is not txt file. for example .mcb file >>> + continue >>> IncludedFileList = gIncludePattern.findall(FileContent) >>> >>> for Inc in IncludedFileList: >>> Inc = Inc.strip() >>> Inc = os.path.normpath(Inc) >>> -- >>> 2.18.0.windows.1 >> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel