From nobody Sun Apr 28 11:12:29 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79492+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79492+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1629296360; cv=none; d=zohomail.com; s=zohoarc; b=ldtVkwib45FlDek/KKgnnHUA3VyKpyw4wpMfcCIFMqQiX9kQIgmQP6XaofktoTQuIw5DtoP8OaFICiqwd7mH6cca6+JZGxXs31S6wBzjvAm1+o24BAa/hVC6xrJqYAnQWBVucaD5uNmQN72lXXXecxxgK0uc/NsyY7ssf58KiIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629296360; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=glQqHGAtfQqvJs0Bh4/AQh4OpuwMjPJItF1OnMtscvA=; b=XV1nzqGJFcAzj9I8YKWwniIvEgSz5PLNlGS+8G04gBB7lUc1pXkNFVQL5JResxg3GrWju5h6bvpJYNEMX5Io1lM85XpmGZ5kGQU9+8+w+y9oMpuwyVZ4Zi7qb3NzT+XtqZTgM6gAJrEyon9JlF9yas8VqXThRQybAcMP7nBWYZQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79492+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629296360715728.8492564705709; Wed, 18 Aug 2021 07:19:20 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id FDDPYY1788612xS1lp94hMXN; Wed, 18 Aug 2021 07:19:20 -0700 X-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:18 -0700 X-IronPort-AV: E=McAfee;i="6200,9189,10080"; a="301914307" X-IronPort-AV: E=Sophos;i="5.84,330,1620716400"; d="scan'208";a="301914307" X-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:18 -0700 X-IronPort-AV: E=Sophos;i="5.84,330,1620716400"; d="scan'208";a="521065985" X-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:16 -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, Steven Shi Subject: [edk2-devel] [BaseTools Patch 1/2] BaseTools: add clang + gnu make build support in windows Date: Wed, 18 Aug 2021 22:18:56 +0800 Message-Id: <20210818141857.910-2-steven.shi@intel.com> In-Reply-To: <20210818141857.910-1-steven.shi@intel.com> References: <20210818141857.910-1-steven.shi@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,steven.shi@intel.com X-Gm-Message-State: v9PJpR6mWGIIvtMObQTU0bWUx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629296360; bh=2JRoemLBpxtTEO/CmkyeY/2P24Y/sr1EsdHfV3m550Q=; h=Cc:Date:From:Reply-To:Subject:To; b=ul1TCyDDfvvIV417Sx89Jm+jPyydbdDEWJkcpbnkL8Yh5no9gAex/RjG/I4h6GIQ/Cc U4whA/rBnDbi+741dXglZa1q1xgGw1Bw4yBAvm3wFao0VSOUCf9HDfW38/7Y1eKBLRhpg gf6dOrlGJbGJtVQnL5NTuE8Fu7PSpVHYZlY= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629296362979100005 Content-Type: text/plain; charset="utf-8" From: Alyssa This change allows to build BaseTools with LLVM clang and gnu make in windows. After this change, there will be three tool combinations supported in windows to build Basetool: Clang + gun make Clang-cl + nmake MSVC + nmake Signed-off-by: Yuqi Chen Signed-off-by: Steven Shi Cc: Liming Gao gaoliming@byosoft.com.cn Cc: Yuwei Chen yuwei.chen@intel.com Cc: Bob Feng bob.c.feng@intel.com Reviewed-by: Steven Shi --- BaseTools/Source/C/BrotliCompress/GNUmakefile | 8 +- BaseTools/Source/C/Common/CommonLib.h | 9 ++ BaseTools/Source/C/Common/MyAlloc.c | 4 +- BaseTools/Source/C/Common/MyAlloc.h | 4 +- BaseTools/Source/C/DevicePath/GNUmakefile | 6 +- BaseTools/Source/C/EfiRom/GNUmakefile | 6 +- BaseTools/Source/C/GNUmakefile | 74 +++++++++------- BaseTools/Source/C/GenCrc32/GNUmakefile | 6 +- BaseTools/Source/C/GenFfs/GNUmakefile | 6 +- BaseTools/Source/C/GenFv/GNUmakefile | 6 +- BaseTools/Source/C/GenFw/GNUmakefile | 6 +- BaseTools/Source/C/GenSec/GNUmakefile | 6 +- BaseTools/Source/C/LzmaCompress/GNUmakefile | 6 +- BaseTools/Source/C/Makefiles/app.makefile | 5 +- BaseTools/Source/C/Makefiles/header.makefile | 84 ++++++++++++++----- BaseTools/Source/C/Makefiles/lib.makefile | 6 +- BaseTools/Source/C/Makefiles/ms.app | 2 +- BaseTools/Source/C/Makefiles/ms.common | 9 ++ BaseTools/Source/C/TianoCompress/GNUmakefile | 6 +- BaseTools/Source/C/VfrCompile/GNUmakefile | 29 ++++++- .../C/VfrCompile/Pccts/antlr/AntlrMS.mak | 9 +- .../Source/C/VfrCompile/Pccts/antlr/makefile | 7 ++ .../Source/C/VfrCompile/Pccts/dlg/DlgMS.mak | 9 +- .../Source/C/VfrCompile/Pccts/dlg/makefile | 7 ++ BaseTools/Source/C/VolInfo/GNUmakefile | 6 +- BaseTools/Tests/GNUmakefile | 17 ++-- BaseTools/Tests/TestTools.py | 2 +- BaseTools/Tests/TianoCompress.py | 5 +- BaseTools/toolsetup.bat | 14 +++- edksetup.bat | 7 +- 30 files changed, 286 insertions(+), 85 deletions(-) diff --git a/BaseTools/Source/C/BrotliCompress/GNUmakefile b/BaseTools/Sour= ce/C/BrotliCompress/GNUmakefile index b150e5dd2b..aefada57c0 100644 --- a/BaseTools/Source/C/BrotliCompress/GNUmakefile +++ b/BaseTools/Source/C/BrotliCompress/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D BrotliCompress +ifeq ($(OS),Windows_NT) + APPNAME =3D BrotliCompress.exe +else + APPNAME =3D BrotliCompress +endif =20 OBJECTS =3D \ BrotliCompress.o \ @@ -38,4 +42,6 @@ OBJECTS =3D \ include $(MAKEROOT)/Makefiles/app.makefile =20 TOOL_INCLUDE =3D -I ./brotli/c/include +ifneq ($(OS),Windows_NT) LIBS +=3D -lm +endif \ No newline at end of file diff --git a/BaseTools/Source/C/Common/CommonLib.h b/BaseTools/Source/C/Com= mon/CommonLib.h index 0f05d88db2..13b640e1cf 100644 --- a/BaseTools/Source/C/Common/CommonLib.h +++ b/BaseTools/Source/C/Common/CommonLib.h @@ -443,6 +443,15 @@ Returns: } #endif =20 +#ifndef __GNUC__ +#include +#include +#define stricmp _stricmp // https://docs.microsoft.com/en-us/cpp/c-runtime= -library/reference/stricmp-wcsicmp +#define getcwd _getcwd //https://docs.microsoft.com/en-us/cpp/c-runtime-li= brary/reference/getcwd +#define access _access //https://docs.microsoft.com/en-us/cpp/c-runtime-li= brary/reference/access-crt +#define fileno _fileno //https://docs.microsoft.com/en-us/cpp/c-runtime-li= brary/reference/posix-fileno +#endif + #ifdef __GNUC__ #include #include diff --git a/BaseTools/Source/C/Common/MyAlloc.c b/BaseTools/Source/C/Commo= n/MyAlloc.c index d104795d46..0a1b5d9c85 100644 --- a/BaseTools/Source/C/Common/MyAlloc.c +++ b/BaseTools/Source/C/Common/MyAlloc.c @@ -159,7 +159,7 @@ MyCheck ( // ///////////////////////////////////////////////////////////////////////= ///// // // -VOID * +static VOID * MyAlloc ( UINTN Size, UINT8 File[], @@ -402,7 +402,7 @@ MyRealloc ( // ///////////////////////////////////////////////////////////////////////= ///// // // -VOID +static VOID MyFree ( VOID *Ptr, UINT8 File[], diff --git a/BaseTools/Source/C/Common/MyAlloc.h b/BaseTools/Source/C/Commo= n/MyAlloc.h index aff29d05ab..c4ed79ee8f 100644 --- a/BaseTools/Source/C/Common/MyAlloc.h +++ b/BaseTools/Source/C/Common/MyAlloc.h @@ -103,7 +103,7 @@ MyCheck ( // // --*/ // -VOID * +static VOID * MyAlloc ( UINTN Size, UINT8 File[], @@ -167,7 +167,7 @@ MyRealloc ( // // --*/ // -VOID +static VOID MyFree ( VOID *Ptr, UINT8 File[], diff --git a/BaseTools/Source/C/DevicePath/GNUmakefile b/BaseTools/Source/C= /DevicePath/GNUmakefile index 7ca08af966..b67861a3a7 100644 --- a/BaseTools/Source/C/DevicePath/GNUmakefile +++ b/BaseTools/Source/C/DevicePath/GNUmakefile @@ -7,7 +7,11 @@ ARCH ?=3D IA32 MAKEROOT ?=3D .. =20 -APPNAME =3D DevicePath +ifeq ($(OS),Windows_NT) + APPNAME =3D DevicePath.exe +else + APPNAME =3D DevicePath +endif =20 OBJECTS =3D DevicePath.o UefiDevicePathLib.o DevicePathFromText.o DeviceP= athUtilities.o =20 diff --git a/BaseTools/Source/C/EfiRom/GNUmakefile b/BaseTools/Source/C/Efi= Rom/GNUmakefile index 7220b2ae44..2d6b23db67 100644 --- a/BaseTools/Source/C/EfiRom/GNUmakefile +++ b/BaseTools/Source/C/EfiRom/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D EfiRom +ifeq ($(OS),Windows_NT) + APPNAME =3D EfiRom.exe +else + APPNAME =3D EfiRom +endif =20 LIBS =3D -lCommon =20 diff --git a/BaseTools/Source/C/GNUmakefile b/BaseTools/Source/C/GNUmakefile index 8c191e0c38..b4b90d017d 100644 --- a/BaseTools/Source/C/GNUmakefile +++ b/BaseTools/Source/C/GNUmakefile @@ -7,35 +7,47 @@ # =20 ifndef HOST_ARCH - # - # If HOST_ARCH is not defined, then we use 'uname -m' to attempt - # try to figure out the appropriate HOST_ARCH. - # - uname_m =3D $(shell uname -m) - $(info Attempting to detect HOST_ARCH from 'uname -m': $(uname_m)) - ifneq (,$(strip $(filter $(uname_m), x86_64 amd64))) - HOST_ARCH=3DX64 + ifeq ($(OS),Windows_NT) + set_pro =3D $(shell set pro) + $(info Attempting to detect HOST_ARCH from 'set pro': $(set_pro)) + ifneq (,$(strip $(filter (x86) %AMD64, $(set_pro)))) + HOST_ARCH=3DX64 + $(info the HOST_ARCH is X64) + endif + ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) + HOST_ARCH=3DIA32 + $(info the HOST_ARCH is IA32) + endif + else + # + # If HOST_ARCH is not defined, then we use 'uname -m' to attempt + # try to figure out the appropriate HOST_ARCH. + # + uname_m =3D $(shell uname -m) + $(info Attempting to detect HOST_ARCH from 'uname -m': $(uname_m)) + ifneq (,$(strip $(filter $(uname_m), x86_64 amd64))) + HOST_ARCH=3DX64 + endif + ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) + HOST_ARCH=3DIA32 + endif + ifneq (,$(findstring aarch64,$(uname_m))) + HOST_ARCH=3DAARCH64 + else ifneq (,$(findstring arm64,$(uname_m))) + HOST_ARCH=3DAARCH64 + else ifneq (,$(findstring arm,$(uname_m))) + HOST_ARCH=3DARM + endif + ifneq (,$(findstring riscv64,$(uname_m))) + HOST_ARCH=3DRISCV64 + endif + ifndef HOST_ARCH + $(info Could not detected HOST_ARCH from uname results) + $(error HOST_ARCH is not defined!) + endif + $(info Detected HOST_ARCH of $(HOST_ARCH) using uname.) + endif endif - ifeq ($(patsubst i%86,IA32,$(uname_m)),IA32) - HOST_ARCH=3DIA32 - endif - ifneq (,$(findstring aarch64,$(uname_m))) - HOST_ARCH=3DAARCH64 - else ifneq (,$(findstring arm64,$(uname_m))) - HOST_ARCH=3DAARCH64 - else ifneq (,$(findstring arm,$(uname_m))) - HOST_ARCH=3DARM - endif - ifneq (,$(findstring riscv64,$(uname_m))) - HOST_ARCH=3DRISCV64 - endif - ifndef HOST_ARCH - $(info Could not detected HOST_ARCH from uname results) - $(error HOST_ARCH is not defined!) - endif - $(info Detected HOST_ARCH of $(HOST_ARCH) using uname.) -endif - export HOST_ARCH =20 MAKEROOT =3D . @@ -66,9 +78,13 @@ SUBDIRS :=3D $(LIBRARIES) $(APPLICATIONS) $(LIBRARIES): $(MAKEROOT)/libs $(APPLICATIONS): $(LIBRARIES) $(MAKEROOT)/bin $(VFRAUTOGEN) =20 +ifeq ($(OS),Windows_NT) + $(APPLICATIONS): $(BASE_TOOLS_PATH)\Bin\Win32 +endif + .PHONY: outputdirs makerootdir: - -mkdir -p $(MAKEROOT) + -$(MKDIR) $(MAKEROOT) =20 .PHONY: subdirs $(SUBDIRS) subdirs: $(SUBDIRS) diff --git a/BaseTools/Source/C/GenCrc32/GNUmakefile b/BaseTools/Source/C/G= enCrc32/GNUmakefile index fe4575d5fc..a72a1c988a 100644 --- a/BaseTools/Source/C/GenCrc32/GNUmakefile +++ b/BaseTools/Source/C/GenCrc32/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D GenCrc32 +ifeq ($(OS),Windows_NT) + APPNAME =3D GenCrc32.exe +else + APPNAME =3D GenCrc32 +endif =20 LIBS =3D -lCommon =20 diff --git a/BaseTools/Source/C/GenFfs/GNUmakefile b/BaseTools/Source/C/Gen= Ffs/GNUmakefile index 3d41a5855f..4099e74260 100644 --- a/BaseTools/Source/C/GenFfs/GNUmakefile +++ b/BaseTools/Source/C/GenFfs/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D GenFfs +ifeq ($(OS),Windows_NT) + APPNAME =3D GenFfs.exe +else + APPNAME =3D GenFfs +endif =20 OBJECTS =3D GenFfs.o =20 diff --git a/BaseTools/Source/C/GenFv/GNUmakefile b/BaseTools/Source/C/GenF= v/GNUmakefile index 7c7b95ba1b..eb4e9722cc 100644 --- a/BaseTools/Source/C/GenFv/GNUmakefile +++ b/BaseTools/Source/C/GenFv/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D GenFv +ifeq ($(OS),Windows_NT) + APPNAME =3D GenFv.exe +else + APPNAME =3D GenFv +endif =20 OBJECTS =3D GenFv.o GenFvInternalLib.o =20 diff --git a/BaseTools/Source/C/GenFw/GNUmakefile b/BaseTools/Source/C/GenF= w/GNUmakefile index 76cda7e7a3..ce0f3684ac 100644 --- a/BaseTools/Source/C/GenFw/GNUmakefile +++ b/BaseTools/Source/C/GenFw/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D GenFw +ifeq ($(OS),Windows_NT) + APPNAME =3D GenFw.exe +else + APPNAME =3D GenFw +endif =20 OBJECTS =3D GenFw.o ElfConvert.o Elf32Convert.o Elf64Convert.o =20 diff --git a/BaseTools/Source/C/GenSec/GNUmakefile b/BaseTools/Source/C/Gen= Sec/GNUmakefile index 9f0844c1b8..f528ed6f91 100644 --- a/BaseTools/Source/C/GenSec/GNUmakefile +++ b/BaseTools/Source/C/GenSec/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D GenSec +ifeq ($(OS),Windows_NT) + APPNAME =3D GenSec.exe +else + APPNAME =3D GenSec +endif =20 OBJECTS =3D GenSec.o =20 diff --git a/BaseTools/Source/C/LzmaCompress/GNUmakefile b/BaseTools/Source= /C/LzmaCompress/GNUmakefile index c837e77823..1c7d24545e 100644 --- a/BaseTools/Source/C/LzmaCompress/GNUmakefile +++ b/BaseTools/Source/C/LzmaCompress/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D LzmaCompress +ifeq ($(OS),Windows_NT) + APPNAME =3D LzmaCompress.exe +else + APPNAME =3D LzmaCompress +endif =20 LIBS =3D -lCommon =20 diff --git a/BaseTools/Source/C/Makefiles/app.makefile b/BaseTools/Source/C= /Makefiles/app.makefile index 6a2a8f5e8a..e433f6cb33 100644 --- a/BaseTools/Source/C/Makefiles/app.makefile +++ b/BaseTools/Source/C/Makefiles/app.makefile @@ -9,13 +9,16 @@ MAKEROOT ?=3D ../.. =20 include $(MAKEROOT)/Makefiles/header.makefile =20 -APPLICATION =3D $(MAKEROOT)/bin/$(APPNAME) +APPLICATION =3D $(MAKEROOT)$(SEP)bin$(SEP)$(APPNAME) =20 .PHONY:all all: $(MAKEROOT)/bin $(APPLICATION) =20 $(APPLICATION): $(OBJECTS) $(LINKER) -o $(APPLICATION) $(BUILD_LFLAGS) $(OBJECTS) -L$(MAKEROOT)/libs= $(LIBS) +ifeq ($(OS),Windows_NT) + $(CP) $(APPLICATION) $(EDK_TOOLS_PATH)\Bin\Win32 +endif =20 $(OBJECTS): $(MAKEROOT)/Include/Common/BuildVersion.h =20 diff --git a/BaseTools/Source/C/Makefiles/header.makefile b/BaseTools/Sourc= e/C/Makefiles/header.makefile index 0df728f327..e02f479476 100644 --- a/BaseTools/Source/C/Makefiles/header.makefile +++ b/BaseTools/Source/C/Makefiles/header.makefile @@ -8,6 +8,24 @@ # Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent =20 +ifeq ($(OS),Windows_NT) + SEP :=3D$(subst /,\,/) + EXE_EXT :=3D .exe + MKDIR :=3D mkdir + MV :=3D move /Y + RM :=3D del /F /S + CP :=3D copy /y +else + SEP :=3D/ + EXE_EXT :=3D + MKDIR :=3D mkdir -p + MV :=3D mv -f + RM :=3D rm -f + CP :=3D cp -f + SED :=3D sed + TEST :=3D test +endif + ifndef HOST_ARCH # # If HOST_ARCH is not defined, then we use 'uname -m' to attempt @@ -38,9 +56,12 @@ ifndef HOST_ARCH $(info Detected HOST_ARCH of $(HOST_ARCH) using uname.) endif =20 -CYGWIN:=3D$(findstring CYGWIN, $(shell uname -s)) -LINUX:=3D$(findstring Linux, $(shell uname -s)) -DARWIN:=3D$(findstring Darwin, $(shell uname -s)) +ifneq ($(OS),Windows_NT) + CYGWIN:=3D$(findstring CYGWIN, $(shell uname -s)) + LINUX:=3D$(findstring Linux, $(shell uname -s)) + DARWIN:=3D$(findstring Darwin, $(shell uname -s)) +endif + ifeq ($(CXX), llvm) BUILD_CC ?=3D $(CLANG_BIN)clang BUILD_CXX ?=3D $(CLANG_BIN)clang++ @@ -74,32 +95,44 @@ else $(error Bad HOST_ARCH) endif =20 -INCLUDE =3D $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common -= I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKEROO= T)/Common/ -I .. -I . $(ARCH_INCLUDE) -BUILD_CPPFLAGS =3D $(INCLUDE) +INCLUDES =3D $(TOOL_INCLUDE) -I $(MAKEROOT) -I $(MAKEROOT)/Include/Common = -I $(MAKEROOT)/Include/ -I $(MAKEROOT)/Include/IndustryStandard -I $(MAKERO= OT)/Common/ -I .. -I . $(ARCH_INCLUDE) -I "$(INCLUDE)" +BUILD_CPPFLAGS =3D $(INCLUDES) =20 # keep EXTRA_OPTFLAGS last BUILD_OPTFLAGS =3D -O2 $(EXTRA_OPTFLAGS) =20 ifeq ($(DARWIN),Darwin) -# assume clang or clang compatible flags on OS X -BUILD_CFLAGS =3D -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ --Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdlib= -g -else -ifeq ($(CXX), llvm) -BUILD_CFLAGS =3D -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ --fno-delete-null-pointer-checks -Wall -Werror \ --Wno-deprecated-declarations -Wno-self-assign \ --Wno-unused-result -nostdlib -g + # assume clang or clang compatible flags on OS X + BUILD_CFLAGS =3D -MD -fshort-wchar -fno-strict-aliasing -Wall -Werror \ + -Wno-deprecated-declarations -Wno-self-assign -Wno-unused-result -nostdl= ib -g else -BUILD_CFLAGS =3D -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ --fno-delete-null-pointer-checks -Wall -Werror \ --Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \ --Wno-unused-result -nostdlib -g -endif + ifeq ($(CXX), llvm) + ifeq ($(OS),Windows_NT) + BUILD_CFLAGS =3D -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ + -fno-delete-null-pointer-checks -Wall -Werror \ + -Wno-deprecated-declarations -Wno-self-assign \ + -Wno-unused-result -nostdlib -Wno-unused-function -g -m32 + else + BUILD_CFLAGS =3D -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ + -fno-delete-null-pointer-checks -Wall -Werror \ + -Wno-deprecated-declarations -Wno-self-assign \ + -Wno-unused-result -nostdlib -g + endif + else + BUILD_CFLAGS =3D -MD -fshort-wchar -fno-strict-aliasing -fwrapv \ + -fno-delete-null-pointer-checks -Wall -Werror \ + -Wno-deprecated-declarations -Wno-stringop-truncation -Wno-restrict \ + -Wno-unused-result -nostdlib -g + endif endif ifeq ($(CXX), llvm) -BUILD_LFLAGS =3D -BUILD_CXXFLAGS =3D -Wno-deprecated-register -Wno-unused-result + ifeq ($(OS),Windows_NT) + BUILD_LFLAGS =3D -m32 + BUILD_CXXFLAGS =3D -Wno-deprecated-register -Wno-unused-result -D_CRT_= SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -m32 + else + BUILD_LFLAGS =3D + BUILD_CXXFLAGS =3D -Wno-deprecated-register -Wno-unused-result + endif else BUILD_LFLAGS =3D BUILD_CXXFLAGS =3D -Wno-unused-result @@ -131,7 +164,12 @@ BUILD_LFLAGS +=3D $(EXTRA_LDFLAGS) all: =20 $(MAKEROOT)/libs: - mkdir $(MAKEROOT)/libs + $(MKDIR) $(MAKEROOT)$(SEP)libs =20 $(MAKEROOT)/bin: - mkdir $(MAKEROOT)/bin + $(MKDIR) $(MAKEROOT)$(SEP)bin + +ifeq ($(OS),Windows_NT) + $(BASE_TOOLS_PATH)\Bin\Win32: + -$(MKDIR) $(BASE_TOOLS_PATH)\Bin\Win32 +endif diff --git a/BaseTools/Source/C/Makefiles/lib.makefile b/BaseTools/Source/C= /Makefiles/lib.makefile index 2577c15380..28aaab5bed 100644 --- a/BaseTools/Source/C/Makefiles/lib.makefile +++ b/BaseTools/Source/C/Makefiles/lib.makefile @@ -7,7 +7,11 @@ =20 include $(MAKEROOT)/Makefiles/header.makefile =20 -LIBRARY =3D $(MAKEROOT)/libs/lib$(LIBNAME).a +ifeq ($(OS),Windows_NT) + LIBRARY =3D $(MAKEROOT)/libs/$(LIBNAME).lib +else + LIBRARY =3D $(MAKEROOT)/libs/lib$(LIBNAME).a +endif =20 all: $(MAKEROOT)/libs $(LIBRARY) =20 diff --git a/BaseTools/Source/C/Makefiles/ms.app b/BaseTools/Source/C/Makef= iles/ms.app index aecae37396..0dd0daf6f7 100644 --- a/BaseTools/Source/C/Makefiles/ms.app +++ b/BaseTools/Source/C/Makefiles/ms.app @@ -13,7 +13,7 @@ $(APPLICATION) : $(OBJECTS) -@if not exist $(BIN_PATH) mkdir $(BIN_PATH) $(LD) /nologo /debug /OPT:REF /OPT:ICF=3D10 /incremental:no /nodefaultlib= :libc.lib /out:$@ $(LIBS) $** =20 -$(OBJECTS) : $(SOURCE_PATH)\Include\Common\BuildVersion.h +#$(OBJECTS) : $(SOURCE_PATH)\Include\Common\BuildVersion.h =20 .PHONY:clean .PHONY:cleanall diff --git a/BaseTools/Source/C/Makefiles/ms.common b/BaseTools/Source/C/Ma= kefiles/ms.common index b2dbcf376c..ef58303189 100644 --- a/BaseTools/Source/C/Makefiles/ms.common +++ b/BaseTools/Source/C/Makefiles/ms.common @@ -60,3 +60,12 @@ INC =3D $(INC) -I . -I $(SOURCE_PATH)\Include -I $(ARCH_= INCLUDE) -I $(SOURCE_PATH) CFLAGS =3D $(CFLAGS) /nologo /Zi /c /O2 /MT /W4 /WX /D _CRT_SECURE_NO_DEPR= ECATE /D _CRT_NONSTDC_NO_DEPRECATE CPPFLAGS =3D $(CPPFLAGS) /EHsc /nologo /Zi /c /O2 /MT /D _CRT_SECURE_NO_DE= PRECATE /D _CRT_NONSTDC_NO_DEPRECATE =20 +!IF "$(CLANG_BUILD)"=3D=3D"TRUE" +CC =3D "$(CLANG_BIN)\clang-cl.exe" +CXX =3D "$(CLANG_BIN)\clang-cl.exe" +AR =3D "$(CLANG_BIN)\llvm-lib.exe" +LD =3D "$(CLANG_BIN)\lld-link.exe" + +CFLAGS =3D $(CFLAGS) /nologo /Zi /c /O2 /MT /W4 /WX /D _CRT_SECURE_NO_DEPR= ECATE /D _CRT_NONSTDC_NO_DEPRECATE /w -m32 +CPPFLAGS =3D $(CPPFLAGS) /EHsc /nologo /Zi /c /O2 /MT /D _CRT_SECURE_NO_DE= PRECATE /D _CRT_NONSTDC_NO_DEPRECATE /w -m32 +!ENDIF diff --git a/BaseTools/Source/C/TianoCompress/GNUmakefile b/BaseTools/Sourc= e/C/TianoCompress/GNUmakefile index d164d37b3d..07cb4b4119 100644 --- a/BaseTools/Source/C/TianoCompress/GNUmakefile +++ b/BaseTools/Source/C/TianoCompress/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D TianoCompress +ifeq ($(OS),Windows_NT) + APPNAME =3D TianoCompress.exe +else + APPNAME =3D TianoCompress +endif =20 LIBS =3D -lCommon =20 diff --git a/BaseTools/Source/C/VfrCompile/GNUmakefile b/BaseTools/Source/C= /VfrCompile/GNUmakefile index fc329944b9..d663f50e84 100644 --- a/BaseTools/Source/C/VfrCompile/GNUmakefile +++ b/BaseTools/Source/C/VfrCompile/GNUmakefile @@ -7,7 +7,11 @@ =20 MAKEROOT ?=3D .. =20 -APPNAME =3D VfrCompile +ifeq ($(OS),Windows_NT) + APPNAME =3D VfrCompile.exe +else + APPNAME =3D VfrCompile +endif =20 LIBS =3D -lCommon =20 @@ -17,7 +21,11 @@ TOOL_INCLUDE =3D -I Pccts/h OBJECTS =3D AParser.o DLexerBase.o ATokenBuffer.o EfiVfrParser.o VfrLexer.= o VfrSyntax.o \ VfrFormPkg.o VfrError.o VfrUtilityLib.o VfrCompiler.o ifeq ($(CXX), llvm) -VFR_CPPFLAGS =3D -Wno-deprecated-register -DPCCTS_USE_NAMESPACE_STD $(BUIL= D_CPPFLAGS) + ifeq ($(OS),Windows_NT) + VFR_CPPFLAGS =3D -Wno-deprecated-register -DPCCTS_USE_NAMESPACE_STD $(= BUILD_CPPFLAGS) -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -m32 + else + VFR_CPPFLAGS =3D -Wno-deprecated-register -DPCCTS_USE_NAMESPACE_STD $(= BUILD_CPPFLAGS) + endif else VFR_CPPFLAGS =3D -DPCCTS_USE_NAMESPACE_STD $(BUILD_CPPFLAGS) endif @@ -25,7 +33,11 @@ endif VFR_CXXFLAGS =3D $(BUILD_OPTFLAGS) =20 # keep EXTRA_LDFLAGS last +ifeq ($(OS),Windows_NT) +VFR_LFLAGS =3D $(EXTRA_LDFLAGS) -m32 +else VFR_LFLAGS =3D $(EXTRA_LDFLAGS) +endif =20 LINKER =3D $(BUILD_CXX) =20 @@ -35,13 +47,16 @@ MAKEROOT ?=3D ../.. =20 include $(MAKEROOT)/Makefiles/header.makefile =20 -APPLICATION =3D $(MAKEROOT)/bin/$(APPNAME) +APPLICATION =3D $(MAKEROOT)$(SEP)bin$(SEP)$(APPNAME) =20 .PHONY:all all: $(MAKEROOT)/bin $(APPLICATION) =20 $(APPLICATION): $(OBJECTS) $(LINKER) -o $(APPLICATION) $(VFR_LFLAGS) $(OBJECTS) -L$(MAKEROOT)/libs $= (LIBS) +ifeq ($(OS),Windows_NT) + $(CP) $(APPLICATION) $(EDK_TOOLS_PATH)\Bin\Win32 +endif =20 VfrCompiler.o: ../Include/Common/BuildVersion.h =20 @@ -54,10 +69,18 @@ VfrLexer.cpp VfrLexer.h: Pccts/dlg/dlg VfrParser.dlg Pccts/dlg/dlg -C2 -i -CC -cl VfrLexer -o . VfrParser.dlg =20 Pccts/antlr/antlr: +ifeq ($(OS),Windows_NT) + set BIN_DIR=3D'.'&& $(MAKE) -C Pccts/antlr +else BIN_DIR=3D'.' $(MAKE) -C Pccts/antlr +endif =20 Pccts/dlg/dlg: +ifeq ($(OS),Windows_NT) + set BIN_DIR=3D'.'&& $(MAKE) -C Pccts/dlg +else BIN_DIR=3D'.' $(MAKE) -C Pccts/dlg +endif =20 ATokenBuffer.o: Pccts/h/ATokenBuffer.cpp $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@ diff --git a/BaseTools/Source/C/VfrCompile/Pccts/antlr/AntlrMS.mak b/BaseTo= ols/Source/C/VfrCompile/Pccts/antlr/AntlrMS.mak index b30a73bb74..51ccb446dc 100644 --- a/BaseTools/Source/C/VfrCompile/Pccts/antlr/AntlrMS.mak +++ b/BaseTools/Source/C/VfrCompile/Pccts/antlr/AntlrMS.mak @@ -17,7 +17,14 @@ SET=3D$(PCCTS_HOME)\support\set CC =3D cl CFLAGS =3D /nologo -I "." -I "$(PCCTS_H)" -I "$(SET)" -D "USER_ZZSYN" -D "= PC" \ -D "ZZLEXBUFSIZE=3D65536" /D "LONGFILENAMES" /Zi /W3 -D__USE_PROT= OS /wd4700 \ - /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE=20 + /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE + +!IF "$(CLANG_BUILD)"=3D=3D"TRUE" +CC =3D "$(CLANG_BIN)\clang-cl.exe" +CFLAGS =3D /nologo -I "." -I "$(PCCTS_H)" -I "$(SET)" -D "USER_ZZSYN" -D "= PC" \ + -D "ZZLEXBUFSIZE=3D65536" /D "LONGFILENAMES" /Zi /W3 -D__USE_PROT= OS /wd4700 \ + /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /w -m32 +!ENDIF =20 ANTLR_OBJS =3D antlr.obj scan.obj err.obj bits.obj build.obj fset2.obj \ fset.obj gen.obj globals.obj hash.obj lex.obj main.obj \ diff --git a/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile b/BaseTools= /Source/C/VfrCompile/Pccts/antlr/makefile index 559b1c99f1..6751e06961 100644 --- a/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile +++ b/BaseTools/Source/C/VfrCompile/Pccts/antlr/makefile @@ -174,7 +174,14 @@ ANTLR=3D${BIN_DIR}/antlr DLG=3D${BIN_DIR}/dlg OBJ_EXT=3Do OUT_OBJ =3D -o + +ifeq ($(OS),Windows_NT) +BUILD_CFLAGS=3D $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN $(COTHER) -= DZZLEXBUFSIZE=3D65536 \ + -D__USE_PROTOS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPREC= ATE -DPCCTS_USE_STDARG -m32 +else BUILD_CFLAGS=3D $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN $(COTHER) -= DZZLEXBUFSIZE=3D65536 +endif + BUILD_CPPFLAGS=3D # # SGI Users, use this CFLAGS diff --git a/BaseTools/Source/C/VfrCompile/Pccts/dlg/DlgMS.mak b/BaseTools/= Source/C/VfrCompile/Pccts/dlg/DlgMS.mak index 2714308d4f..fe9724ff96 100644 --- a/BaseTools/Source/C/VfrCompile/Pccts/dlg/DlgMS.mak +++ b/BaseTools/Source/C/VfrCompile/Pccts/dlg/DlgMS.mak @@ -17,7 +17,14 @@ SET=3D$(PCCTS_HOME)\support\set CC =3D cl CFLAGS =3D /nologo -I "." -I "$(PCCTS_H)" -I "$(SET)" -D "USER_ZZSYN" -D "= PC" \ -D "ZZLEXBUFSIZE=3D65536" /D "LONGFILENAMES" /W3 /Zi \ - /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE=20 + /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE + +!IF "$(CLANG_BUILD)"=3D=3D"TRUE" +CC =3D "$(CLANG_BIN)\clang-cl.exe" +CFLAGS =3D /nologo -I "." -I "$(PCCTS_H)" -I "$(SET)" -D "USER_ZZSYN" -D "= PC" \ + -D "ZZLEXBUFSIZE=3D65536" /D "LONGFILENAMES" /W3 /Zi \ + /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D PCCTS_= USE_STDARG /w -m32 +!ENDIF =20 DLG_OBJS =3D dlg_p.obj dlg_a.obj main.obj err.obj support.obj \ output.obj relabel.obj automata.obj diff --git a/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile b/BaseTools/S= ource/C/VfrCompile/Pccts/dlg/makefile index 5a3561edec..8e6616a5b4 100644 --- a/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile +++ b/BaseTools/Source/C/VfrCompile/Pccts/dlg/makefile @@ -122,7 +122,14 @@ endif COPT=3D-O ANTLR=3D${BIN_DIR}/antlr DLG=3D${BIN_DIR}/dlg + +ifeq ($(OS),Windows_NT) +BUILD_CFLAGS=3D $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN -DZZLEXBUFS= IZE=3D65536 \ + -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPCCTS_USE= _STDARG -m32 +else BUILD_CFLAGS=3D $(COPT) -I. -I$(SET) -I$(PCCTS_H) -DUSER_ZZSYN -DZZLEXBUFS= IZE=3D65536 +endif + BUILD_CPPFLAGS=3D OBJ_EXT=3Do OUT_OBJ =3D -o diff --git a/BaseTools/Source/C/VolInfo/GNUmakefile b/BaseTools/Source/C/Vo= lInfo/GNUmakefile index 9795b28add..c80f1d5e51 100644 --- a/BaseTools/Source/C/VolInfo/GNUmakefile +++ b/BaseTools/Source/C/VolInfo/GNUmakefile @@ -6,7 +6,11 @@ # MAKEROOT ?=3D .. =20 -APPNAME =3D VolInfo +ifeq ($(OS),Windows_NT) + APPNAME =3D VolInfo.exe +else + APPNAME =3D VolInfo +endif =20 OBJECTS =3D VolInfo.o =20 diff --git a/BaseTools/Tests/GNUmakefile b/BaseTools/Tests/GNUmakefile index 1cb77f84b1..870f1d73a8 100644 --- a/BaseTools/Tests/GNUmakefile +++ b/BaseTools/Tests/GNUmakefile @@ -7,9 +7,14 @@ =20 all: test =20 -test: - @if command -v $(PYTHON_COMMAND) >/dev/null 1; then $(PYTHON_COMMAND) Run= Tests.py; else python RunTests.py; fi - -clean: - find . -name '*.pyc' -exec rm '{}' ';' - +ifeq ($(OS),Windows_NT) + test: + python RunTests.py + clean: + echo ToDo +else + test: + @if command -v $(PYTHON_COMMAND) >/dev/null 1; then $(PYTHON_COMMAND) Ru= nTests.py; else python RunTests.py; fi + clean: + find . -name '*.pyc' -exec rm '{}' ';' +endif \ No newline at end of file diff --git a/BaseTools/Tests/TestTools.py b/BaseTools/Tests/TestTools.py index 1099fd4eea..5cad2b0150 100644 --- a/BaseTools/Tests/TestTools.py +++ b/BaseTools/Tests/TestTools.py @@ -135,7 +135,7 @@ class BaseToolsTest(unittest.TestCase): return open(os.path.join(self.testDir, fileName), mode) =20 def ReadTmpFile(self, fileName): - f =3D open(self.GetTmpFilePath(fileName), 'r') + f =3D open(self.GetTmpFilePath(fileName), 'r', encoding=3D"utf8") data =3D f.read() f.close() return data diff --git a/BaseTools/Tests/TianoCompress.py b/BaseTools/Tests/TianoCompre= ss.py index 685968b18f..2b592a9106 100644 --- a/BaseTools/Tests/TianoCompress.py +++ b/BaseTools/Tests/TianoCompress.py @@ -21,7 +21,10 @@ class Tests(TestTools.BaseToolsTest): =20 def setUp(self): TestTools.BaseToolsTest.setUp(self) - self.toolName =3D 'TianoCompress' + if sys.platform in ('win32', 'win64'): + self.toolName =3D 'TianoCompress.exe' + else: + self.toolName =3D 'TianoCompress' =20 def testHelp(self): result =3D self.RunTool('--help', logFile=3D'help') diff --git a/BaseTools/toolsetup.bat b/BaseTools/toolsetup.bat index 58fd26a4b5..cacd41d3e0 100755 --- a/BaseTools/toolsetup.bat +++ b/BaseTools/toolsetup.bat @@ -72,6 +72,11 @@ if /I "%1"=3D=3D"/?" goto Usage set VSTool=3DVS2012 goto loop ) + if /I "%1"=3D=3D"clang" ( + shift + set CLANG_BUILD=3DTRUE + goto loop + ) if "%1"=3D=3D"" goto setup_workspace if exist %1 ( if not defined BASE_TOOLS_PATH ( @@ -195,6 +200,11 @@ if defined VS2019 ( ) else if defined VS2012 ( call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat VS2012 call %EDK_TOOLS_PATH%\get_vsvars.bat VS2012 +) else if defined CLANG_BUILD ( + @if exist "C:\Program Files\LLVM\bin\clang.exe" ( + @set "CLANG_BIN=3DC:\Program Files\LLVM\bin\" + @echo Found LLVM, setting CLANG_BIN environment variable to C:\P= rogram Files\LLVM\bin\ + ) ) else ( call %EDK_TOOLS_PATH%\set_vsprefix_envs.bat call %EDK_TOOLS_PATH%\get_vsvars.bat @@ -472,7 +482,7 @@ goto end =20 :Usage @echo. - echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [ Rebuild | For= ceRebuild ] [Reconfig] [base_tools_path [edk_tools_path]] [VS2019] [VS2017]= [VS2015] [VS2013] [VS2012]" + echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [ Rebuild | For= ceRebuild ] [Reconfig] [base_tools_path [edk_tools_path]] [VS2019] [VS2017]= [VS2015] [VS2013] [VS2012] [clang]" @echo. @echo base_tools_path BaseTools project path, BASE_TOOLS_PATH = will be set to this path. @echo edk_tools_path EDK_TOOLS_PATH will be set to this path. @@ -486,6 +496,7 @@ goto end @echo VS2015 Set the env for VS2015 build. @echo VS2017 Set the env for VS2017 build. @echo VS2019 Set the env for VS2019 build. + @echo clang Set the env for clang-cl build. @echo. =20 :end @@ -498,5 +509,6 @@ set VS2015=3D set VS2013=3D set VS2012=3D set VSTool=3D +set CLANG_BUILD=3D popd =20 diff --git a/edksetup.bat b/edksetup.bat index 7ad137bb3e..537d1f7733 100755 --- a/edksetup.bat +++ b/edksetup.bat @@ -150,11 +150,12 @@ if /I "%1"=3D=3D"VS2017" shift if /I "%1"=3D=3D"VS2015" shift if /I "%1"=3D=3D"VS2013" shift if /I "%1"=3D=3D"VS2012" shift +if /I "%1"=3D=3D"clang" shift if "%1"=3D=3D"" goto end =20 :Usage @echo. - @echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Re= build] [ForceRebuild] [VS2019] [VS2017] [VS2015] [VS2013] [VS2012]" + @echo Usage: "%0 [-h | -help | --help | /h | /help | /?] [Reconfig] [Re= build] [ForceRebuild] [VS2019] [VS2017] [VS2015] [VS2013] [VS2012] [clang]" @echo. @echo Reconfig Reinstall target.txt, tools_def.txt and bui= ld_rule.txt. @echo Rebuild Perform incremental rebuild of BaseTools bi= naries. @@ -164,6 +165,10 @@ if "%1"=3D=3D"" goto end @echo VS2015 Set the env for VS2015 build. @echo VS2017 Set the env for VS2017 build. @echo VS2019 Set the env for VS2019 build. + @echo clang Set the env for clang-cl build. + @echo. + @echo Unix-like Usage: "gnumake.exe -C BaseTools CXX=3Dllvm" + @echo Use clang + gunmake build base tools in windows. @echo. @echo Note that target.template, tools_def.template and build_rules.tem= plate @echo will only be copied to target.txt, tools_def.txt and build_rule.t= xt --=20 2.28.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79492): https://edk2.groups.io/g/devel/message/79492 Mute This Topic: https://groups.io/mt/84973012/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- From nobody Sun Apr 28 11:12:29 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+79493+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79493+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1629296363; cv=none; d=zohomail.com; s=zohoarc; b=Fv1MEh3X9m19IkARJWcIItfJPjcJuFpb8bE1BUxpN9KxIRtjv6nDeIkCdt2c5BI/DB7Tt6q39XBcTIsMVp+03evK0d38tcz8Bu1oKt9DlKTdme7smrSOWcrZhZ8NqxUES9MULGbVlQXHJ6y51wDkJNB7Zg6QLaZWYPgbf6ovS18= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1629296363; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=J1f/+zBBjRYb90fT9q1TPtVoLywLOIg2cq9It2Bo1oE=; b=OJVgYmJLLNylNOZNSnzw5RFR/RgjwMw92U5V14E4uzpx7jtwskTqRU24Y0OQomJ6hAQLMHQ0IJnlcdj/MoyizqGQgHWOt9QJHg0MdCQmVYgOIuP2qzdvSkQu5miIFnN0epdV2KSgXY865UhHCbBdbBU/Fmn8adNgkRZM6cxdCWM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+79493+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1629296363328445.2104405001169; Wed, 18 Aug 2021 07:19:23 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id U9t8YY1788612xcQRntE0UfH; Wed, 18 Aug 2021 07:19:22 -0700 X-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 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" X-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" X-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: [edk2-devel] [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> In-Reply-To: <20210818141857.910-1-steven.shi@intel.com> References: <20210818141857.910-1-steven.shi@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,steven.shi@intel.com X-Gm-Message-State: eYae2zhTMrsCY0D6sFhyCDNEx1787277AA= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1629296362; bh=H2mf9XTvClBeY7kMKPZZ9SdCXAepB6r0snfBe6lOTO4=; h=Cc:Content-Type:Date:From:Reply-To:Subject:To; b=Rfl0A6tMT6RFvawlVSdfqajngqOcciz05y4+vuVKSbPBfwtf87168fJw/uNn5fwIvDC 99DyVYtonHMJF8u8MmP6o0x4DZDKSqA4g7eMRf7MLkvJ/nTwjgIF2LS7CwnNSI59O6xIW 28tPLEvGP/L0AKrlaLB69bkF+3V2H6RVnG0= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1629296365525100013 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 Reviewed-by: Steven Shi --- 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 @@ -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -EDK II Project -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D +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 wi= ndows. +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 build= s. + +links to related materials:=20 +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, plea= se 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\ di= rectory. + 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/download= s/ and install it + +4. Download Visual Studio 2015 or 2017 or 2019 and install it, make sure n= make.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 desc= ription here: =E2=80=9CWhen you install Visual C++, Visual Studio setup ins= talls the subset of the Windows 10 SDK required to use the UCRT.=E2=80=9D h= ttps://docs.microsoft.com/en-us/cpp/c-runtime-library/crt-library-features?= view=3Dmsvc-160.=20 + +5. In windows command prompt: (please replace %USERNAME% with username in = your computer) + Can directly download the windows version gnumake binary from conan cente= r. Below are the download steps: + C:\Users\%USERNAME%\edk2>C:\Python38\python.exe -m pip install conan + C:\Users\%USERNAME%\edk2>set PATH=3D%PATH%;C:\Python38\Scripts\ + C:\Users\%USERNAME%\edk2>conan download make/4.2.1:0a420ff5c47119e668867c= db51baff0eca1fdb68 + C:\Users\%USERNAME%\edk2>C:\Users\%USERNAME%\.conan\data\make\4.2.1\_\_\p= ackage\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 dow= nload 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\_\_\p= ackage\0a420ff5c47119e668867cdb51baff0eca1fdb68\bin\gnumake.exe -w -C BaseT= ools CXX=3Dllvm +--------------------------------------------------------------------------= ----------------------------------- +# 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, plea= se 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\ di= rectory. + 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/download= s/ and install it + +4. Download Visual Studio 2015 or 2017 or 2019 and install it, make sure n= make.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 dow= nload 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, plea= se 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\ di= rectory. + 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/download= s/ and install it + +4. Download Visual Studio 2015 or 2017 or 2019 and install it, make sure n= make.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 dow= nload 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/do= wnload/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 0160ad80= 2e899c2922bc9b29564080c22eb0908c) + 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 i= asl nasm + +3. Download the latest version Python from https://www.python.org/download= s/ 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/=20 +--------------------------------------------------------------------------= ----------------------------------- +# 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/do= wnload/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 0160ad80= 2e899c2922bc9b29564080c22eb0908c) + 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 i= asl nasm + +3. Download the latest version Python from https://www.python.org/download= s/ 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=3D~/llvm/clang+llvm-11.0.0-x86_64-lin= ux-gnu-ubuntu-20.04/bin/=20 + %USERNAME%:~/edk2$ source edksetup.sh + %USERNAME%:~/edk2$ make -C BaseTools/ CXX=3Dllvm +=09 =20 -A modern, feature-rich, cross-platform firmware development -environment for the UEFI and PI specifications from www.uefi.org. - -Core CI Build Status --------------------- - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - Host Type & Toolchain Build Status Test Status Code Cover= age -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D -Windows_VS2019_ |WindowsCiBuild| |WindowsCiTest| |WindowsCi= Coverage| -Ubuntu_GCC5_ |UbuntuCiBuild| |UbuntuCiTest| |UbuntuCiC= overage| -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D - -`More CI Build information <.pytool/Readme.md>`__ - -Platform CI Build Status ------------------------- - -Microsoft Windows VS2019 -```````````````````````` - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - Toolchain CONFIG DEBUG RELEASE = NOOPT -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -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| -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -Ubuntu 18.04 GCC5 -````````````````` - -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - Toolchain CONFIG DEBUG RELEASE = NOOPT -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -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| -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -|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 addit= ional -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 `__. (ED= K II uses BSD License) -- `EmbeddedPkg/Include/fdt.h `__. (EDK II use= s 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 packa= ge -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-summa= ry - - 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``, ``In= troduction``, 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. - -.. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D -.. This is a bunch of directives to make the README file more readable -.. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -.. CoreCI - -.. _Windows_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/latest?= definitionId=3D32&branchName=3Dmaster -.. |WindowsCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/= build/status/Windows%20VS2019%20CI?branchName=3Dmaster -.. |WindowsCiTest| image:: https://img.shields.io/azure-devops/tests/tiano= core/edk2-ci/32.svg -.. |WindowsCiCoverage| image:: https://img.shields.io/badge/coverage-comin= g_soon-blue - -.. _Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/latest?def= initionId=3D31&branchName=3Dmaster -.. |UbuntuCiBuild| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/b= uild/status/Ubuntu%20GCC5%20CI?branchName=3Dmaster -.. |UbuntuCiTest| image:: https://img.shields.io/azure-devops/tests/tianoc= ore/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=3D46&branchName=3Dmaster -.. |avAArch64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/bui= ld/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20QEMU_AARCH64_DEBUG -.. |avAArch64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/bui= ld/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20QEMU_AARCH64_RELEASE -.. |avAArch64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/bui= ld/status/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20QEMU_AARCH64_NOOPT - -.. |avArmdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20QEMU_ARM_DEBUG -.. |avArmru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20QEMU_ARM_RELEASE -.. |avArmnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_ArmVirtPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20QEMU_ARM_NOOPT - -.. EmulatorPkg - -.. |TCBZ_2668| image:: https://img.shields.io/bugzilla/2668?baseUrl=3Dhttp= s%3A%2F%2Fbugzilla.tianocore.org -.. _TCBZ_2668: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2668 - -.. |TCBZ_2639| image:: https://img.shields.io/bugzilla/2639?baseUrl=3Dhttp= s%3A%2F%2Fbugzilla.tianocore.org -.. _TCBZ_2639: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2639 - -.. _EmulatorPkg_Win_VS2019: https://dev.azure.com/tianocore/edk2-ci/_buil= d/latest?definitionId=3D44&branchName=3Dmaster -.. _EmulatorPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_buil= d/latest?definitionId=3D43&branchName=3Dmaster - -.. |em32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3D= Platform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_DEBUG -.. |em32du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_DEBUG -.. |em32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3D= Platform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_RELEASE -.. |em32ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_RELEASE -.. |em32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3D= Platform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_NOOPT -.. |em32nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_NOOPT - -.. |em32fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_FULL_DEBUG -.. |em32fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_FULL_DEBUG -.. |em32fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_FULL_RELEASE -.. |em32fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_FULL_RELEASE -.. |em32fn| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_FULL_NOOPT -.. |em32fnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20EmulatorPkg_IA32_FULL_NOOPT - -.. |em64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3D= Platform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_DEBUG -.. |em64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_DEBUG -.. |em64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3D= Platform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_RELEASE -.. |em64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_RELEASE -.. |em64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3D= Platform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_NOOPT -.. |em64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_NOOPT - -.. |em64fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_FULL_DEBUG -.. |em64fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_FULL_DEBUG -.. |em64fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_FULL_RELEASE -.. |em64fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_FULL_RELEASE -.. |em64fn| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_EmulatorPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName= =3DPlatform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_FULL_NOOPT -.. |em64fnu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_EmulatorPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20EmulatorPkg_X64_FULL_NOOPT - -.. OvmfPkg - -.. |TCBZ_2661| image:: https://img.shields.io/bugzilla/2661?baseUrl=3Dhttp= s%3A%2F%2Fbugzilla.tianocore.org -.. _TCBZ_2661: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2661 - -.. _OvmfPkg_Win_VS2019: https://dev.azure.com/tianocore/edk2-ci/_build/la= test?definitionId=3D50&branchName=3Dmaster -.. _OvmfPkg_Ubuntu_GCC5: https://dev.azure.com/tianocore/edk2-ci/_build/la= test?definitionId=3D48&branchName=3Dmaster - -.. |op32d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_IA32_DEBUG -.. |op32du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlatfo= rm_CI&configuration=3DPlatform_CI%20OVMF_IA32_DEBUG -.. |op32r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_IA32_RELEASE -.. |op32ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlatfo= rm_CI&configuration=3DPlatform_CI%20OVMF_IA32_RELEASE -.. |op32n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_IA32_NOOPT -.. |op32nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlatfo= rm_CI&configuration=3DPlatform_CI%20OVMF_IA32_NOOPT - -.. |op64d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_X64_DEBUG -.. |op64du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlatfo= rm_CI&configuration=3DPlatform_CI%20OVMF_X64_DEBUG -.. |op64r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_X64_RELEASE -.. |op64ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlatfo= rm_CI&configuration=3DPlatform_CI%20OVMF_X64_RELEASE -.. |op64n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/sta= tus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_X64_NOOPT -.. |op64nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/st= atus/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlatfo= rm_CI&configuration=3DPlatform_CI%20OVMF_X64_NOOPT - - -.. |op3264d| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_DEBUG -.. |op3264du| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/= status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_DEBUG -.. |op3264r| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_RELEASE -.. |op3264ru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/= status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_RELEASE -.. |op3264n| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/s= tatus/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DPl= atform_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_NOOPT -.. |op3264nu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/= status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPlat= form_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_NOOPT - -.. |op3264fd| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/= status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_FULL_DEBUG -.. |op3264fdu| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build= /status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPla= tform_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_FULL_DEBUG -.. |op3264fr| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build/= status/PlatformCI_OvmfPkg_Windows_VS2019_CI?branchName=3Dmaster&jobName=3DP= latform_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_FULL_RELEASE -.. |op3264fru| image:: https://dev.azure.com/tianocore/edk2-ci/_apis/build= /status/PlatformCI_OvmfPkg_Ubuntu_GCC5_CI?branchName=3Dmaster&jobName=3DPla= tform_CI&configuration=3DPlatform_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=3Dmaster&jobName=3DPla= tform_CI&configuration=3DPlatform_CI%20OVMF_IA32X64_FULL_NOOPT --=20 2.28.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79493): https://edk2.groups.io/g/devel/message/79493 Mute This Topic: https://groups.io/mt/84973014/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-