]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/build/build.py
Revert BaseTools: PYTHON3 migration
[mirror_edk2.git] / BaseTools / Source / Python / build / build.py
index 1a2139569924b23027ecfecec5d1e10c2a92dea4..d74082fc2666154ae59293b66dd770107a3cba7c 100644 (file)
 ##\r
 # Import Modules\r
 #\r
+from __future__ import print_function\r
 import Common.LongFilePathOs as os\r
 import re\r
-from io import StringIO\r
+from io import BytesIO\r
 import sys\r
 import glob\r
 import time\r
 import platform\r
 import traceback\r
 import encodings.ascii\r
+import itertools\r
 import multiprocessing\r
 \r
 from struct import *\r
@@ -242,8 +244,8 @@ def ReadMessage(From, To, ExitFlag):
         # read one line a time\r
         Line = From.readline()\r
         # empty string means "end"\r
-        if Line is not None and Line != b"":\r
-            To(Line.rstrip().decode(encoding='utf-8', errors='ignore'))\r
+        if Line is not None and Line != "":\r
+            To(Line.rstrip())\r
         else:\r
             break\r
         if ExitFlag.isSet():\r
@@ -503,7 +505,7 @@ class BuildTask:
 \r
                 # get all pending tasks\r
                 BuildTask._PendingQueueLock.acquire()\r
-                BuildObjectList = list(BuildTask._PendingQueue.keys())\r
+                BuildObjectList = BuildTask._PendingQueue.keys()\r
                 #\r
                 # check if their dependency is resolved, and if true, move them\r
                 # into ready queue\r
@@ -724,7 +726,7 @@ class PeImageInfo():
         self.OutputDir        = OutputDir\r
         self.DebugDir         = DebugDir\r
         self.Image            = ImageClass\r
