From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web09.15665.1625622042736587781 for ; Tue, 06 Jul 2021 18:40:43 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Wed, 07 Jul 2021 09:40:33 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , "'Christopher Zurcher'" Cc: "'Wang, Jian J'" , "'Lu, XiaoyuX'" , "'Kinney, Michael D'" , "'Ard Biesheuvel'" References: <007601d7663d$7418a790$5c49f6b0$@byosoft.com.cn> In-Reply-To: Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY2IDAvMl0gQ3J5cHRvUGtnL09wZW5zc2xMaWI6IEFkZCBuYXRpdmUgaW5zdHJ1Y3Rpb24gc3VwcG9ydCBmb3IgWDY0?= Date: Wed, 7 Jul 2021 09:40:34 +0800 Message-ID: <007a01d772d1$149724e0$3dc56ea0$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQFzllcILTG7MWpIES6k50ub60nqmQHnk7c0AhxGv5YB+VBMJqvOilkQ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Christopher: Discard COMMON section is added by edk2 commit 214a3b79417f64bf2faae74af= 42c1b9d23f50dc8. Please help evaluate its impact.=20 Thanks Liming > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Yao, Jiewen > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B46=E6=9C=8823=E6=97=A5= 20:42 > =E6=94=B6=E4=BB=B6=E4=BA=BA: Christopher Zurcher ; > devel@edk2.groups.io; gaoliming@byosoft.com.cn > =E6=8A=84=E9=80=81: Wang, Jian J ; Lu, XiaoyuX > ; Kinney, Michael D ; > 'Ard Biesheuvel' ; Yao, Jiewen > > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH v6 0/2] CryptoPkg/OpensslLib= : Add native > instruction support for X64 >=20 > Hi Christopher > Thank you very much to resume this work. :-) >=20 > I have no problem to approve CryptoPkg. (I believe I already did that in= last > year). >=20 > But since you updated base tool. We need base tool package maintainer to > approve that change. >=20 > A good practice is to split the patch from package level. Then we can le= t each > package maintainer approve its own package. >=20 > I will be waiting for the response from base tool owner to review " > BaseTools/Scripts/GccBase.lds " and give R-B. >=20 >=20 > Thank you > Yao Jiewen >=20 > > -----Original Message----- > > From: Christopher Zurcher > > Sent: Tuesday, June 22, 2021 6:05 AM > > To: devel@edk2.groups.io; gaoliming@byosoft.com.cn > > Cc: Yao, Jiewen ; Wang, Jian J > ; > > Lu, XiaoyuX ; Kinney, Michael D > > ; 'Ard Biesheuvel' > > > Subject: RE: [edk2-devel] [PATCH v6 0/2] CryptoPkg/OpensslLib: Add nat= ive > > instruction support for X64 > > > > Yes this was discussed last year, sorry for the delay in follow-up, I = was > changing > > jobs. > > The problem is that the assembly code provided by OpenSSL uses > > "wrt ..imagebase" which is only supported by win64, not elf64. It was > requested > > at the time that I include the OpenSSL-provided .S files as a GCC tool= chain > > alternative. > > > > Thanks, > > Christopher Zurcher > > > > -----Original Message----- > > From: devel@edk2.groups.io On Behalf Of > gaoliming > > Sent: Sunday, June 20, 2021 18:34 > > To: devel@edk2.groups.io; christopher.zurcher@outlook.com > > Cc: 'Jiewen Yao' ; 'Jian J Wang' > > ; 'Xiaoyu Lu' ; 'Mike Kin= ney' > > ; 'Ard Biesheuvel' > > > Subject: =E5=9B=9E=E5=A4=8D: [edk2-devel] [PATCH v6 0/2] CryptoPkg/Ope= nsslLib: Add > native > > instruction support for X64 > > > > Christopher: > > Nasm should support GCC tool chain. Do you meet with the problem on > nasm > > version assembly code? > > So, you have to add GAS assembly code. This topic may be discussed l= ast > year. > > Can you give some detail for it? > > > > Thanks > > Liming > > > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > > > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io =E4=BB=A3=E8=A1=A8 > Christopher > > > Zurcher > > > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2021=E5=B9=B46=E6=9C=8819=E6= =97=A5 10:09 > > > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io > > > =E6=8A=84=E9=80=81: Jiewen Yao ; Jian J Wang > > > ; Xiaoyu Lu ; Mike Kinn= ey > > > ; Ard Biesheuvel > > > > =E4=B8=BB=E9=A2=98: [edk2-devel] [PATCH v6 0/2] CryptoPkg/OpensslLib= : Add native > > > instruction support for X64 > > > > > > From: Christopher Zurcher > > > > > > V6 Changes: > > > Add GCC-compatible version of these modifications. Supporting GCC > > > build > > of > > > native OpenSSL .S files requires removal of *(COMMON) from the > > > /DISCARD/ > > > section of the GCC linker script. > > > The VS/CLANG portion of the patch is unchanged from the > > > previously-approved > > > patchset. > > > > > > V5 Changes: > > > Move ApiHooks.c into X64 folder > > > Update process_files.pl to clean architecture-specific subfolders > > without > > > removing them > > > Rebased INF file to merge latest changes regarding RngLib vs. > > > TimerLib > > > > > > V4 Changes: > > > Add copyright header to uefi-asm.conf > > > Move [Sources.X64] block to cover entire X64-specific config > > > > > > V3 Changes: > > > Added definitions for ptrdiff_t and wchar_t to CrtLibSupport.h for > > > LLVM/Clang build support. > > > Added -UWIN32 to GCC Flags for LLVM/Clang build support. > > > Added missing AES GCM assembly file. > > > > > > V2 Changes: > > > Limit scope of assembly config to SHA and AES functions. > > > Removed IA32 native support (reduced config was causing build > > > failure > > and > > > can be added in a later patch). > > > Removed XMM instructions from assembly generation. > > > Added automatic copyright header porting for generated assembly > files. > > > > > > This patch adds support for building the native instruction algorith= ms > > > for the X64 architecture in OpensslLib. The process_files.pl script > > > was > > modified > > > to parse the .asm file targets from the OpenSSL build config data > > > struct, > > and > > > generate the necessary assembly files for the EDK2 build environment= . > > > > > > For the X64 variant, OpenSSL includes calls to a Windows error > > > handling > > API, > > > and that function has been stubbed out in ApiHooks.c. > > > > > > For all variants, a constructor is added to call the required CPUID > > function > > > within OpenSSL to facilitate processor capability checks in the nati= ve > > > algorithms. > > > > > > Additional native architecture variants should be simple to add by > > following > > > the changes made for this architecture. > > > > > > The OpenSSL assembly files are traditionally generated at build time > > > using > > a > > > perl script. To avoid that burden on EDK2 users, these end-result > > > assembly files are generated during the configuration steps performe= d > > > by the > > package > > > maintainer (through process_files.pl). The perl generator scripts > > > inside OpenSSL do not parse file comments as they are only meant to > > > create intermediate build files, so process_files.pl contains > > > additional hooks to preserve the copyright headers as well as clean = up > > > tabs and line endings > > to > > > comply with EDK2 coding standards. The resulting file headers align > > > with the generated .h files which are already included in the EDK2 > repository. > > > > > > Cc: Jiewen Yao > > > Cc: Jian J Wang > > > Cc: Xiaoyu Lu > > > Cc: Mike Kinney > > > Cc: Ard Biesheuvel > > > > > > Christopher Zurcher (2): > > > CryptoPkg/OpensslLib: Add native instruction support for X64 > > > CryptoPkg/OpensslLib: Commit the auto-generated assembly files for > > > X64 > > > > > > BaseTools/Scripts/GccBase.lds > > > | 1 - > > > CryptoPkg/CryptoPkg.ci.yaml > > > | 21 +- > > > CryptoPkg/Library/Include/CrtLibSupport.h > > > | 2 + > > > CryptoPkg/Library/Include/openssl/opensslconf.h > > > | 3 - > > > CryptoPkg/Library/OpensslLib/OpensslLib.inf > > > | 2 +- > > > CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c > > > | 44 + > > > CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf > > > | 2 +- > > > CryptoPkg/Library/OpensslLib/OpensslLibX64.inf > > > | 653 +++ > > > CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf > > > | 653 +++ > > > CryptoPkg/Library/OpensslLib/UefiAsm.conf > > > | 30 + > > > CryptoPkg/Library/OpensslLib/X64/ApiHooks.c > > > | 22 + > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm > > > | 732 +++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm > > > | 1916 ++++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm > > > | 78 + > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm > > > | 5103 ++++++++++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm > > > | 1173 +++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm > > > | 34 + > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm > > > | 1569 ++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm > > > | 3137 ++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm > > > | 2884 +++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm > > > | 3461 +++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm > > > | 3313 +++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm > > > | 1938 ++++++++ > > > CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > > > | 491 ++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S > > > | 552 +++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S > > > | 1719 +++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S > > > | > > > 69 + > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S > > > | 4484 +++++++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S > > > | 863 ++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S > > > | 29 + > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S > > > | 1386 ++++++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S > > > | 2962 ++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S > > > | 2631 ++++++++++ > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S > > > | 3286 +++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S > > > | 3097 ++++++++++++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S > > > | 1811 +++++++ > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S > > > | 491 ++ > > > CryptoPkg/Library/OpensslLib/process_files.pl > > > | 241 +- > > > 38 files changed, 50828 insertions(+), 55 deletions(-) create mode > > > 100644 CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c > > > create mode 100644 CryptoPkg/Library/OpensslLib/OpensslLibX64.inf > > > create mode 100644 > CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf > > > create mode 100644 CryptoPkg/Library/OpensslLib/UefiAsm.conf > > > create mode 100644 CryptoPkg/Library/OpensslLib/X64/ApiHooks.c > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha256-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/aesni-gcm-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha256-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S > > > create mode 100644 > > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/aesni-gcm-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S > > > create mode 100644 > > > CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S > > > > > > -- > > > 2.32.0.windows.1 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >=20 >=20 >=20 >=20 >=20