From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web11.54660.1629296357601784582 for ; Wed, 18 Aug 2021 07:19:21 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: steven.shi@intel.com) X-IronPort-AV: E=McAfee;i="6200,9189,10080"; a="301914327" X-IronPort-AV: E=Sophos;i="5.84,330,1620716400"; d="scan'208";a="301914327" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Aug 2021 07:19:20 -0700 X-IronPort-AV: E=Sophos;i="5.84,330,1620716400"; d="scan'208";a="521065997" Received: from jshi19-mobl1.ccr.corp.intel.com ([10.254.208.55]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Aug 2021 07:19:18 -0700 From: "Steven Shi" To: devel@edk2.groups.io Cc: michael.d.kinney@intel.com, gaoliming@byosoft.com.cn, bob.c.feng@intel.com, yuqi.chen@mail.utoronto.ca Subject: [BaseTools Patch 2/2] Readme: Update the readme to add project details Date: Wed, 18 Aug 2021 22:18:57 +0800 Message-Id: <20210818141857.910-3-steven.shi@intel.com> X-Mailer: git-send-email 2.28.0.windows.1 In-Reply-To: <20210818141857.910-1-steven.shi@intel.com> References: <20210818141857.910-1-steven.shi@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Alyssa Add the backgroud introduction and build detail steps in the readme. Signed-off-by: Yuqi Chen Cc: Liming Gao gaoliming@byosoft.com.cn Cc: Yuwei Chen yuwei.chen@intel.com Cc: Bob Feng bob.c.feng@intel.com --- ReadMe.rst | 553 +++++++++++++++++------------------------------------ 1 file changed, 171 insertions(+), 382 deletions(-) diff --git a/ReadMe.rst b/ReadMe.rst index 8f5db11281..361c8382eb 100644 --- a/ReadMe.rst +++ b/ReadMe.rst @@ -1,383 +1,172 @@ -============== -EDK II Project -============== +Google Summer of Code 2021 project: Enable Clang/LLVM Build for Microsoft Windows + +Summary: +Add clang + gnu make build support for Edk2 BaseTools in windows +1. Building .exes for the C tools in Edk2 BaseTools using LLVM/Clang in windows. +2. Switching from nmake to make for Edk2 BaseTools build in windows. + +Owner: tianocore + +timeline: +2021/06 - 2021/07: building .exes for the C tools in BaseTools using LLVM/Clang +2021/07 - 2021/08: Switching from nmake to make for LLVM/Clang based builds. + +links to related materials: +none + +Steps to use: +************************************************************************************************************* +In windows: +------------------------------------------------------------------------------------------------------------- +# Clang + make in windows command prompt: +Setup: +1. Download and install LLVM 11 from https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe. After install, please verify the clang version is 11.0.0. as below. + C:\>"C:\Program Files\LLVM\bin\clang.exe" -v + clang version 11.0.0 + Target: x86_64-pc-windows-msvc + Thread model: posix + InstalledDir: C:\Program Files\LLVM\bin + +2. Download and install nasm and iasl: + Download nasm compiler http://www.nasm.us/, copy nasm.exe to C:\nasm\ directory. + Download iasl compiler https://acpica.org/downloads, copy iasl.exe to C:\ASL directory. + +3. Download the latest version Python from https://www.python.org/downloads/ and install it + +4. Download Visual Studio 2015 or 2017 or 2019 and install it, make sure nmake.exe, cl.exe, lib.exe and link.exe be ready. + The Visual Studio is required only because the Windows SDK Universal C runtime (UCRT) library depends on the MSVC. Please see the dependency description here: “When you install Visual C++, Visual Studio setup installs the subset of the Windows 10 SDK required to use the UCRT.” https://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-library-features?view=msvc-160. + +5. In windows command prompt: (please replace %USERNAME% with username in your computer) + Can directly download the windows version gnumake binary from conan center. Below are the download steps: + C:\Users\%USERNAME%\edk2>C:\Python38\python.exe -m pip install conan + C:\Users\%USERNAME%\edk2>set PATH=%PATH%;C:\Python38\Scripts\ + C:\Users\%USERNAME%\edk2>conan download make/4.2.1:0a420ff5c47119e668867cdb51baff0eca1fdb68 + C:\Users\%USERNAME%\edk2>C:\Users\%USERNAME%\.conan\data\make\4.2.1\_\_\package\0a420ff5c47119e668867cdb51baff0eca1fdb68\bin\gnumake.exe --version + GNU Make 4.2.1 + Built for Windows32 + (please check the version) + +6. In windows command prompt: (please replace %USERNAME% with username in your computer) + C:\Users\%USERNAME%>git clone https://github.com/tianocore/edk2.git edk2 + C:\Users\%USERNAME%\edk2>git submodule update --init + C:\Users\%USERNAME%\edk2>git submodule update --recursive + C:\Users\%USERNAME%\edk2>git submodule sync --recursive + +To Use: + C:\Users\%USERNAME%\edk2>git clean -dfx (use this command if you have download it before, else please ignore thie command) + C:\Users\%USERNAME%\edk2>edksetup.bat + C:\Users\%USERNAME%\edk2>C:\Users\%USERNAME%\.conan\data\make\4.2.1\_\_\package\0a420ff5c47119e668867cdb51baff0eca1fdb68\bin\gnumake.exe -w -C BaseTools CXX=llvm +------------------------------------------------------------------------------------------------------------- +# Clang + nmake in windows command prompt: +Setup: +1. Download and install LLVM 11 from https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe. After install, please verify the clang version is 11.0.0. as below. + C:\>"C:\Program Files\LLVM\bin\clang.exe" -v + clang version 11.0.0 + Target: x86_64-pc-windows-msvc + Thread model: posix + InstalledDir: C:\Program Files\LLVM\bin + +2. Download and install nasm and iasl: + Download nasm compiler http://www.nasm.us/, copy nasm.exe to C:\nasm\ directory. + Download iasl compiler https://acpica.org/downloads, copy iasl.exe to C:\ASL directory. + +3. Download the latest version Python from https://www.python.org/downloads/ and install it + +4. Download Visual Studio 2015 or 2017 or 2019 and install it, make sure nmake.exe, cl.exe, lib.exe and link.exe be ready. + +5. In windows command prompt: (please replace %USERNAME% with username in your computer) + C:\Users\%USERNAME%>git clone https://github.com/tianocore/edk2.git edk2 + C:\Users\%USERNAME%\edk2>git submodule update --init + C:\Users\%USERNAME%\edk2>git submodule update --recursive + C:\Users\%USERNAME%\edk2>git submodule sync --recursive + +To Use: + C:\Users\%USERNAME%\edk2>git clean -dfx (use this command if you have download it before, else please ignore thie command) + C:\Users\%USERNAME%\edk2>edksetup.bat ForceRebuild clang +------------------------------------------------------------------------------------------------------------- +# MSVC + nmake in windows command prompt: +Setup: +1. Download and install LLVM 11 from https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/LLVM-11.0.0-win64.exe. After install, please verify the clang version is 11.0.0. as below. + C:\>"C:\Program Files\LLVM\bin\clang.exe" -v + clang version 11.0.0 + Target: x86_64-pc-windows-msvc + Thread model: posix + InstalledDir: C:\Program Files\LLVM\bin + +2. Download and install nasm and iasl: + Download nasm compiler http://www.nasm.us/, copy nasm.exe to C:\nasm\ directory. + Download iasl compiler https://acpica.org/downloads, copy iasl.exe to C:\ASL directory. + +3. Download the latest version Python from https://www.python.org/downloads/ and install it + +4. Download Visual Studio 2015 or 2017 or 2019 and install it, make sure nmake.exe, cl.exe, lib.exe and link.exe be ready. + +5. In windows command prompt: (please replace %USERNAME% with username in your computer) + C:\Users\%USERNAME%>git clone https://github.com/tianocore/edk2.git edk2 + C:\Users\%USERNAME%\edk2>git submodule update --init + C:\Users\%USERNAME%\edk2>git submodule update --recursive + C:\Users\%USERNAME%\edk2>git submodule sync --recursive + +To Use: + C:\Users\%USERNAME%\edk2>git clean -dfx (use this command if you have download it before, else please ignore thie command) + C:\Users\%USERNAME%\edk2>edksetup.bat ForceRebuild +************************************************************************************************************* +In Linux: +------------------------------------------------------------------------------------------------------------- +# GCC + make: +Setup: +1. Download and install LLVM 11: + Create a folder called llvm and open it, + %username%:~/llvm$ wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz + %username%:~/llvm$ tar -xvf clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz + %username%:~/llvm$ ./clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04/bin/clang -v + clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c) + Target: x86_64-unknown-linux-gnu + Thread model: posix + +2. Download and install nasm and iasl: + %username%:~/edk2-3$ sudo apt-get install build-essential git uuid-dev iasl nasm + +3. Download the latest version Python from https://www.python.org/downloads/ and install it + +4. Init: + %USERNAME%:~$ git clone https://github.com/tianocore/edk2.git edk2 + %USERNAME%:~/edk2$ git submodule update --init + %USERNAME%:~/edk2$ git submodule update --recursive + %USERNAME%:~/edk2$ git submodule sync --recursive + +To Use: + %USERNAME%:~/edk2$ git clean -dfx (use this command if you have download it before, else please ignore thie command) + %USERNAME%:~/edk2$ source edksetup.sh + %USERNAME%:~/edk2$ make -C BaseTools/ +------------------------------------------------------------------------------------------------------------- +# Clang + make: +Setup: +1. Download and install LLVM 11: + Create a folder called llvm and open it, + %username%:~/llvm$ wget https://github.com/llvm/llvm-project/releases/download/llvmorg-11.0.0/clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz + %username%:~/llvm$ tar -xvf clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz + %username%:~/llvm$ ./clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04/bin/clang -v + clang version 11.0.0 (https://github.com/llvm/llvm-project.git 0160ad802e899c2922bc9b29564080c22eb0908c) + Target: x86_64-unknown-linux-gnu + Thread model: posix + +2. Download and install nasm and iasl: + %username%:~/edk2-3$ sudo apt-get install build-essential git uuid-dev iasl nasm + +3. Download the latest version Python from https://www.python.org/downloads/ and install it + +4. Init: + %USERNAME%:~$ git clone https://github.com/tianocore/edk2.git edk2 + %USERNAME%:~/edk2$ git submodule update --init + %USERNAME%:~/edk2$ git submodule update --recursive + %USERNAME%:~/edk2$ git submodule sync --recursive + +To Use: + Open file edk2 + %USERNAME%:~/edk2$ git clean -dfx (use this command if you have download it before, else please ignore thie command) + %USERNAME%:~/edk2$ export CLANG_BIN=~/llvm/clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04/bin/ + %USERNAME%:~/edk2$ source edksetup.sh + %USERNAME%:~/edk2$ make -C BaseTools/ CXX=llvm + -A modern, feature-rich, cross-platform firmware development -environment for the UEFI and PI specifications from www.uefi.org. - -Core CI Build Status --------------------- - -============================= ================= =============== =================== - Host Type & Toolchain Build Status Test Status Code Coverage -============================= ================= =============== =================== -Windows_VS2019_ |WindowsCiBuild| |WindowsCiTest| |WindowsCiCoverage| -Ubuntu_GCC5_ |UbuntuCiBuild| |UbuntuCiTest| |UbuntuCiCoverage| -============================= ================= =============== =================== - -`More CI Build information <.pytool/Readme.md>`__ - -Platform CI Build Status ------------------------- - -Microsoft Windows VS2019 -```````````````````````` - -============================= ================= ============= ============= ============== - Toolchain CONFIG DEBUG RELEASE NOOPT -============================= ================= ============= ============= ============== -EmulatorPkg_Win_VS2019_ | IA32 |em32d| |em32r| |em32n| -| | X64 |em64d| |em64r| |em64n| -| | IA32 FULL |em32fd| |em32fr| |em32fn| -| | X64 FULL |em64fd| |em64fr| |em64fn| -OvmfPkg_Win_VS2019_ | IA32 |op32d| |op32r| |op32n| -| | X64 |op64d| |op64r| |op64n| -| | IA32 X64 |op3264d| |op3264r| |op3264n| -| | IA32 X64 FULL |op3264fd| |op3264fr| |op3264fn| -============================= ================= ============= ============= ============== - -Ubuntu 18.04 GCC5 -````````````````` - -============================= ================= ============= ============= ============== - Toolchain CONFIG DEBUG RELEASE NOOPT -============================= ================= ============= ============= ============== -ArmVirtPkg_Ubuntu_GCC5_ | AARCH64 |avAArch64du| |avAArch64ru| |avAArch64nu| -| | ARM |avArmdu| |avArmru| |avArmnu| -EmulatorPkg_Ubuntu_GCC5_ | IA32 |em32du| |em32ru| |em32nu| -| | X64 |em64du| |em64ru| |em64nu| -| | IA32 FULL |em32fdu| |em32fru| |em32fnu| -| | X64 FULL |em64fdu| |em64fru| |em64fnu| -OvmfPkg_Ubuntu_GCC5_ | IA32 |op32du| |op32ru| |op32nu| -| | X64 |op64du| |op64ru| |op64nu| -| | IA32 X64 |op3264du| |op3264ru| |op3264nu| -| | IA32 X64 FULL |op3264fdu| |op3264fru| |op3264fru| -============================= ================= ============= ============= ============== - -|TCBZ_2668|_ - EmulatorPkg Ubuntu GCC5 Segfaults during execution. - -|TCBZ_2639|_ - EmulatorPkg Ubuntu GCC5 Segfaults during execution. - -`More ArmVirtPkg CI Build Information `__ - -`More EmulatorPkg CI Build Information `__ - -`More OvmfPkg CI Build Information `__ - - -License Details ---------------- - -The majority of the content in the EDK II open source project uses a -`BSD-2-Clause Plus Patent License `__. The EDK II open -source project contains the following components that are covered by additional -licenses: - -- `BaseTools/Source/C/LzmaCompress `__ -- `BaseTools/Source/C/VfrCompile/Pccts `__ -- `CryptoPkg\Library\BaseCryptLib\SysCall\inet_pton.c `__ -- `CryptoPkg\Library\Include\crypto\dso_conf.h `__ -- `CryptoPkg\Library\Include\openssl\opensslconf.h `__ -- `EmbeddedPkg/Library/FdtLib `__. (EDK II uses BSD License) -- `EmbeddedPkg/Include/fdt.h `__. (EDK II uses BSD Licence) -- `EmbeddedPkg/Include/libfdt.h `__. (EDK II uses BSD License) -- `MdeModulePkg/Library/LzmaCustomDecompressLib `__ -- `OvmfPkg `__ - -The EDK II open source project uses content from upstream projects as git submodules -that are covered by additional licenses. - -- `ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 `__ -- `BaseTools/Source/C/BrotliCompress/brotli `__ -- `CryptoPkg/Library/OpensslLib/openssl `__ -- `MdeModulePkg/Library/BrotliCustomDecompressLib/brotli `__ -- `MdeModulePkg/Universal/RegularExpressionDxe/oniguruma `__ -- `UnitTestFrameworkPkg/Library/CmockaLib/cmocka `__ -- `RedfishPkg/Library/JsonLib/jansson `__ - -The EDK II Project is composed of packages. The maintainers for each package -are listed in `Maintainers.txt `__. - -Resources ---------- - -- `TianoCore `__ -- `EDK - II `__ -- `Getting Started with EDK - II `__ -- `Mailing - Lists `__ -- `TianoCore Bugzilla `__ -- `How To - Contribute `__ -- `Release - Planning `__ - -Code Contributions ------------------- - -To make a contribution to a TianoCore project, follow these steps. - -#. Create a change description in the format specified below to - use in the source control commit log. -#. Your commit message must include your ``Signed-off-by`` signature -#. Submit your code to the TianoCore project using the process - that the project documents on its web page. If the process is - not documented, then submit the code on development email list - for the project. -#. It is preferred that contributions are submitted using the same - copyright license as the base project. When that is not possible, - then contributions using the following licenses can be accepted: - -- BSD (2-clause): http://opensource.org/licenses/BSD-2-Clause -- BSD (3-clause): http://opensource.org/licenses/BSD-3-Clause -- MIT: http://opensource.org/licenses/MIT -- Python-2.0: http://opensource.org/licenses/Python-2.0 -- Zlib: http://opensource.org/licenses/Zlib - -For documentation: - -- FreeBSD Documentation License - https://www.freebsd.org/copyright/freebsd-doc-license.html - -Contributions of code put into the public domain can also be accepted. - -Contributions using other licenses might be accepted, but further -review will be required. - -Developer Certificate of Origin -------------------------------- - -Your change description should use the standard format for a -commit message, and must include your ``Signed-off-by`` signature. - -In order to keep track of who did what, all patches contributed must -include a statement that to the best of the contributor's knowledge -they have the right to contribute it under the specified license. - -The test for this is as specified in the `Developer's Certificate of -Origin (DCO) 1.1 `__. The contributor -certifies compliance by adding a line saying - -Signed-off-by: Developer Name developer@example.org - -where ``Developer Name`` is the contributor's real name, and the email -address is one the developer is reachable through at the time of -contributing. - -:: - - Developer's Certificate of Origin 1.1 - - By making a contribution to this project, I certify that: - - (a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - - (b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - - (c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - - (d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. - -Sample Change Description / Commit Message ------------------------------------------- - -:: - - From: Contributor Name - Subject: [Repository/Branch PATCH] Pkg-Module: Brief-single-line-summary - - Full-commit-message - - Signed-off-by: Contributor Name - -Notes for sample patch email -```````````````````````````` - -- The first line of commit message is taken from the email's subject - line following ``[Repository/Branch PATCH]``. The remaining portion - of the commit message is the email's content. -- ``git format-patch`` is one way to create this format - -Definitions for sample patch email -`````````````````````````````````` - -- ``Repository`` is the identifier of the repository the patch applies. - This identifier should only be provided for repositories other than - ``edk2``. For example ``edk2-BuildSpecification`` or ``staging``. -- ``Branch`` is the identifier of the branch the patch applies. This - identifier should only be provided for branches other than - ``edk2/master``. - For example ``edk2/UDK2015``, - ``edk2-BuildSpecification/release/1.27``, or - ``staging/edk2-test``. -- ``Module`` is a short identifier for the affected code or - documentation. For example ``MdePkg``, ``MdeModulePkg/UsbBusDxe``, ``Introduction``, or - ``EDK II INF File Format``. -- ``Brief-single-line-summary`` is a short summary of the change. -- The entire first line should be less than ~70 characters. -- ``Full-commit-message`` a verbose multiple line comment describing - the change. Each line should be less than ~70 characters. -- ``Signed-off-by`` is the contributor's signature identifying them - by their real/legal name and their email address. - -Submodules ----------- - -Submodule in EDK II is allowed but submodule chain should be avoided -as possible as we can. Currently EDK II contains the following submodules - -- CryptoPkg/Library/OpensslLib/openssl -- ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 -- MdeModulePkg/Universal/RegularExpressionDxe/oniguruma -- MdeModulePkg/Library/BrotliCustomDecompressLib/brotli -- BaseTools/Source/C/BrotliCompress/brotli - -ArmSoftFloatLib is actually required by OpensslLib. It's inevitable -in openssl-1.1.1 (since stable201905) for floating point parameter -conversion, but should be dropped once there's no such need in future -release of openssl. - -To get a full, buildable EDK II repository, use following steps of git -command - -.. code-block:: bash - - git clone https://github.com/tianocore/edk2.git - cd edk2 - git submodule update --init - cd .. - -If there's update for submodules, use following git commands to get -the latest submodules code. - -.. code-block:: bash - - cd edk2 - git pull - git submodule update - -Note: When cloning submodule repos, '--recursive' option is not -recommended. EDK II itself will not use any code/feature from -submodules in above submodules. So using '--recursive' adds a -dependency on being able to reach servers we do not actually want -any code from, as well as needlessly downloading code we will not -use. - -.. =================================================================== -.. This is a bunch of directives to make the README file more readable -.. =================================================================== - -.. CoreCI - -.. _Windows_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=32&branchName=master -.. |WindowsCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Windows%20VS2019%20CI?branchName=master -.. |WindowsCiTest| image:: https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/32.svg -.. |WindowsCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue - -.. _Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=31&branchName=master -.. |UbuntuCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/Ubuntu%20GCC5%20CI?branchName=master -.. |UbuntuCiTest| image:: https://img.shields.io/azure-devops/tests/tianocore/edk2-ci/31.svg -.. |UbuntuCiCoverage| image:: https://img.shields.io/badge/coverage-coming_soon-blue - -.. ArmVirtPkg - -.. _ArmVirtPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=46&branchName=master -.. |avAArch64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_DEBUG -.. |avAArch64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_RELEASE -.. |avAArch64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_AARCH64_NOOPT - -.. |avArmdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_DEBUG -.. |avArmru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_RELEASE -.. |avArmnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20QEMU_ARM_NOOPT - -.. EmulatorPkg - -.. |TCBZ_2668| image:: https://img.shields.io/bugzilla/2668?baseUrl=https%3A%2F%2Fbugzilla.tianocore.org -.. _TCBZ_2668: https://bugzilla.tianocore.org/show_bug.cgi?id=2668 - -.. |TCBZ_2639| image:: https://img.shields.io/bugzilla/2639?baseUrl=https%3A%2F%2Fbugzilla.tianocore.org -.. _TCBZ_2639: https://bugzilla.tianocore.org/show_bug.cgi?id=2639 - -.. _EmulatorPkg_Win_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=44&branchName=master -.. _EmulatorPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=43&branchName=master - -.. |em32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_DEBUG -.. |em32du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_DEBUG -.. |em32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_RELEASE -.. |em32ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_RELEASE -.. |em32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_NOOPT -.. |em32nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_NOOPT - -.. |em32fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_DEBUG -.. |em32fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_DEBUG -.. |em32fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_RELEASE -.. |em32fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_RELEASE -.. |em32fn| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_NOOPT -.. |em32fnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_IA32_FULL_NOOPT - -.. |em64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_DEBUG -.. |em64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_DEBUG -.. |em64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_RELEASE -.. |em64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_RELEASE -.. |em64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_NOOPT -.. |em64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_NOOPT - -.. |em64fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_DEBUG -.. |em64fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_DEBUG -.. |em64fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_RELEASE -.. |em64fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_RELEASE -.. |em64fn| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_NOOPT -.. |em64fnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20EmulatorPkg_X64_FULL_NOOPT - -.. OvmfPkg - -.. |TCBZ_2661| image:: https://img.shields.io/bugzilla/2661?baseUrl=https%3A%2F%2Fbugzilla.tianocore.org -.. _TCBZ_2661: https://bugzilla.tianocore.org/show_bug.cgi?id=2661 - -.. _OvmfPkg_Win_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=50&branchName=master -.. _OvmfPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?definitionId=48&branchName=master - -.. |op32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_DEBUG -.. |op32du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_DEBUG -.. |op32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_RELEASE -.. |op32ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_RELEASE -.. |op32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_NOOPT -.. |op32nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32_NOOPT - -.. |op64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_DEBUG -.. |op64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_DEBUG -.. |op64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_RELEASE -.. |op64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_RELEASE -.. |op64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_NOOPT -.. |op64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_X64_NOOPT - - -.. |op3264d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_DEBUG -.. |op3264du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_DEBUG -.. |op3264r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_RELEASE -.. |op3264ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_RELEASE -.. |op3264n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_NOOPT -.. |op3264nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_NOOPT - -.. |op3264fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_DEBUG -.. |op3264fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_DEBUG -.. |op3264fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_RELEASE -.. |op3264fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_RELEASE -.. |op3264fn| replace:: |TCBZ_2661|_ -.. |op3264fnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=master&jobName=Platform_CI&configuration=Platform_CI%20OVMF_IA32X64_FULL_NOOPT -- 2.28.0.windows.1