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