From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: jiewen.yao@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Fri, 27 Sep 2019 01:33:59 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 Sep 2019 01:33:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,554,1559545200"; d="scan'208";a="273740849" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga001.jf.intel.com with ESMTP; 27 Sep 2019 01:33:58 -0700 Received: from fmsmsx117.amr.corp.intel.com (10.18.116.17) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 27 Sep 2019 01:33:57 -0700 Received: from shsmsx105.ccr.corp.intel.com (10.239.4.158) by fmsmsx117.amr.corp.intel.com (10.18.116.17) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 27 Sep 2019 01:33:57 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.113]) by SHSMSX105.ccr.corp.intel.com ([169.254.11.23]) with mapi id 14.03.0439.000; Fri, 27 Sep 2019 16:33:54 +0800 From: "Yao, Jiewen" To: "devel@edk2.groups.io" , "Gao, Liming" CC: "Shi, Steven" , "Justen, Jordan L" , Laszlo Ersek , Andrew Fish , "Ni, Ray" , Ard Biesheuvel , "Wang, Jian J" , "Wu, Hao A" , "Feng, Bob C" , "Kinney, Michael D" Subject: Re: [edk2-devel] [Patch 00/12] New Cross OS tool chain CLANG9 Thread-Topic: [edk2-devel] [Patch 00/12] New Cross OS tool chain CLANG9 Thread-Index: AQHVdQfMToAvvbWaLEi4pTo25H1cSac/MNkw Date: Fri, 27 Sep 2019 08:33:54 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503F7CCA26@shsmsx102.ccr.corp.intel.com> References: <1569570395-11240-1-git-send-email-liming.gao@intel.com> In-Reply-To: <1569570395-11240-1-git-send-email-liming.gao@intel.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZjU4ODkyNGUtYzMxZC00NzYxLWI2NmYtYWNiNDFhODc4MzhlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiOGdzampEb1gySU9PUWlXMytVdlN0aDR2WG54bXZRNEswRGNJU2U0V0tNOFFmUW5XYlwvUmJpYnJqREs3WG5HK2MifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: jiewen.yao@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thank you Liming. That is cool feature. Thank you Yao Jiewen > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Liming Ga= o > Sent: Friday, September 27, 2019 3:46 PM > To: devel@edk2.groups.io > Cc: Yao, Jiewen ; Shi, Steven ; > Justen, Jordan L ; Laszlo Ersek > ; Andrew Fish ; Ni, Ray > ; Ard Biesheuvel ; Wang, Ji= an J > ; Wu, Hao A ; Feng, Bob C > ; Kinney, Michael D > Subject: [edk2-devel] [Patch 00/12] New Cross OS tool chain CLANG9 >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1603 > Code: https://github.com/lgao4/edk2/tree/CLANG9 > Wiki: https://github.com/lgao4/edk2/wiki/CLANG9-Tools-Chain >=20 > CLANG9 tool chain is added to directly generate PE/COFF image (EFI image= ). > This tool chain uses LLVM clang C compiler and lld linker, generates PE/= COFF > image and PDB compatible debug symbol format. Now, it supports IA32/X64 > Archs. > It must use LLVM 9 or above release. LLVM 9 is ready on > http://releases.llvm.org/download.html#9.0.0. >=20 > CLANG9 is the cross OS tool chain. It can work on Windows/Linux/Mac host= OS. > For the same source code, with the same version LLVM tool chain, > CLANG9 can generate the same binary image. So, the developer can > choose the different development environment and work on the same > code base. Besides, EDKII project build also requires third party > tools: nasm and iasl. They both keep the same version. If so, the same > binary image can be generated on the different host OS. >=20 > LLVM tool chain provides the compiler and linker. To build EDK2 project, > some other tools are still required. On Windows OS, nmake and Visual Stu= dio > are required to call Makefile and compile BaseTools C tools. > On Linux/Mac, binutils and gcc are required to make and compile BaseTool= s > C tools. Because VS or GCC are mainly used to compile BaseTools and prov= ide > nmake/make tool, they can keep on the stable version without update. >=20 > To build source code, CLANG9 tool chain (-t CLANG9) can be specified > on Windows OS, set CLANG_HOST_BIN=3Dn, set CLANG9_BIN=3DLLVM installed > directory > CLANG_HOST_BIN is used CLANG_HOST_PREFIX. Prefix n is for nmake. > For example: > * set CLANG_HOST_BIN=3Dn > * set CLANG9_BIN=3DC:\Program Files\LLVM\bin\ > * set IASL_PREFIX=3DC:\Asl\ >=20 > On Linux/Mac, export CLANG9_BIN=3DLLVM installed directory, > CLANG_HOST_BIN is > not required, because there is no prefix for make. > For example: > * export CLANG9_BIN=3D/home/clang9/bin/ >=20 > Now, CLANG9 tool chain has been verified in Edk2 packages and Ovmf/Emula= tor > with LLVM 9.0.0 on Windows and Linux OS. > OVMF IA32/X64/IA32X64 all boots to Shell on Windows and Linux OS. > Emulator can boot to Shell on Windows only with CLANG9. > OVMF Ia32X64 RELEASE build generates the same BIOS images on Windows and > Linux OS. >=20 > Cc: Jiewen Yao > Cc: Steven Shi > Cc: Jordan Justen > Cc: Laszlo Ersek > Cc: Andrew Fish > Cc: Ray Ni > Cc: Ard Biesheuvel > Cc: Jian J Wang > Cc: Hao A Wu > Cc: Bob Feng > Cc: Michael D Kinney > Liming Gao (12): > BaseTools tools_def.template: Remove unnecessary $(DEST_DIR_DEBUG) > path > BaseTools tools_def: Add CLANG9 tool chain to directly generate PE > image > BaseTools GenFw: Fix the issue to update the wrong size as SectionSize > MdePkg Base.h: Add definition for CLANG9 tool chain > MdePkg BaseIoLibIntrinsic: Remove __inline__ attribute for IO > functions > MdeModulePkg LzmaCustomDecompressLib: Update macro to be same in > CLANG > tool > MdeModulePkg RegularExpressionDxe: Disable warning for CLANG9 tool > chain > CryptoPkg: Append options to make CLANG9 tool chain pass build > CryptoPkg IntrinsicLib: Make _fltused always be used > EmulatorPkg: Enable CLANG9 tool chain > OvmfPkg: Enable CLANG9 tool chain > OvmfPkg SecMain: Add build option "-fno-omit-frame-pointer" for CLANG9 > X64 >=20 > BaseTools/Source/C/GenFw/GenFw.c | 8 += - > CryptoPkg/Library/IntrinsicLib/MemoryIntrinsics.c | 10 += +- > EmulatorPkg/Win/Host/WinHost.c | 11 += +- > MdePkg/Library/BaseIoLibIntrinsic/IoLibGcc.c | 6 -= - > BaseTools/Conf/build_rule.template | 26 += ++--- > BaseTools/Conf/tools_def.template | 124 > +++++++++++++++++++++++++--- > CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf | 1 + > CryptoPkg/Library/BaseCryptLib/PeiCryptLib.inf | 1 + > CryptoPkg/Library/BaseCryptLib/RuntimeCryptLib.inf | 1 + > CryptoPkg/Library/BaseCryptLib/SmmCryptLib.inf | 1 + > CryptoPkg/Library/OpensslLib/OpensslLib.inf | 1 + > CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf | 1 + > EmulatorPkg/EmulatorPkg.dsc | 8 += - > EmulatorPkg/EmulatorPkg.fdf | 2 += - > EmulatorPkg/Win/Host/WinHost.inf | 6 += + > MdeModulePkg/Library/LzmaCustomDecompressLib/Sdk/C/7zTypes.h | 2 += - > .../Universal/RegularExpressionDxe/RegularExpressionDxe.inf | 3 + > MdePkg/Include/Base.h | 6 += - > MdePkg/Include/Ia32/ProcessorBind.h | 4 += - > MdePkg/Include/X64/ProcessorBind.h | 2 += - > OvmfPkg/OvmfPkgIa32.dsc | 4 += - > OvmfPkg/OvmfPkgIa32X64.dsc | 4 += - > OvmfPkg/OvmfPkgX64.dsc | 4 += - > OvmfPkg/Sec/SecMain.inf | 4 + > 24 files changed, 192 insertions(+), 48 deletions(-) >=20 > -- > 2.13.0.windows.1 >=20 >=20 >=20