slimbootloader/BaseTools
Aiden Park 6295c4ec8f Build stuck on unicode locale Windows
This issue happens under two conditions
  1. Unicode language environment in Windows
  2. A python calls 'BaseTools/toolsetup.bat'
     (In EDKII, edksetup.bat directly in Windows command shell)

- 'BuildLoader.py' calls 'BaseTools/toolsetup.bat' in a subprocess
- 'BaseTools/toolsetup.bat' calls 'nmake cleanall'
- 'cleanall' target runs 'python NmakeSubdirs.py' directly
- 'NmakeSubdirs.py' creates multi-threads
-  The threads create another subprocesses

But, one of multi-threads is on deadlock when python handles stdout and
stderr in a subprocess pipe only if the output includes unicode chars.
Therefore, only stderr will be handled in the pipe same as a single
thread call.

Signed-off-by: Aiden Park <aiden.park@intel.com>
2019-12-11 13:35:31 -08:00
..
Bin/CYGWIN_NT-5.1-i686 Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
BinWrappers Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
Conf Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
Scripts [PatchCheck] Skip CRLF check in git .patch files 2019-12-11 13:35:31 -08:00
Source Build stuck on unicode locale Windows 2019-12-11 13:35:31 -08:00
Tests Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
.gitignore Initial check-in for Slim Bootloader source 2018-09-13 16:11:07 -07:00
BuildEnv Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
GNUmakefile Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
Makefile Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
ReadMe.txt Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
get_vsvars.bat Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
set_vsprefix_envs.bat Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00
toolsetup.bat Sync up with EDK2 stable tag edk2-stable201905 2019-06-12 08:29:06 -07:00

ReadMe.txt

This directory contains the next generation of EDK II build tools and template files.
Templates are located in the Conf directory, while the tools executables for
Microsoft Windows 32-bit Operating Systems are located in the Bin\Win32 directory, other
directory contains tools source.

1. Build step to generate the binary tools.

=== Windows/Visual Studio Notes ===

To build the BaseTools, you should run the standard vsvars32.bat script
from your preferred Visual Studio installation or you can run get_vsvars.bat
to use latest automatically detected version.

In addition to this, you should set the following environment variables:

 * EDK_TOOLS_PATH - Path to the BaseTools sub directory under the edk2 tree
 * BASE_TOOLS_PATH - The directory where the BaseTools source is located.
   (It is the same directory where this README.txt is located.)

After this, you can run the toolsetup.bat file, which is in the same
directory as this file.  It should setup the remainder of the environment,
and build the tools if necessary.

Please also refer to the 'BuildNotes.txt' file for more information on
building under Windows.

=== Unix-like operating systems ===

To build on Unix-like operating systems, you only need to type 'make' in
the base directory of the project.

=== Ubuntu Notes ===

On Ubuntu, the following command should install all the necessary build
packages to build all the C BaseTools:

  sudo apt-get install build-essential uuid-dev

=== Python sqlite3 module ===
On Windows, the cx_freeze will not copy the sqlite3.dll to the frozen
binary directory (the same directory as build.exe and GenFds.exe).
Please copy it manually from <PythonHome>\DLLs.

The Python distributed with most recent Linux will have sqlite3 module
built in. If not, please install sqlit3 package separately.

26-OCT-2011