-        self.Image.Size       = (self.Image.Size // 0x1000 + 1) * 0x1000\r
+        self.Image.Size       = (self.Image.Size / 0x1000 + 1) * 0x1000\r
 \r
 ## The class implementing the EDK2 build process\r
 #\r
@@ -1171,9 +1173,9 @@ class Build():
                 f = open(PrebuildEnvFile)\r
                 envs = f.readlines()\r
                 f.close()\r
-                envs = map(lambda l: l.split('=', 1), envs)\r
-                envs = filter(lambda l: len(l) == 2, envs)\r
-                envs = map(lambda l: [i.strip() for i in l], envs)\r
+                envs = itertools.imap(lambda l: l.split('=', 1), envs)\r
+                envs = itertools.ifilter(lambda l: len(l) == 2, envs)\r
+                envs = itertools.imap(lambda l: [i.strip() for i in l], envs)\r
                 os.environ.update(dict(envs))\r
             EdkLogger.info("\n- Prebuild Done -\n")\r
 \r
@@ -1597,7 +1599,7 @@ class Build():
                         RtModuleList[Module.MetaFile] = ImageInfo\r
                         #IPF runtime driver needs to be at 2 page alignment.\r
                         if IsIpfPlatform and ImageInfo.Image.Size % 0x2000 != 0:\r
-                            ImageInfo.Image.Size = (ImageInfo.Image.Size // 0x2000 + 1) * 0x2000\r
+                            ImageInfo.Image.Size = (ImageInfo.Image.Size / 0x2000 + 1) * 0x2000\r
                         RtSize += ImageInfo.Image.Size\r
                     elif Module.ModuleType in [SUP_MODULE_SMM_CORE, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE]:\r
                         SmmModuleList[Module.MetaFile] = ImageInfo\r
@@ -1666,21 +1668,21 @@ class Build():
             for PcdInfo in PcdTable:\r
                 ReturnValue = 0\r
                 if PcdInfo[0] == TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE:\r
-                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE_DATA_TYPE, str (PeiSize // 0x1000))\r
+                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE_DATA_TYPE, str (PeiSize / 0x1000))\r
                 elif PcdInfo[0] == TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE:\r
-                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE_DATA_TYPE, str (BtSize // 0x1000))\r
+                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE_DATA_TYPE, str (BtSize / 0x1000))\r
                 elif PcdInfo[0] == TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE:\r
-                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE_DATA_TYPE, str (RtSize // 0x1000))\r
+                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE_DATA_TYPE, str (RtSize / 0x1000))\r
                 elif PcdInfo[0] == TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE and len (SmmModuleList) > 0:\r
-                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE_DATA_TYPE, str (SmmSize // 0x1000))\r
+                    ReturnValue, ErrorInfo = PatchBinaryFile (EfiImage, PcdInfo[1], TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE_DATA_TYPE, str (SmmSize / 0x1000))\r
                 if ReturnValue != 0:\r
                     EdkLogger.error("build", PARAMETER_INVALID, "Patch PCD value failed", ExtraData=ErrorInfo)\r
 \r
-        MapBuffer.write('PEI_CODE_PAGE_NUMBER      = 0x%x\n' % (PeiSize // 0x1000))\r
-        MapBuffer.write('BOOT_CODE_PAGE_NUMBER     = 0x%x\n' % (BtSize // 0x1000))\r
-        MapBuffer.write('RUNTIME_CODE_PAGE_NUMBER  = 0x%x\n' % (RtSize // 0x1000))\r
+        MapBuffer.write('PEI_CODE_PAGE_NUMBER      = 0x%x\n' % (PeiSize / 0x1000))\r
+        MapBuffer.write('BOOT_CODE_PAGE_NUMBER     = 0x%x\n' % (BtSize / 0x1000))\r
+        MapBuffer.write('RUNTIME_CODE_PAGE_NUMBER  = 0x%x\n' % (RtSize / 0x1000))\r
         if len (SmmModuleList) > 0:\r
-            MapBuffer.write('SMM_CODE_PAGE_NUMBER      = 0x%x\n' % (SmmSize // 0x1000))\r
+            MapBuffer.write('SMM_CODE_PAGE_NUMBER      = 0x%x\n' % (SmmSize / 0x1000))\r
 \r
         PeiBaseAddr = TopMemoryAddress - RtSize - BtSize\r
         BtBaseAddr  = TopMemoryAddress - RtSize\r
@@ -1780,7 +1782,7 @@ class Build():
                             if not Ma.IsLibrary:\r
                                 ModuleList[Ma.Guid.upper()] = Ma\r
 \r
-                    MapBuffer = StringIO('')\r
+                    MapBuffer = BytesIO('')\r
                     if self.LoadFixAddress != 0:\r
                         #\r
                         # Rebase module to the preferred memory address before GenFds\r
@@ -1938,7 +1940,7 @@ class Build():
                             if not Ma.IsLibrary:\r
                                 ModuleList[Ma.Guid.upper()] = Ma\r
 \r
-                    MapBuffer = StringIO('')\r
+                    MapBuffer = BytesIO('')\r
                     if self.LoadFixAddress != 0:\r
                         #\r
                         # Rebase module to the preferred memory address before GenFds\r
@@ -2125,7 +2127,7 @@ class Build():
                     #\r
                     # Rebase module to the preferred memory address before GenFds\r
                     #\r
-                    MapBuffer = StringIO('')\r
+                    MapBuffer = BytesIO('')\r
                     if self.LoadFixAddress != 0:\r
                         self._CollectModuleMapBuffer(MapBuffer, ModuleList)\r
 \r
@@ -2177,7 +2179,7 @@ class Build():
 \r
                     # Look through the tool definitions for GUIDed tools\r
                     guidAttribs = []\r
-                    for (attrib, value) in self.ToolDef.ToolsDefTxtDictionary.items():\r
+                    for (attrib, value) in self.ToolDef.ToolsDefTxtDictionary.iteritems():\r
                         if attrib.upper().endswith('_GUID'):\r
                             split = attrib.split('_')\r
                             thisPrefix = '_'.join(split[0:3]) + '_'\r