Marvin: Linux file system is case sensitive . Seemly, Microsoft’s new Windows Subsystem for Linux (WSL) on Windows 10 is case insensitive. EDKII BaseTools includes one python source file BaseTools\Source\Python\Common\String.py, and python build-in class is string. In the code, Printset = set(string.printable) uses python build-in string class, not BaseTools String.py. But, the file system wrongly refers to BaseTools String.py and cause this exception. If you use native Linux machine, there is no this issue. Besides, I agree it is bad to name String.py in BaseTools. I will evaluate to rename it to avoid the confliction with python build-in class name.
Thanks Liming From: edk2-devel [mailto:[email protected]] On Behalf Of Marvin Häuser Sent: Friday, April 08, 2016 6:18 AM To: [email protected] Subject: [edk2] build.py error (WSL Ubuntu 14.04 LTS, Python 2.7.11) Dear developers, Sadly I do not have much time right now, so I am writing this in a little hurry. Today I have been evaluating Microsoft’s new Windows Subsystem for Linux (WSL) on Windows 10, including building with EDK2. For this purpose, I installed: - Git (Version 2.8.1) - GCC (Version 5), build-essential etc. - Python (Version 2.7.11) For those who did not hear about the WSL yet: It is a subsystem to provide a Linux-compatible Interface on Windows. The Ubuntu user mode runs on top of that – unchanged, according to Microsoft (they use the Ubuntu 14.04 LTS Cloud Image). Running make on BaseTools worked fine and all tests were passed successfully. Though, when attempting to build any package, it quickly fails without even invoking any compiler. I attached the complete error log below, including a follow-up ‚git status‘ command to verify the work tree is clean. The tree is up-to-date as of the time of writing (commit 4a392a451d4d475f9950a599395b06d6785d5134). I do not know when I will have the time to set up a Ubuntu box or Virtual Machine to test this environment outside of Microsoft’s unproven subsystem, but I will report back as soon as I know more. Meanwhile, I would be really greatful if somebody firm in the BaseTools Python code (I unfortunately never learned Python) could have a look at what could cause the issue. Even though the subsystem is still in an early stage, at least for me, it would be a great aid to have it available, so code changes can be verified against MSVC, GCC and Clang on the same machine without switching environments. Thank you very much for your time! Best regards, Marvin. root@localhost:/mnt/d/Entwickler/EdkWorkspace/edk2# build -a X64 -a IA32 -t GCC49 -p MdePkg/MdePkg.dsc Build environment: Linux-3.4.0+-x86_64-with-Ubuntu-14.04-trusty Build start time: 21:56:06, Apr.07 2016 WORKSPACE = /mnt/d/Entwickler/EdkWorkspace/edk2 ECP_SOURCE = /mnt/d/Entwickler/EdkWorkspace/edk2/EdkCompatibilityPkg EDK_SOURCE = /mnt/d/Entwickler/EdkWorkspace/edk2/EdkCompatibilityPkg EFI_SOURCE = /mnt/d/Entwickler/EdkWorkspace/edk2/EdkCompatibilityPkg EDK_TOOLS_PATH = /mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools Architecture(s) = IA32 X64 Build target = DEBUG Toolchain = GCC49 Active Platform = /mnt/d/Entwickler/EdkWorkspace/edk2/MdePkg/MdePkg.dsc Processing meta-data . build.py... : error C0DE: Unknown fatal error when processing [/mnt/d/Entwickler/EdkWorkspace/edk2/MdePkg/MdePkg.dec] (Please send email to [email protected]<mailto:[email protected]> for help, attaching following call stack trace!) (Python 2.7.11 on linux2) Traceback (most recent call last): File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 2238, in Main MyBuild.Launch() File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 1990, in Launch self._MultiThreadBuildPlatform() File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/BinWrappers/PosixLike/../../Source/Python/build/build.py", line 1785, in _MultiThreadBuildPlatform self.Progress File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 175, in __new__ if not AutoGenObject._Init(Workspace, MetaFile, Target, Toolchain, Arch, *args, **kwargs): File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py", line 426, in _Init for Pcd in Pkg.Pcds: File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 1518, in _GetPcds self._Pcds.update(self._GetPcd(MODEL_PCD_FIXED_AT_BUILD)) File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py", line 1536, in _GetPcd RecordList = self._RawData[Type, self._Arch] File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 229, in __getitem__ self.Start() File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 1658, in Start self._SectionParser[self._SectionType[0]](self) File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 43, in MacroParser Parser(self) File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py", line 1858, in _PcdParser IsValid, Cause = CheckPcdDatum(ValueList[1], ValueList[0]) File "/mnt/d/Entwickler/EdkWorkspace/edk2/BaseTools/Source/Python/Common/Misc.py", line 1619, in CheckPcdDatum Printset = set(string.printable) AttributeError: 'module' object has no attribute 'printable' - Failed - Build end time: 21:56:08, Apr.07 2016 Build total time: 00:00:02 root@localhost:/mnt/d/Entwickler/EdkWorkspace/edk2# git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

