I had no idea I was engaging so many people.

 

The problem has resolved to a Python versioning issue, and has been solved. This was aggravated by the fact that when Python is invoked by issuing a shell command to ‘call’ a *.py file, the mapping to python version follows the Windows shell when one of the EDK shell variables is not initialized – I think it was PYTHON_COMMAND, but I don’t remember. Basically, Windows has an opinion about which Python to invoke when BUILD.BAT executes this line:

 

@%PYTHON_COMMAND% %BASE_TOOLS_PATH%\Source\Python\%ToolName%\%ToolName%.py %* .

 

So, I was bitten by a Python 😝

 

Thanks to all of you for your assistance. UEFI spelunking can be a lonely art. It’s nice to meet other travelers.

 

Eric

 

Oh, and I was using tag 202002. We don’t need no steenkin’ upgrades!

 

From: gaoliming <gaoliming@byosoft.com.cn>
Sent: Wednesday, May 19, 2021 7:24 PM
To: devel@edk2.groups.io; bret.barkelew@microsoft.com; 'Hernandez Miramontes, Jose Miguel' <jose.miguel.hernandez.miramontes@intel.com>; Fowler, Eric (Mondo International, LLC) <Fowler_Eric@ne.bah.com>
Subject: [External] 回复: [edk2-devel] A plea for help

 

This issue has been fixed in edk2 trunk. Can you try the latest edk2?

 

Thanks

Liming

发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Bret Barkelew via groups.io
发送时间: 2021520 0:33
收件人: Hernandez Miramontes, Jose Miguel <jose.miguel.hernandez.miramontes@intel.com>; devel@edk2.groups.io; Fowler_Eric@ne.bah.com
: Re: [edk2-devel] A plea for help

 

Yup, I was tired. Read the Python version all wrong.

 

- Bret


From: Hernandez Miramontes, Jose Miguel <jose.miguel.hernandez.miramontes@intel.com>
Sent: Wednesday, May 19, 2021 7:15:30 AM
To: devel@edk2.groups.io <devel@edk2.groups.io>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Fowler_Eric@ne.bah.com <Fowler_Eric@ne.bah.com>
Subject: [EXTERNAL] RE: [edk2-devel] A plea for help

 

So, the problem is here.

File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\Common\Misc.py", line 1638, in __init__

    if ByteArray.tostring() != b'PE\0\0':

 

see:

https://docs.python.org/3/whatsnew/3.9.html

 

array.array: tostring() and fromstring() methods have been removed. They were aliases to tobytes() and frombytes(), deprecated since Python 3.2. (Contributed by Victor Stinner in bpo-38916.)

 

you could try python 3.8 or cherry pick this change.

https://github.com/tianocore/edk2/commit/43bec9ea3d56f3662ede78023baa2a791b66acac

 

 

 

Jose Miguel Hernandez Miramontes

BIOS  Engineer

jose.miguel.hernandez.miramontes@intel.com

Intel Corporation

 

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Bret Barkelew via groups.io
Sent: Wednesday, May 19, 2021 3:12 AM
To: devel@edk2.groups.io; Fowler_Eric@ne.bah.com
Subject: Re: [edk2-devel] A plea for help

 

Have you tried the latest Python 3.x?

 

- Bret

 

From: Fowler, Eric (Mondo International, LLC) via groups.io
Sent: Wednesday, May 19, 2021 12:41 AM
To: devel@edk2.groups.io
Subject: [EXTERNAL] [edk2-devel] A plea for help

 

build.py...

: error C0DE: Unknown fatal error when processing [c:\edk2020\district-defend\edk2\MdeModulePkg\Universal\Console\GraphicsConsoleDxe\GraphicsConsoleDxe.inf]

 

(Please send email to devel@edk2.groups.io for help, attaching following call stack trace!)

 

(Python 3.9.5 on win32) Traceback (most recent call last):

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\build\build.py", line 2596, in Main

    MyBuild.Launch()

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\build\build.py", line 2391, in Launch

    self._MultiThreadBuildPlatform()

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\build\build.py", line 2271, in _MultiThreadBuildPlatform

    self.CreateAsBuiltInf()

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\build\build.py", line 2401, in CreateAsBuiltInf

    Module.CreateAsBuiltInf()

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\AutoGen\ModuleAutoGen.py", line 1503, in CreateAsBuiltInf

    PatchList = parsePcdInfoFromMapFile(

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\GenPatchPcdTable\GenPatchPcdTable.py", line 59, in parsePcdInfoFromMapFile

    return _parseGeneral(lines, efifilepath)

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\GenPatchPcdTable\GenPatchPcdTable.py", line 174, in _parseGeneral

    efisecs = PeImageClass(efifilepath).SectionHeaderList

  File "C:\EDK2020\district-defend\edk2\BaseTools\Source\Python\Common\Misc.py", line 1638, in __init__

    if ByteArray.tostring() != b'PE\0\0':

AttributeError: 'array.array' object has no attribute 'tostring'

 

 

- Failed -

Build end time: 21:15:31, May.18 2021

Build total time: 00:07:11