summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/AutoGen/GenMake.py
diff options
context:
space:
mode:
authorYunhua Feng <yunhuax.feng@intel.com>2018-07-27 16:02:05 +0800
committerYonghong Zhu <yonghong.zhu@intel.com>2018-10-13 09:50:45 +0800
commita09f4c91f785e36f0987aa3a6d7656ba51e6aeda (patch)
tree0a644e4b34f4fceb65d10465dbb6688fcddddfa5 /BaseTools/Source/Python/AutoGen/GenMake.py
parentfe3991d63552f2eb25ff728a81a6976a3b1f652b (diff)
downloadedk2-a09f4c91f785e36f0987aa3a6d7656ba51e6aeda.tar.gz
edk2-a09f4c91f785e36f0987aa3a6d7656ba51e6aeda.tar.bz2
edk2-a09f4c91f785e36f0987aa3a6d7656ba51e6aeda.zip
BaseTools: fix the open file's read and write bugs
Cc: Liming Gao <liming.gao@intel.com> Cc: Yonghong Zhu <yonghong.zhu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yunhua Feng <yunhuax.feng@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'BaseTools/Source/Python/AutoGen/GenMake.py')
-rw-r--r--BaseTools/Source/Python/AutoGen/GenMake.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/BaseTools/Source/Python/AutoGen/GenMake.py b/BaseTools/Source/Python/AutoGen/GenMake.py
index 75b4e2247a..b168a6663d 100644
--- a/BaseTools/Source/Python/AutoGen/GenMake.py
+++ b/BaseTools/Source/Python/AutoGen/GenMake.py
@@ -1031,7 +1031,7 @@ cleanlib:
CurrentFileDependencyList = DepDb[F]
else:
try:
- Fd = open(F.Path, 'r')
+ Fd = open(F.Path, 'rb')
except BaseException as X:
EdkLogger.error("build", FILE_OPEN_FAILURE, ExtraData=F.Path + "\n\t" + str(X))
@@ -1041,8 +1041,14 @@ cleanlib:
continue
if FileContent[0] == 0xff or FileContent[0] == 0xfe:
- FileContent = unicode(FileContent, "utf-16")
- IncludedFileList = gIncludePattern.findall(FileContent)
+ FileContent = str(FileContent, encoding="utf-16")
+ IncludedFileList = gIncludePattern.findall(FileContent)
+ else:
+ try:
+ FileContent = str(FileContent, encoding="utf-8")
+ IncludedFileList = gIncludePattern.findall(FileContent)
+ except:
+ continue
for Inc in IncludedFileList:
Inc = Inc.strip()